From 52e33102d8557b4e56e55b904050fe1e9da9f40e Mon Sep 17 00:00:00 2001 From: Jonathan Druart <jonathan.druart@biblibre.com> Date: Thu, 23 May 2013 16:42:38 +0200 Subject: [PATCH] Bug 10317: The parcel page display whatever if the invoiceid is unknown This patch fixes some stuffs on the parcel page. 1/ Removes dead code 2/ Display an error message if invoiceid is unset or not to refer to an invoice 3/ Fix a bug in the note ("change note" and "add note" links) Test plan: 1/ Try to call the invoice page with an existing invoiceid and check that order results are consistent. 2/ Try without invoiceid or a bad invoiceid and check that an error message is displayed. 3/ Add and change notes. --- acqui/parcel.pl | 31 ++++++++------------ .../intranet-tmpl/prog/en/modules/acqui/parcel.tt | 27 +++++++++++------ 2 files changed, 30 insertions(+), 28 deletions(-) diff --git a/acqui/parcel.pl b/acqui/parcel.pl index 8e82283..ee96e3f 100755 --- a/acqui/parcel.pl +++ b/acqui/parcel.pl @@ -118,6 +118,18 @@ my ($template, $loggedinuser, $cookie) }); my $invoiceid = $input->param('invoiceid'); +my $invoice; +$invoice = GetInvoiceDetails($invoiceid) if $invoiceid; + +unless( $invoiceid and $invoice->{invoiceid} ) { + $template->param( + error_invoice_not_known => 1, + no_orders_to_display => 1 + ); + output_html_with_http_headers $input, $cookie, $template->output; + exit; +} + my $op = $input->param('op') // ''; if ($op eq 'cancelreceipt') { @@ -128,29 +140,10 @@ if ($op eq 'cancelreceipt') { } } -my $invoice = GetInvoiceDetails($invoiceid); my $booksellerid = $invoice->{booksellerid}; my $bookseller = GetBookSellerFromId($booksellerid); my $gst = $bookseller->{gstrate} // C4::Context->preference("gist") // 0; my $datereceived = C4::Dates->new(); -my $code = $input->param('code'); -my @rcv_err = $input->param('error'); -my @rcv_err_barcode = $input->param('error_bc'); - - - -# If receiving error, report the error (coming from finishrecieve.pl(sic)). -if( scalar(@rcv_err) ) { - my $cnt=0; - my $error_loop; - for my $err (@rcv_err) { - push @$error_loop, { "error_$err" => 1 , barcode => $rcv_err_barcode[$cnt] }; - $cnt++; - } - $template->param( receive_error => 1 , - error_loop => $error_loop, - ); -} my $cfstr = "%.2f"; # currency format string -- could get this from currency table. my @parcelitems = @{ $invoice->{orders} }; diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/parcel.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/parcel.tt index 415c7e8..10382cb 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/parcel.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/parcel.tt @@ -14,6 +14,7 @@ dt_overwrite_html_sorting_localeCompare(); $(document).ready(function(){ + if ( $("#pendingt").length ) { var pendingt = $("#pendingt").dataTable($.extend(true, {}, dataTablesDefaults, { "bStateSave": true, "iCookieDuration": 60*60*24*1000, // 1000 days @@ -35,6 +36,8 @@ ], "sPaginationType": "four_button" } ) ); + } + if ( $("#receivedt").length ) { var receivedt = $("#receivedt").dataTable($.extend(true, {}, dataTablesDefaults, { "bStateSave": true, "iCookieDuration": 60*60*24*1000, // 1000 days @@ -55,11 +58,7 @@ ], "sPaginationType": "four_button" } ) ); -/* - $("#pendingt").tablesorter({ - headers: { 2: { sorter: 'articles' },3: { sorter: false },8:{sorter:false}} - }); -*/ + } }); @@ -144,7 +143,7 @@ [% END %] [% IF (error_cancelling_receipt) %] - <div class="error"> + <div class="dialog error"> Cannot cancel receipt. Possible reasons : <ul> <li> @@ -161,6 +160,13 @@ </div> [% END %] + [% IF error_invoice_not_known %] + <div class="dialog error"> + The invoice referenced by this invoiceid does not exist. + </div> + [% END %] + +[% UNLESS no_orders_to_display %] <div id="acqui_receive_summary"> <p><strong>Invoice number:</strong> [% invoice %] <strong>Received by:</strong> [% loggedinusername %] <strong>On:</strong> [% formatteddatereceived %]</p> </div> @@ -200,9 +206,9 @@ [% END %] <br /> [% IF ( loop_order.notes ) %] - <p class="ordernote"><strong>Note: </strong>[% loop_order.notes|html %] [<a href="/cgi-bin/koha/acqui/modordernotes.pl?ordernumber=[% loop_order.ordernumber %]&referrer=/cgi-bin/koha/acqui/parcel.pl%3Fbooksellerid=[% loop_order.booksellerid %]&datereceived=[% loop_order.invoicedatereceived %]&invoice=[% loop_order.invoice %]">Change note</a>]</p> + <p class="ordernote"><strong>Note: </strong>[% loop_order.notes|html %] [<a href="/cgi-bin/koha/acqui/modordernotes.pl?ordernumber=[% loop_order.ordernumber %]&referrer=/cgi-bin/koha/acqui/parcel.pl%3Finvoiceid=[% invoiceid %]">Change note</a>]</p> [% ELSE %] - [<a href="/cgi-bin/koha/acqui/modordernotes.pl?ordernumber=[% loop_order.ordernumber %]&referrer=/cgi-bin/koha/acqui/parcel.pl%3Fbooksellerid=[% loop_order.booksellerid %]&datereceived=[% loop_order.invoicedatereceived %]&invoice=[% loop_order.invoice %]">Add note</a>] + [<a href="/cgi-bin/koha/acqui/modordernotes.pl?ordernumber=[% loop_order.ordernumber %]&referrer=/cgi-bin/koha/acqui/parcel.pl%3Finvoiceid=[% invoiceid %]">Add note</a>] [% END %] </td> <td><a href="/cgi-bin/koha/catalogue/showmarc.pl?id=[% loop_order.biblionumber %]" title="MARC" rel="gb_page_center[600,500]">MARC</a> | <a href="/cgi-bin/koha/catalogue/showmarc.pl?viewas=card&id=[% loop_order.biblionumber %]" title="MARC" rel="gb_page_center[600,500]">Card</a></td> @@ -333,7 +339,6 @@ [% ELSE %]There are no received orders.[% END %] </div> -<!--<form action="/cgi-bin/koha/acqui/parcels.pl?booksellerid=[% booksellerid %]" method="post">--> [% IF (invoiceclosedate) %] <a href="/cgi-bin/koha/acqui/invoice.pl?invoiceid=[% invoiceid %]">View invoice</a> [% ELSE %] @@ -345,8 +350,12 @@ </form> [% END %] +[% END %] + </div> </div> + + <div class="yui-b"> <form action="/cgi-bin/koha/acqui/parcel.pl" id="filterform" method="post"> <fieldset class="brief"> -- 1.7.10.4