From f9a13021fcb7f75e7cfd4420a2b62097d306f0e2 Mon Sep 17 00:00:00 2001 From: xXpuma99Xx <51341582+xXpuma99Xx@users.noreply.github.com> Date: Wed, 2 Nov 2022 22:10:48 -0600 Subject: [PATCH] reporte --- src/operador/operador.controller.ts | 2 +- src/operador/operador.service.ts | 4 +- src/prestamo/dto/input/historial.dto.ts | 7 +- src/prestamo/prestamo.controller.ts | 75 +++++++++++++++ src/prestamo/prestamo.service.ts | 116 ++++++++++++------------ 5 files changed, 141 insertions(+), 63 deletions(-) diff --git a/src/operador/operador.controller.ts b/src/operador/operador.controller.ts index db421f8..971e813 100644 --- a/src/operador/operador.controller.ts +++ b/src/operador/operador.controller.ts @@ -149,7 +149,7 @@ export class OperadorController { const admin: Operador = req.user.operador; this.validarUsuarioService.validarSuperAdminAdmin(admin); - return this.operadorService.findAllByInstitucion(admin); + return this.operadorService.findAllByInstitucion(admin.institucion); } @Serealize(MessageOutputDto) diff --git a/src/operador/operador.service.ts b/src/operador/operador.service.ts index 4292b89..529cabd 100644 --- a/src/operador/operador.service.ts +++ b/src/operador/operador.service.ts @@ -169,10 +169,10 @@ export class OperadorService { }); } - findAllByInstitucion(operador: Operador) { + findAllByInstitucion(institucion: Institucion) { return this.repository.find({ select: ['id_operador', 'operador'], - where: { institucion: operador.institucion }, + where: { institucion }, }); } diff --git a/src/prestamo/dto/input/historial.dto.ts b/src/prestamo/dto/input/historial.dto.ts index 2ab9a1b..7a22fbd 100644 --- a/src/prestamo/dto/input/historial.dto.ts +++ b/src/prestamo/dto/input/historial.dto.ts @@ -8,9 +8,6 @@ import { } from 'class-validator'; export class HistorialDto { - @IsNumberString() - pagina: string; - @IsBooleanString() @IsOptional() activo?: string; @@ -69,6 +66,10 @@ export class HistorialDto { @IsOptional() id_tipo_usuario?: string; + @IsNumberString() + @IsOptional() + pagina?: string; + @IsString() @IsNotEmpty() @IsOptional() diff --git a/src/prestamo/prestamo.controller.ts b/src/prestamo/prestamo.controller.ts index c625869..f71e4bb 100644 --- a/src/prestamo/prestamo.controller.ts +++ b/src/prestamo/prestamo.controller.ts @@ -181,6 +181,81 @@ export class PrestamoController { return this.prestamoService.entregar(operador, body.id_prestamo, modulo); } + // @Serealize(PrestamosOutputDto) + @Get('reporte') + @UseGuards(AuthGuard('jwt')) + @ApiOperation({ + description: + 'Endpoint que retorna todos los prestamos dependiendo de la página en la que se encuentra el operador y sus filtros.', + }) + @ApiBearerAuth('jwt') + @ApiQuery({ + description: 'Carrito que se quiere usar como filtro.', + name: 'carrito', + type: 'string', + required: false, + }) + @ApiQuery({ + description: 'Equipo que se quiere usar como filtro.', + name: 'equipo', + type: 'string', + required: false, + }) + @ApiQuery({ + description: 'Fecha inicio que se quiere usar como filtro.', + name: 'fechaInicio', + type: 'string', + required: false, + }) + @ApiQuery({ + description: 'Fecha fin se quiere usar como filtro.', + name: 'fechaFin', + type: 'string', + required: false, + }) + @ApiQuery({ + description: 'Id de la institución que se quiere usar como filtro.', + name: 'id_institucion', + type: 'string', + required: false, + }) + @ApiQuery({ + description: 'Id del modulo que se quiere usar como filtro.', + name: 'id_modulo', + type: 'string', + required: false, + }) + @ApiQuery({ + description: 'Id del préstamo que se quiere usar como filtro.', + name: 'id_prestamo', + type: 'string', + required: false, + }) + @ApiQuery({ + description: 'Id del tipo de carrito que se quiere usar como filtro.', + name: 'id_tipo_carrito', + type: 'string', + required: false, + }) + @ApiQuery({ + description: 'Id del tipo de usuario que se quiere usar como filtro.', + name: 'id_tipo_usuario', + type: 'string', + required: false, + }) + @ApiQuery({ + description: 'Usuario que se quiere usar como filtro.', + name: 'usuario', + type: 'string', + required: false, + }) + reporte(@Request() req, @Query() query: HistorialDto) { + const operador: Operador = req.user.operador; + + this.validarUsuarioService.validarOperador(operador); + return this.prestamoService.findAll(query); + } + @Serealize(PrestamosOutputDto) @Get('historial') @UseGuards(AuthGuard('jwt')) diff --git a/src/prestamo/prestamo.service.ts b/src/prestamo/prestamo.service.ts index df62d31..a73feec 100644 --- a/src/prestamo/prestamo.service.ts +++ b/src/prestamo/prestamo.service.ts @@ -378,10 +378,6 @@ export class PrestamoService { }; const busqueda: FindOptionsWhere = {}; - if (filtros.pagina) { - options.take = 25; - options.skip = (parseInt(filtros.pagina) - 1) * 25; - } if (filtros.activo) { if (typeof filtros.activo === 'boolean') { busqueda.activo = filtros.activo ? 1 : 0; @@ -411,65 +407,71 @@ export class PrestamoService { if (operadorRegreso) busqueda.id_operador_regreso = operadorRegreso.id_operador; options.where = busqueda; - return this.fullInformacionPrestamoView - .findAndCount(options) - .then((infoPrestamos) => { - const prestamos: Prestamo[] = []; + if (filtros.pagina) { + options.take = 25; + options.skip = (parseInt(filtros.pagina) - 1) * 25; + return this.fullInformacionPrestamoView + .findAndCount(options) + .then((infoPrestamos) => { + const prestamos: Prestamo[] = []; - for (let i = 0; i < infoPrestamos[0].length; i++) - prestamos.push( - this.repository.create({ - id_prestamo: infoPrestamos[0][i].id_prestamo, - activo: infoPrestamos[0][i].activo === 1, - cancelado_operador: infoPrestamos[0][i].cancelado_operador === 1, - cancelado_usuario: infoPrestamos[0][i].cancelado_usuario === 1, - fecha_entrega: infoPrestamos[0][i].fecha_entrega, - fecha_inicio: infoPrestamos[0][i].fecha_inicio, - hora_fin: infoPrestamos[0][i].hora_fin, - hora_inicio: infoPrestamos[0][i].hora_inicio, - hora_max_recoger: infoPrestamos[0][i].hora_max_recoger, - equipo: { - id_equipo: infoPrestamos[0][i].id_equipo, - equipo: infoPrestamos[0][i].equipo, - numero_inventario: infoPrestamos[0][i].numero_inventario, - carrito: { - id_carrito: infoPrestamos[0][i].id_carrito, - carrito: infoPrestamos[0][i].carrito, - modulo: { - id_modulo: infoPrestamos[0][i].id_modulo, - modulo: infoPrestamos[0][i].modulo, - institucion: { - id_institucion: infoPrestamos[0][i].id_institucion, - institucion: infoPrestamos[0][i].institucion, + for (let i = 0; i < infoPrestamos[0].length; i++) + prestamos.push( + this.repository.create({ + id_prestamo: infoPrestamos[0][i].id_prestamo, + activo: infoPrestamos[0][i].activo === 1, + cancelado_operador: + infoPrestamos[0][i].cancelado_operador === 1, + cancelado_usuario: infoPrestamos[0][i].cancelado_usuario === 1, + fecha_entrega: infoPrestamos[0][i].fecha_entrega, + fecha_inicio: infoPrestamos[0][i].fecha_inicio, + hora_fin: infoPrestamos[0][i].hora_fin, + hora_inicio: infoPrestamos[0][i].hora_inicio, + hora_max_recoger: infoPrestamos[0][i].hora_max_recoger, + equipo: { + id_equipo: infoPrestamos[0][i].id_equipo, + equipo: infoPrestamos[0][i].equipo, + numero_inventario: infoPrestamos[0][i].numero_inventario, + carrito: { + id_carrito: infoPrestamos[0][i].id_carrito, + carrito: infoPrestamos[0][i].carrito, + modulo: { + id_modulo: infoPrestamos[0][i].id_modulo, + modulo: infoPrestamos[0][i].modulo, + institucion: { + id_institucion: infoPrestamos[0][i].id_institucion, + institucion: infoPrestamos[0][i].institucion, + }, + }, + tipoCarrito: { + id_tipo_carrito: infoPrestamos[0][i].id_tipo_carrito, + tipo_carrito: infoPrestamos[0][i].tipo_carrito, }, }, - tipoCarrito: { - id_tipo_carrito: infoPrestamos[0][i].id_tipo_carrito, - tipo_carrito: infoPrestamos[0][i].tipo_carrito, + status: { id_status: infoPrestamos[0][i].id_status }, + }, + usuario: { + id_usuario: infoPrestamos[0][i].id_usuario, + nombre: infoPrestamos[0][i].nombre, + usuario: infoPrestamos[0][i].usuario, + tipoUsuario: { + id_tipo_usuario: infoPrestamos[0][i].id_tipo_usuario, }, }, - status: { id_status: infoPrestamos[0][i].id_status }, - }, - usuario: { - id_usuario: infoPrestamos[0][i].id_usuario, - nombre: infoPrestamos[0][i].nombre, - usuario: infoPrestamos[0][i].usuario, - tipoUsuario: { - id_tipo_usuario: infoPrestamos[0][i].id_tipo_usuario, + operadorEntrega: { + id_operador: infoPrestamos[0][i].id_operador_entrega, + operador: infoPrestamos[0][i].operador_entrega, }, - }, - operadorEntrega: { - id_operador: infoPrestamos[0][i].id_operador_entrega, - operador: infoPrestamos[0][i].operador_entrega, - }, - operadorRegreso: { - id_operador: infoPrestamos[0][i].id_operador_regreso, - operador: infoPrestamos[0][i].operador_regreso, - }, - }), - ); - return [prestamos, infoPrestamos[1]]; - }); + operadorRegreso: { + id_operador: infoPrestamos[0][i].id_operador_regreso, + operador: infoPrestamos[0][i].operador_regreso, + }, + }), + ); + return [prestamos, infoPrestamos[1]]; + }); + } + return this.fullInformacionPrestamoView.find(options); } findAllByIdEquipo(id_equipo: number, pagina: number) {