1 <FORM NAME="choosegeocodeform">
2 <CENTER><BR><B>Choose tax location</B><BR><BR>
3 <P>the geocode is:<% $header %></P>
4 <P STYLE="<% $style %>"><% $header %></P>
6 <SELECT NAME='geocodes' ID='geocodes' STYLE="<% $style %>">
7 % foreach my $location (@cust_tax_location) {
8 % my %value = ( zip => $zip5,
9 % map { $_ => $location->$_ }
10 % qw ( city state geocode )
12 % map { $value{$_} = $location{$_} } qw ( city state )
13 % if $location{country} eq 'CA';
15 % my $value = encode_entities(objToJson({ %value })
18 % $content .= $location->$_. ' ' x ( $max{$_} - length($location->$_) )
19 % foreach qw( city county state );
20 % $content .= $location->cityflag eq 'I' ? 'Y' : 'N' ;
22 % if ($geocode && $location->geocode eq $geocode) {
23 % $selected = 'SELECTED';
25 <OPTION VALUE="<% $value %>" STYLE="<% $style %>" <% $selected %>><% $content %>
30 <TD> <BUTTON TYPE="button" onClick="set_geocode(document.getElementById('geocodes'));"><IMG SRC="<%$p%>images/tick.png" ALT=""> Set location </BUTTON></TD>
31 <TD><BUTTON TYPE="button" onClick="document.CustomerForm.submitButton.disabled=false; parent.cClick();"><IMG SRC="<%$p%>images/cross.png" ALT=""> Cancel submission </BUTTON></TD>
39 my $conf = new FS::Conf;
43 ($location{data_vendor}) = $cgi->param('data_vendor') =~ /^([-\w]+)$/;
44 ($location{city}) = $cgi->param('city') =~ /^([\w ]+)$/;
45 ($location{state}) = $cgi->param('state') =~ /^(\w+)$/;
46 ($location{zip}) = $cgi->param('zip') =~ /^([-\w ]+)$/;
47 ($location{country}) = $cgi->param('country') =~ /^([\w ]+)$/;
49 my($geocode) = $cgi->param('geocode') =~ /^([\w]+)$/;
51 my($zip5, $zip4) = split('-', $location{zip});
54 my $hashref = { 'data_vendor' => $location{data_vendor} };
55 $hashref->{zip} = $location{country} eq 'CA' ? substr($zip5,0,1) : $zip5,
57 my @keys = keys(%$hashref);
58 my @cust_tax_location = ();
59 until ( @cust_tax_location ) {
60 @cust_tax_location = qsearch({ table => 'cust_tax_location',
62 order_by => 'LIMIT 50',
64 last unless scalar(@keys);
65 delete $hashref->{ shift @keys };
68 my %max = ( city => 4, county => 6, state => 5);
69 foreach my $location (@cust_tax_location) {
70 foreach ( qw( city county state ) ) {
71 my $length = length($location->$_);
72 $max{$_} = ($length > $max{$_}) ? $length : $max{$_};
75 foreach ( qw( city county state ) ) {
76 $max{$_} = $location{$_} if $location{$_} > $max{$_};
80 my $header = ' ';
81 $header .= $_. ' ' x ( $max{lc($_)} - length($_) )
82 foreach qw( City County State );
83 $header .= "In city?";
85 my $style = "font-family:monospace;";