X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=C4%2FReserves.pm;h=359fd984b610625c7e9c52cc26ca908829c37f90;hb=6db48e9d21be112880c5ae74640800e30ad42947;hp=c0a977ff5f7e2f59d43833ad88cccfd8f19df05b;hpb=1798d22e764bebf46e2915e1c0b7c3360ea8dd51;p=koha.git diff --git a/C4/Reserves.pm b/C4/Reserves.pm index c0a977ff5f..359fd984b6 100644 --- a/C4/Reserves.pm +++ b/C4/Reserves.pm @@ -1868,7 +1868,15 @@ sub RevertWaitingStatus { =head2 ReserveSlip - ReserveSlip($branchcode, $borrowernumber, $biblionumber) +ReserveSlip( + { + branchcode => $branchcode, + borrowernumber => $borrowernumber, + biblionumber => $biblionumber, + [ itemnumber => $itemnumber, ] + [ barcode => $barcode, ] + } + ) Returns letter hash ( see C4::Letters::GetPreparedLetter ) or undef @@ -1885,19 +1893,44 @@ available within the slip: =cut sub ReserveSlip { - my ($branch, $borrowernumber, $biblionumber) = @_; + my ($args) = @_; + my $branchcode = $args->{branchcode}; + my $borrowernumber = $args->{borrowernumber}; + my $biblionumber = $args->{biblionumber}; + my $itemnumber = $args->{itemnumber}; + my $barcode = $args->{barcode}; -# return unless ( C4::Context->boolean_preference('printreserveslips') ); - my $patron = Koha::Patrons->find( $borrowernumber ); - my $hold = Koha::Holds->search({biblionumber => $biblionumber, borrowernumber => $borrowernumber })->next; + my $patron = Koha::Patrons->find($borrowernumber); + + my $hold; + if ($itemnumber || $barcode ) { + $itemnumber ||= Koha::Items->find( { barcode => $barcode } )->itemnumber; + + $hold = Koha::Holds->search( + { + biblionumber => $biblionumber, + borrowernumber => $borrowernumber, + itemnumber => $itemnumber + } + )->next; + } + else { + $hold = Koha::Holds->search( + { + biblionumber => $biblionumber, + borrowernumber => $borrowernumber + } + )->next; + } + return unless $hold; my $reserve = $hold->unblessed; return C4::Letters::GetPreparedLetter ( module => 'circulation', letter_code => 'HOLD_SLIP', - branchcode => $branch, + branchcode => $branchcode, lang => $patron->lang, tables => { 'reserves' => $reserve,