summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIvan Kohler <ivan@freeside.biz>2016-11-16 21:02:42 -0800
committerIvan Kohler <ivan@freeside.biz>2016-11-16 21:02:42 -0800
commit2b76dd3be38311e9144a3f2017dfdaec6261fff3 (patch)
treeb03d593d58b93c70ed373168902ce9495e325f84
parent39aad14839e0e1be55c881bacd79d366059498fa (diff)
add date to quick payment entry, RT#73382
-rw-r--r--httemplate/elements/customer-table.html26
-rw-r--r--httemplate/misc/batch-cust_pay.html18
-rw-r--r--httemplate/misc/process/batch-cust_pay.cgi1
3 files changed, 34 insertions, 11 deletions
diff --git a/httemplate/elements/customer-table.html b/httemplate/elements/customer-table.html
index 0aa792d..25c26b5 100644
--- a/httemplate/elements/customer-table.html
+++ b/httemplate/elements/customer-table.html
@@ -25,7 +25,7 @@ Example:
'custnum_update_callback' => 'name_of_js_callback' #passed a rownum
#listrefs
- 'types' => ['immutable', ''], # immutable or ''/text
+ 'type' => ['immutable', ''], # immutable, checkbox, date or ''/text
'align' => [ 'c', 'l', 'r', '' ],
'size' => [], # sizes ignored for immutable
'color' => [],
@@ -66,7 +66,10 @@ This mason element is currently only used by misc/batch-cust_pay.html,
and probably should be cleaned up more before being used by anything else.
</%doc>
-
+<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>
+<SCRIPT TYPE="text/javascript" SRC="<%$fsurl%>elements/calendar-en.js"></SCRIPT>
+<SCRIPT TYPE="text/javascript" SRC="<%$fsurl%>elements/calendar-setup.js"></SCRIPT>
<SCRIPT TYPE="text/javascript">
var num_open_invoices = new Array;
@@ -652,6 +655,12 @@ and probably should be cleaned up more before being used by anything else.
% } elsif ( $types->[$col] eq 'checkbox' ) {
my_input.setAttribute('type', 'checkbox');
my_input.checked = (values && values.<% $field %>) ? true : false;
+% } elsif ( $types->[$col] eq 'date' ) {
+ my_input_button = document.createElement('IMG');
+ my_input_button.setAttribute('src', '<% $fsurl %>images/calendar.png');
+ my_input_button.setAttribute('title', <% mt('Select date') |js_string %>);
+ my_input_button.setAttribute('name', '<% $name %>'+thisrownum+'button');
+ my_input_button.setAttribute('id', '<% $name %>'+thisrownum+'button');
% }
my_input.value = (values && values.<% $field %>) || '';
% if ( $opt{onchange}->[$col] ) {
@@ -662,9 +671,21 @@ and probably should be cleaned up more before being used by anything else.
my_input.onkeyup = calc_total<%$col%>;
% }
my_cell.appendChild(my_input);
+% if ( $types->[$col] eq 'date' ) {
+ my_cell.appendChild(my_input_button);
+% }
row.appendChild(my_cell);
+% if ( $types->[$col] eq 'date' ) {
+ Calendar.setup({
+ inputField: '<% $name %>'+thisrownum,
+ ifFormat: "<% $date_format %>",
+ button: '<% $name %>'+thisrownum+'button',
+ align: "BR"
+ });
+% }
+
% $col++;
% }
@@ -805,6 +826,7 @@ addRow();
my(%opt) = @_;
my $conf = new FS::Conf;
+my $date_format = $conf->config('date_format') || '%m/%d/%Y';
my $types = $opt{'type'} ? [ @{$opt{'type'}} ] : [];
my $sizes = $opt{'size'} ? [ @{$opt{'size'}} ] : [];
diff --git a/httemplate/misc/batch-cust_pay.html b/httemplate/misc/batch-cust_pay.html
index d4d4afa..e20e4a4 100644
--- a/httemplate/misc/batch-cust_pay.html
+++ b/httemplate/misc/batch-cust_pay.html
@@ -469,16 +469,16 @@ die "access denied"
my $conf = new FS::Conf;
my $money_char = $conf->config('money_char') || '$';
-my @header = ( 'Amount', 'Check #' );
-my @fields = ( 'paid', 'payinfo' );
-my @types = ( '', '' );
-my @align = ( 'r', 'r' );
-my @sizes = ( 8, 10 );
-my @colors = ( '', '' );
+my @header = ( 'Amount', 'Check #', 'Date override' );
+my @fields = ( 'paid', 'payinfo', '_date' );
+my @types = ( '', '', 'date', );
+my @align = ( 'r', 'r', 'r' );
+my @sizes = ( 8, 10, 8 );
+my @colors = ( '', '', '' );
my %param = ();
-my @footer = ( '_TOTAL', '' );
-my @footer_align = ( 'r', 'r' );
-my @onchange = ( '', '' );;
+my @footer = ( '_TOTAL', '', '' );
+my @footer_align = ( 'r', 'r', '' );
+my @onchange = ( '', '', '' );
my $use_discounts = '';
# Not entirely sure this works anymore...
diff --git a/httemplate/misc/process/batch-cust_pay.cgi b/httemplate/misc/process/batch-cust_pay.cgi
index ff78862..b4580bb 100644
--- a/httemplate/misc/process/batch-cust_pay.cgi
+++ b/httemplate/misc/process/batch-cust_pay.cgi
@@ -38,6 +38,7 @@ foreach my $row ( map /^custnum(\d+)$/, keys %$param ) {
'paid' => $param->{"paid$row"},
'payby' => 'BILL',
'payinfo' => $param->{"payinfo$row"},
+ '_date' => $param->{"_date$row"},
'discount_term' => $param->{"discount_term$row"},
'paybatch' => $paybatch,
'no_auto_apply' => exists($param->{"no_auto_apply$row"}) ? 'Y' : '',