X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=httemplate%2Fmisc%2Fprocess%2Fdelete-cust_pay_batch.cgi;fp=httemplate%2Fmisc%2Fprocess%2Fdelete-cust_pay_batch.cgi;h=4937b58e2b7f8f34d527431b7a3f99f9ccac0365;hb=6821ffc8988f64ddeefe1219b32d00cc57c4ccde;hp=0000000000000000000000000000000000000000;hpb=ee10b43452faa00be4ce3b06cac7596655fa5988;p=freeside.git diff --git a/httemplate/misc/process/delete-cust_pay_batch.cgi b/httemplate/misc/process/delete-cust_pay_batch.cgi new file mode 100644 index 000000000..4937b58e2 --- /dev/null +++ b/httemplate/misc/process/delete-cust_pay_batch.cgi @@ -0,0 +1,37 @@ +<% $server->process %> +<%init> + +my $curuser = $FS::CurrentUser::CurrentUser; + +die "access denied" + unless $curuser->access_right('Process batches') + || $curuser->access_right('Process global batches'); + +# look up paybatch using agentnums_sql & status constraints +# to validate access for this particular cust_pay_batch, +# similar to how it's done in cust_pay_batch.cgi + +my %arg = $cgi->param('arg'); +my $paybatchnum = $arg{'paybatchnum'}; +$paybatchnum =~ /^\d+$/ or die "Illegal paybatchnum"; +my @search = (); +push @search, 'cust_pay_batch.paybatchnum = ' . $paybatchnum; +push @search, '(cust_pay_batch.status = \'\' OR cust_pay_batch.status IS NULL)'; +push @search, 'pay_batch.status = \'O\''; +push @search, $curuser->agentnums_sql({ table => 'cust_main' }); +push @search, $curuser->agentnums_sql({ table => 'pay_batch', + null_right => 'Process global batches', + }); +my $search = ' WHERE ' . join(' AND ', @search); +die "permission denied" unless qsearchs({ + 'table' => 'cust_pay_batch', + 'hashref' => {}, + 'addl_from' => 'LEFT JOIN pay_batch USING ( batchnum ) '. + 'LEFT JOIN cust_main USING ( custnum ) '. + 'LEFT JOIN cust_pay USING ( batchnum, custnum ) ', + 'extra_sql' => $search +}); + +my $server = new FS::UI::Web::JSRPC 'FS::cust_pay_batch::process_unbatch_and_delete', $cgi; + +