Files
pcpuma_acatlan_api/server/controller/Prestamo/regresarNumeroInventario.js
T

49 lines
1.5 KiB
JavaScript
Raw Normal View History

2021-05-31 15:45:04 -05:00
const moment = require('moment');
2021-05-31 16:31:53 -05:00
const validar = require('../../helper/validar');
2021-05-31 15:45:04 -05:00
const dbPath = '../../db/tablas';
const Prestamo = require(`${dbPath}/Prestamo`);
const Equipo = require(`${dbPath}/Equipo`);
const Operador = require(`${dbPath}/Operador`);
const regresarNumeroInventario = async (body) => {
2021-05-31 16:31:53 -05:00
const numeroInventario = validar.validarAlfanumerico(
2021-05-31 15:45:04 -05:00
body.numeroInventario,
'El numero de inventario',
20
);
2021-05-31 16:31:53 -05:00
const idOperadorRegreso = validar.validarId(body.idOperadorRegreso);
2021-05-31 15:45:04 -05:00
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.');
2021-05-31 20:27:35 -05:00
if (!res.Equipo.enUso)
throw new Error('Aun no se ha entregado el equipo al usuario.');
2021-05-31 15:45:04 -05:00
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;