From ba690d4913511cd5152fce1b72efdbf96c8e873d Mon Sep 17 00:00:00 2001 From: Sibunnayak Date: Sat, 2 Nov 2024 12:18:55 +0530 Subject: [PATCH] update the reports and fix bug --- public/uploads/Add-RD.xlsx | Bin 11060 -> 0 bytes resources/Reports/OpeningInventoryReports.js | 20 +++++++++--------- .../RetailDistributorController.js | 2 +- resources/Stock/StockController.js | 12 +++++------ 4 files changed, 17 insertions(+), 17 deletions(-) delete mode 100644 public/uploads/Add-RD.xlsx diff --git a/public/uploads/Add-RD.xlsx b/public/uploads/Add-RD.xlsx deleted file mode 100644 index 3c9f1f344beae7b0e08a006b228baee60e696dd5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11060 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 diff --git a/resources/Reports/OpeningInventoryReports.js b/resources/Reports/OpeningInventoryReports.js index 8ae5746..81406ab 100644 --- a/resources/Reports/OpeningInventoryReports.js +++ b/resources/Reports/OpeningInventoryReports.js @@ -40,7 +40,7 @@ export const getProductsWithOpenInventoryInfo = async (req, res) => { { $group: { _id: "$products.SKU", - pdCount: { $sum: 1 }, + totalPdOpeningInventory: { $sum: "$products.openingInventory" }, }, }, ]); @@ -57,20 +57,20 @@ export const getProductsWithOpenInventoryInfo = async (req, res) => { { $group: { _id: "$products.SKU", - rdCount: { $sum: 1 }, + totalRdOpeningInventory: { $sum: "$products.openingInventory" }, }, }, ]); - // Step 5: Prepare a mapping of PD and RD counts by SKU + // Step 5: Prepare a mapping of PD and RD copening inventories by SKU const pdMap = {}; pdOIs.forEach((pd) => { - pdMap[pd._id] = pd.pdCount; + pdMap[pd._id] = pd.totalPdOpeningInventory; }); const rdMap = {}; rdOIs.forEach((rd) => { - rdMap[rd._id] = rd.rdCount; + rdMap[rd._id] = rd.totalRdOpeningInventory; }); // Step 6: Combine product info with PD/RD counts using SKU @@ -139,7 +139,7 @@ export const getProductsWithStockInfo = async (req, res) => { { $group: { _id: "$products.SKU", - pdCount: { $sum: 1 }, + totalpdStock: { $sum: "$products.Stock" }, }, }, ]); @@ -156,20 +156,20 @@ export const getProductsWithStockInfo = async (req, res) => { { $group: { _id: "$products.SKU", - rdCount: { $sum: 1 }, + totalrdStock: { $sum: "$products.Stock" }, }, }, ]); - // Step 5: Prepare a mapping of PD and RD counts by SKU + // Step 5: Prepare a mapping of PD and RD Stocks by SKU const pdMap = {}; pdStocks.forEach((pd) => { - pdMap[pd._id] = pd.pdCount; + pdMap[pd._id] = pd.totalpdStock; }); const rdMap = {}; rdStocks.forEach((rd) => { - rdMap[rd._id] = rd.rdCount; + rdMap[rd._id] = rd.totalrdStock; }); // Step 6: Combine product info with PD/RD counts using SKU diff --git a/resources/RetailDistributor/RetailDistributorController.js b/resources/RetailDistributor/RetailDistributorController.js index 97ededc..1f7b23a 100644 --- a/resources/RetailDistributor/RetailDistributorController.js +++ b/resources/RetailDistributor/RetailDistributorController.js @@ -242,7 +242,7 @@ export const uploadRetaildistributors = async (req, res) => { tradeName: item.trade_name, user: Retaildistributor._id, }; - console.log(addressData); + // console.log(addressData); let addressUpdated = false; if (existingAddress) { const addressUpdates = []; diff --git a/resources/Stock/StockController.js b/resources/Stock/StockController.js index 91e4240..3a4515e 100644 --- a/resources/Stock/StockController.js +++ b/resources/Stock/StockController.js @@ -46,9 +46,9 @@ export const uploadOpeningInventorypd = async (req, res) => { // Map headers from the Excel file to your schema const headerMapping = { - SKU: "SKU", + "SKU": "SKU", "Product Name": "productName", - "Opening Inventory (Qty)": "openingInventory", + "Opening Inventory (Qty in Ltr/ Kg) ": "openingInventory", }; const requiredHeaders = Object.keys(headerMapping); @@ -262,9 +262,9 @@ export const uploadOpeningInventoryrd = async (req, res) => { // Map headers from the Excel file to your schema const headerMapping = { - SKU: "SKU", + "SKU": "SKU", "Product Name": "productName", - "Opening Inventory (Qty)": "openingInventory", + "Opening Inventory (Qty in Ltr/ Kg) ": "openingInventory", }; const requiredHeaders = Object.keys(headerMapping); @@ -311,7 +311,7 @@ export const uploadOpeningInventoryrd = async (req, res) => { item.openingInventory === "" ) { missingFields.add("Opening Inventory (Qty)"); - } + } // Combine all errors into a single message let errorMessage = ""; if (missingFields.size > 0) { @@ -339,7 +339,7 @@ export const uploadOpeningInventoryrd = async (req, res) => { }); continue; } - + // Cast opening inventory to a number to handle leading zeros and ensure numeric comparisons const newOpeningInventory = Number(item.openingInventory); // Check if product exists in user's stock