From de0edc201e26450c3f06a3eb07e7a0982b586f61 Mon Sep 17 00:00:00 2001 From: erickson Date: Thu, 5 Nov 2009 02:43:21 +0000 Subject: [PATCH] removed validator version of max delay age replaced max delay params with max delay column in seed data for default overdue/courtesy notices sort between params in trigger max-delay by oldest date first git-svn-id: svn://svn.open-ils.org/ILS/trunk@14781 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- .../src/perlmods/OpenILS/Application/Trigger.pm | 4 ++-- .../OpenILS/Application/Trigger/Validator.pm | 21 --------------------- Open-ILS/src/sql/Pg/950.data.seed-values.sql | 15 ++++----------- 3 files changed, 6 insertions(+), 34 deletions(-) diff --git a/Open-ILS/src/perlmods/OpenILS/Application/Trigger.pm b/Open-ILS/src/perlmods/OpenILS/Application/Trigger.pm index 9bbd14c216..fa6f230c80 100644 --- a/Open-ILS/src/perlmods/OpenILS/Application/Trigger.pm +++ b/Open-ILS/src/perlmods/OpenILS/Application/Trigger.pm @@ -391,8 +391,8 @@ sub create_batch_events { my @times = sort {$a <=> $b} interval_to_seconds($def->delay), interval_to_seconds($def->max_delay); $filter->{ $def->delay_field } = { 'between' => [ - DateTime->now->subtract( seconds => $times[0] )->strftime( '%F %T%z' ), - DateTime->now->subtract( seconds => $times[1] )->strftime( '%F %T%z' ) + DateTime->now->subtract( seconds => $times[1] )->strftime( '%F %T%z' ), + DateTime->now->subtract( seconds => $times[0] )->strftime( '%F %T%z' ) ] }; } else { diff --git a/Open-ILS/src/perlmods/OpenILS/Application/Trigger/Validator.pm b/Open-ILS/src/perlmods/OpenILS/Application/Trigger/Validator.pm index bf3585e3f6..6c94702b4c 100644 --- a/Open-ILS/src/perlmods/OpenILS/Application/Trigger/Validator.pm +++ b/Open-ILS/src/perlmods/OpenILS/Application/Trigger/Validator.pm @@ -14,7 +14,6 @@ sub CircIsOpen { my $env = shift; return 0 if (defined($env->{target}->checkin_time)); - return 0 if ($env->{params}->{max_delay_age} && !$self->MaxPassiveDelayAge($env)); if ($env->{params}->{min_target_age}) { $env->{params}->{target_age_field} = 'xact_start'; @@ -24,25 +23,6 @@ sub CircIsOpen { return 1; } -sub MaxPassiveDelayAge { - my $self = shift; - my $env = shift; - my $target = $env->{target}; - my $delay_field = $env->{event}->event_def->delay_field; - - my $delay_field_ts = DateTime::Format::ISO8601->new->parse_datetime(clense_ISO8601($target->$delay_field())); - - # the cutoff date is the target timestamp + the delay + the max_delay_age - # This is also true for negative delays. For example: - # due_date + "-3 days" + "1 day" == -2 days old. - $delay_field_ts - ->add( seconds => interval_to_seconds( $env->{event}->event_def->delay ) ) - ->add( seconds => interval_to_seconds( $env->{params}->{max_delay_age} ) ); - - return 1 if $delay_field_ts > DateTime->now; - return 0; -} - sub MinPassiveTargetAge { my $self = shift; my $env = shift; @@ -65,7 +45,6 @@ sub CircIsOverdue { return 0 if $circ->checkin_time; return 0 if $circ->stop_fines and not $circ->stop_fines =~ /MAXFINES|LONGOVERDUE/; - return 0 if ($env->{params}->{max_delay_age} && !$self->MaxPassiveDelayAge($env)); if ($env->{params}->{min_target_age}) { $env->{params}->{target_age_field} = 'xact_start'; 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 333a86c255..d0b952b75d 100644 --- a/Open-ILS/src/sql/Pg/950.data.seed-values.sql +++ b/Open-ILS/src/sql/Pg/950.data.seed-values.sql @@ -1901,8 +1901,8 @@ INSERT INTO container.user_bucket_type (code,label) VALUES ('folks:hold.cancel', -- Sample Overdue Notice -- -INSERT INTO action_trigger.event_definition (id, active, owner, name, hook, validator, reactor, delay, delay_field, group_field, template) - VALUES (1, 'f', 1, '7 Day Overdue Email Notification', 'checkout.due', 'CircIsOverdue', 'SendEmail', '7 days', 'due_date', 'usr', +INSERT INTO action_trigger.event_definition (id, active, owner, name, hook, validator, reactor, delay, delay_field, group_field, max_delay, template) + VALUES (1, 'f', 1, '7 Day Overdue Email Notification', 'checkout.due', 'CircIsOverdue', 'SendEmail', '7 days', '8 days', 'due_date', 'usr', $$ [%- USE date -%] [%- user = target.0.usr -%] @@ -1930,9 +1930,6 @@ INSERT INTO action_trigger.environment (event_def, path) VALUES (1, 'billable_transaction.summary'), (1, 'circ_lib.billing_address'); -INSERT INTO action_trigger.event_params (event_def, param, value) VALUES - (1, 'max_delay_age', '"1 day"'); - -- Sample Mark Long-Overdue Item Lost -- INSERT INTO action_trigger.event_definition (id, active, owner, name, hook, validator, reactor, delay, delay_field) @@ -2340,8 +2337,8 @@ INSERT INTO config.org_unit_setting_type (name, label, description, datatype) -- Sample Pre-due Notice -- -INSERT INTO action_trigger.event_definition (id, active, owner, name, hook, validator, reactor, delay, delay_field, group_field, template) - VALUES (6, 'f', 1, '3 Day Courtesy Notice', 'checkout.due', 'MaxPassiveDelayAge', 'SendEmail', '-3 days', 'due_date', 'usr', +INSERT INTO action_trigger.event_definition (id, active, owner, name, hook, validator, reactor, delay, delay_field, group_field, max_delay, template) + VALUES (6, 'f', 1, '3 Day Courtesy Notice', 'checkout.due', 'MaxPassiveDelayAge', 'SendEmail', '-3 days', 'due_date', 'usr', '-2 days', $$ [%- USE date -%] [%- user = target.0.usr -%] @@ -2368,10 +2365,6 @@ INSERT INTO action_trigger.environment (event_def, path) VALUES (6, 'usr'), (6, 'circ_lib.billing_address'); -INSERT INTO action_trigger.event_params (event_def, param, value) VALUES - (6, 'max_delay_age', '"1 day"'); - - -- ApplyPatronPenalty A/T Reactor INSERT INTO action_trigger.reactor (module,description) VALUES ('ApplyPatronPenalty','Applies the conifigured penalty to a patron. Required named environment variables are "user", which refers to the user object, and "context_org", which refers to the org_unit object that acts as the focus for the penalty.'); -- 2.11.0