[freeside-commits] branch master updated. fdb8784fc81fc5c809a8c2e495a9dfa5b30f0d91
Jonathan Prykop
jonathan at 420.am
Mon Apr 25 11:50:47 PDT 2016
The branch, master has been updated
via fdb8784fc81fc5c809a8c2e495a9dfa5b30f0d91 (commit)
from c72a0848224b544426eddec7c63186a5de04280e (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit fdb8784fc81fc5c809a8c2e495a9dfa5b30f0d91
Author: Jonathan Prykop <jonathan at freeside.biz>
Date: Mon Apr 25 13:49:57 2016 -0500
RT#37544 Prevent billing events from running on weekends
diff --git a/FS/FS/part_event/Condition/day_of_week.pm b/FS/FS/part_event/Condition/day_of_week.pm
new file mode 100644
index 0000000..6b84310
--- /dev/null
+++ b/FS/FS/part_event/Condition/day_of_week.pm
@@ -0,0 +1,49 @@
+package FS::part_event::Condition::day_of_week;
+
+use strict;
+use base qw( FS::part_event::Condition );
+use FS::Record qw( dbh );
+
+tie my %dayofweek, 'Tie::IxHash',
+ 0 => 'Sunday',
+ 1 => 'Monday',
+ 2 => 'Tuesday',
+ 3 => 'Wednesday',
+ 4 => 'Thursday',
+ 5 => 'Friday',
+ 6 => 'Saturday',
+;
+
+sub description {
+ "Run only on certain days of the week",
+}
+
+sub option_fields {
+ (
+ 'dayofweek' => {
+ label => 'Days to run',
+ type => 'checkbox-multiple',
+ options => [ values %dayofweek ],
+ option_labels => { map { $_ => $_ } values %dayofweek },
+ },
+ );
+}
+
+sub condition { # is this even necessary? condition_sql is exact.
+ my( $self, $object, %opt ) = @_;
+
+ my $today = $dayofweek{(localtime($opt{'time'}))[6]};
+ if (grep { $_ eq $today } (keys %{$self->option('dayofweek')})) {
+ return 1;
+ }
+ '';
+}
+
+sub condition_sql {
+ my( $class, $table, %opt ) = @_;
+ my $today = $dayofweek{(localtime($opt{'time'}))[6]};
+ my $day = $class->condition_sql_option_option('dayofweek');
+ return dbh->quote($today) . " IN $day";
+}
+
+1;
-----------------------------------------------------------------------
Summary of changes:
FS/FS/part_event/Condition/day_of_week.pm | 49 +++++++++++++++++++++++++++++
1 file changed, 49 insertions(+)
create mode 100644 FS/FS/part_event/Condition/day_of_week.pm
More information about the freeside-commits
mailing list