summaryrefslogtreecommitdiff
path: root/httemplate
diff options
context:
space:
mode:
Diffstat (limited to 'httemplate')
-rwxr-xr-xhttemplate/misc/unapply-cust_credit_refund.cgi18
-rwxr-xr-xhttemplate/misc/unapply-cust_pay_refund.cgi18
-rw-r--r--httemplate/view/cust_main/payment_history/credit.html25
-rw-r--r--httemplate/view/cust_main/payment_history/payment.html24
4 files changed, 69 insertions, 16 deletions
diff --git a/httemplate/misc/unapply-cust_credit_refund.cgi b/httemplate/misc/unapply-cust_credit_refund.cgi
new file mode 100755
index 000000000..55a81b055
--- /dev/null
+++ b/httemplate/misc/unapply-cust_credit_refund.cgi
@@ -0,0 +1,18 @@
+<% $cgi->redirect($p. "view/cust_main.cgi?custnum=". $custnum. ";show=payment_history") %>
+<%init>
+
+die "access denied"
+ unless $FS::CurrentUser::CurrentUser->access_right('Unapply credit');
+
+#untaint crednum
+my($query) = $cgi->keywords;
+$query =~ /^(\d+)$/ || die "Illegal crednum";
+my $crednum = $1;
+
+my $cust_credit = qsearchs('cust_credit', { 'crednum' => $crednum } );
+my $custnum = $cust_credit->custnum;
+
+my $error = $cust_credit->unapply_refund;
+errorpage($error) if $error;
+
+</%init>
diff --git a/httemplate/misc/unapply-cust_pay_refund.cgi b/httemplate/misc/unapply-cust_pay_refund.cgi
new file mode 100755
index 000000000..9e470b6e4
--- /dev/null
+++ b/httemplate/misc/unapply-cust_pay_refund.cgi
@@ -0,0 +1,18 @@
+<% $cgi->redirect($p. "view/cust_main.cgi?custnum=". $custnum. ";show=payment_history") %>
+<%init>
+
+die "access denied"
+ unless $FS::CurrentUser::CurrentUser->access_right('Unapply payment');
+
+#untaint paynum
+my($query) = $cgi->keywords;
+$query =~ /^(\d+)$/ || die "Illegal paynum";
+my $paynum = $1;
+
+my $cust_pay = qsearchs('cust_pay', { 'paynum' => $paynum } );
+my $custnum = $cust_pay->custnum;
+
+my $error = $cust_pay->unapply_refund;
+errorpage($error) if $error;
+
+</%init>
diff --git a/httemplate/view/cust_main/payment_history/credit.html b/httemplate/view/cust_main/payment_history/credit.html
index 3eed833d3..e9b42d300 100644
--- a/httemplate/view/cust_main/payment_history/credit.html
+++ b/httemplate/view/cust_main/payment_history/credit.html
@@ -148,14 +148,23 @@ $delete = areyousure_link("${p}misc/delete-cust_credit.cgi?".$cust_credit->credn
&& $opt{'Delete credit'};
my $unapply = '';
-$unapply = areyousure_link("${p}misc/unapply-cust_credit.cgi?".$cust_credit->crednum,
- emt('Are you sure you want to unapply this credit?'),
- '',
- emt('unapply')
- )
- if $cust_credit->closed !~ /^Y/i
- && scalar(@cust_credit_bill)
- && $opt{'Unapply credit'};
+
+if ($opt{'Unapply credit'} && !$cust_credit->closed) {
+ my $refund_to_unapply = $cust_credit->refund_to_unapply;
+ my $usepre = $refund_to_unapply && @cust_credit_bill;
+ $unapply = areyousure_link("${p}misc/unapply-cust_credit.cgi?".$cust_credit->crednum,
+ emt('Are you sure you want to unapply this credit from invoices?'),
+ emt('Keep this credit, but dissociate it from the invoices it is currently applied against'),
+ emt('unapply') . ($usepre ? '&nbsp;' . emt('invoices') : '')
+ )
+ if @cust_credit_bill;
+ $unapply .= areyousure_link("${p}misc/unapply-cust_credit_refund.cgi?".$cust_credit->crednum,
+ emt('Are you sure you want to unapply this credit from refunds?'),
+ emt('Keep this credit, but dissociate it from the refunds it is currently applied to'),
+ emt('unapply') . ($usepre ? '&nbsp;' . emt('refunds') : '')
+ )
+ if $refund_to_unapply;
+}
my $reason = $cust_credit->reason;
$reason = $reason ? " ($reason)" : '';
diff --git a/httemplate/view/cust_main/payment_history/payment.html b/httemplate/view/cust_main/payment_history/payment.html
index 652001789..c690a9281 100644
--- a/httemplate/view/cust_main/payment_history/payment.html
+++ b/httemplate/view/cust_main/payment_history/payment.html
@@ -203,13 +203,21 @@ $delete = areyousure_link("${p}misc/delete-cust_pay.cgi?".$cust_pay->paynum,
&& $opt{'Delete payment'};
my $unapply = '';
-$unapply = areyousure_link("${p}misc/unapply-cust_pay.cgi?".$cust_pay->paynum,
- emt('Are you sure you want to unapply this payment?'),
- emt('Keep this payment, but dissociate it from the invoices it is currently applied against'),
- emt('unapply')
- )
- if $cust_pay->closed !~ /^Y/i
- && scalar(@cust_bill_pay)
- && $opt{'Unapply payment'};
+if ($opt{'Unapply payment'} && !$cust_pay->closed) {
+ my $refund_to_unapply = $cust_pay->refund_to_unapply;
+ my $usepre = $refund_to_unapply && @cust_bill_pay;
+ $unapply = areyousure_link("${p}misc/unapply-cust_pay.cgi?".$cust_pay->paynum,
+ emt('Are you sure you want to unapply this payment from invoices?'),
+ emt('Keep this payment, but dissociate it from the invoices it is currently applied against'),
+ emt('unapply') . ($usepre ? '&nbsp;' . emt('invoices') : '')
+ )
+ if @cust_bill_pay;
+ $unapply .= areyousure_link("${p}misc/unapply-cust_pay_refund.cgi?".$cust_pay->paynum,
+ emt('Are you sure you want to unapply this payment from refunds?'),
+ emt('Keep this payment, but dissociate it from the refunds it is currently applied to'),
+ emt('unapply') . ($usepre ? '&nbsp;' . emt('refunds') : '')
+ )
+ if $refund_to_unapply;
+}
</%init>