Choose tax location

the geocode is:<% $header %>

<% $header %>



<%init> my $conf = new FS::Conf; my %location = (); ($location{data_vendor}) = $cgi->param('data_vendor') =~ /^([-\w]+)$/; ($location{city}) = $cgi->param('city') =~ /^([\w ]+)$/; ($location{state}) = $cgi->param('state') =~ /^(\w+)$/; ($location{zip}) = $cgi->param('zip') =~ /^([-\w ]+)$/; ($location{country}) = $cgi->param('country') =~ /^([\w ]+)$/; my($geocode) = $cgi->param('geocode') =~ /^([\w]+)$/; my($formname) = $cgi->param('formname') =~ /^([\w]*)$/; $formname ||= 'CustomerForm'; my($zip5, $zip4) = split('-', $location{zip}); #only support US & CA my $hashref = { 'data_vendor' => $location{data_vendor} }; $hashref->{zip} = $location{country} eq 'CA' ? substr($zip5,0,1) : $zip5, my @keys = keys(%$hashref); my @cust_tax_location = (); until ( @cust_tax_location ) { @cust_tax_location = qsearch({ table => 'cust_tax_location', hashref => $hashref, order_by => 'LIMIT 50', }); last unless scalar(@keys); delete $hashref->{ shift @keys }; } my %max = ( city => 4, county => 6, state => 5); foreach my $location (@cust_tax_location) { foreach ( qw( city county state ) ) { my $length = length($location->$_); $max{$_} = ($length > $max{$_}) ? $length : $max{$_}; } } foreach ( qw( city county state ) ) { $max{$_} = $location{$_} if $location{$_} > $max{$_}; $max{$_}++; } my $header = '  '; $header .= $_. ' ' x ( $max{lc($_)} - length($_) ) foreach qw( City County State ); $header .= "In city?"; my $style = "font-family:monospace;";