50-state trucking compliance: services, checker, order page, CA landing
- Migration 079: state_trucking_requirements table seeded for all 51 jurisdictions (IRP, IFTA, weight-distance taxes, MCP/CARB, intrastate authority, state DOT) - Migration 080: carrier_operating_states tracking table - 13 new state trucking services in catalog ($99-$599) - StateTruckingHandler with state-specific admin todos - DOT compliance checker: 7 new state-level checks (IRP, IFTA, weight tax, MCP/CARB, emissions, intrastate authority, state DOT number) - New API endpoint: GET /api/v1/dot/state-requirements - DOT order page: state compliance service cards with auto-preselect - California trucking landing page (MCP + CARB + IRP + IFTA) - Fix: DOT checker nav missing Trucking/DOT section - Fix: All 8 DOT intake pages missing style block (dangling text) - Fix: DOT confirmation email now says "Order Confirmed" not "Action Required" - Fix: MCS150/BOC3/StateTrucking handlers missing async process() method - Fix: StateTruckingHandler connection leak + slug resolution Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
c80f3a408a
commit
33da00fd89
21 changed files with 2078 additions and 14 deletions
|
|
@ -42,11 +42,14 @@ from datetime import datetime
|
|||
|
||||
LOG = logging.getLogger("workers.services.boc3_filing")
|
||||
|
||||
# Process agent partner details — update when partnership is established
|
||||
# Process agent partner details
|
||||
# NWRA (Northwest Registered Agent) confirmed they no longer offer BOC-3.
|
||||
# Registered Agents Inc is the replacement vendor (contract pending).
|
||||
# Wholesale cost: ~$25 or less. Manual fulfillment until API is available.
|
||||
PROCESS_AGENT_PARTNER = {
|
||||
"name": "TBD — NWRA or similar",
|
||||
"contact_email": "",
|
||||
"api_endpoint": None, # Will be set when partner API is available
|
||||
"name": "Registered Agents Inc",
|
||||
"contact_email": "", # Update when contract is executed
|
||||
"api_endpoint": None, # Will be set when RAI API is available
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -56,6 +59,11 @@ class BOC3FilingHandler:
|
|||
SERVICE_SLUG = "boc3-filing"
|
||||
SERVICE_NAME = "BOC-3 Process Agent Filing"
|
||||
|
||||
async def process(self, order_data: dict) -> list[str]:
|
||||
"""Entry point called by job_server. Delegates to handle()."""
|
||||
order_number = order_data.get("order_number", order_data.get("name", ""))
|
||||
return self.handle(order_data, order_number)
|
||||
|
||||
def handle(self, order_data: dict, order_number: str) -> list[str]:
|
||||
"""
|
||||
Process a BOC-3 filing order.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue