whereIn('item_type', ['RM', 'SM', 'CS', 'PT', 'SF']) ->get(); $this->command->info("총 {$items->count()}개 품목에 대해 Stock 생성/업데이트 시작..."); $created = 0; $updated = 0; DB::transaction(function () use ($items, $tenantId, &$created, &$updated) { foreach ($items as $item) { $stockQty = rand(0, 100); $safetyStock = 10; // 재고 상태 계산 $status = 'normal'; if ($stockQty <= 0) { $status = 'out'; } elseif ($stockQty < $safetyStock) { $status = 'low'; } $stock = Stock::where('tenant_id', $tenantId) ->where('item_id', $item->id) ->first(); if ($stock) { // 기존 Stock 업데이트 $stock->update([ 'stock_qty' => $stockQty, 'safety_stock' => $safetyStock, 'available_qty' => $stockQty, 'status' => $status, 'updated_by' => 1, ]); $updated++; } else { // 새 Stock 생성 Stock::create([ 'tenant_id' => $tenantId, 'item_id' => $item->id, 'item_code' => $item->code, 'item_name' => $item->name, 'item_type' => $item->item_type, 'specification' => $item->specification ?? null, 'unit' => $item->unit ?? 'EA', 'stock_qty' => $stockQty, 'safety_stock' => $safetyStock, 'reserved_qty' => 0, 'available_qty' => $stockQty, 'lot_count' => 0, 'location' => null, 'status' => $status, 'created_by' => 1, 'updated_by' => 1, ]); $created++; } } }); $this->command->info("완료! 생성: {$created}개, 업데이트: {$updated}개"); } }