Add stricter entity step validation: structure, EIN format, address required

- Entity structure (LLC/Corp/etc) is now required
- EIN must be provided and match XX-XXXXXXX format
- Full address (street, city, state, ZIP) required
- Email validation format checked

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
justin 2026-04-28 18:35:43 -05:00
parent d6c513bca5
commit 06143c51c2

View file

@ -388,9 +388,22 @@
const active = (window as any).PWIntake.get();
if (active.step_index !== (window as any).PWIntake.steps.indexOf("entity")) return;
const missing: string[] = [];
if (!INPUTS.email.value.trim()) missing.push("email");
if (!INPUTS.email.value.trim()) missing.push("email address");
if (!INPUTS.name.value.trim()) missing.push("your name");
if (!INPUTS.legal_name.value.trim()) missing.push("legal name");
if (!INPUTS.legal_name.value.trim()) missing.push("carrier legal name");
if (!INPUTS.entity_structure.value) missing.push("entity structure");
// EIN validation: must be XX-XXXXXXX format if provided, required for filing
const ein = INPUTS.ein.value.trim().replace(/[^0-9-]/g, "");
if (!ein) {
missing.push("EIN");
} else if (!/^\d{2}-?\d{7}$/.test(ein)) {
missing.push("valid EIN (format: 12-3456789)");
}
// Address — at minimum need state
if (!INPUTS.street.value.trim()) missing.push("street address");
if (!INPUTS.city.value.trim()) missing.push("city");
if (!INPUTS.state.value.trim()) missing.push("state");
if (!INPUTS.zip.value.trim()) missing.push("ZIP code");
// Affiliated filer: name+EIN required together
const affName = INPUTS.aff_name.value.trim();
const affEin = INPUTS.aff_ein.value.trim();