fix(B09): 관급 자재를 「사급」이라 적던 문구 갈라 냄

메인 창이 인계를 실제로 먹여 잡음 — 물구멍·야면석이 `owner_supplied` 인데
「사급 자재 단가 미확보」로 뜨고 있었음. `unknown` 만 가르고 나머지를 한 줄로
떨어뜨린 탓

- 관급 — 「관급 자재 단가 미확보 — 나라장터 목록에 이 품목이 없습니다.
  관급자재대(총원가 밖 별도 표기)로 갑니다」
- 사급 — 종전 문구(물가지 미결 No.18, 6번 슬롯 수동 입력 대기)
- `missing` 에 `supply_type` 을 실어 화면이 갈래로 묶을 수 있게 함
- 갈래마다 **가는 자리도 원천도 다름** — 관급은 총원가 밖·나라장터,
  사급은 도급 재료비·물가지

검증: pytest 206 통과(신규 1)

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-09-08 05:15:35 +09:00
co-authored by Claude Opus 5
parent e250d2f716
commit 47fa317b26
@@ -43,6 +43,9 @@ _ZERO = Decimal(0)
#: **관급자재대에도, 도급 재료비에도 넣지 않는다** — 어느 쪽에 넣어도 총액이 틀린다.
SUPPLY_UNKNOWN = "unknown"
#: 관급 — 총원가 밖 별도 표기라 사급과 **가는 자리가 다르다**(PLAN 8-2).
SUPPLY_OWNER = "owner_supplied"
#: 막힘 갈래를 사람 말로. **할 일이 다르므로 화면에서 갈라 보인다.**
_BLOCKED_LABELS = {
"input_missing": "입력이 필요합니다",
@@ -733,14 +736,27 @@ def _material_row(material: HandoffMaterial, result: BillResult) -> BillRow:
}
)
return row
# 사급 자재 단가는 아직 원천이 없다(미결 No.18) — 여기서도 지어내지 않는다.
row.note = row.note or "사급 자재 단가 미확보 — 6번 슬롯(적용 단가) 수동 입력 대기."
# ⚠ **관급을 「사급」이라 적으면 안 된다** (2026-09-08 메인 창 실측 — 물구멍·야면석이
# `owner_supplied` 인데 「사급 자재 단가 미확보」로 뜨고 있었다). 갈래마다 **가는 자리도
# 원천도 다르다** — 관급은 총원가 밖 관급자재대(나라장터), 사급은 도급 재료비(물가지).
if material.supply_type == SUPPLY_OWNER:
row.note = (
row.note
or "관급 자재 단가 미확보 — 나라장터 목록에 이 품목이 없습니다. "
"관급자재대(총원가 밖 별도 표기)로 갑니다."
)
reason = "관급 자재 단가 없음"
else:
row.note = row.note or "사급 자재 단가 미확보 — 6번 슬롯(적용 단가) 수동 입력 대기."
reason = "사급 자재 단가 없음(미결 No.18)"
result.missing.append(
{
"name": material.display_name,
"unit": material.unit,
"quantity": str(material.total_amount),
"reason": "자재 단가 없음(미결 No.18)",
"reason": reason,
"supply_type": material.supply_type,
}
)
return row