summaryrefslogtreecommitdiff
path: root/httemplate
diff options
context:
space:
mode:
authorjeff <jeff>2006-08-09 06:43:02 +0000
committerjeff <jeff>2006-08-09 06:43:02 +0000
commit6c375156081be5d2023001ed8eaac9b6db568e95 (patch)
tree2fc0676f8f6facd38773035e4a22ba23fd7d85ed /httemplate
parentb58e61ac7df612f606c3e68371265e790e0be585 (diff)
batch refactor
Diffstat (limited to 'httemplate')
-rwxr-xr-xhttemplate/browse/cust_pay_batch.cgi33
-rwxr-xr-xhttemplate/browse/pay_batch.cgi54
-rw-r--r--httemplate/docs/schema.html4
-rw-r--r--httemplate/misc/download-batch.cgi37
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 {