<%doc> Provide js function in support of a lookup hook for wa_state_tax_districts wa_state_tax_district() * Checks form_address_info() to collect address data * If any addresses are in Washington State, * Uses misc/xmlhttp-wa_state-find_district_for_address.html to query wa state tax districting database * Displays error, or updates the district input element for the addresses * Calls submit_continue() upon success * Calls submit_abort() upon error function wa_state_tax_district() { // Queries the WA State API to get a Tax District for this address // upon failure: User can choose to skip or cancel // upon success: set value of district input box and submit_continue() address_info = form_address_info(); // console.log( address_info ); if ( address_info['state'] != 'WA' && address_info['state'] != 'wa' && address_info['bill_state'] != 'WA' && address_info['bill_state'] != 'wa' && ( address_info['same'] || ( address_info['ship_state'] != 'WA' && address_info['ship_state'] != 'wa' ) ) ) { // nothing to do, not in Washington state submit_continue(); return; } wa_state_tax_district_overlib( 'Looking up tax district... please wait...' ); $.post({ url: "<% $fsurl %>misc/xmlhttp-wa_state-find_district_for_address.html", data: address_info, success: function(response) { // console.log(response); let error = ''; if ( response['error'] ) { error = error + response['error'] + ' '; } // populate Billing Address district into form, or record error if ( response['bill'] && response['bill']['district'] ) { $('#bill_district').val( response['bill']['district'] ); } else if ( response['bill'] && response['bill']['error'] ) { error = error + 'Cound not set tax district for billing address. '; } // populate Shipping Address district into form, or record error if ( ! address_info['same'] && response['ship'] && response['ship']['district'] ) { $('#ship_district').val( response['ship']['district'] ); } else if ( ! address_info['same'] && response['ship'] && response['ship']['error'] ) { error = error + 'Could not set tax district for service address. '; } // populate Plain Address district into form, or record error if ( response['address'] && response['address']['district'] ) { $('#district').val( response['address']['district'] ); } else if ( response['address'] && response['address']['error'] ) { error = error + 'Could not set tax district for address. '; } if ( error ) { wa_state_tax_district_overlib( 'An error occured determining Washington state tax district:
' + '
' + error + '
' + '
' + 'If you choose to skip this step, taxes will not be calculated ' + 'for this customer, unless you enter a tax district manually.' + '
' + 'See WA Dept of Revenue' ); } else { cClick(); submit_continue(); return; } } }) .fail(function() { wa_state_tax_district_overlib( 'A network error occured determining Washington state tax district:
' + '
' + 'If you choose to skip this step, taxes will not be calculated ' + 'for this customer, unless you enter a tax district manually.' + '
' + 'See WA Dept of Revenue' ); }); } function wa_state_tax_district_overlib(html) { html = '
' + '

Washington State Tax District Lookup

' + '

' + html + '

' + 'skip' + ' | ' + 'cancel' + '
'; overlib( html, CAPTION, 'WA State Tax District', STICKY, CLOSETEXT, '', MIDX, 0, MIDY, 0, WIDTH, 500, BGCOLOR, '#339', CGCOLOR, '#339', TEXTSIZE, 3 ); } function wa_state_tax_district_skip() { // Click target to skip tax district determination cClick() submit_continue(); } function wa_state_tax_district_cancel() { // Click target to cancel submit from tax district determination cClick() submit_abort(); }