diff --git a/mariadb/aria_log.00000001 b/mariadb/aria_log.00000001 index 6896a6c..c6f62a4 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 96aa353..401f3da 100644 Binary files a/mariadb/aria_log_control and b/mariadb/aria_log_control differ diff --git a/src/equipo/dto/create-equipo.dto.ts b/src/equipo/dto/create-equipo.dto.ts index 6b76feb..0a27b1c 100644 --- a/src/equipo/dto/create-equipo.dto.ts +++ b/src/equipo/dto/create-equipo.dto.ts @@ -51,6 +51,15 @@ export class CreateEquipoDto { @IsInt() id_periferico: number; + @IsInt() + @IsOptional() + id_laboratorio?: number; + + @IsInt() + @IsOptional() + id_proyecto?: number; + @IsNotEmpty() - isImpresora: Boolean; + @IsOptional() + isImpresora?: Boolean; } diff --git a/src/equipo/dto/update-equipo.dto.ts b/src/equipo/dto/update-equipo.dto.ts index 348432c..f3e6633 100644 --- a/src/equipo/dto/update-equipo.dto.ts +++ b/src/equipo/dto/update-equipo.dto.ts @@ -45,4 +45,12 @@ export class UpdateEquipoDto extends PartialType(CreateEquipoDto) { @IsInt() @IsOptional() id_periferico?: number; + + @IsInt() + @IsOptional() + id_proyecto?: number; + + @IsInt() + @IsOptional() + id_laboratorio?: number; } diff --git a/src/equipo/entities/catalogo.entities.ts b/src/equipo/entities/catalogo.entities.ts index 984ef33..5b81d35 100644 --- a/src/equipo/entities/catalogo.entities.ts +++ b/src/equipo/entities/catalogo.entities.ts @@ -18,6 +18,30 @@ export class Uso { equipo: Equipo[]; } +@Entity() +export class Laboratorio { + @PrimaryGeneratedColumn() + id_laboratorio: number; + + @Column({ type: 'varchar', length: 20 }) + laboratorio: string; + + @OneToMany(() => Equipo, (equipo) => equipo.laboratorio) + equipo: Equipo[]; +} + +@Entity() +export class Proyecto { + @PrimaryGeneratedColumn() + id_proyecto: number; + + @Column({ type: 'varchar', length: 10 }) + proyecto: string; + + @OneToMany(() => Equipo, (equipo) => equipo.proyecto) + equipo: Equipo[]; +} + @Entity() export class Marca { @PrimaryGeneratedColumn() diff --git a/src/equipo/entities/equipo.entity.ts b/src/equipo/entities/equipo.entity.ts index 7db82d5..e23b5ab 100644 --- a/src/equipo/entities/equipo.entity.ts +++ b/src/equipo/entities/equipo.entity.ts @@ -9,9 +9,11 @@ import { import { Adscripcion, Estado, + Laboratorio, Marca, Periferico, Procesador, + Proyecto, SistemaOperativo, TipoEquipo, Uso, @@ -83,4 +85,16 @@ export class Equipo { @JoinColumn({ name: 'id_periferico' }) @ManyToOne(() => Periferico, (Periferico) => Periferico.equipo) periferico: Periferico; + + @JoinColumn({ name: 'id_laboratorio' }) + @ManyToOne(() => Laboratorio, (laboratorio) => laboratorio.equipo, { + nullable: true, + }) + laboratorio?: Laboratorio | null; + + @JoinColumn({ name: 'id_proyecto' }) + @ManyToOne(() => Proyecto, (proyecto) => proyecto.equipo, { + nullable: true, + }) + proyecto?: Proyecto | null; } diff --git a/src/equipo/equipo.controller.ts b/src/equipo/equipo.controller.ts index b56e13f..3290117 100644 --- a/src/equipo/equipo.controller.ts +++ b/src/equipo/equipo.controller.ts @@ -106,6 +106,18 @@ export class EquipoController { return this.equipoService.findAllProcesadores(); } + @UseGuards(AuthGuard('jwt')) + @Get('laboratorios') + findLaboratorios() { + return this.equipoService.findAllLaboratorios(); + } + + @UseGuards(AuthGuard('jwt')) + @Get('proyectos') + findProyectos() { + return this.equipoService.findAllProyectos(); + } + @UseGuards(AuthGuard('jwt')) @Get('perifericos') findPerifericos() { diff --git a/src/equipo/equipo.module.ts b/src/equipo/equipo.module.ts index 21eecfe..30574dd 100644 --- a/src/equipo/equipo.module.ts +++ b/src/equipo/equipo.module.ts @@ -12,6 +12,8 @@ import { SistemaOperativo, Procesador, Periferico, + Proyecto, + Laboratorio, } from './entities/catalogo.entities'; import { MovimientoModule } from 'src/movimiento/movimiento.module'; @@ -27,6 +29,8 @@ import { MovimientoModule } from 'src/movimiento/movimiento.module'; SistemaOperativo, Procesador, Periferico, + Proyecto, + Laboratorio, ]), MovimientoModule, ], diff --git a/src/equipo/equipo.service.ts b/src/equipo/equipo.service.ts index 7888a88..59a75c9 100644 --- a/src/equipo/equipo.service.ts +++ b/src/equipo/equipo.service.ts @@ -13,9 +13,11 @@ import * as ExcelJS from 'exceljs'; import { Adscripcion, Estado, + Laboratorio, Marca, Periferico, Procesador, + Proyecto, SistemaOperativo, TipoEquipo, Uso, @@ -55,6 +57,10 @@ export class EquipoService { @InjectRepository(Periferico) private readonly perifericoRepo: Repository, + @InjectRepository(Laboratorio) + private readonly laboratorioRepo: Repository, + @InjectRepository(Proyecto) + private readonly proyectoRepo: Repository, ) {} async deleteEquipo(inventario: string): Promise<{ message: string }> { @@ -183,6 +189,12 @@ export class EquipoService { periferico: equipoNuevo.id_periferico ? { id_periferico: equipoNuevo.id_periferico } : undefined, + laboratorio: equipoNuevo.id_laboratorio + ? { id_laboratorio: equipoNuevo.id_laboratorio } + : undefined, + proyecto: equipoNuevo.id_proyecto + ? { id_proyecto: equipoNuevo.id_proyecto } + : undefined, }; console.log(updateData); @@ -211,6 +223,8 @@ export class EquipoService { 'procesador', 'tipoUso', 'periferico', + 'proyecto', + 'laboratorio', ], }); @@ -271,6 +285,8 @@ export class EquipoService { tipoUso: { id_uso: equipo.id_uso }, marca: { id_marca: equipo.id_marca }, tipoEquipo: { id_tipo_de_equipo: equipo.id_tipo_equipo }, + proyecto: { id_proyecto: equipo.id_proyecto }, + laboratorio: { id_laboratorio: equipo.id_laboratorio }, }; const nuevoEquipo = this.equipoRepository.create( @@ -310,6 +326,14 @@ export class EquipoService { return await this.estadoRepo.find(); } + async findAllProyectos() { + return await this.proyectoRepo.find(); + } + + async findAllLaboratorios() { + return await this.laboratorioRepo.find(); + } + async findAllAdscripciones() { return await this.adscripcionRepo.find(); }