+my @reasons = qsearch({
+ 'table' => 'reason',
+ 'select' => "reason.*, (type || ' : ' || reason) AS label",
+ 'addl_from' => ' LEFT JOIN reason_type'.
+ ' ON (reason.reason_type = reason_type.typenum)',
+ 'hashref' => { disabled => '' },
+ 'extra_sql' => " AND reason_type.class = '$class'",
+});
+
+my %all_hints;
+if ( $class eq 'S' ) {
+ my $conf = FS::Conf->new;
+ %all_hints = ( 0 => '', -1 => '' );
+ foreach my $reason (@reasons) {
+ my @hints;
+ if ( $reason->unsuspend_pkgpart ) {
+ my $part_pkg = FS::part_pkg->by_key($reason->unsuspend_pkgpart);
+ if ( $part_pkg ) {
+ if ( $part_pkg->option('setup_fee',1) > 0 and
+ $part_pkg->option('recur_fee',1) == 0 ) {
+ # the usual case
+ push @hints,
+ mt('A [_1] unsuspension fee will apply.',
+ ($conf->config('money_char') || '$') .
+ sprintf('%.2f', $part_pkg->option('setup_fee'))
+ );
+ } else {
+ # oddball cases--not really supported
+ push @hints,
+ mt('An unsuspension package will apply: [_1]',
+ $part_pkg->price_info
+ );
+ }
+ } else { #no $part_pkg
+ push @hints,
+ '<FONT COLOR="#ff0000">Unsuspend pkg #'.$reason->unsuspend_pkgpart.
+ ' not found.</FONT>';
+ }
+ }
+ if ( $reason->unused_credit ) {
+ push @hints, mt('The customer will be credited for unused time.');
+ }
+ $all_hints{ $reason->reasonnum } = join('<BR>', @hints);
+ }