feat(795-2): 일위대가 · 사전조합 로직 사본 — 저장 때 찍음 · [단가 갱신] · [재생성] · 줄 덮개 다시 얹힘
- 새 M02_Labor_Copy — SK 사본(795-1) 한 벌 · 담은로직 로직 줄 · 줄 덮개 더한줄 · 고정 이음 · 자재 MT 가 닿는 M01 닫힌 묶음
- 셈 = Labor_Doc.calc 층 셈 첫머리 사본 덮개 · SC 1 단위 값(Expand) = 그 SC 사본 · 프로젝트 층 · B09 = 옛 길(795-4)
- 사본 정함 = 받은 사본 먼저(열 복사 · 층 복사 = 원본 사본 그대로) → 저장본 → [저장] 때 찍음 · 새 줄만 더함
- 길 POST …/labor/{열 | SC 키}/copy/price|regen · 셈 답 덧칸 사본 표지 · 같은 내용 지문 SC 사본 몫
- Sangeun_Copy 찍기 갈래 나눔(reach · snap · grow) · SK 더한줄 인력 · 재료 · 기계 요소도 사본에
- Labor_Doc 줄 수 그대로(686) · 시험 test_795_2_sc_copy 6 · 기존 일위대가 · SC · SK 시험 통과
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -18,6 +18,7 @@ from fastapi import APIRouter, Depends, HTTPException
|
||||
from pydantic import BaseModel
|
||||
|
||||
from common_util.common_util_auth import verify_session
|
||||
from M02_MasterTemplete import M02_Labor_Copy as lc
|
||||
from M02_MasterTemplete import M02_Labor_Doc as labor
|
||||
from M02_MasterTemplete import M02_Labor_Ref as refs
|
||||
from M02_MasterTemplete import M02_Layer_Access as access
|
||||
@@ -53,7 +54,34 @@ def _doc(column: str, sent: dict[str, Any] | None) -> dict[str, Any]:
|
||||
|
||||
def _calc(column: str, body: CalcBody) -> dict[str, Any]:
|
||||
doc = _doc(column, body.doc)
|
||||
return {**labor.calc(doc, body.수량), "알약": labor.pills(doc)}
|
||||
got = lc.mark(labor.calc(doc, body.수량), lc.settle(doc)) # 사본 표지(795-2)
|
||||
return {**got, "알약": labor.pills(doc)}
|
||||
|
||||
|
||||
_JOBS = {"price": lc.PRICE, "regen": lc.REGEN}
|
||||
|
||||
|
||||
@router.post("/layers/{layer}/labor/{column}/copy/{how}")
|
||||
def labor_copy(
|
||||
layer: Layer,
|
||||
column: str,
|
||||
how: str,
|
||||
body: CalcBody,
|
||||
owner: str | None = None,
|
||||
session: Session = Depends(verify_session),
|
||||
) -> dict:
|
||||
"""로직 사본(795-2) — price [단가 갱신] · regen [재생성] · 일위대가 열 · 사전조합 SC 키 ·
|
||||
답 = 할일 얹은 doc(화면 캐시 · [저장] 때 서버가 적용) + 전 · 후 합 + 바뀐자원 | 못얹은."""
|
||||
if how not in _JOBS:
|
||||
raise HTTPException(status_code=404, detail="price · regen")
|
||||
return _call(_root(session, layer, owner), _copy_job, column, body, _JOBS[how])
|
||||
|
||||
|
||||
def _copy_job(column: str, body: CalcBody, job: str) -> dict[str, Any]:
|
||||
"""미리 셈은 정리한 문서로 · 답 doc = 보낸 화면 문서 + 할일(SC · 일위대가 꼴 그대로)."""
|
||||
got = lc.preview(_doc(column, body.doc), job, body.수량)
|
||||
sent = body.doc if body.doc is not None else store.read("labor", column)["문서"]
|
||||
return {**got, "doc": {**sent, lc.JOB: got["doc"][lc.JOB]}}
|
||||
|
||||
|
||||
def _pills(column: str) -> dict[str, Any]:
|
||||
|
||||
Reference in New Issue
Block a user