From 37a0e888199f1a1f8eefd38ad6ada786403fe034 Mon Sep 17 00:00:00 2001 From: Kyle M Hall Date: Tue, 18 Feb 2014 09:47:32 -0500 Subject: [PATCH] Bug 11783: ensure CD field in SIP patron information response is populated If a patron has a record-level hold that is unavailable, any patron information request will send back an empty CD field when this field should have an item barcode in it [RM note: this actually isn't universally true -- the SIP2 standard is silent as to what is supposed to go in the CD field. Some SIP2 devices do indeed want an item barcode, but others are known to just want a display of the title and author of the request in question. Providing an option is the topic of a new enhancement request, however.] This is due to a minor error in ILS::Patron::_get_outstanding_holds where GetItemnumbersForBiblio is assumed to return an array but in reality returns an arrayref. Test Plan: 1) Create a record level hold for a patron and record 2) Using SIP2, make a patron information request 3) Note the empty CD fields 4) Apply this patch, restart SIP server 5) Repeat step 2 6) Note the CD field now has a barcode Signed-off-by: Chris Cormack Signed-off-by: Jonathan Druart I did not test this patch but the following code shows me it is correct: use C4::Items; use Data::Dumper; my $biblionumber = 5035; my $itemnumber = (GetItemnumbersForBiblio($biblionumber))[0]; say Dumper $itemnumber; $itemnumber = (GetItemnumbersForBiblio($biblionumber))->[0]; say Dumper $itemnumber; displays: $VAR1 = [ '23168', '23169', '23170', '23171', '23172' ]; $VAR1 = '23168'; Signed-off-by: Galen Charlton --- C4/SIP/ILS/Patron.pm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/C4/SIP/ILS/Patron.pm b/C4/SIP/ILS/Patron.pm index 5b835cad62..4ccd21b246 100644 --- a/C4/SIP/ILS/Patron.pm +++ b/C4/SIP/ILS/Patron.pm @@ -402,7 +402,7 @@ sub _get_outstanding_holds { else { # We need to return a barcode for the biblio so the client # can request the biblio info - $item = ( GetItemnumbersForBiblio($h->{biblionumber}) )[0]; + $item = ( GetItemnumbersForBiblio($h->{biblionumber}) )->[0]; } $h->{barcode} = GetBarcodeFromItemnumber($item); } -- 2.39.5