From a17493df6766f10f9c6a435b40b26792b2732b07 Mon Sep 17 00:00:00 2001 From: erickson Date: Thu, 20 Aug 2009 20:49:11 +0000 Subject: [PATCH] set hold.shelf_time when item hits the shelf. updated hold notify event def to use shelf_time as the delay field git-svn-id: svn://svn.open-ils.org/ILS/trunk@13907 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- .../perlmods/OpenILS/Application/Circ/Circulate.pm | 22 +++++++++++++++------- Open-ILS/src/sql/Pg/950.data.seed-values.sql | 2 +- 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/Open-ILS/src/perlmods/OpenILS/Application/Circ/Circulate.pm b/Open-ILS/src/perlmods/OpenILS/Application/Circ/Circulate.pm index e7f02407e1..7fed4dff24 100644 --- a/Open-ILS/src/perlmods/OpenILS/Application/Circ/Circulate.pm +++ b/Open-ILS/src/perlmods/OpenILS/Application/Circ/Circulate.pm @@ -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; } diff --git a/Open-ILS/src/sql/Pg/950.data.seed-values.sql b/Open-ILS/src/sql/Pg/950.data.seed-values.sql index a68d74f1ef..af3fcdd88d 100644 --- a/Open-ILS/src/sql/Pg/950.data.seed-values.sql +++ b/Open-ILS/src/sql/Pg/950.data.seed-values.sql @@ -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 -%] -- 2.11.0