From 1ae6cf72b07926cf9a357c70f4181c5a2fb04df5 Mon Sep 17 00:00:00 2001 From: lemuel Date: Sat, 11 Jun 2022 20:33:56 -0500 Subject: [PATCH] historial --- src/prestamo/dto/prestamo-historial.dto.ts | 49 ++++++++++++++++++++++ src/prestamo/prestamo.controller.ts | 1 - src/prestamo/prestamo.service.ts | 20 +++++---- 3 files changed, 60 insertions(+), 10 deletions(-) create mode 100644 src/prestamo/dto/prestamo-historial.dto.ts diff --git a/src/prestamo/dto/prestamo-historial.dto.ts b/src/prestamo/dto/prestamo-historial.dto.ts new file mode 100644 index 0000000..900e588 --- /dev/null +++ b/src/prestamo/dto/prestamo-historial.dto.ts @@ -0,0 +1,49 @@ +import { + IsDateString, + IsNumberString, + IsOptional, + IsString, +} from 'class-validator'; + +export class PrestamoHistorialDto { + @IsNumberString() + pagina: string; + + @IsString() + @IsOptional() + carrito?: string; + + @IsString() + @IsOptional() + equipo?: string; + + @IsDateString() + fechaFin?: string; + + @IsDateString() + fechaInicio?: string; + + @IsNumberString() + @IsOptional() + id_institucion?: string; + + @IsNumberString() + @IsOptional() + id_modulo?: string; + + @IsNumberString() + @IsOptional() + id_prestamo?: string; + + @IsNumberString() + @IsOptional() + id_tipo_carrito?: string; + + @IsNumberString() + @IsOptional() + id_tipo_usuario?: string; + + @IsString() + @IsOptional() + usuario?: string; +} diff --git a/src/prestamo/prestamo.controller.ts b/src/prestamo/prestamo.controller.ts index 66def0e..d5bbb0f 100644 --- a/src/prestamo/prestamo.controller.ts +++ b/src/prestamo/prestamo.controller.ts @@ -11,7 +11,6 @@ export class PrestamoController { @Get('activos') activos(@Query() query: PrestamoActivosDto) { - console.log(query); return this.prestamoService.findAll(query); } diff --git a/src/prestamo/prestamo.service.ts b/src/prestamo/prestamo.service.ts index e30cfd6..e8e693d 100644 --- a/src/prestamo/prestamo.service.ts +++ b/src/prestamo/prestamo.service.ts @@ -24,6 +24,7 @@ import { OperadorService } from '../operador/operador.service'; import { StatusService } from '../status/status.service'; import { TipoUsuarioService } from '../tipo-usuario/tipo-usuario.service'; import { UsuarioService } from '../usuario/usuario.service'; +import { Institucion } from 'src/institucion/entity/institucion.entity'; @Injectable() export class PrestamoService { @@ -66,14 +67,12 @@ export class PrestamoService { ) : null; - console.log(modulo); - return this.repository .findOne({ activo: true, usuario }) - .then((prestamo) => { - if (prestamo) + .then((existePrestamo) => { + if (existePrestamo) throw new ConflictException( - 'Este usuario ya tiene un prestamo activo.', + 'Este usuario ya tiene un préstamo activo.', ); return this.equipoService.reseteo( modulo, @@ -110,7 +109,6 @@ export class PrestamoService { } async findAll(filtros: { - id_modulo: string; pagina: string; activo?: string | boolean; carrito?: string; @@ -118,6 +116,8 @@ export class PrestamoService { fechaFin?: string; fechaInicio?: string; id_carrera?: string; + id_institucion?: string; + id_modulo?: string; id_operador_entrega?: string; id_operador_regreso?: string; id_tipo_carrito?: string; @@ -149,7 +149,7 @@ export class PrestamoService { equipo?: FindOperator; carrito: { carrito?: FindOperator; - modulo?: Modulo; + modulo?: Modulo | { institucion: Institucion }; tipoCarrito?: TipoCarrito; }; }; @@ -166,6 +166,9 @@ export class PrestamoService { parseInt(filtros.id_carrera), ) : null; + const institucion = filtros.id_institucion + ? await this.institucionService.findById(parseInt(filtros.id_institucion)) + : null; const modulo = filtros.id_modulo ? await this.moduloService.findById(parseInt(filtros.id_modulo)) : null; @@ -190,12 +193,10 @@ export class PrestamoService { ) : null; - console.log(filtros.activo); if (filtros.activo) { if (typeof filtros.activo === 'boolean') busqueda.activo = filtros.activo; else busqueda.activo = filtros.activo === 'true'; } else { - console.log('hola'); join.oe = 'p.operadorEntrega'; join.or = 'p.operadorRegreso'; } @@ -206,6 +207,7 @@ export class PrestamoService { if (filtros.usuario) busqueda.usuario.usuario = Like(`%${filtros.usuario}%`); if (carrera) busqueda.usuario.institucionCarrera.carrera = carrera; + if (institucion) busqueda.equipo.carrito.modulo = { institucion }; if (modulo) busqueda.equipo.carrito.modulo = modulo; if (operadorEntrega) busqueda.operadorEntrega = operadorEntrega; if (operadorRegreso) busqueda.operadorRegreso = operadorRegreso;