summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIvan Kohler <ivan@freeside.biz>2014-01-24 18:13:02 -0800
committerIvan Kohler <ivan@freeside.biz>2014-01-24 18:13:02 -0800
commita794f08248abbb8d2f0efb617d3e83babdfe0e09 (patch)
tree73f796fa153182de3cef9a55484ee05a4e29df58
parent5bd7552215c77573b07e9775d7d63f70b0a55fd1 (diff)
select a date when importing payments, RT#27087
-rw-r--r--FS/FS/cust_pay.pm9
-rw-r--r--httemplate/elements/tr-input-date-field.html19
-rw-r--r--httemplate/misc/cust_pay-import.cgi22
-rw-r--r--httemplate/misc/process/cust_pay-import.cgi4
4 files changed, 43 insertions, 11 deletions
diff --git a/FS/FS/cust_pay.pm b/FS/FS/cust_pay.pm
index ed76559..b7189a8 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 37a22e5..40162f0 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
+ },
+ &>
+
+</%doc>
% unless ( $noinit ) {
<LINK REL="stylesheet" TYPE="text/css" HREF="<%$fsurl%>elements/calendar-win2k-2.css" TITLE="win2k-2">
<SCRIPT TYPE="text/javascript" SRC="<%$fsurl%>elements/calendar_stripped.js"></SCRIPT>
diff --git a/httemplate/misc/cust_pay-import.cgi b/httemplate/misc/cust_pay-import.cgi
index 849a25b..28ad6e7 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.
<BR><BR>
@@ -7,12 +7,18 @@ Import a CSV file containing customer payments.
<% &ntable("#cccccc", 2) %>
-<% include('/elements/tr-select-agent.html',
- #'curr_value' => '', #$agentnum,
- 'label' => "<B>Agent</B>",
- 'empty_label' => 'Select agent',
- )
-%>
+<& /elements/tr-select-agent.html,
+ #'curr_value' => '', #$agentnum,
+ 'label' => "<B>Agent</B>",
+ 'empty_label' => 'Select agent',
+&>
+
+<& /elements/tr-input-date-field.html, {
+ 'name' => '_date',
+ #'value' => '',
+ 'label' => 'Date',
+ }
+&>
<TR>
<TH ALIGN="right">Format</TH>
@@ -59,4 +65,4 @@ Field information:
<BR>
-<% 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 92b6e5a..7711773 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';