X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=httemplate%2Fsearch%2F477.html;h=250e71811407138503fd330d15c2814a09d13f61;hp=45c92ffe7d494aa934a17afcc16ec8332dd19e3d;hb=d8299144d2175f1695adafe29e9549bd9b158e2f;hpb=0b407666b53dea109661f25d51860a7e7e06981f diff --git a/httemplate/search/477.html b/httemplate/search/477.html index 45c92ffe7..250e71811 100755 --- a/httemplate/search/477.html +++ b/httemplate/search/477.html @@ -1,29 +1,76 @@ -<% 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' ], - ], - ) -%> +% unless ( $type eq 'xml' ) { +<% include( '/elements/header.html', 'FCC Form 477 Results') %> +%}else{ + + +%} +% if ( $type eq 'html' || $type eq 'html-print' ) { + + +%}elsif ( $type eq 'xml' ) { +%} +% unless ( $type eq 'html-print' || $type eq 'xml' ) { + + +% $cgi->param('_type', $type ); +% } +% if ( $type eq 'html' || $type eq 'html-print' ) { + +
+ + Download full results
+% $cgi->param('_type', 'xml'); + as XML file
+ +% $cgi->param('_type', 'html-print'); + as printable copy + +
+%}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' ) { +> +% } +% } +% } else { +% if ( $type eq 'xml' ) { +<<% 'Part_'. $part %>> +% } +% my $url = &{$url_mangler}($part); +<% include( "477part${part}.html", 'url' => $url ) %> +% if ( $type eq 'xml' ) { +> +% } +% } +% } +% } +% +% if ( $type eq 'html' || $type eq 'html-print' ) { +<% include( '/elements/footer.html') %> +%}elsif ( $type eq 'xml' ) { +
+%} <%init> my $curuser = $FS::CurrentUser::CurrentUser; @@ -31,40 +78,37 @@ my $curuser = $FS::CurrentUser::CurrentUser; die "access denied" unless $curuser->access_right('List packages'); -my %search_hash = (); - -$search_hash{'query'} = $cgi->keywords; - -for ( qw(agentnum magic status classnum) ) { - $search_hash{$_} = $cgi->param($_) if $cgi->param($_); -} - +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); -my @report_option = $cgi->param('report_option') - if $cgi->param('report_option'); -$search_hash{report_option} = join(',', @report_option) if @report_option; - -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 $html_init = "For
". join(' and
', @report_option_name). "
"; +# 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 $sql_query = FS::cust_pkg->search_sql(\%search_hash); +my @part2a_row_option = $cgi->param('part2a_row_option'); +for(my $i=0; $i < scalar(@part2a_row_option); $i++) { + &FS::Report::FCC_477::save_fcc477map("part2a_row_option_$i",$part2a_row_option[$i]); +} -$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"; +my @part2b_row_option = $cgi->param('part2b_row_option'); +for(my $i=0; $i < scalar(@part2b_row_option); $i++) { + &FS::Report::FCC_477::save_fcc477map("part2b_row_option_$i",$part2b_row_option[$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=';