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

64 lines
2.0 KiB
JavaScript
Raw Normal View History

2021-04-30 16:04:27 -05:00
const moment = require('moment');
2021-05-18 22:40:30 -05:00
const { validarId } = require('../../helper/validar');
2021-04-30 16:04:27 -05:00
const dbPath = '../../db/tablas';
const Equipo = require(`${dbPath}/Equipo`);
const Prestamo = require(`${dbPath}/Prestamo`);
const status = async (body) => {
const ahora = moment();
2021-05-18 22:40:30 -05:00
const idPrestamo = validarId(body.idPrestamo);
2021-04-30 16:04:27 -05:00
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,
};
2021-05-26 19:14:11 -05:00
} 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,
};
}
2021-04-30 16:04:27 -05:00
return {
message: 'El equipo ya fue entregado al usuario.',
prestamo: res,
};
2021-05-26 19:14:11 -05:00
} else if (moment(res.horaInicio) < ahora) {
2021-04-30 16:04:27 -05:00
await Equipo.update({ apartado: false }, { where: { idEquipo } });
2021-04-30 16:08:54 -05:00
await Prestamo.update({ activo: false }, { where: { idPrestamo } });
2021-04-30 16:04:27 -05:00
return {
2021-04-30 16:08:54 -05:00
message:
'Ya paso el tiempo limite para recoger el dispositivo. Se ha cancelado tu prestamo.',
2021-04-30 16:04:27 -05:00
prestamo: res,
};
}
2021-05-31 16:22:35 -05:00
return {
message: 'Aun no se entrega el equipo al usuario.',
prestamo: res,
};
2021-04-30 16:04:27 -05:00
});
};
module.exports = status;