diff --git a/website/app/controllers/orders_controller.ts b/website/app/controllers/orders_controller.ts index dc330ce..87f94a6 100644 --- a/website/app/controllers/orders_controller.ts +++ b/website/app/controllers/orders_controller.ts @@ -52,19 +52,29 @@ export default class OrdersController { } const successfulOrdersOfGivenProduct = await OrderProduct.query() + .join('orders', 'order_products.order_id', 'orders.id') + .where('order_products.product_id', productId) + .where('orders.status', 'Success') + + const successfulOrdersOfGivenProductPerUser = await OrderProduct.query() .join('orders', 'order_products.order_id', 'orders.id') .where('orders.user_id', userId) .where('order_products.product_id', productId) .where('orders.status', 'Success') + const stockUsed = successfulOrdersOfGivenProduct.reduce( + (acc, orderProduct) => acc + orderProduct.quantity, + 0 + ) + - const totalQuantity = successfulOrdersOfGivenProduct.reduce( + const totalQuantity = successfulOrdersOfGivenProductPerUser.reduce( (acc, orderProduct) => acc + orderProduct.quantity, 0 ) - if (product.stock < quantity) { + if (product.stock < quantity + stockUsed) { return response .status(400) .json({ message: `Não há mais stock do produto ${product.name}` }) diff --git a/website/inertia/pages/payments/page.tsx b/website/inertia/pages/payments/page.tsx index 77ba506..4f89379 100644 --- a/website/inertia/pages/payments/page.tsx +++ b/website/inertia/pages/payments/page.tsx @@ -129,7 +129,7 @@ export default function TicketSalePage( { - router.visit('/tickets') + router.visit('/') }} />