Bug 24389: Better error handle when claiming late orders
authorJonathan Druart <jonathan.druart@bugs.koha-community.org>
Mon, 16 Dec 2019 16:15:19 +0000 (17:15 +0100)
committerMartin Renvoize <martin.renvoize@ptfs-europe.com>
Mon, 17 Feb 2020 13:43:44 +0000 (13:43 +0000)
A successful message says that the email has been sent and the order has
been claimed, but nothing happened.

Test plan:
0. Do not apply this patch
1. Create a new vendor, does not create a contact
2. Create some orders, close the basket
3. Go to the late orders page and claims some orders
=> You get a successful message, but the claim has not been done!
4. Apply this patch
5. Claim the orders
=> You get an error
6. Set a contact for the vendor
7. Claim the orders
=> Success

In the docker container, you may need to:
% apt install postfix
% postfix start
Edit /etc/hosts
127.0.0.1       localhost localhost.localdomain

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Joonas Kylmälä <joonas.kylmala@helsinki.fi>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>

acqui/lateorders.pl

index e2e0ee2..5dc9ea6 100755 (executable)
@@ -112,12 +112,12 @@ if ($op and $op eq "send_alert"){
         }
     };
 
-    if ( $@ ) {
-        $template->param(error_claim => $@);
-    } elsif ( ref $err and exists $err->{error} and $err->{error} eq "no_email" ) {
+    if ( ref $err and exists $err->{error} and $err->{error} eq "no_email" ) {
         $template->{VARS}->{'error_claim'} = "no_email";
     } elsif ( ref $err and exists $err->{error} and $err->{error} eq "no_order_selected"){
         $template->{VARS}->{'error_claim'} = "no_order_selected";
+    } elsif ( $@ or ref $err and exists $err->{error} ) {
+        $template->param(error_claim => $@ || $err->{error});
     } else {
         $template->{VARS}->{'info_claim'} = 1;
     }