From ee3fd4e95bdc52f15b0603a32363778f72d164ef Mon Sep 17 00:00:00 2001 From: Mark Wells Date: Thu, 11 Oct 2012 13:35:26 -0700 Subject: [PATCH] finish merge cleanup --- FS/FS/cust_main/Location.pm | 3 ++- httemplate/edit/cust_main/bottomfixup.js | 30 +++++++++++++++++++++++++++- httemplate/elements/location.html | 3 +-- httemplate/elements/standardize_locations.js | 11 +++++----- 4 files changed, 38 insertions(+), 9 deletions(-) diff --git a/FS/FS/cust_main/Location.pm b/FS/FS/cust_main/Location.pm index 8e30bb65b..ba3513b2f 100644 --- a/FS/FS/cust_main/Location.pm +++ b/FS/FS/cust_main/Location.pm @@ -18,7 +18,8 @@ BEGIN { no strict 'refs'; @location_fields = qw( address1 address2 city county state zip country district - latitude longitude coord_auto censustract censusyear geocode ); + latitude longitude coord_auto censustract censusyear geocode + addr_clean ); foreach my $f (@location_fields) { *{"FS::cust_main::Location::$f"} = sub { diff --git a/httemplate/edit/cust_main/bottomfixup.js b/httemplate/edit/cust_main/bottomfixup.js index b64f6bdb2..3a8da2331 100644 --- a/httemplate/edit/cust_main/bottomfixup.js +++ b/httemplate/edit/cust_main/bottomfixup.js @@ -5,7 +5,12 @@ my $conf = new FS::Conf; my $company_latitude = $conf->config('company_latitude'); my $company_longitude = $conf->config('company_longitude'); -my @fixups = ('copy_payby_fields', 'standardize_locations'); +my @fixups = ( + 'copy_if_same', + 'copy_payby_fields', + 'standardize_locations', + 'confirm_censustract' + ); push @fixups, 'confirm_censustract'; @@ -46,6 +51,29 @@ function do_submit() { document.CustomerForm.submit(); } +%# if "same as billing" is checked, ensure that the invisible ship location +%# fields are set to the values of the visible fields. +function copy_if_same() { + var cf = document.CustomerForm; + if ( cf.same.checked ) { + var inputs = new Array( + 'address1', 'address2', 'location_type', 'location_number', 'zip', + 'latitude', 'longitude', 'coord_auto', 'geocode', + // these are selects, not inputs, but per the spec this still works + 'city', 'county', 'state', 'country' + ); + for ( var i = 0; i < inputs.length; i++ ) { + if ( cf['bill_' + inputs[i]] != undefined ) { + // because some of these fields don't always exist + cf['ship_' + inputs[i]].value = cf['bill_' + inputs[i]].value; + } + } + cf['ship_addr_clean'].checked = cf['bill_addr_clean'].checked; + } + // this can't really fail + submit_continue(); +} + function copy_payby_fields() { var layervars = new Array( 'payauto', 'billday', diff --git a/httemplate/elements/location.html b/httemplate/elements/location.html index 4df218b43..b91f9649f 100644 --- a/httemplate/elements/location.html +++ b/httemplate/elements/location.html @@ -139,7 +139,7 @@ Example: > % #XXX i don't work so well when the dropdown is changed :/ i probably need to be triggered by "default service address" -% $alt_err =~ s/(ship_)?address2/''.encode_entities($object->get($1.'address2')).'<\/B>'/e; +% $alt_err =~ s/(.*)?address2/''.encode_entities($object->get($1.'address2')).'<\/B>'/e; <% $alt_err %> @@ -243,7 +243,6 @@ Example: % } %# Placeholders - <%init> diff --git a/httemplate/elements/standardize_locations.js b/httemplate/elements/standardize_locations.js index f6564a55e..f24eebb61 100644 --- a/httemplate/elements/standardize_locations.js +++ b/httemplate/elements/standardize_locations.js @@ -17,7 +17,7 @@ function form_address_info() { 'country': cf.elements['<% $main_prefix %>country'].value, % } % if ( $withcensus ) { - 'ship_censustract': cf.elements['enter_censustract'].value, + 'ship_censustract': cf.elements['<% $ship_prefix %>enter_censustract'].value, % } 'ship_address1': cf.elements['<% $ship_prefix %>address1'].value, 'ship_address2': cf.elements['<% $ship_prefix %>address2'].value, @@ -86,9 +86,9 @@ function standardize_locations() { address_standardize(JSON.stringify(address_info), confirm_standardize); } else { - cf.elements['ship_addr_clean'].value = 'Y'; + cf.elements['<% $ship_prefix %>addr_clean'].value = 'Y'; % if ( !$onlyship ) { - cf.elements['addr_clean'].value = 'Y'; + cf.elements['<% $main_prefix %>addr_clean'].value = 'Y'; % } post_standardization(); } @@ -193,8 +193,8 @@ function confirm_manual_address() { %# not much to do in this case, just confirm the censustract % if ( $withcensus ) { var cf = document.<% $formname %>; - cf.elements['<% $main_prefix %>censustract'].value = - cf.elements['<% $main_prefix %>enter_censustract'].value; + cf.elements['<% $ship_prefix %>censustract'].value = + cf.elements['<% $ship_prefix %>enter_censustract'].value; % } post_standardization(); } @@ -292,6 +292,7 @@ my $withcensus = 1; my $formname = $opt{form} || 'CustomerForm'; my $onlyship = $opt{onlyship} || ''; +# this whole "onlyship" thing is kind of backward... my $main_prefix = $opt{main_prefix} || ''; my $ship_prefix = $opt{ship_prefix} || ($onlyship ? '' : 'ship_'); my $taxpre = $main_prefix; -- 2.11.0