capture client signature before filing signed DOT forms
Forms that legally require the client's signature were not being captured correctly: - MCS-150 handler created a perjury e-sign record but then submitted to FMCSA anyway, before the client signed. Now it gates submission: request the signature, hold, and only file when handle_esign_completed re-dispatches with client_approved=True. - MCS-150 e-sign links were signed with JWT_SECRET/ADMIN_JWT_SECRET, but the portal verifies with CUSTOMER_JWT_SECRET, so every link returned "Invalid portal link." New shared dot_esign helper signs with CUSTOMER_JWT_SECRET. - carrier-closeout (final MCS-150 Out of Business) and entity-dissolution (Articles of Dissolution + no-lawsuits/liens/judgments attestation) captured no signature at all. Both now request a signed attestation before the workflow proceeds. - mc-authority / emergency-temporary-authority now get a correctly labeled OP-1 applicant certification instead of an "MCS-150" record. Also fixes a latent dispatcher bug: order["service_slug"] was never set, so handlers sharing a class fell back to their default SERVICE_SLUG. This made entity-dissolution run the carrier-closeout branch and mc-authority/etc. look like mcs150-update. Now the resolved slug is injected into order_data. Portal e-sign page now renders the document-specific certification text from metadata.perjury_text (so the dissolution no-liabilities attestation and OP-1 cert are actually shown to the signer), not just a generic perjury line. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
parent
869bcac287
commit
02112facf5
5 changed files with 366 additions and 84 deletions
|
|
@ -101,6 +101,8 @@ body{font-family:'Inter',system-ui,sans-serif;color:#1f2937;background:#f1f5f9;l
|
|||
<div class="card">
|
||||
<h2>Step 3 — Confirm & Submit</h2>
|
||||
|
||||
<div id="attestation-box" class="perjury hidden" style="font-style:normal;color:#1f2937;background:#eff6ff;border-color:#bfdbfe"></div>
|
||||
|
||||
<div id="perjury-box" class="perjury hidden">
|
||||
I declare under penalty of perjury under the laws of the United States of America that the foregoing is true and correct. Executed on <span id="perjury-date"></span>.
|
||||
</div>
|
||||
|
|
@ -174,6 +176,16 @@ body{font-family:'Inter',system-ui,sans-serif;color:#1f2937;background:#f1f5f9;l
|
|||
document.getElementById("entity-confirm").textContent = data.entity_name;
|
||||
document.getElementById("perjury-date").textContent = new Date().toLocaleDateString("en-US", {year:"numeric",month:"long",day:"numeric"});
|
||||
|
||||
// Show the specific certification/attestation language for this document
|
||||
// (e.g. the dissolution "no outstanding lawsuits, liens, or judgments"
|
||||
// attestation, or the OP-1 / MCS-150 certification).
|
||||
var attestText = data.metadata && data.metadata.perjury_text;
|
||||
if (attestText) {
|
||||
var ab = document.getElementById("attestation-box");
|
||||
ab.textContent = attestText;
|
||||
ab.classList.remove("hidden");
|
||||
}
|
||||
|
||||
if (data.requires_perjury) {
|
||||
document.getElementById("perjury-box").classList.remove("hidden");
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue