fix(M01): 자재표에 없는 품목 34건 — 재료 줄 검색어 비움(40줄) · 빈 검색어 = 후보 없음 · 결정 목록 절(PLAN 29-3)
- 로직 14 파일 재료 줄 40 검색어를 빈 글로(억지 연결 뗌) · 그 줄만 고침(다른 줄 · 모양 그대로)
- GC000432 메탈리밍쉘 {규격} 은 그대로 — BX 는 품목 있음 · NX 는 이미 후보 없음
- 엔진: 빈 검색어 = 자재표에 없는 품목 — candidates 빈 목록 · 계산 단가 없음 + 까닭 · 고름은 그대로 · 검사 틀림 안 셈(master_pick · master_material) · _틀.md 한 줄
- 결정 목록 맨 아래 「자재표에 없는 품목 — 사용자 결정」 34줄
- 시험 한 건 더함(test_masterdata_check)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BU9gbNE3aWFUvE61pS2WGt
This commit is contained in:
@@ -143,7 +143,10 @@ def candidates(
|
||||
"""고르기 조건 안 자재품목 키 — 구분 · 상세구분 · 이름 · 규격 낱말이 모두 든 줄 · 파일 차례대로.
|
||||
`unit` 을 주면 그 단위(호표 줄 단위)와 같은 줄만 — 단위가 다르면 다른 물건.
|
||||
입력 `자재지역` 이 있으면 이름에 그 지역이 든 줄만(그런 줄이 없으면 조건 안 전부).
|
||||
조건에 `검색어` 가 있으면 기본 검색어 찾기(`master_pick`)."""
|
||||
조건에 `검색어` 가 있으면 기본 검색어 찾기(`master_pick`) ·
|
||||
빈 검색어 = 자재표에 없는 품목(후보 없음)."""
|
||||
if mp.empty_term(cond):
|
||||
return []
|
||||
if cond.get("검색어"):
|
||||
return mp.search(master, cond, env, unit)
|
||||
want = [plain_spec(w) for w in str(cond.get("규격") or "").split()]
|
||||
@@ -180,7 +183,7 @@ def pick(master: mf.Master, cond: dict, env: dict, unit: str | None = None) -> s
|
||||
def check_unit(master: mf.Master, where: str, cond: dict, unit: str | None) -> list[str]:
|
||||
"""단위 경고 — 호표 줄·품셈재료 줄 단위와 맞는 후보가 없거나 대표 줄 단위가 다름.
|
||||
틀린 데이터가 아니라 좁혀야 할 조건이라 `check_pick` 과 따로 봄(`check_master 단위`)."""
|
||||
if cond.get("검색어"):
|
||||
if "검색어" in cond: # 빈 검색어(자재표에 없는 품목)도 이 길 — 구분 안 후보로 경고하지 않음
|
||||
return mp.check_warn(master, where, cond, unit)
|
||||
cond = static(cond)
|
||||
rows = master.index.get(MARKET, {})
|
||||
|
||||
Reference in New Issue
Block a user