/* eslint-disable */ /* © 2026 K2B NETWORK SOLUTIONS LLC. All rights reserved. Proprietary and confidential. Unauthorized copying, distribution, or use of this file, via any medium, is strictly prohibited. Original work product. */ // K2B Network Solutions — Missouri Title Application (TITLE-MO). // Faithful recreation of Missouri DOR Form 108 — Application for Missouri // Title and License. Used by Title Clerks after a deal is funded. const mo$ = (n) => "$" + (n || 0).toLocaleString("en-US", { minimumFractionDigits: 2, maximumFractionDigits: 2 }); // Tiny field atoms styled like a paper DOR form const MOFBox = ({ label, value, set, w = "100%", hot, mono = true, num }) => ( ); const MOCheckBox = ({ label, on, set, inline }) => ( ); // ── Active-deal context for title work ───────────────────────────── // Desking keeps the shared Buyer's Order draft updated (dealType, lender and // the auto-selected titling entity). GMF rule: // LEASE → vehicle is TITLED TO the lessor, ACAR Leasing Ltd. d/b/a // GM Financial Leasing — the customer (lessee) is the registrant. // FINANCE → the customer is the owner; AmeriCredit Financial Services, Inc. // d/b/a GM Financial is recorded as lienholder. // Blank-safe: with no deal on file the demo defaults below stand, and every // field stays hand-editable either way. const moDealCtx = () => { let bo = {}; try { bo = (window.loadJbForm && window.loadJbForm("buyersOrder")) || {}; } catch (e) { bo = {}; } const isLease = /lease/i.test(String(bo.dealType || "")); let ent = (bo.lienholder && bo.lienholder.name) ? bo.lienholder : null; if (!ent) { try { ent = (window.jbLenders && window.jbLenders.lienholderFor) ? window.jbLenders.lienholderFor(bo.lender || "", isLease ? "Lease" : "Retail") : null; } catch (e) { ent = null; } } // The linked DMS deal (when the desk / F&I linked one) — vehicle, VIN and // figures come from it first, then the Buyer's Order draft, else BLANK. let deal = null; try { const id = localStorage.getItem("jb_fw_deal") || (window.jbDeskDeal && window.jbDeskDeal.id) || null; deal = (id && window.DMS && window.DMS.deals) ? (window.DMS.deals().find(x => x.id === id) || null) : null; } catch (e) { deal = null; } let unit = null; try { unit = (deal && deal.stock && window.DMS && window.DMS._unit) ? window.DMS._unit(deal.stock) : null; } catch (e) { unit = null; } return { bo, deal, unit, isLease, ent, hasDeal: !!(bo.dealType || bo.lastName || bo.vin || deal) }; }; const moUp = (s) => String(s || "").toUpperCase(); const moNum = (v) => { const n = parseFloat(String(v ?? "").replace(/[^0-9.\-]/g, "")); return isNaN(n) ? 0 : n; }; // "2026 CHEV TRAVERSE LT AWD" → { year, make, model } const moSplitYmm = (s) => { const p = String(s || "").trim().split(/\s+/).filter(Boolean); if (!p.length) return { year: "", make: "", model: "" }; const year = /^\d{4}$/.test(p[0]) ? p.shift() : ""; const make = p.shift() || ""; return { year, make, model: p.join(" ") }; }; const TitleAppMO = ({ onClose, go }) => { // Active deal (lease/finance + titling entity) — captured once on open. const [D] = React.useState(moDealCtx); const BO = D.bo; const DL = D.deal || {}, U = D.unit || {}; const ymm = moSplitYmm(BO.yrMkMdl || DL.vehicle || (U.yr ? `${U.yr} ${U.mk} ${U.mdl}` : "")); // VIN / vehicle — from the deal context only; BLANK when absent (B-05). // No hard-coded VIN / vehicle / prices / plate ever reach this legal form. const [vin, setVin] = React.useState(() => moUp(BO.vin || DL.vin || U.vin || "")); const [year, setYear] = React.useState(() => String(U.yr || ymm.year || "")); const [make, setMake] = React.useState(() => moUp(U.mk || ymm.make || "")); const [model, setModel] = React.useState(() => moUp(U.mdl || ymm.model || "")); const [body, setBody] = React.useState(() => moUp(BO.body || U.body || "")); const [color, setColor] = React.useState(() => moUp(BO.color || U.color || "")); const [odo, setOdo] = React.useState(() => String(BO.odometer || U.miles || "")); const [odoStatus, setOdoStatus] = React.useState("actual"); // actual / exempt / inexcess const [titleNo, setTitleNo] = React.useState(""); const [prevTitleNo, setPrevTitleNo] = React.useState(""); const [prevState, setPrevState] = React.useState(""); // Owners — on a GMF LEASE the OWNER is the lessor entity (ACAR Leasing Ltd.) // and the customer goes in as lessee/registrant (Owner 2 + note line below). const [o1, setO1] = React.useState(() => D.isLease && D.ent ? { last: moUp(D.ent.name), first: "", mi: "", dob: "", ssn: "", dl: "" } : (BO.lastName || BO.firstName) ? { last: moUp(BO.lastName), first: moUp(BO.firstName), mi: moUp(BO.middle), dob: "", ssn: "", dl: moUp(BO.dlNum) } : (DL.buyer ? (() => { const nm = String(DL.buyer); const [ln, fn] = nm.includes(",") ? nm.split(",").map(x => x.trim()) : [nm.split(" ").slice(-1)[0], nm.split(" ").slice(0, -1).join(" ")]; return { last: moUp(ln), first: moUp(fn), mi: "", dob: "", ssn: "", dl: "" }; })() : { last: "", first: "", mi: "", dob: "", ssn: "", dl: "" })); const [o2, setO2] = React.useState(() => D.isLease && D.ent && (BO.lastName || BO.firstName) ? { last: moUp(BO.lastName), first: moUp(BO.firstName), mi: moUp(BO.middle), dob: "", ssn: "", dl: moUp(BO.dlNum) } : { last: "", first: "", mi: "", dob: "", ssn: "", dl: "" }); const [andOr, setAndOr] = React.useState(() => D.isLease && D.ent ? "NONE" : "AND"); // Lease note — spells out lessee/registrant since the DOR-108 grid only has // owner slots. Editable like every other box. const [leaseNote, setLeaseNote] = React.useState(() => D.isLease && D.ent ? `LEASE — TITLED TO LESSOR; LESSEE/REGISTRANT: ${moUp([BO.firstName, BO.lastName].filter(Boolean).join(" ")) || "(CUSTOMER)"}` : ""); // Address — lessor's titling address on a lease; customer's otherwise. // Customer address: Buyer's Order first, then the deal record; blank otherwise. const custStreet = BO.street || DL.street || "", custCity = BO.city || DL.city || ""; const custState = BO.state || DL.state || "", custZip = BO.zip || DL.zip || DL.postal || ""; const [addr, setAddr] = React.useState(() => D.isLease && D.ent ? moUp(D.ent.address) : moUp(custStreet)); const [city, setCity] = React.useState(() => D.isLease && D.ent ? moUp(D.ent.city) : moUp(custCity)); const [county, setCounty] = React.useState(""); const [state, setState] = React.useState(() => D.isLease && D.ent ? moUp(D.ent.state) : moUp(custState || (custStreet ? "MO" : ""))); const [zip, setZip] = React.useState(() => D.isLease && D.ent ? moUp(D.ent.zip) : moUp(custZip)); // Lien — FINANCE: lienholder is the retail entity (AmeriCredit d/b/a GM // Financial). LEASE: no separate lien; the lessor above holds title. // Blank (no lien) when nothing on the deal says who the lender is. const finEnt = !D.isLease ? D.ent : null; const lenderName = BO.lender || DL.lender || ""; const [lienOn, setLienOn] = React.useState(() => !D.isLease && !!(finEnt || lenderName)); const [lienHolder, setLienHolder] = React.useState(() => D.isLease && D.ent ? "" : finEnt ? moUp(finEnt.name) : moUp(lenderName)); const [lienAddr, setLienAddr] = React.useState(() => D.isLease && D.ent ? "" : finEnt ? moUp(finEnt.address) : ""); const [lienCity, setLienCity] = React.useState(() => D.isLease && D.ent ? "" : finEnt ? moUp([[finEnt.city, finEnt.state].filter(Boolean).join(", "), finEnt.zip].filter(Boolean).join(" ")) : ""); const [lienDate, setLienDate] = React.useState(() => new Date().toLocaleDateString("en-US")); // Purchase / sales tax — from the Buyer's Order / deal; 0 when absent. const [purchDate, setPurchDate] = React.useState(() => new Date().toLocaleDateString("en-US")); const [purchPrice, setPurchPrice] = React.useState(() => moNum(BO.salePrice) || +DL.salePrice || 0); const [tradeAllow, setTradeAllow] = React.useState(() => moNum(BO.tradeAllow) || +DL.tradeAllow || 0); const [rebate, setRebate] = React.useState(() => moNum(BO.rebate) || +DL.rebate || 0); // MO state rate (RSMo § 144.020) — the local rate depends on the buyer's // address and is entered per deal. const [stateRate, setStateRate] = React.useState(4.225); const [localRate, setLocalRate] = React.useState(0); // Plate — nothing assumed; the title clerk picks the action and keys the plate. const [plateAction, setPlateAction] = React.useState("new"); // new / transfer / personalized const [plate, setPlate] = React.useState(""); // Tax/Fee derived (per MO DOR § 144.069) const taxableSale = Math.max(0, purchPrice - tradeAllow - rebate); const stateTax = taxableSale * (stateRate / 100); const localTax = taxableSale * (localRate / 100); const titleFee = 8.50; const processFee = 6.00; const regFee = 51.25; const total = stateTax + localTax + titleFee + processFee + regFee; return (
{}} onMax={() => {}} />
{/* top action strip */}
Form...: DOR-108 (Rev 02-2024) Deal..: {DL.id || BO.orderNum || "—"} Dealer.: {"D" + ((window.K2BStore && window.K2BStore.pageId()) || "") + " — " + K2BPrint.party.print()}
● MO DOR ELT ready
{/* The paper form */}
{/* Form heading — DOR style */}
MISSOURI DEPARTMENT
OF REVENUE
APPLICATION FOR MISSOURI TITLE AND LICENSE
Form 108 (Revised 02-2024) — Title Office Use
OFFICE USE ONLY
Stamp / Cert. No.:
{/* Section 1 — Vehicle */}
ODOMETER STATUS
setOdoStatus("actual")} />
setOdoStatus("exempt")} /> setOdoStatus("notactual")} />
setPrevState(moUp(v).slice(0, 2))} />
{/* Section 2 — Owner(s) */} {D.isLease && D.ent && (
)}
setO1(s => ({ ...s, last: v }))} hot /> setO1(s => ({ ...s, first: v }))} hot /> setO1(s => ({ ...s, mi: v }))} /> setO1(s => ({ ...s, dob: v }))} /> setO1(s => ({ ...s, dl: v }))} /> setO1(s => ({ ...s, ssn: v }))} />
JOINT OWNERSHIP: setAndOr("AND")} inline /> setAndOr("OR")} inline /> setAndOr("NONE")} inline />
setO2(s => ({ ...s, last: v }))} /> setO2(s => ({ ...s, first: v }))} /> setO2(s => ({ ...s, mi: v }))} /> setO2(s => ({ ...s, dob: v }))} /> setO2(s => ({ ...s, dl: v }))} /> setO2(s => ({ ...s, ssn: v }))} />
{/* Section 3 — Address */}
{/* Section 4 — Lienholder */}
setLienOn(!v)} inline />
{/* Section 5 — Purchase + sales tax */}
setPurchPrice(parseFloat(v) || 0)} num /> setTradeAllow(parseFloat(v) || 0)} num /> setRebate(parseFloat(v) || 0)} num />
setStateRate(parseFloat(v) || 0)} num /> setLocalRate(parseFloat(v) || 0)} num />
TOTAL DUE
{mo$(total)}
{/* Section 6 — Plate */}
setPlateAction("new")} /> setPlateAction("transfer")} /> setPlateAction("personalized")} />
{/* Section 7 — Signatures */}
I certify under penalty of perjury, pursuant to RSMo § 575.040, that the information provided herein is true and correct. I authorize the Missouri Department of Revenue to title and register the vehicle described above.
{/* totals strip */}
{[ ["Taxable Net", taxableSale], ["State Tax", stateTax], ["Local Tax", localTax], ["Fees", titleFee + processFee + regFee], ["TOTAL DUE DOR", total], ].map(([l, v], i) => (
{l}
{mo$(v)}
))}
{/* F-keys */}
ESC-Close alert("MO Title Application (TITLEMO)\n\nESC Close\nF2 Pick vehicle from inventory\nF3 Pull buyer info from credit app\nF4 Lookup VIN against the MO DOR database\nF5 Recompute Missouri use tax + fees\nF6 Print DOR-108 Application for Title\nF7 Print Power of Attorney (DOR-4054)\nF8 Transmit ELT (Electronic Lien & Title) to DOR\nF9 Print mailing envelope")}>F1-Help go && go("inventory")}>F2-Pick Vehicle go && go("creditapp")}>F3-Buyer Info window.k2bToast && window.k2bToast("VIN looked up — MO DOR confirms no liens recorded.", "ok", 2800)}>F4-Lookup VIN window.k2bToast && window.k2bToast("Missouri state tax recomputed @ 4.225% + local @ 3.000% = 7.225%. Title fee $8.50, processing $6.00.", "ok", 3400)}>F5-Recompute Tax { const d = (window.loadJbForm && window.loadJbForm("buyersOrder")) || {}; const html = `${window.dealerHeadHtml()}
MISSOURI DOR-108
Application for Missouri Title and License

Owner${D.isLease && D.ent ? " (Lessor / Titled Owner)" : ""}

Name (Last, First, MI)
${[o1.last, o1.first, o1.mi].filter(Boolean).join(", ")}
Driver License #
${o1.dl || ""}
Street Address
${addr || d.street || ""}
City / State / Zip
${[city || d.city, state || d.state || "MO", zip || d.zip].filter(Boolean).join(", ")}
${D.isLease && D.ent ? `
Lease
${leaseNote}
Lessee / Registrant
${[o2.last, o2.first, o2.mi].filter(Boolean).join(", ")}
` : ""}

Vehicle

VIN
${d.vin || ""}
Year / Make / Model
${d.yrMkMdl || ""}
Body Style
${d.body || ""}
Color
${d.color || ""}
Odometer Reading
${d.odometer || ""}
Date of Purchase
${new Date().toLocaleDateString()}

Lien-holder

${lienOn ? `
Lienholder Name
${lienHolder || d.lender || "GM FINANCIAL"}
Date of Lien
${lienDate || new Date().toLocaleDateString()}
Lienholder Address
${lienAddr || ""}
City / State / Zip
${lienCity || ""}
` : `

No lien recorded${D.isLease && D.ent ? " — vehicle is titled to the lessor shown in the Owner section; the lessee is the registrant." : "."}

`}

I (we) certify, under penalties of perjury, that the information contained on this form is, to the best of my (our) knowledge, true and accurate. I (we) further certify that the vehicle described above is being titled in Missouri.

Owner Signature · Date
Co-Owner Signature · Date
Dealer Signature — ${K2BPrint.esc(K2BPrint.party.legal())}
Dealer License #${K2BPrint.esc(K2BPrint.party.licenseNo())}${K2BPrint.gm() && K2BPrint.brand().gm.dealerCode ? " · Dealer Code " + K2BPrint.esc(K2BPrint.brand().gm.dealerCode) : ""}
`; window.k2bPrint && window.k2bPrint(html, { title: "DOR-108 Application for Title" }); }}>🖨 F6-Print DOR-108
{ const d = (window.loadJbForm && window.loadJbForm("buyersOrder")) || {}; const e = (s) => String(s || "").replace(/&/g, "&").replace(//g, ">"); const html = `${window.dealerHeadHtml()}
DOR-4054 — POWER OF ATTORNEY
To Apply for / Receive Title for a Motor Vehicle

I, ${e([d.firstName, d.lastName].filter(Boolean).join(" "))}, having lawful purchasing authority, do hereby make, constitute and appoint ${e(K2BPrint.party.legal())}, ${e(K2BPrint.party.addr1())}, ${e(K2BPrint.party.addr2())}, my true and lawful agent and attorney-in-fact for me and in my name, place, and stead, to act in any matter relating to the application for, and receipt of, a Missouri Certificate of Title for the following motor vehicle:

VIN
${e(d.vin)}
Year / Make / Model
${e(d.yrMkMdl)}
Owner Signature · Date
Notary Public · Commission Expiration
`; window.k2bPrint && window.k2bPrint(html, { title: "DOR-4054 Power of Attorney" }); }}>🖨 F7-Print POA
window.k2bToast && window.k2bToast("ELT transmitted to MO DOR — confirmation MO-ELT-26-44912. Title in process.", "ok", 3400)}>F8-Transmit ELT { const html = `
MAILING ENVELOPE
From:
${K2BPrint.esc(K2BPrint.party.print())}
${K2BPrint.esc(K2BPrint.party.addr1())}
${K2BPrint.esc(K2BPrint.party.addr2())}
To:
Missouri Department of Revenue
Motor Vehicle Bureau
301 W High Street, Room 370
Jefferson City, MO 65101
`; window.k2bPrint && window.k2bPrint(html, { title: "Title Mailing Envelope" }); }}>🖨 F9-Print Envelope
); }; const MOSectionHead = ({ n, title, inline }) => (
{n}. {title}
); Object.assign(window, { TitleAppMO });