diff options
Diffstat (limited to 'FS')
| -rw-r--r-- | FS/FS/cust_main/Import.pm | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/FS/FS/cust_main/Import.pm b/FS/FS/cust_main/Import.pm index d7a66db1b..49d87f231 100644 --- a/FS/FS/cust_main/Import.pm +++ b/FS/FS/cust_main/Import.pm @@ -16,6 +16,7 @@ use FS::svc_external; use FS::svc_phone; use FS::svc_hardware; use FS::part_referral; +use Business::CreditCard 0.35; $DEBUG = 0; @@ -98,6 +99,7 @@ sub process_batch_import { agentnum => $param->{'agentnum'}, refnum => $param->{'refnum'}, pkgpart => $param->{'pkgpart'}, + validate_cc => $param->{'validate_cc'}, #'fields' => [qw( cust_pkg.setup dayphone first last address1 address2 # city state zip comments )], 'format' => $param->{'format'}, @@ -128,6 +130,7 @@ sub batch_import { my $agentnum = $param->{agentnum}; my $refnum = $param->{refnum}; my $pkgpart = $param->{pkgpart}; + my $validate_cc = $param->{validate_cc}; my $format = $param->{'format'}; @@ -431,6 +434,15 @@ sub batch_import { $cust_main{'payby'} = 'CARD'; if ($cust_main{'payinfo'} =~ /^\s*([AD]?)(.*)\s*$/) { + + ## validate credit card if requested + if ($validate_cc) { + validate($2) + or return "Invalid card($2) for customer ".$cust_main{'first'}." ".$cust_main{'last'}; + return "Unknown card type for customer ".$cust_main{'first'}." ".$cust_main{'last'} + if cardtype($2) eq "Unknown"; + } + $cust_main{'payby'} = 'DCRD' if $1 eq 'D'; $cust_main{'payinfo'} = $2; } |
