[freeside-commits] branch FREESIDE_3_BRANCH updated. 4300dd2e09cb0544c067a2d9a9fd92e534e49802
Jonathan Prykop
jonathan at 420.am
Mon Apr 25 12:05:53 PDT 2016
The branch, FREESIDE_3_BRANCH has been updated
via 4300dd2e09cb0544c067a2d9a9fd92e534e49802 (commit)
from 0024f2331ce82ffaa87af9c6bd516d5bbe851923 (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 4300dd2e09cb0544c067a2d9a9fd92e534e49802
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