const { PrismaClient } = require('@prisma/client') const prisma = new PrismaClient() async function checkFulfillmentWarehouse() { try { console.log('🔍 ПРОВЕРЯЕМ СКЛАД ФУЛФИЛМЕНТА ДЛЯ ПОЛЬЗОВАТЕЛЯ 79999999999...') // Найдем пользователя и его организацию const user = await prisma.user.findFirst({ where: { phone: '79999999999' }, include: { organization: true } }) if (!user || user.organization?.type !== 'FULFILLMENT') { console.log('❌ Пользователь не является фулфилментом') return } console.log('🏢 ОРГАНИЗАЦИЯ ФУЛФИЛМЕНТА:') console.log(' Название:', user.organization.name) console.log(' ID:', user.organization.id) console.log(' Тип:', user.organization.type) console.log('\n📦 ПРОВЕРЯЕМ РАСХОДНИКИ ФУЛФИЛМЕНТА:') // Supply записи для фулфилмента const supplies = await prisma.supply.findMany({ where: { organizationId: user.organization.id, type: 'FULFILLMENT_CONSUMABLES' }, select: { id: true, name: true, article: true, currentStock: true, quantity: true, usedStock: true, status: true, supplier: true, category: true, price: true, unit: true, createdAt: true, updatedAt: true }, orderBy: { updatedAt: 'desc' } }) console.log(`\n📋 РАСХОДНИКИ НА СКЛАДЕ: ${supplies.length} позиций`) if (supplies.length === 0) { console.log(' 📭 Склад пуст - нет расходников фулфилмента') } else { let totalCurrent = 0 let totalUsed = 0 supplies.forEach((supply, index) => { console.log(`\n ${index + 1}. "${supply.name}"`) console.log(` 📋 ID: ${supply.id}`) console.log(` 🏷️ Артикул: ${supply.article || 'Нет'}`) console.log(` 📦 Текущий остаток: ${supply.currentStock} ${supply.unit || 'шт'}`) console.log(` 📊 Общее количество: ${supply.quantity} ${supply.unit || 'шт'}`) console.log(` ✅ Использовано: ${supply.usedStock} ${supply.unit || 'шт'}`) console.log(` 💰 Цена: ${supply.price || 0} руб`) console.log(` 📂 Категория: ${supply.category || 'Не указана'}`) console.log(` 🏪 Поставщик: ${supply.supplier || 'Не указан'}`) console.log(` 🔖 Статус: ${supply.status}`) console.log(` 📅 Создан: ${supply.createdAt.toISOString().split('T')[0]}`) console.log(` 🔄 Обновлен: ${supply.updatedAt.toISOString().split('T')[0]}`) totalCurrent += supply.currentStock totalUsed += supply.usedStock }) console.log(`\n📊 ИТОГОВАЯ СТАТИСТИКА:`) console.log(` 📦 Общий остаток: ${totalCurrent} единиц`) console.log(` ✅ Всего использовано: ${totalUsed} единиц`) console.log(` 🏷️ Всего позиций: ${supplies.length}`) // Статистика по статусам const statusStats = supplies.reduce((acc, supply) => { acc[supply.status] = (acc[supply.status] || 0) + 1 return acc }, {}) console.log(`\n📈 СТАТИСТИКА ПО СТАТУСАМ:`) Object.entries(statusStats).forEach(([status, count]) => { console.log(` ${status}: ${count} позиций`) }) } // Проверяем заказы поставок console.log('\n📋 ПРОВЕРЯЕМ ЗАКАЗЫ ПОСТАВОК:') const supplyOrders = await prisma.supplyOrder.findMany({ where: { fulfillmentCenterId: user.organization.id }, include: { items: { include: { product: { select: { name: true, article: true } } } } }, orderBy: { updatedAt: 'desc' }, take: 5 }) console.log(` 📦 Заказов поставок: ${supplyOrders.length} (последние 5)`) supplyOrders.forEach((order, index) => { console.log(`\n ${index + 1}. Заказ ${order.id}`) console.log(` 📋 Статус: ${order.status}`) console.log(` 📅 Дата доставки: ${order.deliveryDate.toISOString().split('T')[0]}`) console.log(` 📦 Элементов: ${order.items.length}`) order.items.forEach((item, itemIndex) => { console.log(` ${itemIndex + 1}. ${item.product.name} x${item.quantity} (арт: ${item.product.article})`) }) }) } catch (error) { console.error('❌ Ошибка:', error.message) } finally { await prisma.$disconnect() } } checkFulfillmentWarehouse()