diff --git a/mariadb/aria_log.00000001 b/mariadb/aria_log.00000001 index e1d5683..7caeed4 100644 Binary files a/mariadb/aria_log.00000001 and b/mariadb/aria_log.00000001 differ diff --git a/mariadb/aria_log_control b/mariadb/aria_log_control index 454cd34..d76b733 100644 Binary files a/mariadb/aria_log_control and b/mariadb/aria_log_control differ diff --git a/src/equipo/equipo.controller.ts b/src/equipo/equipo.controller.ts index 01fe82d..3af2d05 100644 --- a/src/equipo/equipo.controller.ts +++ b/src/equipo/equipo.controller.ts @@ -21,7 +21,7 @@ import type { Response } from 'express'; @Controller('equipos') export class EquipoController { - constructor(private readonly equipoService: EquipoService) { } + constructor(private readonly equipoService: EquipoService) {} @UseGuards(AuthGuard('jwt')) @Get('buscar') async buscarEquipos( @@ -128,7 +128,7 @@ export class EquipoController { try { return await this.equipoService.generar_reporte(); } catch (error) { - throw new BadRequestException('Error al generar el Excel:', error); + throw new BadRequestException('Error al generar el reporte:', error); } } @UseGuards(AuthGuard('jwt')) diff --git a/src/equipo/equipo.service.ts b/src/equipo/equipo.service.ts index 3ca0af6..83efe6a 100644 --- a/src/equipo/equipo.service.ts +++ b/src/equipo/equipo.service.ts @@ -1,4 +1,8 @@ -import { BadRequestException, Injectable } from '@nestjs/common'; +import { + BadRequestException, + Injectable, + NotFoundException, +} from '@nestjs/common'; import { InjectRepository } from '@nestjs/typeorm'; import { Repository } from 'typeorm'; import { Equipo } from './entities/equipo.entity'; @@ -55,7 +59,7 @@ export class EquipoService { @InjectRepository(ProcesadorTipoEquipo) private readonly procesadorTipoEquipoRepo: Repository, - ) { } + ) {} async buscarEquipos(filtros: any, page: number = 1, limit: number = 10) { const query = this.equipoRepository @@ -131,12 +135,35 @@ export class EquipoService { }; } async updateEquipo(equipoNuevo: UpdateEquipoDto, id_equipo: number, id_user) { + let equipo = await this.equipoRepository.findOne({ + where: { id_equipo }, + relations: ['tipoEquipo'], + }); + if (!equipo) { + throw new NotFoundException('No se encontó equipo'); + } + let procesador_tipoequipo; + if (equipoNuevo.id_procesador) { procesador_tipoequipo = await this.procesadorTipoEquipoRepo.findOne({ - where: { procesador: { id_procesador: equipoNuevo.id_procesador } }, + where: { + procesador: { id_procesador: equipoNuevo.id_procesador }, + tipoEquipo: { + id_tipo_de_equipo: equipo.tipoEquipo.id_tipo_de_equipo, + }, + }, relations: ['procesador', 'tipoEquipo'], }); + + if (!procesador_tipoequipo) { + procesador_tipoequipo = await this.procesadorTipoEquipoRepo.save({ + procesador: { id_procesador: equipoNuevo.id_procesador }, + tipoEquipo: { + id_tipo_de_equipo: equipo.tipoEquipo.id_tipo_de_equipo, + }, + }); + } } const updateData = { @@ -252,17 +279,33 @@ export class EquipoService { tipoEquipo: { id_tipo_de_equipo: equipo.id_tipo_equipo }, }); } else { - const procesador_tipoequipo = - await this.procesadorTipoEquipoRepo.findOneBy({ - procesador: { id_procesador: equipo.id_procesador }, - tipoEquipo: { id_tipo_de_equipo: equipo.id_tipo_equipo }, - }); + let procesador = await this.procesadorRepo.findOne({ + where: { id_procesador: equipo.id_procesador }, + relations: ['procesador', 'tipoEquipo'], + }); + let tipo_equipo = await this.tipoEquipoRepo.findOne({ + where: { id_tipo_de_equipo: equipo.id_procesador }, + }); - if (!procesador_tipoequipo) { - throw new Error( - `No se encontró la combinación de procesador y tipo de equipo proporcionados.`, + if (!procesador || !tipo_equipo) { + throw new NotFoundException( + 'No se encontro procesador ni tipo de equipo', ); } + let procesador_tipoequipo = await this.procesadorTipoEquipoRepo.findOne({ + where: { procesador: procesador, tipoEquipo: tipo_equipo }, + }); + if (!procesador_tipoequipo) { + procesador_tipoequipo = await this.procesadorTipoEquipoRepo.create({ + procesador, + tipoEquipo: tipo_equipo, + }); + + procesador_tipoequipo = await this.procesadorTipoEquipoRepo.save( + procesador_tipoequipo, + ); + } + nuevoEquipo = this.equipoRepository.create({ procesador_tipoequipo: procesador_tipoequipo, inventario: equipo.inventario, @@ -276,7 +319,7 @@ export class EquipoService { sistemaOperativo: { id_sistema_operativo: equipo.id_sistema_operativo }, tipoUso: { id_uso: equipo.id_uso }, marca: { id_marca: equipo.id_marca }, - tipoEquipo: { id_tipo_de_equipo: equipo.id_tipo_equipo }, + tipoEquipo: tipo_equipo, }); } @@ -832,11 +875,7 @@ export class EquipoService { } } -let escritorio = [ - 'ESCRITORIO PC', - 'ESCRITORIO MAC OS ', - 'ESCRITORIO LINUX', -]; +let escritorio = ['ESCRITORIO PC', 'ESCRITORIO MAC OS ', 'ESCRITORIO LINUX']; let portatil = [ 'PORTÁTILES WINDOWS', 'PORTÁTILES CHROMEBOOK',