Bug 27908: Add support for circulation status 1 ( other ) for damaged items
authorKyle M Hall <kyle@bywatersolutions.com>
Wed, 10 Mar 2021 15:45:18 +0000 (10:45 -0500)
committerJonathan Druart <jonathan.druart@bugs.koha-community.org>
Mon, 12 Jul 2021 13:47:34 +0000 (15:47 +0200)
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 <ckellermeyer@altadenalibrary.org>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
C4/SIP/ILS/Item.pm
C4/SIP/Sip/MsgType.pm

index 906f436..b2063a4 100644 (file)
@@ -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
     }
index 583fb06..37b34c0 100644 (file)
@@ -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 {