& /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') )
% ) {
% # 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' => '',
}
&>
% }
%def>
<%shared>
my $show_gateways = FS::payment_gateway->count("gateway_namespace = 'Business::BatchPayment' AND disabled IS NULL");
%shared>
<%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', FS::pay_batch::batch_download_formats;
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';
if ($pay_batch->type eq "CREDIT" && $pay_batch->payby eq "CHEK") {
foreach my $key (keys %download_formats) {
delete $download_formats{$key} unless FS::pay_batch->can_handle_electronic_refunds($key);
## remove default format if unable to handle electronic refunds
if ($key eq '') {
delete $download_formats{$key} unless FS::pay_batch->can_handle_electronic_refunds($conf->config("batch-default_format"));
}
}
}
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>