From 2b2834e121256ef739b75c6bbf0804541699ee13 Mon Sep 17 00:00:00 2001 From: TheManus88 Date: Fri, 27 Sep 2024 21:09:38 -0600 Subject: [PATCH] add participacion trabajadores --- src/reportes/participacionAlumno.service.ts | 18 +++++++++++++++++- src/reportes/reportes.controller.ts | 5 +++++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/src/reportes/participacionAlumno.service.ts b/src/reportes/participacionAlumno.service.ts index 022cbc9..26ed26d 100644 --- a/src/reportes/participacionAlumno.service.ts +++ b/src/reportes/participacionAlumno.service.ts @@ -1,5 +1,5 @@ import { Injectable } from '@nestjs/common'; -import { Repository } from 'typeorm'; +import { Repository, SelectQueryBuilder } from 'typeorm'; import { ParticipacionAlumno } from './ParticipacionAlumno.interface'; import { InjectRepository } from '@nestjs/typeorm'; import { UsuarioEntity } from '../entities/usuario.entity'; @@ -33,6 +33,22 @@ export class ParticipacionService { .getRawMany()) as ParticipacionAlumno[]; } + async getParticipacionTrabajador(): Promise> { + const result = await this.reportesRepository + .createQueryBuilder('usuarios') + .select('COUNT(DISTINCT usuarios.id)', 'Participacion Trabajadores') + .addSelect( + ` + (COUNT(DISTINCT usuarios.id) * 100.0 / (SELECT COUNT(*) FROM usuarios WHERE usuarios.tipo_usuario_id = 3)) AS PorcentajeParticipacion + `, + ) + .innerJoin('usuarios.comentarios', 'clp') + .where('usuarios.tipo_usuario_id = 3') + .getRawOne(); + + return result; + } + async getTotalUsuarios(): Promise { const queryBuilder = await this.tUReportesRepository.createQueryBuilder('tu'); diff --git a/src/reportes/reportes.controller.ts b/src/reportes/reportes.controller.ts index 90a9402..f10b561 100644 --- a/src/reportes/reportes.controller.ts +++ b/src/reportes/reportes.controller.ts @@ -11,6 +11,11 @@ export class ReportesController { return this.participacionService.getParticipacionAlumno(); } + @Get('participacionTrabajador') + async geParticipacionTrabajador(): Promise { + return this.participacionService.getParticipacionTrabajador(); + } + @Get('totalParticipantes') async getTotalParticipantes(): Promise { return this.participacionService.getTotalUsuarios();