-<% include( 'elements/search.html',
- 'title' => 'FCC Form 477 Results',
- 'html_init' => $html_init,
- 'name' => 'regions',
- 'query' => $sql_query,
- 'count_query' => $count_query,
- 'header' => [
- 'State code',
- 'County code',
- 'Census tract code',
- 'Quantity',
- ],
- 'fields' => [
- sub { my $row = shift; substr($row->censustract, 0, 2) },
- sub { my $row = shift; substr($row->censustract, 2, 3) },
- sub { my $row = shift; substr($row->censustract, 5) },
- 'quantity',
- ],
- 'links' => [
- [ $link, 'censustract' ],
- [ $link, 'censustract' ],
- [ $link, 'censustract' ],
- [ $link, 'censustract' ],
- ],
- )
-%>
-<%init>
-
-my $curuser = $FS::CurrentUser::CurrentUser;
+% unless ( $type eq 'xml' ) {
+<% include( '/elements/header.html', 'FCC Form 477 Results') %>
+%}else{
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<Form_477_submission xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://specialreports.fcc.gov/wcb/Form477/XMLSchema-instance/form_477_upload_Schema.xsd" >
+%}
+% if ( $type eq 'html' || $type eq 'html-print' ) {
+<TABLE WIDTH="100%">
+ <TR><TD></TD>
+%}elsif ( $type eq 'xml' ) {
+%}
+% unless ( $type eq 'html-print' || $type eq 'xml' ) {
-die "access denied"
- unless $curuser->access_right('List packages');
+ <TD ALIGN="right">
-my %search_hash = ();
-
-$search_hash{'query'} = $cgi->keywords;
-
-for ( qw(agentnum magic status classnum) ) {
- $search_hash{$_} = $cgi->param($_) if $cgi->param($_);
-}
+ Download full results<BR>
+% $cgi->param('_type', 'xml');
+ as <A HREF="<% $cgi->self_url %>">XML file</A><BR>
+% $cgi->param('_type', 'html-print');
+ as <A HREF="<% $cgi->self_url %>">printable copy</A>
-my @report_option = $cgi->param('report_option')
- if $cgi->param('report_option');
-$search_hash{report_option} = join(',', @report_option) if @report_option;
+ </TD>
+% $cgi->param('_type', $type );
+% }
+% if ( $type eq 'html' || $type eq 'html-print' ) {
+ </TR>
+</TABLE>
+%}elsif ( $type eq 'xml' ) {
+%}
+% foreach my $part ( @parts ) {
+% if ( $part{$part} ) {
+%
+% if ( $part eq 'V' ) {
+% next unless ( $part{'IIA'} || $part{'IIB'} );
+% }
+%
+% if ( $part eq 'VI_census' ) {
+% next unless $part{'IA'};
+% }
+%
+% my @reports = ();
+% if ( $part eq 'IA' ) {
+% for ( my $tech = 0; $tech < scalar(@technology_option); $tech++ ) {
+% next unless $technology_option[$tech];
+% my $url = &{$url_mangler}($part);
+% if ( $type eq 'xml' ) {
+<<% 'Part_IA_'. chr(65 + $tech) %>>
+% }
+<% include( "477part${part}_summary.html", 'tech_code' => $tech, 'url' => $url ) %>
+<% include( "477part${part}_detail.html", 'tech_code' => $tech, 'url' => $url ) %>
+% if ( $type eq 'xml' ) {
+</<% 'Part_IA_'. chr(65 + $tech) %>>
+% }
+% }
+% } else {
+% if ( $type eq 'xml' ) {
+<<% 'Part_'. $part %>>
+% }
+% my $url = &{$url_mangler}($part);
+<% include( "477part${part}.html", 'url' => $url ) %>
+% if ( $type eq 'xml' ) {
+</<% 'Part_'. $part %>>
+% }
+% }
+% }
+% }
+%
+% if ( $type eq 'html' || $type eq 'html-print' ) {
+<% include( '/elements/footer.html') %>
+%}elsif ( $type eq 'xml' ) {
+</Form_477_submission>
+%}
+<%init>
-my $where = join(' OR ', map { "num = $_" } grep { /^\d+$/ } @report_option );
-my @report_option_name = $where ?
- ( map { $_->name }
- qsearch({ 'table' => 'part_pkg_report_option',
- 'hashref' => {},
- 'extra_sql' => "WHERE $where",
- })
- ) :
- ( 'all packages' );
+my $curuser = $FS::CurrentUser::CurrentUser;
-my $html_init = "For <BR>". join(' and <BR>', @report_option_name). "<BR>";
+die "access denied"
+ unless $curuser->access_right('List packages');
-my $sql_query = FS::cust_pkg->search_sql(\%search_hash);
+my %part = map { $_ => 1 } grep { /^\w+$/ } $cgi->param('part');
+my $type = $cgi->param('_type') || 'html';
+my $xlsname = '477report';
+my @technology_option = &FS::Report::FCC_477::parse_technology_option($cgi,1);
-$sql_query->{select} = 'count(*) as quantity, censustract';
-$sql_query->{extra_sql} =~ /^(.*)(ORDER BY bill)(.*)$/s or die "couldn't parse extra_sql";
-$sql_query->{extra_sql} = "$1 GROUP BY censustract $3";
+# save upload and download mappings
+my @download = $cgi->param('part1_column_option');
+my @upload = $cgi->param('part1_row_option');
+for(my $i=0; $i < scalar(@download); $i++) {
+ &FS::Report::FCC_477::save_fcc477map("part1_column_option_$i",$download[$i]);
+}
+for(my $i=0; $i < scalar(@upload); $i++) {
+ &FS::Report::FCC_477::save_fcc477map("part1_row_option_$i",$upload[$i]);
+}
-my $count_query = delete($sql_query->{'count_query'});
-$count_query = 'SELECT count(*) FROM (SELECT count(*) FROM cust_pkg '.
- $sql_query->{addl_from}. ' '. $sql_query->{extra_sql}. ') AS foo';
+my $url_mangler = sub {
+ my $part = shift;
+ my $url = $cgi->url('-path_info' => 1, '-full' => 1);
+ $url =~ s/477\./477part$part./;
+ $url;
+};
+my @parts = qw( IA IIA IIB IV V VI_census );
-my $link = 'cust_pkg.cgi?'. $cgi->query_string. ';censustract=';
</%init>