Add 499-A qualifying questions and USAC cancellation option

When 499-A shows as past due, asks:
- "Yes — I need to file" → keeps red, notes each year priced separately
- "No — I had no telecom revenue" → yellow, explains zero-revenue
  filings still required for each year with active filer ID
- "I want to cancel my 499 registration" → yellow, explains catch-up
  filings must be completed first, offers to handle cancellation

All options have "Change answer" undo buttons.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
justin 2026-04-27 20:41:29 -05:00
parent 298d7643bc
commit 3d36d20148

View file

@ -501,6 +501,18 @@ import Base from "../../layouts/Base.astro";
</div>`; </div>`;
} }
// 499-A special — ask qualifying questions when past due
if (check.id === "form_499a" && (status === "red" || status === "yellow")) {
inner += `<div class="mt-3 border-t border-red-200 pt-3">
<p class="text-sm font-medium ${c.textColor} mb-2">Did you bill customers for voice or data telecom services during the overdue filing period(s)?</p>
<div class="flex gap-2 flex-wrap">
<button class="f499-yes bg-red-500 hover:bg-red-600 text-white text-sm font-semibold px-4 py-1.5 rounded-lg transition">Yes — I need to file</button>
<button class="f499-no bg-amber-500 hover:bg-amber-600 text-white text-sm font-semibold px-4 py-1.5 rounded-lg transition">No — I had no telecom revenue</button>
<button class="f499-cancel bg-gray-500 hover:bg-gray-600 text-white text-sm font-semibold px-4 py-1.5 rounded-lg transition">I want to cancel my 499 registration</button>
</div>
</div>`;
}
// BDC special // BDC special
if (check.id === "bdc_filing" && status === "unknown") { if (check.id === "bdc_filing" && status === "unknown") {
inner += `<div class="mt-3"> inner += `<div class="mt-3">
@ -589,6 +601,62 @@ import Base from "../../layouts/Base.astro";
card.querySelector(".rmd-no")?.addEventListener("click", () => setRmdStatus("green")); card.querySelector(".rmd-no")?.addEventListener("click", () => setRmdStatus("green"));
} }
// 499-A button handlers
if (check.id === "form_499a" && (status === "red" || status === "yellow")) {
function setF499Status(action) {
const c = action === "file" ? colorMap.red : (action === "zero" ? colorMap.yellow : colorMap.yellow);
card.className = `${c.bg} ${c.border} border rounded-xl p-4 flex items-start gap-3`;
if (action === "file") {
// Keep red — they need to file
card.innerHTML = `<div class="${c.iconColor} mt-0.5 flex-shrink-0">${icons.red}</div>
<div class="flex-1">
<p class="font-semibold ${c.textColor}">${check.label}</p>
<p class="text-sm ${c.textColor} mt-1">${check.detail}</p>
<p class="text-sm ${c.textColor} mt-1 font-medium">You had telecom revenue — filing is required for each missed year.</p>
<button class="f499-undo text-xs underline ${c.textColor} mt-1 opacity-75">Change answer</button>
</div>`;
} else if (action === "zero") {
// Had no revenue — still need to file a zero-revenue 499-A
check.status = "yellow";
const cy = colorMap.yellow;
card.className = `${cy.bg} ${cy.border} border rounded-xl p-4 flex items-start gap-3`;
card.innerHTML = `<div class="${cy.iconColor} mt-0.5 flex-shrink-0">${icons.yellow}</div>
<div class="flex-1">
<p class="font-semibold ${cy.textColor}">${check.label}</p>
<p class="text-sm ${cy.textColor} mt-1">Even with zero telecom revenue, a 499-A must be filed for each year you held an active filer ID. We can file zero-revenue returns for you.</p>
<button class="f499-undo text-xs underline ${cy.textColor} mt-1 opacity-75">Change answer</button>
</div>`;
} else if (action === "cancel") {
// Wants to cancel registration
check.status = "yellow";
const cy = colorMap.yellow;
card.className = `${cy.bg} ${cy.border} border rounded-xl p-4 flex items-start gap-3`;
card.innerHTML = `<div class="${cy.iconColor} mt-0.5 flex-shrink-0">${icons.yellow}</div>
<div class="flex-1">
<p class="font-semibold ${cy.textColor}">${check.label}</p>
<p class="text-sm ${cy.textColor} mt-1">To cancel your USAC filer registration, all outstanding 499-A filings must be current first (including zero-revenue returns). We can handle the catch-up filings and submit the cancellation request to USAC on your behalf.</p>
<button class="f499-undo text-xs underline ${cy.textColor} mt-1 opacity-75">Change answer</button>
</div>`;
}
card.querySelector(".f499-undo")?.addEventListener("click", () => {
check.status = status; // restore original
const cr = colorMap[status];
card.className = `${cr.bg} ${cr.border} border rounded-xl p-4 flex items-start gap-3`;
card.innerHTML = inner;
card.querySelector(".f499-yes")?.addEventListener("click", () => setF499Status("file"));
card.querySelector(".f499-no")?.addEventListener("click", () => setF499Status("zero"));
card.querySelector(".f499-cancel")?.addEventListener("click", () => setF499Status("cancel"));
renderCta(lastData);
});
renderCta(lastData);
}
card.querySelector(".f499-yes")?.addEventListener("click", () => setF499Status("file"));
card.querySelector(".f499-no")?.addEventListener("click", () => setF499Status("zero"));
card.querySelector(".f499-cancel")?.addEventListener("click", () => setF499Status("cancel"));
}
checksContainer.appendChild(card); checksContainer.appendChild(card);
}); });