refactor(master): 옛 방식 재료 줄 129 개를 고르기 조건+대표 줄로 바꿈 — 금액 그대로 · 남은 178 줄은 까닭별 정리

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JgUhN55Z3BCYhUJTjwTNfj
This commit is contained in:
2026-09-21 20:05:31 +09:00
co-authored by Claude Opus 5
parent ce0529ff2c
commit 4e4c44bcb1
19 changed files with 208 additions and 136 deletions
@@ -0,0 +1,45 @@
# 남은 옛 방식 재료 줄 — 고르기 조건으로 못 바꾼 것 (2026-09-21)
옛 방식 = 로직 호표의 「요소」 가 품셈재료(`MP……`)·자재품목(`MT……`) 줄을 바로 가리키는 것.
이번에 **307줄 → 178줄**(129줄을 고르기 조건으로 바꿈 · 금액 바뀐 로직 0).
## 바꾼 것 129줄 (참고)
| 갈래 | 줄 | 바꾼 모양 |
|---|---|---|
| `MT……` 를 바로 가리킴(17 재료) | 112 | `{구분, 상세구분, 규격, 대표=그 MT 줄}` |
| 연결이 `MT……` 키 하나인 품셈재료(9 재료) | 17 | 같음(연결이 가리키던 줄이 대표) |
대표 줄이 옛 요소와 같은 줄이라 **시험 계산 금액이 그대로** — 화면에서 같은 구분·상세구분 안 후보를 볼 수 있게만 열림.
## 못 바꾼 것 178줄 — 까닭별
### ① 자재품목에 짝이 없는 품셈재료 — 139줄 · 재료 111 · 로직 55 (가장 큼)
품셈재료 줄에 「연결」 도 「고르기」 도 없음 = 자재품목(조달청·물가지)에 그 물건이 없음.
바꿀 근거(구분·상세구분)가 없어 조건을 못 만듦 — **재료를 먼저 채워야 바뀜**(목록 `ref/_없는_재료.md` 111줄과 같은 것들).
많이 쓰이는 것: `MP000253` 코크스(4) · `MP000258` Grease(4) · `MP000259` Machine oil(3) · `MP000290` Nozzle(3) · `MP000293` 세유(3) · `MP000359` 중유(3) · `MP000301` 노즐(3) · `MP000303` 그라인더돌 12"ø(3) — 대부분 건설품셈 13장 플랜트설비의 소모품.
### ② 지역·계약종별을 계산 때 푸는 연결 — 17줄 · 재료 3
- `MP000004` 모래 8줄(GC000211 · GC000677 · GC000685 · GC000933 · GC000934 · GC000938 · GF000176 · GF000183)
- `MP000358` 전력 8줄(GC000893897 · GC000933 · GC000934 · GC000938)
- `MP000006` 자갈 1줄(GF000183)
연결이 `{이름, 지역=입력}`·`{이름, 계약종별=입력}` 이라 **줄마다 값이 입력(자재지역·전력 계약종별)에 따라 달라짐** — 대표 줄 하나로 굳히면 지역이 바뀔 때 틀린 값이 나옴.
모래·자갈은 산림 12장에서 쓴 방식(고르기 조건 + 단위중량 환산)을 건설품셈 줄에도 그대로 옮기면 되지만, 원문 단위가 ㎥ 와 ㎏ 로 갈려 **사용자 확정이 한 번 더 필요**해 이번엔 손대지 않음.
### ③ 이름에 `{변수}` 가 든 참조 — 22줄
- `MT:{철선}` 5 · `MT:{결속선}` 5 · `MT:{각재}` 3 · `MT:{못}` 2 · `MT:{합판}` 2 · `MT:{박리제}` 1 · `MT:{용접봉}` 1 (19줄 · GC000031 · GC000037 · GC000062 · GC000068 · GC000127 · GC000207 · GC000211 · GC000224 · GF000159 · GF000160 · GF000187 · GF000196 · GF000207)
- `MP:VR관 ∅{관경}㎜` · `MP:고무링 ∅{관경}㎜` · `MP:커플링밴드 ∅{관경}㎜` (3줄 · GF000173 · GF000176)
설계 입력(규격·관경)이 이름에 들어가는 줄 — 고르기 조건의 `규격` 칸에 `{관경}` 을 그대로 둘 수 있으나(엔진은 `{…}` 칸을 검사에서 뺌), **어느 구분·상세구분으로 좁힐지는 품목마다 달라** 표본 확인 뒤에 함.
## 다음
1. ① 은 `ref/_없는_재료.md` 재료 채우기가 먼저 — 채워지면 `build_품셈재료_고르기.py``build_로직_재료_고르기.py` 순으로 다시 돌리면 자동으로 바뀜.
2. ② 는 모래·자갈 단위(㎥ ↔ ㎏) 확정 뒤 · 전력은 계약종별 입력을 고르기 조건으로 옮길지 확정 뒤.
3. ③ 은 품목 7가지 표본 확인 뒤 한 번에.
4. 품셈재료 테이블 삭제는 셋이 다 끝난 뒤(아직 안 함 — 지금도 178줄이 씀).