${co.logo?``:''}
${esc(co.name)}
Work Order Record
Work Order
${esc(w.woNum)}
${w.status.replace('_',' ')}
Work Order Details
Unit #
${esc(w.assetNum)}
Equipment Type
${esc(w.equipType||asset?.equipType||'—')}
Repair Type
${esc(w.repType||'—')}
Date Created
${fmtD(w.createdAt)}
Assigned Tech
${esc(techName(w.techId))}
Station
${stationCode(w.stationId)}
HR Meter In
${esc(w.hrMeterIn||'—')}
HR Meter Out
${esc(w.hrMeterOut||'—')}
Total Hours Logged
${totalHrs.toFixed(1)} hrs
Issue Description
${esc(w.issue||'—')}
Repair Log & Notes (${(w.notes||[]).length} entries)
${(w.notes||[]).length?(w.notes||[]).map(n=>`
${esc(n.by||'Tech')}${fmtDT(n.date)}${n.hrs?' · '+n.hrs+' hrs':''}${n.hr?' · HR: '+n.hr:''}
${esc(n.text)}
`).join(''):'
No notes recorded
'}
${partsReqs.length?`
Parts Used
${partsReqs.map(r=>r.parts.map(p=>`
${esc(p.name)}${p.num?' — Part# '+p.num:''} × ${p.qty||1}${p.unitCost?' — $'+parseFloat(p.unitCost).toFixed(2)+'/ea':''}
`).join('')).join('')} ${partsReqs[0]?.totalCost?`
Total Parts Cost: $${parseFloat(partsReqs[0].totalCost).toFixed(2)}
`:''}
`:''}
Technician Signature
Manager / Supervisor Signature
Printed ${new Date().toLocaleString('en-CA')} · ${esc(co.name)} · ${stationCode(w.stationId)} · DaVinci Plus Fleet Management
${co.logo?``:''}
${esc(co.name)}
PMI Inspection Record
Inspection Sheet
${esc(asset?.assetNum||'—')}
${pmiTypeLabel(p.pmiType||'B')} Inspection
Unit #
${esc(p.meta?.unit||asset?.assetNum||'—')}
Make / Model
${esc([asset?.year,asset?.make,asset?.model].filter(Boolean).join(' '))||'—'}
Serial Number
${esc(asset?.serialNum||'—')}
VIN
${esc(asset?.vin||'—')}
Inspection Date
${esc(p.meta?.date||fmtD(p.savedAt))}
Hour Meter
${esc(p.meta?.hr||asset?.hourMeter||'—')}
Mechanic
${esc(p.mechanic||techName(p.techId))}
Station
${stationCode(p.stationId)}
${PMI_SECS.map((sec,si)=>{ const extras=customItems[si]||[]; const allItems=[...sec.items,...extras]; const secStatuses=allItems.map((_,ii)=>statuses[si+'_'+ii]); const repCount=secStatuses.filter(v=>v==='repair').length; return`
${esc(sec.t)}${repCount>0?'⚠ '+repCount+' REPAIR':'✓ OK'}
${allItems.map((item,ii)=>{const k=si+'_'+ii;const v=statuses[k]||'';const note=notesMap[k]||''; return`
${esc(item.n)}
${esc(item.l)}
${note?`
${esc(note)}
`:''}
${statusIcon[v]||'—'}
`}).join('')}
`}).join('')}
Inspection Summary
${[['Passed','ok','#059669','#ecfdf5'],['Needs Repair','repair','#dc2626','#fef2f2'],['Adjust','adj','#d97706','#fffbeb'],['N/A','na','#9ca3af','#f3f4f6']].map(([lbl,key,color,bg])=>{ const cnt=Object.values(statuses).filter(v=>v===key).length; return`
${cnt}
${lbl}
`}).join('')}
${p.repairs?.length?`
Items Requiring Repair: ${p.repairs.map(r=>esc(r)).join(' · ')}
`:''} ${p.notes?`
Notes: ${esc(p.notes)}
`:''}
Mechanic Signature                    Date
Supervisor / Manager Signature          Date
Next PMI Due Date                          
Printed ${new Date().toLocaleString('en-CA')} · ${esc(co.name)} · ${stationCode(p.stationId)} · DaVinci Plus Fleet Management