<% $payment. ' '. $info. $desc.
- $view. $change_pkg. $apply. $refund. $void. $delete. $unapply
+ $view. $email. $change_pkg. $apply. $refund. $void. $unapply
%>
<%init>
).
')';
+my $email = $opt{'has_email_address'} ?
+ q! (<A HREF="javascript:void(0)" ONCLICK="areyousure_popup('Send email receipt for payment to customer?','!.
+ "${p}view/cust_pay.html?link=email;paynum=".
+ $cust_pay->paynum.
+ q!','Email Payment Receipt')" TITLE="Send email receipt">email receipt</A>)!
+ : '';
+
my $change_pkg = '';
if ( $apply && $opt{'pkg-balances'} && $cust_pay->pkgnum ) {
$change_pkg =
my $refund = '';
my $refund_days = $opt{'card_refund-days'} || 120;
-my $refund_right = '';
-$refund_right = 'Refund credit card payment' if $cust_pay->payby eq 'CARD';
-$refund_right = 'Refund Echeck payment' if $cust_pay->payby eq 'CHEK';
+my @refund_right = grep { $opt{$_} } $FS::CurrentUser::CurrentUser->refund_rights($cust_pay->payby);
if ( $cust_pay->closed !~ /^Y/i
- && $cust_pay->payby =~ /^(CARD|CHEK)$/
+ && $cust_pay->payby =~ /^(CARD|CHEK|BILL)$/
&& time-$cust_pay->_date < $refund_days*86400
&& $cust_pay->unrefunded > 0
- && $opt{$refund_right}
+ && scalar(@refund_right)
) {
+ my $refundtitle = ($cust_pay->payby =~ /^(CARD|CHEK)$/)
+ ? emt('Send a refund for this payment to the payment gateway')
+ : emt('Record a refund for this payment');
+
$refund = qq! (<A HREF="${p}edit/cust_refund.cgi?payby=$1;!.
qq!paynum=!. $cust_pay->paynum. '"'.
- qq! TITLE="! .emt('Send a refund for this payment to the payment gateway')
+ qq! TITLE="! . $refundtitle
. '">' . emt('refund') . '</A>)';
}
my $void = '';
-my $voidmsg = $cust_pay->payby =~ /^(CARD|CHEK)$/
+# note: "TOKN" is not yet supported in stock freeside
+my $voidmsg = $cust_pay->payby =~ /^(CARD|CHEK|TOKN)$/
? ' (' . emt('do not send anything to the payment gateway').')'
: '';
-$void = areyousure_link("${p}misc/void-cust_pay.cgi?".$cust_pay->paynum,
- emt('Are you sure you want to void this payment?'),
- emt('Void this payment from the database') . $voidmsg,
- emt('void')
- )
+$void = ' ('.
+ include( '/elements/popup_link.html',
+ 'label' => emt('void'),
+ 'action' => "${p}misc/void-cust_pay.html?".$cust_pay->paynum,
+ 'actionlabel' => emt('Void payment'),
+ ).
+ ')'
if $cust_pay->closed !~ /^Y/i
&& ( ( $cust_pay->payby eq 'CARD' && $opt{'Credit card void'} )
|| ( $cust_pay->payby eq 'CHEK' && $opt{'Echeck void'} )
|| ( $cust_pay->payby !~ /^(CARD|CHEK)$/ && $opt{'Void payments'} )
);
-my $delete = '';
-$delete = areyousure_link("${p}misc/delete-cust_pay.cgi?".$cust_pay->paynum,
- emt('Are you sure you want to delete this payment?'),
- emt('Delete this payment from the database completely - not recommended'),
- emt('delete')
- )
- if $cust_pay->closed !~ /^Y/i
- && $opt{'deletepayments'}
- && $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 ? ' ' . 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 ? ' ' . emt('refunds') : '')
+ )
+ if $refund_to_unapply;
+}
</%init>