summaryrefslogtreecommitdiff
path: root/FS/FS/cust_main
diff options
context:
space:
mode:
authorChristopher Burger <burgerc@freeside.biz>2018-11-29 14:49:24 -0500
committerChristopher Burger <burgerc@freeside.biz>2018-11-29 15:14:09 -0500
commit8fbd52b17789117befa7a3a69d330ec6112d769c (patch)
treeface48d81362d0b8cd27214954dcbd663395a4cd /FS/FS/cust_main
parentbc7104ea4d6c2e9efe7a1fb4460e2ed71b5e911a (diff)
RT# 81557 - Added checkbox to validate cc on import, and cc validation.
Diffstat (limited to 'FS/FS/cust_main')
-rw-r--r--FS/FS/cust_main/Import.pm11
1 files changed, 11 insertions, 0 deletions
diff --git a/FS/FS/cust_main/Import.pm b/FS/FS/cust_main/Import.pm
index 9624529..dcedc16 100644
--- a/FS/FS/cust_main/Import.pm
+++ b/FS/FS/cust_main/Import.pm
@@ -14,6 +14,7 @@ use FS::svc_external;
use FS::svc_phone;
use FS::svc_hardware;
use FS::part_referral;
+use Business::CreditCard 0.35;
$DEBUG = 0;
@@ -95,6 +96,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'},
@@ -125,6 +127,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'};
@@ -421,6 +424,14 @@ sub batch_import {
delete $cust_main{'payinfo'};
+ ## 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_payby = new FS::cust_payby {
'payby' => ($1 eq 'D') ? 'DCRD' : 'CARD',
'payinfo' => $2,