diff --git a/resources/RD_Ordes/rdOrderController.js b/resources/RD_Ordes/rdOrderController.js index 30b9bd7..365ca69 100644 --- a/resources/RD_Ordes/rdOrderController.js +++ b/resources/RD_Ordes/rdOrderController.js @@ -2,6 +2,7 @@ import sendEmail from "../../Utils/sendEmail.js"; import RetailDistributor from "../RetailDistributor/RetailDistributorModel.js"; import { InvoiceRd } from "./invoiceModalRD.js"; import { RdOrder } from "./rdOrderModal.js"; +import { PDStock } from "../Stock/PdStockModel.js"; // Controller to create a new order by RD export const createOrderRD = async (req, res) => { @@ -379,7 +380,29 @@ export const processOrder = async (req, res) => { // Save the invoice const savedInvoice = await newInvoice.save(); + // Stock calculation part + const pdStock = await PDStock.findOne({ userId: order.addedBy._id }); + if (!pdStock) { + return res.status(404).json({ error: "PD Stock for the user not found" }); + } + // Update the stock for each product in the invoice + invoiceItems.forEach((item) => { + const productInStock = pdStock.products.find( + (p) => p.productid.toString() === item.productId.toString() + ); + + if (productInStock) { + productInStock.Stock -= item.processquantity; + // console.log(productInStock.Stock); + if (productInStock.Stock < 0) { + productInStock.Stock = 0; // Prevent stock from going negative + } + } + }); + + // Save the updated PD Stock + await pdStock.save(); // Update the order's order items with the remaining quantity let allItemsProcessed = true; // Flag to check if all items are processed