Files
pcpuma_acatlan_api/server/controller/Prestamo/regresarNumeroInventario.js
T
Lemuel Marquez 2f9ba8bbd1 error
2021-05-31 20:27:35 -05:00

49 lines
1.5 KiB
JavaScript

const moment = require('moment');
const validar = require('../../helper/validar');
const dbPath = '../../db/tablas';
const Prestamo = require(`${dbPath}/Prestamo`);
const Equipo = require(`${dbPath}/Equipo`);
const Operador = require(`${dbPath}/Operador`);
const regresarNumeroInventario = async (body) => {
const numeroInventario = validar.validarAlfanumerico(
body.numeroInventario,
'El numero de inventario',
20
);
const idOperadorRegreso = validar.validarId(body.idOperadorRegreso);
let idPrestamo;
const ahora = moment();
return Operador.findOne({ where: { idOperador: idOperadorRegreso } })
.then((res) => {
if (!res) throw new Error('No existe este operador.');
return Prestamo.findOne({
where: { activo: true },
include: [{ model: Equipo, where: { numeroInventario } }],
});
})
.then((res) => {
if (!res)
throw new Error('No existe un prestamo activo con este equipo.');
if (!res.Equipo.enUso)
throw new Error('Aun no se ha entregado el equipo al usuario.');
idPrestamo = res.idPrestamo;
return Equipo.update(
{ enUso: false, apartado: false },
{ where: { idEquipo: res.Equipo.idEquipo } }
);
})
.then((res) => {
Prestamo.update(
{ idOperadorRegreso, horaEntrega: ahora.format(), activo: false },
{ where: { idPrestamo } }
);
})
.then((res) => ({
message: 'Se ha regresado correctamente el equio de computo.',
}));
};
module.exports = regresarNumeroInventario;