}
# pass the pickup branch along....
-my $branch = $query->param('branch');
+my $branch = $query->param('branch') || C4::Context->userenv->{branch} || '' ;
+($branches->{$branch}) or $branch = ""; # Confirm branch is real
$template->param( branch => $branch );
-# make sure it's a real branch
-if ( !$branch || !$branches->{$branch} ) {
- $branch = '';
-}
-$template->param( branchname => $branches->{$branch}->{'branchname'} );
-
# make branch selection options...
-my @branches;
-my @select_branch;
-my %select_branches;
-
-my @CGIbranchlooparray;
-
-foreach my $branch ( keys %$branches ) {
- if ($branch) {
- my %line;
- $line{branch} = $branches->{$branch}->{'branchname'};
- $line{value} = $branch;
- if ($line{value} eq C4::Context->userenv->{'branch'}) {
- $line{selected} = 1;
- }
- push @CGIbranchlooparray, \%line;
- }
-}
-@CGIbranchlooparray =
- sort { $a->{branch} cmp $b->{branch} } @CGIbranchlooparray;
-my $CGIbranchloop = \@CGIbranchlooparray;
+my $CGIbranchloop = GetBranchesLoop($branch);
$template->param( CGIbranch => $CGIbranchloop );
-
#Debug
#output_html_with_http_headers($query,$cookie,"<html><head></head><body> @biblionumbers </body></html>\n");
#exit;
}
# Compute the priority rank.
- my ( $rank, $reserves ) = GetReservesFromBiblionumber($biblioNumber);
+ my ( $rank, $reserves ) = GetReservesFromBiblionumber($biblioNumber,1);
$biblioData->{reservecount} = $rank;
foreach my $res (@$reserves) {
my $found = $res->{'found'};
while (@selectedItems) {
my $biblioNum = shift(@selectedItems);
- my $itemNum = shift(@selectedItems);
- my $branch = shift(@selectedItems); # i.e., branch code, not name
+ my $itemNum = shift(@selectedItems);
+ my $branch = shift(@selectedItems); # i.e., branch code, not name
my $singleBranchMode = $template->param('singleBranchMode');
if ($singleBranchMode) {
my $biblioData = $biblioDataHash{$biblioNum};
my $found;
+ # Check for user supplied reserve date
+ my $startdate;
+ if (
+ C4::Context->preference( 'AllowHoldDateInFuture' ) &&
+ C4::Context->preference( 'OPACAllowHoldDateInFuture' )
+ ) {
+ $startdate = $query->param("reserve_date_$biblioNum");
+ }
+
# If a specific item was selected and the pickup branch is the same as the
# holdingbranch, force the value $rank and $found.
my $rank = $biblioData->{rank};
}
# Here we actually do the reserveration. Stage 3.
- AddReserve($branch, $borrowernumber, $biblioNum, 'a', [$biblioNum], $rank, $notes,
+ AddReserve($branch, $borrowernumber, $biblioNum, 'a', [$biblioNum], $rank, $startdate, $notes,
$biblioData->{'title'}, $itemNum, $found);
}
my $biblioData = $biblioDataHash{$biblioNum};
if (! $biblioData) {
$template->param(message=>1, bad_biblionumber=>$biblioNum);
- &get_out($query, $cookie, $template->output);
+ &get_out($query, $cookie, $template->output);
}
$biblioLoopIter{biblionumber} = $biblioData->{biblionumber};
if (!$itemInfo->{'notforloan'} && !($itemInfo->{'itemnotforloan'} > 0)) {
$biblioLoopIter{forloan} = 1;
- }
+ }
}
- $biblioLoopIter{itemTypeDescription} =
- $itemTypes->{$biblioData->{itemtype}}{description};
-
+ $biblioLoopIter{itemTypeDescription} = $itemTypes->{$biblioData->{itemtype}}{description};
$biblioLoopIter{itemLoop} = [];
my $numCopiesAvailable = 0;
if ( defined $reservedate ) {
$itemLoopIter->{backgroundcolor} = 'reserved';
$itemLoopIter->{reservedate} = format_date($reservedate);
- $itemLoopIter->{ReservedForBorrowernumber} = $reservedfor;
- $itemLoopIter->{ReservedForSurname} = $ItemBorrowerReserveInfo->{'surname'};
- $itemLoopIter->{ReservedForFirstname} = $ItemBorrowerReserveInfo->{'firstname'};
- $itemLoopIter->{ExpectedAtLibrary} = $expectedAt;
+ $itemLoopIter->{ReservedForBorrowernumber} = $reservedfor;
+ $itemLoopIter->{ReservedForSurname} = $ItemBorrowerReserveInfo->{'surname'};
+ $itemLoopIter->{ReservedForFirstname} = $ItemBorrowerReserveInfo->{'firstname'};
+ $itemLoopIter->{ExpectedAtLibrary} = $expectedAt;
}
$itemLoopIter->{notforloan} = $itemInfo->{notforloan};
$itemLoopIter->{waitingdate} = format_date($wait_hashref->{waitingdate});
}
$itemLoopIter->{imageurl} = getitemtypeimagelocation( 'opac', $itemTypes->{ $itemInfo->{itype} }{imageurl} );
-
push @{$biblioLoopIter{itemLoop}}, $itemLoopIter;
}
push @$biblioLoop, \%biblioLoopIter;
}
-
if ( $numBibsAvailable == 0 ) {
$template->param( none_available => 1, message => 1 );
}
-
my $itemTableColspan = 5;
if (!$template->param('OPACItemHolds')) {
$itemTableColspan--;
}
$template->param(itemtable_colspan => $itemTableColspan);
-
-
# display infos
$template->param(bibitemloop => $biblioLoop);
-output_html_with_http_headers $query, $cookie, $template->output;
-
-
+# can set reserve date in future
+if (
+ C4::Context->preference( 'AllowHoldDateInFuture' ) &&
+ C4::Context->preference( 'OPACAllowHoldDateInFuture' )
+ ) {
+ $template->param(
+ reserve_in_future => 1,
+ DHTMLcalendar_dateformat => C4::Dates->DHTMLcalendar(),
+ );
+}
+output_html_with_http_headers $query, $cookie, $template->output;
-# Local Variables:
-# tab-width: 8
-# End: