From 3194b124176be4eb7e3048ea43c44c350cbb6631 Mon Sep 17 00:00:00 2001 From: xXpuma99Xx <51341582+xXpuma99Xx@users.noreply.github.com> Date: Sat, 23 Apr 2022 22:45:57 -0500 Subject: [PATCH] multa a medias --- package-lock.json | 14 +++++ package.json | 1 + .../institucion-infraccion.module.ts | 1 + src/multa/multa.module.ts | 14 ++++- src/multa/multa.service.ts | 51 ++++++++++++++++++- src/prestamo/prestamo.module.ts | 1 + src/prestamo/prestamo.service.ts | 9 +++- 7 files changed, 88 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index de191e7..7f839e0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -19,6 +19,7 @@ "bcrypt": "^5.0.1", "class-transformer": "^0.5.1", "class-validator": "^0.13.2", + "moment": "^2.29.3", "mysql2": "^2.3.3", "passport": "^0.5.2", "passport-jwt": "^4.0.0", @@ -6877,6 +6878,14 @@ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" }, + "node_modules/moment": { + "version": "2.29.3", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.3.tgz", + "integrity": "sha512-c6YRvhEo//6T2Jz/vVtYzqBzwvPT95JBQ+smCytzf7c50oMZRsR/a4w88aD34I+/QVSfnoAnSBFPJHItlOMJVw==", + "engines": { + "node": "*" + } + }, "node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -14976,6 +14985,11 @@ } } }, + "moment": { + "version": "2.29.3", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.3.tgz", + "integrity": "sha512-c6YRvhEo//6T2Jz/vVtYzqBzwvPT95JBQ+smCytzf7c50oMZRsR/a4w88aD34I+/QVSfnoAnSBFPJHItlOMJVw==" + }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", diff --git a/package.json b/package.json index b5eeda6..89fa95d 100644 --- a/package.json +++ b/package.json @@ -31,6 +31,7 @@ "bcrypt": "^5.0.1", "class-transformer": "^0.5.1", "class-validator": "^0.13.2", + "moment": "^2.29.3", "mysql2": "^2.3.3", "passport": "^0.5.2", "passport-jwt": "^4.0.0", diff --git a/src/institucion-infraccion/institucion-infraccion.module.ts b/src/institucion-infraccion/institucion-infraccion.module.ts index bbf7d6a..67b6313 100644 --- a/src/institucion-infraccion/institucion-infraccion.module.ts +++ b/src/institucion-infraccion/institucion-infraccion.module.ts @@ -13,5 +13,6 @@ import { InstitucionModule } from '../institucion/institucion.module'; ], controllers: [InstitucionInfraccionController], providers: [InstitucionInfraccionService], + exports: [InstitucionInfraccionService], }) export class InstitucionInfraccionModule {} diff --git a/src/multa/multa.module.ts b/src/multa/multa.module.ts index 91381cf..c6e7819 100644 --- a/src/multa/multa.module.ts +++ b/src/multa/multa.module.ts @@ -3,9 +3,21 @@ import { TypeOrmModule } from '@nestjs/typeorm'; import { MultaController } from './multa.controller'; import { MultaService } from './multa.service'; import { Multa } from './entity/multa.entity'; +import { EquipoModule } from 'src/equipo/equipo.module'; +import { InstitucionInfraccionModule } from 'src/institucion-infraccion/institucion-infraccion.module'; +import { OperadorModule } from 'src/operador/operador.module'; +import { PrestamoModule } from 'src/prestamo/prestamo.module'; +import { UsuarioModule } from 'src/usuario/usuario.module'; @Module({ - imports: [TypeOrmModule.forFeature([Multa])], + imports: [ + TypeOrmModule.forFeature([Multa]), + EquipoModule, + InstitucionInfraccionModule, + OperadorModule, + PrestamoModule, + UsuarioModule, + ], controllers: [MultaController], providers: [MultaService], }) diff --git a/src/multa/multa.service.ts b/src/multa/multa.service.ts index 2c36e33..abde93c 100644 --- a/src/multa/multa.service.ts +++ b/src/multa/multa.service.ts @@ -1,9 +1,58 @@ import { Injectable } from '@nestjs/common'; import { InjectRepository } from '@nestjs/typeorm'; import { Repository } from 'typeorm'; +import * as moment from 'moment'; +import { InstitucionInfraccion } from '../institucion-infraccion/entity/institucion-infraccion.entity'; import { Multa } from './entity/multa.entity'; +import { Prestamo } from '../prestamo/entity/prestamo.entity'; +import { EquipoService } from 'src/equipo/equipo.service'; +import { InstitucionInfraccionService } from 'src/institucion-infraccion/institucion-infraccion.service'; +import { OperadorService } from 'src/operador/operador.service'; +import { PrestamoService } from 'src/prestamo/prestamo.service'; +import { UsuarioService } from 'src/usuario/usuario.service'; @Injectable() export class MultaService { - constructor(@InjectRepository(Multa) private repository: Repository) {} + constructor( + @InjectRepository(Multa) private repository: Repository, + private equipoService: EquipoService, + private InstitucionInfraccionService: InstitucionInfraccionService, + private operadorService: OperadorService, + private prestamoService: PrestamoService, + private usuarioService: UsuarioService, + ) {} + + async create( + id_institucion_infraccion: number, + id_prestamo: number, + id_operador: number, + retraso: boolean, + ) { + const prestamo = await this.prestamoService.findById(id_prestamo); + const operador = await this.operadorService.findById(id_operador); + const institucionInfraccion = id_institucion_infraccion + ? await this.InstitucionInfraccionService.findById( + id_institucion_infraccion, + ) + : null; + const data: { + prestamo: Prestamo; + institucionInfraccion?: InstitucionInfraccion; + retraso?: boolean; + } = { prestamo }; + + // const nuevo + // this.repository.create({ + // institucionInfraccion, + // prestamo, + // fecha_inicio: new Date(), + // }); + + if (retraso) data.retraso = retraso; + if (institucionInfraccion) data.institucionInfraccion; + } + + findAllByIdUsuario(id_usuario: number) {} + + findAllByIdEquipo(id_eqipo: number) {} } diff --git a/src/prestamo/prestamo.module.ts b/src/prestamo/prestamo.module.ts index 84478c7..6f4a1d8 100644 --- a/src/prestamo/prestamo.module.ts +++ b/src/prestamo/prestamo.module.ts @@ -8,5 +8,6 @@ import { Prestamo } from './entity/prestamo.entity'; imports: [TypeOrmModule.forFeature([Prestamo])], controllers: [PrestamoController], providers: [PrestamoService], + exports: [PrestamoService], }) export class PrestamoModule {} diff --git a/src/prestamo/prestamo.service.ts b/src/prestamo/prestamo.service.ts index 594a749..a0d0ae3 100644 --- a/src/prestamo/prestamo.service.ts +++ b/src/prestamo/prestamo.service.ts @@ -1,4 +1,4 @@ -import { Injectable } from '@nestjs/common'; +import { Injectable, NotFoundException } from '@nestjs/common'; import { InjectRepository } from '@nestjs/typeorm'; import { Repository } from 'typeorm'; import { Prestamo } from './entity/prestamo.entity'; @@ -8,4 +8,11 @@ export class PrestamoService { constructor( @InjectRepository(Prestamo) private repository: Repository, ) {} + + findById(id_prestamo: number) { + return this.repository.findOne({ id_prestamo }).then((prestamo) => { + if (!prestamo) throw new NotFoundException('No existe este préstamo.'); + return prestamo; + }); + } }