- # Make sure it's a valid payby
- $self->payby =~ /^(CARD|DCRD|CHEK|DCHK|LECB|BILL|COMP|PREPAY|CASH|WEST|MCRD|PREP|CBAK)$/
- or return "Illegal payby (overall payinfo_check)";
- $self->payby($1);
-
-
- # Okay some aren't valid depending on table
- if ($self->table eq 'cust_main') {
- if ($self->payby =~ /^(CASH|WEST|MCRD|PREP|CBAK)$/) {
- return "Illegal payby (cust_main)";
- }
- } elsif ($self->table eq 'cust_refund') {
- if ($self->payby =~ /^(DCRD|DCHK|PREPAY|PREP)$/) {
- return "Illegal payby (cust_refund)";
- }
- } elsif ($self->table eq 'cust_pay') {
- if ($self->payby =~ /^(DCRD|DCHK|PREPAY|CBAK)$/) {
- return "Illegal payby (cust_pay)";
- }
- }
+ FS::payby->can_payby($self->table, $self->payby)
+ or return "Illegal payby";