X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=httemplate%2Fedit%2Fcust_main%2Fbottomfixup.js;h=8aef1e72c8bee049934d01abef1451c162e99602;hb=2d5acabf71d46aa469a6867f294706242c82db98;hp=77d4294a62f943b7a88b1dd46bf6fd93c42bb005;hpb=01629c3c934f1f6fd2ab9de5f7638f671fd59791;p=freeside.git diff --git a/httemplate/edit/cust_main/bottomfixup.js b/httemplate/edit/cust_main/bottomfixup.js index 77d4294a6..8aef1e72c 100644 --- a/httemplate/edit/cust_main/bottomfixup.js +++ b/httemplate/edit/cust_main/bottomfixup.js @@ -7,26 +7,34 @@ my $company_longitude = $conf->config('company_longitude'); my @fixups = ('copy_payby_fields', 'standardize_locations'); -push @fixups, 'fetch_censustract' +push @fixups, 'confirm_censustract_bill', 'confirm_censustract_ship' if $conf->exists('cust_main-require_censustract'); +my $uniqueness = $conf->config('cust_main-check_unique'); push @fixups, 'check_unique' - if $conf->exists('cust_main-check_unique') and !$opt{'custnum'}; + if $uniqueness and !$opt{'custnum'}; push @fixups, 'do_submit'; # always last %init> - var fixups = <% encode_json(\@fixups) %>; var fixup_position; +var running = false; + +<&| /elements/onload.js &> +submit_abort(); +&> %# state machine to deal with all the asynchronous stuff we're doing %# call this after each fixup on success: function submit_continue() { - window[ fixups[fixup_position++] ].call(); + if ( running ) { + window[ fixups[fixup_position++] ].call(); + } } %# or on failure: function submit_abort() { + running = false; fixup_position = 0; document.CustomerForm.submitButton.disabled = false; cClick(); @@ -35,6 +43,7 @@ function submit_abort() { function bottomfixup(what) { fixup_position = 0; document.CustomerForm.submitButton.disabled = true; + running = true; submit_continue(); } @@ -63,112 +72,11 @@ function copy_payby_fields() { submit_continue(); } -%# call submit_continue() on completion... -%# otherwise not touching standardize_locations for now -<% include( '/elements/standardize_locations.js', - 'callback' => 'submit_continue();', - 'main_prefix' => 'bill_', - 'no_company' => 1, - ) -%> - -var prefix; -function fetch_censustract() { - - //alert('fetch census tract data'); - prefix = document.getElementById('same').checked ? 'bill_' : 'ship_'; - var cf = document.CustomerForm; - var state_el = cf.elements[prefix + 'state']; - var census_data = new Array( - 'year', <% $conf->config('census_year') || '2012' %>, - 'address1', cf.elements[prefix + 'address1'].value, - 'city', cf.elements[prefix + 'city'].value, - 'state', state_el.options[ state_el.selectedIndex ].value, - 'zip', cf.elements[prefix + 'zip'].value - ); - - censustract( census_data, update_censustract ); - -} - -var set_censustract; - -function update_censustract(arg) { - - var argsHash = eval('(' + arg + ')'); - - var cf = document.CustomerForm; - -/* var msacode = argsHash['msacode']; - var statecode = argsHash['statecode']; - var countycode = argsHash['countycode']; - var tractcode = argsHash['tractcode']; - - var newcensus = - new String(statecode) + - new String(countycode) + - new String(tractcode).replace(/\s$/, ''); // JSON 1 workaround */ - var error = argsHash['error']; - var newcensus = argsHash['censustract']; - - set_censustract = function () { - - cf.elements[prefix + 'censustract'].value = newcensus; - submit_continue(); - - } - - if (error || cf.elements[prefix + 'censustract'].value != newcensus) { - // popup an entry dialog - - if (error) { newcensus = error; } - newcensus.replace(/.*ndefined.*/, 'Not found'); - - var latitude = cf.elements[prefix + 'latitude'].value - || '<% $company_latitude %>'; - var longitude= cf.elements[prefix + 'longitude'].value - || '<% $company_longitude %>'; - - var choose_censustract = - '
Entered census tract | ' + - 'Calculated census tract |
---|---|
' + cf.elements[prefix + 'censustract'].value + - ' | ' + newcensus + ' |
' + - '' + - ' | ' + - '' + - ' |
' + - ' |