Merge branch 'master' of git.freeside.biz:/home/git/freeside
authorIvan Kohler <ivan@freeside.biz>
Sat, 4 Jun 2016 00:23:02 +0000 (17:23 -0700)
committerIvan Kohler <ivan@freeside.biz>
Sat, 4 Jun 2016 00:23:02 +0000 (17:23 -0700)
FS/FS/cust_main.pm
FS/FS/part_event/Condition/has_cust_payby_auto.pm

index afecb83..cb5181d 100644 (file)
@@ -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);
index 9f91429..42f6d35 100644 (file)
@@ -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',
   }) );