Добавлено обновление кэша для расходников фулфилмента в компонентах создания и отображения заказов. Реализованы новые GraphQL запросы для получения данных о расходниках. Удалены устаревшие компоненты уведомлений о непринятых поставках для упрощения интерфейса. Оптимизирована логика отображения и обновления данных о заказах.
This commit is contained in:
@ -691,7 +691,7 @@ export const resolvers = {
|
||||
});
|
||||
},
|
||||
|
||||
// Мои расходники
|
||||
// Мои расходники (объединенные данные из supply и supplyOrder)
|
||||
mySupplies: async (_: unknown, __: unknown, context: Context) => {
|
||||
if (!context.user) {
|
||||
throw new GraphQLError("Требуется авторизация", {
|
||||
@ -708,11 +708,101 @@ export const resolvers = {
|
||||
throw new GraphQLError("У пользователя нет организации");
|
||||
}
|
||||
|
||||
return await prisma.supply.findMany({
|
||||
// Получаем расходники из таблицы supply (уже доставленные)
|
||||
const existingSupplies = await prisma.supply.findMany({
|
||||
where: { organizationId: currentUser.organization.id },
|
||||
include: { organization: true },
|
||||
orderBy: { createdAt: "desc" },
|
||||
});
|
||||
|
||||
// Получаем заказы поставок, созданные этим фулфилмент-центром для себя
|
||||
// Показываем только заказы, которые еще не доставлены
|
||||
const ourSupplyOrders = await prisma.supplyOrder.findMany({
|
||||
where: {
|
||||
organizationId: currentUser.organization.id, // Создали мы
|
||||
fulfillmentCenterId: currentUser.organization.id, // Получатель - мы
|
||||
status: {
|
||||
in: ["PENDING", "CONFIRMED", "IN_TRANSIT"], // Только не доставленные заказы
|
||||
},
|
||||
},
|
||||
include: {
|
||||
partner: true,
|
||||
items: {
|
||||
include: {
|
||||
product: {
|
||||
include: {
|
||||
category: true,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
orderBy: { createdAt: "desc" },
|
||||
});
|
||||
|
||||
// Преобразуем заказы поставок в формат supply для единообразия
|
||||
const suppliesFromOrders = ourSupplyOrders.flatMap((order) =>
|
||||
order.items.map((item) => ({
|
||||
id: `order-${order.id}-${item.id}`,
|
||||
name: item.product.name,
|
||||
description:
|
||||
item.product.description || `Заказ от ${order.partner.name}`,
|
||||
price: item.price,
|
||||
quantity: item.quantity,
|
||||
unit: "шт",
|
||||
category: item.product.category?.name || "Расходники",
|
||||
status:
|
||||
order.status === "PENDING"
|
||||
? "in-transit"
|
||||
: order.status === "CONFIRMED"
|
||||
? "in-transit"
|
||||
: order.status === "IN_TRANSIT"
|
||||
? "in-transit"
|
||||
: "available",
|
||||
date: order.createdAt,
|
||||
supplier: order.partner.name || order.partner.fullName || "Не указан",
|
||||
minStock: Math.round(item.quantity * 0.1),
|
||||
currentStock: order.status === "DELIVERED" ? item.quantity : 0,
|
||||
imageUrl: null,
|
||||
createdAt: order.createdAt,
|
||||
updatedAt: order.updatedAt,
|
||||
organizationId: currentUser.organization.id,
|
||||
organization: currentUser.organization,
|
||||
shippedQuantity: 0,
|
||||
}))
|
||||
);
|
||||
|
||||
// Проверяем все заказы для этого фулфилмент-центра для отладки
|
||||
const allOurOrders = await prisma.supplyOrder.findMany({
|
||||
where: {
|
||||
organizationId: currentUser.organization.id,
|
||||
fulfillmentCenterId: currentUser.organization.id,
|
||||
},
|
||||
select: { id: true, status: true, createdAt: true },
|
||||
});
|
||||
|
||||
// Логирование для отладки
|
||||
console.log("🔥🔥🔥 MY_SUPPLIES RESOLVER CALLED 🔥🔥🔥");
|
||||
console.log("📊 mySupplies resolver debug:", {
|
||||
organizationId: currentUser.organization.id,
|
||||
existingSuppliesCount: existingSupplies.length,
|
||||
ourSupplyOrdersCount: ourSupplyOrders.length,
|
||||
suppliesFromOrdersCount: suppliesFromOrders.length,
|
||||
allOrdersCount: allOurOrders.length,
|
||||
allOrdersStatuses: allOurOrders.map((o) => ({
|
||||
id: o.id,
|
||||
status: o.status,
|
||||
createdAt: o.createdAt,
|
||||
})),
|
||||
filteredOrdersStatuses: ourSupplyOrders.map((o) => ({
|
||||
id: o.id,
|
||||
status: o.status,
|
||||
})),
|
||||
});
|
||||
console.log("🔥🔥🔥 END MY_SUPPLIES RESOLVER 🔥🔥🔥");
|
||||
|
||||
// Объединяем существующие расходники и расходники из заказов
|
||||
return [...existingSupplies, ...suppliesFromOrders];
|
||||
},
|
||||
|
||||
// Заказы поставок расходников
|
||||
|
Reference in New Issue
Block a user