feat(794-2b): 로직 줄 칸 「개정」 자동 채움 + 잔토처리(인력) 단독 GC001194 · M01 기본정보 · 시트 근거 줄에 개정 표시
- 빌더 scripts/build_로직_개정.py — 원문 절 머리 「('08, '20, 25년 보완)」 연도 목록 · 산림 [2026] 제정 · 연도 없는 머리는 윗절 · 글 꼴 그대로 출처 뒤에 끼움 · 채움 1,260 / 1,516(빈칸 256 = 머리에 연도 없음 246 · 못 찾음 10)
- 빌더 scripts/build_로직_잔토처리.py — 건설 공통 3-2-1 비고 ㎥당 보통인부 0.2인 · 호표 QC000172 「잔토처리 보통인부」(GC000083 옵션과 같은 표) · 키 GC001194
- _틀.md 7 장 열 차례 · 칸 설명 · _갱신절차.md 로직 빌더 줄
- M01 셈 지문 1,515 전후 같음 · fixture 다시 뜸(새 줄 하나 더함 1,516)
- M01 화면 읽기만 — 기본정보 「개정」 칸 · 시트 근거 줄 「개정 '08 · '20 · '25」
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
/* =============================================================================
|
||||
* M01_MasterData/logic/M01_Logic_Sheet_Model.ts
|
||||
* M01 로직 줄 식 시트 꼴(PLAN 794-1 · 요구 650~652 · 요구서_652 1 장 6) — M02 단가산출 시트와 같은 꼴
|
||||
* 「이름 | 식 | 값 | 비목」 · 줄 갈래 = 근거(출처 · 비고 · 끝수) · 옵션(입력) · 계산(중간) · 자원(호표) ·
|
||||
* 「이름 | 식 | 값 | 비목」 · 줄 갈래 = 근거(출처 · 개정 · 비고 · 끝수) · 옵션(입력) · 계산(중간) · 자원(호표) ·
|
||||
* 율(덧줄) · 단계 · 소계 · 합계 · 식 글 = 서버 이름 꼴(`/logic/sheet` · 없으면 엔진 식 「*」 → 「×」)
|
||||
* 값 = 시험 계산 답(줄 금액 = 호표 → 덧줄 차례 · 중간 값 · 비목 소계)
|
||||
* 고침 = 줄 사본 식 칸 하나(`setLabFormula`) — 저장은 화면이 기존 M01 [저장] 길로
|
||||
@@ -82,6 +82,10 @@ export function cutText(rule: unknown): string {
|
||||
const valueOf = (v: unknown): number | string | null =>
|
||||
typeof v === "number" || typeof v === "string" ? v : null;
|
||||
|
||||
/** 원문 절 머리 개정 연도 글 — [2008, 2020, 2025] → 「'08 · '20 · '25」(794-2b · 없으면 빈 글) */
|
||||
export const revisionText = (row: LogicRow): string =>
|
||||
(row.개정 ?? []).map((y) => `'${String(y).slice(-2)}`).join(" · ");
|
||||
|
||||
/** 시트 줄 — 근거 · 옵션 · 계산 · 자원 · 율 · 단계 · 소계 · 합계 */
|
||||
export function labItems(o: {
|
||||
row: LogicRow;
|
||||
@@ -96,6 +100,7 @@ export function labItems(o: {
|
||||
const item = (x: Partial<LabItem> & { kind: LabKind; 이름: string }): void =>
|
||||
void out.push({ 식: "", 값: null, 비목: "", changed: false, ...x });
|
||||
if (row.출처) item({ kind: "근거", 이름: row.원문번호 || "", 식: row.출처 });
|
||||
if (row.개정?.length) item({ kind: "근거", 이름: "개정", 식: revisionText(row) });
|
||||
for (const line of (row.비고 ?? "").split(/\r?\n/).filter((x) => x.trim()))
|
||||
item({ kind: "근거", 이름: "", 식: line.trim() });
|
||||
for (const input of row.입력 ?? [])
|
||||
|
||||
Reference in New Issue
Block a user