<% $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)" : '';