removed validator version of max delay age
authorerickson <erickson@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Thu, 5 Nov 2009 02:43:21 +0000 (02:43 +0000)
committererickson <erickson@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Thu, 5 Nov 2009 02:43:21 +0000 (02:43 +0000)
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

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

index 9bbd14c..fa6f230 100644 (file)
@@ -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 {
index bf3585e..6c94702 100644 (file)
@@ -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';
index 333a86c..d0b952b 100644 (file)
@@ -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.');