# Pass through any reserve charge
my $reservefee = $patron->category->reservefee;
if ( $reservefee > 0){
- $template->param( RESERVE_CHARGE => sprintf("%.2f",$reservefee));
+ $template->param( RESERVE_CHARGE => $reservefee);
}
my $itemtypes = { map { $_->{itemtype} => $_ } @{ Koha::ItemTypes->search_with_localization->unblessed } };
my $branch = $query->param('branch') || $patron->branchcode || C4::Context->userenv->{branch} || '' ;
$template->param( branch => $branch );
-# Is the person allowed to choose their branch
-my $OPACChooseBranch = (C4::Context->preference("OPACAllowUserToChooseBranch")) ? 1 : 0;
-
-$template->param( choose_branch => $OPACChooseBranch);
-
#
#
# Build hashes of the requested biblio(item)s and items.
# Compute the priority rank.
my $biblio = Koha::Biblios->find( $biblioNumber );
+ $biblioData->{object} = $biblio;
my $holds = $biblio->holds;
my $rank = $holds->count;
$biblioData->{reservecount} = 1; # new reserve
my $canreserve = 0;
my $singleBranchMode = Koha::Libraries->search->count == 1;
- if ( $singleBranchMode || !$OPACChooseBranch )
+ if ( $singleBranchMode || ! C4::Context->preference("OPACAllowUserToChooseBranch") )
{ # single branch mode or disabled user choosing
$branch = $patron->branchcode;
}
my $biblioLoop = [];
my $numBibsAvailable = 0;
my $itemdata_enumchron = 0;
+my $itemdata_ccode = 0;
my $anyholdable = 0;
my $itemLevelTypes = C4::Context->preference('item-level_itypes');
+my $pickup_locations = Koha::Libraries->search({ pickup_location => 1 });
$template->param('item_level_itypes' => $itemLevelTypes);
foreach my $biblioNum (@biblionumbers) {
- my @not_available_at = ();
my $record = GetMarcBiblio({ biblionumber => $biblioNum });
# Init the bib item with the choices for branch pickup
my %biblioLoopIter;
&get_out($query, $cookie, $template->output);
}
+ my @not_available_at = ();
+ my $biblio = $biblioData->{object};
+ foreach my $library ( $pickup_locations->as_list ) {
+ push( @not_available_at, $library->branchcode ) unless $biblio->can_be_transferred({ to => $library });
+ }
+
my $frameworkcode = GetFrameworkCode( $biblioData->{biblionumber} );
$biblioLoopIter{biblionumber} = $biblioData->{biblionumber};
$biblioLoopIter{title} = $biblioData->{title};
$itemLoopIter->{homeBranchName} = $itemInfo->{homebranch};
$itemLoopIter->{callNumber} = $itemInfo->{itemcallnumber};
$itemLoopIter->{enumchron} = $itemInfo->{enumchron};
+ $itemLoopIter->{ccode} = $itemInfo->{ccode};
$itemLoopIter->{copynumber} = $itemInfo->{copynumber};
if ($itemLevelTypes) {
$itemLoopIter->{translated_description} = $itemInfo->{translated_description};
$itemInfo->{backgroundcolor} = 'other';
}
- # Check of the transfered documents
+ # Check of the transferred documents
my ( $transfertwhen, $transfertfrom, $transfertto ) =
GetTransfers($itemNum);
if ( $transfertwhen && ($transfertwhen ne '') ) {
my $policy_holdallowed = !$itemLoopIter->{already_reserved};
$policy_holdallowed &&=
IsAvailableForItemLevelRequest($itemInfo,$patron_unblessed) &&
- CanItemBeReserved($borrowernumber,$itemNum)->{status} eq 'OK';
+ CanItemBeReserved( $borrowernumber, $itemNum )->{status} eq 'OK';
if ($policy_holdallowed) {
my $opac_hold_policy = Koha::IssuingRules->get_opacitemholds_policy( { item => $item, patron => $patron } );
if ($itemLoopIter->{enumchron}) {
$itemdata_enumchron = 1;
}
+ # Show collection when needed
+ if ($itemLoopIter->{ccode}) {
+ $itemdata_ccode = 1;
+ }
push @{$biblioLoopIter{itemLoop}}, $itemLoopIter;
}
- $template->param( itemdata_enumchron => $itemdata_enumchron );
+ $template->param(
+ itemdata_enumchron => $itemdata_enumchron,
+ itemdata_ccode => $itemdata_ccode,
+ );
if ($numCopiesAvailable > 0) {
$numBibsAvailable++;
}
}
- $biblioLoopIter{holdable} &&= CanBookBeReserved($borrowernumber,$biblioNum)->{status} eq 'OK';
+ $biblioLoopIter{holdable} &&= CanBookBeReserved( $borrowernumber, $biblioNum )->{status} eq 'OK';
# For multiple holds per record, if a patron has previously placed a hold,
# the patron can only place more holds of the same type. That is, if the
$anyholdable = 1 if $biblioLoopIter{holdable};
}
+unless ($pickup_locations->count) {
+ $numBibsAvailable = 0;
+ $anyholdable = 0;
+ $template->param(
+ message => 1,
+ no_pickup_locations => 1
+ );
+}
if ( $numBibsAvailable == 0 || $anyholdable == 0) {
$template->param( none_available => 1 );