From 584531b317f27dfbbedc2ed4cc9914f00ee94780 Mon Sep 17 00:00:00 2001 From: lemuel Date: Tue, 20 Dec 2022 07:18:37 -0600 Subject: [PATCH] equipo programa service final --- src/auth/auth.controller.ts | 2 +- .../carrera-programa.service.ts | 4 +- .../entity/equipo-programa.entity.ts | 2 +- .../equipo-programa.service.ts | 85 ++++++++++--------- .../equipo-tipo-entrada.service.ts | 4 +- .../entity/views/informacion-equipo.view.ts | 2 +- src/equipo/equipo.service.ts | 15 ++-- src/hora-excepcion/hora-excepcion.service.ts | 2 +- .../institucion-dia.service.ts | 2 +- .../institucion-infraccion.service.ts | 4 +- .../institucion-programa.service.ts | 4 +- .../institucion-tipo-carrito.service.ts | 4 +- .../institucion-tipo-entrada.service.ts | 4 +- .../institucion-usuario.service.ts | 4 +- src/marca/marca.service.ts | 4 +- src/modelo/modelo.service.ts | 4 +- src/modulo/modulo.service.ts | 6 +- src/multa/multa.service.ts | 4 +- src/prestamo/prestamo.service.ts | 10 +-- src/tipo-usuario/tipo-usuario.service.ts | 4 +- src/upload-file/upload-file.service.ts | 5 +- src/usuario/usuario.service.ts | 2 +- 22 files changed, 94 insertions(+), 83 deletions(-) diff --git a/src/auth/auth.controller.ts b/src/auth/auth.controller.ts index aa1fa2d..0307f05 100644 --- a/src/auth/auth.controller.ts +++ b/src/auth/auth.controller.ts @@ -58,7 +58,7 @@ export class AuthController { @Get('validar-token') @UseGuards(AuthGuard('jwt')) - @ApiOperation({ description: 'Valida que el un token sea válido.' }) + @ApiOperation({ description: 'Validamos que el un token sea válido.' }) validarToken() { return { valido: true }; } diff --git a/src/carrera-programa/carrera-programa.service.ts b/src/carrera-programa/carrera-programa.service.ts index 139be92..7183b73 100644 --- a/src/carrera-programa/carrera-programa.service.ts +++ b/src/carrera-programa/carrera-programa.service.ts @@ -46,7 +46,7 @@ export class CarreraProgramaService { throw new ForbiddenException( 'Esta carrera no pertenece a tu institución.', ); - // Busco un registro con los datos mandados del client + // Buscamos un registro con los datos mandados del client return this.repository .findOne({ select: ['id_carrera_programa'], @@ -58,7 +58,7 @@ export class CarreraProgramaService { throw new ConflictException( 'Ya se asignó este programa a esta carrera.', ); - // Creo y guardo registro + // Creamos y guardamos registro return this.repository.save( this.repository.create({ institucionCarrera, programa }), ); diff --git a/src/equipo-programa/entity/equipo-programa.entity.ts b/src/equipo-programa/entity/equipo-programa.entity.ts index 97e8c5d..157fe14 100644 --- a/src/equipo-programa/entity/equipo-programa.entity.ts +++ b/src/equipo-programa/entity/equipo-programa.entity.ts @@ -16,7 +16,7 @@ export class EquipoPrograma { @Column({ type: Number, nullable: true }) id_equipo: number; - @Column({ type: Number, nullable: true }) + @Column({ type: Number, nullable: true, default: 1 }) id_programa: number; @ManyToOne(() => Equipo, (equipo) => equipo.programas) diff --git a/src/equipo-programa/equipo-programa.service.ts b/src/equipo-programa/equipo-programa.service.ts index f976c9c..73bdb8d 100644 --- a/src/equipo-programa/equipo-programa.service.ts +++ b/src/equipo-programa/equipo-programa.service.ts @@ -30,18 +30,22 @@ export class EquipoProgramaService { private institucionProgramaService: InstitucionProgramaService, ) {} - async asignar(operador: Operador, id_equipo: number, id_programa: number) { + async asignar( + operador: Operador, + id_equipo: number, + id_programa: number, + ): Promise<{ message: string }> { const equipo = await this.equipoService.findById(id_equipo); const programa = await this.institucionProgramaService.findProgramaById( id_programa, ); - // valido que el programa seleccionado no sea "Sin programa" + // Validamos que el programa seleccionado no sea "Sin programa" if (programa.id_programa === 1) throw new ConflictException( - 'No se puede asignar manualmente este programa.', + 'No se puede asignar manualmente sin programa.', ); - // Valida que el equipo pertenezca a la institución del operador + // Validamos que el equipo pertenezca a la institución del operador if ( operador.tipoUsuario.id_tipo_usuario > 2 && operador.institucion.id_institucion != @@ -50,47 +54,47 @@ export class EquipoProgramaService { throw new ForbiddenException( 'No puedes modificar la información este equipo porque no pertenece a tu institución.', ); - // Verifica que no eixsta un registro con estos ids - return this.findByEquipoPrograma(equipo, programa).then( - (existeEquipoPrograma) => { - // Error si existe + // Buscamos un registro con los datos mandados del client + return this.findByEquipoPrograma(equipo, programa) + .then((existeEquipoPrograma) => { + // Si encuentro uno saco error if (existeEquipoPrograma) throw new ConflictException( 'Este software ya fue asignado a este equipo.', ); return this.create(equipo, programa); + }) + .then((_) => ({ + message: 'Se asignó correctamente el software a este equipo.', + })); + } + + create(equipo: Equipo, programa: Programa): Promise { + // Verificamos si tiene programa "Sin programa" + return this.findByEquipoPrograma(equipo, { id_programa: 1 }).then( + async (existeEquipoSinPrograma) => { + // Si lo tiene lo eliminamos + if (existeEquipoSinPrograma) + await this.repository.remove(existeEquipoSinPrograma); + // Creamos y guardamos el registro + return this.repository.save( + this.repository.create({ equipo, programa }), + ); }, ); } - create(equipo: Equipo, programa: Programa) { - // Ver si tiene programa "Sin programa" - return this.findByEquipoPrograma(equipo, { id_programa: 1 }) - .then(async (existeEquipoSinPrograma) => { - // Si tiene lo elimino - if (existeEquipoSinPrograma) - await this.repository.remove(existeEquipoSinPrograma); - // Creo el registro - return this.repository.save( - this.repository.create({ equipo, programa }), - ); - }) - .then((equipoPrograma) => ({ - message: `Se asignó el software: ${equipoPrograma.programa.programa}, al equipo con número de inventario: ${equipo.numero_inventario}.`, - equipoPrograma, - })); + createSinPrograma(equipo: Equipo): Promise { + return this.repository.save(this.repository.create({ equipo })); } - createSinPrograma(equipo: Equipo) { - return this.repository.save( - this.repository.create({ equipo, programa: { id_programa: 1 } }), - ); - } - - async delete(operador: Operador, id_equipo_programa: number) { + async delete( + operador: Operador, + id_equipo_programa: number, + ): Promise<{ message: string }> { const equipoPrograma = await this.findById(id_equipo_programa); - // Valida que el equipo pertenezca a la institución del operador + // Validamos que el equipo pertenezca a la institución del operador if ( operador.institucion.id_institucion != equipoPrograma.equipo.carrito.modulo.institucion.id_institucion @@ -100,14 +104,16 @@ export class EquipoProgramaService { ); // No se puede eliminar "Sin programa" manualmente if (equipoPrograma.programa.id_programa === 1) - throw new ConflictException('No se puede eliminar esta opción.'); - // Ver cuantos programas tiene el equipo + throw new ConflictException( + 'No se puede eliminar manualmente sin programa.', + ); + // Buscamos cuantos programas tiene el equipo return this.repository .count({ where: { equipo: equipoPrograma.equipo } }) .then(async (n) => { // Asignar "Sin programa" si es que solo tiene 1, el que se va a eliminar if (n === 1) await this.createSinPrograma(equipoPrograma.equipo); - // Eliminar registro + // Eliminamos registro return this.repository.remove(equipoPrograma); }) .then((_) => ({ @@ -115,7 +121,7 @@ export class EquipoProgramaService { })); } - findFullInfoAllByIdEquipo(id_equipo: number) { + findFullInfoAllByIdEquipo(id_equipo: number): Promise { return this.fullInformacionEquipoProgramaView .find({ where: { id_equipo } }) .then((infoEquipoProgramas) => { @@ -135,7 +141,7 @@ export class EquipoProgramaService { }); } - findById(id_equipo_programa: number) { + findById(id_equipo_programa: number): Promise { return this.informacionEquipoProgramaView .findOne({ where: { id_equipo_programa } }) .then((infoEquipoPrograma) => { @@ -163,7 +169,10 @@ export class EquipoProgramaService { }); } - findByEquipoPrograma(equipo: Equipo, programa: Programa | Partial) { + findByEquipoPrograma( + equipo: Equipo, + programa: Programa | Partial, + ): Promise { return this.repository.findOne({ where: { equipo, programa } }); } } diff --git a/src/equipo-tipo-entrada/equipo-tipo-entrada.service.ts b/src/equipo-tipo-entrada/equipo-tipo-entrada.service.ts index 1632265..c21036d 100644 --- a/src/equipo-tipo-entrada/equipo-tipo-entrada.service.ts +++ b/src/equipo-tipo-entrada/equipo-tipo-entrada.service.ts @@ -37,7 +37,7 @@ export class EquipoTipoEntradaService { id_tipo_entrada, ); - // Verifica que no eixsta un registro con estos ids + // Validamos que no eixsta un registro con estos ids return this.findByEquipoTipoEntrada(equipo, tipoEntrada).then( (existeEquipoTipoEntrada) => { // Error si existe saco error @@ -63,7 +63,7 @@ export class EquipoTipoEntradaService { delete(operador: Operador, id_equipo_tipo_entrada: number) { return this.findById(id_equipo_tipo_entrada) .then((equipoTipoEntrada) => { - // Valida que el equipo pertenezca a la institución del operador + // Validamos que el equipo pertenezca a la institución del operador if ( operador.institucion.id_institucion != equipoTipoEntrada.equipo.carrito.modulo.institucion.id_institucion diff --git a/src/equipo/entity/views/informacion-equipo.view.ts b/src/equipo/entity/views/informacion-equipo.view.ts index 4aad0fe..3aaf8bf 100644 --- a/src/equipo/entity/views/informacion-equipo.view.ts +++ b/src/equipo/entity/views/informacion-equipo.view.ts @@ -51,7 +51,7 @@ export class InformacionEquipoView { numero_inventario: string; @ViewColumn() - prestado: boolean; + prestado: number; @ViewColumn() u: number; diff --git a/src/equipo/equipo.service.ts b/src/equipo/equipo.service.ts index b7a6a44..2ad3ef8 100644 --- a/src/equipo/equipo.service.ts +++ b/src/equipo/equipo.service.ts @@ -212,10 +212,15 @@ export class EquipoService { } findAllResetear(): Promise { - return this.repository.find({ - select: ['id_equipo'], - where: { prestado: true, status: { id_status: Not(3) } }, - }); + return this.informacionEquipoView + .find({ where: { prestado: 1, id_status: Not(3) } }) + .then((infoEquipos) => { + const equipos: Equipo[] = []; + + for (let i = 0; i < infoEquipos.length; i++) + equipos.push(this.viewToEquipo(infoEquipos[i])); + return equipos; + }); } findByEquipo( @@ -537,7 +542,7 @@ export class EquipoService { id_equipo: infoEquipo.id_equipo, equipo: infoEquipo.equipo, numero_inventario: infoEquipo.numero_inventario, - prestado: infoEquipo.prestado, + prestado: infoEquipo.prestado === 1, u: infoEquipo.u, carrito: { id_carrito: infoEquipo.id_carrito, diff --git a/src/hora-excepcion/hora-excepcion.service.ts b/src/hora-excepcion/hora-excepcion.service.ts index 5213007..dd2c7a3 100644 --- a/src/hora-excepcion/hora-excepcion.service.ts +++ b/src/hora-excepcion/hora-excepcion.service.ts @@ -43,7 +43,7 @@ export class HoraExcepcionService { throw new BadRequestException( 'La hora inicio no puede ser mayor que la hora fin.', ); - // Busco un horario servicio que pertenezca al mismo día y que sus horas inicio + // Buscamos un horario servicio que pertenezca al mismo día y que sus horas inicio // y fin encierren, en tiempo, a alguna de las horas mandadas del front return this.repository .findOne({ diff --git a/src/institucion-dia/institucion-dia.service.ts b/src/institucion-dia/institucion-dia.service.ts index 5244be8..ecd68a8 100644 --- a/src/institucion-dia/institucion-dia.service.ts +++ b/src/institucion-dia/institucion-dia.service.ts @@ -60,7 +60,7 @@ export class InstitucionDiaService { // Validamos que no sea domingo if (ahora.weekday() === 0) throw new ConflictException('No hay servicio los días domingo.'); - // Busco un institucionDia apartir de la institución enviada y del día de hoy + // Buscamos un institucionDia apartir de la institución enviada y del día de hoy return this.institucionService .findById(id_institucion) .then((institucion) => diff --git a/src/institucion-infraccion/institucion-infraccion.service.ts b/src/institucion-infraccion/institucion-infraccion.service.ts index 41600a5..8e4861d 100644 --- a/src/institucion-infraccion/institucion-infraccion.service.ts +++ b/src/institucion-infraccion/institucion-infraccion.service.ts @@ -22,14 +22,14 @@ export class InstitucionInfraccionService { ) {} create(infraccion: string) { - // Busco una infracción con ese nombre + // Buscamos una infracción con ese nombre return this.infraccionRepository .findOne({ where: { infraccion } }) .then((existeInfraccion) => { // Saco error si existe if (existeInfraccion) throw new ConflictException('Ya existe esta infracción.'); - // Creo y guardo el registro + // Creamos y guardamos el registro return this.infraccionRepository.save( this.infraccionRepository.create({ infraccion }), ); diff --git a/src/institucion-programa/institucion-programa.service.ts b/src/institucion-programa/institucion-programa.service.ts index 4cf0faa..80e7251 100644 --- a/src/institucion-programa/institucion-programa.service.ts +++ b/src/institucion-programa/institucion-programa.service.ts @@ -21,14 +21,14 @@ export class InstitucionProgramaService { ) {} create(programa: string) { - // Busco un programa con ese nombre + // Buscamos un programa con ese nombre return this.programaRepository .findOne({ where: { programa } }) .then((existePrograma) => { // Saco error si existe if (existePrograma) throw new ConflictException('Ya existe este programa.'); - // Creo y guardo el registro + // Creamos y guardamos el registro return this.programaRepository.save( this.programaRepository.create({ programa }), ); diff --git a/src/institucion-tipo-carrito/institucion-tipo-carrito.service.ts b/src/institucion-tipo-carrito/institucion-tipo-carrito.service.ts index cd0b549..526551a 100644 --- a/src/institucion-tipo-carrito/institucion-tipo-carrito.service.ts +++ b/src/institucion-tipo-carrito/institucion-tipo-carrito.service.ts @@ -21,7 +21,7 @@ export class InstitucionTipoCarritoService { ) {} create(letra: string, tipo_carrito: string) { - // Busco un tipo de carrito con ese nombre o letra + // Buscamos un tipo de carrito con ese nombre o letra return this.tipoCarritoRepository .findOne({ where: [{ letra }, { tipo_carrito }] }) .then((existeTipoCarrito) => { @@ -36,7 +36,7 @@ export class InstitucionTipoCarritoService { 'Ya existe un tipo carrito con este nombre, intente con otro nombre.', ); } - // Creo y guardo el registros + // Creamos y guardamos el registros return this.tipoCarritoRepository.save( this.tipoCarritoRepository.create({ letra, tipo_carrito }), ); diff --git a/src/institucion-tipo-entrada/institucion-tipo-entrada.service.ts b/src/institucion-tipo-entrada/institucion-tipo-entrada.service.ts index f089a6b..e2e4aad 100644 --- a/src/institucion-tipo-entrada/institucion-tipo-entrada.service.ts +++ b/src/institucion-tipo-entrada/institucion-tipo-entrada.service.ts @@ -21,14 +21,14 @@ export class InstitucionTipoEntradaService { ) {} async create(tipo_entrada: string) { - // Busco un tipo de entrada con ese nombre + // Buscamos un tipo de entrada con ese nombre return this.tipoEntradaRepository .findOne({ where: { tipo_entrada } }) .then((existeTipoEntrada) => { // Saco error si existe if (existeTipoEntrada) throw new ConflictException('Ya existe este tipo de entrada.'); - // Creo y guardo el registro + // Creamos y guardamos el registro return this.tipoEntradaRepository.save( this.tipoEntradaRepository.create({ tipo_entrada }), ); diff --git a/src/institucion-usuario/institucion-usuario.service.ts b/src/institucion-usuario/institucion-usuario.service.ts index 40a6350..3c3a2ba 100644 --- a/src/institucion-usuario/institucion-usuario.service.ts +++ b/src/institucion-usuario/institucion-usuario.service.ts @@ -21,7 +21,7 @@ export class InstitucionUsuarioService { ) {} create(institucionCarrera: InstitucionCarrera, usuario: Usuario) { - // Creo y guardo el registro + // Creamos y guardamos el registro return this.repository .save(this.repository.create({ institucionCarrera, usuario })) .then((institucionUsuario) => ({ @@ -31,7 +31,7 @@ export class InstitucionUsuarioService { } desactivarCuentas(admin: Operador) { - // Busco todas los registros que le pertenecen a la institutción del operador + // Buscamos todas los registros que le pertenecen a la institutción del operador // que esta realizando esta acción return this.informacionInstitucionUsuarioView .find({ diff --git a/src/marca/marca.service.ts b/src/marca/marca.service.ts index 923d2a5..5088c1d 100644 --- a/src/marca/marca.service.ts +++ b/src/marca/marca.service.ts @@ -8,12 +8,12 @@ export class MarcaService { constructor(@InjectRepository(Marca) private repository: Repository) {} create(marca: string, tipo: string) { - // Busco una marca con ese nombre + // Buscamos una marca con ese nombre return this.findByMarca(marca, tipo, false) .then((existeMarca) => { // Saco error si existe if (existeMarca) throw new ConflictException('Ya existe esta marca.'); - // Creo y guardo el registro + // Creamos y guardamos el registro return this.repository.save(this.repository.create({ marca, tipo })); }) .then((_) => ({ message: 'Se creó correctamente una nueva marca.' })); diff --git a/src/modelo/modelo.service.ts b/src/modelo/modelo.service.ts index a58325b..dc28ddb 100644 --- a/src/modelo/modelo.service.ts +++ b/src/modelo/modelo.service.ts @@ -10,12 +10,12 @@ export class ModeloService { ) {} create(modelo: string, tipo: string) { - // Busco un modelo con ese nombre + // Buscamos un modelo con ese nombre return this.findByModelo(modelo, tipo, false) .then((existeModelo) => { // Saco error si existe if (existeModelo) throw new ConflictException('Ya existe este modelo.'); - // Creo y guardo el registro + // Creamos y guardamos el registro return this.repository.save(this.repository.create({ modelo, tipo })); }) .then((_) => ({ message: 'Se creó correctamente un nuevo modelo.' })); diff --git a/src/modulo/modulo.service.ts b/src/modulo/modulo.service.ts index aff7cd8..fbb1952 100644 --- a/src/modulo/modulo.service.ts +++ b/src/modulo/modulo.service.ts @@ -29,11 +29,11 @@ export class ModuloService { ) {} create(admin: Operador, modulo: string) { - // Busco una modulo con ese nombre en la institución del admin + // Buscamos una modulo con ese nombre en la institución del admin // que realiza esta acción return this.findModulo(admin.institucion, modulo, true) .then((_) => - // Creo y guardo el registro + // Creamos y guardamos el registro this.repository.save( this.repository.create({ institucion: admin.institucion, @@ -151,7 +151,7 @@ export class ModuloService { throw new ConflictException( 'No puedes actualizar la información de este módulo porque no le pertenece a tu institución.', ); - // Busco un modulo en esa institución con ese nombre + // Buscamos un modulo en esa institución con ese nombre if (attrs.modulo) await this.findModulo(modulo.institucion, attrs.modulo, true); // Asigno valores enviados al objeto diff --git a/src/multa/multa.service.ts b/src/multa/multa.service.ts index 9ac21ae..c9ed2b1 100644 --- a/src/multa/multa.service.ts +++ b/src/multa/multa.service.ts @@ -116,10 +116,10 @@ export class MultaService { ); this.validacionMultaCancelacion(prestamo); fecha_fin.add(institucionInfraccion.dias_multa, 'd'); - // Busco una multa con este préstamo + // Buscamos una multa con este préstamo return this.findByPrestamo(prestamo) .then((_) => - // Creo y guardo registro + // Creamos y guardamos registro this.repository.save( this.repository.create({ descripcion, diff --git a/src/prestamo/prestamo.service.ts b/src/prestamo/prestamo.service.ts index 09482db..e449349 100644 --- a/src/prestamo/prestamo.service.ts +++ b/src/prestamo/prestamo.service.ts @@ -204,12 +204,12 @@ export class PrestamoService { `Se suspendió el servicio de préstamo temporalmente de ${institucionDia.horasExcepcion[i].hora_inicio} a ${institucionDia.horasExcepcion[i].hora_fin}.`, ); } - // Busco instituciones activas y sin multa de este usuario + // Buscamos instituciones activas y sin multa de este usuario return this.institucionUsuarioService .findFullInfoAllByUsuario(usuario, false) .then((instituciones) => { this.validarInstitucionUsuario(instituciones, modulo); - // Busco un prestamo activo con el id del usuario que realiza la acción + // Buscamos un prestamo activo con el id del usuario que realiza la acción return this.informacionPrestamoView.findOne({ where: { activo: 1, id_usuario: usuario.id_usuario }, }); @@ -220,7 +220,7 @@ export class PrestamoService { throw new ConflictException( 'Este usuario ya tiene un préstamo activo.', ); - // Busco un equipo con las caracteríasticas solicitadas + // Buscamos un equipo con las caracteríasticas solicitadas return this.equipoService.findEquipo( usuario, modulo, @@ -879,7 +879,7 @@ export class PrestamoService { descripcion?: string, id_institucion_infraccion?: number, ) { - // Busco el prestamo por id prestamo y luego regreso el equipo + // Buscamos el prestamo por id prestamo y luego regreso el equipo return this.findById(id_prestamo).then((prestamo) => this.regresar( operador, @@ -902,7 +902,7 @@ export class PrestamoService { descripcion?: string, id_institucion_infraccion?: number, ) { - // Busco el prestamo por número de inventario y la institución del operador + // Buscamos el prestamo por número de inventario y la institución del operador // luego regreso el equipo return this.findByNumeroInventario( operador.institucion, diff --git a/src/tipo-usuario/tipo-usuario.service.ts b/src/tipo-usuario/tipo-usuario.service.ts index 04a9a05..a34e37d 100644 --- a/src/tipo-usuario/tipo-usuario.service.ts +++ b/src/tipo-usuario/tipo-usuario.service.ts @@ -14,14 +14,14 @@ export class TipoUsuarioService { ) {} create(tipo_usuario: string) { - // Busco un tipo de usuario con ese nombre + // Buscamos un tipo de usuario con ese nombre return this.repository .findOne({ where: { tipo_usuario } }) .then((existeTipoUsuario) => { // Saco error si existe if (existeTipoUsuario) throw new ConflictException('Ya existe este tipo usuario'); - // Creo y guardo el registro + // Creamos y guardamos el registro return this.repository.save(this.repository.create({ tipo_usuario })); }) .then((_) => ({ diff --git a/src/upload-file/upload-file.service.ts b/src/upload-file/upload-file.service.ts index 4295ec7..7181597 100644 --- a/src/upload-file/upload-file.service.ts +++ b/src/upload-file/upload-file.service.ts @@ -338,10 +338,7 @@ export class UploadFileService { } await this.equipoProgramaService .create(equipo, programa) - .then((res) => { - equipo.programas.push(res.equipoPrograma); - mensajes.push(res.message); - }); + .then((equipoPrograma) => equipo.programas.push(equipoPrograma)); } equiposNuevos.push(equipo); }); diff --git a/src/usuario/usuario.service.ts b/src/usuario/usuario.service.ts index da219fc..af90f61 100644 --- a/src/usuario/usuario.service.ts +++ b/src/usuario/usuario.service.ts @@ -219,7 +219,7 @@ export class UsuarioService { const password = this.bcryptService.generarPassword(); let message: string; - // Busco usuario + // Buscamos usuario return this.findByUsuario(usuario, rfc) .then(async (existeUsuario) => { // Ai no existe o tiene contraseña, es decir que esta registrado, saca error