Files

128 lines
4.0 KiB
JavaScript
Raw Permalink Normal View History

2020-09-25 19:13:47 -05:00
const xlsx = require('node-xlsx');
const UResponsable = require('../../models/tablas/UResponsable');
const Ubicacion = require('../../models/tablas/Ubicacion');
const Uso = require('../../models/tablas/Uso');
const Marca = require('../../models/tablas/Marca');
const Tipo = require('../../models/tablas/Tipo');
const Inventario = require('../../models/tablas/Inventario');
const Printers = require('../../models/tablas/Printers');
const post = async(req, res) => {
const file = req.files.printers;
let printers = [];
let data = await xlsx.parse(file.tempFilePath);
data = Object.entries(data[0]);
data.shift();
data = data[0][1]
data.shift();
2020-10-09 21:52:33 -05:00
for (row of data) {
if (row[1]) {
var tipo = await Tipo.findOrCreate({
where: {
tipo: row[1] || 'No declarado'
}
})
.catch((e) => { throw new Error(e); });
}
if (row[3]) {
var marca = await Marca.findOrCreate({
where: {
marca: row[3] || 'No declarado'
}
})
.catch((e) => { throw new Error(e); });
}
if (row[7]) {
var uResponsable = await UResponsable.findOne({
where: {
uResponsable: row[7] || 'No declarado'
}
})
.catch((e) => { throw new Error(e); });
}
if (row[9]) {
var ubicacion = await Ubicacion.findOrCreate({
where: {
ubicacion: row[9] || 'No declarado'
}
})
.catch((e) => { throw new Error(e); });
}
if (row[10]) {
var uso = await Uso.findOrCreate({
where: {
uso: row[10] || 'No declarado'
}
})
.catch((e) => { throw new Error(e); });
}
2020-09-25 19:13:47 -05:00
let printer = {
noInventario: row[0],
2020-10-09 21:52:33 -05:00
idTipo: tipo[0]['idTipo'],
2020-09-25 19:13:47 -05:00
modelo: row[2],
2020-10-09 21:52:33 -05:00
idMarca: marca[0]['idMarca'],
2020-09-25 19:13:47 -05:00
noSerie: row[4],
descripcion: row[5],
idActivoFijo: 6,
noResguardo: row[6],
2020-10-09 21:52:33 -05:00
idUnidadResponsable: uResponsable.dataValues.idUnidadResponsable,
idUbicacion: ubicacion[0]['idUbicacion'],
idUso: uso[0]['idUso']
2020-09-25 19:13:47 -05:00
}
printers.push(printer);
2020-10-09 21:52:33 -05:00
};
2020-09-25 19:13:47 -05:00
let count = 0;
for (printer of printers) {
count++;
await Inventario.create({
noInventario: printer.noInventario,
noResguardo: printer.noResguardo,
2020-10-09 22:32:43 -05:00
idActivoFijo: printer.idActivoFijo,
2020-09-25 19:13:47 -05:00
idUnidadResponsable: printer.idUnidadResponsable,
idUbicacion: printer.idUbicacion,
idUso: printer.idUso
})
.then(async() => {
await Printers.create({
noInventario: printer.noInventario,
idMarca: printer.idMarca,
modelo: printer.modelo,
noSerie: printer.noSerie,
idTipo: printer.idTipo,
descripcion: printer.descripcion,
2020-10-09 22:32:43 -05:00
idActivoFijo: printer.idActivoFijo
2020-09-25 19:13:47 -05:00
})
.catch(async(err) => {
await Inventario.destroy({
where: {
noInventario: printer.noInventario
}
});
return res.status(500).json({
ok: false,
err
})
})
})
.catch((e) => res.status(500).json({
ok: false,
e
}))
}
res.json({
ok: true,
message: `${ count } records created successfully.`
})
}
module.exports = post