const moment = require('moment'); const { validarId } = require('../../helper/validar'); const dbPath = '../../db/tablas'; const Equipo = require(`${dbPath}/Equipo`); const Prestamo = require(`${dbPath}/Prestamo`); const status = async (body) => { const ahora = moment(); const idPrestamo = validarId(body.idPrestamo); let idEquipo; return Prestamo.findOne({ where: { idPrestamo }, include: [{ model: Equipo }], }).then(async (res) => { if (!res) throw new Error('No existe este prestamo.'); idEquipo = res.Equipo.idEquipo; delete res.dataValues.idUsuario; delete res.dataValues.idEquipo; delete res.dataValues.idOperadorRegreso; delete res.dataValues.idOperadorEntrega; delete res.dataValues.Equipo.dataValues.idCarrito; delete res.dataValues.Equipo.dataValues.idStatus; delete res.dataValues.Equipo.dataValues.idPrograma; if (!res.activo) { if (!res.horaEntrega) return { message: 'Este prestamo fue cancelado.', prestamo: res, }; return { message: 'Este prestamo no es encuentra activo.', prestamo: res, }; } else if (res.Equipo.enUso) return { message: 'El equipo ya fue entregado al usuario.', prestamo: res, }; else if (moment(res.horaInicio) < ahora) { await Equipo.update({ apartado: false }, { where: { idEquipo } }); await Prestamo.update({ activo: false }, { where: { idPrestamo } }); return { message: 'Ya paso el tiempo limite para recoger el dispositivo. Se ha cancelado tu prestamo.', prestamo: res, }; } }); }; module.exports = status;