Bug 11783

Summary: Record level unavailable holds sending empty CD field rather than item barcode
Product: Koha Reporter: Kyle M Hall (khall) <kyle>
Component: SIP2Assignee: Kyle M Hall (khall) <kyle>
Status: CLOSED FIXED QA Contact: Testopia <testopia>
Severity: normal    
Priority: P5 - low CC: colin.campbell, fridolin.somers, gmcharlt
Version: Main   
Hardware: All   
OS: All   
Change sponsored?: --- Patch complexity: Trivial patch
Documentation contact: Documentation submission:
Text to go in the release notes:
Version(s) released in:
Circulation function:
Bug Depends on: 10817    
Bug Blocks:    
Attachments: Bug 11783 - Record level unavailable holds sending empty CD field rather than item barcode
Bug 11783 - Record level unavailable holds sending empty CD field rather than item barcode
Bug 11783 - Record level unavailable holds sending empty CD field rather than item barcode

Description Kyle M Hall (khall) 2014-02-18 14:47:09 UTC
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.
Comment 1 Kyle M Hall (khall) 2014-02-18 14:49:58 UTC Comment hidden (obsolete)
Comment 2 Chris Cormack 2014-02-18 22:07:14 UTC Comment hidden (obsolete)
Comment 3 Jonathan Druart 2014-02-19 11:15:54 UTC
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';
Comment 4 Galen Charlton 2014-02-19 17:18:41 UTC
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.
Comment 5 Fridolin Somers 2014-05-19 15:10:31 UTC
Pushed to 3.14.x, will be in 3.14.07