Bug 9252 - Add option to send patron's home branch in AF field
authorKyle M Hall <kyle@bywatersolutions.com>
Mon, 10 Dec 2012 13:54:24 +0000 (08:54 -0500)
committerGalen Charlton <gmc@esilibrary.com>
Sun, 8 Sep 2013 06:07:38 +0000 (06:07 +0000)
This patch gives you the option of sending a patrons home branch code
in an AF field for patron status requests. It is controlled at the account
login level, so it can be enable on a per-sip-login basis.

Test Plan:
1) Apply patch
2) Edit SIPconfig.xml, add the parameter 'send_patron_home_library_in_af="1"'
   to the login you will be using to test.
3) Start your SIP2 server.
4) Connect to it via telnet ( something like: '9300CNterm1|COterm1|CPCPL|' )
5) Send a patron status request ( like: '2300120121110    82925AOCPL|AA23529000035676|ACterm1|ADletmein' )
6) Examine reponse you should see something like this:
      "24              00120121210    085332AEHenry Acevedo|AA23529000035676|BLY|CQN|AFGreetings from Koha. |AFMPL|AO|"
   Note the second AF field with the value MPL.

Signed-off-by: George Williams <georgew@latahlibrary.org>
Signed-off-by: Christopher Brannon <cbrannon@cdalibrary.org>
Signed-off-by: Chris Cormack <chris@bigballofwax.co.nz>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>

C4/SIP/Sip/MsgType.pm
etc/SIPconfig.xml

index 6d7ff6f..efb3ca4 100644 (file)
@@ -431,7 +431,8 @@ sub handle {
 # information will be returned to the terminal.
 # 
 sub build_patron_status {
-    my ($patron, $lang, $fields)= @_;
+    my ($patron, $lang, $fields, $server)= @_;
+
     my $patron_pwd = $fields->{(FID_PATRON_PWD)};
     my $resp = (PATRON_STATUS_RESP);
 
@@ -451,7 +452,10 @@ sub build_patron_status {
            $resp .= maybe_add(FID_FEE_AMT, $patron->fee_amount);
        }
 
-       $resp .= maybe_add(FID_SCREEN_MSG, $patron->screen_msg);
+    $resp .= maybe_add( FID_SCREEN_MSG, $patron->screen_msg );
+    $resp .= maybe_add( FID_SCREEN_MSG, $patron->{branchcode} )
+      if ( $server->{account}->{send_patron_home_library_in_af} );
+
        $resp .= maybe_add(FID_PRINT_LINE, $patron->print_line);
     } else {
        # Invalid patron id.  Report that the user has no privs.,
@@ -485,7 +489,7 @@ sub handle_patron_status {
        #warn $fields->{(FID_INST_ID)};
     $ils->check_inst_id($fields->{(FID_INST_ID)}, "handle_patron_status");
     $patron = $ils->find_patron($fields->{(FID_PATRON_ID)});
-    $resp = build_patron_status($patron, $lang, $fields);
+    $resp = build_patron_status($patron, $lang, $fields, $server );
     $self->write_msg($resp,undef,$server->{account}->{terminator});
     return (PATRON_STATUS_REQ);
 }
@@ -993,7 +997,10 @@ sub handle_patron_info {
         # Custom protocol extension to report patron internet privileges
         $resp .= maybe_add(FID_INET_PROFILE,     $patron->inet_privileges);
 
-        $resp .= maybe_add(FID_SCREEN_MSG,       $patron->screen_msg);
+        $resp .= maybe_add( FID_SCREEN_MSG, $patron->screen_msg );
+        $resp .= maybe_add( FID_SCREEN_MSG, $patron->{branchcode} )
+          if ( $server->{account}->{send_patron_home_library_in_af} );
+
         $resp .= maybe_add(FID_PRINT_LINE,       $patron->print_line);
     } else {
         # Invalid patron ID:
index 37ce187..bd464e2 100644 (file)
@@ -41,7 +41,8 @@
       <login id="koha2"  password="koha" institution="kohalibrary2" terminator="CR" />
       <login id="lpl-sc" password="1234" institution="LPL" />
       <login id="lpl-sc-beacock" password="xyzzy"
-             delimiter="|" error-detect="enabled" institution="LPL" />
+             delimiter="|" error-detect="enabled" institution="LPL"
+             send_patron_home_library_in_af="1" />
   </accounts>
 
 <!--