From: Bill Erickson Date: Mon, 28 Nov 2022 23:05:18 +0000 (-0500) Subject: LP1901930 Add some missing SIP fields X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=86de4ce001a2149726ff31fd9bb3c664b32b9e34;p=working%2FEvergreen.git LP1901930 Add some missing SIP fields Signed-off-by: Bill Erickson --- diff --git a/Open-ILS/src/perlmods/lib/OpenILS/Application/SIP2.pm b/Open-ILS/src/perlmods/lib/OpenILS/Application/SIP2.pm index 85859a20bd..f7c2a20f36 100644 --- a/Open-ILS/src/perlmods/lib/OpenILS/Application/SIP2.pm +++ b/Open-ILS/src/perlmods/lib/OpenILS/Application/SIP2.pm @@ -319,7 +319,7 @@ sub handle_patron_info { {PB => $SC->sipymd($patron->dob, 1)}, {PC => $patron->profile->name}, {XI => $patron->id}, - $SC->stat_cat_sip_fields($details->{item}) + $SC->stat_cat_sip_fields($patron) ); $SC->maybe_add_field($response, BD => $details->{patron_address}); @@ -388,11 +388,7 @@ sub patron_response_common_data { return { fixed_fields => [ - $SC->spacebool(1), # charge denied - $SC->spacebool(1), # renew denied - $SC->spacebool(1), # recall denied - $SC->spacebool(1), # holds denied - split('', (' ' x 10)), + ' ' x 14, '000', # language $SC->sipdate ], @@ -407,23 +403,30 @@ sub patron_response_common_data { } my $patron = $details->{patron}; + + # SIP/JSON clients treat the patron status string as a single + # fixed field entry. + my $status = + $SC->spacebool($details->{charge_denied}) + . $SC->spacebool($details->{renew_denied}) + . $SC->spacebool($details->{recall_denied}) + . $SC->spacebool($details->{holds_denied}) + . $SC->spacebool($patron->card->active eq 'f') + . $SC->spacebool(0) # too many charged + . $SC->spacebool($details->{too_may_overdue}) + . $SC->spacebool(0) # too many renewals + . $SC->spacebool(0) # too many claims retruned + . $SC->spacebool(0) # too many lost + . $SC->spacebool($details->{too_many_fines}) + . $SC->spacebool($details->{too_many_fines}) + . $SC->spacebool(0) # recall overdue + . $SC->spacebool($details->{too_many_fines}) + ; + return { fixed_fields => [ - $SC->spacebool($details->{charge_denied}), - $SC->spacebool($details->{renew_denied}), - $SC->spacebool($details->{recall_denied}), - $SC->spacebool($details->{holds_denied}), - $SC->spacebool($patron->card->active eq 'f'), - $SC->spacebool(0), # too many charged - $SC->spacebool($details->{too_may_overdue}), - $SC->spacebool(0), # too many renewals - $SC->spacebool(0), # too many claims retruned - $SC->spacebool(0), # too many lost - $SC->spacebool($details->{too_many_fines}), - $SC->spacebool($details->{too_many_fines}), - $SC->spacebool(0), # recall overdue - $SC->spacebool($details->{too_many_fines}), + $status, '000', # language $SC->sipdate ],