summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIvan Kohler <ivan@freeside.biz>2016-02-04 12:54:12 -0800
committerIvan Kohler <ivan@freeside.biz>2016-02-04 12:54:12 -0800
commitdb81a59214509f9687be947bc76d34f33edac3d4 (patch)
tree9f44ac4b88e08eea95880b674c24150e3abbfa69
parentaffba4b02a38999423f4189a40862a4c6549552a (diff)
check most recent type condition, RT#40101
-rw-r--r--FS/FS/part_event/Condition/cust_pay_payby.pm40
1 files changed, 40 insertions, 0 deletions
diff --git a/FS/FS/part_event/Condition/cust_pay_payby.pm b/FS/FS/part_event/Condition/cust_pay_payby.pm
new file mode 100644
index 000000000..d360564c4
--- /dev/null
+++ b/FS/FS/part_event/Condition/cust_pay_payby.pm
@@ -0,0 +1,40 @@
+package FS::part_event::Condition::cust_pay_payby;
+
+use strict;
+use base qw( FS::part_event::Condition );
+use FS::payby;
+use FS::Record qw( qsearchs );
+use FS::cust_pay;
+
+sub description { 'Type of most recent payment'; }
+
+tie my %payby, 'Tie::IxHash', FS::payby->payment_payby2payname;
+
+sub option_fields {
+ (
+ 'payby' => {
+ label => 'Payment type',
+ type => 'checkbox-multiple',
+ options => [ keys %payby ],
+ option_labels => \%payby,
+ },
+ );
+}
+
+sub condition {
+ my($self, $object) = @_;
+
+ my $cust_main = $self->cust_main($object);
+
+ my $cust_pay = qsearchs({ 'table' => 'cust_pay',
+ 'hashref' => { 'custnum'=>$cust_main->custnum },
+ 'order_by' => 'ORDER BY _date DESC LIMIT 1',
+ })
+ or return 0;
+
+ my $payby = $self->option('payby') || {};
+ $payby->{ $cust_pay->payby };
+
+}
+
+1;