feat(B08 구조물도): 카드에 B09 원가에서 고친 일위대가 칸 수 표시 — 노임 새 판 · 재적용 뒤에도 덮개 남음 (PLAN 702-4)
- 사본 셈 길(/items/{폴더}/calc) 답에 B09고침 = 그 사본 블록 + 부른 블록 덮개 수(B09 cover_count)
- B08 구조물도 조합 칸 = 「B09 원가에서 고친 일위대가 칸 N — 이 카드 금액은 고치기 전 사본 값」(카드 셈 길이 달라 금액 반영 대신 표시 · 브레인 정함)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -119,6 +119,21 @@ function comboSection(
|
||||
return section;
|
||||
}
|
||||
const source = sourceOf(request.projectId, copy.폴더);
|
||||
// 702-4 B09 원가에서 고친 일위대가 칸(덮개) — 카드 금액 = 사본 셈(고치기 전) · 셈 답 `B09고침` 수
|
||||
const covered = note("");
|
||||
covered.hidden = true;
|
||||
const labor = source.labor;
|
||||
if (labor) {
|
||||
const calc = labor.calc;
|
||||
labor.calc = (...args) =>
|
||||
calc(...args).then((got) => {
|
||||
const n = Number((got as { B09고침?: number }).B09고침) || 0;
|
||||
covered.textContent = `B09 원가에서 고친 일위대가 칸 ${n} — 이 카드 금액은 고치기 전 사본 값 · 원가 금액은 B09`;
|
||||
covered.hidden = !n;
|
||||
return got;
|
||||
});
|
||||
}
|
||||
section.append(covered);
|
||||
if (!copy.부분.includes("도면")) section.append(note(L("B08_Quantity_Drawing_NoDrawing")));
|
||||
const load = (): void => void cards.load({ id: copy.폴더, label: name });
|
||||
// 카드 안 [저장]은 없음(자료 자리에 write 없음) — [수정]만 사본 편집 화면으로(163-3)
|
||||
|
||||
@@ -219,4 +219,12 @@ async def save_item_as(
|
||||
async def calc_item(
|
||||
project_id: str, folder: str, session: dict[str, Any] = Depends(verify_session)
|
||||
) -> dict[str, Any]:
|
||||
return await _run(copies.calc, await _root(session, project_id), folder)
|
||||
root = await _root(session, project_id)
|
||||
out = await _run(copies.calc, root, folder)
|
||||
from B09_Estimation.B09_Estimation_Labor_Source import cover_count # B09 → M02 순환 피함
|
||||
|
||||
try: # 702-4 B09 원가에서 고친 일위대가 칸 수(카드 금액 = 사본 셈 · 고치기 전)
|
||||
out["B09고침"] = await asyncio.to_thread(cover_count, root, folder)
|
||||
except Exception: # noqa: BLE001 — 표시만 · 카드 셈은 그대로
|
||||
out["B09고침"] = 0
|
||||
return out
|
||||
|
||||
Reference in New Issue
Block a user