X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=httemplate%2Fsearch%2F477.html;h=9a412612119dad052ec2e5ff7eb5e355a2e70efb;hp=68493377d7593f730de7f5e6d2ae433327777802;hb=HEAD;hpb=8fdc0ea36474cfb3d1389f41691c14598559cbe7 diff --git a/httemplate/search/477.html b/httemplate/search/477.html index 68493377d..9a4126121 100644 --- a/httemplate/search/477.html +++ b/httemplate/search/477.html @@ -32,39 +32,87 @@ table.fcc477part thead tr.subhead { font-size: large; float: left; } +.errortitle { + font-weight: bold; + color: #ff0000; +} +tr.error td { + background-color: #ffdddd; +} +tr.error td.error { + text-align: left; + border: none; +} +tr.error ul { + margin: 0px; + list-style-image: url("<% $fsurl %>images/cross.png"); +} a.download { float: right; } -% foreach my $partnum (@partnums) { -% $cgi->param('parts', $partnum); +% foreach my $partname (@partnames) { +% my $this_part = $parts{$partname}; +% $cgi->param('parts', $partname); % $cgi->param('type', 'csv'); -% my $header = ".header$partnum"; -% my $data = $parts{$partnum}; +% my $header = ".header_$partname"; +% $header .= '_old' if $partname eq 'fbd' && $date < 1569826800; #9/30/2019 +% # ( halfway between the two filing "as of" dates when it changed + +% my $data = $this_part->{data}; +% my $error = $this_part->{error}; <& $header &> -% #XXX column headings +% my $rownum = 0; % foreach my $row (@$data) { - +% my %eh; # error hash +% if ( $error->[$rownum] ) { +% %eh = %{ $error->[$rownum] }; +% } + > +% my $first = 1; % foreach my $item (@$row) { - + +% } #foreach $item +% # display errors +% if ( keys %eh ) { + +% } # if there are errors -% } +% $rownum++; +% } #foreach $row
- Part <% $partnum %> + <% $part_titles->{$partname} %> +% if ( $this_part->{num_errors} > 0 ) { +% # show error heading while it contains errors + + <% emt('This section contains [quant,_1,error].', $this_part->{num_errors}) %> + +% } Download
<% $item %> +% if ($first and $part_link{$partname}) { + "><% $item || '(empty)' %> +% $first = 0; +% } else { + <% $item %> % } +
    +% foreach my $key (sort keys %eh) { +
  • <% $eh{$key} %>
  • +% } +
-% } # foreach $partnum +% } # foreach $partname <& /elements/footer.html &> <%init> die "access denied" unless $FS::CurrentUser::CurrentUser->access_right('List packages'); my %parts; +my %part_link; # load from cache if possible my $session; if ( $cgi->param('session') =~ /^(\d+)$/ ) { @@ -80,24 +128,34 @@ if ($cgi->param('agentnum') =~ /^(\d+)$/ ) { $agentnum = $1; } my $date = parse_datetime($cgi->param('date')) || time; -my @partnums = grep /^\d+$/, $cgi->param('parts'); -foreach my $partnum (@partnums) { - my $method = "part$partnum"; - $parts{$partnum} ||= FS::Report::FCC_477->$method( - date => $date, - agentnum => $agentnum - ); +my @partnames = grep /^\w+$/, $cgi->param('parts'); +my $ignore_quantity = ($cgi->param('ignore_quantity') ? 1 : 0); + +foreach my $partname (@partnames) { + $parts{$partname} ||= FS::Report::FCC_477->report( $partname, + date => $date, + agentnum => $agentnum, + ignore_quantity => $ignore_quantity, + ); # includes error, detail, and data parts + my $detail_table = FS::Report::FCC_477->part_table($partname); + if ($detail_table eq 'cust_pkg') { + my $link = popurl(1).'477_cust_pkg.html?477part='.$partname.";date=$date;"; + if ($agentnum) { + $link .= "agentnum=$agentnum;"; + } + $part_link{$partname} = $link; + } # don't include detail links to deploy_blocks, that's pointless } $m->cache->set($session, \%parts, '1h'); my $title = 'FCC Form 477 Data - ' . time2str('%b %o, %Y', $date); if ( $cgi->param('type') eq 'csv' ) { - my $partnum = $partnums[0]; # ignore any beyond the first - my $data = $parts{$partnum}; + my $partname = $partnames[0]; # ignore any beyond the first + my $data = $parts{$partname}->{data}; my $csv = Text::CSV_XS->new({ eol => "\r\n" }); # i think - my $filename = time2str('%Y-%m-%d', $date) . '-part' . $partnum . '.csv'; + my $filename = time2str('%Y-%m-%d', $date) . '-'. $partname . '.csv'; http_header('Content-Type' => 'text/csv'); http_header('Content-Disposition' => qq(attachment;filename="$filename")); @@ -110,24 +168,44 @@ if ( $cgi->param('type') eq 'csv' ) { $m->abort; } +my $part_titles = FS::Report::FCC_477->parts; + -<%def .header6> +<%def .header_fbd_old> - Census Tract + Census Block + DBA Name Technology - Speed (Mbps) - Subscriptions + Consumer? + Advertised Speed (Mbps) + Business? + Contractual Speed (Mbps) Down Up - Total - Consumer + Down + Up -<%def .header7> +<%def .header_fbd> - State + Census Block + DBA Name + Technology + Consumer? + Advertised Speed (Mbps) + Business? + + + Down + Up + + +<%def .header_fbs> + + Census Tract + Technology Speed (Mbps) Subscriptions @@ -138,17 +216,18 @@ if ( $cgi->param('type') eq 'csv' ) { Consumer -<%def .header8> +<%def .header_fvs> - State - Subscriptions + Census Tract + VoIP? + Lines/Subscriptions Total - Direct + Consumer -<%def .header9> +<%def .header_lts> State Wholesale @@ -183,9 +262,9 @@ if ( $cgi->param('type') eq 'csv' ) { Wireless -<%def .header10> +<%def .header_voip> - State + State VoIP OTT VoIP Non-OTT @@ -206,14 +285,29 @@ if ( $cgi->param('type') eq 'csv' ) { Other -<%def .header11> +<%def .header_mbs> +%# unimplemented - Census Tract - VoIP? - Lines/Subscriptions + State + Speed (Mbps) + Subscriptions + Down + Up Total Consumer +<%def .header_mvs> +%# unimplemented + + State + Subscriptions + + + Total + Direct + + +