- $unsuspend_pkg_comment = sub {
- my $pkgpart = shift->unsuspend_pkgpart or return '';
- my $part_pkg = FS::part_pkg->by_key($pkgpart) or return '';
- $part_pkg->pkg_comment;
- };
+ push @header,
+ 'Credit unused service',
+ 'Suspension fee',
+ ;
+ push @fields,
+ sub {
+ my $reason = shift;
+ if ( $reason->unused_credit ) {
+ return '<SPAN STYLE="background-color:#00ff00">YES</SPAN>';
+ } else {
+ return '<SPAN STYLE="background-color:#ff0000">NO</SPAN>';
+ }
+ },
+ sub {
+ my $reason = shift;
+ my $feepart = $reason->feepart;
+ my ($href, $text, $detail);
+ if ( $feepart ) {
+ my $part_fee = FS::part_fee->by_key($feepart) or return '';
+ $text = $part_fee->itemdesc . ': ' . $part_fee->explanation;
+ $detail = $reason->fee_on_unsuspend ? 'unsuspension' : 'suspension';
+ if ( $reason->fee_hold ) {
+ $detail = "next bill after $detail";
+ }
+ $detail = "(on $detail)";
+ $href = $p."edit/part_fee.html?$feepart";
+ } else {
+ my $pkgpart = $reason->unsuspend_pkgpart;
+ my $part_pkg = FS::part_pkg->by_key($pkgpart) or return '';
+ $text = $part_pkg->pkg_comment;
+ $href = $p."edit/part_pkg.cgi?$pkgpart";
+ $detail = $reason->unsuspend_hold ?
+ '(on next bill after unsuspension)' : '(on unsuspension)';
+ }
+ return '' unless length($text);