optimize CDR rating after timed rate perf regression, RT#15739
[freeside.git] / httemplate / misc / cancel_pkg.html
1 <& /elements/header-popup.html, mt($title) &>
2
3 <LINK REL="stylesheet" TYPE="text/css" HREF="../elements/calendar-win2k-2.css" TITLE="win2k-2">
4 <SCRIPT TYPE="text/javascript" SRC="../elements/calendar_stripped.js"></SCRIPT>
5 <SCRIPT TYPE="text/javascript" SRC="../elements/calendar-en.js"></SCRIPT>
6 <SCRIPT TYPE="text/javascript" SRC="../elements/calendar-setup.js"></SCRIPT>
7
8 <& /elements/error.html &>
9
10 <FORM NAME="sc_popup" ACTION="<% popurl(1) %>process/cancel_pkg.html" METHOD=POST>
11 <INPUT TYPE="hidden" NAME="pkgnum" VALUE="<% $pkgnum %>">
12 <INPUT TYPE="hidden" NAME="method" VALUE="<% $method %>">
13
14 <BR><BR>
15 <% emt(ucfirst($method)." [_1]", $part_pkg->pkg_comment) %>
16 <% ntable("#cccccc", 2) %>
17
18 % if ($method eq 'expire' || $method eq 'adjourn') {
19 <TR>
20 % $submit =~ /^(\w*)\s/;
21   <TD><% mt("$1 package on") |h %> </TD>
22     <TD><INPUT TYPE="text" NAME="date" ID="expire_date" VALUE="<% $date |h %>">
23         <IMG SRC="<% $p %>images/calendar.png" ID="expire_button" STYLE="cursor:pointer" TITLE="<% mt('Select date') |h %>">
24         <BR><I><% mt('m/d/y') |h %></I>
25     </TD>
26 </TR>
27 <SCRIPT TYPE="text/javascript">
28   Calendar.setup({
29     inputField: "expire_date",
30     ifFormat:   "<% $date_format %>",
31     button:     "expire_button",
32     align:      "BR"
33   });
34 </SCRIPT>
35 %}
36 %
37
38 <& /elements/tr-select-reason.html,
39              'field'          => 'reasonnum',
40              'reason_class'   => $class,
41              'curr_value'     => $reasonnum,
42              'control_button' => "document.getElementById('confirm_cancel_pkg_button')",
43 &>
44
45 </TABLE>
46
47 <BR>
48 <INPUT TYPE="submit" NAME="submit" ID="confirm_cancel_pkg_button" VALUE="<% mt($submit) |h %>" DISABLED>
49
50 </FORM>
51 </BODY>
52 </HTML>
53
54 <%init>
55
56 my $conf = new FS::Conf;
57 my $date_format = $conf->config('date_format') || '%m/%d/%Y';
58
59 my $date = time2str($date_format, time);
60
61 my($pkgnum, $reasonnum);
62 if ( $cgi->param('error') ) {
63   $pkgnum    = $cgi->param('pkgnum');
64   $reasonnum = $cgi->param('reasonnum');
65   $date      = $cgi->param('date');
66 } elsif ( $cgi->param('pkgnum') =~ /^(\d+)$/ ) {
67   $pkgnum    = $1;
68   $reasonnum = '';
69 } else {
70   die "illegal query ". $cgi->keywords;
71 }
72
73 $cgi->param('method') =~ /^(\w+)$/ or die 'illegal method';
74 my $method = $1;
75
76 my($class, $submit, $right);
77 if ($method eq 'cancel') {
78   $class  = 'C';
79   $submit = 'Cancel Now';
80   $right  = 'Cancel customer package immediately';
81 } elsif ($method eq 'expire') {
82   $class  = 'C';
83   $submit = 'Cancel Later';
84   $right  = 'Cancel customer package later';
85 } elsif ($method eq 'suspend') {
86   $class  = 'S';
87   $submit = 'Suspend Now';
88   $right  = 'Suspend customer package';
89 } elsif ($method eq 'adjourn') {
90   $class  = 'S';
91   $submit = "Suspend Later";
92   $right  = 'Suspend customer package later';
93 } else {
94   die 'illegal query (unknown method param)';
95 }
96
97 my $curuser = $FS::CurrentUser::CurrentUser;
98 die "access denied" unless $curuser->access_right($right);
99
100 my $title = ucfirst($method) . ' Package';
101
102 my $cust_pkg = qsearchs('cust_pkg', {'pkgnum' => $pkgnum})
103   or die "Unknown pkgnum: $pkgnum";
104
105 my $part_pkg = $cust_pkg->part_pkg;
106
107 </%init>