import torrus 1.0.9
[freeside.git] / httemplate / edit / cust_main / choose_tax_location.html
index 23fdbf2..ac475c5 100644 (file)
@@ -1,20 +1,25 @@
 <FORM NAME="choosegeocodeform">
 <CENTER><BR><B>Choose tax location</B><BR><BR>
+<P>the geocode is:<% $header %></P>
 <P STYLE="<% $style %>"><% $header %></P>
 
 <SELECT NAME='geocodes' ID='geocodes' STYLE="<% $style %>">
 % foreach my $location (@cust_tax_location) {
-%   my $value = encode_entities(objToJson({ zip => $zip5,
-%                                           map { $_ => $location->$_ }
-%                                             qw ( city state geocode )
-%                                        })
+%   my %value = ( zip => $zip5,
+%                 map { $_ => $location->$_ }
+%                   qw ( city state geocode )
+%               );
+%   map { $value{$_} = $location{$_} } qw ( city state )
+%     if $location{country} eq 'CA';
+%
+%   my $value = encode_entities(objToJson({ %value })
 %                              );
 %   my $content = '';
 %   $content .= $location->$_. '&nbsp;' x ( $max{$_} - length($location->$_) )
 %     foreach qw( city county state );
 %   $content .=   $location->cityflag eq 'I' ? 'Y' : 'N' ;
 %   my $selected = '' ;
-%   if (!$have_selected && lc($location->city) eq lc($city)) {
+%   if ($geocode && $location->geocode eq $geocode) {
 %     $selected = 'SELECTED';
 %   }
   <OPTION VALUE="<% $value %>" STYLE="<% $style %>" <% $selected %>><% $content %>
@@ -22,8 +27,8 @@
 </SELECT><BR><BR>
 
 <TABLE><TR>
-  <TD> <BUTTON TYPE="button" onClick="set_geocode(document.getElementById('geocodes')); document.bottomform.submit();"><IMG SRC="<%$p%>images/tick.png" ALT=""> Set location </BUTTON></TD>
-  <TD><BUTTON TYPE="button" onClick="document.bottomform.submitButton.disabled=false; parent.cClick();"><IMG SRC="<%$p%>images/cross.png" ALT=""> Cancel submission </BUTTON></TD>
+  <TD> <BUTTON TYPE="button" onClick="set_geocode(document.getElementById('geocodes'));"><IMG SRC="<%$p%>images/tick.png" ALT=""> Set location </BUTTON></TD>
+  <TD><BUTTON TYPE="button" onClick="document.CustomerForm.submitButton.disabled=false; parent.cClick();"><IMG SRC="<%$p%>images/cross.png" ALT=""> Cancel submission </BUTTON></TD>
 </TR>
 </TABLE>
 
 <%init>
 
 my $conf = new FS::Conf;
-my $have_selected = 0;
 
-my ($data_vendor) = $cgi->param('data_vendor') =~ /^([-\w]+)$/;
-my ($city)  = $cgi->param('city')  =~ /^([\w ]+)$/;
-my ($state) = $cgi->param('state') =~ /^(\w+)$/;
-my ($zip)   = $cgi->param('zip')   =~ /^([-\w]+)$/;
+my %location = ();
 
-my($zip5, $zip4) = split('-', $zip);
+($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 $hashref = { data_vendor => $data_vendor,
-                #city        => $city,
-                #state       => $state,
-                zip         => $zip5,
-              };
-#my @keys = qw ( city state zip );
-my @keys = qw ( zip );
+my($geocode)             = $cgi->param('geocode')     =~ /^([\w]+)$/;
+
+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( 'cust_tax_location', $hashref );
+  @cust_tax_location = qsearch({ table    => 'cust_tax_location',
+                                 hashref  =>  $hashref,
+                                 order_by =>  'LIMIT 50',
+                              });
   last unless scalar(@keys);
   delete $hashref->{ shift @keys };
 } 
@@ -62,7 +72,10 @@ foreach my $location (@cust_tax_location) {
     $max{$_} = ($length > $max{$_}) ? $length : $max{$_};
   }
 }
-$max{$_}++ foreach qw( city county state );
+foreach ( qw( city county state ) ) {
+  $max{$_} = $location{$_} if $location{$_} > $max{$_};
+  $max{$_}++;
+}
 
 my $header = '&nbsp;&nbsp;';
 $header .= $_. '&nbsp;' x ( $max{lc($_)} - length($_) )