diff --git a/acqui/cancelorder.pl b/acqui/cancelorder.pl index 2d0d36741e..50165c5911 100755 --- a/acqui/cancelorder.pl +++ b/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 ) diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/cancelorder.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/cancelorder.tt index b8d6a35861..520e33bb1e 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/cancelorder.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/cancelorder.tt @@ -62,6 +62,11 @@ [% ELSE %]
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 %]