@@ -, +, @@ holds/reserves --- acqui/finishreceive.pl | 6 ++- acqui/parcel.pl | 45 ++++++++++++++++++++ .../intranet-tmpl/prog/en/modules/acqui/parcel.tt | 14 ++++++ 3 files changed, 64 insertions(+), 1 deletions(-) --- a/acqui/finishreceive.pl +++ a/acqui/finishreceive.pl @@ -41,6 +41,7 @@ checkauth($input, 0, $flagsrequired, 'intranet'); my $user = $input->remote_user; my $biblionumber = $input->param('biblionumber'); my $ordernumber = $input->param('ordernumber'); +my $resordernumber = $ordernumber; my $origquantityrec = $input->param('origquantityrec'); my $quantityrec = $input->param('quantityrec'); my $quantity = $input->param('quantity'); @@ -136,11 +137,14 @@ if ($quantityrec > $origquantityrec ) { } } + if ($new_ordernumber) { + $resordernumber = $new_ordernumber; + } } update_item( $_ ) foreach GetItemnumbersFromOrder( $ordernumber ); -print $input->redirect("/cgi-bin/koha/acqui/parcel.pl?invoiceid=$invoiceid"); +print $input->redirect("/cgi-bin/koha/acqui/parcel.pl?invoiceid=$invoiceid&resbiblionumber=$biblionumber&resordernumber=$resordernumber"); ################################ End of script ################################ --- a/acqui/parcel.pl +++ a/acqui/parcel.pl @@ -69,6 +69,8 @@ use C4::Dates qw/format_date format_date_in_iso/; use C4::Suggestions; use JSON; +use C4::Reserves; + my $input=new CGI; sub get_value_with_gst_params { @@ -130,6 +132,49 @@ unless( $invoiceid and $invoice->{invoiceid} ) { exit; } +my $received_biblionumber = $input->param('resbiblionumber'); +my $received_ordernumber = $input->param('resordernumber'); +if ($received_biblionumber && $received_ordernumber) { + my ($reserve_count, $title_reserves) = GetReservesFromBiblionumber($received_biblionumber); + if ($reserve_count > 0) { + + my $bib_level_hold = 0; + my @matches; + + my $received_biblio_data = GetBiblioData($received_biblionumber); + my @received_items = GetItemnumbersFromOrder($received_ordernumber); + + foreach my $reserved_title (@$title_reserves) { + my $reserve_itemnumber = $reserved_title->{itemnumber}; + if (defined $reserve_itemnumber) { + push(@matches, grep( $_ == $reserve_itemnumber, @received_items )); + } + else { + $bib_level_hold++; + } + } + + if ($bib_level_hold > 0) { + $template->param('bib_level_holds' => $bib_level_hold); + } + if (@matches) { + my @reserve_barcodes; + foreach my $itemnumber_match (@matches) { + my $result_barcode = GetBarcodeFromItemnumber($itemnumber_match); + push(@reserve_barcodes,$result_barcode); + } + if(@reserve_barcodes){ + $template->param('item_level_holds' => \@reserve_barcodes); + } + } + + $template->param( + bib_has_reserves => 1, + bib_title => $received_biblio_data->{title}, + ); + } +} + my $op = $input->param('op') // ''; if ($op eq 'cancelreceipt') { --- a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/parcel.tt +++ a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/parcel.tt @@ -166,6 +166,20 @@ [% END %] + [% IF bib_has_reserves %] +
+ The record [% IF ( bib_title ) %] for "[% bib_title %]"[% END %] has + [% IF ( bib_level_holds ) %][% bib_level_holds %] bib-level [% END %] + [% IF ( item_level_holds ) %][% IF ( bib_level_holds ) %] and [% END %][% item_level_holds.size %] item-level [% END %]pending reserves. +

+ [% IF ( item_level_holds ) %]The item-level reserves are for the following barcodes: + + [% END %] +
+ [% END %] + [% UNLESS no_orders_to_display %]

Invoice number: [% invoice %] Received by: [% loggedinusername %] On: [% formatteddatereceived %]

--