X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=httemplate%2Fmisc%2Fbatch-cust_pay.html;h=003dc86ac91b3fe933e4ce1734f79d01cbb170e5;hb=5027e0e807b38364fc10c992ea50a2ad7d934986;hp=ef06441c8b7d1ee1c5fb91ca9c5ccfe2ce5d8957;hpb=c81080957a5d09a7a7679a4eed4a7b702dd3d56e;p=freeside.git
diff --git a/httemplate/misc/batch-cust_pay.html b/httemplate/misc/batch-cust_pay.html
index ef06441c8..003dc86ac 100644
--- a/httemplate/misc/batch-cust_pay.html
+++ b/httemplate/misc/batch-cust_pay.html
@@ -5,6 +5,15 @@
<& /elements/error.html &>
+
-%}
+% #XXX I think this can go away completely, but need to test with $use_discount
+% ###not perl
<% include('/elements/footer.html') %>
@@ -385,18 +469,19 @@ 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...
if ( FS::Record->scalar_sql('SELECT COUNT(*) FROM part_pkg_discount') ) {
#push @header, 'Discount';
push @header, '';
@@ -421,6 +506,16 @@ push @footer, '';
push @footer_align, '';
push @onchange, 'toggle_application_row';
+push @header, 'No Auto Allocate';
+push @fields, 'no_auto_apply';
+push @types, 'checkbox';
+push @align, 'c';
+push @sizes, '0';
+push @colors, '';
+push @footer, '';
+push @footer_align, '';
+push @onchange, '';
+
#push @header, 'Error';
push @header, '';
push @fields, 'error';
@@ -435,29 +530,31 @@ push @onchange, '';
$m->comp('/elements/handle_uri_query');
# set up for preloading
-my @rows;
-my @row_errors;
+my %rows;
+my %row_errors;
if ( $cgi->param('error') ) {
my $param = $cgi->Vars;
my $enum = 0; #errors numbered separately
- for( my $row = 0; exists($param->{"custnum$row"}); $row++ ) {
- $rows[$row] = [];
- $row_errors[$row] = $param->{"error$enum"};
+ my @invrows = grep /^invnum\d+\.\d+$/, keys %$param; #pare down possibilities
+ foreach my $row ( sort { $a <=> $b } map /^custnum(\d+)$/, keys %$param ) {
+# for( my $row = 0; exists($param->{"custnum$row"}); $row++ ) {
+ $rows{$row} = [];
+ $row_errors{$row} = $param->{"error$enum"};
$enum++;
- for( my $app = 0; exists($param->{"invnum$row.$app"}); $app++ ) {
+ foreach my $app ( map /^invnum$row\.(\d+)$/, @invrows ) {
next if !$param->{"invnum$row.$app"};
my %this_app = map { $_ => ($param->{$_.$row.'.'.$app} || '') }
qw( invnum amount );
$this_app{'error'} = $param->{"error$enum"} || '';
$param->{"error$enum"} = ''; # don't pass this error through
- $rows[$row][$app] = \%this_app;
+ $rows{$row}[$app] = \%this_app;
$enum++;
}
}
- for( my $row = 0; $row < @row_errors; $row++ ) {
- $param->{"error$row"} = $row_errors[$row];
+ foreach my $row (keys %rows) {
+ $param->{"error$row"} = $row_errors{$row};
}
}
-#warn Dumper {rows => \@rows, row_errors => \@row_errors };
+#warn Dumper {rows => \%rows, row_errors => \%row_errors };
%init>