From a794f08248abbb8d2f0efb617d3e83babdfe0e09 Mon Sep 17 00:00:00 2001 From: Ivan Kohler Date: Fri, 24 Jan 2014 18:13:02 -0800 Subject: [PATCH] select a date when importing payments, RT#27087 --- FS/FS/cust_pay.pm | 9 +++++++-- httemplate/elements/tr-input-date-field.html | 19 +++++++++++++++++++ httemplate/misc/cust_pay-import.cgi | 22 ++++++++++++++-------- httemplate/misc/process/cust_pay-import.cgi | 4 +++- 4 files changed, 43 insertions(+), 11 deletions(-) diff --git a/FS/FS/cust_pay.pm b/FS/FS/cust_pay.pm index ed765593a..b7189a80b 100644 --- a/FS/FS/cust_pay.pm +++ b/FS/FS/cust_pay.pm @@ -9,6 +9,7 @@ use vars qw( $DEBUG $me $conf @encrypted_fields use Date::Format; use Business::CreditCard; use Text::Template; +use FS::Misc::DateTime qw( parse_datetime ); #for batch_import use FS::Record qw( dbh qsearch qsearchs ); use FS::CurrentUser; use FS::payby; @@ -1091,9 +1092,12 @@ Inserts new payments. sub batch_import { my $param = shift; - my $fh = $param->{filehandle}; + my $fh = $param->{filehandle}; + my $format = $param->{'format'}; + my $agentnum = $param->{agentnum}; - my $format = $param->{'format'}; + my $_date = $param->{_date}; + $_date = parse_datetime($_date) if $_date && $_date =~ /\D/; my $paybatch = $param->{'paybatch'}; # here is the agent virtualization @@ -1144,6 +1148,7 @@ sub batch_import { payby => $payby, paybatch => $paybatch, ); + $cust_pay{_date} = $_date if $_date; my $cust_main; foreach my $field ( @fields ) { diff --git a/httemplate/elements/tr-input-date-field.html b/httemplate/elements/tr-input-date-field.html index 37a22e5df..40162f0fd 100644 --- a/httemplate/elements/tr-input-date-field.html +++ b/httemplate/elements/tr-input-date-field.html @@ -1,3 +1,22 @@ +<%doc> + +Example: + + <& /elements/tr-input_date-field, + { + 'name' => 'field_name', + 'value' => $current_value, + 'label' => 'Label', + + #optional + 'format' => '%m/%d/%Y', #overrides date_format config + 'usedatetime' => 1, #use DateTime->strftime to format the date + # instead of Date::Format->time2str + 'noinit' => 1, #first one on the page is enough + }, + &> + + % unless ( $noinit ) { diff --git a/httemplate/misc/cust_pay-import.cgi b/httemplate/misc/cust_pay-import.cgi index 849a25bea..28ad6e7df 100644 --- a/httemplate/misc/cust_pay-import.cgi +++ b/httemplate/misc/cust_pay-import.cgi @@ -1,4 +1,4 @@ -<% include("/elements/header.html",'Batch Payment Import') %> +<& /elements/header.html, 'Batch Payment Import' &> Import a CSV file containing customer payments.

@@ -7,12 +7,18 @@ Import a CSV file containing customer payments. <% &ntable("#cccccc", 2) %> -<% include('/elements/tr-select-agent.html', - #'curr_value' => '', #$agentnum, - 'label' => "Agent", - 'empty_label' => 'Select agent', - ) -%> +<& /elements/tr-select-agent.html, + #'curr_value' => '', #$agentnum, + 'label' => "Agent", + 'empty_label' => 'Select agent', +&> + +<& /elements/tr-input-date-field.html, { + 'name' => '_date', + #'value' => '', + 'label' => 'Date', + } +&> Format @@ -59,4 +65,4 @@ Field information:
-<% include('/elements/footer.html') %> +<& /elements/footer.html &> diff --git a/httemplate/misc/process/cust_pay-import.cgi b/httemplate/misc/process/cust_pay-import.cgi index 92b6e5a36..7711773d8 100644 --- a/httemplate/misc/process/cust_pay-import.cgi +++ b/httemplate/misc/process/cust_pay-import.cgi @@ -9,8 +9,10 @@ my $paybatch = time2str('webbatch-%Y/%m/%d-%T'. "-$$-". rand() * 2**32, time); my $error = defined($fh) ? FS::cust_pay::batch_import( { 'filehandle' => $fh, - 'agentnum' => scalar($cgi->param('agentnum')), 'format' => scalar($cgi->param('format')), + + 'agentnum' => scalar($cgi->param('agentnum')), + '_date' => scalar($cgi->param('_date')), 'paybatch' => $paybatch, } ) : 'No file'; -- 2.11.0