diff options
author | Ivan Kohler <ivan@freeside.biz> | 2016-02-04 12:54:12 -0800 |
---|---|---|
committer | Jeremy Davis <jeremyd@freeside.biz> | 2016-02-08 10:14:50 -0500 |
commit | 460d06a996538bc1db22db8d1d8029c7bd9e6d0c (patch) | |
tree | ce2e2251ad26248a8e1911a5d3ce3097037de1ff | |
parent | d1038f0bd6c2f9dafedf408f96455e22de2037ee (diff) |
check most recent type condition, RT#40101
-rw-r--r-- | FS/FS/part_event/Condition/cust_pay_payby.pm | 40 |
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; |