LP#1438252 SIP honor floating copy checkin location
authorBill Erickson <berickxx@gmail.com>
Mon, 30 Mar 2015 15:19:55 +0000 (11:19 -0400)
committerBen Shum <bshum@biblio.org>
Wed, 19 Aug 2015 03:12:09 +0000 (23:12 -0400)
Report the new value for a copy's circ_lib when it's a floating copy
whose circ_lib is modified during checkin.

This affects the AQ field of the SIP checkin (10) message.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Ben Shum <bshum@biblio.org>
Open-ILS/src/perlmods/lib/OpenILS/SIP/Transaction/Checkin.pm

index ecafcc3..c937892 100644 (file)
@@ -168,6 +168,20 @@ sub do_checkin {
         $copy = $resp->{payload}->{copy} || '';
     }
 
         $copy = $resp->{payload}->{copy} || '';
     }
 
+    if ($copy) {
+        # Checkin of floating copies changes the circ lib.
+        # Update our SIP "item" to reflect the change.
+
+        if ($copy->circ_lib != $self->item->{copy}->circ_lib->id) {
+            syslog('LOG_INFO', "OILS: updating copy circ lib after checkin");
+
+            $self->item->{copy}->circ_lib(
+                OpenILS::SIP->editor()
+                    ->retrieve_actor_org_unit($copy->circ_lib)
+            );
+        }
+    }
+
     if ($self->item->hold) {
         my ($pickup_lib_id, $pickup_lib_sn);
 
     if ($self->item->hold) {
         my ($pickup_lib_id, $pickup_lib_sn);