fix: bug in inserting guarantee serial and originality serial

This commit is contained in:
mahyargdz
2025-02-19 10:05:44 +03:30
parent 119b10c73b
commit 9a9e28dd55
5 changed files with 34 additions and 44 deletions
+20 -23
View File
@@ -25,11 +25,12 @@ module.exports.addExel = [
checkValidations(validationResult),
async (req, res) => {
if (!req.files?.file) return res.status(422).json({ validation: { file: { msg: 'فایل را اضافه کنید' } } })
if (!req.files?.file.name.split('.').some(item => ['xlsx', 'xltx', 'xlsm', 'xlsb'].includes(item))) return res.status(422).json({ validation: { file: { msg: 'فرمت فایل درست نمیباشد' } } })
if (!req.files?.file.name.split('.').some(item => ['xlsx', 'xltx', 'xlsm', 'xlsb'].includes(item)))
return res.status(422).json({ validation: { file: { msg: 'فرمت فایل درست نمیباشد' } } })
const file = req.files.file
const { type, g } = req.body
try {
const exelFile = await readXlsxFile(Buffer.from(file.data));
const exelFile = await readXlsxFile(Buffer.from(file.data))
const data = await creator(exelFile, type, g, file.name)
const path = (type === 'guaranteeSerial' ? guaranteeSerialsPath : productSerialsPath) + `/${g}`
@@ -42,8 +43,6 @@ module.exports.addExel = [
// res.status(201).json({ msg: _sr.fa.response.success_save, data })
res.status(201).json(data)
} catch (err) {
return res500(res, err)
}
@@ -72,7 +71,6 @@ module.exports.getAllExels = [
}
]
module.exports.removeExel = [
async (req, res) => {
const type = req.query?.type
@@ -82,7 +80,7 @@ module.exports.removeExel = [
const validValues = ['guaranteeSerial', 'orginality']
if (!validValues.includes(type)) return res500(res, 'choose type')
const path = (type === 'guaranteeSerial' ? guaranteeSerialsPath : productSerialsPath) + `/${g}`
await Serial.deleteMany({ fileName: req.params.name })
await Serial.deleteMany({ fileName: req.params.name })
fs.unlink(`${path}/${req.params.name}`, err => {
if (err) return res404(res, _faSr.not_found.item_id)
@@ -110,18 +108,19 @@ module.exports.checkSerial = [
try {
const { serial, type, g } = req.body
const code = serial.toString().trim().toLowerCase()
console.log(code)
const serialStatus = await Serial.findOne({
code,
type,
kind: g
})
console.log(serialStatus)
if (!serialStatus) {
res404(res, 'این کد در سامانه وجود ندارد')
} else {
res.status(200).json({ message: serialStatus.message })
}
} catch (e) {
console.log(e)
return res500(res, e)
@@ -135,9 +134,9 @@ const creator = (exel, type, g, name) => {
for (const row of exel) {
// eslint-disable-next-line no-constant-condition
const code = row[1].toString().trim().toLowerCase()
const serial = await Serial.findOne({ code })
const serial = await Serial.findOne({ code, type, kind: g })
if (serial) {
console.info("Repeated serial ", row[1])
console.info('Repeated serial => ', row[1])
serial.model = row[0]
serial.message = row[2]
@@ -146,24 +145,22 @@ const creator = (exel, type, g, name) => {
serial.fileName = name
serial.save()
} else {
await Serial.create(
{
code,
model: row[0],
message: row[2],
type,
fileName: name,
kind: g
}
)
console.log('inserting new =>', row[1])
await Serial.create({
code,
model: row[0],
message: row[2],
type,
fileName: name,
kind: g
})
}
}
resolve("end")
resolve('end')
} catch (error) {
console.log(error);
console.log(error)
reject(error.message)
}
})
}
}