% $credit. ' '. $reason. $desc. $change_pkg. $apply . $unapply. $void %>
<%init>
my( $cust_credit, %opt ) = @_;
my $date_format = $opt{'date_format'} || '%m/%d/%Y';
my @cust_credit_bill = $cust_credit->cust_credit_bill;
my @cust_credit_refund = $cust_credit->cust_credit_refund;
my $desc = '';
if ( $opt{'pkg-balances'} && $cust_credit->pkgnum ) {
my $cust_pkg = qsearchs('cust_pkg', { 'pkgnum' => $cust_credit->pkgnum } );
$desc .= ' for '. $cust_pkg->pkg_label_long;
}
my %cust_credit_bill_width = ('width' => 392);
my %cust_credit_bill_height = ();
if ( $opt{'cust_credit_bill_pkg-manual'} ) {
%cust_credit_bill_width = ('width' => 592);
%cust_credit_bill_height = ('height' => 436);
}
my( $apply, $ext ) = ( '', '', '', '' );
my $credit = emt("Credit by [_1]", $cust_credit->otaker );
if ( scalar(@cust_credit_bill) == 0
&& scalar(@cust_credit_refund) == 0 ) {
#completely unapplied
$credit = ''
. emt("Unapplied Credit by [_1]", $cust_credit->otaker )
. '';
if ( $opt{'Apply credit'} ) {
if ( $opt{total_owed} > 0 ) {
$apply = ' ('.
include( '/elements/popup_link.html',
'label' => emt('apply'),
'action' => "${p}edit/cust_credit_bill.cgi?".
$cust_credit->crednum,
'actionlabel' => emt('Apply credit'),
%cust_credit_bill_width,
%cust_credit_bill_height,
).
')';
}
if ( $opt{total_unapplied_refunds} > 0 ) {
$apply.= ' ('.
include( '/elements/popup_link.html',
'label' => emt('apply refund'),
'style' => 'white-space: nowrap',
'action' => "${p}edit/cust_credit_refund.cgi?".
$cust_credit->crednum,
'actionlabel' => emt('Apply credit to refund'),
'width' => 392,
).
')';
}
}
} elsif ( scalar(@cust_credit_bill) == 1
&& scalar(@cust_credit_refund) == 0
&& $cust_credit->credited == 0 ) {
#applied to one invoice, the usual situation
$desc .= ' '. $cust_credit_bill[0]->applied_to_invoice;
} elsif ( scalar(@cust_credit_bill) == 0
&& scalar(@cust_credit_refund) == 1
&& $cust_credit->credited == 0 ) {
#applied to one refund
$desc .= emt(" refunded on [_1]", time2str($date_format, $cust_credit_refund[0]->_date) );
} else {
#complicated
$desc .= '
';
foreach my $app ( sort { $a->_date <=> $b->_date }
( @cust_credit_bill, @cust_credit_refund ) ) {
if ( $app->isa('FS::cust_credit_bill') ) {
$desc .= ' ' . $opt{money_char} . $app->amount . ' '
. $app->applied_to_invoice . '
';
} elsif ( $app->isa('FS::cust_credit_refund') ) {
$desc .= ' ' .
emt("[_1][_2] refunded on [_3]", $opt{money_char}, $app->amount,
time2str($date_format, $app->_date) ) . '
';
} else {
die "$app is not a FS::cust_credit_bill or a FS::cust_credit_refund";
}
}
if ( $cust_credit->credited > 0 ) {
$desc .= ' '.
emt("[_1][_2] unapplied",$opt{money_char},$cust_credit->credited).
'';
if ( $opt{'Apply credit'} ) {
if ( $opt{total_owed} > 0 ) {
$apply = ' ('.
include( '/elements/popup_link.html',
'label' => emt('apply'),
'action' => "${p}edit/cust_credit_bill.cgi?".
$cust_credit->crednum,
'actionlabel' => emt('Apply credit'),
%cust_credit_bill_width,
%cust_credit_bill_height,
).
')';
}
if ( $opt{total_unapplied_refunds} > 0 ) {
$apply.= ' ('.
include( '/elements/popup_link.html',
'label' => emt('apply refund'),
'style' => 'white-space: nowrap',
'action' => "${p}edit/cust_credit_refund.cgi?".
$cust_credit->crednum,
'actionlabel' => emt('Apply credit to refund'),
'width' => 392,
).
')';
}
}
$desc .= '
';
}
}
my $change_pkg = '';
if ( $apply && $opt{'pkg-balances'} && $cust_credit->pkgnum ) {
$change_pkg =
' ('. include('/elements/popup_link.html',
'label' => emt('change package'),
'action' => "${p}edit/cust_credit-pkgnum.html?crednum=".
$cust_credit->crednum,
'actionlabel' => emt('Change credit package'),
'width' => 763,
).
')';
}
my $void = '';
$void = ' ('.
include( '/elements/popup_link.html',
'label' => emt('void'),
'action' => "${p}misc/void-cust_credit.html?".
$cust_credit->crednum,
'actionlabel' => emt('Void credit'),
).
')'
if $cust_credit->closed !~ /^Y/i
&& $opt{'Void credit'};
my $unapply = '';
if ($opt{'Unapply credit'} && !$cust_credit->closed) {
$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')
)
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 refunds')
)
if $cust_credit->refund_to_unapply;
}
my $reason = $cust_credit->reason;
$reason = $reason ? " ($reason)" : '';
%init>