diff --git a/server/controller/Prestamo/historial.js b/server/controller/Prestamo/historial.js index 7e9683e..c3425e0 100644 --- a/server/controller/Prestamo/historial.js +++ b/server/controller/Prestamo/historial.js @@ -1,3 +1,4 @@ +const { Op } = require('sequelize'); const validar = require('../../helper/validar'); const dbPath = '../../db/tablas'; const Carrera = require(`${dbPath}/Carrera`); @@ -12,20 +13,40 @@ const Usuario = require(`${dbPath}/Usuario`); const historial = async (body) => { const pagina = validar.validarNumero(body.pagina, true); - // filtros + const usuario = body.usuario ? validar.validarNumeroCuenta(body.usuario) : ''; + const numeroInventario = body.numeroInventario + ? validar.validarAlfanumerico( + body.numeroInventario, + 'El numero de inventario', + 20 + ) + : ''; + const idModulo = body.idModulo ? validar.validarId(body.idModulo) : null; + const idTipoCarrito = body.idTipoCarrito + ? validar.validarId(body.idTipoCarrito) + : null; + let whereCarrito = []; + if (idTipoCarrito) whereCarrito.push({ idTipoCarrito }); + if (idModulo) whereCarrito.push({ idModulo }); return Prestamo.findAndCountAll({ include: [ { model: Equipo, + where: { numeroInventario: { [Op.like]: `%${numeroInventario}%` } }, include: [ { model: Carrito, + where: { [Op.and]: whereCarrito }, include: [{ model: TipoCarrito }, { model: Modulo }], }, ], }, - { model: Usuario, include: [{ model: TipoUsuario }, { model: Carrera }] }, + { + model: Usuario, + where: { usuario: { [Op.like]: `%${usuario}%` } }, + include: [{ model: TipoUsuario }, { model: Carrera }], + }, { model: Operador, as: 'OperadorRegreso' }, { model: Operador, as: 'OperadorEntrega' }, ], @@ -44,14 +65,21 @@ const historial = async (body) => { .idTipoCarrito; delete res.rows[i].dataValues.Equipo.dataValues.Carrito.dataValues .idModulo; + delete res.rows[i].dataValues.Equipo.dataValues.Carrito.dataValues.activo; delete res.rows[i].dataValues.Usuario.dataValues.idTipoUsuario; delete res.rows[i].dataValues.Usuario.dataValues.idCarrera; delete res.rows[i].dataValues.Usuario.dataValues.password; + delete res.rows[i].dataValues.Usuario.dataValues.activo; + delete res.rows[i].dataValues.Usuario.dataValues.multa; if (res.rows[i].OperadorEntrega) { delete res.rows[i].dataValues.OperadorEntrega.dataValues.password; + delete res.rows[i].dataValues.OperadorEntrega.dataValues.activo; + delete res.rows[i].dataValues.OperadorEntrega.dataValues.idTipoUsuario; } if (res.rows[i].OperadorRegreso) { delete res.rows[i].dataValues.OperadorRegreso.dataValues.password; + delete res.rows[i].dataValues.OperadorRegreso.dataValues.activo; + delete res.rows[i].dataValues.OperadorRegreso.dataValues.idTipoUsuario; } } return { count: res.count, historial: res.rows }; diff --git a/server/controller/Prestamo/recoger.js b/server/controller/Prestamo/recoger.js index 476ec9f..e64ed66 100644 --- a/server/controller/Prestamo/recoger.js +++ b/server/controller/Prestamo/recoger.js @@ -30,7 +30,7 @@ const recoger = async (body) => { throw new Error('Ya se entrego el equipo al usuario.'); else if (moment(res.horaInicio) < ahora) { await Equipo.update({ apartado: false }, { where: { idEquipo } }); - await Prestamo.update({ activo: false }, { where: idPrestamo }); + await Prestamo.update({ activo: false }, { where: { idPrestamo } }); throw new Error( 'Ya paso el tiempo limite para recoger el dispositivo.' );