Browse Source

Bug 16755 - allow SIP2 field DA ( hold patron name ) to be customized

The SIP2 DA field that Koha transmits is an odd and arbitrary format
that some SIP2 clients cannot handle. It would be best if this
format were customizable on a per-login basis in the same manner as
the AV field.

Test Plan:
1) Find an item that is checked out with holds
2) Return the item via SIP2 ( using the SIP2 cli emulator )
3) Note the value of the DA field
4) Apply this patch, restart your SIP2 server
5) Repeat step 2
6) Note the DA field value has not changed
7) Add this parameter to the login stanza you are using:
   da_field_template="[% patron.surname %][% IF patron.firstname %], [% patron.firstname %][% END %]"
8) Restart the SIP2 server again
9) Repeat step 2
10) Note the DA field returned is now in the format "$surname, $firstname"

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Benjamin Daeuber <BDaeuber@cityoffargo.com>

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
17.11.x
Kyle Hall 7 years ago
committed by Jonathan Druart
parent
commit
a78bb5ba1c
  1. 18
      C4/SIP/ILS/Item.pm
  2. 2
      C4/SIP/Sip/MsgType.pm
  3. 1
      etc/SIPconfig.xml

18
C4/SIP/ILS/Item.pm

@ -11,6 +11,7 @@ use warnings;
use Sys::Syslog qw(syslog);
use Carp;
use Template;
use C4::SIP::ILS::Transaction;
@ -23,7 +24,7 @@ use C4::Members;
use C4::Reserves;
use Koha::Database;
use Koha::Biblios;
use Koha::Patrons;
=encoding UTF-8
@ -161,8 +162,19 @@ sub hold_patron_id {
}
sub hold_patron_name {
my $self = shift;
my $borrowernumber = (@_ ? shift: $self->hold_patron_id()) or return;
my ( $self, $template ) = @_;
my $borrowernumber = $self->hold_patron_id() or return;
if ($template) {
my $tt = Template->new();
my $patron = Koha::Patrons->find($borrowernumber);
my $output;
$tt->process( \$template, { patron => $patron }, \$output );
return $output;
}
my $holder = GetMember(borrowernumber=>$borrowernumber);
unless ($holder) {
syslog("LOG_ERR", "While checking hold, GetMember failed for borrowernumber '$borrowernumber'");

2
C4/SIP/Sip/MsgType.pm

@ -671,7 +671,7 @@ sub handle_checkin {
$resp .= maybe_add( FID_CALL_NUMBER, $item->call_number );
$resp .= maybe_add( FID_DESTINATION_LOCATION, $item->destination_loc );
$resp .= maybe_add( FID_HOLD_PATRON_ID, $item->hold_patron_bcode );
$resp .= maybe_add( FID_HOLD_PATRON_NAME, $item->hold_patron_name );
$resp .= maybe_add( FID_HOLD_PATRON_NAME, $item->hold_patron_name( $server->{account}->{da_field_template} ) );
if ( $status->hold and $status->hold->{branchcode} ne $item->destination_loc ) {
warn 'SIP hold mismatch: $status->hold->{branchcode}=' . $status->hold->{branchcode} . '; $item->destination_loc=' . $item->destination_loc;

1
etc/SIPconfig.xml

@ -51,6 +51,7 @@
<login id="lpl-sc-beacock" password="xyzzy"
delimiter="|" error-detect="enabled" institution="LPL"
send_patron_home_library_in_af="1"
da_field_template="[% patron.surname %][% IF patron.firstname %], [% patron.firstname %][% END %]"
av_field_template="[% accountline.description %] [% accountline.amountoutstanding | format('%.2f') %]" >
<screen_msg_regex find="Greetings from Koha." replace="Welcome to your library!" />
<screen_msg_regex find="Invalid patron barcode." replace="Barcode not found, are you sure this is your library card?" />

Loading…
Cancel
Save