GWM
This commit is contained in:
parent
d7750aa068
commit
55787d3cbd
@ -1,6 +1,6 @@
|
|||||||
const db = require("../models");
|
const db = require("../models");
|
||||||
const bcrypt = require("bcryptjs");
|
const bcrypt = require("bcryptjs");
|
||||||
const Establishment = db.establishment;
|
const Establishment = db.Establishment;
|
||||||
const EstablishmentUser = db.EstablishmentUser;
|
const EstablishmentUser = db.EstablishmentUser;
|
||||||
|
|
||||||
// Create Establishment + linked user
|
// Create Establishment + linked user
|
||||||
|
|||||||
@ -1,8 +1,14 @@
|
|||||||
const db = require("../models");
|
const db = require("../models");
|
||||||
const Submission = db.Submission;
|
const Submission = db.Submission;
|
||||||
const SubmissionProduct = db.SubmissionProduct;
|
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 Product = db.Product;
|
||||||
const { Op } = require("sequelize");
|
const { Op } = require("sequelize");
|
||||||
|
const { Sequelize } = require("sequelize");
|
||||||
const { sendEmail } = require("../services/email.service");
|
const { sendEmail } = require("../services/email.service");
|
||||||
|
|
||||||
|
|
||||||
@ -108,7 +114,26 @@ exports.submissionList = async (req, res) => {
|
|||||||
try {
|
try {
|
||||||
|
|
||||||
const data = await Submission.findAll({
|
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"]],
|
order: [["id", "DESC"]],
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -128,15 +153,35 @@ exports.viewSubmissionDetails = async (req, res) => {
|
|||||||
const data = await Submission.findByPk(id, {
|
const data = await Submission.findByPk(id, {
|
||||||
include: [
|
include: [
|
||||||
{
|
{
|
||||||
model: SubmissionProduct, as: "products" ,
|
model: Establishment,
|
||||||
|
as: "establishment" ,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
model: SubmissionProduct,
|
||||||
|
as: "products",
|
||||||
include: [
|
include: [
|
||||||
{
|
{
|
||||||
model: Product,
|
model: Product,
|
||||||
as: "product",
|
as: "product",
|
||||||
attributes: ["product_name", "hs_code", "hs_description"],
|
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"],
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
}
|
},
|
||||||
],
|
],
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@ -69,6 +69,14 @@ module.exports = (sequelize, DataTypes) => {
|
|||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
|
Establishment.associate = (models) => {
|
||||||
|
Establishment.hasMany(models.Submission, {
|
||||||
|
foreignKey: "establishment_id",
|
||||||
|
as: "establishment"
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
return Establishment;
|
return Establishment;
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -13,7 +13,7 @@ db.Sequelize = Sequelize;
|
|||||||
db.sequelize = sequelize;
|
db.sequelize = sequelize;
|
||||||
|
|
||||||
db.user = require("./user.model.js")(sequelize, DataTypes);
|
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.EstablishmentUser = require("./establishment_user.model")(sequelize, DataTypes);
|
||||||
db.Product = require("./product.model.js")(sequelize, DataTypes);
|
db.Product = require("./product.model.js")(sequelize, DataTypes);
|
||||||
db.EstablishmentProduct = require("./establishmentProduct.model")(sequelize, DataTypes);
|
db.EstablishmentProduct = require("./establishmentProduct.model")(sequelize, DataTypes);
|
||||||
@ -28,12 +28,12 @@ db.QuarterlyWindowsConfiguration = require("./quarterlyWindowsConfiguration.mode
|
|||||||
|
|
||||||
|
|
||||||
// Associations
|
// Associations
|
||||||
db.establishment.hasMany(db.EstablishmentUser, {
|
db.Establishment.hasMany(db.EstablishmentUser, {
|
||||||
foreignKey: "establishment_id",
|
foreignKey: "establishment_id",
|
||||||
as: "users",
|
as: "users",
|
||||||
});
|
});
|
||||||
|
|
||||||
db.EstablishmentUser.belongsTo(db.establishment, {
|
db.EstablishmentUser.belongsTo(db.Establishment, {
|
||||||
foreignKey: "establishment_id",
|
foreignKey: "establishment_id",
|
||||||
as: "establishment",
|
as: "establishment",
|
||||||
});
|
});
|
||||||
|
|||||||
@ -59,11 +59,23 @@ module.exports = (sequelize, DataTypes) => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
Submission.associate = (models) => {
|
Submission.associate = (models) => {
|
||||||
|
|
||||||
Submission.hasMany(models.SubmissionProduct, {
|
Submission.hasMany(models.SubmissionProduct, {
|
||||||
foreignKey: "submission_id",
|
foreignKey: "submission_id",
|
||||||
as: "products",
|
as: "products",
|
||||||
onDelete: "CASCADE",
|
onDelete: "CASCADE",
|
||||||
});
|
});
|
||||||
|
|
||||||
|
Submission.belongsTo(models.Establishment, {
|
||||||
|
foreignKey: "establishment_id",
|
||||||
|
as: "establishment"
|
||||||
|
});
|
||||||
|
|
||||||
|
Submission.belongsTo(models.EstablishmentUser, {
|
||||||
|
foreignKey: "created_by",
|
||||||
|
as: "created_user",
|
||||||
|
});
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
return Submission;
|
return Submission;
|
||||||
|
|||||||
@ -50,10 +50,28 @@ module.exports = (sequelize, DataTypes) => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
SubmissionProduct.associate = (models) => {
|
SubmissionProduct.associate = (models) => {
|
||||||
SubmissionProduct.belongsTo(models.Product, { // 'Product' with capital P
|
|
||||||
|
SubmissionProduct.belongsTo(models.Product, {
|
||||||
foreignKey: "product_id",
|
foreignKey: "product_id",
|
||||||
as: "product",
|
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;
|
return SubmissionProduct;
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user