summaryrefslogtreecommitdiff
path: root/httemplate/misc/choose_tax_location.html
blob: 2eb5ab98e228695baf81ca233e0d150ca25f1166 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
<FORM NAME="choosegeocodeform">
<CENTER><BR><B>Choose tax location</B><BR><BR>
<P STYLE="<% $style %>"><% $header %></P>

<SELECT NAME='geocodes' ID='geocodes' STYLE="<% $style %>">
% foreach my $location (@cust_tax_location) {
%   my %value = ( map { $_ => $location->$_ }
%                   qw ( zip city state geocode )
%               );
%   map { $value{$_} = $location{$_} } qw ( city state )
%     if $location{country} eq 'CA';
%
%   my $value = encode_entities(encode_json({ %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 ($geocode && $location->geocode eq $geocode) {
%     $selected = 'SELECTED';
%   }
  <OPTION VALUE="<% $value %>" STYLE="<% $style %>" <% $selected %>><% $content %>
% }
</SELECT><BR><BR>

<TABLE><TR>
  <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.<% $formname %>.submitButton.disabled=false; parent.cClick();"><IMG SRC="<%$p%>images/cross.png" ALT=""> Cancel submission </BUTTON></TD>
</TR>
</TABLE>

</CENTER>
</FORM>
<%init>

my $conf = new FS::Conf;
my $tax_engine = FS::TaxEngine->new;

my %location;
($location{data_vendor}) = $conf->config('tax_data_vendor');
($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 @cust_tax_location = $tax_engine->cust_tax_locations(\%location);

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 = '&nbsp;&nbsp;';
$header .= $_. '&nbsp;' x ( $max{lc($_)} - length($_) )
  foreach qw( City County State );
$header .=   "In city?";

my $style = "font-family:monospace;";

</%init>