From b4a717e0fa4e1871d5da6cd2f93b22071d563169 Mon Sep 17 00:00:00 2001 From: lemuel Date: Tue, 17 Jan 2023 09:31:48 -0600 Subject: [PATCH] listo reportes lab movil --- src/carrito-motivo/carrito-motivo.controller.ts | 2 +- src/carrito-motivo/carrito-motivo.module.ts | 2 ++ src/carrito-motivo/carrito-motivo.service.ts | 15 +++++++++++---- .../dto/input/laboratorio-movil.dto.ts | 4 ++++ src/carrito/carrito.controller.ts | 2 +- src/carrito/carrito.module.ts | 2 ++ src/carrito/carrito.service.ts | 13 ++++++++++--- src/carrito/dto/input/carritos.dto.ts | 4 ++++ 8 files changed, 35 insertions(+), 9 deletions(-) diff --git a/src/carrito-motivo/carrito-motivo.controller.ts b/src/carrito-motivo/carrito-motivo.controller.ts index 55a43b5..95d8983 100644 --- a/src/carrito-motivo/carrito-motivo.controller.ts +++ b/src/carrito-motivo/carrito-motivo.controller.ts @@ -91,7 +91,7 @@ export class CarritoMotivoController { laboratorioMovil(@Request() req, @Query() query: LaboratorioMovilDto) { const admin: Operador = req.user.operador; - this.validarUsuarioService.validarAdmin(admin); + this.validarUsuarioService.validarSuperAdminAdmin(admin); return this.carritoMotivoService.findAllLaboratorioMovil(admin, query); } diff --git a/src/carrito-motivo/carrito-motivo.module.ts b/src/carrito-motivo/carrito-motivo.module.ts index 0c7bf81..2cee490 100644 --- a/src/carrito-motivo/carrito-motivo.module.ts +++ b/src/carrito-motivo/carrito-motivo.module.ts @@ -5,6 +5,7 @@ import { CarritoMotivoController } from './carrito-motivo.controller'; import { CarritoMotivoService } from './carrito-motivo.service'; import { CarritoMotivo } from './entity/carrito-motivo.entity'; import { CarritoModule } from '../carrito/carrito.module'; +import { InstitucionModule } from '../institucion/institucion.module'; import { InstitucionTipoCarritoModule } from '../institucion-tipo-carrito/institucion-tipo-carrito.module'; import { MarcaModule } from '../marca/marca.module'; import { ModeloModule } from '../modelo/modelo.module'; @@ -14,6 +15,7 @@ import { StatusModule } from '../status/status.module'; @Module({ imports: [ forwardRef(() => CarritoModule), + InstitucionModule, InstitucionTipoCarritoModule, MarcaModule, ModeloModule, diff --git a/src/carrito-motivo/carrito-motivo.service.ts b/src/carrito-motivo/carrito-motivo.service.ts index 27a332f..653bcd9 100644 --- a/src/carrito-motivo/carrito-motivo.service.ts +++ b/src/carrito-motivo/carrito-motivo.service.ts @@ -11,6 +11,7 @@ import { Carrito } from '../carrito/entity/carrito.entity'; import { CarritoMotivo } from './entity/carrito-motivo.entity'; import { Operador } from '../operador/entity/operador.entity'; import { CarritoService } from '../carrito/carrito.service'; +import { InstitucionService } from '../institucion/institucion.service'; import { InstitucionTipoCarritoService } from '../institucion-tipo-carrito/institucion-tipo-carrito.service'; import { MarcaService } from '../marca/marca.service'; import { ModeloService } from '../modelo/modelo.service'; @@ -23,6 +24,7 @@ export class CarritoMotivoService { private repository: Repository, @Inject(forwardRef(() => CarritoService)) private carritoService: CarritoService, + private institucionService: InstitucionService, private institucionTipoCarritoService: InstitucionTipoCarritoService, private marcaService: MarcaService, private modeloService: ModeloService, @@ -75,12 +77,16 @@ export class CarritoMotivoService { admin: Operador, filtros: { carrito?: string; + id_institucion?: string; id_marca?: string; id_modelo?: string; id_modulo?: string; id_tipo_carrito?: string; }, ): Promise { + const institucion = filtros.id_institucion + ? await this.institucionService.findById(parseInt(filtros.id_institucion)) + : null; const marca = filtros.id_marca ? await this.marcaService.findById(parseInt(filtros.id_marca), 'c') : null; @@ -95,17 +101,18 @@ export class CarritoMotivoService { parseInt(filtros.id_tipo_carrito), ) : null; - const busquedaCarrito: FindOptionsWhere = { - modulo: { institucion: admin.institucion }, - }; + const busquedaCarrito: FindOptionsWhere = {}; const busqueda: FindOptionsWhere = { laboratorioMovil: true, }; if (filtros.carrito) busquedaCarrito.carrito = filtros.carrito; + if (admin.institucion) + busquedaCarrito.modulo = { institucion: admin.institucion }; + else if (institucion) busquedaCarrito.modulo = { institucion }; if (marca) busquedaCarrito.marca = marca; if (modelo) busquedaCarrito.modelo = modelo; - if (modulo) busquedaCarrito.modulo = modulo; + if (modulo && admin.institucion) busquedaCarrito.modulo = modulo; if (tipoCarrito) busquedaCarrito.tipoCarrito = tipoCarrito; busqueda.carrito = busquedaCarrito; return this.repository.find({ diff --git a/src/carrito-motivo/dto/input/laboratorio-movil.dto.ts b/src/carrito-motivo/dto/input/laboratorio-movil.dto.ts index b0cb591..cf7ff75 100644 --- a/src/carrito-motivo/dto/input/laboratorio-movil.dto.ts +++ b/src/carrito-motivo/dto/input/laboratorio-movil.dto.ts @@ -11,6 +11,10 @@ export class LaboratorioMovilDto { @IsOptional() carrito?: string; + @IsNumberString() + @IsOptional() + id_institucion?: string; + @IsNumberString() @IsOptional() id_marca?: string; diff --git a/src/carrito/carrito.controller.ts b/src/carrito/carrito.controller.ts index a8fcdf0..03523f1 100644 --- a/src/carrito/carrito.controller.ts +++ b/src/carrito/carrito.controller.ts @@ -109,7 +109,7 @@ export class CarritoController { carritos(@Request() req, @Query() query: CarritosDto) { const operador: Operador = req.user.operador; - this.validarUsuarioService.validarAdminOperador(operador); + this.validarUsuarioService.validarOperador(operador); return this.carritoService.findAll(operador, query); } diff --git a/src/carrito/carrito.module.ts b/src/carrito/carrito.module.ts index cc83536..7beb5ec 100644 --- a/src/carrito/carrito.module.ts +++ b/src/carrito/carrito.module.ts @@ -7,6 +7,7 @@ import { Carrito } from './entity/carrito.entity'; import { FullInformacionCarritoView } from './entity/views/full-informacion-carrito.view'; import { InformacionCarritoView } from './entity/views/informacion-carrito.view'; import { CarritoMotivoModule } from '../carrito-motivo/carrito-motivo.module'; +import { InstitucionModule } from '../institucion/institucion.module'; import { InstitucionTipoCarritoModule } from '../institucion-tipo-carrito/institucion-tipo-carrito.module'; import { MarcaModule } from '../marca/marca.module'; import { ModeloModule } from '../modelo/modelo.module'; @@ -15,6 +16,7 @@ import { ModuloModule } from '../modulo/modulo.module'; @Module({ imports: [ forwardRef(() => CarritoMotivoModule), + InstitucionModule, InstitucionTipoCarritoModule, MarcaModule, ModeloModule, diff --git a/src/carrito/carrito.service.ts b/src/carrito/carrito.service.ts index 2e798d4..2413499 100644 --- a/src/carrito/carrito.service.ts +++ b/src/carrito/carrito.service.ts @@ -14,6 +14,7 @@ import { Modulo } from '../modulo/entity/modulo.entity'; import { Operador } from '../operador/entity/operador.entity'; import { TipoCarrito } from '../institucion-tipo-carrito/entity/tipo-carrito.entity'; import { CarritoMotivoService } from '../carrito-motivo/carrito-motivo.service'; +import { InstitucionService } from '../institucion/institucion.service'; import { InstitucionTipoCarritoService } from '../institucion-tipo-carrito/institucion-tipo-carrito.service'; import { MarcaService } from '../marca/marca.service'; import { ModeloService } from '../modelo/modelo.service'; @@ -29,6 +30,7 @@ export class CarritoService { private informacionCarritoView: Repository, @Inject(forwardRef(() => CarritoMotivoService)) private caritoMotivoService: CarritoMotivoService, + private institucionService: InstitucionService, private institucionTipoCarritoService: InstitucionTipoCarritoService, private marcaService: MarcaService, private modeloService: ModeloService, @@ -72,6 +74,7 @@ export class CarritoService { pagina?: string; activo?: string; carrito?: string; + id_institucion?: string; id_marca?: string; id_modelo?: string; id_modulo?: string; @@ -79,6 +82,9 @@ export class CarritoService { }, ): Promise { const carritos: Carrito[] = []; + const institucion = filtros.id_institucion + ? await this.institucionService.findById(parseInt(filtros.id_institucion)) + : null; const marca = filtros.id_marca ? await this.marcaService.findById(parseInt(filtros.id_marca), 'c') : null; @@ -94,13 +100,14 @@ export class CarritoService { ) : null; const options: FindManyOptions = {}; - const busqueda: FindOptionsWhere = { - id_institucion: operador.institucion.id_institucion, - }; + const busqueda: FindOptionsWhere = {}; if (filtros.activo === 'true') busqueda.activo = 1; if (filtros.activo === 'false') busqueda.activo = 0; if (filtros.carrito) busqueda.carrito = Like(`%${filtros.carrito}%`); + if (operador.institucion) + busqueda.id_institucion = operador.institucion.id_institucion; + else if (institucion) busqueda.id_institucion = institucion.id_institucion; if (marca) busqueda.id_marca = marca.id_marca; if (modelo) busqueda.id_modelo = modelo.id_modelo; if (modulo) busqueda.id_modulo = modulo.id_modulo; diff --git a/src/carrito/dto/input/carritos.dto.ts b/src/carrito/dto/input/carritos.dto.ts index ad1c5f7..3f74820 100644 --- a/src/carrito/dto/input/carritos.dto.ts +++ b/src/carrito/dto/input/carritos.dto.ts @@ -16,6 +16,10 @@ export class CarritosDto { @IsOptional() carrito?: string; + @IsNumberString() + @IsOptional() + id_institucion?: string; + @IsNumberString() @IsOptional() id_marca?: string;