LP#1180479: Koha Bug 3723: Correct return of Institution in Patron Info Resp
authorColin Campbell <colin.campbell@ptfs-europe.com>
Wed, 21 Oct 2009 08:54:18 +0000 (09:54 +0100)
committerGalen Charlton <gmc@esilibrary.com>
Tue, 8 Jul 2014 15:50:53 +0000 (08:50 -0700)
While the comment correctly notes that the order of variable length
fields is not fixed some units expect mandatory fields to
follow the sequence in the protocol definition and fail
parsing otherwise. Moved institution id to its expected
place in the patron information response.

Signed-off-by: Galen Charlton <gmcharlt@gmail.com>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Conflicts:

Sip/MsgType.pm

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Sip/MsgType.pm

index 4892ca1..1c4b080 100644 (file)
@@ -944,6 +944,8 @@ sub handle_patron_info {
         $resp .= add_count('patron_info/recall_items',  scalar @{$patron->recall_items(undef,undef,1) });
         $resp .= add_count('patron_info/unavail_holds', scalar @{$patron->unavail_holds(undef,undef,1)});
 
+        $resp .= add_field(FID_INST_ID, $server->{ils}->institution);
+
         # while the patron ID we got from the SC is valid, let's
         # use the one returned from the ILS, just in case...
         $resp .= add_field(FID_PATRON_ID, $patron->id);
@@ -1009,19 +1011,18 @@ sub handle_patron_info {
         # no personal name, and is invalid (if we're using 2.00)
         $resp .= 'YYYY' . (' ' x 10) . $lang . Sip::timestamp();
         $resp .= '0000' x 6;
-        $resp .= add_field(FID_PERSONAL_NAME, '');
 
+        $resp .= add_field(FID_INST_ID, $server->{ils}->institution);
         # the patron ID is invalid, but it's a required field, so
         # just echo it back
         $resp .= add_field(FID_PATRON_ID, $fields->{(FID_PATRON_ID)});
+        $resp .= add_field(FID_PERSONAL_NAME, '');
 
         if ($protocol_version >= 2) {
             $resp .= add_field(FID_VALID_PATRON, 'N');
         }
     }
 
-    $resp .= add_field(FID_INST_ID, $server->{ils}->institution);
-
     $self->write_msg($resp);
 
     return(PATRON_INFO);