wip(802-4b-3): 중지 — 펼친 단가산출 블록 격자 전체 폭(정의 영역 전체 폭 · 기호 줄 오른쪽 칸 자리) · 금액 줄 비목 합 참조 값(moneyScope = 앞 줄 누계) · 빨강 헬퍼 틀(시험 · ORCA 안 돌림)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-11-07 20:30:13 +09:00
co-authored by Claude Opus 5.5
parent c80b5ae9d0
commit cbd02c09e9
5 changed files with 115 additions and 7 deletions
@@ -137,3 +137,16 @@ export function takenOf(n: Node, vals: Values): 0 | 1 | 2 {
const t = evalNode(n[2][0], vals);
return t === undefined ? 0 : t ? 1 : 2;
}
/** 금액 줄 i 가 부르는 비목 합(노무비 · 재료비 · 경비 = 앞 줄 누계 · 합밖 · 제외 단계 줄 뺌)
* — 계산기 `money` 의 running 과 같은 값(셈 답 `줄` 의 비목에서 다시 모음 · 802-4b-3) */
export function moneyScope(rows: unknown, i: number): Values {
const acc: Record<string, number> = { 노무비: 0, 재료비: 0, 경비: 0 };
((rows ?? []) as { 비목?: Record<string, unknown>; 합밖?: unknown }[])
.slice(0, i)
.forEach((r) => {
if (r.합밖) return;
for (const k of Object.keys(acc)) if (isNum(r.비목?.[k])) acc[k] += r.비목![k] as number;
});
return acc;
}