fix model validate
This commit is contained in:
@@ -4426,6 +4426,10 @@ app.post('/api/assets', requireAssetOrAdmin, async (req, res) => {
|
||||
return res.status(400).json({ success: false, message: 'Asset name is required' });
|
||||
}
|
||||
|
||||
if (!payload.model) {
|
||||
return res.status(400).json({ success: false, message: 'Model is required' });
|
||||
}
|
||||
|
||||
if (!payload.assetCode) {
|
||||
payload.assetCode = await generateUniqueManualAssetCode(payload);
|
||||
}
|
||||
@@ -4490,6 +4494,10 @@ app.put('/api/assets/:id', requireAssetOrAdmin, async (req, res) => {
|
||||
return res.status(400).json({ success: false, message: 'Asset code and asset name are required' });
|
||||
}
|
||||
|
||||
if (!payload.model) {
|
||||
return res.status(400).json({ success: false, message: 'Model is required' });
|
||||
}
|
||||
|
||||
await ensureDepartmentExists(payload.department);
|
||||
|
||||
await pool.request()
|
||||
@@ -4608,6 +4616,8 @@ app.post('/api/assets/import', requireAssetOrAdmin, upload.single('file'), async
|
||||
const normalizedRows = incomingRows
|
||||
.map((row, rowIndex) => {
|
||||
const normalized = normalizeAssetPayload(row);
|
||||
const rowSourceStt = parseAssetImportSttNumber(row?.sourceStt);
|
||||
normalized.__importRowLabel = rowSourceStt !== null ? `STT ${rowSourceStt}` : `dong ${rowIndex + 1}`;
|
||||
const hasOriginalAssetCode = String(normalized.assetCode || '').trim() !== '';
|
||||
if (!hasOriginalAssetCode && normalized.assetName) {
|
||||
normalized.assetCode = generateImportAssetCodeFromRow(normalized, rowIndex + 1);
|
||||
@@ -4619,7 +4629,20 @@ app.post('/api/assets/import', requireAssetOrAdmin, upload.single('file'), async
|
||||
.filter(row => isMeaningfulImportedAssetRow(row));
|
||||
|
||||
if (!normalizedRows.length) {
|
||||
return res.status(400).json({ success: false, message: 'No valid rows found. Asset name or model is required.' });
|
||||
return res.status(400).json({ success: false, message: 'No valid rows found. MODEL is required.' });
|
||||
}
|
||||
|
||||
const missingModelRows = normalizedRows
|
||||
.filter(row => !String(row.model || '').trim())
|
||||
.map(row => row.__importRowLabel)
|
||||
.filter(Boolean);
|
||||
if (missingModelRows.length) {
|
||||
const limitedRows = missingModelRows.slice(0, 20);
|
||||
const suffix = missingModelRows.length > limitedRows.length ? ', ...' : '';
|
||||
return res.status(400).json({
|
||||
success: false,
|
||||
message: `Cot MODEL la bat buoc. Thieu du lieu tai: ${limitedRows.join(', ')}${suffix}`
|
||||
});
|
||||
}
|
||||
|
||||
const transaction = new sql.Transaction(pool);
|
||||
|
||||
Reference in New Issue
Block a user