'addl_from' => 'LEFT JOIN reason_type ON reason_type.typenum = reason.reason_type',
},
'count_query' => $count_query,
- 'header' => [ '#',
- ucfirst($classname) . ' Reason Type',
- ucfirst($classname) . ' Reason',
- ($class eq 'S' ? 'Unsuspension Fee' : ()),
- ],
- 'fields' => [ 'reasonnum',
- sub { shift->reasontype->type },
- 'reason',
- $unsuspend_pkg_comment,
- ],
- 'links' => [ $link,
- $link,
- '',
- $unsuspend_pkg_link,
- ],
+ 'header' => \@header,
+ 'fields' => \@fields,
+ 'links' => \@links,
+ 'align' => $align,
)
%>
<%init>
my $link = [ $p."edit/reason.html?class=$class&reasonnum=", 'reasonnum' ];
-my ($unsuspend_pkg_comment, $unsuspend_pkg_link);
+my @header = (
+ '#',
+ ucfirst($classname) . ' reason type',
+ ucfirst($classname) . ' reason',
+);
+
+my @fields = (
+ 'reasonnum',
+ sub { shift->reasontype->type },
+ 'reason',
+);
+
+my @links = (
+ $link,
+ $link,
+ '',
+);
+
+my $align = 'rll';
+
if ( $class eq 'S' ) {
- $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);
- my $unsuspend_pkg_link = sub {
- my $pkgpart = shift->unsuspend_pkgpart or return '';
- [ $p."edit/part_pkg.cgi?", $pkgpart ];
- };
+ $text = qq!<A HREF="$href">! . encode_entities($text) . "</A> ".
+ "<FONT SIZE=-1>$detail</FONT>";
+ $text .= '</FONT>';
+ }
+ ;
+ $align .= 'cl';
}
+
</%init>