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. This is due to a minor error in ILS::Patron::_get_outstanding_hodsl where GetItemnumbersForBiblio is assumed to return an array but in reality returns an arrayref.
Created attachment 25375 [details] [review] Bug 11783 - Record level unavailable holds sending empty CD field rather than item barcode 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. This is due to a minor error in ILS::Patron::_get_outstanding_hodsl 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
Created attachment 25403 [details] [review] Bug 11783 - Record level unavailable holds sending empty CD field rather than item barcode 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. This is due to a minor error in ILS::Patron::_get_outstanding_hodsl 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 <chris@bigballofwax.co.nz>
Created attachment 25440 [details] [review] Bug 11783 - Record level unavailable holds sending empty CD field rather than item barcode 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. This is due to a minor error in ILS::Patron::_get_outstanding_hodsl 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 <chris@bigballofwax.co.nz> Signed-off-by: Jonathan Druart <jonathan.druart@biblibre.com> 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';
Pushed to master. Thanks, Kyle! I note that a warning will likely be logged if there are no items attached to the being being requested (as might happen if the items were deleted after the request was placed). However, that would have happened prior to this patch as well.
Pushed to 3.14.x, will be in 3.14.07