reporte multa

This commit is contained in:
xXpuma99Xx 2023-01-08 23:27:23 -06:00
parent 06a5b670fb
commit d95c7ec44c
3 changed files with 57 additions and 33 deletions

View File

@ -0,0 +1,13 @@
import { IsNotEmpty, IsOptional, IsString } from 'class-validator';
export class ReporteDto {
@IsString()
@IsNotEmpty()
@IsOptional()
nombre?: string;
@IsString()
@IsNotEmpty()
@IsOptional()
usuario?: string;
}

View File

@ -26,6 +26,7 @@ import { IdUsuarioPaginaDto } from '../dto/input/id-usuario-pagina.dto';
import { MultarDto } from './dto/input/multar.dto';
import { MultasDto } from './dto/input/multas.dto';
import { QuitarMultarDto } from './dto/input/quitar.dto';
import { ReporteDto } from './dto/input/reporte.dto';
import { MessageOutputDto } from '../dto/output/message.dto';
import { MultasOutputDto } from './dto/output/multas.dto';
import { MultasEquipoOutputDto } from './dto/output/multas-equipo.dto';
@ -187,13 +188,13 @@ export class MultaController {
return this.multaService.quitarMulta(admin, body.id_institucion_usuario);
}
// @Get('reporte')
// @UseGuards(AuthGuard('jwt'))
// @ApiBearerAuth('jwt')
// reporte(@Request() req) {
// const operador: Operador = req.user.operador;
@Get('reporte')
@UseGuards(AuthGuard('jwt'))
@ApiBearerAuth('jwt')
reporte(@Request() req, @Query() query: ReporteDto) {
const operador: Operador = req.user.operador;
// this.validarUsuarioService.validarAdminOperador(operador);
// // return this.multaService.findAll(operador, query);
// }
this.validarUsuarioService.validarAdminOperador(operador);
return this.multaService.findAll(operador, query);
}
}

View File

@ -1,7 +1,13 @@
import * as moment from 'moment';
import { ConflictException, Injectable } from '@nestjs/common';
import { InjectRepository } from '@nestjs/typeorm';
import { FindOptionsWhere, LessThanOrEqual, Like, Repository } from 'typeorm';
import {
FindManyOptions,
FindOptionsWhere,
LessThanOrEqual,
Like,
Repository,
} from 'typeorm';
import { Modulo } from '../modulo/entity/modulo.entity';
import { Multa } from './entity/multa.entity';
import { Operador } from '../operador/entity/operador.entity';
@ -92,28 +98,31 @@ export class MultaService {
findAll(
operador: Operador,
filtros: {
pagina: string;
nombre?: string;
pagina?: string;
usuario?: string;
},
): Promise<[Multa[], number]> {
const busqueda: FindOptionsWhere<FullInformacionMultaView> = {};
if (filtros.nombre) busqueda.nombre = Like(`%${filtros.nombre}%`);
if (filtros.usuario) busqueda.usuario = Like(`%${filtros.usuario}%`);
if (operador) busqueda.id_institucion = operador.institucion.id_institucion;
return this.fullInformacionMultaView
.findAndCount({
where: busqueda,
): Promise<FullInformacionMultaView[] | [Multa[], number]> {
const busqueda: FindOptionsWhere<FullInformacionMultaView> = {
id_institucion: operador.institucion.id_institucion,
};
const options: FindManyOptions<FullInformacionMultaView> = {
order: {
institucion: 'ASC',
activo: 'DESC',
fecha_fin: 'ASC',
usuario: 'ASC',
},
skip: (parseInt(filtros.pagina) - 1) * 25,
take: 25,
})
};
if (filtros.nombre) busqueda.nombre = Like(`%${filtros.nombre}%`);
if (filtros.usuario) busqueda.usuario = Like(`%${filtros.usuario}%`);
options.where = busqueda;
if (filtros.pagina) {
options.skip = (parseInt(filtros.pagina) - 1) * 25;
options.take = 25;
return this.fullInformacionMultaView
.findAndCount(options)
.then((infoMultas) => {
const multas: Multa[] = [];
@ -123,6 +132,7 @@ export class MultaService {
);
return [multas, infoMultas[1]];
});
} else return this.fullInformacionMultaView.find(options);
}
findAllActivasExpiradas(): Promise<Multa[]> {