X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=httemplate%2Fmisc%2Fcancel_pkg.html;h=c802897bb140b61a45b8e8fad44ae23fbf76750f;hp=10c0e0d04a626e768941fc46d1f9c53105e4d898;hb=9aa198dfc90054de34cf1af8f3238d004416ebc9;hpb=b5c4237a34aef94976bc343c8d9e138664fc3984 diff --git a/httemplate/misc/cancel_pkg.html b/httemplate/misc/cancel_pkg.html index 10c0e0d04..c802897bb 100755 --- a/httemplate/misc/cancel_pkg.html +++ b/httemplate/misc/cancel_pkg.html @@ -1,73 +1,143 @@ -%# if ( $link eq 'popup' ) { - <% include('/elements/header-popup.html', $title ) %> -%# } else { -%# <% include("/elements/header.html", $title, '') %> -%# } +<& /elements/header-popup.html, mt($title) &> - - - - - -<% include('/elements/error.html') %> +<& /elements/error.html &>
- -

-<% ucfirst($method) %> <% $part_pkg->pkg_comment %> -<% ntable("#cccccc", 2) %> - -% if ($method eq 'expire' || $method eq 'adjourn') { - - <% $submit =~ /^(\w*)\s/ %> package on - - -
m/d/y - - - -%} +
+<% emt(ucfirst($method)." [_1]", $part_pkg->pkg_comment(cust_pkg=>$cust_pkg) ) %> + + +% my $date_init = 0; +% if ($method eq 'expire' || $method eq 'adjourn' || $method eq 'resume') { +% $submit =~ /^(\w*)\s/; + <& /elements/tr-input-date-field.html, { + 'name' => 'date', + 'value' => $date, + 'label' => mt("$1 package on"), + 'format' => $date_format, + } &> +% $date_init = 1; +% } + +% if ($method eq 'uncancel' ) { % - -<% include('/elements/tr-select-reason.html', - 'field' => 'reasonnum', - 'reason_class' => $class, - 'curr_value' => $reasonnum, - 'control_button' => "document.getElementById('confirm_cancel_pkg_button')", - ) -%> - +% #XXX customer also requested setup +% # setup: what usefulness is changing or blanking this? re-charge setup fee? +% # an option that says that would be better if that's what we want to do + +% # last_bill: isn't this informational? what good would editing it do? +% # something about invoice display? + <& /elements/tr-input-date-field.html, { + 'name' => 'last_bill', + 'value' => ( $cgi->param('last_bill') || $cust_pkg->get('last_bill') ), + 'label' => mt("Last bill date"), + 'format' => $date_format, + } &> + + <& /elements/tr-input-date-field.html, { + 'name' => 'bill', + 'value' => ( $cgi->param('bill') || $cust_pkg->get('bill') ), + 'label' => mt("Next bill date"), + 'format' => $date_format, + } &> + + <& /elements/tr-checkbox.html, + 'label' => mt("Uncancel even if service reprovisioning fails"), + 'field' => 'svc_not_fatal', + 'value' => 'Y', + &> + +% $date_init = 1; +% my @uncancel_svcs = sort { $b->{'reprovisionable'} <=> $a->{'reprovisionable'} } +% sort { $a->{'svcpart'} <=> $b->{'svcpart'} } +% $cust_pkg->uncancel_svc_summary(); +% if (@uncancel_svcs) { + + +% foreach my $uncancel_svc (@uncancel_svcs) { +% my $uncancel_curr_value = $uncancel_svc->{'uncancel_svcnum'}; +% my $uncancel_disabled = ''; +% if ($cgi->param('error')) { +% $uncancel_curr_value = '' unless grep { $_ == $uncancel_svc->{'_uncancel_svcnum'} } $cgi->param('only_svcnum'); +% } +% unless ($uncancel_svc->{'reprovisionable'}) { +% $uncancel_curr_value = ''; +% $uncancel_disabled = 1; +% } + <& /elements/tr-checkbox.html, + 'label' => $uncancel_svc->{'svc'} . ': ' . $uncancel_svc->{'label'}, + 'field' => 'only_svcnum', + 'value' => $uncancel_svc->{'uncancel_svcnum'}, + 'curr_value' => $uncancel_curr_value, + 'disabled' => $uncancel_disabled, + 'cell_style' => 'font-weight: normal;' + &> +% } +% } +% } + +% unless ( $method eq 'resume' || $method eq 'uncancel' ) { + <& /elements/tr-select-reason.html, + field => 'reasonnum', + reason_class => $class, + curr_value => $reasonnum, + control_button => "confirm_cancel_pkg_button", + &> +% } + +% if (( $method eq 'adjourn' || $method eq 'suspend' ) && $curuser->access_right('Customize billing during suspension')) { + +% } + +% if ( ( $method eq 'adjourn' || $method eq 'suspend' ) and +% $curuser->access_right('Unsuspend customer package') ) { #later? +% my $resume_date = $cgi->param('error') +% ? str2time($cgi->param('resume_date')) +% : $cust_pkg->get('resume'); + + <& /elements/tr-input-date-field.html, { + 'name' => 'resume_date', + 'value' => $resume_date, + 'label' => mt('Unsuspend on'), + 'format' => $date_format, + 'noinit' => $date_init, + } &> +% }
 
<% emt("Re-provision the following services") %>
+% if ( $part_pkg->option('suspend_bill', 1) ) { + <& /elements/checkbox.html, name=>'no_suspend_bill', value=>'Y' &> + Disable recurring billing while suspended +% } else { + <& /elements/checkbox.html, name=>'suspend_bill', value=>'Y' &> + Continue recurring billing while suspended +% } +

- +>
<%init> +use Date::Parse qw(str2time); my $conf = new FS::Conf; my $date_format = $conf->config('date_format') || '%m/%d/%Y'; -my $date = time2str($date_format, time); +my $date; my($pkgnum, $reasonnum); if ( $cgi->param('error') ) { $pkgnum = $cgi->param('pkgnum'); $reasonnum = $cgi->param('reasonnum'); - $date = $cgi->param('date'); + $date = str2time($cgi->param('date')); } elsif ( $cgi->param('pkgnum') =~ /^(\d+)$/ ) { $pkgnum = $1; $reasonnum = ''; @@ -95,6 +165,14 @@ if ($method eq 'cancel') { $class = 'S'; $submit = "Suspend Later"; $right = 'Suspend customer package later'; +} elsif ( $method eq 'resume') { + $class = ''; + $submit = 'Unsuspend Later'; + $right = 'Unsuspend customer package'; #later? +} elsif ( $method eq 'uncancel') { + $class = ''; + $submit = 'Un-Cancel'; + $right = 'Un-cancel customer package'; #later? } else { die 'illegal query (unknown method param)'; } @@ -103,10 +181,14 @@ my $curuser = $FS::CurrentUser::CurrentUser; die "access denied" unless $curuser->access_right($right); my $title = ucfirst($method) . ' Package'; +$title =~ s/Uncancel/Un-cancel/; my $cust_pkg = qsearchs('cust_pkg', {'pkgnum' => $pkgnum}) or die "Unknown pkgnum: $pkgnum"; my $part_pkg = $cust_pkg->part_pkg; +$date ||= $cust_pkg->get($method); +$date ||= time; +