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;