suspension and cancellation reasons
[freeside.git] / httemplate / elements / tr-select-reason.html
1
2 <SCRIPT TYPE="text/javascript">
3   function sh_add<% $name %>()
4   {
5
6 %if ($curuser->access_right($access_right)){
7
8     if (document.getElementById('<% $name %>').selectedIndex == 
9          (document.getElementById('<% $name %>').length - 1)) {
10       document.getElementById('new<% $name %>').disabled = false;
11       document.getElementById('new<% $name %>').style.display = 'inline';
12       document.getElementById('new<% $name %>Label').style.display = 'inline';
13       document.getElementById('new<% $name %>T').disabled = false;
14       document.getElementById('new<% $name %>T').style.display = 'inline';
15       document.getElementById('new<% $name %>TLabel').style.display = 'inline';
16     }else{
17       document.getElementById('new<% $name %>').disabled = true;
18       document.getElementById('new<% $name %>').style.display = 'none';
19       document.getElementById('new<% $name %>Label').style.display = 'none';
20       document.getElementById('new<% $name %>T').disabled = true;
21       document.getElementById('new<% $name %>T').style.display = 'none';
22       document.getElementById('new<% $name %>TLabel').style.display = 'none';
23     }
24
25 %}
26
27   }
28 </SCRIPT>
29
30 <TR>
31   <TD ALIGN="right">Reason</TD>
32   <TD>
33     <SELECT id="<% $name %>" name="<% $name %>" onFocus="sh_add<% $name %>()" onChange="sh_add<% $name %>()">
34 %    my @reasons = qsearch( { table =>'reason', 
35 %                             hashref => {},
36 %                             extra_sql => $extra_sql,
37 %                             addl_from => 'LEFT JOIN reason_type ON reason_type.typenum = reason.reason_type',
38 %                            });
39 %    foreach my $reason (@reasons) {
40       <OPTION VALUE="<% $reason->reasonnum %>" <% ($init_reason == $reason->reasonnum) ? 'SELECTED' : '' %>><% $reason->reason %></OPTION>
41 %    }
42 %    if ($curuser->access_right($access_right)) {
43       <OPTION VALUE="-1" <% ($init_reason == -1) ? 'SELECTED' : '' %>>Add new reason</OPTION>
44 %    }
45 %
46     </SELECT>
47   </TD>
48 </TR>
49
50 <TR>
51   <TD ALIGN="right">
52     <P id="new<% $name %>TLabel" style="display:<% $display %>">Reason Type</P>
53   </TD>
54   <TD>
55     <SELECT id="new<% $name %>T" name="new<% $name %>T" disabled="<% $disabled %>" style="display:<% $display %>">
56 %     for my $type (qsearch( 'reason_type', { 'class' => $class } )){
57         <OPTION VALUE="<% $type->typenum %>" <% ($init_type == $type->typenum) ? 'SELECTED' : '' %>><% $type->type %></OPTION>
58 %     }
59     </SELECT>
60   </TD>
61 </TR>
62
63 <TR>
64   <TD ALIGN="right">
65     <P id="new<% $name %>Label" style="display:<% $display %>">New Reason</P>
66   </TD>
67   <TD><INPUT id="new<% $name %>" name="new<% $name %>" type="text" value="<% $init_newreason %>" disabled="<% $disabled %>" style="display:<% $display %>"></TD>
68 </TR>
69
70 <%init>
71 my($name, $class, $init_reason, $init_type, $init_newreason) = @_;
72 my($extra_sql, $curuser, $access_right, $display, $disabled); 
73
74 if ($class eq 'C') {
75   $access_right='Add on-the-fly cancel reason';
76 }elsif ($class eq 'S') {
77   $access_right='Add on-the-fly suspend reason';
78 }else{
79   print "illegal class: $class";
80 }
81
82 if ($init_reason == -1){
83   $display = 'inline';
84   $disabled = 'false';
85 }else{
86   $display = 'none';
87   $disabled = 'true';
88 }
89
90 $extra_sql = "WHERE class = '$class' ORDER BY reason_type";
91 $curuser = $FS::CurrentUser::CurrentUser;
92
93 </%init>
94