+my $op = $input->param('op');
+$resultsperpage ||= 20;
+
+our ( $template, $loggedinuser, $cookie, $flags ) = get_template_and_user(
+ { template_name => 'acqui/parcels.tmpl',
+ query => $input,
+ type => 'intranet',
+ authnotrequired => 0,
+ flagsrequired => { acquisition => 'order_receive' },
+ debug => 1,
+ }
+);
+
+if($op and $op eq 'new') {
+ my $invoicenumber = $input->param('invoice');
+ my $shipmentdate = $input->param('shipmentdate');
+ my $shipmentcost = $input->param('shipmentcost');
+ my $shipmentcost_budgetid = $input->param('shipmentcost_budgetid');
+ if($shipmentdate) {
+ $shipmentdate = C4::Dates->new($shipmentdate)->output('iso');
+ }
+ my $invoiceid = AddInvoice(
+ invoicenumber => $invoicenumber,
+ booksellerid => $booksellerid,
+ shipmentdate => $shipmentdate,
+ shipmentcost => $shipmentcost,
+ shipmentcost_budgetid => $shipmentcost_budgetid,
+ );
+ if(defined $invoiceid) {
+ # Successful 'Add'
+ print $input->redirect("/cgi-bin/koha/acqui/parcel.pl?invoiceid=$invoiceid");
+ exit 0;
+ } else {
+ $template->param(error_failed_to_create_invoice => 1);
+ }
+}
+
+my $bookseller = GetBookSellerFromId($booksellerid);
+my @parcels = GetInvoices(
+ supplierid => $booksellerid,
+ invoicenumber => $code,
+ shipmentdatefrom => $datefrom,
+ shipmentdateto => $dateto,
+ order_by => $order
+);
+my $count_parcels = @parcels;
+
+# multi page display gestion
+$startfrom ||= 0;
+if ( $count_parcels > $resultsperpage ) {
+ set_page_navigation( $count_parcels, $startfrom, $resultsperpage );
+}
+my $loopres = [];
+
+my $next_page_start = $startfrom + $resultsperpage;
+my $last_row = ( $next_page_start < $count_parcels ) ? $next_page_start - 1 : $count_parcels - 1;
+for my $i ( $startfrom .. $last_row) {
+ my $p = $parcels[$i];
+
+ push @{$loopres},
+ { number => $i + 1,
+ invoiceid => $p->{invoiceid},
+ code => $p->{invoicenumber},
+ nullcode => $p->{invoicenumber} eq 'NULL',
+ emptycode => $p->{invoicenumber} eq q{},
+ raw_datereceived => $p->{shipmentdate},
+ datereceived => format_date( $p->{shipmentdate} ),
+ bibcount => $p->{receivedbiblios} || 0,
+ reccount => $p->{receiveditems} || 0,
+ itemcount => $p->{itemsexpected} || 0,
+ };
+}
+if ($count_parcels) {
+ $template->param( searchresults => $loopres, count => $count_parcels );
+}