summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--FS/FS/cust_main.pm4
-rw-r--r--FS/FS/part_event/Condition/has_cust_payby_auto.pm15
2 files changed, 17 insertions, 2 deletions
diff --git a/FS/FS/cust_main.pm b/FS/FS/cust_main.pm
index afecb83f5..cb5181d89 100644
--- a/FS/FS/cust_main.pm
+++ b/FS/FS/cust_main.pm
@@ -1991,7 +1991,9 @@ sub cust_payby {
'hashref' => { 'custnum' => $self->custnum },
'order_by' => "ORDER BY payby IN ('CARD','CHEK') DESC, weight ASC",
};
- $search->{'extra_sql'} = ' AND payby IN ( ' . join(',', map { dbh->quote($_) } @payby) . ' ) '
+ $search->{'extra_sql'} = ' AND payby IN ( '.
+ join(',', map dbh->quote($_), @payby).
+ ' ) '
if @payby;
qsearch($search);
diff --git a/FS/FS/part_event/Condition/has_cust_payby_auto.pm b/FS/FS/part_event/Condition/has_cust_payby_auto.pm
index 9f914292f..42f6d3582 100644
--- a/FS/FS/part_event/Condition/has_cust_payby_auto.pm
+++ b/FS/FS/part_event/Condition/has_cust_payby_auto.pm
@@ -30,11 +30,24 @@ sub condition {
my $cust_main = $self->cust_main($object);
+ #handle multiple (HASH) type options migrated from a v3 payby.pm condition
+ # (and maybe we should be a select-multiple or checkbox-multiple too?)
+ my @payby = ();
+ my $payby = $self->option('payby');
+ if ( ref($payby) ) {
+ @payby = keys %$payby;
+ } elsif ( $payby ) {
+ @payby = ( $payby );
+ }
+
scalar( qsearch({
'table' => 'cust_payby',
'hashref' => { 'custnum' => $cust_main->custnum,
- 'payby' => $self->option('payby')
+ #'payby' => $self->option('payby')
},
+ 'extra_sql' => 'AND payby IN ( '.
+ join(',', map dbh->quote($_), @payby).
+ ' ) ',
'order_by' => 'LIMIT 1',
}) );