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 && ( + + )} +
) : (