feat(B09): 산출기초 — 줄에 달린 근거를 한 장으로 접음
별표2 (5)(가) 열셋째. 근거는 줄마다 이미 있었고 묶는 자리만 없었음. 원가계산에 「산출기초」 탭으로 세움. 넷으로 접음 — ① 어느 판으로 계산했나(데이터 기준일·지문) ② 무엇을 골랐나(고른 값만) ③ 공종마다 무엇을 근거로 했나(줄 문구 그대로) ④ 못 채운 자리(0 으로 안 때운 자리). - 판 목록은 장부(_manifest.json)를 그대로 읽음 — 목록을 따로 적으면 한쪽만 고쳐짐. - ⚠ 여기서 값을 다시 계산하지 않음 — 금액 칸이 아예 없음(두 벌 방지, 시험으로 못 박음). ⇒ 「설계서 구성」의 산출기초가 반쪽 → 있음. 법이 정한 13 중 9 가 서고, 우리가 더 낼 것은 공사설명서 하나(서식·설계하중 표기는 사용자에게 받아야 함). 곁들여: 자재총괄의 「미분류」를 「미정(발주기관 결정)」으로 고침 — 발주기관이 정할 자리인데 우리가 못 만든 것처럼 읽히던 문구(V-14). 값·판정은 그대로. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -60,13 +60,20 @@ def test_설계자_몫과_우리_몫을_가른다() -> None:
|
||||
assert item["status"] == STATUS_MISSING
|
||||
|
||||
|
||||
def test_반쪽은_반쪽이라_적는다() -> None:
|
||||
"""⚠ 2026-09-09 밤 — 중기경비계산서를 세우면서 **반쪽이 하나 줄었다**(기종마다 한 장).
|
||||
def test_반쪽이_남지_않았다() -> None:
|
||||
"""⚠ 2026-09-09 밤 — 중기경비계산서·산출기초를 차례로 세우며 **반쪽이 다 없어졌다.**
|
||||
|
||||
남은 반쪽은 산출기초 하나 — 근거 문구는 줄마다 있으나 한 장으로 묶는 자리가 없다.
|
||||
이제 우리 몫 가운데 「없음」은 공사설명서 하나이고, 그것은 **서식·설계하중 표기를
|
||||
사용자에게 받아야** 서는 자리다.
|
||||
"""
|
||||
partial = {item["name"] for item in DESIGN_DOC_ITEMS if item["status"] == STATUS_PARTIAL}
|
||||
assert partial == {"산출기초"}
|
||||
assert partial == set()
|
||||
ours_missing = {
|
||||
item["name"]
|
||||
for item in DESIGN_DOC_ITEMS
|
||||
if item["owner"] == OWNER_PROGRAM and item["status"] != STATUS_READY
|
||||
}
|
||||
assert ours_missing == {"공사설명서"}
|
||||
|
||||
|
||||
def test_서는_것은_어디서_나오는지_적혀_있다() -> None:
|
||||
@@ -84,7 +91,7 @@ def test_못_내는_것에는_무엇이_필요한지_적혀_있다() -> None:
|
||||
|
||||
def test_요약이_셈과_맞는다() -> None:
|
||||
data = design_doc_index()
|
||||
assert data["counts"][STATUS_READY] == 8
|
||||
assert data["counts"][STATUS_READY] == 9
|
||||
assert sum(data["counts"].values()) == len(DESIGN_DOC_ITEMS)
|
||||
ours_missing = [
|
||||
item["name"]
|
||||
|
||||
Reference in New Issue
Block a user