fix(823-1): 불러온 단가산출 기계 바꿔 끼움 = 그 줄만 우리 값 즉시 · 바꿈 표시 · 되돌리기

- 원인: 다시 고르기(repick)가 엑셀 값 기억을 일부러 남김(812-9) → 엑셀 단가 기준 보기가 바꾼 기계 줄도 옛 엑셀 값으로 셈 · 이름만 바뀜
- 이은 가져온 줄을 다른 것으로 = 엑셀 값 뗌 · 연결 `바꿈` = 원래 연결 · 이름 · 규격 · 원래 것 다시 고름 = 되돌림 · 못 이은 줄 고름(812-9)은 그대로
- 줄에 「바꿈」 배지 + [되돌리기] · 머리 「바꾼 줄 n — 원본과 다름」 · 인력 · 재료 바꿈도 같은 길
- 서버: 바꾼 줄 있으면 셈 색인 = 로직 사본 위 · 저장 때 셈이 읽은 줄(내 기계 등)을 로직 사본에 박음(822-1 사본 규칙)
- 옛 칸 지문: 파일 24554.0 = 화면 왕복 24554 — 가져온 식 수식 저장 뒤 페이지 [저장] 409(「그 사이 양식이 바뀜」) 막음
- 시험 test_823_1_imported_swap 5(+ 헬퍼 helper_823_1_swap.cjs)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-11-12 18:54:16 +09:00
co-authored by Claude Opus 5.5
parent 4cfa405a5b
commit 8bb22b39b1
11 changed files with 351 additions and 14 deletions
+19
View File
@@ -42,6 +42,7 @@ import {
repick,
shownUnit,
tableAlias,
unswap,
} from "../common_util/common_util_line_stack_pick";
import { createUnitPick, NO_UNIT } from "../M02_MasterTemplete/DataFlow/M02_DF_UnitPick";
import { reach } from "./formula_doc_render";
@@ -176,6 +177,24 @@ function moneyBody(h: EditHooks, i: number): HTMLElement[] {
head.push(pick);
const mark = machineMark(found, link);
if (mark) head.push(mark);
// 823-1 가져온 줄 바꿔 끼움 = 우리 값 · 「바꿈」 + 되돌리기(원래 것 · 엑셀 값)
const sw = (link as { 바꿈?: { 이름?: string; 규격?: string } }).바꿈;
if (sw) {
const was = `${sw.이름 ?? ""} ${sw.규격 ?? ""}`.trim();
const tag = createBadge(lt("Swapped"), "info", { size: 18 });
tag.title = `${lt("Swapped_Note")} — ${was}`;
tag.dataset.swapped = String(i);
const back = createButton({
label: lt("Unswap"),
variant: "ghost",
size: 24,
iconStart: "undo",
onClick: () => h.change((doc) => unswap(doc, i, own)),
});
back.title = was;
back.dataset.unswap = String(i);
head.push(tag, back);
}
// 821-3 품셈 기계 줄 → 복사해 내 기계로(개인 층 SK)
const mine =
kind === "기계"