var rzTaxAPI="stevenscoks-tax.revize.com";
function processSearchResp(resp) {
if (!Array.isArray(resp)) { console.error("Unexpected response", resp); return; }
var respWrap = document.querySelector("#results-wrap table tbody");
respWrap.innerHTML = "";
resp.forEach(function(data) {
var row = document.createElement("tr");
row.innerHTML = `
${data['Name'].toLowerCase()} |
${data['Address'].toLowerCase()} |
${data['Desc'].toLowerCase()} |
${data['TaxID']} |
| `
const taxID = data['CompanyID'];
row.querySelector(".view-tax-details").addEventListener('click', function() {
doTaxDetails(taxID);
});
respWrap.append(row);
});
if (resp.length) {
document.querySelector("#results-wrap #no-results").style.display = "none";
} else {
document.querySelector("#results-wrap #no-results").style.display = "";
}
}
function processTaxDetailsResp(resp) {
console.log(resp);
if (!Array.isArray(resp)) { console.error("Unexpected response", resp); return; }
var respWrap = document.querySelector("#statements-table-body");
respWrap.innerHTML = "";
resp.sort(function(a, b) {
return a.TaxYear.localeCompare(b.TaxYear);
});
resp.forEach(function(data) {
var row = document.createElement("tr");
row.innerHTML = `
${data['TaxYear']} |
${data['TaxType']} |
${data['Amount']} |
${data['NextDue']} |
${data['FinalDue']} |
${data['InterestAmount']} |
${data['DlqFees']} | `;
respWrap.append(row);
});
document.querySelector("#statements-dialog").showModal();
}
async function doTaxDetails(taxID) {
if (taxID == null || taxID == "") {
return;
}
var formData = new FormData();
formData.append("tax_id", taxID)
await fetch("//" + rzTaxAPI + "/api/get", {
method: "POST",
body: formData,
}).then(async (res) => {
await res.json().then((data) => {
processTaxDetailsResp(data);
});
})
}
async function doSearch(ev) {
if (!(ev.target instanceof HTMLFormElement)) {
return;
}
var formData = new FormData(ev.target);
var hasData = false;
for (var [key, val] of Array.from(formData.entries())) {
if (val.trim() == "") {
formData.delete(key);
} else {
hasData = true;
}
}
if (hasData) {
await fetch("//" + rzTaxAPI + "/api/search", {
method: "POST",
body: formData,
}).then(async (res) => {
await res.json().then((data) => {
processSearchResp(data);
});
})
}
}
async function init(){
var app = null;
var appWrap = document.querySelector(".rz-app.rz-app-tax-search");
if (appWrap) {
app = document;//appWrap.attachShadow({ mode: "open" })
}
if (!app) { return; }
await fetch("//" + rzTaxAPI + "/resources/search.html").then(async (res) => {
await res.text().then((html) => {
appWrap.innerHTML = html;
})
});
app.querySelector("#search-wrap form").addEventListener('submit', function(ev) {
doSearch(ev);
ev.preventDefault();
});
app.querySelector("#statements-dialog header button").addEventListener('click', function() {
app.querySelector("#statements-dialog").close();
});
}
init();