Add voice service question to RMD check + hide DC Agent when 499-A unchecked
- RMD "not found" now asks "Do you provide any voice services?" with Yes/No buttons. Clicking No turns it green (data-only, not applicable). Includes "Change answer" undo button. - DC Agent checkbox hides and unchecks when Form 499-A is unchecked, reappears when 499-A is re-checked. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
6ec28f6a79
commit
298d7643bc
1 changed files with 61 additions and 0 deletions
|
|
@ -490,6 +490,17 @@ import Base from "../../layouts/Base.astro";
|
|||
if (check.due_date) inner += `<p class="text-xs ${c.textColor} opacity-75 mt-0.5">Due: ${check.due_date}</p>`;
|
||||
if (check.detail) inner += `<p class="text-sm ${c.textColor} mt-1">${check.detail}</p>`;
|
||||
|
||||
// RMD special — ask if they provide voice services when RMD not found
|
||||
if (check.id === "rmd_filing" && status === "red" && (check.detail || "").includes("Not found")) {
|
||||
inner += `<div class="mt-3">
|
||||
<p class="text-sm font-medium ${c.textColor} mb-2">Do you provide any voice services?</p>
|
||||
<div class="flex gap-2">
|
||||
<button class="rmd-yes bg-red-500 hover:bg-red-600 text-white text-sm font-semibold px-4 py-1.5 rounded-lg transition">Yes</button>
|
||||
<button class="rmd-no bg-green-600 hover:bg-green-700 text-white text-sm font-semibold px-4 py-1.5 rounded-lg transition">No — data only</button>
|
||||
</div>
|
||||
</div>`;
|
||||
}
|
||||
|
||||
// BDC special
|
||||
if (check.id === "bdc_filing" && status === "unknown") {
|
||||
inner += `<div class="mt-3">
|
||||
|
|
@ -542,6 +553,42 @@ import Base from "../../layouts/Base.astro";
|
|||
card.querySelector(".bdc-no")?.addEventListener("click", () => setBdcStatus("green"));
|
||||
}
|
||||
|
||||
// RMD button handlers
|
||||
if (check.id === "rmd_filing" && status === "red" && (check.detail || "").includes("Not found")) {
|
||||
function setRmdStatus(newStatus) {
|
||||
check.status = newStatus;
|
||||
const c = colorMap[newStatus];
|
||||
card.className = `${c.bg} ${c.border} border rounded-xl p-4 flex items-start gap-3`;
|
||||
if (newStatus === "red") {
|
||||
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 || check.id}</p>
|
||||
<p class="text-sm ${c.textColor} mt-1">Not registered — RMD filing required for voice service providers.</p>
|
||||
<button class="rmd-undo text-xs underline ${c.textColor} mt-1 opacity-75">Change answer</button>
|
||||
</div>`;
|
||||
} else if (newStatus === "green") {
|
||||
card.innerHTML = `<div class="${c.iconColor} mt-0.5 flex-shrink-0">${icons.green}</div>
|
||||
<div class="flex-1">
|
||||
<p class="font-semibold ${c.textColor}">${check.label || check.id}</p>
|
||||
<p class="text-sm ${c.textColor} mt-1">Not applicable — data-only provider, no voice services.</p>
|
||||
<button class="rmd-undo text-xs underline ${c.textColor} mt-1 opacity-75">Change answer</button>
|
||||
</div>`;
|
||||
}
|
||||
card.querySelector(".rmd-undo")?.addEventListener("click", () => {
|
||||
check.status = "red";
|
||||
const cr = colorMap.red;
|
||||
card.className = `${cr.bg} ${cr.border} border rounded-xl p-4 flex items-start gap-3`;
|
||||
card.innerHTML = inner;
|
||||
card.querySelector(".rmd-yes")?.addEventListener("click", () => setRmdStatus("red"));
|
||||
card.querySelector(".rmd-no")?.addEventListener("click", () => setRmdStatus("green"));
|
||||
renderCta(lastData);
|
||||
});
|
||||
renderCta(lastData);
|
||||
}
|
||||
card.querySelector(".rmd-yes")?.addEventListener("click", () => setRmdStatus("red"));
|
||||
card.querySelector(".rmd-no")?.addEventListener("click", () => setRmdStatus("green"));
|
||||
}
|
||||
|
||||
checksContainer.appendChild(card);
|
||||
});
|
||||
|
||||
|
|
@ -641,6 +688,20 @@ import Base from "../../layouts/Base.astro";
|
|||
let pricedCount = 0;
|
||||
const selectedIds = [];
|
||||
|
||||
// If 499-A is unchecked, hide and uncheck DC Agent
|
||||
const f499Checked = Array.from(boxes).some((cb) => cb.dataset.id === "form_499a" && cb.checked);
|
||||
boxes.forEach((cb) => {
|
||||
if (cb.dataset.id === "dc_agent") {
|
||||
const label = cb.closest("label");
|
||||
if (f499Checked) {
|
||||
if (label) label.style.display = "";
|
||||
} else {
|
||||
cb.checked = false;
|
||||
if (label) label.style.display = "none";
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
boxes.forEach((cb) => {
|
||||
if (cb.checked) {
|
||||
const p = parseInt(cb.dataset.price, 10);
|
||||
|
|
|
|||
Loading…
Reference in a new issue