diff --git a/src/reportes/participacionAlumno.service.ts b/src/reportes/participacionAlumno.service.ts index bfb95a0..15b7d77 100644 --- a/src/reportes/participacionAlumno.service.ts +++ b/src/reportes/participacionAlumno.service.ts @@ -5,6 +5,8 @@ import { InjectRepository } from '@nestjs/typeorm'; import { UsuarioEntity } from '../entities/usuario.entity'; import { TipoUsuarioEntity } from '../entities/tipoUsuario.entity'; import { Carrera } from '../entities/carreras.entity'; +import { ComentarioLineasProgramaticas } from '../entities/comentarioLineasProgramaticas.entity'; +import { LineaProgramatica } from '../entities/LineaProgramatica.entity'; @Injectable() export class ParticipacionService { @@ -15,6 +17,8 @@ export class ParticipacionService { private readonly tUReportesRepository: Repository, @InjectRepository(Carrera) private readonly carrearasReportesRepository: Repository, + @InjectRepository(ComentarioLineasProgramaticas) + private readonly comentarioLineaProgramaticaReportesRepository: Repository, ) {} async getParticipacionAlumno(): Promise { @@ -88,4 +92,26 @@ export class ParticipacionService { .groupBy('c.id, c.nombre') .getRawMany()) as any[]; // Cast to } + + async getReporteGeneral(): Promise { + const result = await this.comentarioLineaProgramaticaReportesRepository + .createQueryBuilder('clp') + .innerJoin('clp.lineaProgramatica', 'lp') + .innerJoin('lp.ejeEstrategico', 'ee') + .innerJoin('clp.usuario', 'u') + .innerJoin('u.tipoUsuario', 'tu') + .leftJoin('u.carrera', 'c') + .select([ + 'clp.comentario as Comentario', + 'lp.descripcion AS Linea_Programatica', + 'ee.nombre AS Eje_Estrategico', + 'ee.objetivo as Objetivo', + 'u.numero_identificacion AS numero_Cuenta_O_Trabajador', + 'tu.tipo as Tipo', + "CASE WHEN tu.id = 2 THEN c.nombre ELSE 'No aplica' END AS carrera", + ]) + .getRawMany(); + + return result; + } } diff --git a/src/reportes/reportes.controller.ts b/src/reportes/reportes.controller.ts index 32f7059..a74eb1e 100644 --- a/src/reportes/reportes.controller.ts +++ b/src/reportes/reportes.controller.ts @@ -36,4 +36,10 @@ export class ReportesController { async getTotalAlumnosPorCarrera(): Promise { return this.participacionService.getTotalAlumnos(); } + + //@UseGuards(AuthGuard) + @Get('reporteGeneral') + async getReporteGeneral(): Promise { + return this.participacionService.getReporteGeneral(); + } } diff --git a/src/reportes/reportes.module.ts b/src/reportes/reportes.module.ts index 2d306d7..85df5aa 100644 --- a/src/reportes/reportes.module.ts +++ b/src/reportes/reportes.module.ts @@ -5,10 +5,12 @@ import { ReportesController } from './reportes.controller'; import { UsuarioEntity } from '../entities/usuario.entity'; import { TipoUsuarioEntity } from '../entities/tipoUsuario.entity'; import { Carrera } from '../entities/carreras.entity'; +import { LineaProgramatica } from "../entities/LineaProgramatica.entity"; +import { ComentarioLineasProgramaticas } from "../entities/comentarioLineasProgramaticas.entity"; @Module({ imports: [ - TypeOrmModule.forFeature([UsuarioEntity, TipoUsuarioEntity, Carrera]), + TypeOrmModule.forFeature([UsuarioEntity, TipoUsuarioEntity, Carrera, ComentarioLineasProgramaticas]), ], providers: [ParticipacionService], controllers: [ReportesController],