Establishment mapped count added in product list : GWM
This commit is contained in:
parent
5c4bc028ba
commit
28fcfbebd4
@ -1,10 +1,13 @@
|
|||||||
const db = require("../models");
|
|
||||||
const Product = db.Product;
|
|
||||||
const fs = require("fs");
|
const fs = require("fs");
|
||||||
const csv = require("csv-parser");
|
const csv = require("csv-parser");
|
||||||
const path = require("path");
|
const path = require("path");
|
||||||
|
const db = require("../models");
|
||||||
|
const { Sequelize } = require("sequelize");
|
||||||
|
const Product = db.Product;
|
||||||
const UnitMaster = db.UnitMaster;
|
const UnitMaster = db.UnitMaster;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
exports.createProduct = async (req, res) => {
|
exports.createProduct = async (req, res) => {
|
||||||
try {
|
try {
|
||||||
|
|
||||||
@ -13,7 +16,7 @@ exports.createProduct = async (req, res) => {
|
|||||||
res.status(201).send({'status':"success",'message':"created successfully",'data': data });
|
res.status(201).send({'status':"success",'message':"created successfully",'data': data });
|
||||||
|
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
res.status(500).send({'status':"failed",'message':err.message });
|
res.status(500).send({'status':"failed",'message':error.message });
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -21,6 +24,16 @@ exports.getAllProducts = async (req, res) => {
|
|||||||
try {
|
try {
|
||||||
|
|
||||||
const data = await Product.findAll({
|
const data = await Product.findAll({
|
||||||
|
attributes: {
|
||||||
|
include: [
|
||||||
|
[
|
||||||
|
Sequelize.literal(
|
||||||
|
`(SELECT COUNT(*) FROM establishment_products AS EP WHERE EP.product_id = products.id)`
|
||||||
|
),
|
||||||
|
"mapped_establishment_count",
|
||||||
|
],
|
||||||
|
],
|
||||||
|
},
|
||||||
include: [
|
include: [
|
||||||
{
|
{
|
||||||
model: UnitMaster,
|
model: UnitMaster,
|
||||||
@ -28,12 +41,15 @@ exports.getAllProducts = async (req, res) => {
|
|||||||
attributes: ["uom"],
|
attributes: ["uom"],
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
|
order: [
|
||||||
|
[Sequelize.literal("COALESCE(products.updated_at, products.created_at) DESC")],
|
||||||
|
],
|
||||||
});
|
});
|
||||||
|
|
||||||
res.status(200).send({'status':"success",'message':"Fetched successfully",'product_count': data.length, 'data': data });
|
res.status(200).send({'status':"success",'message':"Fetched successfully",'product_count': data.length, 'data': data });
|
||||||
|
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
res.status(500).send({'status':"failed",'message':err.message });
|
res.status(500).send({'status':"failed",'message':error.message });
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -47,24 +63,30 @@ exports.getProductById = async (req, res) => {
|
|||||||
res.status(200).send({'status':"success",'message':"Fetched successfully",'data': data });
|
res.status(200).send({'status':"success",'message':"Fetched successfully",'data': data });
|
||||||
|
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
res.status(500).send({'status':"failed",'message':err.message });
|
res.status(500).send({'status':"failed",'message':error.message });
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
exports.updateProduct = async (req, res) => {
|
exports.updateProduct = async (req, res) => {
|
||||||
try {
|
try {
|
||||||
|
|
||||||
const [updated] = await Product.update(req.body, { where: { id: req.params.id } });
|
const object = {
|
||||||
|
...req.body,
|
||||||
|
updated_at: Sequelize.literal("NOW()")
|
||||||
|
};
|
||||||
|
|
||||||
|
const [updated] = await Product.update(object, { where: { id: req.params.id } });
|
||||||
|
|
||||||
if (!updated) res.status(404).send({'status':"failed",'message':"Record Not found",'data': "" });
|
if (!updated) res.status(404).send({'status':"failed",'message':"Record Not found",'data': "" });
|
||||||
|
|
||||||
res.status(200).send({'status':"success",'message':"Updated successfully",'data': "" });
|
res.status(200).send({'status':"success",'message':"Updated successfully",'data': "" });
|
||||||
|
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
res.status(500).send({'status':"failed",'message':err.message });
|
res.status(500).send({'status':"failed",'message':error.message });
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
exports.deleteProduct = async (req, res) => {
|
exports.deleteProduct = async (req, res) => {
|
||||||
try {
|
try {
|
||||||
|
|
||||||
@ -75,9 +97,10 @@ exports.deleteProduct = async (req, res) => {
|
|||||||
res.status(200).send({'status':"success",'message':"Deleted successfully",'data': "" });
|
res.status(200).send({'status':"success",'message':"Deleted successfully",'data': "" });
|
||||||
|
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
res.status(500).send({'status':"failed",'message':err.message });
|
res.status(500).send({'status':"failed",'message':error.message });
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
exports.uploadProductsFromCSV = async (req, res) => {
|
exports.uploadProductsFromCSV = async (req, res) => {
|
||||||
try {
|
try {
|
||||||
// Check if file exists
|
// Check if file exists
|
||||||
@ -199,7 +222,7 @@ exports.downloadProductSample = async (req, res) => {
|
|||||||
try {
|
try {
|
||||||
const filePath = path.join(__dirname, "../writable/uploads/sample_files/products_upload_sample.csv");
|
const filePath = path.join(__dirname, "../writable/uploads/sample_files/products_upload_sample.csv");
|
||||||
return res.download(filePath, "products_upload_sample.csv");
|
return res.download(filePath, "products_upload_sample.csv");
|
||||||
} catch (err) {
|
} catch (error) {
|
||||||
return res.status(500).send({ status: "failed", message: err.message });
|
return res.status(500).send({ status: "failed", message: error.message });
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
@ -27,7 +27,6 @@ exports.getAllUnits = async (req, res) => {
|
|||||||
],
|
],
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
logging: console.log
|
|
||||||
});
|
});
|
||||||
|
|
||||||
res.status(200).json({ status: "success",unit_count : units.length, data: units });
|
res.status(200).json({ status: "success",unit_count : units.length, data: units });
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user