DOT D&A: instant PDF compliance-program binder (49)
Turn the DOT Drug & Alcohol Compliance Program into an automated
instant-delivery deliverable: when a carrier orders, we generate a
complete, print-ready PDF binder and email it (no admin step).
The binder (dot_da_binder_generator.py) bundles everything a small
carrier needs under 49 CFR Part 382 + Part 40:
- How to manage the program (DER setup + annual operations)
- Written drug & alcohol testing policy for employees
- The six DOT test scenarios + triggers
- Random testing / consortium (C-TPA) instructions
- Supervisor reasonable-suspicion training + live/online access
- Violations, SAP access, return-to-duty / follow-up
- EAP / rehab / treatment resources (SAMHSA, 988, locator, ODAPC)
- Recordkeeping retention schedule
- Ready-to-use forms (acknowledgment, reasonable-suspicion,
post-accident decision worksheet)
- Regulation citations
- Optional state Drug-Free Workplace addendum
Policy-variant selection: FMCSA (Part 382) is the trucking default;
honors an explicit dot_da_mode override for FRA/PHMSA/FTA/FAA/USCG.
New DrugAlcoholProgramHandler returns the binder PDF; slug added to
INSTANT_DELIVERY_SLUGS so job_server emails it automatically. Slug
rerouted from MCS150UpdateHandler (was admin-assisted enrollment) and
re-priced as a discountable own-deliverable (no passthrough cost).
Tests: scripts/tests/test_dot_da_binder.py (FMCSA sections, PHMSA+state
addendum, all-modes render) — passing.
This commit is contained in:
parent
058d7cfbfe
commit
06e59965cc
6 changed files with 1172 additions and 2 deletions
|
|
@ -1204,6 +1204,8 @@ def handle_process_compliance_service(payload: dict) -> dict:
|
|||
"policy-development", "ccpa-audit", "privacy-policy",
|
||||
"data-mapping", "breach-response", "consent-audit",
|
||||
"dnc-compliance", "campaign-review",
|
||||
# DOT / FMCSA instant-delivery binders
|
||||
"dot-drug-alcohol", # generates the D&A compliance program binder
|
||||
}
|
||||
if service_slug in INSTANT_DELIVERY_SLUGS and minio_paths:
|
||||
customer_email = order.get("customer_email")
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue