diff --git a/src/dto/input/id-institucion-optional.dto.ts b/src/dto/input/id-institucion-optional.dto.ts index 7c50554..e41e613 100644 --- a/src/dto/input/id-institucion-optional.dto.ts +++ b/src/dto/input/id-institucion-optional.dto.ts @@ -1,7 +1,15 @@ -import { IsNumberString, IsOptional } from 'class-validator'; +import { IsDateString, IsNumberString, IsOptional } from 'class-validator'; export class IdInstitucionOptionalDto { @IsNumberString() @IsOptional() id_institucion?: string; + + @IsDateString() + @IsOptional() + fechaFin?: string; + + @IsDateString() + @IsOptional() + fechaInicio?: string; } diff --git a/src/modulo-motivo/modulo-motivo.controller.ts b/src/modulo-motivo/modulo-motivo.controller.ts index 4d9c782..cf6aa93 100644 --- a/src/modulo-motivo/modulo-motivo.controller.ts +++ b/src/modulo-motivo/modulo-motivo.controller.ts @@ -86,6 +86,7 @@ export class ModuloMotivoController { description: 'Id de la institución.', name: 'id_institucion', type: 'string', + required: false, }) reporteActividadEspecial( @Request() req, @@ -94,9 +95,6 @@ export class ModuloMotivoController { const admin: Operador = req.user.operador; this.validarUsuarioService.validarSuperAdminAdmin(admin); - return this.moduloMotivoService.findAllActividadEspecial( - admin, - parseInt(query.id_institucion), - ); + return this.moduloMotivoService.findAllActividadEspecial(admin, query); } } diff --git a/src/modulo-motivo/modulo-motivo.service.ts b/src/modulo-motivo/modulo-motivo.service.ts index f66855d..277106e 100644 --- a/src/modulo-motivo/modulo-motivo.service.ts +++ b/src/modulo-motivo/modulo-motivo.service.ts @@ -6,7 +6,13 @@ import { Injectable, } from '@nestjs/common'; import { InjectRepository } from '@nestjs/typeorm'; -import { FindManyOptions, FindOptionsWhere, Repository } from 'typeorm'; +import { + Between, + FindManyOptions, + FindOptionsWhere, + MoreThanOrEqual, + Repository, +} from 'typeorm'; import { Modulo } from '../modulo/entity/modulo.entity'; import { ModuloMotivo } from './entity/modulo-motivo.entity'; import { Operador } from '../operador/entity/operador.entity'; @@ -44,20 +50,39 @@ export class ModuloMotivoService { async findAllActividadEspecial( admin: Operador, - id_institucion?: number, + filtros: { + fechaFin?: string; + fechaInicio?: string; + id_institucion?: string; + }, ): Promise { - const institucion = id_institucion - ? await this.institucionService.findById(id_institucion) + const institucion = filtros.id_institucion + ? await this.institucionService.findById(parseInt(filtros.id_institucion)) : null; const busqueda: FindOptionsWhere = {}; if (admin.institucion) busqueda.modulo = { institucion: admin.institucion }; else if (institucion) busqueda.modulo = { institucion: institucion }; + if (filtros.fechaInicio) { + if (filtros.fechaFin) + busqueda.fecha_creacion = Between( + new Date(`${filtros.fechaInicio} 00:00`), + new Date(`${filtros.fechaFin} 23:59`), + ); + else + busqueda.fecha_creacion = MoreThanOrEqual( + new Date(`${filtros.fechaInicio} 00:00`), + ); + } return this.repository.find({ join: { alias: 'mmo', innerJoinAndSelect: { m: 'mmo.modulo', i: 'm.institucion' }, }, + order: { + operador: { institucion: { institucion: 'ASC' } }, + id_motivo: 'ASC', + }, where: busqueda, }); } diff --git a/src/prestamo/prestamo.service.ts b/src/prestamo/prestamo.service.ts index b284da0..7141368 100644 --- a/src/prestamo/prestamo.service.ts +++ b/src/prestamo/prestamo.service.ts @@ -389,10 +389,12 @@ export class PrestamoService { const busqueda: FindOptionsWhere = {}; if (filtros.activo) { - if (typeof filtros.activo === 'boolean') { + if (typeof filtros.activo === 'boolean') busqueda.activo = filtros.activo ? 1 : 0; + else { + busqueda.activo = filtros.activo === 'true' ? 1 : 0; options.order.id_prestamo = 'ASC'; - } else busqueda.activo = filtros.activo === 'true' ? 1 : 0; + } } if (filtros.cancelado_operador) busqueda.cancelado_operador =