feat(B09): 공구손료·잡재료 칸 — 기본은 빔, 넣으면 주재료비의 %로 붙음
사용자 확정 5차 작은 것 1 「지금은 안 넣되 숫자 넣으면 되게 열어 둘 것」. 근거는 산림품셈 1-2-6 — 주재료비(할증수량 제외)의 2~5%까지, 산정 근거 명시. - 기초자료 탭 「산출 조건」에 칸 하나 + [적용]. 비면 줄 자체가 안 섬(지금 상태 그대로). - 밑수는 **자재 줄만** — 노무·경비, 하위 일위대가 재료비는 안 듦(층마다 거듭 세지 않음). - 상한 5% 초과는 거절(400) — 조용히 깎아 넣지 않음. - ⚠ 지금은 일위대가에 주재료비가 선 공종이 0개라 붙을 밑수가 없음 — 그 사실을 칸 밑에 띄움. - 곁다리: 비율 줄(제잡비·공구손료)이 저장했다 읽으면 사라지던 것을 고침. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -119,17 +119,29 @@ def _detail_to_dict(detail: PriceDetail) -> dict[str, Any]:
|
||||
"percent_of_parent": (
|
||||
None if detail.percent_of_parent is None else str(detail.percent_of_parent)
|
||||
),
|
||||
# ⚠ 비율 줄 셋을 **다 적는다** — 하나라도 빠뜨리면 저장했다 다시 읽을 때 그 줄이
|
||||
# 조용히 사라져 단가가 낮아진다(제잡비가 그 자리였다).
|
||||
"percent_of_labor": (
|
||||
None if detail.percent_of_labor is None else str(detail.percent_of_labor)
|
||||
),
|
||||
"percent_of_material": (
|
||||
None if detail.percent_of_material is None else str(detail.percent_of_material)
|
||||
),
|
||||
}
|
||||
|
||||
|
||||
def _detail_from_dict(raw: dict[str, Any]) -> PriceDetail:
|
||||
percent = raw.get("percent_of_parent")
|
||||
labor_percent = raw.get("percent_of_labor")
|
||||
material_percent = raw.get("percent_of_material")
|
||||
return PriceDetail(
|
||||
parent_code=raw["parent_code"],
|
||||
ref_code=raw["ref_code"],
|
||||
quantity=Decimal(str(raw.get("quantity", "0"))),
|
||||
note=raw.get("note", ""),
|
||||
percent_of_parent=None if percent is None else Decimal(str(percent)),
|
||||
percent_of_labor=None if labor_percent is None else Decimal(str(labor_percent)),
|
||||
percent_of_material=(None if material_percent is None else Decimal(str(material_percent))),
|
||||
)
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user