diff options
author | Jonathan Prykop <jonathan@freeside.biz> | 2015-07-13 18:33:52 -0500 |
---|---|---|
committer | Jonathan Prykop <jonathan@freeside.biz> | 2015-07-13 18:33:52 -0500 |
commit | 4b695753d2456060e6a16808120cbb488a19c584 (patch) | |
tree | bdbfb439e5ee7be8e2b84c388589043a05d385bc /httemplate/edit | |
parent | 2ead33f915536127cd148d4e2ca474b9c45c634b (diff) |
RT#31594: Unapplied payment issues
Diffstat (limited to 'httemplate/edit')
-rwxr-xr-x | httemplate/edit/cust_pay.cgi | 10 | ||||
-rw-r--r-- | httemplate/edit/process/cust_pay-no_auto_apply.cgi | 48 | ||||
-rwxr-xr-x | httemplate/edit/process/cust_pay.cgi | 1 |
3 files changed, 55 insertions, 4 deletions
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 @@ <TD ALIGN="right"><% mt('Auto-apply to invoices') |h %></TD> <TD COLSPAN=2> <SELECT NAME="apply"> - <OPTION VALUE="yes" SELECTED><% mt('yes') |h %> - <OPTION><% mt('no') |h %></SELECT> - </TD> + <OPTION VALUE="yes" SELECTED><% mt('yes') |h %></OPTION> + <OPTION VALUE=""><% mt('not now') |h %></OPTION> + <OPTION VALUE="never"><% mt('never') |h %></OPTION> + </SELECT> + </TD> % } elsif ( $link eq 'invnum' ) { <TD ALIGN="right"><% mt('Apply to') |h %></TD> <TD COLSPAN=2 BGCOLOR="#ffffff">Invoice #<B><% $linknum %></B> only</TD> - <INPUT TYPE="hidden" NAME="apply" VALUE="no"> + <INPUT TYPE="hidden" NAME="apply" VALUE=""> % } </TR> 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. +</%doc> + +% if ($error) { + +<P STYLE="color: #FF0000"><% emt($error) %></P> + +% } else { + +<P STYLE="font-weight: bold;"><% emt($message) %></P> +<P><% emt('Please wait while the page reloads.') %></P> +<SCRIPT TYPE="text/javascript"> +window.top.location.reload(); +</SCRIPT> + +% } + +<%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'; +} + + +</%init> 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 |