Production readiness fixes: 3 critical + 2 high-priority

Critical #1 — CRTC: Fix undefined 'province' variable (canada_crtc.py:1322)
  Crashes every order at Step 6 document generation. Replaced with
  order_data.get("custom_incorporation_province", "BC").

Critical #2 — FCC Carrier Reg: Add State PUC state picker
  The order page collected "1/few/nationwide" but API expected an array
  of state codes. Added a multi-state checkbox grid that appears when
  State PUC add-on is checked. Sends puc_states: ["CA","NY",...] in
  service_wizard. Price updates per-state ($399 × count).

Critical #3 — Compliance: Add REQUIRED_FIELDS for fcc-499q and
  fcc-499a-discontinuance. Without these, intake validation was
  completely skipped — invalid data accepted silently.

High #4 — FCC Carrier Reg: Don't mark D.C. Agent complete
  prematurely. Was calling _update_step() right after creating the
  admin todo. Now waits for admin to confirm NW order is placed.

High #5 — Compliance: Add fcc-499q and fcc-499a-discontinuance to
  REQUIRES_ENTITY_FRN set. Both require FRN for USAC filing.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
justin 2026-05-04 05:28:13 -05:00
parent 78c04b8bc3
commit 47ca1bf10f
4 changed files with 49 additions and 3 deletions

View file

@ -1319,7 +1319,7 @@ class CanadaCRTCHandler(BaseServiceHandler):
name=director.get("name", ""),
address=director.get("address", ""),
city=director.get("city", ""),
state=director.get("province", province),
state=director.get("province", order_data.get("custom_incorporation_province", "BC")),
zip_code=director.get("postal_code", ""),
title="Director",
is_organizer=director.get("is_incorporator", False),

View file

@ -146,7 +146,7 @@ class FCCCarrierRegistrationHandler:
f" UPDATE fcc_carrier_registrations SET dc_agent_completed_at = NOW() "
f"WHERE order_number = '{order_number}'",
)
self._update_step(order_number, "dc_agent_completed_at")
# Don't mark complete — admin must confirm NW order is placed first
# ── Step 5: State PUC Registrations ───────────────────────────────
puc_states = order.get("state_puc_states") or []