@@ -, +, @@ has multiple holds on a biblio --- C4/Reserves.pm | 4 ++-- circ/circulation.pl | 1 + circ/hold-transfer-slip.pl | 5 +++-- circ/returns.pl | 6 +++++- koha-tmpl/intranet-tmpl/prog/en/modules/circ/circulation.tt | 4 ++-- koha-tmpl/intranet-tmpl/prog/en/modules/circ/returns.tt | 2 +- t/db_dependent/Reserves.t | 2 +- 7 files changed, 15 insertions(+), 9 deletions(-) --- a/C4/Reserves.pm +++ a/C4/Reserves.pm @@ -1874,12 +1874,12 @@ available within the slip: =cut sub ReserveSlip { - my ($branch, $borrowernumber, $biblionumber) = @_; + my ($branch, $borrowernumber, $biblionumber, $itemnumber) = @_; # return unless ( C4::Context->boolean_preference('printreserveslips') ); my $patron = Koha::Patrons->find( $borrowernumber ); - my $hold = Koha::Holds->search({biblionumber => $biblionumber, borrowernumber => $borrowernumber })->next; + my $hold = Koha::Holds->search({biblionumber => $biblionumber, borrowernumber => $borrowernumber, itemnumber => $itemnumber })->next; return unless $hold; my $reserve = $hold->unblessed; --- a/circ/circulation.pl +++ a/circ/circulation.pl @@ -346,6 +346,7 @@ if (@$barcodes) { $template_params->{messages} = $messages; my $item = Koha::Items->find({ barcode => $barcode }); + $template->param( item => $item ); my ( $biblio, $mss ); if ( $item ) { --- a/circ/hold-transfer-slip.pl +++ a/circ/hold-transfer-slip.pl @@ -35,7 +35,8 @@ my $input = new CGI; my $sessionID = $input->cookie("CGISESSID"); my $session = get_session($sessionID); -my $biblionumber = $input->param('biblionumber'); +my $itemnumber = $input->param('itemnumber'); +my $biblionumber = $input->param('biblionumber'); my $borrowernumber = $input->param('borrowernumber'); my ( $template, $loggedinuser, $cookie ) = get_template_and_user( @@ -51,7 +52,7 @@ my ( $template, $loggedinuser, $cookie ) = get_template_and_user( my $userenv = C4::Context->userenv; my ($slip, $is_html); -if ( my $letter = ReserveSlip ($session->param('branch') || $userenv->{branch}, $borrowernumber, $biblionumber) ) { +if ( my $letter = ReserveSlip ($session->param('branch') || $userenv->{branch}, $borrowernumber, $biblionumber, $itemnumber) ) { $slip = $letter->{content}; $is_html = $letter->{is_html}; } --- a/circ/returns.pl +++ a/circ/returns.pl @@ -279,10 +279,14 @@ if ($barcode) { my $checkout = $item->checkout; my $biblio = $item->biblio; $template->param( + item => $item, + borrower => $borrower, + + returnbranch => $returnbranch, + title => $biblio->title, homebranch => $item->homebranch, holdingbranch => $item->holdingbranch, - returnbranch => $returnbranch, author => $biblio->author, itembarcode => $item->barcode, itemtype => $item->effective_itemtype, --- a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/circulation.tt +++ a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/circulation.tt @@ -256,7 +256,7 @@ - + [% END %] @@ -266,7 +266,7 @@ - + [% END %] --- a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/returns.tt +++ a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/returns.tt @@ -711,7 +711,7 @@ $(".modal").on('hidden.bs.modal', function (e) { $("#barcode").focus(); }); [% IF print_slip %] - Dopop('hold-transfer-slip.pl?borrowernumber=[% patron.borrowernumber %]&biblionumber=[% biblionumber %]'); + Dopop('hold-transfer-slip.pl?borrowernumber=[% borrowernumber %]&biblionumber=[% biblionumber %]&itemnumber=[% item.itemnumber %]'); [% END %] var columns_settings = [% ColumnsSettings.GetColumns( 'circ', 'returns', 'checkedintable', 'json' ) %] --- a/t/db_dependent/Reserves.t +++ a/t/db_dependent/Reserves.t @@ -387,7 +387,7 @@ is( 'item that is captured to fill a hold cannot be deleted', ); -my $letter = ReserveSlip($branch_1, $requesters{$branch_1}, $bibnum); +my $letter = ReserveSlip($branch_1, $requesters{$branch_1}, $bibnum, $itemnumber); ok(defined($letter), 'can successfully generate hold slip (bug 10949)'); # Tests for bug 9788: Does Koha::Item->current_holds return a future wait? --