// inventory-ledger.js — Edit Usage Record modal logic async function openUsageEdit(transactionId) { const modal = new bootstrap.Modal(document.getElementById('editUsageModal')); const loading = document.getElementById('editUsageLoading'); const form = document.getElementById('editUsageForm'); const saveBtn = document.getElementById('euSaveBtn'); loading.classList.remove('d-none'); form.classList.add('d-none'); saveBtn.disabled = true; modal.show(); try { const resp = await fetch(`/Inventory/GetUsageForEdit?id=${transactionId}`); if (!resp.ok) throw new Error('Failed to load usage record.'); const data = await resp.json(); document.getElementById('euTxnId').value = data.transactionId; document.getElementById('euItemName').textContent = data.itemName || '—'; document.getElementById('euQuantity').value = data.quantity != null ? parseFloat(data.quantity).toFixed(4) : ''; document.getElementById('euDate').value = data.transactionDate; document.getElementById('euNotes').value = data.notes || ''; const jobSel = document.getElementById('euJobId'); jobSel.innerHTML = ''; (data.jobs || []).forEach(j => { const opt = document.createElement('option'); opt.value = j.id; opt.textContent = `${j.jobNumber} — ${j.customerName}`; if (j.id === data.jobId) opt.selected = true; jobSel.appendChild(opt); }); loading.classList.add('d-none'); form.classList.remove('d-none'); saveBtn.disabled = false; } catch (e) { loading.innerHTML = `