From: Bill Erickson Date: Fri, 30 Oct 2020 22:15:15 +0000 (-0400) Subject: LP1901930 SIP2Mediator checkin support X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=41a50085790efadeb469d52736a5e75e9e5f4ede;p=working%2FEvergreen.git LP1901930 SIP2Mediator checkin support 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 13ac5a250e..8c88e086b3 100644 --- a/Open-ILS/src/perlmods/lib/OpenILS/Application/SIP2.pm +++ b/Open-ILS/src/perlmods/lib/OpenILS/Application/SIP2.pm @@ -447,7 +447,7 @@ sub handle_checkout { {AA => $patron_barcode}, {AB => $item_barcode}, $msg ? {AF => $msg} : (), - $circ ? {AH => $circ_details->{due_date}} : (); + $circ ? {AH => $circ_details->{due_date}} : (), {AJ => $item_details->{title}}, $circ ? {BK => $circ->id} : (), {AO => $config->{institution}}, @@ -476,12 +476,13 @@ sub handle_checkin { 0, # checkin ok $SC->sipbool(0), # resensitize $SC->sipbool(0), # magnetic media - 'N' # alert + 'N', # alert $SC->sipdate, # transaction date ], fields => [ - {AA => $patron_barcode}, + {AB => $item_barcode}, {AO => $config->{institution}}, + {CV => '00'} # unkown alert type ] } unless $item_details; @@ -492,24 +493,10 @@ sub handle_checkin { item_details => $item_details ); - return { - code => '10', - fixed_fields => [ - 0, # checkin ok - $SC->sipbool(0), # resensitize - $SC->sipbool(0), # magnetic media - 'Y' # alert - $SC->sipdate, # transaction date - ], - fields => [ - {AA => $patron_barcode}, - {AO => $config->{institution}}, - {CV => '00'} # unkown alert type - ] - } - my $msg = $checkin_details->{screen_msg}; my $magnetic = $item_details->{magnetic_media}; + my $hold_bc = $checkin_details->{hold_patron_barcode}; + my $hold_name = $checkin_details->{hold_patron_name}; return { fixed_fields => [ @@ -520,7 +507,7 @@ sub handle_checkin { $SC->sipdate, # transaction date ], fields => [ - {AA => $patron_barcode}, + {AA => $checkin_details->{patron_barcode}}, {AB => $item_barcode}, $msg ? {AF => $msg} : (), {AJ => $item_details->{title}}, @@ -532,7 +519,9 @@ sub handle_checkin { {CI => 0}, # security inhibit {CK => $item_details->{media_type}}, {CV => $checkin_details->{alert_type}}, - {CT => $details->{destination_loc}} + {CT => $checkin_details->{destination_loc}}, + $hold_bc ? {CY => $hold_bc} : (), + $hold_name ? {DA => $hold_name} : () ] }; } 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 7c65cf0e4a..e309958bf0 100644 --- a/Open-ILS/src/perlmods/lib/OpenILS/Application/SIP2/Checkin.pm +++ b/Open-ILS/src/perlmods/lib/OpenILS/Application/SIP2/Checkin.pm @@ -85,6 +85,11 @@ sub perform_checkin { $SC->org_sn_from_id($session, $copy->circ_lib); } + if ($circ) { + my $card = $session->editor->retrieve_actor_user($circ->usr); + $details->{patron_barcode} = $card->barcode if $card; + } + $class->handle_hold($session, $details, $payload, %params); if ($textcode eq 'NO_CHANGE' || $textcode eq 'SUCCESS') { diff --git a/Open-ILS/src/perlmods/lib/OpenILS/Application/SIP2/Item.pm b/Open-ILS/src/perlmods/lib/OpenILS/Application/SIP2/Item.pm index 00f623aadb..db07a69f5c 100644 --- a/Open-ILS/src/perlmods/lib/OpenILS/Application/SIP2/Item.pm +++ b/Open-ILS/src/perlmods/lib/OpenILS/Application/SIP2/Item.pm @@ -38,7 +38,7 @@ sub get_item_details { my $details = { item => $item, - security_marker => '02' # matches SIP/Item.pm + security_marker => '02', # matches SIP/Item.pm owning_loc => $item->call_number->owning_lib->sn, current_loc => $item->circ_lib->shortname, permanent_loc => $item->circ_lib->shortname,