diff options
author | Ivan Kohler <ivan@freeside.biz> | 2016-02-04 12:54:12 -0800 |
---|---|---|
committer | Ivan Kohler <ivan@freeside.biz> | 2016-02-04 12:54:12 -0800 |
commit | db81a59214509f9687be947bc76d34f33edac3d4 (patch) | |
tree | 9f44ac4b88e08eea95880b674c24150e3abbfa69 | |
parent | affba4b02a38999423f4189a40862a4c6549552a (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; |