cron service final
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user