X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=httemplate%2Fedit%2Fsvc_broadband.cgi;h=c2fb58ddad5e38eb3fe523d02d3645f30d914f87;hb=41ab1bbaf58292688e1e84ab153059896f17a5d4;hp=d8a1f7a2a7362743b59a88c270739f3ff6b70b2b;hpb=44398c83f25bf4e43838df9f39331c29fdeff19d;p=freeside.git
diff --git a/httemplate/edit/svc_broadband.cgi b/httemplate/edit/svc_broadband.cgi
index d8a1f7a2a..c2fb58dda 100644
--- a/httemplate/edit/svc_broadband.cgi
+++ b/httemplate/edit/svc_broadband.cgi
@@ -1,64 +1,229 @@
-
-<%
+<% include('/elements/header.html', "Broadband Service $action") %>
+
+<% include('/elements/error.html') %>
+
+Service #<%$svcnum ? $svcnum : "(NEW)"%>
+
+
+
+<% include('/elements/footer.html') %>
+
+<%init>
+
+die "access denied"
+ unless $FS::CurrentUser::CurrentUser->access_right('Provision customer service'); #something else more specific?
+
+# If it's stupid but it works, it's still stupid.
+# -Kristian
+
+use HTML::Widgets::SelectLayers;
+use Tie::IxHash;
my( $svcnum, $pkgnum, $svcpart, $part_svc, $svc_broadband );
if ( $cgi->param('error') ) {
+
$svc_broadband = new FS::svc_broadband ( {
- map { $_, scalar($cgi->param($_)) } fields('svc_broadband')
+ map { $_, scalar($cgi->param($_)) } fields('svc_broadband'), qw(svcpart)
} );
$svcnum = $svc_broadband->svcnum;
$pkgnum = $cgi->param('pkgnum');
- $svcpart = $cgi->param('svcpart');
+ $svcpart = $svc_broadband->svcpart;
$part_svc=qsearchs('part_svc',{'svcpart'=>$svcpart});
die "No part_svc entry!" unless $part_svc;
-} else {
- my($query) = $cgi->keywords;
- if ( $query =~ /^(\d+)$/ ) { #editing
- $svcnum=$1;
- $svc_broadband=qsearchs('svc_broadband',{'svcnum'=>$svcnum})
- or die "Unknown (svc_broadband) svcnum!";
- my($cust_svc)=qsearchs('cust_svc',{'svcnum'=>$svcnum})
- or die "Unknown (cust_svc) svcnum!";
+} elsif ( $cgi->param('pkgnum') && $cgi->param('svcpart') ) { #adding
- $pkgnum=$cust_svc->pkgnum;
- $svcpart=$cust_svc->svcpart;
-
- $part_svc=qsearchs('part_svc',{'svcpart'=>$svcpart});
- die "No part_svc entry!" unless $part_svc;
+ $cgi->param('pkgnum') =~ /^(\d+)$/ or die 'unparsable pkgnum';
+ $pkgnum = $1;
+ $cgi->param('svcpart') =~ /^(\d+)$/ or die 'unparsable svcpart';
+ $svcpart = $1;
+
+ $part_svc=qsearchs('part_svc',{'svcpart'=>$svcpart});
+ die "No part_svc entry!" unless $part_svc;
- } else { #adding
+ $svc_broadband = new FS::svc_broadband({ svcpart => $svcpart });
- $svc_broadband = new FS::svc_broadband({});
+ $svcnum='';
- foreach $_ (split(/-/,$query)) { #get & untaint pkgnum & svcpart
- $pkgnum=$1 if /^pkgnum(\d+)$/;
- $svcpart=$1 if /^svcpart(\d+)$/;
- }
- $part_svc=qsearchs('part_svc',{'svcpart'=>$svcpart});
- die "No part_svc entry!" unless $part_svc;
+ $svc_broadband->set_default_and_fixed;
- $svcnum='';
+} else { #editing
- #set fixed and default fields from part_svc
- foreach my $part_svc_column (
- grep { $_->columnflag } $part_svc->all_part_svc_column
- ) {
- $svc_broadband->setfield( $part_svc_column->columnname,
- $part_svc_column->columnvalue,
- );
- }
+ my($query) = $cgi->keywords;
+ $query =~ /^(\d+)$/ or die "unparsable svcnum";
+ $svcnum=$1;
+ $svc_broadband=qsearchs('svc_broadband',{'svcnum'=>$svcnum})
+ or die "Unknown (svc_broadband) svcnum!";
+
+ my($cust_svc)=qsearchs('cust_svc',{'svcnum'=>$svcnum})
+ or die "Unknown (cust_svc) svcnum!";
+
+ $pkgnum=$cust_svc->pkgnum;
+ $svcpart=$cust_svc->svcpart;
+
+ $part_svc=qsearchs('part_svc',{'svcpart'=>$svcpart});
+ die "No part_svc entry!" unless $part_svc;
- }
}
my $action = $svc_broadband->svcnum ? 'Edit' : 'Add';
-my @ac_list;
-
if ($pkgnum) {
- unless ($svc_broadband->actypenum) {die "actypenum must be set fixed";};
- @ac_list = qsearch('ac', { actypenum => $svc_broadband->getfield('actypenum') });
+ #Nothing?
} elsif ( $action eq 'Edit' ) {
@@ -68,152 +233,22 @@ if ($pkgnum) {
die "\$action eq Add, but \$pkgnum is null!\n";
}
-
my $p1 = popurl(1);
-print header("Broadband Service $action", '');
-
-print qq!Error: !, $cgi->param('error'),
- ""
- if $cgi->param('error');
-
-print qq!