diff --git a/mariadb/aria_log.00000001 b/mariadb/aria_log.00000001 index 64fd4b1..61f3c90 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 5b88e4d..60663fa 100644 Binary files a/mariadb/aria_log_control and b/mariadb/aria_log_control differ diff --git a/src/equipo/entities/catalogo.entities.ts b/src/equipo/entities/catalogo.entities.ts index e9b3738..1308b46 100644 --- a/src/equipo/entities/catalogo.entities.ts +++ b/src/equipo/entities/catalogo.entities.ts @@ -65,6 +65,9 @@ export class TipoEquipo { @OneToMany(() => ProcesadorTipoEquipo, (pte) => pte.tipoEquipo) procesadorTipoEquipos: ProcesadorTipoEquipo[]; + + @OneToMany(() => Equipo, (eqp) => eqp.tipoEquipo) + equipo: Equipo[]; } @Entity() diff --git a/src/equipo/entities/equipo.entity.ts b/src/equipo/entities/equipo.entity.ts index 1f6bd96..37ec707 100644 --- a/src/equipo/entities/equipo.entity.ts +++ b/src/equipo/entities/equipo.entity.ts @@ -62,6 +62,10 @@ export class Equipo { ) sistemaOperativo: SistemaOperativo; + @JoinColumn({ name: 'id_tipo_equipo' }) + @ManyToOne(() => TipoEquipo, (tipoEquipo) => tipoEquipo.equipo) + tipoEquipo: TipoEquipo; + @JoinColumn({ name: 'id_procesador_tipoEquipo' }) @ManyToOne( () => ProcesadorTipoEquipo, diff --git a/src/equipo/equipo.service.ts b/src/equipo/equipo.service.ts index ba812b9..fefb81b 100644 --- a/src/equipo/equipo.service.ts +++ b/src/equipo/equipo.service.ts @@ -293,4 +293,44 @@ export class EquipoService { relations: ['procesador', 'tipoEquipo'], }); } + + async contar_tipoEquipos_tipoUso(): Promise { + try { + const count = await this.equipoRepository + .createQueryBuilder('e') + .innerJoin('e.tipoEquipo', 't') // une la tabla usuario + .innerJoin('e.tipoUso', 'u') // une la tabla categoria + .select(['u.tipo_uso AS uso', 't.tipo_equipo AS categoria']) + .addSelect('COUNT(*) AS total') + .groupBy('t.id_tipo_de_equipo') + .addGroupBy('u.id_tipo_uso') + .getRawMany(); + + return count; + } catch (error) { + console.error('Error al contar equipos por tipo y uso:', error); + throw error; + } + } + + async contar_tipoEquipos_sistemasOperativos( + tipo_equipo: string[], + ): Promise { + try { + const count = await this.equipoRepository + .createQueryBuilder('e') + .innerJoin('e.tipoEquipo', 't') // une la tabla usuario + .innerJoin('e.sistemaOperativo', 's') // une la tabla categoria + .where('t.tipo_equipo IN (:...tipo_equipo)', { tipo_equipo }) + .select(['s.sistema_operativo AS sistema_operativo']) + .addSelect('COUNT(*) AS total') + .groupBy('s.sistema_operativo') + .getRawMany(); + + return count; + } catch (error) { + console.error('Error al contar equipos por tipo y uso:', error); + throw error; + } + } }