From 5b17567f2b74bb1347195f4df7e694fbd23eb7a0 Mon Sep 17 00:00:00 2001 From: Kyle M Hall Date: Wed, 10 Mar 2021 10:45:18 -0500 Subject: [PATCH] Bug 27908: Add support for circulation status 1 ( other ) for damaged items Some libraries would like to transmit if an item is damaged via the circulation status field. There is no specific code for a damaged item, so we should use value 1 (other) along with an AF screen message to describe the reason for the the circulation status of 1. Test Plan: 1) Apply these patches 2) prove t/db_dependent/SIP/Transaction.t Signed-off-by: Christopher Kellermeyer - Altadena Library District Signed-off-by: Martin Renvoize Signed-off-by: Jonathan Druart --- C4/SIP/ILS/Item.pm | 3 +++ C4/SIP/Sip/MsgType.pm | 8 +++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/C4/SIP/ILS/Item.pm b/C4/SIP/ILS/Item.pm index 906f4364f8..b2063a48bc 100644 --- a/C4/SIP/ILS/Item.pm +++ b/C4/SIP/ILS/Item.pm @@ -280,6 +280,9 @@ sub sip_circulation_status { elsif ( $self->{location} eq 'CART' ) { return '09'; # waiting to be re-shelved } + elsif ( $self->{damaged} ) { + return '01'; # damaged + } elsif ( $self->{notforloan} < 0 ) { return '02'; # on order } diff --git a/C4/SIP/Sip/MsgType.pm b/C4/SIP/Sip/MsgType.pm index 583fb06b47..37b34c0304 100644 --- a/C4/SIP/Sip/MsgType.pm +++ b/C4/SIP/Sip/MsgType.pm @@ -1207,11 +1207,16 @@ sub handle_item_information { } else { # Valid Item ID, send the good stuff - $resp .= $item->sip_circulation_status; + my $circulation_status = $item->sip_circulation_status; + $resp .= $circulation_status; $resp .= $item->sip_security_marker; $resp .= $item->sip_fee_type; $resp .= timestamp; + if ( $circulation_status eq '01' ) { + $resp .= maybe_add( FID_SCREEN_MSG, "Item is damaged", $server ); + } + $resp .= add_field( FID_ITEM_ID, $item->id, $server ); $resp .= add_field( FID_TITLE_ID, $item->title_id, $server ); @@ -1220,6 +1225,7 @@ sub handle_item_information { $resp .= maybe_add( FID_CURRENT_LOCN, $item->current_location, $server ); $resp .= maybe_add( FID_ITEM_PROPS, $item->sip_item_properties, $server ); + if ( my $CR = $server->{account}->{cr_item_field} ) { $resp .= maybe_add( FID_COLLECTION_CODE, $item->{$CR}, $server ); } else { -- 2.39.5