float: right;
}
</STYLE>
-% foreach my $partnum (@partnums) {
-% $cgi->param('parts', $partnum);
+% foreach my $partname (@partnames) {
+% $cgi->param('parts', $partname);
% $cgi->param('type', 'csv');
<table class="fcc477part">
<caption>
- <span class="parttitle">Part <% $partnum %></span>
+ <span class="parttitle"><% $part_titles->{$partname} %></span>
<a class="download" href="<% $cgi->self_url %>">Download</a>
</caption>
-% my $header = ".header$partnum";
-% my $data = $parts{$partnum};
+% my $header = ".header_$partname";
+% my $data = $parts{$partname};
<thead>
<& $header &>
</thead>
-% #XXX column headings
% foreach my $row (@$data) {
<tr>
% foreach my $item (@$row) {
</tr>
% }
</table>
-% } # foreach $partnum
+% } # foreach $partname
<& /elements/footer.html &>
<%init>
die "access denied"
$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(
+my @partnames = grep /^\w+$/, $cgi->param('parts');
+foreach my $partname (@partnames) {
+ $parts{$partname} ||= FS::Report::FCC_477->report( $partname,
date => $date,
agentnum => $agentnum
);
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};
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"));
$m->abort;
}
+my $part_titles = FS::Report::FCC_477->parts;
+
</%init>
-<%def .header6>
+<%def .header_fbd>
<TR CLASS="head">
- <TD ROWSPAN=2>Census Tract</TD>
+ <TD ROWSPAN=2>Census Block</TD>
+ <TD ROWSPAN=2>DBA Name</TD>
<TD ROWSPAN=2>Technology</TD>
- <TD COLSPAN=2>Speed (Mbps)</TD>
- <TD COLSPAN=2>Subscriptions</TD>
+ <TD ROWSPAN=2>Consumer?</TD>
+ <TD COLSPAN=2>Advertised Speed (Mbps)</TD>
+ <TD ROWSPAN=2>Business?</TD>
+ <TD COLSPAN=2>Contractual Speed (Mbps)</TD>
</TR>
<TR CLASS="subhead">
<TD>Down</TD>
<TD>Up</TD>
- <TD>Total</TD>
- <TD>Consumer</TD>
+ <TD>Down</TD>
+ <TD>Up</TD>
</TR>
</%def>
-<%def .header7>
+<%def .header_fbs>
<TR CLASS="head">
- <TD ROWSPAN=2>State</TD>
+ <TD ROWSPAN=2>Census Tract</TD>
+ <TD ROWSPAN=2>Technology</TD>
<TD COLSPAN=2>Speed (Mbps)</TD>
<TD COLSPAN=2>Subscriptions</TD>
</TR>
<TD>Consumer</TD>
</TR>
</%def>
-<%def .header8>
+<%def .header_fvs>
<TR CLASS="head">
- <TD ROWSPAN=2>State</TD>
- <TD COLSPAN=2>Subscriptions</TD>
+ <TD ROWSPAN=2>Census Tract</TD>
+ <TD ROWSPAN=2>VoIP?</TD>
+ <TD COLSPAN=2>Lines/Subscriptions</TD>
</TR>
<TR CLASS="subhead">
<TD>Total</TD>
- <TD>Direct</TD>
+ <TD>Consumer</TD>
</TR>
</%def>
-<%def .header9>
+<%def .header_lts>
<TR CLASS="head">
<TD ROWSPAN=3>State</TD>
<TD COLSPAN=2>Wholesale</TD>
<TD>Wireless</TD>
</TR>
</%def>
-<%def .header10>
+<%def .header_voip>
<TR CLASS="head">
<TD ROWSPAN=2>State</TD>
<TD COLSPAN=2>VoIP OTT</TD>
<TD>Other</TD>
</TR>
</%def>
-<%def .header11>
+<%def .header_mbs>
+%# unimplemented
<TR CLASS="head">
- <TD ROWSPAN=2>Census Tract</TD>
- <TD ROWSPAN=2>VoIP?</TD>
- <TD COLSPAN=2>Lines/Subscriptions</TD>
+ <TD ROWSPAN=2>State</TD>
+ <TD COLSPAN=2>Speed (Mbps)</TD>
+ <TD COLSPAN=2>Subscriptions</TD>
</TR>
<TR CLASS="subhead">
+ <TD>Down</TD>
+ <TD>Up</TD>
<TD>Total</TD>
<TD>Consumer</TD>
</TR>
</%def>
+<%def .header_mvs>
+%# unimplemented
+ <TR CLASS="head">
+ <TD ROWSPAN=2>State</TD>
+ <TD COLSPAN=2>Subscriptions</TD>
+ </TR>
+ <TR CLASS="subhead">
+ <TD>Total</TD>
+ <TD>Direct</TD>
+ </TR>
+</%def>
+