diff --git a/Z01_MasterData/Z01_MasterData_UI_Rows.ts b/Z01_MasterData/Z01_MasterData_UI_Rows.ts index 8cc9b8c9..203e52ab 100644 --- a/Z01_MasterData/Z01_MasterData_UI_Rows.ts +++ b/Z01_MasterData/Z01_MasterData_UI_Rows.ts @@ -60,13 +60,23 @@ function fill(key: Parameters[0], value: string): string { return L(key).replace("{value}", value); } +/** + * 뜻이 바뀐 줄의 옛 이름·지금 이름 — 서버가 합쳐 한 줄로 줌(자재는 품명·규격·인도조건이 이어 붙어 옴). + * 화면은 쪼개거나 다시 합치지 않음. 안 오면 버그로 드러냄. + */ +function meaningNames(info: CellInfo): string { + if (!info.was || !info.now) return L("Z01_MasterData_State_MeaningMissing"); + return `${fill("Z01_MasterData_State_Was", info.was)} / ${fill("Z01_MasterData_State_Now", info.now)}`; +} + /** 덮개 판정 한 줄 — 서버 state 그대로 · state 가 없으면 버그로 드러냄. */ function stateText(info: CellInfo, column: MasterColumn): string { const original = valueWithUnit(info.original, column.unit); switch (info.state) { case "meaning_changed": // 값이 틀린 것보다 나쁨 — 같은 번호에 딴 물건이 앉음. 옛 이름·지금 이름을 나란히. - return `${L("Z01_MasterData_State_MeaningChanged")} — ${fill("Z01_MasterData_State_Was", info.was ?? "?")} / ${fill("Z01_MasterData_State_Now", info.now ?? "?")} · ${fill("Z01_MasterData_Edit_OriginalWas", original)}`; + // ⚠ 이름이 안 오면 물음표로 때우지 않고 버그로 드러냄 — 물음표는 「원래 그런가 보다」로 넘김. + return `${L("Z01_MasterData_State_MeaningChanged")} — ${meaningNames(info)} · ${fill("Z01_MasterData_Edit_OriginalWas", original)}`; case "source_changed": return `${fill("Z01_MasterData_State_SourceChanged", valueWithUnit(info.current, column.unit))} (${fill("Z01_MasterData_Edit_OriginalWas", original)})`; case "orphan": @@ -382,7 +392,7 @@ export function buildRowsView(): RowsView { async function drop(index: number, column: MasterColumn, info: CellInfo): Promise { if (info.state === "meaning_changed") { const ok = await showConfirmDialog( - `${fill("Z01_MasterData_State_Was", info.was ?? "?")} / ${fill("Z01_MasterData_State_Now", info.now ?? "?")}\n${L("Z01_MasterData_Edit_MeaningConfirm")}`, + `${meaningNames(info)}\n${L("Z01_MasterData_Edit_MeaningConfirm")}`, L("Z01_MasterData_Edit_DropConfirm"), ); if (!ok) return; diff --git a/ui_template/ui_template_locale_b3.ts b/ui_template/ui_template_locale_b3.ts index 4adc3605..662fc14c 100644 --- a/ui_template/ui_template_locale_b3.ts +++ b/ui_template/ui_template_locale_b3.ts @@ -175,6 +175,10 @@ export const ui_locales_b3 = { "⛔ 고쳐짐 — 줄의 뜻이 바뀜(같은 번호에 다른 물건)", "⛔ Edited — the row now means something else (same code, different item)", ], + Z01_MasterData_State_MeaningMissing: [ + "⛔ 옛 이름·지금 이름을 서버가 안 줌 — 버그", + "⛔ Server sent no before/after row names — bug", + ], Z01_MasterData_State_Was: ["고칠 때: {value}", "when edited: {value}"], Z01_MasterData_State_Now: ["지금: {value}", "now: {value}"], Z01_MasterData_Edit_DropOnMeaning: [