Add support for PINES requested extension: Patron Info Response
authordjfiander <djfiander>
Tue, 11 Mar 2008 21:37:05 +0000 (21:37 +0000)
committerdjfiander <djfiander>
Tue, 11 Mar 2008 21:37:05 +0000 (21:37 +0000)
now includes AQ "Home Library" field.

Sip/Constants.pm
Sip/MsgType.pm
t/02patron_info.t
t/SIPtest.pm

index f210046..dfde788 100644 (file)
@@ -31,10 +31,10 @@ our (@ISA, @EXPORT_OK, %EXPORT_TAGS);
                FID_PRINT_LINE FID_DUE_DATE FID_TITLE_ID
                FID_BLOCKED_CARD_MSG FID_LIBRARY_NAME
                FID_TERMINAL_LOCN FID_INST_ID FID_CURRENT_LOCN
-               FID_PERM_LOCN FID_HOLD_ITEMS FID_OVERDUE_ITEMS
-               FID_CHARGED_ITEMS FID_FINE_ITEMS FID_SEQNO
-               FID_CKSUM FID_HOME_ADDR FID_EMAIL FID_HOME_PHONE
-               FID_OWNER FID_CURRENCY FID_CANCEL
+               FID_PERM_LOCN FID_HOME_LIBRARY FID_HOLD_ITEMS
+               FID_OVERDUE_ITEMS FID_CHARGED_ITEMS FID_FINE_ITEMS
+               FID_SEQNO FID_CKSUM FID_HOME_ADDR FID_EMAIL
+               FID_HOME_PHONE FID_OWNER FID_CURRENCY FID_CANCEL
                FID_TRANSACTION_ID FID_VALID_PATRON
                FID_RENEWED_ITEMS FID_UNRENEWED_ITEMS FID_FEE_ACK
                FID_START_ITEM FID_END_ITEM FID_QUEUE_POS
@@ -92,6 +92,7 @@ our (@ISA, @EXPORT_OK, %EXPORT_TAGS);
                                  FID_INST_ID
                                  FID_CURRENT_LOCN
                                  FID_PERM_LOCN
+                                 FID_HOME_LIBRARY
                                  FID_HOLD_ITEMS
                                  FID_OVERDUE_ITEMS
                                  FID_CHARGED_ITEMS
@@ -158,7 +159,7 @@ our (@ISA, @EXPORT_OK, %EXPORT_TAGS);
                           FID_DUE_DATE FID_TITLE_ID
                           FID_BLOCKED_CARD_MSG FID_LIBRARY_NAME
                           FID_TERMINAL_LOCN FID_INST_ID
-                          FID_CURRENT_LOCN FID_PERM_LOCN
+                          FID_CURRENT_LOCN FID_PERM_LOCN FID_HOME_LIBRARY
                           FID_HOLD_ITEMS FID_OVERDUE_ITEMS
                           FID_CHARGED_ITEMS FID_FINE_ITEMS
                           FID_SEQNO FID_CKSUM FID_HOME_ADDR
@@ -259,6 +260,7 @@ use constant {
     FID_INST_ID                => 'AO',
     FID_CURRENT_LOCN           => 'AP',
     FID_PERM_LOCN              => 'AQ',
+    FID_HOME_LIBRARY           => 'AQ', # Extension: AQ in patron info
     # UNUSED AR
     FID_HOLD_ITEMS             => 'AS', # SIP 2.0
     FID_OVERDUE_ITEMS          => 'AT', # SIP 2.0
index ce05b93..65843d8 100644 (file)
@@ -959,6 +959,12 @@ sub handle_patron_info {
        $resp .= maybe_add(FID_EMAIL, $patron->email_addr);
        $resp .= maybe_add(FID_HOME_PHONE, $patron->home_phone);
 
+       # Extension requested by PINES. Report the home system for
+       # the patron in the 'AQ' field. This is normally the "permanent
+       # location" field for an ITEM, but it's not used in PATRON info.
+       # Apparently TLC systems do this.
+       $resp .= maybe_add(FID_HOME_LIBRARY, $patron->home_library);
+
        $resp .= summary_info($ils, $patron, $summary, $start, $end);
 
        $resp .= add_field(FID_VALID_PATRON, 'Y');
index 292c279..2185fd5 100644 (file)
@@ -9,7 +9,7 @@ use Sip::Constants qw(:all);
 
 use SIPtest qw($datepat $textpat $instid $currency $user_barcode $user_pin
               $user_fullname $user_homeaddr $user_email $user_phone
-              $user_birthday $user_ptype $user_inet);
+              $user_birthday $user_ptype $user_inet $user_homelib);
 
 # This is a template test case for the Patron Information
 # message handling.  Because of the large number of fields,
@@ -63,6 +63,9 @@ my $patron_info_test_template = {
               { field    => FID_INET_PROFILE,
                 pat      => qr/^$user_inet$/,
                 required => 1, },
+              { field    => FID_HOME_LIBRARY,
+                pat      => qr/^$user_homelib$/,
+                required => 1, }, # Required for this test
              ], };
 
 my @tests = (
index dc3d514..6177d03 100644 (file)
@@ -15,7 +15,7 @@ our @EXPORT_OK = qw(run_sip_tests no_tagged_fields
                    $instid $currency $server $username $password
                    $user_barcode $user_pin $user_fullname $user_homeaddr
                    $user_email $user_phone $user_birthday $user_ptype
-                   $user_inet
+                   $user_inet $user_homelib
                    $item_barcode $item_title $item_owner
                    $item2_barcode $item2_title $item2_owner
                    $item_diacritic_barcode $item_diacritic_title
@@ -55,6 +55,7 @@ our $user_phone   = '\(519\) 555 1234';
 our $user_birthday= '19640925';
 our $user_ptype   = 'A';
 our $user_inet    = 'Y';
+our $user_homelib = 'Beacock';
 
 # Valid item barcode and corresponding title
 our $item_barcode = '1565921879';