DOT D&A binder: editable DOCX output, all 6 forms each full-page, service-aware delivery email

- Rewrite dot_da_binder_generator.py to emit an editable .docx (was reportlab PDF)
  so carriers/counsel can review and adapt the program. ~4000 words, 10 sections.
- Render all six required forms (A-F); previously only A, D, E existed. Each form
  starts on its own page (page break) and fills a page.
- Mode-aware policy text for FMCSA/FRA/PHMSA/FTA/FAA/USCG with correct CFR parts
  and random-testing rates; optional single-state Drug-Free Workplace addendum
  (federal DOT program is nationwide; only the optional DFWP addendum is state-keyed).
- Handler now outputs .docx instead of .pdf.
- job_server instant-delivery: attach DOCX (correct MIME) as well as PDF, and use
  DOT-specific email copy + CTA instead of the FCC/telecom boilerplate.
This commit is contained in:
justin 2026-06-02 21:27:44 -05:00
parent 06e59965cc
commit 9718ab9ffa
4 changed files with 1138 additions and 672 deletions

View file

@ -162,8 +162,8 @@
<!-- ═══ SECTION: D&A Program (D&A, bundles) ═══ -->
<div id="dot-sec-da" hidden>
<h3>Drug & Alcohol Compliance Program</h3>
<p class="pw-field-help">Required for all carriers with CDL drivers. We will enroll you in a DOT-compliant consortium and set up your program.</p>
<h3>Drug &amp; Alcohol Compliance Program</h3>
<p class="pw-field-help">Required for all carriers with CDL drivers. Your program is built under <strong>FMCSA 49 CFR Part 382</strong> (the rule for motor carriers) and delivered as a complete, ready-to-use PDF binder.</p>
<div class="pw-row-3">
<label class="pw-field"><span>CDL Drivers <em>*</em></span>
<input type="number" id="dot-cdl-drivers" min="0" placeholder="Number of CDL holders" /></label>
@ -173,9 +173,25 @@
<input type="text" id="dot-der-name" placeholder="Designated Employer Rep (optional)" /></label>
</div>
<div class="pw-row">
<label class="pw-field"><span>Current D&A Program Provider</span>
<label class="pw-field"><span>Current D&amp;A Program Provider</span>
<input type="text" id="dot-current-da" placeholder="Leave blank if none / first time" /></label>
</div>
<!-- State Drug-Free Workplace addendum (the one variable that changes the binder) -->
<div class="pw-dfwp-box">
<label class="pw-checkbox-row">
<input type="checkbox" id="dot-da-dfwp" />
<span><strong>Add a state Drug-Free Workplace policy addendum</strong><br>
<span class="pw-field-help" style="margin:0">Some states (e.g. FL, GA, OH, SC, TN, AL, VA) offer a workers'-comp premium discount or other benefits for a registered Drug-Free Workplace Program. We'll append a state-specific policy supplement that runs alongside your federal DOT program. Optional and included.</span></span>
</label>
<div id="dot-da-dfwp-state-row" class="pw-row" hidden style="margin-top:0.75rem">
<label class="pw-field"><span>Drug-Free Workplace State</span>
<select id="dot-da-dfwp-state">
<option value="">Select state...</option>
<option value="Alabama">Alabama</option><option value="Alaska">Alaska</option><option value="Arizona">Arizona</option><option value="Arkansas">Arkansas</option><option value="California">California</option><option value="Colorado">Colorado</option><option value="Connecticut">Connecticut</option><option value="Delaware">Delaware</option><option value="Florida">Florida</option><option value="Georgia">Georgia</option><option value="Hawaii">Hawaii</option><option value="Idaho">Idaho</option><option value="Illinois">Illinois</option><option value="Indiana">Indiana</option><option value="Iowa">Iowa</option><option value="Kansas">Kansas</option><option value="Kentucky">Kentucky</option><option value="Louisiana">Louisiana</option><option value="Maine">Maine</option><option value="Maryland">Maryland</option><option value="Massachusetts">Massachusetts</option><option value="Michigan">Michigan</option><option value="Minnesota">Minnesota</option><option value="Mississippi">Mississippi</option><option value="Missouri">Missouri</option><option value="Montana">Montana</option><option value="Nebraska">Nebraska</option><option value="Nevada">Nevada</option><option value="New Hampshire">New Hampshire</option><option value="New Jersey">New Jersey</option><option value="New Mexico">New Mexico</option><option value="New York">New York</option><option value="North Carolina">North Carolina</option><option value="North Dakota">North Dakota</option><option value="Ohio">Ohio</option><option value="Oklahoma">Oklahoma</option><option value="Oregon">Oregon</option><option value="Pennsylvania">Pennsylvania</option><option value="Rhode Island">Rhode Island</option><option value="South Carolina">South Carolina</option><option value="South Dakota">South Dakota</option><option value="Tennessee">Tennessee</option><option value="Texas">Texas</option><option value="Utah">Utah</option><option value="Vermont">Vermont</option><option value="Virginia">Virginia</option><option value="Washington">Washington</option><option value="West Virginia">West Virginia</option><option value="Wisconsin">Wisconsin</option><option value="Wyoming">Wyoming</option><option value="District of Columbia">District of Columbia</option>
</select></label>
</div>
</div>
</div>
<!-- ═══ SECTION: BOC-3 (BOC-3, bundles) ═══ -->
@ -316,6 +332,9 @@
.pw-cargo-grid label { display: flex; align-items: center; gap: 0.4rem; cursor: pointer; }
.pw-security-notice { display: flex; gap: 8px; align-items: flex-start; background: #eff6ff; border: 1px solid #bfdbfe; border-radius: 8px; padding: 12px 14px; margin-bottom: 1rem; font-size: 14px; color: #1e40af; line-height: 1.5; }
.pw-upload-area { border: 2px dashed #d1d5db; border-radius: 8px; padding: 1rem; text-align: center; }
.pw-dfwp-box { background: #f0f9ff; border: 1px solid #bae6fd; border-radius: 8px; padding: 0.85rem 1rem; margin-top: 0.75rem; }
.pw-checkbox-row { display: flex; gap: 0.6rem; align-items: flex-start; cursor: pointer; font-size: 0.85rem; color: #374151; }
.pw-checkbox-row input[type="checkbox"] { margin-top: 0.25rem; width: 16px; height: 16px; flex-shrink: 0; }
.pw-err { color: #b91c1c; margin-top: 0.75rem; font-size: 0.9rem; background: #fee2e2; padding: 0.5rem 0.75rem; border-radius: 6px; }
@media (max-width: 640px) { .pw-row-2, .pw-row-3 { grid-template-columns: 1fr; } .pw-cargo-grid { grid-template-columns: 1fr 1fr; } #dot-id-qr-section { display: none !important; } }
</style>
@ -379,6 +398,24 @@
ucrState.value = stateEl.value;
stateEl.addEventListener("change", () => { ucrState.value = stateEl.value; });
}
// D&A: state Drug-Free Workplace addendum toggle.
// Two-letter business state -> full state name used by the binder generator.
const ST_NAMES = {AL:"Alabama",AK:"Alaska",AZ:"Arizona",AR:"Arkansas",CA:"California",CO:"Colorado",CT:"Connecticut",DE:"Delaware",FL:"Florida",GA:"Georgia",HI:"Hawaii",ID:"Idaho",IL:"Illinois",IN:"Indiana",IA:"Iowa",KS:"Kansas",KY:"Kentucky",LA:"Louisiana",ME:"Maine",MD:"Maryland",MA:"Massachusetts",MI:"Michigan",MN:"Minnesota",MS:"Mississippi",MO:"Missouri",MT:"Montana",NE:"Nebraska",NV:"Nevada",NH:"New Hampshire",NJ:"New Jersey",NM:"New Mexico",NY:"New York",NC:"North Carolina",ND:"North Dakota",OH:"Ohio",OK:"Oklahoma",OR:"Oregon",PA:"Pennsylvania",RI:"Rhode Island",SC:"South Carolina",SD:"South Dakota",TN:"Tennessee",TX:"Texas",UT:"Utah",VT:"Vermont",VA:"Virginia",WA:"Washington",WV:"West Virginia",WI:"Wisconsin",WY:"Wyoming",DC:"District of Columbia"};
const dfwpCb = document.getElementById("dot-da-dfwp");
const dfwpRow = document.getElementById("dot-da-dfwp-state-row");
const dfwpState = document.getElementById("dot-da-dfwp-state");
if (dfwpCb && dfwpRow && !dfwpCb.dataset.wired) {
dfwpCb.dataset.wired = "1";
dfwpCb.addEventListener("change", () => {
dfwpRow.hidden = !dfwpCb.checked;
// Default the DFWP state to the carrier's business state on first check.
if (dfwpCb.checked && dfwpState && !dfwpState.value) {
const full = ST_NAMES[(stateEl?.value || "").toUpperCase()];
if (full) dfwpState.value = full;
}
});
}
}
// Show sections — retry until wizard element is found
@ -413,7 +450,16 @@
const el = document.getElementById(id);
if (el && val) el.value = val;
}
});
// Hydrate the D&A state Drug-Free Workplace addendum
const dfwpCb = document.getElementById("dot-da-dfwp");
const dfwpRow = document.getElementById("dot-da-dfwp-state-row");
const dfwpStateEl = document.getElementById("dot-da-dfwp-state");
const wantsDfwp = d.include_state_dfwp === true || d.include_state_dfwp === "yes" || !!d.state_dfwp;
if (dfwpCb && wantsDfwp) {
dfwpCb.checked = true;
if (dfwpRow) dfwpRow.hidden = false;
if (dfwpStateEl && d.state_dfwp) dfwpStateEl.value = d.state_dfwp;
}
// Save all data on step-next
window.addEventListener("pw:step-next", (evt) => {
@ -469,6 +515,9 @@
der_name: val("dot-der-name"), current_da_provider: val("dot-current-da"),
docket_type: val("dot-docket-type"), docket_number: val("dot-docket-num"),
photo_id_uploaded: !!(window).__dotPhotoId,
// D&A: state Drug-Free Workplace addendum selection
include_state_dfwp: !!(document.getElementById("dot-da-dfwp"))?.checked,
state_dfwp: (document.getElementById("dot-da-dfwp"))?.checked ? val("dot-da-dfwp-state") : "",
}});
});