diff options
author | jeff <jeff> | 2008-12-03 01:42:26 +0000 |
---|---|---|
committer | jeff <jeff> | 2008-12-03 01:42:26 +0000 |
commit | 4e77f6927631e226e13da84082be66867b71330f (patch) | |
tree | 79f72113426a69e7ee1383d72ab47a7c59375fe1 /httemplate/edit | |
parent | 43bd4c723d9da8dbf2ed0428620aade17e44bac9 (diff) |
support zip5 tax lookups, correct errors with fixed format cch import, inital import performance improvements, noise reduction on imports, tool for inital import
Diffstat (limited to 'httemplate/edit')
-rwxr-xr-x | httemplate/edit/cust_main.cgi | 36 | ||||
-rw-r--r-- | httemplate/edit/cust_main/choose_tax_location.html | 74 | ||||
-rw-r--r-- | httemplate/edit/cust_main/contact.html | 4 |
3 files changed, 113 insertions, 1 deletions
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') %> +<SCRIPT SRC="<% $fsurl %>elements/ajaxcontentmws.js" TYPE="text/javascript"></SCRIPT> <% 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 @@ +<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 = encode_entities(objToJson({ zip => $zip5, +% map { $_ => $location->$_ } +% qw ( city state geocode ) +% }) +% ); +% my $content = ''; +% $content .= $location->$_. ' ' 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)) { +% $selected = 'SELECTED'; +% } + <OPTION VALUE="<% $value %>" STYLE="<% $style %>" <% $selected %>><% $content %> +% } +</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> +</TR> +</TABLE> + +</CENTER> +</FORM> +<%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;"; + +</%init> 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 @@ <TR> <TH ALIGN="right"><%$r%>Country</TH> <TD COLSPAN=5><% include('select-country.html', %select_hash ) %></TD> +% if ( !$pre ) { + <TD><INPUT TYPE="hidden" NAME="geocode" VALUE="<% $opt{geocode} %>"></TD> +% } + </TR> <TR> |