further optimize condition_sql for "Invoice eligible for automatic collection" condit...
[freeside.git] / FS / FS / part_event / Condition / cust_pay_payby.pm
1 package FS::part_event::Condition::cust_pay_payby;
2
3 use strict;
4 use base qw( FS::part_event::Condition );
5 use FS::payby;
6 use FS::Record qw( qsearchs );
7 use FS::cust_pay;
8
9 sub description { 'Type of most recent payment'; }
10
11 tie my %payby, 'Tie::IxHash', FS::payby->payment_payby2payname;
12
13 sub option_fields {
14   (
15     'payby' => {
16                  label         => 'Payment type',
17                  type          => 'checkbox-multiple',
18                  options       => [ keys %payby ],
19                  option_labels => \%payby,
20                },
21   );
22 }
23
24 sub condition {
25   my($self, $object) = @_;
26
27   my $cust_main = $self->cust_main($object);
28
29   my $cust_pay = qsearchs({ 'table'    => 'cust_pay',
30                             'hashref'  => { 'custnum'=>$cust_main->custnum },
31                             'order_by' => 'ORDER BY _date DESC LIMIT 1',
32                          })
33     or return 0;
34
35   my $payby = $self->option('payby') || {};
36   $payby->{ $cust_pay->payby };
37
38 }
39
40 1;