From 61ea51152f19edd37043f6c29303bfe16809f0f6 Mon Sep 17 00:00:00 2001
From: Jonathan Prykop <jonathan@freeside.biz>
Date: Wed, 4 Mar 2015 21:29:30 -0600
Subject: [PATCH] RT#30825 Modernize Bulk payment importing [fixed format
 handling]

---
 FS/FS/cust_pay.pm                   | 20 +++++---------------
 httemplate/misc/cust_pay-import.cgi |  3 +--
 2 files changed, 6 insertions(+), 17 deletions(-)

diff --git a/FS/FS/cust_pay.pm b/FS/FS/cust_pay.pm
index ce8a3552f..8b4c98ad6 100644
--- a/FS/FS/cust_pay.pm
+++ b/FS/FS/cust_pay.pm
@@ -1170,8 +1170,6 @@ sub process_upgrade_paybatch {
 sub process_batch_import {
   my $job = shift;
 
-  #agent_custid isn't a cust_pay field, see hash callback
-  my $format = [ qw(custnum agent_custid paid payinfo invnum) ];
   my $hashcb = sub {
     my %hash = @_;
     my $custnum = $hash{'custnum'};
@@ -1225,19 +1223,11 @@ sub process_batch_import {
 
   my $opt = { 'table'   => 'cust_pay',
               'params'  => [ '_date', 'agentnum', 'payby', 'paybatch' ],
-              'formats' => {
-                'simple-csv' => $format,
-                'simple-xls' => $format,
-              },
-              'format_types' => {
-                'simple-csv' => 'csv',
-                'simple-xls' => 'xls',
-              },
-              'default_csv' => 1,
-              'format_hash_callbacks' => { 
-                'simple-csv' => $hashcb,
-                'simple-xls' => $hashcb,
-              },
+                                         #agent_custid isn't a cust_pay field, see hash callback
+              'formats' => { 'simple' => [ qw(custnum agent_custid paid payinfo invnum) ] },
+              'format_types' => { 'simple' => '' }, #force infer from file extension
+              'default_csv' => 1, #if it's not .xls, it'll read as csv, regardless of extension
+              'format_hash_callbacks' => { 'simple' => $hashcb },
               'postinsert_callback' => sub {
                  my $cust_pay = shift;
                  my $cust_main = $cust_pay->cust_main ||
diff --git a/httemplate/misc/cust_pay-import.cgi b/httemplate/misc/cust_pay-import.cgi
index 102f84286..bc4ac83b2 100644
--- a/httemplate/misc/cust_pay-import.cgi
+++ b/httemplate/misc/cust_pay-import.cgi
@@ -33,8 +33,7 @@ Import a file containing customer payments.
   <TH ALIGN="right">Format</TH>
   <TD>
     <SELECT NAME="format">
-      <OPTION VALUE="simple-csv">Comma-separated (.csv)</OPTION>
-      <OPTION VALUE="simple-xls">Excel (.xls)</OPTION>
+      <OPTION VALUE="simple">Simple</OPTION>
     </SELECT>
   </TD>
 </TR>
-- 
2.20.1