Bug 11783: ensure CD field in SIP patron information response is populated
authorKyle M Hall <kyle@bywatersolutions.com>
Tue, 18 Feb 2014 14:47:32 +0000 (09:47 -0500)
committerGalen Charlton <gmc@esilibrary.com>
Wed, 19 Feb 2014 16:55:13 +0000 (16:55 +0000)
commit37a0e888199f1a1f8eefd38ad6ada786403fe034
treef1abd8383c1fc2c67ea5bd45833bc450288bbdd7
parent065a3a5efa9b90723460a607ac85591c17945b00
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 <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';

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
C4/SIP/ILS/Patron.pm