From 4b695753d2456060e6a16808120cbb488a19c584 Mon Sep 17 00:00:00 2001 From: Jonathan Prykop Date: Mon, 13 Jul 2015 18:33:52 -0500 Subject: RT#31594: Unapplied payment issues --- httemplate/edit/cust_pay.cgi | 10 +++-- httemplate/edit/process/cust_pay-no_auto_apply.cgi | 48 ++++++++++++++++++++++ httemplate/edit/process/cust_pay.cgi | 1 + 3 files changed, 55 insertions(+), 4 deletions(-) create mode 100644 httemplate/edit/process/cust_pay-no_auto_apply.cgi (limited to 'httemplate/edit') diff --git a/httemplate/edit/cust_pay.cgi b/httemplate/edit/cust_pay.cgi index 888335fbb..5d74365e7 100755 --- a/httemplate/edit/cust_pay.cgi +++ b/httemplate/edit/cust_pay.cgi @@ -87,15 +87,17 @@ <% mt('Auto-apply to invoices') |h %> - + + + + + % } elsif ( $link eq 'invnum' ) { <% mt('Apply to') |h %> Invoice #<% $linknum %> only - + % } diff --git a/httemplate/edit/process/cust_pay-no_auto_apply.cgi b/httemplate/edit/process/cust_pay-no_auto_apply.cgi new file mode 100644 index 000000000..ccbd2d7b5 --- /dev/null +++ b/httemplate/edit/process/cust_pay-no_auto_apply.cgi @@ -0,0 +1,48 @@ +<%doc> +Quick process for toggling no_auto_apply field in cust_pay. + +Requires paynum and no_auto_apply ('Y' or '') in cgi. + +Requires 'Apply payment' acl. + + +% if ($error) { + +

<% emt($error) %>

+ +% } else { + +

<% emt($message) %>

+

<% emt('Please wait while the page reloads.') %>

+ + +% } + +<%init> +die "access denied" + unless $FS::CurrentUser::CurrentUser->access_right('Apply payment'); + +my $paynum = $cgi->param('paynum'); +my $noauto = $cgi->param('no_auto_apply'); + +my $error = ''; +my $message = ''; +my $cust_pay = qsearchs('cust_pay',{ paynum => $paynum }); +if ($cust_pay) { + if (($noauto eq 'Y') || (defined($noauto) && (length($noauto) == 0))) { + $cust_pay->no_auto_apply($noauto); + $error = $cust_pay->replace; + $message = $noauto ? + q(Payment will not be automatically applied to open invoices, must be applied manually) : + q(Payment will be automatically applied to open invoices the next time this customer's payments are processed); + } else { + $error = 'no_auto_apply not specified'; + } +} else { + $error .= 'Payment could not be found in database'; +} + + + diff --git a/httemplate/edit/process/cust_pay.cgi b/httemplate/edit/process/cust_pay.cgi index a002fa181..56d3f2ff1 100755 --- a/httemplate/edit/process/cust_pay.cgi +++ b/httemplate/edit/process/cust_pay.cgi @@ -50,6 +50,7 @@ else { my $new = new FS::cust_pay ( { $field => $linknum, _date => $_date, + no_auto_apply => ($cgi->param('apply') eq 'never') ? 'Y' : '', map { $_, scalar($cgi->param($_)); } qw( paid payby payinfo paybatch -- cgit v1.2.1