fix: завершение модуляризации системы и финальная организация проекта
## Структурные изменения: ### 📁 Организация архивных файлов: - Перенос всех устаревших правил в 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>
This commit is contained in:
113
scripts/fix-supply-quantity.cjs
Normal file
113
scripts/fix-supply-quantity.cjs
Normal file
@ -0,0 +1,113 @@
|
||||
const { PrismaClient } = require('@prisma/client')
|
||||
|
||||
const prisma = new PrismaClient()
|
||||
|
||||
async function fixSupplyQuantity() {
|
||||
try {
|
||||
console.log('🔧 ИСПРАВЛЯЕМ НЕПРАВИЛЬНОЕ КОЛИЧЕСТВО В SUPPLY ЗАПИСИ')
|
||||
console.log('=' .repeat(60))
|
||||
|
||||
// Находим проблемную Supply запись
|
||||
const problemSupply = await prisma.supply.findFirst({
|
||||
where: {
|
||||
article: 'SF-C-285405-970',
|
||||
type: 'FULFILLMENT_CONSUMABLES'
|
||||
}
|
||||
})
|
||||
|
||||
if (!problemSupply) {
|
||||
console.log('❌ Supply запись не найдена')
|
||||
return
|
||||
}
|
||||
|
||||
console.log('📦 НАЙДЕНА ПРОБЛЕМНАЯ SUPPLY ЗАПИСЬ:')
|
||||
console.log(` ID: ${problemSupply.id}`)
|
||||
console.log(` Название: ${problemSupply.name}`)
|
||||
console.log(` Артикул: ${problemSupply.article}`)
|
||||
console.log(` НЕПРАВИЛЬНОЕ quantity: ${problemSupply.quantity}`)
|
||||
console.log(` Текущий остаток: ${problemSupply.currentStock}`)
|
||||
console.log('')
|
||||
|
||||
// Находим связанный заказ поставки чтобы узнать ПРАВИЛЬНОЕ количество
|
||||
const relatedOrder = await prisma.supplyOrder.findFirst({
|
||||
where: {
|
||||
status: 'DELIVERED',
|
||||
items: {
|
||||
some: {
|
||||
product: {
|
||||
article: 'SF-C-285405-970'
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
include: {
|
||||
items: {
|
||||
include: {
|
||||
product: true
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
if (!relatedOrder) {
|
||||
console.log('❌ Связанный заказ поставки не найден')
|
||||
return
|
||||
}
|
||||
|
||||
const orderItem = relatedOrder.items.find(item => item.product.article === 'SF-C-285405-970')
|
||||
|
||||
if (!orderItem) {
|
||||
console.log('❌ Товар в заказе не найден')
|
||||
return
|
||||
}
|
||||
|
||||
const correctQuantity = orderItem.quantity
|
||||
|
||||
console.log('📋 СВЯЗАННЫЙ ЗАКАЗ ПОСТАВКИ:')
|
||||
console.log(` ID заказа: ${relatedOrder.id}`)
|
||||
console.log(` ПРАВИЛЬНОЕ quantity: ${correctQuantity}`)
|
||||
console.log('')
|
||||
|
||||
if (problemSupply.quantity === correctQuantity) {
|
||||
console.log('✅ Количество уже корректно, исправление не требуется')
|
||||
return
|
||||
}
|
||||
|
||||
console.log('🔧 ИСПРАВЛЯЕМ SUPPLY ЗАПИСЬ:')
|
||||
console.log(` БЫЛО: quantity = ${problemSupply.quantity}`)
|
||||
console.log(` СТАЛО: quantity = ${correctQuantity}`)
|
||||
console.log('')
|
||||
|
||||
// Исправляем quantity
|
||||
const updatedSupply = await prisma.supply.update({
|
||||
where: { id: problemSupply.id },
|
||||
data: {
|
||||
quantity: correctQuantity, // Правильное количество из заказа
|
||||
}
|
||||
})
|
||||
|
||||
console.log('✅ SUPPLY ЗАПИСЬ ИСПРАВЛЕНА!')
|
||||
console.log(` ID: ${updatedSupply.id}`)
|
||||
console.log(` Quantity: ${updatedSupply.quantity} (исправлено)`)
|
||||
console.log(` CurrentStock: ${updatedSupply.currentStock} (остался без изменений)`)
|
||||
console.log('')
|
||||
|
||||
console.log('🎯 ОЖИДАЕМЫЙ РЕЗУЛЬТАТ В UI:')
|
||||
console.log(` Заказано: ${correctQuantity} шт`)
|
||||
console.log(` Поставлено: ${correctQuantity} шт`)
|
||||
console.log(` Остаток: ${updatedSupply.currentStock} шт`)
|
||||
console.log(` Отправлено: 0 шт`)
|
||||
|
||||
console.log('')
|
||||
console.log('=' .repeat(60))
|
||||
console.log('✅ ИСПРАВЛЕНИЕ ЗАВЕРШЕНО')
|
||||
|
||||
} catch (error) {
|
||||
console.error('❌ ОШИБКА при исправлении:', error)
|
||||
console.error(' Детали:', error.message)
|
||||
} finally {
|
||||
await prisma.$disconnect()
|
||||
}
|
||||
}
|
||||
|
||||
fixSupplyQuantity()
|
Reference in New Issue
Block a user