Compare commits
2 Commits
7b41dd81e8
...
05e14e02c5
| Author | SHA1 | Date | |
|---|---|---|---|
| 05e14e02c5 | |||
| 51f4ea2bff |
@@ -203,6 +203,10 @@ function buildDynamicUpdate(table, data, where) {
|
|||||||
setParts.push(`${key} = $${index++}`);
|
setParts.push(`${key} = $${index++}`);
|
||||||
values.push(value);
|
values.push(value);
|
||||||
}
|
}
|
||||||
|
else if (key !== undefined && key !== null) {
|
||||||
|
setParts.push(`${key} = $${index++}`);
|
||||||
|
values.push(value);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (setParts.length === 0) {
|
if (setParts.length === 0) {
|
||||||
|
|||||||
@@ -54,9 +54,8 @@ const getAllSparepartDb = async (searchParams = {}) => {
|
|||||||
COALESCE(a.sparepart_code, '') + ' - ' + COALESCE(a.sparepart_name, '') AS sparepart_code_name
|
COALESCE(a.sparepart_code, '') + ' - ' + COALESCE(a.sparepart_name, '') AS sparepart_code_name
|
||||||
FROM m_sparepart a
|
FROM m_sparepart a
|
||||||
WHERE a.deleted_at IS NULL
|
WHERE a.deleted_at IS NULL
|
||||||
${
|
${whereConditions.length > 0 ? `AND ${whereConditions.join(" AND ")}` : ""
|
||||||
whereConditions.length > 0 ? `AND ${whereConditions.join(" AND ")}` : ""
|
}
|
||||||
}
|
|
||||||
${whereOrConditions ? whereOrConditions : ""}
|
${whereOrConditions ? whereOrConditions : ""}
|
||||||
ORDER BY a.sparepart_id ASC
|
ORDER BY a.sparepart_id ASC
|
||||||
${searchParams.limit ? `OFFSET $2 * $1 ROWS FETCH NEXT $1 ROWS ONLY` : ""}
|
${searchParams.limit ? `OFFSET $2 * $1 ROWS FETCH NEXT $1 ROWS ONLY` : ""}
|
||||||
@@ -84,15 +83,15 @@ const getSparepartByIdDb = async (id) => {
|
|||||||
return result.recordset;
|
return result.recordset;
|
||||||
};
|
};
|
||||||
|
|
||||||
const checkSparepartNameExistsDb = async (sparePartName, excludeId = null) => {
|
const checkSparepartNameExistsDb = async (sparePartName, sparePartNumber, excludeId = null) => {
|
||||||
let queryText = `
|
let queryText = `
|
||||||
SELECT sparepart_id
|
SELECT sparepart_id
|
||||||
FROM m_sparepart
|
FROM m_sparepart
|
||||||
WHERE sparepart_name = $1 AND deleted_at IS NULL
|
WHERE sparepart_name = $1 AND sparepart_number = $2 AND deleted_at IS NULL
|
||||||
`;
|
`;
|
||||||
let values = [sparePartName];
|
let values = [sparePartName, sparePartNumber];
|
||||||
if (excludeId) {
|
if (excludeId) {
|
||||||
queryText += ` AND sparepart_id != $2`;
|
queryText += ` AND sparepart_id != $3`;
|
||||||
values.push(excludeId);
|
values.push(excludeId);
|
||||||
}
|
}
|
||||||
const result = await pool.query(queryText, values);
|
const result = await pool.query(queryText, values);
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ class SparepartService {
|
|||||||
static async getAllSparepart(param) {
|
static async getAllSparepart(param) {
|
||||||
try {
|
try {
|
||||||
const results = await getAllSparepartDb(param);
|
const results = await getAllSparepartDb(param);
|
||||||
results.data.map((item) => {});
|
results.data.map((item) => { });
|
||||||
return results;
|
return results;
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
throw new ErrorHandler(error.statusCode || 500, error.message);
|
throw new ErrorHandler(error.statusCode || 500, error.message);
|
||||||
@@ -39,8 +39,8 @@ class SparepartService {
|
|||||||
static async createSparepart(data) {
|
static async createSparepart(data) {
|
||||||
try {
|
try {
|
||||||
if (!data || typeof data !== "object") data = {};
|
if (!data || typeof data !== "object") data = {};
|
||||||
if (data.sparepart_name) {
|
if (data.sparepart_name && data.sparepart_number) {
|
||||||
const exists = await checkSparepartNameExistsDb(data.sparepart_name);
|
const exists = await checkSparepartNameExistsDb(data.sparepart_name, data.sparepart_number);
|
||||||
if (exists)
|
if (exists)
|
||||||
throw new ErrorHandler(400, "Sparepart name already exists");
|
throw new ErrorHandler(400, "Sparepart name already exists");
|
||||||
}
|
}
|
||||||
@@ -63,10 +63,11 @@ class SparepartService {
|
|||||||
if (!existing) throw new ErrorHandler(404, "Sparepart not found");
|
if (!existing) throw new ErrorHandler(404, "Sparepart not found");
|
||||||
if (
|
if (
|
||||||
data.sparepart_name &&
|
data.sparepart_name &&
|
||||||
data.sparepart_name !== existing.sparepart_name
|
data.sparepart_name !== existing.sparepart_name && data.sparepart_number && data.sparepart_number !== existing.sparepart_number
|
||||||
) {
|
) {
|
||||||
const exists = await checkSparepartNameExistsDb(
|
const exists = await checkSparepartNameExistsDb(
|
||||||
data.sparepart_name,
|
data.sparepart_name,
|
||||||
|
data.sparepart_number,
|
||||||
id
|
id
|
||||||
);
|
);
|
||||||
if (exists)
|
if (exists)
|
||||||
|
|||||||
@@ -17,8 +17,8 @@ const insertDeviceSchema = Joi.object({
|
|||||||
'string.ip': 'IP address must be a valid IPv4 or IPv6 address'
|
'string.ip': 'IP address must be a valid IPv4 or IPv6 address'
|
||||||
}),
|
}),
|
||||||
listen_channel: Joi.string().max(100).required(),
|
listen_channel: Joi.string().max(100).required(),
|
||||||
listen_channel_reminder: Joi.string().max(100).optional(),
|
listen_channel_reminder: Joi.string().max(100).allow('', null),
|
||||||
reminder_at: Joi.date().iso().allow(null).optional()
|
reminder_at: Joi.date().iso().allow('', null),
|
||||||
});
|
});
|
||||||
|
|
||||||
const updateDeviceSchema = Joi.object({
|
const updateDeviceSchema = Joi.object({
|
||||||
@@ -33,8 +33,8 @@ const updateDeviceSchema = Joi.object({
|
|||||||
'string.ip': 'IP address must be a valid IPv4 or IPv6 address'
|
'string.ip': 'IP address must be a valid IPv4 or IPv6 address'
|
||||||
}),
|
}),
|
||||||
listen_channel: Joi.string().max(100),
|
listen_channel: Joi.string().max(100),
|
||||||
listen_channel_reminder: Joi.string().max(100).optional(),
|
listen_channel_reminder: Joi.string().max(100).allow('', null),
|
||||||
reminder_at: Joi.date().iso().allow(null).optional()
|
reminder_at: Joi.date().iso().allow('', null),
|
||||||
|
|
||||||
}).min(1);
|
}).min(1);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user