Files
pcpuma_acatlan_api/server/controller/Prestamo/status.js
T
Lemuel Marquez 03710dc70b update equipo
2021-05-26 19:14:11 -05:00

60 lines
1.9 KiB
JavaScript

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) {
if (moment(res.horaFin) < ahora) {
return {
message:
'Ya paso la hora de entrega. El usuario puede ser acreedor a una multa por el retraso.',
prestamo: res,
};
}
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;