<% $credit %> <% "$reason$desc$apply$delete$unapply" %> <%init> my( $cust_credit, %opt ) = @_; my $date_format = $opt{'date_format'} || '%m/%d/%Y'; my $conf = new FS::Conf; my $money_char = $conf->config('money_char') || '$'; my $curuser = $FS::CurrentUser::CurrentUser; 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 ($conf->exists('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 ( $curuser->access_right('Apply credit') ) { if ( $cust_credit->cust_main->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 ( $cust_credit->cust_main->total_unapplied_refunds > 0 ) { $apply.= ' ('. include( '/elements/popup_link.html', 'label' => emt('apply to refund'), '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 .= ' ' . $money_char . $app->amount . ' ' . $app->applied_to_invoice . '
'; } elsif ( $app->isa('FS::cust_credit_refund') ) { $desc .= ' ' . emt("[_1][_2] refunded on [_3]", $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", $money_char, $cust_credit->credited) . ''; if ( $curuser->access_right('Apply credit') ) { if ( $cust_credit->cust_main->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 ( $cust_credit->cust_main->total_unapplied_refunds > 0 ) { $apply.= ' ('. include( '/elements/popup_link.html', 'label' => emt('apply to refund'), 'action' => "${p}edit/cust_credit_refund.cgi?". $cust_credit->crednum, 'actionlabel' => emt('Apply credit to refund'), 'width' => 392, ). ')'; } } $desc .= '
'; } } # my $delete = ''; $delete = areyousure_link("${p}misc/delete-cust_credit.cgi?".$cust_credit->crednum, emt('Are you sure you want to delete this credit?'), '', emt('delete') ) if ( $cust_credit->closed !~ /^Y/i && $curuser->access_right('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) && $curuser->access_right('Unapply credit') ); my $reason = $cust_credit->reason ? ' ('. $cust_credit->reason. ')' : '';