diff options
Diffstat (limited to 'httemplate/view')
-rwxr-xr-x | httemplate/view/cust_main.cgi | 450 | ||||
-rwxr-xr-x | httemplate/view/cust_pkg.cgi | 2 | ||||
-rwxr-xr-x | httemplate/view/svc_acct.cgi | 7 | ||||
-rwxr-xr-x | httemplate/view/svc_acct_sm.cgi | 58 | ||||
-rw-r--r-- | httemplate/view/svc_broadband.cgi | 91 |
5 files changed, 190 insertions, 418 deletions
diff --git a/httemplate/view/cust_main.cgi b/httemplate/view/cust_main.cgi index c36c9e265..3b6fc9adf 100755 --- a/httemplate/view/cust_main.cgi +++ b/httemplate/view/cust_main.cgi @@ -15,15 +15,6 @@ print header("Customer View", menubar( 'Main Menu' => popurl(2) )); -print <<END; -<STYLE TYPE="text/css"> -.package TH { font-size: medium } -.package TR { font-size: smaller } -.package .pkgnum { font-size: medium } -.package .provision { font-weight: bold } -</STYLE> -END - die "No customer specified (bad URL)!" unless $cgi->keywords; my($query) = $cgi->keywords; # needs parens with my, ->keywords returns array $query =~ /^(\d+)$/; @@ -232,12 +223,10 @@ if ( $conf->config('payby-default') ne 'HIDE' ) { '<TR><TD ALIGN="right">Billing type</TD><TD BGCOLOR="#ffffff">', ; - if ( $cust_main->payby eq 'CARD' || $cust_main->payby eq 'DCRD' ) { + if ( $cust_main->payby eq 'CARD' ) { my $payinfo = $cust_main->payinfo; $payinfo = 'x'x(length($payinfo)-4). substr($payinfo,(length($payinfo)-4)); - print 'Credit card ', - ( $cust_main->payby eq 'CARD' ? '(automatic)' : '(on-demand)' ), - '</TD></TR>', + print 'Credit card</TD></TR>', '<TR><TD ALIGN="right">Card number</TD><TD BGCOLOR="#ffffff">', $payinfo, '</TD></TR>', '<TR><TD ALIGN="right">Expiration</TD><TD BGCOLOR="#ffffff">', @@ -245,11 +234,9 @@ if ( $conf->config('payby-default') ne 'HIDE' ) { '<TR><TD ALIGN="right">Name on card</TD><TD BGCOLOR="#ffffff">', $cust_main->payname, '</TD></TR>' ; - } elsif ( $cust_main->payby eq 'CHEK' || $cust_main->payby eq 'DCHK') { + } elsif ( $cust_main->payby eq 'CHEK' ) { my( $account, $aba ) = split('@', $cust_main->payinfo ); - print 'Electronic check', - ( $cust_main->payby eq 'CHEK' ? '(automatic)' : '(on-demand)' ), - '</TD></TR>', + print 'Electronic check</TD></TR>', '<TR><TD ALIGN="right">Account number</TD><TD BGCOLOR="#ffffff">', $account, '</TD></TR>', '<TR><TD ALIGN="right">ABA/Routing code</TD><TD BGCOLOR="#ffffff">', @@ -366,177 +353,149 @@ print qq!<BR><A NAME="cust_pkg">Packages</A> !, qq!( <A HREF="!, popurl(2), qq!edit/cust_pkg.cgi?$custnum">Order and cancel packages</A> (preserves services) )!, ; -#begin display packages +#display packages #get package info +my @packages; +if ( $conf->exists('hidecancelledpackages') ) { + @packages = sort { $a->pkgnum <=> $b->pkgnum } ($cust_main->ncancelled_pkgs); +} else { + @packages = sort { $a->pkgnum <=> $b->pkgnum } ($cust_main->all_pkgs); +} -my $packages = get_packages($cust_main); +if ( @packages ) { + #formatting -if ( @$packages ) { -%> -<TABLE CLASS="package" BORDER=1 CELLSPACING=0 CELLPADDING=2 BORDERCOLOR="#999999"> -<TR> - <TH COLSPAN=2>Package</TH> - <TH>Status</TH> - <TH COLSPAN=2>Services</TH> -</TR> -<% -foreach my $pkg (sort pkgsort_pkgnum_cancel @$packages) { - my $rowspan = 0; + my $colspan = $packages[0]->dbdef_table->column('last_bill') ? 6 : 5; + + print &table(), "\n", + qq!<TR><TH COLSPAN=2 ROWSPAN=2>Package</TH><TH COLSPAN=$colspan>!, + qq!Dates</TH><TH COLSPAN=2 ROWSPAN=2>Services</TH></TR>\n<TR>!, + qq!<TH><FONT SIZE=-1>Setup</FONT></TH>!; + + print qq!<TH><FONT SIZE=-1>Last bill</FONT></TH>! + if $packages[0]->dbdef_table->column('last_bill'); + + print qq!<TH><FONT SIZE=-1>Next bill</FONT></TH>!, + qq!<TH><FONT SIZE=-1>Susp.</FONT></TH>!, + qq!<TH><FONT SIZE=-1>Expire</FONT></TH>!, + qq!<TH><FONT SIZE=-1>Cancel</FONT></TH>!, + qq!</TR>\n!; +} - if ($pkg->{cancel}) { - $rowspan = 0; - } else { - foreach my $svcpart (@{$pkg->{svcparts}}) { - $rowspan += $svcpart->{count}; - $rowspan++ if ($svcpart->{count} < $svcpart->{quantity}); - } - } +my $n1 = '<TR>'; +foreach my $package (@packages) { + my $pkgnum = $package->pkgnum; + my $pkg = $package->part_pkg->pkg; + my $comment = $package->part_pkg->comment; + my $pkgview = popurl(2). "view/cust_pkg.cgi?$pkgnum"; -%> -<!--pkgnum: <%=$pkg->{pkgnum}%>--> -<TR> - <TD ROWSPAN=<%=$rowspan%> CLASS="pkgnum"><%=$pkg->{pkgnum}%></TD> - <TD ROWSPAN=<%=$rowspan%>> - <%=$pkg->{pkg}%> - <%=$pkg->{comment}%> ( <%=pkg_details_link($pkg)%> )<BR> -<% unless ($pkg->{cancel}) { %> - ( <%=pkg_change_link($pkg)%> ) - ( <%=pkg_dates_link($pkg)%> | <%=pkg_customize_link($pkg)%> ) -<% } %> - </TD> -<% - #foreach (qw(setup last_bill next_bill susp expire cancel)) { - # print qq! <TD ROWSPAN=$rowspan>! . pkg_datestr($pkg,$_) . qq!</TD>\n!; - #} - print "<TD ROWSPAN=$rowspan>". &itable(''); - - #move - my %freq = ( - 1 => 'monthly', - 2 => 'bi-monthly', - 3 => 'quarterly', - 6 => 'semi-annually', - 12 => 'annually', - 24 => 'bi-annually', - 36 => 'tri-annually', - ); - - sub freq { - my $freq = shift; - exists $freq{$freq} ? $freq{$freq} : "every $freq months"; + #my @cust_svc = qsearch( 'cust_svc', { 'pkgnum' => $pkgnum } ); + #my $rowspan = scalar(@cust_svc) || 1; + my @cust_svc = (); + my $rowspan = 0; + my %pkg_svc = (); + unless ( $package->getfield('cancel') ) { + foreach my $pkg_svc ( + grep { $_->quantity } + qsearch('pkg_svc',{'pkgpart'=> $package->pkgpart }) + ) { + $rowspan += ( $pkg_svc{$pkg_svc->svcpart} = $pkg_svc->quantity ); + } + } else { + #@cust_svc = qsearch( 'cust_svc', { 'pkgnum' => $pkgnum } ); + @cust_svc = (); + $rowspan = scalar(@cust_svc) || 1; } + $rowspan ||= 1; + + my $button_cgi = new CGI; + $button_cgi->param('clone', $package->part_pkg->pkgpart); + $button_cgi->param('pkgnum', $package->pkgnum); + my $button_url = popurl(2). "edit/part_pkg.cgi?". $button_cgi->query_string; + + #print $n1, qq!<TD ROWSPAN=$rowspan><A HREF="$pkgview">$pkgnum</A></TD>!, + print $n1, qq!<TD ROWSPAN=$rowspan>$pkgnum</TD>!, + qq!<TD ROWSPAN=$rowspan><FONT SIZE=-1>!, + #qq!<A HREF="$pkgview">$pkg - $comment</A>!, + qq!$pkg - $comment ( <a href="$pkgview">Details</a> )!; + # | !; - #eomove + #false laziness with view/cust_pkg.cgi, but i'm trying to make that go away so + unless ( $package->getfield('cancel') ) { - if ( $pkg->{cancel} ) { #status: cancelled + print qq! ( <A HREF="${p}misc/change_pkg.cgi?$pkgnum">!. + 'Change package</A> )'; - print '<TR><TD><FONT COLOR="#ff0000"><B>Cancelled </B></FONT></TD>'. - '<TD>'. pkg_datestr($pkg,'cancel'). '</TD></TR>'; - unless ( $pkg->{setup} ) { - print '<TR><TD COLSPAN=2>Never billed</TD></TR>'; + print ' ( '; + if ( $package->getfield('susp') ) { + print qq!<A HREF="${p}misc/unsusp_pkg.cgi?$pkgnum">Unsuspend</A>!; } else { - print "<TR><TD>Setup </TD><TD>". - pkg_datestr($pkg, 'setup'). '</TD></TR>'; - print "<TR><TD>Last bill </TD><TD>". - pkg_datestr($pkg, 'last_bill'). '</TD></TR>' - if $pkg->{'last_bill'}; - print "<TR><TD>Suspended </TD><TD>". - pkg_datestr($pkg, 'susp'). '</TD></TR>' - if $pkg->{'susp'}; + print qq!<A HREF="${p}misc/susp_pkg.cgi?$pkgnum">Suspend</A>!; } + print ' | <A HREF="javascript:cust_pkg_areyousure(\''. popurl(2). + 'misc/cancel_pkg.cgi?'. $pkgnum. '\')">Cancel</A>'; + + print ' ) '; - } else { + print ' ( <A HREF="'. popurl(2). 'edit/REAL_cust_pkg.cgi?'. $pkgnum. + '">Edit dates</A> | '; + + print qq!<A HREF="$button_url">Customize</A> )!; + + } + print '</FONT></TD>'; + + my @fields = qw( setup ); + push @fields, qw( last_bill ) if $package->dbdef_table->column('last_bill'); + push @fields, qw( bill susp expire cancel); + + for ( @fields ) { + print "<TD ROWSPAN=$rowspan><FONT SIZE=-1>", ( $package->getfield($_) + ? time2str("%D</FONT><BR><FONT SIZE=-3>%l:%M:%S%P %z</FONT>", + $package->getfield($_) ) + : ' ' + ), '</FONT></TD>', + ; + } - if ( $pkg->{susp} ) { #status: suspended - print '<TR><TD><FONT COLOR="#FF9900"><B>Suspended</B> </FONT></TD>'. - '<TD>'. pkg_datestr($pkg,'susp'). '</TD></TR>'; - unless ( $pkg->{setup} ) { - print '<TR><TD COLSPAN=2>Never billed</TD></TR>'; + my $n2 = ''; + #false laziness with view/cust_pkg.cgi, but i'm trying to make that go away so + #foreach my $cust_svc ( @cust_svc ) { + foreach my $svcpart ( sort { $a<=>$b } keys %pkg_svc ) { + my $svc = qsearchs('part_svc',{'svcpart'=>$svcpart})->getfield('svc'); + $svc =~ s/ / /g; + my(@cust_svc)=qsearch('cust_svc',{'pkgnum'=>$pkgnum, + 'svcpart'=>$svcpart, + }); + for my $enum ( 1 .. $pkg_svc{$svcpart} ) { + my $cust_svc; + if ( $cust_svc = shift @cust_svc ) { + my($label, $value, $svcdb) = $cust_svc->label; + my($svcnum) = $cust_svc->svcnum; + my($sview) = popurl(2). "view"; + print $n2,qq!<TD><A HREF="$sview/$svcdb.cgi?$svcnum"><FONT SIZE=-1>$label</FONT></A></TD>!, + qq!<TD><FONT SIZE=-1><A HREF="$sview/$svcdb.cgi?$svcnum">$value</A><BR>( <A HREF="javascript:svc_areyousure('${p}misc/unprovision.cgi?$svcnum')">Unprovision</A> )</FONT></TD>!; } else { - print "<TR><TD>Setup </TD><TD>". - pkg_datestr($pkg, 'setup'). '</TD></TR>'; - } - print "<TR><TD>Last bill </TD><TD>". - pkg_datestr($pkg, 'last_bill'). '</TD></TR>' - if $pkg->{'last_bill'}; - # next bill ?? - print "<TR><TD>Expires </TD><TD>". - pkg_datestr($pkg, 'expire'). '</TD></TR>' - if $pkg->{'expire'}; - print '<TR><TD COLSPAN=2>( '. pkg_unsuspend_link($pkg). - ' | '. pkg_cancel_link($pkg). ' )</TD></TR>'; - - } else { #status: active - - unless ( $pkg->{setup} ) { #not setup - - print '<TR><TD COLSPAN=2>Not yet billed ('; - unless ( $pkg->{freq} ) { - print 'one-time charge)</TD></TR>'; - print '<TR><TD COLSPAN=2>( '. pkg_cancel_link($pkg). - ' )</TD</TR>'; - } else { - print 'billed '. freq($pkg->{freq}). ')</TD></TR>'; - } - - } else { #setup - - unless ( $pkg->{freq} ) { - print "<TR><TD COLSPAN=2>One-time charge</TD></TR>". - '<TR><TD>Billed </TD><TD>'. - pkg_datestr($pkg,'setup'). '</TD></TR>'; - } else { - print '<TR><TD COLSPAN=2><FONT COLOR="#00CC00"><B>Active</B></FONT>'. - ', billed '. freq($pkg->{freq}). '</TD></TR>'. - '<TR><TD>Setup </TD><TD>'. - pkg_datestr($pkg, 'setup'). '</TD></TR>'; - } + print $n2, qq!<TD COLSPAN=2><A HREF="$uiadd{$svcpart}?pkgnum$pkgnum-svcpart$svcpart"><b><font size="+1" color="#ff0000">!. + qq!Provision $svc</A></b></font>!; - } + print qq!<BR><A HREF="../misc/link.cgi?pkgnum$pkgnum-svcpart$svcpart">!. + qq!<b><font size="+1" color="#ff0000">Link to legacy $svc</A></b></font>! + if $conf->exists('legacy_link'); - print "<TR><TD>Last bill </TD><TD>". - pkg_datestr($pkg, 'last_bill'). '</TD></TR>' - if $pkg->{'last_bill'}; - print "<TR><TD>Next bill </TD><TD>". - pkg_datestr($pkg, 'next_bill'). '</TD></TR>' - if $pkg->{'next_bill'}; - print "<TR><TD>Expires </TD><TD>". - pkg_datestr($pkg, 'expire'). '</TD></TR>' - if $pkg->{'expire'}; - if ( $pkg->{freq} ) { - print '<TR><TD COLSPAN=2>( '. pkg_suspend_link($pkg). - ' | '. pkg_cancel_link($pkg). ' )</TD></TR>'; + print '</TD>'; } - + $n2="</TR><TR>"; } - } - print "</TABLE></TD>\n"; - - if ($rowspan == 0) { print qq!</TR>\n!; next; } - - my $cnt = 0; - foreach my $svcpart (sort {$a->{svcpart} <=> $b->{svcpart}} @{$pkg->{svcparts}}) { - foreach my $service (@{$svcpart->{services}}) { - print '<TR>' if ($cnt > 0); -%> - <TD><%=svc_link($svcpart,$service)%></TD> - <TD><%=svc_label_link($svcpart,$service)%><BR>( <%=svc_unprovision_link($service)%> )</TD> -</TR> -<% - $cnt++; - } - if ($svcpart->{count} < $svcpart->{quantity}) { - print qq!<TR>\n! if ($cnt > 0); - print qq! <TD COLSPAN=2>!.svc_provision_link($pkg,$svcpart).qq!</TD>\n</TR>\n!; - } - } -} -print '</TABLE>' -} + $n1="</TR><TR>"; +} +print "</TR>"; -#end display packages +#formatting +print "</TABLE>"; print <<END; @@ -762,162 +721,3 @@ print '</BODY></HTML>'; sub keyfield_numerically { (split(/\t/,$a))[0] <=> (split(/\t/,$b))[0]; } %> - -<% - - -sub get_packages { - -my $cust_main = shift or return undef; - -my @packages = (); - -foreach my $cust_pkg (($conf->exists('hidecancelledpackages') ? ($cust_main->ncancelled_pkgs) - : ($cust_main->all_pkgs))) { - - my $part_pkg = $cust_pkg->part_pkg; - - my %pkg = (); - $pkg{pkgnum} = $cust_pkg->pkgnum; - $pkg{pkg} = $part_pkg->pkg; - $pkg{pkgpart} = $part_pkg->pkgpart; - $pkg{comment} = $part_pkg->getfield('comment'); - $pkg{freq} = $part_pkg->freq; - $pkg{setup} = $cust_pkg->getfield('setup'); - $pkg{last_bill} = $cust_pkg->getfield('last_bill'); - $pkg{next_bill} = $cust_pkg->getfield('bill'); - $pkg{susp} = $cust_pkg->getfield('susp'); - $pkg{expire} = $cust_pkg->getfield('expire'); - $pkg{cancel} = $cust_pkg->getfield('cancel'); - - $pkg{svcparts} = []; - - foreach my $pkg_svc (qsearch('pkg_svc', { 'pkgpart' => $part_pkg->pkgpart })) { - - next if ($pkg_svc->quantity == 0); - - my $part_svc = qsearchs('part_svc', { 'svcpart' => $pkg_svc->svcpart }); - - my $svcpart = {}; - $svcpart->{svcpart} = $part_svc->svcpart; - $svcpart->{svc} = $part_svc->svc; - $svcpart->{svcdb} = $part_svc->svcdb; - $svcpart->{quantity} = $pkg_svc->quantity; - $svcpart->{count} = 0; - - $svcpart->{services} = []; - - foreach my $cust_svc (qsearch('cust_svc', { 'pkgnum' => $cust_pkg->pkgnum, - 'svcpart' => $part_svc->svcpart } )) { - - my $svc = {}; - $svc->{svcnum} = $cust_svc->svcnum; - $svc->{label} = ($cust_svc->label)[1]; - - push @{$svcpart->{services}}, $svc; - - $svcpart->{count}++; - - } - - push @{$pkg{svcparts}}, $svcpart; - - } - - push @packages, \%pkg; - -} - -return \@packages; - -} - -sub svc_link { - - my ($svcpart, $svc) = (shift,shift) or return ''; - return qq!<A HREF="${p}view/$svcpart->{svcdb}.cgi?$svc->{svcnum}">$svcpart->{svc}</A>!; - -} - -sub svc_label_link { - - my ($svcpart, $svc) = (shift,shift) or return ''; - return qq!<A HREF="${p}view/$svcpart->{svcdb}.cgi?$svc->{svcnum}">$svc->{label}</A>!; - -} - -sub svc_provision_link { - my ($pkg, $svcpart) = (shift,shift) or return ''; - ( my $svc_nbsp = $svcpart->{svc} ) =~ s/\s+/ /g; - return qq!<A CLASS="provision" HREF="${p}edit/$svcpart->{svcdb}.cgi?! . - qq!pkgnum$pkg->{pkgnum}-svcpart$svcpart->{svcpart}">! . - "Provision $svc_nbsp (". - ($svcpart->{quantity} - $svcpart->{count}). - ')</A>'; -} - -sub svc_unprovision_link { - my $svc = shift or return ''; - return qq!<A HREF="javascript:svc_areyousure('${p}misc/unprovision.cgi?$svc->{svcnum}')">Unprovision</A>!; -} - -# This should be generalized to use config options to determine order. -sub pkgsort_pkgnum_cancel { - if ($a->{cancel} and $b->{cancel}) { - return ($a->{pkgnum} <=> $b->{pkgnum}); - } elsif ($a->{cancel} or $b->{cancel}) { - return (-1) if ($b->{cancel}); - return (1) if ($a->{cancel}); - return (0); - } else { - return($a->{pkgnum} <=> $b->{pkgnum}); - } -} - -sub pkg_datestr { - my($pkg, $field) = @_ or return ''; - return ' ' unless $pkg->{$field}; - my $format = $conf->exists('pkg_showtimes') - ? '<B>%D</B> <FONT SIZE=-3>%l:%M:%S%P %z</FONT>' - : '<B>%b %o, %Y</B>'; - ( my $strip = time2str($format, $pkg->{$field}) ) =~ s/ (\d)/$1/g; - $strip; -} - -sub pkg_details_link { - my $pkg = shift or return ''; - return qq!<a href="${p}view/cust_pkg.cgi?$pkg->{pkgnum}">Details</a>!; -} - -sub pkg_change_link { - my $pkg = shift or return ''; - return qq!<a href="${p}misc/change_pkg.cgi?$pkg->{pkgnum}">Change package</a>!; -} - -sub pkg_suspend_link { - my $pkg = shift or return ''; - return qq!<a href="${p}misc/susp_pkg.cgi?$pkg->{pkgnum}">Suspend</a>!; -} - -sub pkg_unsuspend_link { - my $pkg = shift or return ''; - return qq!<a href="${p}misc/unsusp_pkg.cgi?$pkg->{pkgnum}">Unsuspend</a>!; -} - -sub pkg_cancel_link { - my $pkg = shift or return ''; - return qq!<A HREF="javascript:cust_pkg_areyousure('${p}misc/cancel_pkg.cgi?$pkg->{pkgnum}')">Cancel</A>!; -} - -sub pkg_dates_link { - my $pkg = shift or return ''; - return qq!<A HREF="${p}edit/REAL_cust_pkg.cgi?$pkg->{pkgnum}">Edit dates</A>!; -} - -sub pkg_customize_link { - my $pkg = shift or return ''; - return qq!<A HREF="${p}edit/part_pkg.cgi?keywords=$custnum;clone=$pkg->{pkgpart};pkgnum=$pkg->{pkgnum}">Customize</A>!; -} - -%> - diff --git a/httemplate/view/cust_pkg.cgi b/httemplate/view/cust_pkg.cgi index 5f0e6bffc..c3880114c 100755 --- a/httemplate/view/cust_pkg.cgi +++ b/httemplate/view/cust_pkg.cgi @@ -71,7 +71,7 @@ print &ntable("#cccccc"), '<TR><TD>', &ntable("#cccccc",2), ( $setup ? time2str("%D",$setup) : "(Not setup)" ), '</TD></TR>'; print '<TR><TD ALIGN="right">Last bill date</TD><TD BGCOLOR="#ffffff">', - ( $cust_pkg->get('last_bill') ? time2str("%D",$cust_pkg->get('last_bill')) : " " ), + ( $cust_pkg->last_bill ? time2str("%D",$cust_pkg->last_bill) : " " ), '</TD></TR>' if $cust_pkg->dbdef_table->column('last_bill'); diff --git a/httemplate/view/svc_acct.cgi b/httemplate/view/svc_acct.cgi index 599c1d8b9..640dbe3e6 100755 --- a/httemplate/view/svc_acct.cgi +++ b/httemplate/view/svc_acct.cgi @@ -2,6 +2,7 @@ <% my $conf = new FS::Conf; +my $mydomain = $conf->config('domain'); my($query) = $cgi->keywords; $query =~ /^(\d+)$/; @@ -31,7 +32,11 @@ if ( $svc_acct->domsvc ) { die "Unknown domain" unless $svc_domain; $domain = $svc_domain->domain; } else { - die "No svc_domain.svcnum record for svc_acct.domsvc: ". $cust_svc->domsvc; + unless ( $mydomain ) { + die "No legacy domain config file and no svc_domain.svcnum record ". + "for svc_acct.domsvc: ". $cust_svc->domsvc; + } + $domain = $mydomain; } %> diff --git a/httemplate/view/svc_acct_sm.cgi b/httemplate/view/svc_acct_sm.cgi new file mode 100755 index 000000000..4e5acc427 --- /dev/null +++ b/httemplate/view/svc_acct_sm.cgi @@ -0,0 +1,58 @@ +<!-- mason kludge --> +<% + +my $conf = new FS::Conf; +my $mydomain = $conf->config('domain'); + +my($query) = $cgi->keywords; +$query =~ /^(\d+)$/; +my $svcnum = $1; +my $svc_acct_sm = qsearchs('svc_acct_sm',{'svcnum'=>$svcnum}); +die "Unknown svcnum" unless $svc_acct_sm; + +my $cust_svc = qsearchs('cust_svc',{'svcnum'=>$svcnum}); +my $pkgnum = $cust_svc->getfield('pkgnum'); +my($cust_pkg, $custnum); +if ($pkgnum) { + $cust_pkg=qsearchs('cust_pkg',{'pkgnum'=>$pkgnum}); + $custnum=$cust_pkg->getfield('custnum'); +} else { + $cust_pkg = ''; + $custnum = ''; +} + +my $part_svc = qsearchs('part_svc',{'svcpart'=> $cust_svc->svcpart } ) + or die "Unkonwn svcpart"; + +print header('Mail Alias View', menubar( + ( ( $pkgnum || $custnum ) + ? ( "View this package (#$pkgnum)" => "${p}view/cust_pkg.cgi?$pkgnum", + "View this customer (#$custnum)" => "${p}view/cust_main.cgi?$custnum", + ) + : ( "Cancel this (unaudited) account" => + "${p}misc/cancel-unaudited.cgi?$svcnum" ) + ), + "Main menu" => $p, +)); + +my($domsvc,$domuid,$domuser) = ( + $svc_acct_sm->domsvc, + $svc_acct_sm->domuid, + $svc_acct_sm->domuser, +); +my $svc = $part_svc->svc; +my $svc_domain = qsearchs('svc_domain',{'svcnum'=>$domsvc}) + or die "Corrupted database: no svc_domain.svcnum matching domsvc $domsvc"; +my $domain = $svc_domain->domain; +my $svc_acct = qsearchs('svc_acct',{'uid'=>$domuid}) + or die "Corrupted database: no svc_acct.uid matching domuid $domuid"; +my $username = $svc_acct->username; + +print qq!<A HREF="${p}edit/svc_acct_sm.cgi?$svcnum">Edit this information</A>!, + "<BR>Service #$svcnum", + "<BR>Service: <B>$svc</B>", + qq!<BR>Mail to <B>!, ( ($domuser eq '*') ? "<I>(anything)</I>" : $domuser ) , qq!</B>\@<B>$domain</B> forwards to <B>$username</B>\@$mydomain mailbox.!, + '</BODY></HTML>' +; + +%> diff --git a/httemplate/view/svc_broadband.cgi b/httemplate/view/svc_broadband.cgi deleted file mode 100644 index 164b5b22c..000000000 --- a/httemplate/view/svc_broadband.cgi +++ /dev/null @@ -1,91 +0,0 @@ -<!-- mason kludge --> -<% - -my($query) = $cgi->keywords; -$query =~ /^(\d+)$/; -my $svcnum = $1; -my $svc_broadband = qsearchs( 'svc_broadband', { 'svcnum' => $svcnum } ) - or die "svc_broadband: Unknown svcnum $svcnum"; - -#false laziness w/all svc_*.cgi -my $cust_svc = qsearchs( 'cust_svc', { 'svcnum' => $svcnum } ); -my $pkgnum = $cust_svc->getfield('pkgnum'); -my($cust_pkg, $custnum); -if ($pkgnum) { - $cust_pkg = qsearchs( 'cust_pkg', { 'pkgnum' => $pkgnum } ); - $custnum = $cust_pkg->custnum; -} else { - $cust_pkg = ''; - $custnum = ''; -} -#eofalse - -my $router = $svc_broadband->addr_block->router; - -if (not $router) { die "Could not lookup router for svc_broadband (svcnum $svcnum)" }; - -my ( - $routername, - $routernum, - $speed_down, - $speed_up, - $ip_addr - ) = ( - $router->getfield('routername'), - $router->getfield('routernum'), - $svc_broadband->getfield('speed_down'), - $svc_broadband->getfield('speed_up'), - $svc_broadband->getfield('ip_addr') - ); - - - -print header('Broadband Service View', menubar( - ( ( $custnum ) - ? ( "View this package (#$pkgnum)" => "${p}view/cust_pkg.cgi?$pkgnum", - "View this customer (#$custnum)" => "${p}view/cust_main.cgi?$custnum", - ) - : ( "Cancel this (unaudited) website" => - "${p}misc/cancel-unaudited.cgi?$svcnum" ) - ), - "Main menu" => $p, -)). - qq!<A HREF="${p}edit/svc_broadband.cgi?$svcnum">Edit this information</A><BR>!. - ntable("#cccccc"). '<TR><TD>'. ntable("#cccccc",2). - qq!<TR><TD ALIGN="right">Service number</TD>!. - qq!<TD BGCOLOR="#ffffff">$svcnum</TD></TR>!. - qq!<TR><TD ALIGN="right">Router</TD>!. - qq!<TD BGCOLOR="#ffffff">$routernum: $routername</TD></TR>!. - qq!<TR><TD ALIGN="right">Download Speed</TD>!. - qq!<TD BGCOLOR="#ffffff">$speed_down</TD></TR>!. - qq!<TR><TD ALIGN="right">Upload Speed</TD>!. - qq!<TD BGCOLOR="#ffffff">$speed_up</TD></TR>!. - qq!<TR><TD ALIGN="right">IP Address</TD>!. - qq!<TD BGCOLOR="#ffffff">$ip_addr</TD></TR>!. - '</TD></TR><TR ROWSPAN="1"><TD></TD></TR>'; - - -# foreach my $sb_field -# ( qsearch('sb_field', { svcnum => $svcnum }) ) { -# my $part_sb_field = qsearchs('part_sb_field', -# { sbfieldpart => $sb_field->sbfieldpart }); -# print q!<TR><TD ALIGN="right">! . $part_sb_field->name . -# q!</TD><TD BGCOLOR="#ffffff">! . $sb_field->value . -# q!</TD></TR>!; -# } -# print '</TABLE>'; - - - my $sb_field = $svc_broadband->sb_field_hashref; - foreach (sort { $a cmp $b } keys(%{$sb_field})) { - print q!<TR><TD ALIGN="right">! . $_ . - q!</TD><TD BGCOLOR="#ffffff">! . $sb_field->{$_} . - q!</TD></TR>!; - } - print '</TABLE>'; - - -print '<BR>'. joblisting({'svcnum'=>$svcnum}, 1). - '</BODY></HTML>' -; -%> |