diff options
Diffstat (limited to 'httemplate/misc')
| -rwxr-xr-x | httemplate/misc/cancel_pkg.html | 78 | ||||
| -rwxr-xr-x | httemplate/misc/process/cancel_pkg.html | 47 |
2 files changed, 76 insertions, 49 deletions
diff --git a/httemplate/misc/cancel_pkg.html b/httemplate/misc/cancel_pkg.html index 6e02e0e39..4b5df8654 100755 --- a/httemplate/misc/cancel_pkg.html +++ b/httemplate/misc/cancel_pkg.html @@ -1,10 +1,5 @@ <& /elements/header-popup.html, mt($title) &> -<LINK REL="stylesheet" TYPE="text/css" HREF="../elements/calendar-win2k-2.css" TITLE="win2k-2"> -<SCRIPT TYPE="text/javascript" SRC="../elements/calendar_stripped.js"></SCRIPT> -<SCRIPT TYPE="text/javascript" SRC="../elements/calendar-en.js"></SCRIPT> -<SCRIPT TYPE="text/javascript" SRC="../elements/calendar-setup.js"></SCRIPT> - <& /elements/error.html &> <FORM NAME="sc_popup" ACTION="<% popurl(1) %>process/cancel_pkg.html" METHOD=POST> @@ -15,37 +10,47 @@ <% emt(ucfirst($method)." [_1]", $part_pkg->pkg_comment) %> <% ntable("#cccccc", 2) %> -% if ($method eq 'expire' || $method eq 'adjourn') { -<TR> -% $submit =~ /^(\w*)\s/; - <TD><% mt("$1 package on") |h %> </TD> - <TD><INPUT TYPE="text" NAME="date" ID="expire_date" VALUE="<% $date |h %>"> - <IMG SRC="<% $p %>images/calendar.png" ID="expire_button" STYLE="cursor:pointer" TITLE="<% mt('Select date') |h %>"> - <BR><I><% mt('m/d/y') |h %></I> - </TD> -</TR> -<SCRIPT TYPE="text/javascript"> - Calendar.setup({ - inputField: "expire_date", - ifFormat: "<% $date_format %>", - button: "expire_button", - align: "BR" - }); -</SCRIPT> -%} -% - +% 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; +% } + +% unless ( $method eq 'resume' ) { #the only one that doesn't need a reason <& /elements/tr-select-reason.html, - 'field' => 'reasonnum', - 'reason_class' => $class, - 'curr_value' => $reasonnum, - 'control_button' => "document.getElementById('confirm_cancel_pkg_button')", + 'field' => 'reasonnum', + 'reason_class' => $class, + 'curr_value' => $reasonnum, + 'control_button' => "document.getElementById('confirm_cancel_pkg_button')", &> - +% } + +% if ( ( $method eq 'adjourn' or $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, +} &> +% } </TABLE> <BR> -<INPUT TYPE="submit" NAME="submit" ID="confirm_cancel_pkg_button" VALUE="<% mt($submit) |h %>" DISABLED> +<INPUT TYPE="submit" NAME="submit" ID="confirm_cancel_pkg_button" + VALUE="<% mt($submit) |h %>" + <% $method ne 'resume' ? 'DISABLED' : '' %>> </FORM> </BODY> @@ -56,13 +61,13 @@ 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 = ''; @@ -90,6 +95,10 @@ 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? } else { die 'illegal query (unknown method param)'; } @@ -104,4 +113,7 @@ my $cust_pkg = qsearchs('cust_pkg', {'pkgnum' => $pkgnum}) my $part_pkg = $cust_pkg->part_pkg; +$date ||= $cust_pkg->get($method); +$date ||= time; + </%init> diff --git a/httemplate/misc/process/cancel_pkg.html b/httemplate/misc/process/cancel_pkg.html index a4371e6f3..662a77670 100755 --- a/httemplate/misc/process/cancel_pkg.html +++ b/httemplate/misc/process/cancel_pkg.html @@ -1,4 +1,4 @@ -<% header(emt("Package $past{$method}")) %> +<% header(emt("Package $past_method")) %> <SCRIPT TYPE="text/javascript"> window.top.location.reload(); </SCRIPT> @@ -10,6 +10,7 @@ my %past = ( 'cancel' => 'cancelled', 'expire' => 'expired', 'suspend' => 'suspended', 'adjourn' => 'adjourned', + 'resume' => 'scheduled to resume', ); #i'm sure this is false laziness with somewhere, at least w/misc/cancel_pkg.html @@ -17,6 +18,7 @@ my %right = ( 'cancel' => 'Cancel customer package immediately', 'expire' => 'Cancel customer package later', 'suspend' => 'Suspend customer package', 'adjourn' => 'Suspend customer package later', + 'resume' => 'Unsuspend customer package', #later? ); </%once> @@ -24,8 +26,9 @@ my %right = ( 'cancel' => 'Cancel customer package immediately', #untaint method my $method = $cgi->param('method'); -$method =~ /^(cancel|expire|suspend|adjourn)$/ or die "Illegal method"; +$method =~ /^(cancel|expire|suspend|adjourn|resume)$/ or die "Illegal method"; $method = $1; +my $past_method = $past{$method}; die "access denied" unless $FS::CurrentUser::CurrentUser->access_right($right{$method}); @@ -35,30 +38,42 @@ my $pkgnum = $cgi->param('pkgnum'); $pkgnum =~ /^(\d+)$/ or die "Illegal pkgnum"; $pkgnum = $1; -#untaint reasonnum -my $reasonnum = $cgi->param('reasonnum'); -$reasonnum =~ /^(-?\d+)$/ or die "Illegal reasonnum"; -$reasonnum = $1; - my $date = time; -if ($method eq 'expire' || $method eq 'adjourn'){ +if ($method eq 'expire' || $method eq 'adjourn' || $method eq 'resume'){ #untaint date - $date = $cgi->param('date'); + $date = $cgi->param('date'); #huh? parse_datetime($cgi->param('date')) =~ /^(\d+)$/ or die "Illegal date"; $date = $1; - $method = ($method eq 'expire') ? 'cancel' : 'suspend'; + $method = 'cancel' if $method eq 'expire'; + $method = 'suspend' if $method eq 'adjourn'; + $method = 'unsuspend' if $method eq 'resume'; +} + +my $resume_date; +if ( $method eq 'suspend' ) { #or 'adjourn' + $resume_date = parse_datetime($cgi->param('resume_date')) + if $cgi->param('resume_date'); } my $cust_pkg = qsearchs( 'cust_pkg', {'pkgnum'=>$pkgnum} ); -if ($reasonnum == -1) { - $reasonnum = { - 'typenum' => scalar( $cgi->param('newreasonnumT') ), - 'reason' => scalar( $cgi->param('newreasonnum' ) ), - }; +#untaint reasonnum +my $reasonnum = $cgi->param('reasonnum'); +if ( $method ne 'unsuspend' ) { #i.e. 'resume' + $reasonnum =~ /^(-?\d+)$/ or die "Illegal reasonnum"; + $reasonnum = $1; + + if ($reasonnum == -1) { + $reasonnum = { + 'typenum' => scalar( $cgi->param('newreasonnumT') ), + 'reason' => scalar( $cgi->param('newreasonnum' ) ), + }; + } } -my $error = $cust_pkg->$method( 'reason' => $reasonnum, 'date' => $date ); +my $error = $cust_pkg->$method( 'reason' => $reasonnum, + 'date' => $date, + 'resume_date' => $resume_date ); if ($error) { $cgi->param('error', $error); |
