From 9fa5a882664ecef885a172736da0a9c70c750083 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 13:12:48 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20[=EC=9E=90=EC=9E=AC=ED=88=AC=EC=9E=85]?= =?UTF-8?q?=20=EB=B0=B0=EC=A0=95=20=EC=9E=90=EC=9E=AC=20=EC=97=86=EC=9D=84?= =?UTF-8?q?=20=EB=95=8C=EB=8F=84=20=EC=9E=AC=EA=B3=A0=20=EA=B2=80=EC=83=89?= =?UTF-8?q?/=EA=B0=95=EC=A0=9C=EC=9E=85=EA=B3=A0=20=EA=B8=B0=EB=8A=A5=20?= =?UTF-8?q?=ED=91=9C=EC=8B=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WorkerScreen/MaterialInputModal.tsx | 66 ++++++++++++++++++- 1 file changed, 64 insertions(+), 2 deletions(-) diff --git a/src/components/production/WorkerScreen/MaterialInputModal.tsx b/src/components/production/WorkerScreen/MaterialInputModal.tsx index 4ddbb2f1..ab57c70f 100644 --- a/src/components/production/WorkerScreen/MaterialInputModal.tsx +++ b/src/components/production/WorkerScreen/MaterialInputModal.tsx @@ -546,8 +546,70 @@ export function MaterialInputModal({ {isLoading ? ( ) : materials.length === 0 ? ( -
- 이 공정에 배정된 자재가 없습니다. +
+
+ 이 공정에 배정된 자재가 없습니다. +
+ {/* 자재 없을 때도 재고 검색 + 강제입고 가능 */} +
+
+ + setSearchQuery(e.target.value)} + onKeyDown={(e) => e.key === 'Enter' && handleStockSearch(searchQuery)} + placeholder="품목코드 또는 자재명으로 재고 검색" + className="flex-1 text-xs px-2 py-1.5 border rounded bg-white" + /> + +
+ {searchResults.length > 0 ? ( +
+

{searchResults.length}건 검색됨:

+ {searchResults.map((s, si) => ( +
0 ? "bg-white border-emerald-200" : "bg-gray-50 border-gray-200" + )}> +
+ {s.itemCode} + 0 ? "text-emerald-600 font-semibold" : "text-gray-400"}> + 가용 {formatNumber(s.availableQty)} EA + +
+
{s.itemName}
+ {s.lots.length > 0 && s.lots.slice(0, 3).map((l, li) => ( +
+ LOT {l.lotNo} | {formatNumber(l.availableQty)} EA | FIFO #{l.fifoOrder} +
+ ))} +
+ ))} +
+ ) : isSearching ? ( +

검색 중...

+ ) : searchQuery && ( +

검색 결과 없음

+ )} + {searchQuery && ( + + )} +
) : (