From 289c2643882c611a068fffd06e42e258264844e8 Mon Sep 17 00:00:00 2001 From: Christopher Burger Date: Thu, 29 Nov 2018 14:49:24 -0500 Subject: [PATCH 1/1] RT# 81557 - Added checkbox to validate cc on import, and cc validation. --- FS/FS/cust_main/Import.pm | 11 +++++++++++ httemplate/misc/cust_main-import.cgi | 7 +++++++ 2 files changed, 18 insertions(+) diff --git a/FS/FS/cust_main/Import.pm b/FS/FS/cust_main/Import.pm index 9624529fa..dcedc16b1 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, diff --git a/httemplate/misc/cust_main-import.cgi b/httemplate/misc/cust_main-import.cgi index 46d15363d..20b5528d8 100644 --- a/httemplate/misc/cust_main-import.cgi +++ b/httemplate/misc/cust_main-import.cgi @@ -42,6 +42,13 @@ Import a file containing customer records. + <& /elements/tr-checkbox.html, + 'label' => 'Validate credit card', + 'field' => 'validate_cc', + 'id' => 'validate_cc', + 'value' => 'Y', + &> + <% include( '/elements/file-upload.html', 'field' => 'file', 'label' => 'Filename', -- 2.11.0