diff --git a/server/controller/Multa/multarIdPrestamo.js b/server/controller/Multa/multarIdPrestamo.js new file mode 100644 index 0000000..8c03602 --- /dev/null +++ b/server/controller/Multa/multarIdPrestamo.js @@ -0,0 +1,61 @@ +const moment = require('moment'); +const validar = require('../../helper/validar'); +const dbPath = '../../db/tablas'; +const Infraccion = require(`${dbPath}/Infraccion`); +const Multa = require(`${dbPath}/Multa`); +const Operador = require(`${dbPath}/Operador`); +const Prestamo = require(`${dbPath}/Prestamo`); +const Usuario = require(`${dbPath}/Usuario`); + +const multar = async (body) => { + const idOperadorMulta = validar.validarId(body.idOperadorMulta); + const idInfraccion = validar.validarId(body.idInfraccion); + const idPrestamo = validar.validarId(body.idPrestamo); + const descripcion = validar.validarAlfanumerico( + body.descripcion, + 'La descripción', + 500 + ); + let prestamo = {}; + let fechaFin = moment(); + + return Operador.findOne({ where: { idOperador: idOperadorMulta } }) + .then((res) => { + if (!res) throw new Error('No existe esta este operador.'); + return Infraccion.findOne({ where: { idInfraccion } }); + }) + .then((res) => { + if (!res) throw new Error('No existe esta infracción.'); + if (res.gravedad == '1') fechaFin.add(7, 'd'); + else fechaFin.add(100, 'y'); + return Prestamo.findOne({ + where: { idPrestamo }, + include: [{ model: Usuario }], + }); + }) + .then((res) => { + if (!res) throw new Error('No existe este prestamo.'); + prestamo = res; + return Multa.findOne({ where: { idPrestamo } }); + }) + .then((res) => { + if (res) + throw new Error('A este prestamo ya se le ha asignado una multa.'); + return Usuario.update( + { multa: true }, + { where: { idUsuario: prestamo.Usuario.idUsuario } } + ); + }) + .then((res) => + Multa.create({ + descripcion, + fechaFin: fechaFin.format(), + idOperadorMulta, + idInfraccion, + idPrestamo, + }) + ) + .then((res) => ({ message: `Se levantó correctamente el reporte de multa.` })); +}; + +module.exports = multar; diff --git a/server/routes/Multa.js b/server/routes/Multa.js index 709c02f..6c0df7f 100644 --- a/server/routes/Multa.js +++ b/server/routes/Multa.js @@ -5,10 +5,11 @@ const route = '/multa'; const historialMultasEquipo = require('../controller/Multa/historialMultasEquipo'); const historialMultasUsuario = require('../controller/Multa/historialMultasUsuario'); const multar = require('../controller/Multa/multar'); +const multarIdPrestamo = require('../controller/Multa/multarIdPrestamo'); const multarNumeroInventario = require('../controller/Multa/multarNumeroInventario'); app.post( - `${route}/multar`, + `${route}/multar_id_prestamo`, //verificaToken, (req, res) => { return multar(req.body) @@ -21,6 +22,20 @@ app.post( } ); +app.post( + `${route}/multar_id_prestamo`, + //verificaToken, + (req, res) => { + return multarIdPrestamo(req.body) + .then((data) => { + res.status(200).json(data); + }) + .catch((err) => { + res.status(400).json({ message: err.message }); + }); + } +); + app.post( `${route}/multar_numero_inventario`, //verificaToken,