diff --git a/M02_MasterTemplete/M02_Doc_Sk_Path.py b/M02_MasterTemplete/M02_Doc_Sk_Path.py index 6d4f3303d..b0dba178b 100644 --- a/M02_MasterTemplete/M02_Doc_Sk_Path.py +++ b/M02_MasterTemplete/M02_Doc_Sk_Path.py @@ -145,8 +145,11 @@ def preview(key: str, body: dict) -> dict[str, Any]: mine = _basis(doc, body) before = current(doc) job = body.get("할일") or None - after = edited(current(doc, job) if job else before, body, key, doc) + was = current(doc, job) if job else before + after = edited(was, body, key, doc) out = answer(after, mine) + if not dim.is_imported(doc): # 고침으로 새로 읽은 줄 = 지금 값으로 셈 · 저장하면 굳음(826-3) + out["사본"]["사본없음"] += len(_rows(after) - _rows(was)) out |= {"전": dc.money(dsk.run(doc, before)), "후": dc.money(out["셈"])} if job == skc.PRICE and not dim.is_imported(doc): out["바뀐자원"] = dc.refresh(before)[1] @@ -158,6 +161,10 @@ def preview(key: str, body: dict) -> dict[str, Any]: return json.loads(json.dumps(dc.ml._norm(out), ensure_ascii=False, default=str)) +def _rows(copy: dict) -> set[str]: + return {str(r.get("키")) for r in [*(copy.get("로직") or []), *(copy.get("단가") or [])]} + + def _basis(doc: dict, body: dict) -> dict: """가져온 식 단가기준 바꿈(807-1 · 몸 `단가기준` 엑셀 | 우리) — 그 밖 SK · 빈 값 = 그대로.""" want = body.get("단가기준")