multiple payment options, RT#23741
[freeside.git] / FS / FS / part_event / Condition / has_cust_payby_auto.pm
1 package FS::part_event::Condition::has_cust_payby_auto;
2
3 use strict;
4 use Tie::IxHash;
5 use FS::payby;
6
7 use base qw( FS::part_event::Condition );
8
9 sub description {
10   'Customer has automatic payment information';
11 }
12
13 tie my %payby, 'Tie::IxHash', FS::payby->cust_payby2shortname;
14 delete $payby{'DCRD'};
15 delete $payby{'DCHK'};
16
17 sub option_fields {
18   (
19     'payby' => { 
20                  label         => 'Has automatic payment info',
21                  type          => 'select',
22                  options       => [ keys %payby ],
23                  option_labels => \%payby,
24                },
25   );
26 }
27
28 sub condition {
29   my( $self, $object ) = @_;
30
31   my $cust_main = $self->cust_main($object);
32
33   scalar( qsearch({ 
34     'table'     => 'cust_payby',
35     'hashref'   => { 'custnum' => $cust_main->custnum,
36                      'payby'   => $self->option('payby')
37                    },
38     'order_by'  => 'LIMIT 1',
39   }) );
40
41 }
42
43 1;