GWM
This commit is contained in:
parent
d7750aa068
commit
55787d3cbd
@ -1,6 +1,6 @@
|
||||
const db = require("../models");
|
||||
const bcrypt = require("bcryptjs");
|
||||
const Establishment = db.establishment;
|
||||
const Establishment = db.Establishment;
|
||||
const EstablishmentUser = db.EstablishmentUser;
|
||||
|
||||
// Create Establishment + linked user
|
||||
|
||||
@ -1,8 +1,14 @@
|
||||
const db = require("../models");
|
||||
const Submission = db.Submission;
|
||||
const SubmissionProduct = db.SubmissionProduct;
|
||||
const Establishment = db.Establishment;
|
||||
const EstablishmentUser = db.EstablishmentUser;
|
||||
const UnitMaster = db.UnitMaster;
|
||||
const VariationReasonMaster = db.VariationReasonMaster;
|
||||
const ZeroTargetReasonMaster = db.ZeroTargetReasonMaster;
|
||||
const Product = db.Product;
|
||||
const { Op } = require("sequelize");
|
||||
const { Sequelize } = require("sequelize");
|
||||
const { sendEmail } = require("../services/email.service");
|
||||
|
||||
|
||||
@ -108,7 +114,26 @@ exports.submissionList = async (req, res) => {
|
||||
try {
|
||||
|
||||
const data = await Submission.findAll({
|
||||
// include: [{ model: SubmissionProduct, as: "products" }],
|
||||
include: [
|
||||
{
|
||||
model: Establishment,
|
||||
as: "establishment" ,
|
||||
attributes: ["factory_name","establishment_code","emirate"],
|
||||
},
|
||||
{
|
||||
model: EstablishmentUser,
|
||||
as: "created_user",
|
||||
attributes: ["name", "email"],
|
||||
},
|
||||
],
|
||||
attributes: {
|
||||
include: [
|
||||
[
|
||||
Sequelize.literal(`(SELECT COUNT(*) FROM submission_products AS sp WHERE sp.submission_id = submission.id )`),
|
||||
"product_count",
|
||||
],
|
||||
],
|
||||
},
|
||||
order: [["id", "DESC"]],
|
||||
});
|
||||
|
||||
@ -127,23 +152,43 @@ exports.viewSubmissionDetails = async (req, res) => {
|
||||
|
||||
const data = await Submission.findByPk(id, {
|
||||
include: [
|
||||
{
|
||||
model: SubmissionProduct, as: "products" ,
|
||||
include: [
|
||||
{
|
||||
model: Product,
|
||||
as: "product",
|
||||
attributes: ["product_name", "hs_code", "hs_description"],
|
||||
},
|
||||
],
|
||||
}
|
||||
],
|
||||
{
|
||||
model: Establishment,
|
||||
as: "establishment" ,
|
||||
},
|
||||
{
|
||||
model: SubmissionProduct,
|
||||
as: "products",
|
||||
include: [
|
||||
{
|
||||
model: Product,
|
||||
as: "product",
|
||||
attributes: ["id", "product_name", "hs_code", "hs_description"],
|
||||
},
|
||||
{
|
||||
model: UnitMaster,
|
||||
as: "unit",
|
||||
attributes: ["uom"],
|
||||
},
|
||||
{
|
||||
model: VariationReasonMaster,
|
||||
as: "variation_reason",
|
||||
attributes: ["reason"],
|
||||
},
|
||||
{
|
||||
model: ZeroTargetReasonMaster,
|
||||
as: "zero_target_reason",
|
||||
attributes: ["reason"],
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
});
|
||||
|
||||
|
||||
if (!data) return res.status(404).json({ status: "failed", message: "Not found" });
|
||||
|
||||
res.status(200).json({ status: "success", data });
|
||||
res.status(200).json({ status: "success", data });
|
||||
|
||||
} catch (err) {
|
||||
res.status(500).json({ status: "failed", message: err.message });
|
||||
|
||||
@ -68,6 +68,14 @@ module.exports = (sequelize, DataTypes) => {
|
||||
tableName: "establishments",
|
||||
}
|
||||
);
|
||||
|
||||
|
||||
Establishment.associate = (models) => {
|
||||
Establishment.hasMany(models.Submission, {
|
||||
foreignKey: "establishment_id",
|
||||
as: "establishment"
|
||||
});
|
||||
};
|
||||
|
||||
return Establishment;
|
||||
};
|
||||
|
||||
@ -13,7 +13,7 @@ db.Sequelize = Sequelize;
|
||||
db.sequelize = sequelize;
|
||||
|
||||
db.user = require("./user.model.js")(sequelize, DataTypes);
|
||||
db.establishment = require("./establishment.model")(sequelize, DataTypes);
|
||||
db.Establishment = require("./establishment.model")(sequelize, DataTypes);
|
||||
db.EstablishmentUser = require("./establishment_user.model")(sequelize, DataTypes);
|
||||
db.Product = require("./product.model.js")(sequelize, DataTypes);
|
||||
db.EstablishmentProduct = require("./establishmentProduct.model")(sequelize, DataTypes);
|
||||
@ -28,12 +28,12 @@ db.QuarterlyWindowsConfiguration = require("./quarterlyWindowsConfiguration.mode
|
||||
|
||||
|
||||
// Associations
|
||||
db.establishment.hasMany(db.EstablishmentUser, {
|
||||
db.Establishment.hasMany(db.EstablishmentUser, {
|
||||
foreignKey: "establishment_id",
|
||||
as: "users",
|
||||
});
|
||||
|
||||
db.EstablishmentUser.belongsTo(db.establishment, {
|
||||
db.EstablishmentUser.belongsTo(db.Establishment, {
|
||||
foreignKey: "establishment_id",
|
||||
as: "establishment",
|
||||
});
|
||||
|
||||
@ -59,11 +59,23 @@ module.exports = (sequelize, DataTypes) => {
|
||||
});
|
||||
|
||||
Submission.associate = (models) => {
|
||||
|
||||
Submission.hasMany(models.SubmissionProduct, {
|
||||
foreignKey: "submission_id",
|
||||
as: "products",
|
||||
onDelete: "CASCADE",
|
||||
});
|
||||
|
||||
Submission.belongsTo(models.Establishment, {
|
||||
foreignKey: "establishment_id",
|
||||
as: "establishment"
|
||||
});
|
||||
|
||||
Submission.belongsTo(models.EstablishmentUser, {
|
||||
foreignKey: "created_by",
|
||||
as: "created_user",
|
||||
});
|
||||
|
||||
};
|
||||
|
||||
return Submission;
|
||||
|
||||
@ -50,11 +50,29 @@ module.exports = (sequelize, DataTypes) => {
|
||||
};
|
||||
|
||||
SubmissionProduct.associate = (models) => {
|
||||
SubmissionProduct.belongsTo(models.Product, { // 'Product' with capital P
|
||||
|
||||
SubmissionProduct.belongsTo(models.Product, {
|
||||
foreignKey: "product_id",
|
||||
as: "product",
|
||||
});
|
||||
};
|
||||
|
||||
SubmissionProduct.belongsTo(models.UnitMaster, {
|
||||
foreignKey: "unit_id",
|
||||
as: "unit",
|
||||
});
|
||||
|
||||
SubmissionProduct.belongsTo(models.VariationReasonMaster, {
|
||||
foreignKey: "variation_reason_master_id",
|
||||
as: "variation_reason",
|
||||
});
|
||||
|
||||
SubmissionProduct.belongsTo(models.ZeroTargetReasonMaster, {
|
||||
foreignKey: "zero_target_reason_master_id",
|
||||
as: "zero_target_reason",
|
||||
});
|
||||
|
||||
|
||||
};
|
||||
|
||||
return SubmissionProduct;
|
||||
};
|
||||
|
||||
Loading…
Reference in New Issue
Block a user