diff --git a/B08_Quantity/B08_Quantity_Engine_HaulInputs.py b/B08_Quantity/B08_Quantity_Engine_HaulInputs.py index c1c2894d..5c8e3045 100644 --- a/B08_Quantity/B08_Quantity_Engine_HaulInputs.py +++ b/B08_Quantity/B08_Quantity_Engine_HaulInputs.py @@ -30,6 +30,15 @@ from B08_Quantity.B08_Quantity_Engine_UnitQuantity import COLLECTED_STONE_KEY, G #: 유토곡선이 읽는 칸 이름 — 양쪽이 같은 낱말을 써야 인계에서 어긋나지 않는다. STRUCTURE_SPOIL_KEY = "structure_spoil_m3" STRUCTURE_SPOIL_POINTS_KEY = "structure_spoil_points" +#: ⚠⚠ **이 값은 자연상태(본바닥)다.** 유토곡선 잔량은 **다짐상태**라 그냥 더하면 상태가 +#: 섞인다(2026-09-09 랩탑 메인 지적). 받는 쪽이 `× C` 로 맞춰 담을 수 있게 **상태를 값으로 +#: 적어 보낸다** — 말로만 두면 다음 사람이 못 본다. +#: 까닭: 터파기·되메우기가 **제자리 기하 부피**(H × 폭 × 연장)이고 잔토는 그 차이다. +#: ⚠ 엄밀히는 되메움에 **쓰이는 흙**은 다짐부피 ÷ C 라 조금 더 든다. 실무 정본 시트도 +#: 그냥 빼므로(터파기 1.55 − 되메우기 0.30 = 잔토 1.25) 여기서도 그대로 두되, +#: **그 사실을 적어 둔다** — 값을 임의로 보정하지 않는다. +VOLUME_BASIS_KEY = "volume_basis" +VOLUME_BASIS_NATURAL = "natural" SPOIL_COMPONENT = "잔토처리" @@ -52,6 +61,7 @@ def haul_inputs(unit_quantity_table: dict[str, Any] | None) -> dict[str, Any]: COLLECTED_STONE_KEY: None, STRUCTURE_SPOIL_KEY: None, STRUCTURE_SPOIL_POINTS_KEY: [], + VOLUME_BASIS_KEY: VOLUME_BASIS_NATURAL, } total = 0.0 points: list[dict[str, Any]] = [] @@ -73,6 +83,7 @@ def haul_inputs(unit_quantity_table: dict[str, Any] | None) -> dict[str, Any]: { "chainage_m": chainage, "spoil_m3": round(amount, 3), + VOLUME_BASIS_KEY: VOLUME_BASIS_NATURAL, "ground_type": ground, "ground_label": GROUND_TYPE_LABEL.get(str(ground)) if ground else None, "ground_basis": str(structure.get("ground_type_basis") or ""), @@ -83,4 +94,6 @@ def haul_inputs(unit_quantity_table: dict[str, Any] | None) -> dict[str, Any]: COLLECTED_STONE_KEY: collected, STRUCTURE_SPOIL_KEY: round(total, 3) if points or total else None, STRUCTURE_SPOIL_POINTS_KEY: sorted(points, key=lambda row: row["chainage_m"]), + # 총량에도 상태를 적는다 — 측점값을 안 쓰는 쪽도 상태를 알아야 한다. + VOLUME_BASIS_KEY: VOLUME_BASIS_NATURAL, }