From 80c1277b8b6d3004a7325c8b9821c89e7a954722 Mon Sep 17 00:00:00 2001 From: Bill Erickson Date: Sun, 1 Nov 2020 11:02:11 -0500 Subject: [PATCH] LP1901930 SIP2Mediator checkin support Signed-off-by: Bill Erickson --- .../src/perlmods/lib/OpenILS/Application/SIP2.pm | 6 ++++++ .../lib/OpenILS/Application/SIP2/Checkin.pm | 23 +++++++++++++++++----- 2 files changed, 24 insertions(+), 5 deletions(-) diff --git a/Open-ILS/src/perlmods/lib/OpenILS/Application/SIP2.pm b/Open-ILS/src/perlmods/lib/OpenILS/Application/SIP2.pm index 8c88e086b3..44109be0ee 100644 --- a/Open-ILS/src/perlmods/lib/OpenILS/Application/SIP2.pm +++ b/Open-ILS/src/perlmods/lib/OpenILS/Application/SIP2.pm @@ -498,7 +498,13 @@ sub handle_checkin { my $hold_bc = $checkin_details->{hold_patron_barcode}; my $hold_name = $checkin_details->{hold_patron_name}; + # XXX + use OpenSRF::Utils::JSON; + $logger->info('SIP checkin details ' . OpenSRF::Utils::JSON->perl2JSON($checkin_details)); + $logger->info('SIP item details ' . OpenSRF::Utils::JSON->perl2JSON($item_details)); + return { + code => '10', fixed_fields => [ $checkin_details->{ok}, # checkin ok $SC->sipbool(!$magnetic), # resensitize diff --git a/Open-ILS/src/perlmods/lib/OpenILS/Application/SIP2/Checkin.pm b/Open-ILS/src/perlmods/lib/OpenILS/Application/SIP2/Checkin.pm index 15a7e28cc3..326019f484 100644 --- a/Open-ILS/src/perlmods/lib/OpenILS/Application/SIP2/Checkin.pm +++ b/Open-ILS/src/perlmods/lib/OpenILS/Application/SIP2/Checkin.pm @@ -20,13 +20,20 @@ sub checkin { my $details = {}; my $override = 0; + use OpenSRF::Utils::JSON; + $logger->info('SIP checkin details 1' . OpenSRF::Utils::JSON->perl2JSON($details)); + for (0, 1) { # 2 checkin requests max - $override = $class->perform_checkin( - $session, $details, $override, %params); + $override = + $class->perform_checkin($session, $details, $override, %params); + + $logger->info('SIP checkin details 5' . OpenSRF::Utils::JSON->perl2JSON($details)); last unless $override; } + + $logger->info('SIP checkin details 6' . OpenSRF::Utils::JSON->perl2JSON($details)); return $details; } @@ -56,7 +63,10 @@ sub perform_checkin { 'open-ils.circ', $method, $session->editor->authtoken, $args); # Treat the first response as the main result. - my $event = $resp->[0] if ref $resp eq 'ARRAY'; + my $event = ref $resp eq 'ARRAY' ? $resp->[0] : $resp; + + $logger->info('SIP checkin details 3' . OpenSRF::Utils::JSON->perl2JSON($details)); + $logger->info('SIP checkin details event' . OpenSRF::Utils::JSON->perl2JSON($event)); return unless $U->is_event($event); # should never happen; fail gracefully @@ -103,6 +113,7 @@ sub perform_checkin { $details->{alert_type} = '04' unless $details->{alert_type}; } else { + $details->{ok} = 0; # unknown $details->{alert} = 1; $details->{alert_type} = '00' unless $details->{alert_type}; @@ -118,9 +129,11 @@ sub handle_hold { return unless $hold; + $logger->info('SIP checkin details 4' . OpenSRF::Utils::JSON->perl2JSON($details)); + my ($pickup_lib_id, $pickup_lib_sn); - my $holder = OpenILS::SIP->editor()->retrieve_actor_user( + my $holder = $session->editor->retrieve_actor_user( [$hold->usr, {flesh => 1, flesh_fields => {au => ['card']}}]); $details->{hold_patron_name} = $SC->format_user_name($holder); @@ -141,7 +154,7 @@ sub handle_hold { $details->{alert} = 1; $details->{destination_loc} = $pickup_lib_sn; $details->{alert_type} = - ($pickup_lib_id == $session->editor->ws_ou) ? '01' : '02'; + ($pickup_lib_id == $session->editor->requestor->ws_ou) ? '01' : '02'; } 1; -- 2.11.0