GWM : asset create api fix
This commit is contained in:
parent
ab3e0f0e1b
commit
22d25bf2f5
@ -8,7 +8,6 @@ const SOFT_DELETE_TABLES = new Set([
|
|||||||
'users',
|
'users',
|
||||||
'purchase_orders',
|
'purchase_orders',
|
||||||
'grn',
|
'grn',
|
||||||
'grn_items',
|
|
||||||
'asset_categories',
|
'asset_categories',
|
||||||
'asset_subcategories',
|
'asset_subcategories',
|
||||||
]);
|
]);
|
||||||
|
|||||||
@ -11,18 +11,7 @@ const {
|
|||||||
resolveDepreciationRate,
|
resolveDepreciationRate,
|
||||||
calculateDepreciation,
|
calculateDepreciation,
|
||||||
} = require('./assets.depreciation');
|
} = require('./assets.depreciation');
|
||||||
|
const { assertReference, toDateOnly } = require('./assets.helpers');
|
||||||
const SOFT_DELETE_TABLES = new Set([
|
|
||||||
'vendors',
|
|
||||||
'locations',
|
|
||||||
'departments',
|
|
||||||
'users',
|
|
||||||
'purchase_orders',
|
|
||||||
'grn',
|
|
||||||
'grn_items',
|
|
||||||
'asset_categories',
|
|
||||||
'asset_subcategories',
|
|
||||||
]);
|
|
||||||
|
|
||||||
const assetInclude = {
|
const assetInclude = {
|
||||||
asset_categories: { select: { id: true, code: true, name: true, code_prefix: true } },
|
asset_categories: { select: { id: true, code: true, name: true, code_prefix: true } },
|
||||||
@ -56,12 +45,6 @@ const transferInclude = {
|
|||||||
users_asset_transfers_transferred_byTousers: { select: { id: true, full_name: true } },
|
users_asset_transfers_transferred_byTousers: { select: { id: true, full_name: true } },
|
||||||
};
|
};
|
||||||
|
|
||||||
const toDateOnly = (value) => {
|
|
||||||
if (!value) return null;
|
|
||||||
const date = new Date(value);
|
|
||||||
return new Date(Date.UTC(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate()));
|
|
||||||
};
|
|
||||||
|
|
||||||
const assetSeriesCode = (categoryCode) => `ASSET_${categoryCode}`;
|
const assetSeriesCode = (categoryCode) => `ASSET_${categoryCode}`;
|
||||||
|
|
||||||
const sanitizeAsset = (asset) => {
|
const sanitizeAsset = (asset) => {
|
||||||
@ -158,19 +141,6 @@ const sanitizeTransfer = (row) => {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
const assertReference = async (table, id, label, { requireActive = true } = {}) => {
|
|
||||||
if (!id) return null;
|
|
||||||
const row = await prisma[table].findFirst({
|
|
||||||
where: {
|
|
||||||
id: BigInt(id),
|
|
||||||
...(SOFT_DELETE_TABLES.has(table) ? { deleted_at: null } : {}),
|
|
||||||
},
|
|
||||||
});
|
|
||||||
if (!row) throw new ApiError(422, `Invalid ${label}`);
|
|
||||||
if (requireActive && row.is_active === false) throw new ApiError(422, `${label} is inactive`);
|
|
||||||
return row;
|
|
||||||
};
|
|
||||||
|
|
||||||
const assertDisposalFields = (status, disposalDate) => {
|
const assertDisposalFields = (status, disposalDate) => {
|
||||||
if (DISPOSAL_STATUSES.includes(status) && !disposalDate) {
|
if (DISPOSAL_STATUSES.includes(status) && !disposalDate) {
|
||||||
throw new ApiError(422, 'disposal_date is required when status is DISPOSED or SCRAPPED');
|
throw new ApiError(422, 'disposal_date is required when status is DISPOSED or SCRAPPED');
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user