cron service final

This commit is contained in:
xXpuma99Xx
2022-12-19 19:10:31 -06:00
parent 07a66825b8
commit 8115d7b48b
8 changed files with 156 additions and 108 deletions
@@ -10,9 +10,7 @@ import { Operador } from '../../../operador/entity/operador.entity';
.createQueryBuilder()
.select('mu.id_multa', 'id_multa')
.addSelect('mu.activo', 'activo')
.addSelect('mu.descripcion', 'descripcion')
.addSelect('mu.fecha_fin', 'fecha_fin')
.addSelect('mu.fecha_inicio', 'fecha_inicio')
.addSelect('mu.id_institucion_infraccion', 'id_institucion_infraccion')
.addSelect('mu.id_operador', 'id_operador')
.addSelect('mu.id_prestamo', 'id_prestamo')
@@ -36,15 +34,9 @@ export class InformacionMultaView {
@ViewColumn()
activo: number;
@ViewColumn()
descripcion: string;
@ViewColumn()
fecha_fin: Date;
@ViewColumn()
fecha_inicio: Date;
@ViewColumn()
id_institucion: number;
@@ -64,5 +56,5 @@ export class InformacionMultaView {
id_usuario: number;
@ViewColumn()
retraso: boolean;
retraso: number;
}
+1 -1
View File
@@ -174,7 +174,7 @@ export class MultaController {
const usuario: Usuario = req.user.usuario;
this.validarUsuarioService.validarUsuario(usuario);
return this.multaService.findMultasActivas(usuario);
return this.multaService.findMultasActivasByUsuario(usuario);
}
@Serealize(MessageOutputDto)
+33 -28
View File
@@ -1,7 +1,7 @@
import * as moment from 'moment';
import { ConflictException, Injectable } from '@nestjs/common';
import { InjectRepository } from '@nestjs/typeorm';
import { FindOptionsWhere, Like, Repository } from 'typeorm';
import { FindOptionsWhere, LessThanOrEqual, Like, Repository } from 'typeorm';
import { Multa } from './entity/multa.entity';
import { FullInformacionMultaView } from './entity/views/full-informacion-multa.view';
import { InformacionMultaView } from './entity/views/informacion-multa.view';
@@ -141,34 +141,35 @@ export class MultaService {
);
}
desactivarMultas() {
const ahora = moment();
// Busco todas las multas activas
findAllActivasExpiradas() {
return this.informacionMultaView
.find({ where: { activo: 1 } })
.then(async (infoMultas) => {
// recorro todo el array
.find({
where: { activo: 1, fecha_fin: LessThanOrEqual(moment().toDate()) },
})
.then((infoMultas) => {
const multas: Multa[] = [];
for (let i = 0; i < infoMultas.length; i++)
// Si ya caducó
if (ahora.diff(moment(infoMultas[i].fecha_fin)) > 0) {
// Desactivo multa y guardo cambios
await this.repository
.save(
this.repository.create({
id_multa: infoMultas[i].id_multa,
activo: false,
}),
)
.then((_) =>
// Quito multas en institución usuario
this.institucionUsuarioService.updateMulta(
infoMultas[i].id_institucion,
infoMultas[i].id_usuario,
false,
),
);
}
multas.push(
this.repository.create({
id_multa: infoMultas[i].id_multa,
activo: infoMultas[i].activo === 1,
fecha_fin: infoMultas[i].fecha_fin,
retraso: infoMultas[i].retraso === 1,
institucionInfraccion: {
id_institucion_infraccion:
infoMultas[i].id_institucion_infraccion,
infraccion: { id_infraccion: infoMultas[i].id_infraccion },
institucion: { id_institucion: infoMultas[i].id_institucion },
},
operadorMulta: { id_operador: infoMultas[i].id_operador },
prestamo: {
id_prestamo: infoMultas[i].id_prestamo,
usuario: { id_usuario: infoMultas[i].id_usuario },
},
}),
);
return multas;
});
}
@@ -266,7 +267,7 @@ export class MultaService {
});
}
findMultasActivas(usuario: Usuario) {
findMultasActivasByUsuario(usuario: Usuario) {
return this.repository
.createQueryBuilder('mu')
.innerJoin('mu.prestamo', 'p')
@@ -313,6 +314,10 @@ export class MultaService {
});
}
save(multa: Multa) {
return this.repository.save(multa);
}
private validacionMultaCancelacion(prestamo: Prestamo) {
// Validamos que este prestamo no haya sido cancelado poer el usuario u operador
if (prestamo.cancelado_operador || prestamo.cancelado_usuario)