blob: 23099c4218411d97383d6f1dfd31613bf0be7fba (
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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
|
<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 = ( zip => $zip5,
% map { $_ => $location->$_ }
% qw ( 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->$_. ' ' 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 %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;";
</%init>
|