FID_PATRON_PWD is a valid field in a "Renew All" message. Also
authordjfiander <djfiander>
Fri, 23 Jun 2006 02:32:24 +0000 (02:32 +0000)
committerdjfiander <djfiander>
Fri, 23 Jun 2006 02:32:24 +0000 (02:32 +0000)
fix handling of failure status returned from ILS::renew_all.

Sip/MsgType.pm

index 1200075..ec29ea8 100644 (file)
@@ -257,7 +257,8 @@ my %handlers = (
                            template => "A18",
                            template_len => 18,
                            fields => [(FID_INST_ID), (FID_PATRON_ID),
-                                      (FID_TERMINAL_PWD), (FID_FEE_ACK)],
+                                      (FID_PATRON_PWD), (FID_TERMINAL_PWD),
+                                      (FID_FEE_ACK)],
                        }
                    }
                }
@@ -1363,10 +1364,19 @@ sub handle_renew_all {
     $status = $ils->renew_all($patron_id, $patron_pwd, $fee_ack);
 
     $resp .= $status->ok ? '1' : '0';
-    @renewed = @{$status->renewed};
-    @unrenewed = @{$status->unrenewed};
-    $resp .= add_count("renew_all/renewed_count", scalar @renewed);
-    $resp .= add_count("renew_all/unrenewed_count", scalar @unrenewed);
+
+    if (!$status->ok) {
+       $resp .= add_count("renew_all/renewed_count", 0);
+       $resp .= add_count("renew_all/unrenewed_count", 0);
+       @renewed = [];
+       @unrenewed = [];
+    } else {
+       @renewed = @{$status->renewed};
+       @unrenewed = @{$status->unrenewed};
+       $resp .= add_count("renew_all/renewed_count", scalar @renewed);
+       $resp .= add_count("renew_all/unrenewed_count", scalar @unrenewed);
+    }
+
     $resp .= Sip::timestamp;
     $resp .= add_field(FID_INST_ID, $ils->institution);