From 2bda454e1c398348e7a9c9991386b5f23cf50e10 Mon Sep 17 00:00:00 2001 From: xXpuma99Xx <51341582+xXpuma99Xx@users.noreply.github.com> Date: Fri, 24 Sep 2021 14:09:25 -0500 Subject: [PATCH] correcion multa al regresar --- server/controller/Multa/multar.js | 1 + server/controller/Multa/multarIdPrestamo.js | 6 ++-- server/controller/Prestamo/regresar.js | 28 +++++++++++-------- .../Prestamo/regresarNumeroInventario.js | 22 +++++++++------ 4 files changed, 35 insertions(+), 22 deletions(-) diff --git a/server/controller/Multa/multar.js b/server/controller/Multa/multar.js index a612472..d52922c 100644 --- a/server/controller/Multa/multar.js +++ b/server/controller/Multa/multar.js @@ -9,6 +9,7 @@ const Usuario = require(`${dbPath}/Usuario`); const multar = async (body) => { const idOperadorMulta = validar.validarId(body.idOperadorMulta); + const idUsuario = validar.validarId(body.idUsuario); const idInfraccion = validar.validarId(body.idInfraccion); const idPrestamo = validar.validarId(body.idPrestamo); const descripcion = validar.validarAlfanumerico( diff --git a/server/controller/Multa/multarIdPrestamo.js b/server/controller/Multa/multarIdPrestamo.js index 8c03602..425b62f 100644 --- a/server/controller/Multa/multarIdPrestamo.js +++ b/server/controller/Multa/multarIdPrestamo.js @@ -21,7 +21,7 @@ const multar = async (body) => { return Operador.findOne({ where: { idOperador: idOperadorMulta } }) .then((res) => { - if (!res) throw new Error('No existe esta este operador.'); + if (!res) throw new Error('No existe este operador.'); return Infraccion.findOne({ where: { idInfraccion } }); }) .then((res) => { @@ -55,7 +55,9 @@ const multar = async (body) => { idPrestamo, }) ) - .then((res) => ({ message: `Se levantó correctamente el reporte de multa.` })); + .then((res) => ({ + message: `Se levantó correctamente el reporte de multa.`, + })); }; module.exports = multar; diff --git a/server/controller/Prestamo/regresar.js b/server/controller/Prestamo/regresar.js index aec630f..d646edc 100644 --- a/server/controller/Prestamo/regresar.js +++ b/server/controller/Prestamo/regresar.js @@ -1,9 +1,8 @@ const moment = require('moment'); -const multar = require('../Multa/multar'); const { validarId } = require('../../helper/validar'); -const prestamo = require('./prestamoUsuario'); const dbPath = '../../db/tablas'; const Equipo = require(`${dbPath}/Equipo`); +const Multa = require(`${dbPath}/Multa`); const Operador = require(`${dbPath}/Operador`); const Prestamo = require(`${dbPath}/Prestamo`); @@ -11,6 +10,8 @@ const regresar = async (body) => { const idPrestamo = validarId(body.idPrestamo); const idOperadorRegreso = validarId(body.idOperadorRegreso); const ahora = moment(); + let horaFin = moment(); + let diferencia = null; return Operador.findOne({ where: { idOperador: idOperadorRegreso } }) .then((res) => { @@ -25,27 +26,30 @@ const regresar = async (body) => { if (!res.activo) throw new Error('Este préstamo ya no esta activo.'); if (!res.Equipo.enUso) throw new Error('Aun no se ha entregado el equipo al usuario.'); + horaFin = moment(res.horaFin); + diferencia = (ahora - horaFin) / 60000; + if (diferencia >= 15) { + const ahora = moment(); - if (res.horaFin < ahora) { - await multar({ - idOperadorMulta: idOperadorRegreso, - idPrestamo: res.idPrestamo, + await Multa.create({ + idPrestamo, idInfraccion: 1, - descripcion: 'Demora', + idOperadorMulta: idOperadorRegreso, + descripcion: `Se paso por ${diferencia} minutos para entregar el equipo.`, + fechaFin: ahora.add(parseInt(diferencia / 15) * 7, 'd').format(), }); } - return Equipo.update( { enUso: false, apartado: false }, { where: { idEquipo: res.Equipo.idEquipo } } ); }) - .then(async (res) => { - await Prestamo.update( + .then((res) => + Prestamo.update( { idOperadorRegreso, horaEntrega: ahora.format(), activo: false }, { where: { idPrestamo } } - ); - }) + ) + ) .then((res) => ({ message: 'Se ha regresado correctamente el equipo de cómputo.', })); diff --git a/server/controller/Prestamo/regresarNumeroInventario.js b/server/controller/Prestamo/regresarNumeroInventario.js index ace5cd7..de0748c 100644 --- a/server/controller/Prestamo/regresarNumeroInventario.js +++ b/server/controller/Prestamo/regresarNumeroInventario.js @@ -1,8 +1,8 @@ const moment = require('moment'); -const multar = require('../Multa/multar'); const validar = require('../../helper/validar'); const dbPath = '../../db/tablas'; const Equipo = require(`${dbPath}/Equipo`); +const Multa = require(`${dbPath}/Multa`); const Operador = require(`${dbPath}/Operador`); const Prestamo = require(`${dbPath}/Prestamo`); @@ -14,7 +14,9 @@ const regresarNumeroInventario = async (body) => { ); const idOperadorRegreso = validar.validarId(body.idOperadorRegreso); const ahora = moment(); - let idPrestamo; + let horaFin = moment(); + let diferencia = null; + let idPrestamo = {}; return Operador.findOne({ where: { idOperador: idOperadorRegreso } }) .then((res) => { @@ -30,13 +32,17 @@ const regresarNumeroInventario = async (body) => { if (!res.Equipo.enUso) throw new Error('Aun no se ha entregado el equipo al usuario.'); idPrestamo = res.idPrestamo; + horaFin = moment(res.horaFin); + diferencia = (ahora - horaFin) / 60000; + if (diferencia >= 15) { + const ahora = moment(); - if (res.horaFin < ahora) { - await multar({ - idOperadorMulta: idOperadorRegreso, - idPrestamo: res.idPrestamo, + await Multa.create({ + idPrestamo, idInfraccion: 1, - descripcion: 'Demora', + idOperadorMulta: idOperadorRegreso, + descripcion: `Se paso por ${diferencia} minutos para entregar el equipo.`, + fechaFin: ahora.add(parseInt(diferencia / 15) * 7, 'd').format(), }); } return Equipo.update( @@ -51,7 +57,7 @@ const regresarNumeroInventario = async (body) => { ); }) .then((res) => ({ - message: 'Se ha regresado correctamente el equio de computo.', + message: 'Se ha regresado correctamente el equipo de cómputo.', })); };