<& /elements/xmlhttp.html, 'url' => $p.'misc/xmlhttp-pay_batch-note.html', 'subs' => [ 'get_note' ] &> % # 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') ) % ) {
% if ( $fixed ) { % } % else { Download batch in format <& .select_gateway &> % }
% } # 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') % ) % ) { <& /elements/form-file_upload.html, 'name' => 'FileUpload', 'action' => "${p}misc/upload-batch.cgi", 'num_files' => 1, 'fields' => [ 'batchnum', 'format', 'gatewaynum' ], 'url' => $cgi->self_url, 'message' => 'Batch results uploaded.', &> Upload results
<& /elements/file-upload.html, 'field' => 'file', 'label' => 'Filename', 'no_table' => 1, &>
% if ( $fixed ) { % if ( $fixed eq 'td_eft1464' ) { # special case Upload in format % } % else { % } % } % else { Upload in format <& .select_gateway &> % } # if $fixed
% } # end upload % # manual approval % if ( $fixed eq 'td_eft1464' % and $status eq 'I' % and $payby eq 'CHEK' % and $conf->exists('batch-manual_approval') % ) {
% } # end manual approval % # summary info Batch is <% $statustext{$status} %>
<%$count%> payments batched
<%$money_char%><%$total%> total in batch
<%def .select_gateway> % if ( $show_gateways ) { or for gateway <& /elements/select-table.html, empty_label => ' ', field => 'gatewaynum', table => 'payment_gateway', name_col => 'label', value_col => 'gatewaynum', order_by => 'ORDER BY gatewaynum', hashref => { 'gateway_namespace' => 'Business::BatchPayment', 'disabled' => '', } &> % } <%shared> my $show_gateways = FS::payment_gateway->count("gateway_namespace = 'Business::BatchPayment' AND disabled IS NULL"); <%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', 'NACHA' => '94 byte NACHA', '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', 'eft_canada' => 'EFT Canada CSV batch', 'CIBC' => '80 byte file for Canadian Imperial Bank of Commerce', # 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));