From: Ivan Kohler Date: Thu, 4 Feb 2016 20:54:12 +0000 (-0800) Subject: check most recent type condition, RT#40101 X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=commitdiff_plain;h=db81a59214509f9687be947bc76d34f33edac3d4 check most recent type condition, RT#40101 --- 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;