
## Структурные изменения: ### 📁 Организация архивных файлов: - Перенос всех устаревших правил в legacy-rules/ - Создание структуры docs-and-reports/ для отчетов - Архивация backup файлов в legacy-rules/backups/ ### 🔧 Критические компоненты: - src/components/supplies/multilevel-supplies-table.tsx - многоуровневая таблица поставок - src/components/supplies/components/recipe-display.tsx - отображение рецептур - src/components/fulfillment-supplies/fulfillment-goods-orders-tab.tsx - вкладка товарных заказов ### 🎯 GraphQL обновления: - Обновление mutations.ts, queries.ts, resolvers.ts, typedefs.ts - Синхронизация с Prisma schema.prisma - Backup файлы для истории изменений ### 🛠️ Утилитарные скрипты: - 12 новых скриптов в scripts/ для анализа данных - Скрипты проверки фулфилмент-пользователей - Утилиты очистки и фиксации данных поставок ### 📊 Тестирование: - test-fulfillment-filtering.js - тестирование фильтрации фулфилмента - test-full-workflow.js - полный workflow тестирование ### 📝 Документация: - logistics-statistics-warehouse-rules.md - объединенные правила модулей - Обновление журналов модуляризации и разработки ### ✅ Исправления ESLint: - Исправлены критические ошибки в sidebar.tsx - Исправлены ошибки типизации в multilevel-supplies-table.tsx - Исправлены неиспользуемые переменные в goods-supplies-table.tsx - Заменены типы any на строгую типизацию - Исправлены console.log на console.warn ## Результат: - Завершена полная модуляризация системы - Организована архитектура legacy файлов - Добавлены критически важные компоненты таблиц - Создана полная инфраструктура тестирования - Исправлены все критические ESLint ошибки - Сохранены 103 незакоммиченных изменения 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
78 lines
2.8 KiB
JavaScript
78 lines
2.8 KiB
JavaScript
const { PrismaClient } = require('@prisma/client')
|
||
|
||
const prisma = new PrismaClient()
|
||
|
||
async function fixSupplyOrderTypes() {
|
||
try {
|
||
console.log('🔧 ИСПРАВЛЯЕМ ТИПЫ ЗАКАЗОВ ПОСТАВОК...')
|
||
|
||
// Найдем все заказы поставок с проблемами
|
||
const problemOrders = await prisma.supplyOrder.findMany({
|
||
include: {
|
||
organization: {
|
||
select: {
|
||
id: true,
|
||
name: true,
|
||
type: true
|
||
}
|
||
}
|
||
}
|
||
})
|
||
|
||
console.log(`📋 Найдено заказов для анализа: ${problemOrders.length}`)
|
||
|
||
let fixedCount = 0
|
||
|
||
for (const order of problemOrders) {
|
||
const organizationType = order.organization?.type
|
||
const currentConsumableType = order.consumableType
|
||
|
||
// Определяем правильный тип на основе заказчика
|
||
let correctConsumableType
|
||
if (organizationType === 'SELLER') {
|
||
correctConsumableType = 'SELLER_CONSUMABLES'
|
||
} else if (organizationType === 'FULFILLMENT') {
|
||
correctConsumableType = 'FULFILLMENT_CONSUMABLES'
|
||
} else {
|
||
continue // Пропускаем другие типы
|
||
}
|
||
|
||
// Проверяем, нужно ли исправление
|
||
if (currentConsumableType !== correctConsumableType) {
|
||
console.log(`\n🔧 ИСПРАВЛЯЕМ ЗАКАЗ ${order.id}:`)
|
||
console.log(` Заказчик: ${order.organization?.name} (${organizationType})`)
|
||
console.log(` БЫЛО: ${currentConsumableType}`)
|
||
console.log(` СТАЛО: ${correctConsumableType}`)
|
||
|
||
// Обновляем заказ
|
||
await prisma.supplyOrder.update({
|
||
where: { id: order.id },
|
||
data: {
|
||
consumableType: correctConsumableType
|
||
}
|
||
})
|
||
|
||
fixedCount++
|
||
} else {
|
||
console.log(`✅ Заказ ${order.id} уже корректен (${organizationType} → ${currentConsumableType})`)
|
||
}
|
||
}
|
||
|
||
console.log(`\n📊 ИТОГИ:`)
|
||
console.log(` ✅ Исправлено заказов: ${fixedCount}`)
|
||
console.log(` 📋 Всего проверено: ${problemOrders.length}`)
|
||
|
||
if (fixedCount > 0) {
|
||
console.log(`\n⚠️ ВАЖНО: Нужно также пересоздать Supply записи с правильными типами!`)
|
||
console.log(` Проблемные Supply записи все еще имеют тип FULFILLMENT_CONSUMABLES`)
|
||
console.log(` но должны быть SELLER_CONSUMABLES для заказов от селлеров`)
|
||
}
|
||
|
||
} catch (error) {
|
||
console.error('❌ Ошибка при исправлении:', error.message)
|
||
} finally {
|
||
await prisma.$disconnect()
|
||
}
|
||
}
|
||
|
||
fixSupplyOrderTypes() |