From 92e63d82b0f376e5c8d95df5f916d7b32b018289 Mon Sep 17 00:00:00 2001 From: Mark Wells Date: Wed, 31 Dec 2014 15:42:03 -0800 Subject: [PATCH] add unused_credit option on suspend reasons to browse and edit UI, #31702 --- httemplate/browse/reason.html | 81 +++++++++++++++++++++++++++++-------------- httemplate/edit/reason.html | 31 ++++++++++------- 2 files changed, 73 insertions(+), 39 deletions(-) diff --git a/httemplate/browse/reason.html b/httemplate/browse/reason.html index 14e97bf2f..5bb6a3e0c 100644 --- a/httemplate/browse/reason.html +++ b/httemplate/browse/reason.html @@ -14,21 +14,10 @@ '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> @@ -53,18 +42,58 @@ my $count_query = 'SELECT COUNT(*) FROM reason LEFT JOIN reason_type on ' . my $link = [ $p."edit/reason.html?class=$class&reasonnum=", 'reasonnum' ]; -my ($unsuspend_pkg_comment, $unsuspend_pkg_link); -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; - }; +my @header = ( + '#', + ucfirst($classname) . ' reason type', + ucfirst($classname) . ' reason', +); + +my @fields = ( + 'reasonnum', + sub { shift->reasontype->type }, + 'reason', +); - my $unsuspend_pkg_link = sub { - my $pkgpart = shift->unsuspend_pkgpart or return ''; - [ $p."edit/part_pkg.cgi?", $pkgpart ]; - }; +my @links = ( + $link, + $link, + '', +); + +my $align = 'rll'; + +if ( $class eq 'S' ) { + push @header, + 'Credit unused service', + 'Unsuspension fee', + ; + push @fields, + sub { + my $reason = shift; + if ( $reason->unused_credit ) { + return 'YES'; + } else { + return 'NO'; + } + }, + sub { + my $reason = shift; + my $pkgpart = $reason->unsuspend_pkgpart or return ''; + my $part_pkg = FS::part_pkg->by_key($pkgpart) or return ''; + my $text = $part_pkg->pkg_comment; + my $href = $p."edit/part_pkg.cgi?$pkgpart"; + $text = qq!! . encode_entities($text) . "". + ""; + if ( $reason->unsuspend_hold ) { + $text .= ' (on next bill)' + } else { + $text .= ' (immediately)' + } + $text .= ''; + } + ; + $align .= 'cl'; } + diff --git a/httemplate/edit/reason.html b/httemplate/edit/reason.html index 78d044755..3e6645ec8 100644 --- a/httemplate/edit/reason.html +++ b/httemplate/edit/reason.html @@ -15,6 +15,7 @@ 'class' => '', 'unsuspend_pkgpart' => 'Unsuspension fee', 'unsuspend_hold' => 'Delay until next bill', + 'unused_credit' => 'Credit unused portion of service', }, 'fields' => \@fields, &> @@ -61,18 +62,22 @@ my @fields = ( }, ); -push @fields, - { 'field' => 'unsuspend_pkgpart', - 'type' => 'select-part_pkg', - 'hashref' => { 'disabled' => '', - 'freq' => 0 }, # one-time charges only - }, - { 'field' => 'unsuspend_hold', - 'type' => 'checkbox', - 'value' => 'Y', - }, - if ( $class eq 'S' ); - - +if ( $class eq 'S' ) { + push @fields, + { 'field' => 'unsuspend_pkgpart', + 'type' => 'select-part_pkg', + 'hashref' => { 'disabled' => '', + 'freq' => 0 }, # one-time charges only + }, + { 'field' => 'unsuspend_hold', + 'type' => 'checkbox', + 'value' => 'Y', + }, + { 'field' => 'unused_credit', + 'type' => 'checkbox', + 'value' => 'Y', + }, + ; +} -- 2.11.0