@@ -, +, @@ at /usr/share/perl/5.28/Carp.pm line 289 Carp::croak('Cannot insert order: Mandatory parameter biblionumber is missing') called at /usr/share/koha/Koha/Acquisition/Order.pm line 79 Koha::Acquisition::Order::store('Koha::Acquisition::Order=HASH(0x55f3760e2860)') called at /usr/share/koha/Koha/Acquisition/Order.pm line 189 Koha::Acquisition::Order::cancel('Koha::Acquisition::Order=HASH(0x55f3760e2860)', 'HASH(0x55f375a17ec0)') called at /usr/share/koha/acqui/cancelorder.pl line 60 --- acqui/cancelorder.pl | 13 +++++++++++-- .../prog/en/modules/acqui/cancelorder.tt | 5 +++++ 2 files changed, 16 insertions(+), 2 deletions(-) --- a/acqui/cancelorder.pl +++ a/acqui/cancelorder.pl @@ -56,8 +56,17 @@ my $delete_biblio = $input->param('del_biblio') ? 1 : 0; if( $action and $action eq "confirmcancel" ) { my $reason = $input->param('reason'); my $order = Koha::Acquisition::Orders->find($ordernumber); - $order->cancel({ reason => $reason, delete_biblio => $delete_biblio }); - my @messages = @{ $order->object_messages }; + my @messages; + if( !$order ) { + push @messages, Koha::Object::Message->new({ message => 'error_order_not_found', type => 'error' }); + $template->param( error_order_not_found => 1 ); + } elsif( $order->datecancellationprinted ) { + push @messages, Koha::Object::Message->new({ message => 'error_order_already_cancelled', type => 'error' }); + $template->param( error_order_already_cancelled => 1 ); + } else { + $order->cancel({ reason => $reason, delete_biblio => $delete_biblio }); + @messages = @{ $order->object_messages }; + } if ( scalar @messages > 0 ) { $template->param( error_delitem => 1 ) --- a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/cancelorder.tt +++ a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/cancelorder.tt @@ -62,6 +62,11 @@ [% ELSE %]
An error has occurred. + [% IF error_order_already_cancelled %] +

The order has been cancelled already.

+ [% ELSIF error_order_not_found %] +

The order could not be found.

+ [% END %] [% IF ( error_delitem ) %]

The order has been cancelled, although one or more items could not have been deleted.

[% END %] --