- # only if we've been given a clear payment_payby (to avoid payname conflicts)
- if ($p->{'payment_payby'} =~ /^(CARD|CHEK)$/ || (ref($p->{'payment_payby'}))) {
- my @search_payby = ();
- if ($p->{'payment_payby'} eq 'CARD') { @search_payby = ('CARD','DCRD'); }
- elsif ($p->{'payment_payby'} eq 'CHEK') { @search_payby = ('CHEK','DCHK'); }
- elsif (ref($p->{'payment_payby'}) eq 'ARRAY') { @search_payby = @{$payment_info->{paybys}}; }
- my ($cust_payby) = $cust_main->cust_payby(@search_payby);
- if ($cust_payby) {
- $return{payby} = $cust_payby->payby;
- $return{payname} = $cust_payby->payname
+ # v3 to v4 upgrade would break change_pay because change_pay does not send payment_payby
+ # so for change_pay to work need to search for all allowed paybys and grab default payment account
+ my @search_payby = ();
+ @search_payby = ($p->{'payment_payby'} eq 'CARD') ? ('CARD','DCRD') : ('CHEK','DCHK')
+ if ($p->{'payment_payby'} =~ /^(CARD|CHEK)$/);
+
+ my ($cust_payby) = $cust_main->cust_payby(@search_payby);
+ if ($cust_payby) {
+ $return{payby} = $cust_payby->payby;
+ $return{payname} = $cust_payby->payname