diff --git a/app/controllers/quarterlyWindowsConfiguration.controller.js b/app/controllers/quarterlyWindowsConfiguration.controller.js index e9f8fa5..8712a4c 100644 --- a/app/controllers/quarterlyWindowsConfiguration.controller.js +++ b/app/controllers/quarterlyWindowsConfiguration.controller.js @@ -7,7 +7,6 @@ const EstablishmentUser = db.EstablishmentUser; const { sendEmailService } = require("../services/email.service"); // Create new configuration - exports.createConfig = async (req, res) => { try { @@ -100,7 +99,7 @@ exports.getAllConfigs = async (req, res) => { ], ], }, - order: [["year", "DESC"]], + order: [[Sequelize.literal("COALESCE(updated_at, created_at)"), "DESC"]], }); res .status(200) diff --git a/app/controllers/submission.controller.js b/app/controllers/submission.controller.js index 7ccc24f..1ea370e 100644 --- a/app/controllers/submission.controller.js +++ b/app/controllers/submission.controller.js @@ -312,18 +312,24 @@ exports.submissionHistory = async (req, res) => { "product_count" ], [ - Sequelize.literal(`(SELECT SUM(sp2.current_cost) FROM submission_products AS sp2 WHERE sp2.submission_id = submission.id)`), + Sequelize.literal(`(SELECT ROUND(SUM(sp2.current_cost), 4) FROM submission_products AS sp2 WHERE sp2.submission_id = submission.id)`), "total_cost" ] ] }, where: { establishment_id }, order: [["id", "DESC"]], + }); + const result = data.map(obj => { + const record = obj.get({ plain: true }); + + const num = Number(record.total_cost); + if (!isNaN(num)) { + record.total_cost = Number.isInteger(num) ? num : num.toFixed(4); + } + return record; }); - - - res.status(200).json({ status: "success", data }); - + res.status(200).json({ status: "success", data: result }); } catch (err) { res.status(500).json({ status: "failed", message: err.message }); } diff --git a/app/models/quarterlyWindowsConfiguration.model.js b/app/models/quarterlyWindowsConfiguration.model.js index a0263d9..6b18573 100644 --- a/app/models/quarterlyWindowsConfiguration.model.js +++ b/app/models/quarterlyWindowsConfiguration.model.js @@ -10,6 +10,7 @@ module.exports = (sequelize, DataTypes) => { survey_name: { type: DataTypes.STRING(10), allowNull: false, + unique: true, }, year: { type: DataTypes.INTEGER, diff --git a/app/uploads/company_profile_upload_sample.csv b/app/uploads/company_profile_upload_sample.csv index ccb63ac..043f223 100644 --- a/app/uploads/company_profile_upload_sample.csv +++ b/app/uploads/company_profile_upload_sample.csv @@ -1 +1 @@ -Establishment Code * (Mandatory),Factory Name * (Mandatory),User Name * (Mandatory),Email * (Mandatory),Emirate * (Mandatory),HS Code 1 * (Mandatory),HS Code 2,HS Code 3,HS Code 4,HS Code 5,Permanent Factory Code,Industry Code Business Register,Industry Code Current Production,Description,Industry Code Mismatch Remarks,Establishment Address,City/Town,Postal Code,PO Box,Makani Number,Contact Person Name,Contact Person Designation,Mobile Number,Website,Number of Emirati Male,Number of Emirati Female,Number of Non-Emirati Male,Number of Non-Emirati Female +Establishment Id * (Mandatory),Factory Name * (Mandatory),User Name * (Mandatory),Email * (Mandatory),Emirate * (Mandatory),HS Code 1 * (Mandatory),HS Code 2,HS Code 3,HS Code 4,HS Code 5,Permanent Factory Code,Industry Code Business Register,Industry Code Current Production,Description,Industry Code Mismatch Remarks,Establishment Address,City/Town,Postal Code,PO Box,Makani Number,Contact Person Name,Contact Person Designation,Mobile Number,Website,Number of Emirati Male,Number of Emirati Female,Number of Non-Emirati Male,Number of Non-Emirati Female