%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
%doc>
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 =
'