casi listo

This commit is contained in:
xXpuma99Xx
2022-10-25 16:45:38 -05:00
parent 04f2f2948b
commit 9b5665b3e4
10 changed files with 308 additions and 306 deletions
+19 -10
View File
@@ -1,7 +1,7 @@
import * as moment from 'moment';
import { ConflictException, Injectable } from '@nestjs/common';
import { InjectRepository } from '@nestjs/typeorm';
import { DeepPartial, FindOptionsWhere, Like, Repository } from 'typeorm';
import { FindOptionsWhere, 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';
@@ -39,6 +39,7 @@ export class MultaService {
retraso?: number,
id_institucion_infraccion?: number,
) {
console.log('hola1');
const ahora = moment();
const prestamo =
typeof id_prestamo === 'number'
@@ -48,51 +49,59 @@ export class MultaService {
typeof id_operador === 'number'
? await this.operadorService.findById(id_operador)
: id_operador;
const data: DeepPartial<Multa> = {
// Creo registro de multa
const nuevaMulta = this.repository.create({
descripcion,
fecha_inicio: ahora.toDate(),
operadorMulta: operador,
prestamo,
};
});
let institucionInfraccion = id_institucion_infraccion
? await this.institucionInfraccionService.findById(
id_institucion_infraccion,
)
: null;
// Valido que este prestamo no haya sido cancelado poer el usuario u operador
if (prestamo.cancelado_operador || prestamo.cancelado_usuario)
throw new ConflictException(
'No se puede multar a un usuario con un préstamo que fue cancelado.',
);
// Si no se mando un id_institucion_infraccion
if (!institucionInfraccion) {
// Si tampoco se mando retraso saco error
if (!retraso)
throw new ConflictException(
'No se mandó ningún motivo para multar a este alumno.',
);
// Asigno institucionInfraccion "Sin multa" por default
institucionInfraccion =
await this.institucionInfraccionService.findSinInfraccion(
operador.institucion,
);
}
// Busco una multa con este préstamo
return this.repository
.findOne({ where: { prestamo } })
.then((existeMulta) => {
// Si existe saco error
if (existeMulta)
throw new ConflictException(
'Ya existe una multa asignada a este préstamo.',
);
// Si hay retraso lo agrego a la multa
if (retraso) {
data.retraso = true;
nuevaMulta.retraso = true;
ahora.add(retraso * operador.institucion.dias_multa_retraso, 'd');
}
if (institucionInfraccion) {
data.institucionInfraccion = institucionInfraccion;
ahora.add(institucionInfraccion.dias_multa, 'd');
}
data.fecha_fin = ahora.toDate();
return this.repository.save(this.repository.create(data));
nuevaMulta.institucionInfraccion = institucionInfraccion;
ahora.add(institucionInfraccion.dias_multa, 'd');
nuevaMulta.fecha_fin = ahora.toDate();
// Guardo la información
return this.repository.save(nuevaMulta);
})
.then((_) =>
// Actualizo multas del usuario
this.institucionUsuarioService.updateMulta(
operador.institucion.id_institucion,
prestamo.usuario.id_usuario,