From 36d4a9da90684fd2786649b80f9248203bb97998 Mon Sep 17 00:00:00 2001 From: erickson Date: Sun, 19 Jul 2009 15:35:54 +0000 Subject: [PATCH] added seed data for hold-available notifications. update holdisavail validator to use same basic logic as hold status method git-svn-id: svn://svn.open-ils.org/ILS/trunk@13624 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- .../OpenILS/Application/Trigger/Validator.pm | 16 ++++++------ Open-ILS/src/sql/Pg/950.data.seed-values.sql | 29 ++++++++++++++++++++++ 2 files changed, 37 insertions(+), 8 deletions(-) diff --git a/Open-ILS/src/perlmods/OpenILS/Application/Trigger/Validator.pm b/Open-ILS/src/perlmods/OpenILS/Application/Trigger/Validator.pm index f24a471e8f..b3f2389e4f 100644 --- a/Open-ILS/src/perlmods/OpenILS/Application/Trigger/Validator.pm +++ b/Open-ILS/src/perlmods/OpenILS/Application/Trigger/Validator.pm @@ -4,6 +4,7 @@ use DateTime; use DateTime::Format::ISO8601; use OpenSRF::Utils qw/:datetime/; use OpenSRF::Utils::Logger qw/:logger/; +use OpenILS::Const qw/:const/; sub fourty_two { return 42 } sub NOOP_True { return 1 } sub NOOP_False { return 0 } @@ -33,16 +34,15 @@ sub HoldIsAvailable { my $self = shift; my $env = shift; - my $t = $env->{target}->transit; + my $hold = $env->{target}; - die "Transit object exists, but is not fleshed. Add 'transit' to the environment in order to use this Validator." - if ($t && !ref($t)); + return 1 if + !$hold->cancel_time and + $hold->capture_time and + $hold->current_copy and + $hold->current_copy->status == OILS_COPY_STATUS_ON_HOLDS_SHELF; - if ($t) { - return (defined($env->{target}->capture_time) && defined($t->dest_recv_time)) ? 1 : 0; - } - - return defined($env->{target}->capture_time) ? 1 : 0; + return 0; } 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 ddb5d5ddae..3126774d5c 100644 --- a/Open-ILS/src/sql/Pg/950.data.seed-values.sql +++ b/Open-ILS/src/sql/Pg/950.data.seed-values.sql @@ -2099,5 +2099,34 @@ INSERT INTO action_trigger.environment (event_def, path) VALUES (4, 'provider.addresses'), (4, 'lineitems.attributes'); + +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', +$$ +[%- USE date -%] +[%- user = target.0.usr -%] +To: [%- params.recipient_email || user.email %] +From: [%- params.sender_email || default_sender %] +Subject: Hold Available Notification + +Dear [% user.family_name %], [% user.first_given_name %] +The item(s) you requested are available for pickup from the Library. + +[% FOR hold IN target %] + Title: [% hold.current_copy.call_number.record.simple_record.title %] + Author: [% hold.current_copy.call_number.record.simple_record.author %] + Call Number: [% hold.current_copy.call_number.label %] + Barcode: [% hold.current_copy.barcode %] + Library: [% hold.pickup_lib.name %] +[% END %] + +$$); + +INSERT INTO action_trigger.environment (event_def, path) VALUES + (5, 'current_copy.call_number.record.simple_record'), + (5, 'usr'), + (5, 'pickup_lib.billing_address'); + + SELECT SETVAL('action_trigger.event_definition_id_seq'::TEXT, 100); -- 2.11.0