blob: 71997c22165a56f3381ca306fc7b48bdeb7ba2c0 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
|
<SCRIPT TYPE="text/javascript">
function sh_add<% $func_suffix %>()
{
if (document.getElementById('<% $id %>').selectedIndex == 0){
<% $controlledbutton ? $controlledbutton.'.disabled = true;' : ';' %>
}else{
<% $controlledbutton ? $controlledbutton.'.disabled = false;' : ';' %>
}
%if ($curuser->access_right($add_access_right)){
if (document.getElementById('<% $id %>').selectedIndex ==
(document.getElementById('<% $id %>').length - 1)) {
document.getElementById('new<% $id %>').disabled = false;
document.getElementById('new<% $id %>').style.display = 'inline';
document.getElementById('new<% $id %>Label').style.display = 'inline';
document.getElementById('new<% $id %>T').disabled = false;
document.getElementById('new<% $id %>T').style.display = 'inline';
document.getElementById('new<% $id %>TLabel').style.display = 'inline';
} else {
document.getElementById('new<% $id %>').disabled = true;
document.getElementById('new<% $id %>').style.display = 'none';
document.getElementById('new<% $id %>Label').style.display = 'none';
document.getElementById('new<% $id %>T').disabled = true;
document.getElementById('new<% $id %>T').style.display = 'none';
document.getElementById('new<% $id %>TLabel').style.display = 'none';
}
%}
}
</SCRIPT>
<TR>
<TD ALIGN="right">Reason</TD>
<TD>
<SELECT id="<% $id %>" name="<% $name %>" onFocus="sh_add<% $func_suffix %>()" onChange="sh_add<% $func_suffix %>()">
% my @reasons = qsearch( { table =>'reason',
% hashref => {},
% extra_sql => $extra_sql,
% addl_from => 'LEFT JOIN reason_type ON reason_type.typenum = reason.reason_type',
% });
<OPTION VALUE="" <% ($init_reason eq "") ? 'SELECTED' : '' %>>Select Reason...</OPTION>
% foreach my $reason (@reasons) {
<OPTION VALUE="<% $reason->reasonnum %>" <% ($init_reason == $reason->reasonnum) ? 'SELECTED' : '' %>><% $reason->reasontype->type %> : <% $reason->reason %></OPTION>
% }
% if ($curuser->access_right($add_access_right)) {
<OPTION VALUE="-1" <% ($init_reason == -1) ? 'SELECTED' : '' %>>Add new reason</OPTION>
% }
%
</SELECT>
</TD>
</TR>
<TR>
<TD ALIGN="right">
<P id="new<% $id %>TLabel" style="display:<% $display %>">Reason Type</P>
</TD>
<TD>
<SELECT id="new<% $id %>T" name="new<% $name %>T" "<% $disabled %>" style="display:<% $display %>">
% for my $type (qsearch( 'reason_type', { 'class' => $class } )){
<OPTION VALUE="<% $type->typenum %>" <% ($init_type == $type->typenum) ? 'SELECTED' : '' %>><% $type->type %></OPTION>
% }
</SELECT>
</TD>
</TR>
<TR>
<TD ALIGN="right">
<P id="new<% $id %>Label" style="display:<% $display %>">New Reason</P>
</TD>
<TD><INPUT id="new<% $id %>" name="new<% $name %>" type="text" value="<% $init_newreason %>" "<% $disabled %>" style="display:<% $display %>"></TD>
</TR>
<%init>
my %opt = @_;
my $name = $opt{'field'};
my $class = $opt{'reason_class'};
my $init_reason = $opt{'curr_value'};
my $controlledbutton = $opt{'control_button'};
( my $func_suffix = $name ) =~ s/\./_/g;
my $id = $opt{'id'} || $func_suffix;
my( $add_access_right, $access_right );
if ($class eq 'C') {
$access_right = 'Cancel customer';
$add_access_right = 'Add on-the-fly cancel reason';
} elsif ($class eq 'S') {
$access_right = 'Suspend customer package';
$add_access_right = 'Add on-the-fly suspend reason';
} else {
die "illegal class: $class";
}
my( $display, $disabled ) = ( 'none', 'DISABLED' );
my( $init_type, $init_newreason ) = ( '', '' );
if ($init_reason == -1 || ref($init_reason) ) {
$display = 'inline';
$disabled = '';
if ( ref($init_reason) ) {
$init_type = $init_reason->{'typenum'};
$init_newreason = $init_reason->{'reason'};
$init_reason = -1;
}
}
my $extra_sql = "WHERE class = '$class' ORDER BY reason_type";
my $curuser = $FS::CurrentUser::CurrentUser;
</%init>
|