From 86de4ce001a2149726ff31fd9bb3c664b32b9e34 Mon Sep 17 00:00:00 2001 From: Bill Erickson Date: Mon, 28 Nov 2022 18:05:18 -0500 Subject: [PATCH] LP1901930 Add some missing SIP fields Signed-off-by: Bill Erickson --- .../src/perlmods/lib/OpenILS/Application/SIP2.pm | 43 ++++++++++++---------- 1 file changed, 23 insertions(+), 20 deletions(-) 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 ], -- 2.11.0