From 4e77f6927631e226e13da84082be66867b71330f Mon Sep 17 00:00:00 2001 From: jeff Date: Wed, 3 Dec 2008 01:42:26 +0000 Subject: support zip5 tax lookups, correct errors with fixed format cch import, inital import performance improvements, noise reduction on imports, tool for inital import --- httemplate/edit/cust_main.cgi | 36 ++++++++++- httemplate/edit/cust_main/choose_tax_location.html | 74 ++++++++++++++++++++++ httemplate/edit/cust_main/contact.html | 4 ++ 3 files changed, 113 insertions(+), 1 deletion(-) create mode 100644 httemplate/edit/cust_main/choose_tax_location.html (limited to 'httemplate/edit') diff --git a/httemplate/edit/cust_main.cgi b/httemplate/edit/cust_main.cgi index 8de73c513..8336183b8 100755 --- a/httemplate/edit/cust_main.cgi +++ b/httemplate/edit/cust_main.cgi @@ -5,6 +5,7 @@ ) %> <% include('/elements/init_overlib.html') %> + <% include('/elements/error.html') %> @@ -249,6 +250,8 @@ function bottomfixup(what) { 'ship_county', 'ship_state', 'ship_zip', 'ship_country', 'ship_daytime','ship_night', 'ship_fax', + 'geocode', + 'select' // XXX key ); @@ -329,6 +332,8 @@ function update_address(arg) { var changed = argsHash['address_standardized']; var ship_changed = argsHash['ship_address_standardized']; + var error = argsHash['error']; + var ship_error = argsHash['ship_error']; //yay closures standardize_address = function () { @@ -355,7 +360,14 @@ function update_address(arg) { } - if ( changed || ship_changed ) { + if ( error || ship_error ) { + + var url = "cust_main/choose_tax_location.html?data_vendor=cch-zip;city="+document.bottomform.elements['city'].value+";state="+document.bottomform.elements['state'].value+";zip="+document.bottomform.elements['zip'].value+";"; + // popup a chooser + OLgetAJAX( url, update_geocode, 300 ); + + + } else if ( changed || ship_changed ) { % if ( $conf->exists('cust_main-auto_standardize_address') ) { @@ -448,6 +460,26 @@ function update_address(arg) { } +function update_geocode() { + + //yay closures + set_geocode = function (what) { + + //alert(what.options[what.selectedIndex].value); + var argsHash = eval('(' + what.options[what.selectedIndex].value + ')'); + document.bottomform.elements['city'].value = argsHash['city']; + document.bottomform.elements['state'].value = argsHash['state']; + document.bottomform.elements['zip'].value = argsHash['zip']; + document.bottomform.elements['geocode'].value = argsHash['geocode']; + + } + + // popup a chooser + + overlib( OLresponseAJAX, CAPTION, 'Select tax location', STICKY, AUTOSTATUSCAP, CLOSETEXT, '', MIDX, 0, MIDY, 0, DRAGGABLE, WIDTH, 576, HEIGHT, 268, BGCOLOR, '#333399', CGCOLOR, '#333399', TEXTSIZE, 3 ); + +} + function copyelement(from, to) { if ( from == undefined ) { to.value = ''; @@ -490,6 +522,8 @@ function copyelement(from, to) { % 'ship_county', 'ship_state', 'ship_zip', 'ship_country', % 'ship_daytime','ship_night', 'ship_fax', % +% 'geocode', +% % 'select', #XXX key % % 'payauto', diff --git a/httemplate/edit/cust_main/choose_tax_location.html b/httemplate/edit/cust_main/choose_tax_location.html new file mode 100644 index 000000000..23fdbf282 --- /dev/null +++ b/httemplate/edit/cust_main/choose_tax_location.html @@ -0,0 +1,74 @@ +
+

Choose tax location

+

<% $header %>

+ +

+ + + + + +
+ +
+
+<%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($zip5, $zip4) = split('-', $zip); + +my $hashref = { data_vendor => $data_vendor, + #city => $city, + #state => $state, + zip => $zip5, + }; +#my @keys = qw ( city state zip ); +my @keys = qw ( zip ); +my @cust_tax_location = (); +until ( @cust_tax_location ) { + @cust_tax_location = qsearch( 'cust_tax_location', $hashref ); + 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{$_}; + } +} +$max{$_}++ foreach qw( city county state ); + +my $header = '  '; +$header .= $_. ' ' x ( $max{lc($_)} - length($_) ) + foreach qw( City County State ); +$header .= "In city?"; + +my $style = "font-family:monospace;"; + + diff --git a/httemplate/edit/cust_main/contact.html b/httemplate/edit/cust_main/contact.html index 21c6b2990..2d37dc895 100644 --- a/httemplate/edit/cust_main/contact.html +++ b/httemplate/edit/cust_main/contact.html @@ -69,6 +69,10 @@ <%$r%>Country <% include('select-country.html', %select_hash ) %> +% if ( !$pre ) { + +% } + -- cgit v1.2.1