This commit was generated by cvs2svn to compensate for changes in r6252,
[freeside.git] / httemplate / edit / svc_broadband.cgi
1 <% include('/elements/header.html', "Broadband Service $action") %>
2
3 <% include('/elements/error.html') %>
4
5 Service #<B><%$svcnum ? $svcnum : "(NEW)"%></B><BR><BR>
6
7 <FORM ACTION="<%${p1}%>process/svc_broadband.cgi" METHOD=POST>
8   <INPUT TYPE="hidden" NAME="svcnum" VALUE="<%$svcnum%>">
9   <INPUT TYPE="hidden" NAME="pkgnum" VALUE="<%$pkgnum%>">
10   <INPUT TYPE="hidden" NAME="svcpart" VALUE="<%$svcpart%>">
11
12   <%&ntable("#cccccc",2)%>
13     <TR>
14       <TD ALIGN="right">Description</TD>
15       <TD BGCOLOR="#ffffff">
16 % if ( $part_svc->part_svc_column('description')->columnflag eq 'F' ) { 
17
18         <INPUT TYPE="hidden" NAME="description" VALUE="<%$description%>"><%$description%>
19 % } else { 
20
21     <INPUT TYPE="text" NAME="description" VALUE="<%$description%>">
22 % } 
23
24       </TD>
25     </TR>
26     <TR>
27       <TD ALIGN="right">IP Address</TD>
28       <TD BGCOLOR="#ffffff">
29 % if ( $part_svc->part_svc_column('ip_addr')->columnflag eq 'F' ) { 
30
31         <INPUT TYPE="hidden" NAME="ip_addr" VALUE="<%$ip_addr%>"><%$ip_addr%>
32 % } else { 
33
34         <INPUT TYPE="text" NAME="ip_addr" VALUE="<%$ip_addr%>">
35 % } 
36
37       </TD>
38     </TR>
39     <TR>
40       <TD ALIGN="right">Download speed</TD>
41       <TD BGCOLOR="#ffffff">
42 % if ( $part_svc->part_svc_column('speed_down')->columnflag eq 'F' ) { 
43
44         <INPUT TYPE="hidden" NAME="speed_down" VALUE="<%$speed_down%>"><%$speed_down%>Kbps
45 % } else { 
46
47     <INPUT TYPE="text" NAME="speed_down" SIZE=5 VALUE="<%$speed_down%>">Kbps
48 % } 
49
50       </TD>
51     </TR>
52     <TR>
53       <TD ALIGN="right">Upload speed</TD>
54       <TD BGCOLOR="#ffffff">
55 % if ( $part_svc->part_svc_column('speed_up')->columnflag eq 'F' ) { 
56
57         <INPUT TYPE="hidden" NAME="speed_up" VALUE="<%$speed_up%>"><%$speed_up%>Kbps
58 % } else { 
59
60         <INPUT TYPE="text" NAME="speed_up" SIZE=5 VALUE="<%$speed_up%>">Kbps
61 % } 
62
63       </TD>
64     </TR>
65 % if ($action eq 'Add') { 
66
67     <TR>
68       <TD ALIGN="right">Router/Block</TD>
69       <TD BGCOLOR="#ffffff">
70         <SELECT NAME="blocknum">
71 %
72 %  warn $svc_broadband->svcpart;
73 %  foreach my $router ($svc_broadband->allowed_routers) {
74 %    warn $router->routername;
75 %    foreach my $addr_block ($router->addr_block) {
76 %
77
78         <OPTION VALUE="<%$addr_block->blocknum%>"<%($addr_block->blocknum eq $blocknum) ? ' SELECTED' : ''%>>
79           <%$router->routername%>:<%$addr_block->ip_gateway%>/<%$addr_block->ip_netmask%></OPTION>
80 %
81 %    }
82 %  }
83 %
84
85         </SELECT>
86       </TD>
87     </TR>
88 % } else { 
89
90
91     <TR>
92       <TD ALIGN="right">Router/Block</TD>
93       <TD BGCOLOR="#ffffff">
94         <%$svc_broadband->addr_block->router->routername%>:<%$svc_broadband->addr_block->NetAddr%>
95         <INPUT TYPE="hidden" NAME="blocknum" VALUE="<%$svc_broadband->blocknum%>">
96       </TD>
97     </TR>
98 % } 
99     <TR>
100       <TD ALIGN="right">MAC Address</TD>
101       <TD BGCOLOR="#ffffff">
102         <INPUT TYPE="text" NAME="mac_addr" VALUE="<%$mac_addr%>">
103       </TD>
104     </TR>
105     <TR>
106       <TD ALIGN="right">Latitude</TD>
107       <TD BGCOLOR="#ffffff">
108         <INPUT TYPE="text" NAME="latitude" VALUE="<%$latitude%>">
109       </TD>
110     </TR>
111     <TR>
112       <TD ALIGN="right">Longitude</TD>
113       <TD BGCOLOR="#ffffff">
114         <INPUT TYPE="text" NAME="longitude" VALUE="<%$longitude%>">
115       </TD>
116     </TR>
117     <TR>
118       <TD ALIGN="right">Altitude</TD>
119       <TD BGCOLOR="#ffffff">
120         <INPUT TYPE="text" NAME="altitude" VALUE="<%$altitude%>">
121       </TD>
122     </TR>
123     <TR>
124       <TD ALIGN="right">VLAN Profile</TD>
125       <TD BGCOLOR="#ffffff">
126 % if ( $part_svc->part_svc_column('vlan_profile')->columnflag eq 'F' ) { 
127
128         <INPUT TYPE="hidden" NAME="vlan_profile" VALUE="<%$vlan_profile%>"><%$vlan_profile%>
129 % } else { 
130
131         <INPUT TYPE="text" NAME="vlan_profile" VALUE="<%$vlan_profile%>">
132 % } 
133
134       </TD>
135     </TR>
136     <TR>
137       <TD ALIGN="right">Authentication Key</TD>
138       <TD BGCOLOR="#ffffff">
139 % if ( $part_svc->part_svc_column('auth_key')->columnflag eq 'F' ) { 
140
141         <INPUT TYPE="hidden" NAME="auth_key" VALUE="<%$auth_key%>"><%$auth_key%>
142 % } else { 
143
144         <INPUT TYPE="text" NAME="auth_key" VALUE="<%$auth_key%>">
145 % } 
146
147       </TD>
148     </TR>
149 %
150 %foreach my $field ($svc_broadband->virtual_fields) {
151 %  if ( $part_svc->part_svc_column($field)->columnflag ne 'F' &&
152 %       $part_svc->part_svc_column($field)->columnflag ne 'X') {
153 %    print $svc_broadband->pvf($field)->widget('HTML', 'edit',
154 %        $svc_broadband->getfield($field));
155 %  }
156 %} 
157
158   </TABLE>
159   <BR>
160   <INPUT TYPE="submit" NAME="submit" VALUE="Submit">
161 </FORM>
162
163 <% include('/elements/footer.html') %>
164
165 <%init>
166
167 die "access denied"
168   unless $FS::CurrentUser::CurrentUser->access_right('Provision customer service'); #something else more specific?
169
170 # If it's stupid but it works, it's still stupid.
171 #  -Kristian
172
173 use HTML::Widgets::SelectLayers;
174 use Tie::IxHash;
175
176 my( $svcnum,  $pkgnum, $svcpart, $part_svc, $svc_broadband );
177 if ( $cgi->param('error') ) {
178
179   $svc_broadband = new FS::svc_broadband ( {
180     map { $_, scalar($cgi->param($_)) } fields('svc_broadband'), qw(svcpart)
181   } );
182   $svcnum = $svc_broadband->svcnum;
183   $pkgnum = $cgi->param('pkgnum');
184   $svcpart = $svc_broadband->svcpart;
185   $part_svc=qsearchs('part_svc',{'svcpart'=>$svcpart});
186   die "No part_svc entry!" unless $part_svc;
187
188 } elsif ( $cgi->param('pkgnum') && $cgi->param('svcpart') ) { #adding
189
190   $cgi->param('pkgnum') =~ /^(\d+)$/ or die 'unparsable pkgnum';
191   $pkgnum = $1;
192   $cgi->param('svcpart') =~ /^(\d+)$/ or die 'unparsable svcpart';
193   $svcpart = $1;
194
195   $part_svc=qsearchs('part_svc',{'svcpart'=>$svcpart});
196   die "No part_svc entry!" unless $part_svc;
197
198   $svc_broadband = new FS::svc_broadband({ svcpart => $svcpart });
199
200   $svcnum='';
201
202   $svc_broadband->set_default_and_fixed;
203
204 } else { #editing
205
206   my($query) = $cgi->keywords;
207   $query =~ /^(\d+)$/ or die "unparsable svcnum";
208   $svcnum=$1;
209   $svc_broadband=qsearchs('svc_broadband',{'svcnum'=>$svcnum})
210     or die "Unknown (svc_broadband) svcnum!";
211
212   my($cust_svc)=qsearchs('cust_svc',{'svcnum'=>$svcnum})
213     or die "Unknown (cust_svc) svcnum!";
214
215   $pkgnum=$cust_svc->pkgnum;
216   $svcpart=$cust_svc->svcpart;
217   
218   $part_svc=qsearchs('part_svc',{'svcpart'=>$svcpart});
219   die "No part_svc entry!" unless $part_svc;
220
221 }
222 my $action = $svc_broadband->svcnum ? 'Edit' : 'Add';
223
224 if ($pkgnum) {
225
226   #Nothing?
227
228 } elsif ( $action eq 'Edit' ) {
229
230   #Nothing?
231
232 } else {
233   die "\$action eq Add, but \$pkgnum is null!\n";
234 }
235
236 my $p1 = popurl(1);
237
238 my ($ip_addr, $speed_up, $speed_down, $blocknum, $mac_addr,
239     $latitude, $longitude, $altitude, $vlan_profile, $auth_key,
240     $description) =
241     ($svc_broadband->ip_addr,
242      $svc_broadband->speed_up,
243      $svc_broadband->speed_down,
244      $svc_broadband->blocknum,
245      $svc_broadband->mac_addr,
246      $svc_broadband->latitude,
247      $svc_broadband->longitude,
248      $svc_broadband->altitude,
249      $svc_broadband->vlan_profile,
250      $svc_broadband->auth_key,
251      $svc_broadband->description,
252     );
253
254 </%init>