diff options
Diffstat (limited to 'httemplate/search')
-rwxr-xr-x | httemplate/search/cust_pay_batch.cgi | 116 | ||||
-rw-r--r-- | httemplate/search/elements/cust_pay_batch_top.html | 127 | ||||
-rwxr-xr-x | httemplate/search/pay_batch.cgi | 6 |
3 files changed, 140 insertions, 109 deletions
diff --git a/httemplate/search/cust_pay_batch.cgi b/httemplate/search/cust_pay_batch.cgi index 4a2248726..8022d4666 100755 --- a/httemplate/search/cust_pay_batch.cgi +++ b/httemplate/search/cust_pay_batch.cgi @@ -3,7 +3,10 @@ 'name' => 'batch details', 'query' => $sql_query, 'count_query' => $count_query, - 'html_init' => $pay_batch ? $html_init : '', + 'html_init' => $pay_batch ? + include('elements/cust_pay_batch_top.html', + 'pay_batch' => $pay_batch + ) : '', 'header' => [ '#', 'Inv #', 'Customer', @@ -66,7 +69,6 @@ die "access denied" && ( $conf->exists('batch-enable') || $conf->config('batch-enable_payby') ) - #&& $FS::CurrentUser::CurrentUser->access_right('View customer batched payments') ); my( $count_query, $sql_query ); @@ -124,113 +126,9 @@ $sql_query = "SELECT paybatchnum,invnum,custnum,cpb.last,cpb.first," . 'LEFT JOIN pay_batch USING ( batchnum ) ' . "$search ORDER BY $orderby"; -my $html_init = '<TABLE>'; +my $html_init = ''; if ( $pay_batch ) { - my $fixed = $conf->config('batch-fixed_format-'. $pay_batch->payby); - if ( - $pay_batch->status eq 'O' - || ( $pay_batch->status eq 'I' - && $FS::CurrentUser::CurrentUser->access_right('Reprocess batches') - ) - || ( $pay_batch->status eq 'R' - && $FS::CurrentUser::CurrentUser->access_right('Redownload resolved batches') - ) - ) { - $html_init .= qq!<TR><FORM ACTION="$p/misc/download-batch.cgi" METHOD="POST">!; - if ( $fixed ) { - $html_init .= qq!<INPUT TYPE="hidden" NAME="format" VALUE="$fixed">!; - } else { - $html_init .= qq!Download batch in format !. - qq!<SELECT NAME="format">!. - qq!<OPTION VALUE="">Default batch mode</OPTION>!. - qq!<OPTION VALUE="csv-td_canada_trust-merchant_pc_batch">CSV file for TD Canada Trust Merchant PC Batch</OPTION>!. - qq!<OPTION VALUE="csv-chase_canada-E-xactBatch">CSV file for Chase Canada E-xactBatch</OPTION>!. - qq!<OPTION VALUE="PAP">80 byte file for TD Canada Trust PAP Batch</OPTION>!. - qq!<OPTION VALUE="BoM">Bank of Montreal ECA batch</OPTION>!. - qq!<OPTION VALUE="ach-spiritone">Spiritone ACH batch</OPTION>!. - qq!<OPTION VALUE="paymentech">Chase Paymentech XML</OPTION>!. - qq!<OPTION VALUE="RBC">Royal Bank of Canada PDS</OPTION>!. - qq!<OPTION VALUE="td_eft1464">TD Commercial Banking EFT 1464 byte</OPTION>!. - - qq!</SELECT>!; - } - $html_init .= qq!<INPUT TYPE="hidden" NAME="batchnum" VALUE="$batchnum"><INPUT TYPE="submit" VALUE="Download"></FORM><BR><BR></TR>!; - } - - if ( - $pay_batch->status eq 'I' - || ( $pay_batch->status eq 'R' - && $FS::CurrentUser::CurrentUser->access_right('Reprocess batches') - ) - ) { - $html_init .= '<TR>'. - include('/elements/form-file_upload.html', - 'name' => 'FileUpload', - 'action' => "$p/misc/upload-batch.cgi", - 'num_files' => 1, - 'fields' => [ 'batchnum', 'format' ], - 'message' => 'Batch results uploaded.', - ) . - 'Upload results<BR></TR><TR>'. - include('/elements/file-upload.html', - 'field' => 'file', - 'label' => 'Filename', - 'no_table'=> 1 - ). - '<BR></TR>' - ; - if ( $fixed and $fixed eq 'td_eft1464' ) { - # special case, this one has two upload formats - $html_init .= qq!<TR>Format !. - qq!<SELECT NAME="format">!. - qq!<OPTION VALUE="td_eftack264">TD EFT Acknowledgement</OPTION>!. - qq!<OPTION VALUE="td_eftret80">TD EFT Returned Items</OPTION>!. - qq!</SELECT><BR></TR>!; - } - elsif ( $fixed ) { - $html_init .= qq!<INPUT TYPE="hidden" NAME="format" VALUE="$fixed">!; - } else { - # should pull this from %import_info - $html_init .= qq!<TR>Format !. - qq!<SELECT NAME="format">!. - qq!<OPTION VALUE="">Default batch mode</OPTION>!. - qq!<OPTION VALUE="csv-td_canada_trust-merchant_pc_batch">CSV results from TD Canada Trust Merchant PC Batch</OPTION>!. - qq!<OPTION VALUE="csv-chase_canada-E-xactBatch">CSV file for Chase Canada E-xactBatch</OPTION>!. - qq!<OPTION VALUE="PAP">264 byte results for TD Canada Trust PAP Batch</OPTION>!. - qq!<OPTION VALUE="BoM">Bank of Montreal ECA results</OPTION>!. - qq!<OPTION VALUE="ach-spiritone">Spiritone ACH batch</OPTION>!. - qq!<OPTION VALUE="paymentech">Chase Paymentech XML</OPTION>!. - qq!<OPTION VALUE="RBC">Royal Bank of Canada PDS</OPTION>!. - qq!<OPTION VALUE="td_eftack264">TD EFT Acknowledgement</OPTION>!. - qq!<OPTION VALUE="td_eftret80">TD EFT Returned Items</OPTION>!. - qq!</SELECT><BR></TR>!; - } - $html_init .= qq!<INPUT TYPE="hidden" NAME="batchnum" VALUE="$batchnum">!; - $html_init .= '<TR> <INPUT TYPE="submit" VALUE="Upload"></FORM><BR> </TR>'; - if ( $conf->exists('batch-manual_approval') - and $conf->config('batch-fixed_format-CHEK') eq 'td_eft1464' - and $pay_batch->status eq 'I' - and $pay_batch->payby eq 'CHEK' ) { - $html_init .= qq!<TR><INPUT TYPE="button" VALUE="Manually approve" onclick=" -if ( confirm('Approve all remaining payments in this batch?') ) - window.location.href='${p}misc/process/pay_batch-approve.cgi?batchnum=$batchnum';"></TR>! - } - } - $html_init .= '</TABLE>'; + $html_init = include('elements/cust_pay_batch_top.html', + 'pay_batch' => $pay_batch); } - -if ($pay_batch) { - my $sth = dbh->prepare($count_query) or die dbh->errstr. "doing $count_query"; - $sth->execute or die "Error executing \"$count_query\": ". $sth->errstr; - my $cards = $sth->fetchrow_arrayref->[0]; - - my $st = "SELECT SUM(amount) from cust_pay_batch WHERE batchnum=". $batchnum; - $sth = dbh->prepare($st) or die dbh->errstr. "doing $st"; - $sth->execute or die "Error executing \"$st\": ". $sth->errstr; - my $total = $sth->fetchrow_arrayref->[0]; - - $html_init .= "$cards credit card payments batched<BR>\$" . - sprintf("%.2f", $total) ." total in batch<BR>"; -} - </%init> diff --git a/httemplate/search/elements/cust_pay_batch_top.html b/httemplate/search/elements/cust_pay_batch_top.html new file mode 100644 index 000000000..96ed428b0 --- /dev/null +++ b/httemplate/search/elements/cust_pay_batch_top.html @@ -0,0 +1,127 @@ +% # Download batch +% if ( $status eq 'O' +% or ( $status eq 'I' and $curuser->access_right('Reprocess batches') ) +% or ( $status eq 'R' and $curuser->access_right('Redownload resolved batches') ) +% ) { +<TABLE> +<TR><FORM ACTION="<%$p%>misc/download-batch.cgi" METHOD="POST"> +<INPUT TYPE="hidden" NAME="batchnum" VALUE="<%$batchnum%>"> +% if ( $fixed ) { +<INPUT TYPE="hidden" NAME="format" VALUE="<%$fixed%>"> +% } +% else { +Download batch in format <SELECT NAME="format"> +% foreach ( keys %download_formats ) { +<OPTION VALUE="<%$_%>"><% $download_formats{$_} %></OPTION> +% } +</SELECT> +% } +<INPUT TYPE="submit" VALUE="Download"></FORM><BR><BR></TR> +% } # end of download + +% # Upload batch +% if ( $pay_batch->status eq 'I' +% or ( $pay_batch->status eq 'R' +% and $curuser->access_right('Reprocess batches') +% and $conf->exists('batch-manual_approval') +% ) +% ) { +<TR> +<% include('/elements/form-file_upload.html', + 'name' => 'FileUpload', + 'action' => "${p}misc/upload-batch.cgi", + 'num_files' => 1, + 'fields' => [ 'batchnum', 'format' ], + 'message' => 'Batch results uploaded.', +) %> +Upload results<BR></TR> +<TR> +<% include('/elements/file-upload.html', + 'field' => 'file', + 'label' => 'Filename', + 'no_table' => 1, +) %> +<INPUT TYPE="hidden" NAME="batchnum" VALUE="<% $batchnum %>"> +<BR></TR> +% if ( $fixed ) { +% if ( $fixed eq 'td_eft1464' ) { # special case +<TR>Format <SELECT NAME="format"> +<OPTION VALUE="td_eftack264">TD EFT Acknowledgement</OPTION> +<OPTION VALUE="td_eftret80">TD EFT Returned Items</OPTION> +</SELECT></TR> +% } +% else { +<INPUT TYPE="hidden" NAME="format" VALUE="<% $fixed %>"> +% } +% } +% else { +<TR>Format <SELECT NAME="format"> +% foreach ( keys(%upload_formats) ) { +<OPTION VALUE="<%$_%>"><% $upload_formats{$_} %></OPTION> +% } +% } # if $fixed +<TR><INPUT TYPE="submit" VALUE="Upload"></TR> +</FORM><BR> +% } # end upload + +% # manual approval +% if ( $fixed eq 'td_eft1464' +% and $status eq 'I' +% and $payby eq 'CHEK' +% and $conf->exists('batch-manual_approval') +% ) { +<TR><INPUT TYPE="button" VALUE="Manually approve" onclick=" +if ( confirm('Approve all remaining payments in this batch?') ) + window.location.href='<%$p%>misc/process/pay_batch-approve.cgi?batchnum=<%$batchnum%>'; +"></TR> +% } # end manual approval +</TABLE> + +% # summary info +Batch is <% $statustext{$status} %><BR> +<%$count%> payments batched<BR> +<%$money_char%><%$total%> total in batch<BR> + +<%init> +my %opt = @_; +my $pay_batch = $opt{'pay_batch'} or return; +my $conf = new FS::Conf; +my $money_char = $conf->config('money_char') || '$'; +my $payby = $pay_batch->payby; +my $status = $pay_batch->status; +my $curuser = $FS::CurrentUser::CurrentUser; +my $batchnum = $pay_batch->batchnum; + +my $fixed = $conf->config("batch-fixed_format-$payby"); + +tie my %download_formats, 'Tie::IxHash', ( +'' => 'Default batch mode', +'csv-td_canada_trust-merchant_pc_batch' => + 'CSV file for TD Canada Trust Merchant PC Batch', +'csv-chase_canada-E-xactBatch' => + 'CSV file for Chase Canada E-xactBatch', +'PAP' => '80 byte file for TD Canada Trust PAP Batch', +'BoM' => 'Bank of Montreal ECA batch', +'ach-spiritone' => 'Spiritone ACH batch', +'paymentech' => 'XML file for Chase Paymentech', +'RBC' => 'Royal Bank of Canada PDS batch', +'td_eft1464' => '1464 byte file for TD Commercial Banking EFT', +# insert new batch formats here +); + +tie my %upload_formats, 'Tie::IxHash', ( + %download_formats, +# minor tweaks + 'td_eftack' => 'TD EFT Acknowledgement', + 'td_eftret' => 'TD EFT Returned Items', +); +delete $upload_formats{'td_eft1464'}; +$upload_formats{'PAP'} = '264 byte results for TD Canada Trust PAP Batch', + +my %statustext = ( 'O' => 'open', 'I' => 'in transit', 'R' => 'resolved' ); + +my $count_query = "SELECT COUNT(*) FROM cust_pay_batch WHERE batchnum=$batchnum"; +my $count = FS::Record->scalar_sql($count_query); +my $sum_query = "SELECT SUM(amount) FROM cust_pay_batch WHERE batchnum=$batchnum"; +my $total = sprintf("%.2f", FS::Record->scalar_sql($sum_query)); +</%init> diff --git a/httemplate/search/pay_batch.cgi b/httemplate/search/pay_batch.cgi index 6d571b42f..34297a500 100755 --- a/httemplate/search/pay_batch.cgi +++ b/httemplate/search/pay_batch.cgi @@ -80,6 +80,7 @@ sub { shift->status eq 'O' ? "b" : '' }, sub { shift->status eq 'I' ? "b" : '' }, ], + 'html_init' => $html_init, ) %> @@ -128,4 +129,9 @@ my $extra_sql = scalar(@where) ? 'WHERE ' . join(' AND ', @where) : ''; my $link = [ "${p}search/cust_pay_batch.cgi?dcln=1;batchnum=", 'batchnum' ]; +my $resolved = $cgi->param('resolved') || 0; +$cgi->param('resolved' => !$resolved); +my $html_init = '<A HREF="' . $cgi->self_url . '"><I>'. + ($resolved ? 'Hide' : 'Show') . ' resolved batches</I></A><BR>'; + </%init> |