diff --git a/frontend/app/(main)/COMPANY_10/production/work-instruction/page.tsx b/frontend/app/(main)/COMPANY_10/production/work-instruction/page.tsx index 8e474428..5d51b29f 100644 --- a/frontend/app/(main)/COMPANY_10/production/work-instruction/page.tsx +++ b/frontend/app/(main)/COMPANY_10/production/work-instruction/page.tsx @@ -69,6 +69,9 @@ interface SelectedItem { // 기준수(BOM 0레벨 base_qty) / 배치수(자동) / 배분(균등|순차) baseQty?: number | null; splitMode?: "even" | "sequential"; + // 수정 모드: 기존 detail row 식별 + 잠금 상태 + detailId?: string; + locked?: boolean; } // 배치수 산출: baseQty>0 && qty>baseQty면 ceil(qty/baseQty), 아니면 1 @@ -458,6 +461,9 @@ export default function WorkInstructionPage() { equipmentIds: (d.detail_equipment_ids || "").split(",").filter(Boolean), workTeams: (d.detail_work_teams || "").split(",").filter(Boolean), workers: (d.detail_workers || "").split(",").filter(Boolean), + // 잠금 상태 (생산실적 있음) + 기존 detail row 식별자 + detailId: d.detail_id, + locked: d.is_locked === true, })); setEditItems(items); setAddQty(""); setAddEquipment(""); setAddWorkTeam(""); setAddWorker(""); diff --git a/frontend/app/(main)/COMPANY_16/production/work-instruction/page.tsx b/frontend/app/(main)/COMPANY_16/production/work-instruction/page.tsx index 1f922fe6..c82f3f04 100644 --- a/frontend/app/(main)/COMPANY_16/production/work-instruction/page.tsx +++ b/frontend/app/(main)/COMPANY_16/production/work-instruction/page.tsx @@ -69,6 +69,9 @@ interface SelectedItem { // 기준수(BOM 0레벨 base_qty) / 배치수(자동) / 배분(균등|순차) baseQty?: number | null; splitMode?: "even" | "sequential"; + // 수정 모드: 기존 detail row 식별 + 잠금 상태 + detailId?: string; + locked?: boolean; } // 배치수 산출: baseQty>0 && qty>baseQty면 ceil(qty/baseQty), 아니면 1 @@ -462,6 +465,9 @@ export default function WorkInstructionPage() { equipmentIds: (d.detail_equipment_ids || "").split(",").filter(Boolean), workTeams: (d.detail_work_teams || "").split(",").filter(Boolean), workers: (d.detail_workers || "").split(",").filter(Boolean), + // 잠금 상태 (생산실적 있음) + 기존 detail row 식별자 + detailId: d.detail_id, + locked: d.is_locked === true, })); setEditItems(items); setAddQty(""); setAddEquipment(""); setAddWorkTeam(""); setAddWorker(""); diff --git a/frontend/app/(main)/COMPANY_28/production/work-instruction/page.tsx b/frontend/app/(main)/COMPANY_28/production/work-instruction/page.tsx index 102a6356..5467799c 100644 --- a/frontend/app/(main)/COMPANY_28/production/work-instruction/page.tsx +++ b/frontend/app/(main)/COMPANY_28/production/work-instruction/page.tsx @@ -69,6 +69,9 @@ interface SelectedItem { // 기준수(BOM 0레벨 base_qty) / 배치수(자동) / 배분(균등|순차) baseQty?: number | null; splitMode?: "even" | "sequential"; + // 수정 모드: 기존 detail row 식별 + 잠금 상태 + detailId?: string; + locked?: boolean; } // 배치수 산출: baseQty>0 && qty>baseQty면 ceil(qty/baseQty), 아니면 1 @@ -458,6 +461,9 @@ export default function WorkInstructionPage() { equipmentIds: (d.detail_equipment_ids || "").split(",").filter(Boolean), workTeams: (d.detail_work_teams || "").split(",").filter(Boolean), workers: (d.detail_workers || "").split(",").filter(Boolean), + // 잠금 상태 (생산실적 있음) + 기존 detail row 식별자 + detailId: d.detail_id, + locked: d.is_locked === true, })); setEditItems(items); setAddQty(""); setAddEquipment(""); setAddWorkTeam(""); setAddWorker(""); diff --git a/frontend/app/(main)/COMPANY_29/production/work-instruction/page.tsx b/frontend/app/(main)/COMPANY_29/production/work-instruction/page.tsx index 102a6356..5467799c 100644 --- a/frontend/app/(main)/COMPANY_29/production/work-instruction/page.tsx +++ b/frontend/app/(main)/COMPANY_29/production/work-instruction/page.tsx @@ -69,6 +69,9 @@ interface SelectedItem { // 기준수(BOM 0레벨 base_qty) / 배치수(자동) / 배분(균등|순차) baseQty?: number | null; splitMode?: "even" | "sequential"; + // 수정 모드: 기존 detail row 식별 + 잠금 상태 + detailId?: string; + locked?: boolean; } // 배치수 산출: baseQty>0 && qty>baseQty면 ceil(qty/baseQty), 아니면 1 @@ -458,6 +461,9 @@ export default function WorkInstructionPage() { equipmentIds: (d.detail_equipment_ids || "").split(",").filter(Boolean), workTeams: (d.detail_work_teams || "").split(",").filter(Boolean), workers: (d.detail_workers || "").split(",").filter(Boolean), + // 잠금 상태 (생산실적 있음) + 기존 detail row 식별자 + detailId: d.detail_id, + locked: d.is_locked === true, })); setEditItems(items); setAddQty(""); setAddEquipment(""); setAddWorkTeam(""); setAddWorker(""); diff --git a/frontend/app/(main)/COMPANY_31/production/work-instruction/page.tsx b/frontend/app/(main)/COMPANY_31/production/work-instruction/page.tsx index fd0a77c1..b47504dc 100644 --- a/frontend/app/(main)/COMPANY_31/production/work-instruction/page.tsx +++ b/frontend/app/(main)/COMPANY_31/production/work-instruction/page.tsx @@ -69,6 +69,9 @@ interface SelectedItem { // 기준수(BOM 0레벨 base_qty) / 배치수(자동) / 배분(균등|순차) baseQty?: number | null; splitMode?: "even" | "sequential"; + // 수정 모드: 기존 detail row 식별 + 잠금 상태 + detailId?: string; + locked?: boolean; } // 배치수 산출: baseQty>0 && qty>baseQty면 ceil(qty/baseQty), 아니면 1 @@ -471,6 +474,9 @@ export default function WorkInstructionPage() { equipmentIds: (d.detail_equipment_ids || "").split(",").filter(Boolean), workTeams: (d.detail_work_teams || "").split(",").filter(Boolean), workers: (d.detail_workers || "").split(",").filter(Boolean), + // 잠금 상태 (생산실적 있음) + 기존 detail row 식별자 + detailId: d.detail_id, + locked: d.is_locked === true, })); setEditItems(items); setAddQty(""); setAddEquipment(""); setAddWorkTeam(""); setAddWorker(""); diff --git a/frontend/app/(main)/COMPANY_8/production/work-instruction/page.tsx b/frontend/app/(main)/COMPANY_8/production/work-instruction/page.tsx index 8e474428..5d51b29f 100644 --- a/frontend/app/(main)/COMPANY_8/production/work-instruction/page.tsx +++ b/frontend/app/(main)/COMPANY_8/production/work-instruction/page.tsx @@ -69,6 +69,9 @@ interface SelectedItem { // 기준수(BOM 0레벨 base_qty) / 배치수(자동) / 배분(균등|순차) baseQty?: number | null; splitMode?: "even" | "sequential"; + // 수정 모드: 기존 detail row 식별 + 잠금 상태 + detailId?: string; + locked?: boolean; } // 배치수 산출: baseQty>0 && qty>baseQty면 ceil(qty/baseQty), 아니면 1 @@ -458,6 +461,9 @@ export default function WorkInstructionPage() { equipmentIds: (d.detail_equipment_ids || "").split(",").filter(Boolean), workTeams: (d.detail_work_teams || "").split(",").filter(Boolean), workers: (d.detail_workers || "").split(",").filter(Boolean), + // 잠금 상태 (생산실적 있음) + 기존 detail row 식별자 + detailId: d.detail_id, + locked: d.is_locked === true, })); setEditItems(items); setAddQty(""); setAddEquipment(""); setAddWorkTeam(""); setAddWorker(""); diff --git a/frontend/app/(main)/COMPANY_9/production/work-instruction/page.tsx b/frontend/app/(main)/COMPANY_9/production/work-instruction/page.tsx index 7cb6ab2e..2905adc7 100644 --- a/frontend/app/(main)/COMPANY_9/production/work-instruction/page.tsx +++ b/frontend/app/(main)/COMPANY_9/production/work-instruction/page.tsx @@ -66,6 +66,9 @@ interface SelectedItem { equipmentIds?: string[]; workTeams?: string[]; workers?: string[]; + // 수정 모드: 기존 detail row 식별 + 잠금 상태 + detailId?: string; + locked?: boolean; } // 공용 다중선택 Popover 컴포넌트 (설비/작업조/작업자에 재사용) @@ -420,6 +423,9 @@ export default function WorkInstructionPage() { equipmentIds: (d.detail_equipment_ids || "").split(",").filter(Boolean), workTeams: (d.detail_work_teams || "").split(",").filter(Boolean), workers: (d.detail_workers || "").split(",").filter(Boolean), + // 잠금 상태 (생산실적 있음) + 기존 detail row 식별자 + detailId: d.detail_id, + locked: d.is_locked === true, })); setEditItems(items); setAddQty(""); setAddEquipment(""); setAddWorkTeam(""); setAddWorker("");