diff options
author | jeff <jeff> | 2006-08-09 06:43:02 +0000 |
---|---|---|
committer | jeff <jeff> | 2006-08-09 06:43:02 +0000 |
commit | 6c375156081be5d2023001ed8eaac9b6db568e95 (patch) | |
tree | 2fc0676f8f6facd38773035e4a22ba23fd7d85ed /httemplate | |
parent | b58e61ac7df612f606c3e68371265e790e0be585 (diff) |
batch refactor
Diffstat (limited to 'httemplate')
-rwxr-xr-x | httemplate/browse/cust_pay_batch.cgi | 33 | ||||
-rwxr-xr-x | httemplate/browse/pay_batch.cgi | 54 | ||||
-rw-r--r-- | httemplate/docs/schema.html | 4 | ||||
-rw-r--r-- | httemplate/misc/download-batch.cgi | 37 |
4 files changed, 115 insertions, 13 deletions
diff --git a/httemplate/browse/cust_pay_batch.cgi b/httemplate/browse/cust_pay_batch.cgi index c7f0afe76..98ea2f5a2 100755 --- a/httemplate/browse/cust_pay_batch.cgi +++ b/httemplate/browse/cust_pay_batch.cgi @@ -1,12 +1,24 @@ <!-- mason kludge --> -<%= include("/elements/header.html","Pending credit card batch", menubar( 'Main Menu' => $p,)) %> +<%= include("/elements/header.html","Credit card batch details", menubar( 'Main Menu' => $p,)) %> + +<% + +die "No batch specified (bad URL)!" unless $cgi->keywords; +my($query) = $cgi->keywords; +$query =~ /^(\d+)$/; +my $batchnum = $1; +my $pay_batch = qsearchs('pay_batch',{'batchnum'=>$batchnum}); +die "Batch not found!" unless $pay_batch; + +%> <FORM ACTION="<%=$p%>misc/download-batch.cgi" METHOD="POST"> Download batch in format <SELECT NAME="format"> <OPTION VALUE="">Default batch mode</OPTION> <OPTION VALUE="csv-td_canada_trust-merchant_pc_batch">CSV file for TD Canada Trust Merchant PC Batch</OPTION> -<OPTION VALUE="BoM">Bank of Montreal ECA results</OPTION> -</SELECT><INPUT TYPE="submit" VALUE="Download"></FORM> +<OPTION VALUE="PAP">80 byte file for TD Canada Trust PAP Batch</OPTION> +<OPTION VALUE="BoM">Bank of Montreal ECA batch</OPTION> +</SELECT><INPUT TYPE="hidden" NAME="batchnum" VALUE="<%= $batchnum %>"><INPUT TYPE="submit" VALUE="Download"></FORM> <BR><BR> <FORM ACTION="<%=$p%>misc/upload-batch.cgi" METHOD="POST" ENCTYPE="multipart/form-data"> @@ -15,25 +27,28 @@ Filename <INPUT TYPE="file" NAME="batch_results"><BR> Format <SELECT NAME="format"> <OPTION VALUE="">Default batch mode</OPTION> <OPTION VALUE="csv-td_canada_trust-merchant_pc_batch">CSV results from TD Canada Trust Merchant PC Batch</OPTION> -<OPTION VALUE="BoM">Bank of Montreal ECA batch</OPTION> +<OPTION VALUE="PAP">264 byte results for TD Canada Trust PAP Batch</OPTION> +<OPTION VALUE="BoM">Bank of Montreal ECA results</OPTION> </SELECT><BR> <INPUT TYPE="submit" VALUE="Upload"></FORM> <BR> <% - my $statement = "SELECT SUM(amount) from cust_pay_batch"; + my $statement = "SELECT SUM(amount) from cust_pay_batch WHERE batchnum=". + $batchnum; my $sth = dbh->prepare($statement) or die dbh->errstr. "doing $statement"; $sth->execute or die "Error executing \"$statement\": ". $sth->errstr; my $total = $sth->fetchrow_arrayref->[0]; - my $c_statement = "SELECT COUNT(*) from cust_pay_batch"; + my $c_statement = "SELECT COUNT(*) from cust_pay_batch WHERE batchnum=". + $batchnum; my $c_sth = dbh->prepare($c_statement) or die dbh->errstr. "doing $c_statement"; $c_sth->execute or die "Error executing \"$c_statement\": ". $c_sth->errstr; my $cards = $c_sth->fetchrow_arrayref->[0]; %> <%= $cards %> credit card payments batched<BR> -$<%= sprintf("%.2f", $total) %> total in pending batch<BR> +$<%= sprintf("%.2f", $total) %> total in batch<BR> <BR> <%= &table() %> @@ -45,11 +60,12 @@ $<%= sprintf("%.2f", $total) %> total in pending batch<BR> <TH>Card</TH> <TH>Exp</TH> <TH>Amount</TH> + <TH>Status</TH> </TR> <% foreach my $cust_pay_batch ( sort { $a->paybatchnum <=> $b->paybatchnum } - qsearch('cust_pay_batch', {} ) + qsearch('cust_pay_batch', {'batchnum'=>$batchnum} ) ) { my $cardnum = $cust_pay_batch->payinfo; #$cardnum =~ s/.{4}$/xxxx/; @@ -71,6 +87,7 @@ foreach my $cust_pay_batch ( sort { $a->paybatchnum <=> $b->paybatchnum } <TD><%= $cardnum %></TD> <TD><%= $exp %></TD> <TD align="right">$<%= $cust_pay_batch->amount %></TD> + <TD><%= $cust_pay_batch->status %></TD> </TR> <% } %> diff --git a/httemplate/browse/pay_batch.cgi b/httemplate/browse/pay_batch.cgi new file mode 100755 index 000000000..66c86d676 --- /dev/null +++ b/httemplate/browse/pay_batch.cgi @@ -0,0 +1,54 @@ +<!-- mason kludge --> +<%= include("/elements/header.html","Credit card batches", menubar( 'Main Menu' => $p,)) %> + +<BR><BR> + +<% + my %statusmap = ('I'=>'In Transit', 'O'=>'Open', 'R'=>'Resolved'); +%> + +<BR> +<%= &table() %> + <TR> + <TH>Batch</TH> + <TH>First Download</TH> + <TH>Last Upload</TH> + <TH>Item Count</TH> + <TH>Amount</TH> + <TH>Status</TH> + </TR> + +<% +foreach my $pay_batch ( sort { $b->batchnum <=> $a->batchnum } + qsearch('pay_batch', {} ) +) { + + my $statement = "SELECT SUM(amount) from cust_pay_batch WHERE batchnum=" . + $pay_batch->batchnum; + my $sth = dbh->prepare($statement) or die dbh->errstr. "doing $statement"; + $sth->execute or die "Error executing \"$statement\": ". $sth->errstr; + my $total = $sth->fetchrow_arrayref->[0]; + + my $c_statement = "SELECT COUNT(*) from cust_pay_batch WHERE batchnum=" . + $pay_batch->batchnum; + my $c_sth = dbh->prepare($c_statement) + or die dbh->errstr. "doing $c_statement"; + $c_sth->execute or die "Error executing \"$c_statement\": ". $c_sth->errstr; + my $cards = $c_sth->fetchrow_arrayref->[0]; + +%> + + <TR> + <TD><A HREF="cust_pay_batch.cgi?<%= $pay_batch->batchnum %>"><%= $pay_batch->batchnum %></TD> + <TD><%= $pay_batch->download ? time2str("%a %b %e %T %Y", $pay_batch->download) : '' %></TD> + <TD><%= $pay_batch->upload ? time2str("%a %b %e %T %Y", $pay_batch->upload) : '' %></TD> + <TD><%= $cards %></TD> + <TD align="right"><%= $total %></TD> + <TD><%= $statusmap{$pay_batch->status} %></TD> + </TR> + +<% } %> + + </TABLE> + </BODY> +</HTML> diff --git a/httemplate/docs/schema.html b/httemplate/docs/schema.html index d9e35efc7..cd4914a6c 100644 --- a/httemplate/docs/schema.html +++ b/httemplate/docs/schema.html @@ -203,11 +203,14 @@ <ul> <li>batchnum <li>status + <li>download + <li>upload </ul> <li><a name="cust_pay_batch" href="man/FS/cust_pay_batch.html">cust_pay_batch</a> - Pending batch members <ul> <li>paybatchnum <li>batchnum + <li>payby - CARD, CHEK, LECB, BILL, or COMP <li>payinfo - account number <li>exp - card expiration <li>amount @@ -222,6 +225,7 @@ <li>state <li>zip <li>country + <li>status </ul> <li><a name="cust_pkg" href="man/FS/cust_pkg.html">cust_pkg</a> - Customer billing items <ul> diff --git a/httemplate/misc/download-batch.cgi b/httemplate/misc/download-batch.cgi index 6172b1335..2c6481493 100644 --- a/httemplate/misc/download-batch.cgi +++ b/httemplate/misc/download-batch.cgi @@ -5,6 +5,13 @@ my $conf=new FS::Conf; #http_header('Content-Type' => 'text/comma-separated-values' ); #IE chokes http_header('Content-Type' => 'text/plain' ); +my $batchnum; +if ( $cgi->param('batchnum') =~ /^(\d+)$/ ) { + $batchnum = $1; +} else { + die "No batch number (bad URL) \n"; +} + my $format; if ( $cgi->param('format') =~ /^([\w\- ]+)$/ ) { $format = $1; @@ -16,11 +23,12 @@ my $oldAutoCommit = $FS::UID::AutoCommit; local $FS::UID::AutoCommit = 0; my $dbh = dbh; -my $pay_batch = qsearchs('pay_batch', {'status'=>'O'} ); +my $pay_batch = qsearchs('pay_batch', {'batchnum'=>$batchnum, 'status'=>'O'} ); die "No pending batch. \n" unless $pay_batch; my %batchhash = $pay_batch->hash; $batchhash{'status'} = 'I'; +$batchhash{'download'} = time unless $batchhash{'download'}; my $new = new FS::pay_batch \%batchhash; my $error = $new->replace($pay_batch); die "error updating batch status: $error\n" if $error; @@ -28,8 +36,10 @@ die "error updating batch status: $error\n" if $error; my $batchtotal=0; my $batchcount=0; -my (@date)=localtime(); -my $jdate = sprintf("%03d", $date[5] % 100).sprintf("%03d", $date[7]); +my (@date)=localtime($new->download); +my $jdate = sprintf("%03d", $date[5] % 100).sprintf("%03d", $date[7] + 1); +my $cdate = sprintf("%02d", $date[3]).sprintf("%02d", $date[4] + 1). + sprintf("%02d", $date[5] % 100); if ($format eq "BoM") { @@ -39,6 +49,14 @@ if ($format eq "BoM") { sprintf( "XD%03u%06u%-15s%-30s%09u%-12s \n",$typecode,$jdate,$shortname,$longname,$mybank,$myacct ) %><% +}elsif ($format eq "PAP"){ + + my($origid,$datacenter,$typecode,$shortname,$longname,$mybank,$myacct) = + $conf->config("batchconfig-$format"); + %><%= sprintf( "H%10sD%3s%06u%-15s%09u%-12s%04u%19s\n",$origid,$typecode,$cdate,$shortname,$mybank,$myacct,$pay_batch->batchnum,"") + + %><% + }elsif ($format eq "csv-td_canada_trust-merchant_pc_batch"){ # 1; }else{ @@ -61,7 +79,12 @@ for my $cust_pay_batch ( sort { $a->paybatchnum <=> $b->paybatchnum } if ($format eq "BoM") { my( $account, $aba ) = split( '@', $cust_pay_batch->payinfo ); - %><%= sprintf( "D%010u%09u%-12s%-29s%-19s\n",$cust_pay_batch->amount*100,$aba,$account,$cust_pay_batch->payname,$cust_pay_batch->invnum %><% + %><%= sprintf( "D%010.0f%09u%-12s%-29s%-19s\n",$cust_pay_batch->amount*100,$aba,$account,$cust_pay_batch->payname,$cust_pay_batch->paybatchnum) %><% + + } elsif ($format eq "PAP"){ + + my( $account, $aba ) = split( '@', $cust_pay_batch->payinfo ); + %><%= sprintf( "D%-23s%06u%-19s%09u%-12s%010.0f\n",$cust_pay_batch->payname,$cdate,$cust_pay_batch->paybatchnum,$aba,$account,$cust_pay_batch->amount*100) %><% } elsif ($format eq "csv-td_canada_trust-merchant_pc_batch") { @@ -75,9 +98,13 @@ for my $cust_pay_batch ( sort { $a->paybatchnum <=> $b->paybatchnum } if ($format eq "BoM") { - %><%= sprintf( "YD%08u%014u%56s\n",$batchcount,$batchtotal*100,"" ). + %><%= sprintf( "YD%08u%014.0f%56s\n",$batchcount,$batchtotal*100,"" ). sprintf( "Z%014u%05u%014u%05u%41s\n",$batchtotal*100,$batchcount,"0","0","" ) %><% +} elsif ($format eq "PAP"){ + + %><%= sprintf( "T%08u%014.0f%57s\n",$batchcount,$batchtotal*100,"" ) %><% + } elsif ($format eq "csv-td_canada_trust-merchant_pc_batch"){ #1; } else { |