From 7b0adead79c4a4a26d54c5601d9f15b582fec93b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=EB=B3=B4=EA=B3=A4?= Date: Sun, 22 Mar 2026 10:40:11 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20[=EC=9E=90=EC=9E=AC=ED=88=AC=EC=9E=85]?= =?UTF-8?q?=20=EC=83=81=EB=8B=A8=EC=97=90=20=EB=B0=B0=EC=A0=95=EC=99=84?= =?UTF-8?q?=EB=A3=8C=20=ED=98=84=ED=99=A9=20=ED=91=9C=EC=8B=9C=20(N/M=20?= =?UTF-8?q?=EB=B0=B0=EC=A0=95=EC=99=84=EB=A3=8C)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WorkerScreen/MaterialInputModal.tsx | 26 ++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/src/components/production/WorkerScreen/MaterialInputModal.tsx b/src/components/production/WorkerScreen/MaterialInputModal.tsx index 076e3939..4ddbb2f1 100644 --- a/src/components/production/WorkerScreen/MaterialInputModal.tsx +++ b/src/components/production/WorkerScreen/MaterialInputModal.tsx @@ -506,9 +506,29 @@ export function MaterialInputModal({ 자재 투입{workOrderItemName ? ` - ${workOrderItemName}` : ''}
-

- 로트를 선택하면 필요수량만큼 자동 배분됩니다. -

+
+

+ 로트를 선택하면 필요수량만큼 자동 배분됩니다. +

+ {!isLoading && materialGroups.length > 0 && (() => { + const fulfilled = materialGroups.filter((g) => { + const target = getGroupTargetQty(g); + if (target <= 0 && g.alreadyInputted <= 0) return true; + const allocated = g.lots.reduce((sum, lot) => sum + (allocations.get(getLotKey(lot, g.groupKey)) || 0), 0); + return allocated >= target; + }).length; + const total = materialGroups.length; + return ( + + {fulfilled === total ? : null} + {fulfilled} / {total} 배정완료 + + ); + })()} +
{!isLoading && materials.length > 0 && (