const { PrismaClient } = require('@prisma/client') const prisma = new PrismaClient() async function clearFulfillmentData() { console.log('🧹 Очищаем данные склада и входящих поставок для кабинета фулфилмента...') try { // Найдем организацию фулфилмента const fulfillmentOrg = await prisma.organization.findFirst({ where: { type: 'FULFILLMENT' }, select: { id: true, name: true } }) if (!fulfillmentOrg) { console.log('❌ Организация фулфилмента не найдена') return } console.log(`🏢 Организация фулфилмента: ${fulfillmentOrg.name} (${fulfillmentOrg.id})`) // 1. Получаем статистику ПЕРЕД очисткой console.log('\n📊 СТАТИСТИКА ПЕРЕД ОЧИСТКОЙ:') const suppliesCount = await prisma.supply.count({ where: { organizationId: fulfillmentOrg.id, type: 'FULFILLMENT_CONSUMABLES' } }) const supplyOrdersCount = await prisma.supplyOrder.count({ where: { fulfillmentCenterId: fulfillmentOrg.id } }) const supplyOrderItemsCount = await prisma.supplyOrderItem.count({ where: { supplyOrder: { fulfillmentCenterId: fulfillmentOrg.id } } }) console.log(` 📦 Расходники фулфилмента (Supply): ${suppliesCount}`) console.log(` 📋 Входящие поставки (SupplyOrder): ${supplyOrdersCount}`) console.log(` 📝 Элементы поставок (SupplyOrderItem): ${supplyOrderItemsCount}`) if (suppliesCount === 0 && supplyOrdersCount === 0) { console.log('✅ Данные уже очищены - ничего не найдено для удаления') return } // 2. ОЧИСТКА ДАННЫХ console.log('\n🗑️ НАЧИНАЕМ ОЧИСТКУ...') // 2.1 Удаляем элементы заказов поставок (связанные записи) if (supplyOrderItemsCount > 0) { console.log('🗑️ Удаляем элементы заказов поставок...') const deletedItems = await prisma.supplyOrderItem.deleteMany({ where: { supplyOrder: { fulfillmentCenterId: fulfillmentOrg.id } } }) console.log(`✅ Удалено элементов заказов поставок: ${deletedItems.count}`) } // 2.2 Удаляем заказы поставок if (supplyOrdersCount > 0) { console.log('🗑️ Удаляем заказы поставок...') const deletedOrders = await prisma.supplyOrder.deleteMany({ where: { fulfillmentCenterId: fulfillmentOrg.id } }) console.log(`✅ Удалено заказов поставок: ${deletedOrders.count}`) } // 2.3 Удаляем расходники фулфилмента if (suppliesCount > 0) { console.log('🗑️ Удаляем расходники фулфилмента...') const deletedSupplies = await prisma.supply.deleteMany({ where: { organizationId: fulfillmentOrg.id, type: 'FULFILLMENT_CONSUMABLES' } }) console.log(`✅ Удалено расходников фулфилмента: ${deletedSupplies.count}`) } // 3. Проверяем результат console.log('\n📊 СТАТИСТИКА ПОСЛЕ ОЧИСТКИ:') const finalSuppliesCount = await prisma.supply.count({ where: { organizationId: fulfillmentOrg.id, type: 'FULFILLMENT_CONSUMABLES' } }) const finalOrdersCount = await prisma.supplyOrder.count({ where: { fulfillmentCenterId: fulfillmentOrg.id } }) const finalItemsCount = await prisma.supplyOrderItem.count({ where: { supplyOrder: { fulfillmentCenterId: fulfillmentOrg.id } } }) console.log(` 📦 Расходники фулфилмента (Supply): ${finalSuppliesCount}`) console.log(` 📋 Входящие поставки (SupplyOrder): ${finalOrdersCount}`) console.log(` 📝 Элементы поставок (SupplyOrderItem): ${finalItemsCount}`) if (finalSuppliesCount === 0 && finalOrdersCount === 0 && finalItemsCount === 0) { console.log('\n✅ ОЧИСТКА ЗАВЕРШЕНА УСПЕШНО!') console.log(' 🧹 Все данные склада и входящих поставок удалены') console.log(' 📊 Статистика на дашборде будет показывать 0') } else { console.log('\n⚠️ ВНИМАНИЕ: Не все данные были удалены') console.log(' Возможно, есть связанные записи, которые нужно удалить отдельно') } } catch (error) { console.error('❌ Ошибка при очистке данных:', error) } finally { await prisma.$disconnect() } } clearFulfillmentData()