wip(802-4b-3): 중지 — 펼친 단가산출 블록 격자 전체 폭(정의 영역 전체 폭 · 기호 줄 오른쪽 칸 자리) · 금액 줄 비목 합 참조 값(moneyScope = 앞 줄 누계) · 빨강 헬퍼 틀(시험 · ORCA 안 돌림)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user