use C4::Members;
use C4::Overdues;
use C4::Debug;
+
use Koha::AuthorisedValues;
+use Koha::Biblios;
use Koha::DateUtils;
+use Koha::IssuingRules;
use Koha::Items;
use Koha::ItemTypes;
use Koha::Checkouts;
my @itemInfos = GetItemsInfo($biblioNumber);
- my $marcrecord= GetMarcBiblio($biblioNumber);
+ my $marcrecord= GetMarcBiblio({ biblionumber => $biblioNumber });
# flag indicating existence of at least one item linked via a host record
my $hostitemsflag;
my $expiration_date = $query->param("expiration_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};
if ( $itemNum ne '' ) {
$canreserve = 1 if CanItemBeReserved( $borrowernumber, $itemNum ) eq 'OK';
- $rank = '0' unless C4::Context->preference('ReservesNeedReturns');
- my $item = GetItem($itemNum);
- if ( $item->{'holdingbranch'} eq $branch ) {
- $found = 'W'
- unless C4::Context->preference('ReservesNeedReturns');
- }
}
else {
$canreserve = 1 if CanBookBeReserved( $borrowernumber, $biblioNum ) eq 'OK';
my $noreserves = 0;
my $maxoutstanding = C4::Context->preference("maxoutstanding");
$template->param( noreserve => 1 ) unless $maxoutstanding;
-my ( $amountoutstanding ) = GetMemberAccountRecords($borrowernumber);
+my $amountoutstanding = $patron->account->balance;
if ( $amountoutstanding && ($amountoutstanding > $maxoutstanding) ) {
my $amount = sprintf "%.02f", $amountoutstanding;
$template->param( message => 1 );
foreach my $biblioNum (@biblionumbers) {
my @not_available_at = ();
- my $record = GetMarcBiblio($biblioNum);
+ my $record = GetMarcBiblio({ biblionumber => $biblioNum });
# Init the bib item with the choices for branch pickup
my %biblioLoopIter;
my $numCopiesOPACAvailable = 0;
foreach my $itemInfo (@{$biblioData->{itemInfos}}) {
my $itemNum = $itemInfo->{itemnumber};
+ my $item = Koha::Items->find( $itemNum );
my $itemLoopIter = {};
$itemLoopIter->{itemnumber} = $itemNum;
}
# checking reserve
- my $item = Koha::Items->find( $itemNum );
my $holds = $item->current_holds;
if ( my $first_hold = $holds->next ) {
- my $patron = Koha::Patrons->find( $first_hold->borrowernumber );
$itemLoopIter->{backgroundcolor} = 'reserved';
$itemLoopIter->{reservedate} = output_pref({ dt => dt_from_string($first_hold->reservedate), dateonly => 1 }); # FIXME Should be formatted in the template
- $itemLoopIter->{ReservedForBorrowernumber} = $first_hold->borrowernumber;
- $itemLoopIter->{ReservedForSurname} = $patron->surname;
- $itemLoopIter->{ReservedForFirstname} = $patron->firstname;
$itemLoopIter->{ExpectedAtLibrary} = $first_hold->branchcode;
$itemLoopIter->{waitingdate} = $first_hold->waitingdate;
}
if ( $itemInfo->{biblionumber} ne $biblioNum ) {
$biblioLoopIter{hostitemsflag} = 1;
$itemLoopIter->{hostbiblionumber} = $itemInfo->{biblionumber};
- $itemLoopIter->{hosttitle} = GetBiblioData( $itemInfo->{biblionumber} )->{title};
+ $itemLoopIter->{hosttitle} = Koha::Biblios->find( $itemInfo->{biblionumber} )->title;
}
# If there is no loan, return and transfer, we show a checkbox.
CanItemBeReserved($borrowernumber,$itemNum) eq 'OK';
if ($policy_holdallowed) {
- if ( my $hold_allowed = OPACItemHoldsAllowed( $itemInfo, $patron_unblessed ) ) {
+ my $opac_hold_policy = Koha::IssuingRules->get_opacitemholds_policy( { item => $item, patron => $patron } );
+ if ( $opac_hold_policy ne 'N' ) { # If Y or F
$itemLoopIter->{available} = 1;
$numCopiesOPACAvailable++;
- $biblioLoopIter{force_hold} = 1 if $hold_allowed eq 'F';
+ $biblioLoopIter{force_hold} = 1 if $opac_hold_policy eq 'F';
}
$numCopiesAvailable++;
$template->param( none_available => 1 );
}
+if (scalar @biblionumbers > 1) {
+ $template->param( multi_hold => 1);
+}
+
my $show_notes=C4::Context->preference('OpacHoldNotes');
$template->param(OpacHoldNotes=>$show_notes);