diff --git a/ui/src/components/OperationPanel.jsx b/ui/src/components/OperationPanel.jsx index fcdb223..917bd5e 100644 --- a/ui/src/components/OperationPanel.jsx +++ b/ui/src/components/OperationPanel.jsx @@ -453,6 +453,29 @@ function ScaleLedger({ currentTotals, scaleInputs, setScaleInputs, scalePlug, se + {/* What cannot move comes first: it is the constraint the rest is + worked out against. Then the walk, which sums to Adjustable, and + the two together make the selected total. */} + {exclLines.map(seg => ( + + + {seg.name} + + final + + + {measures.map(m => ( + + {m.key === 'price' ? fmtNum(priceOf(seg), m.dp) : fmtNum(seg[m.key], m.dp)} + + ))} + + ))} + + {exclLines.length > 0 && ( + {rule}{measures.map(m =>
)} + )} + {/* the walk from baseline to current, by initiative */} {lines.map(e => ( @@ -480,23 +503,6 @@ function ScaleLedger({ currentTotals, scaleInputs, setScaleInputs, scalePlug, se ))} - {/* Rows the pivot shows but operations cannot write. Listed so the - panel's figures reconcile with what the grid displays. */} - {exclLines.map(seg => ( - - - {seg.name} - - final - - - {measures.map(m => ( - - {m.key === 'price' ? fmtNum(priceOf(seg), m.dp) : fmtNum(seg[m.key], m.dp)} - - ))} - - ))} {hasExcl && (