set hold.shelf_time when item hits the shelf. updated hold notify event def to use...
authorerickson <erickson@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Thu, 20 Aug 2009 20:49:11 +0000 (20:49 +0000)
committererickson <erickson@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Thu, 20 Aug 2009 20:49:11 +0000 (20:49 +0000)
git-svn-id: svn://svn.open-ils.org/ILS/trunk@13907 dcc99617-32d9-48b4-a31d-7c20da2025e4

Open-ILS/src/perlmods/OpenILS/Application/Circ/Circulate.pm
Open-ILS/src/sql/Pg/950.data.seed-values.sql

index e7f0240..7fed4df 100644 (file)
@@ -1968,11 +1968,12 @@ sub attempt_checkin_hold_capture {
 
     $self->retarget($retarget);
 
-    $logger->info("circulator: found permitted hold ".
-        $hold->id . " for copy, capturing...");
+    $logger->info("circulator: found permitted hold ".$hold->id." for copy, capturing...");
 
     $hold->current_copy($copy->id);
     $hold->capture_time('now');
+    $hold->shelf_time('now') 
+        if $hold->pickup_lib == $self->editor->requestor->ws_ou;
 
     # prevent DB errors caused by fetching 
     # holds from storage, and updating through cstore
@@ -2115,21 +2116,28 @@ sub process_received_transit {
         return $self->bail_on_events($evt);
     }
 
-   # The transit is received, set the receive time
-   $transit->dest_recv_time('now');
+    # The transit is received, set the receive time
+    $transit->dest_recv_time('now');
     $self->bail_on_events($self->editor->event)
         unless $self->editor->update_action_transit_copy($transit);
 
     my $hold_transit = $self->editor->retrieve_action_hold_transit_copy($transit->id);
 
-   $logger->info("circulator: Recovering original copy status in transit: ".$transit->copy_status);
-   $copy->status( $transit->copy_status );
+    $logger->info("circulator: Recovering original copy status in transit: ".$transit->copy_status);
+    $copy->status( $transit->copy_status );
     $self->update_copy();
     return if $self->bail_out;
 
     my $ishold = 0;
     if($hold_transit) { 
-        #$self->do_hold_notify($hold_transit->hold);
+        my $hold = $self->editor->retrieve_action_hold_request($hold_transit->hold);
+
+        # hold has arrived at destination, set shelf time
+        $hold->shelf_time('now');
+        $self->bail_on_events($self->editor->event)
+            unless $self->editor->update_action_hold_request($hold);
+        return if $self->bail_out;
+
         $self->notify_hold($hold_transit->hold);
         $ishold = 1;
     }
index a68d74f..af3fcdd 100644 (file)
@@ -2132,7 +2132,7 @@ INSERT INTO action_trigger.environment (event_def, path) VALUES
 
 
 INSERT INTO action_trigger.event_definition (id, active, owner, name, hook, validator, reactor, delay, delay_field, group_field, template)
-    VALUES (5, 'f', 1, 'Hold Ready for Pickup Email Notification', 'hold.available', 'HoldIsAvailable', 'SendEmail', '30 minutes', 'capture_time', 'usr',
+    VALUES (5, 'f', 1, 'Hold Ready for Pickup Email Notification', 'hold.available', 'HoldIsAvailable', 'SendEmail', '30 minutes', 'shelf_time', 'usr',
 $$
 [%- USE date -%]
 [%- user = target.0.usr -%]