GWM : ern new column and isic master
This commit is contained in:
parent
443b8cab51
commit
698f1e2487
@ -9,6 +9,7 @@ const Emirate = db.Emirate;
|
|||||||
const user = db.user;
|
const user = db.user;
|
||||||
const User = db.user;
|
const User = db.user;
|
||||||
const Product = db.Product;
|
const Product = db.Product;
|
||||||
|
const IsicMaster = db.IsicMaster;
|
||||||
const ExcelJS = require("exceljs");
|
const ExcelJS = require("exceljs");
|
||||||
const { Op, Sequelize } = require("sequelize");
|
const { Op, Sequelize } = require("sequelize");
|
||||||
const { sendEmail } = require("../services/emailHelper");
|
const { sendEmail } = require("../services/emailHelper");
|
||||||
@ -59,7 +60,7 @@ exports.createEstablishment = async (req, res) => {
|
|||||||
"permanent_factory_code",
|
"permanent_factory_code",
|
||||||
"industry_code",
|
"industry_code",
|
||||||
"license_number",
|
"license_number",
|
||||||
"isic_code"
|
"isic_code",
|
||||||
].forEach(key => {
|
].forEach(key => {
|
||||||
if (req.body[key] === "") req.body[key] = null;
|
if (req.body[key] === "") req.body[key] = null;
|
||||||
});
|
});
|
||||||
@ -107,7 +108,8 @@ exports.createEstablishment = async (req, res) => {
|
|||||||
total_employees,
|
total_employees,
|
||||||
created_by,
|
created_by,
|
||||||
establishment_user,
|
establishment_user,
|
||||||
establishment_products
|
establishment_products,
|
||||||
|
ERN
|
||||||
} = req.body;
|
} = req.body;
|
||||||
|
|
||||||
// Basic Validation
|
// Basic Validation
|
||||||
@ -148,10 +150,10 @@ exports.createEstablishment = async (req, res) => {
|
|||||||
// });
|
// });
|
||||||
// }
|
// }
|
||||||
if (!isic_code) {
|
if (!isic_code) {
|
||||||
return res.status(400).send({
|
return res.status(400).send({
|
||||||
status: "failed",
|
status: "failed",
|
||||||
message: "Missing required field: Industry Code (Current Production)",
|
message: "Missing required field: Industry Code (Current Production)",
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
if (!corporate_email) {
|
if (!corporate_email) {
|
||||||
return res.status(400).send({
|
return res.status(400).send({
|
||||||
@ -240,6 +242,7 @@ exports.createEstablishment = async (req, res) => {
|
|||||||
non_emirati_female,
|
non_emirati_female,
|
||||||
total_emirati,
|
total_emirati,
|
||||||
total_employees,
|
total_employees,
|
||||||
|
ERN: sanitizeStringValue(ERN),
|
||||||
created_by: req.body.created_by || req.user.id,
|
created_by: req.body.created_by || req.user.id,
|
||||||
created_at: new Date(),
|
created_at: new Date(),
|
||||||
});
|
});
|
||||||
@ -725,6 +728,8 @@ exports.updateEstablishment = async (req, res) => {
|
|||||||
estData.updated_at = estData.updated_at || new Date();
|
estData.updated_at = estData.updated_at || new Date();
|
||||||
// update establishment
|
// update establishment
|
||||||
await establishment.update(estData);
|
await establishment.update(estData);
|
||||||
|
|
||||||
|
|
||||||
if (req.body.is_active === true || req.body.is_active === false) {
|
if (req.body.is_active === true || req.body.is_active === false) {
|
||||||
await EstablishmentUser.update(
|
await EstablishmentUser.update(
|
||||||
{
|
{
|
||||||
@ -2069,3 +2074,44 @@ exports.downloadCompanyProfileSample = async (req, res) => {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
exports.searchIsicMaster = async (req, res) => {
|
||||||
|
|
||||||
|
const { code, description } = req.query;
|
||||||
|
|
||||||
|
try {
|
||||||
|
const whereClause = { is_active: true };
|
||||||
|
|
||||||
|
if (code || description) {
|
||||||
|
const orConditions = [];
|
||||||
|
|
||||||
|
if (code) {
|
||||||
|
orConditions.push({ code: { [Op.like]: `%${code}%` } });
|
||||||
|
}
|
||||||
|
|
||||||
|
if (description) {
|
||||||
|
orConditions.push({ description: { [Op.like]: `%${description}%` } });
|
||||||
|
}
|
||||||
|
|
||||||
|
whereClause[Op.or] = orConditions;
|
||||||
|
}
|
||||||
|
|
||||||
|
const rows = await IsicMaster.findAll({ where: whereClause });
|
||||||
|
|
||||||
|
return res.status(200).json({
|
||||||
|
success: "success",
|
||||||
|
count: rows.length,
|
||||||
|
data: rows,
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
} catch (error) {
|
||||||
|
return res.status(500).json({
|
||||||
|
success: "failed",
|
||||||
|
message: "Internal server error",
|
||||||
|
error: error.message,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
|||||||
31
app/models/IsicMaster.model.js
Normal file
31
app/models/IsicMaster.model.js
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
// models/IsicMaster.js
|
||||||
|
module.exports = (sequelize, DataTypes) => {
|
||||||
|
const IsicMaster = sequelize.define(
|
||||||
|
"IsicMaster",
|
||||||
|
{
|
||||||
|
id: {
|
||||||
|
type: DataTypes.INTEGER,
|
||||||
|
autoIncrement: true,
|
||||||
|
primaryKey: true,
|
||||||
|
},
|
||||||
|
code: {
|
||||||
|
type: DataTypes.STRING(20),
|
||||||
|
allowNull: true,
|
||||||
|
},
|
||||||
|
description: {
|
||||||
|
type: DataTypes.STRING(100),
|
||||||
|
allowNull: false,
|
||||||
|
},
|
||||||
|
is_active: {
|
||||||
|
type: DataTypes.BOOLEAN,
|
||||||
|
defaultValue: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
tableName: "isic_master",
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
return IsicMaster;
|
||||||
|
};
|
||||||
|
|
||||||
@ -73,6 +73,7 @@ module.exports = (sequelize, DataTypes) => {
|
|||||||
type: DataTypes.INTEGER,
|
type: DataTypes.INTEGER,
|
||||||
allowNull: true,
|
allowNull: true,
|
||||||
},
|
},
|
||||||
|
ERN: { type: DataTypes.STRING },
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
timestamps: false,
|
timestamps: false,
|
||||||
|
|||||||
@ -34,6 +34,7 @@ db.Isic2DigitIndices = require("./isic2DigitIndices.model.js")(sequelize, DataTy
|
|||||||
db.Isic3DigitIndices = require("./isic3DigitIndices.model.js")(sequelize, DataTypes);
|
db.Isic3DigitIndices = require("./isic3DigitIndices.model.js")(sequelize, DataTypes);
|
||||||
db.Isic4DigitIndices = require("./isic4DigitIndices.model.js")(sequelize, DataTypes);
|
db.Isic4DigitIndices = require("./isic4DigitIndices.model.js")(sequelize, DataTypes);
|
||||||
db.CalculationLog = require("./calculation_log.model.js")(sequelize, DataTypes);
|
db.CalculationLog = require("./calculation_log.model.js")(sequelize, DataTypes);
|
||||||
|
db.IsicMaster = require("./IsicMaster.model.js")(sequelize, DataTypes);
|
||||||
// Associations
|
// Associations
|
||||||
db.Establishment.hasMany(db.EstablishmentUser, {
|
db.Establishment.hasMany(db.EstablishmentUser, {
|
||||||
foreignKey: "establishment_id",
|
foreignKey: "establishment_id",
|
||||||
|
|||||||
@ -591,6 +591,7 @@ router.get("/testEmail", establishmentController.testEmail);
|
|||||||
* non_emirati_female: { type: integer }
|
* non_emirati_female: { type: integer }
|
||||||
* total_emirati: { type: integer }
|
* total_emirati: { type: integer }
|
||||||
* total_employees: { type: integer }
|
* total_employees: { type: integer }
|
||||||
|
* ERN: { type: string }
|
||||||
* created_by: { type: integer }
|
* created_by: { type: integer }
|
||||||
* establishment_user:
|
* establishment_user:
|
||||||
* type: object
|
* type: object
|
||||||
@ -767,6 +768,7 @@ router.get("/establishments/:id",[verifySignature, verifyToken], establishmentCo
|
|||||||
* non_emirati_female: { type: integer }
|
* non_emirati_female: { type: integer }
|
||||||
* total_emirati: { type: integer }
|
* total_emirati: { type: integer }
|
||||||
* total_employees: { type: integer }
|
* total_employees: { type: integer }
|
||||||
|
* ERN: { type: string }
|
||||||
* updated_by: { type: integer }
|
* updated_by: { type: integer }
|
||||||
* establishment_products:
|
* establishment_products:
|
||||||
* type: array
|
* type: array
|
||||||
@ -849,6 +851,31 @@ router.post("/establishments/uploadCSV",[verifySignature, verifyToken, upload.si
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @swagger
|
||||||
|
* /api/searchIsicMaster:
|
||||||
|
* get:
|
||||||
|
* summary: Get all Isic Master data
|
||||||
|
* tags: [Establishments]
|
||||||
|
* security:
|
||||||
|
* - appSignature: []
|
||||||
|
* - CSRF: []
|
||||||
|
* cookieAuth: [] # or bearerAuth: [] if you use Authorization header
|
||||||
|
* parameters:
|
||||||
|
* - in: query
|
||||||
|
* name: code
|
||||||
|
* schema: { type: string }
|
||||||
|
* - in: query
|
||||||
|
* name: description
|
||||||
|
* schema: { type: string }
|
||||||
|
* responses:
|
||||||
|
* 200:
|
||||||
|
* description: Fetched successfully
|
||||||
|
* 500:
|
||||||
|
* description: Internal server error
|
||||||
|
*/
|
||||||
|
router.get("/searchIsicMaster",[verifySignature, verifyToken], establishmentController.searchIsicMaster);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user