Merge branch 'Axel' of repositorio.acatlan.unam.mx:IO/api-AT

This commit is contained in:
2026-03-26 19:06:07 -05:00
2 changed files with 51 additions and 3 deletions
@@ -1,4 +1,4 @@
import { Controller, Get, Post, Body, Param, Patch, UseGuards } from '@nestjs/common';
import { Controller, Get, Post, Body, Param, Patch, UseGuards, ParseIntPipe } from '@nestjs/common';
import { AlumnoInscritoService } from './alumno_inscrito.service';
import {
CreateAlumnoInscritoDto,
@@ -58,4 +58,12 @@ export class AlumnoInscritoController {
): Promise<AlumnoInscrito[]> {
return this.alumnoInscritoService.findById(id_cuenta);
}
@Get('inscritos/:inicio/:fin')
findAllInscritosByRango(
@Param('inicio', ParseIntPipe) inicio: number,
@Param('fin', ParseIntPipe) fin: number,
) {
return this.alumnoInscritoService.findAllInscritosByRango(inicio, fin);
}
}
+42 -2
View File
@@ -71,10 +71,11 @@ async findAllInscritos(idPeriodo: number) {
.where('periodo.id_periodo = :idPeriodo', { idPeriodo })
.select([
'carrera.carrera AS carrera',
'periodo.semestre AS semestre',
'plataforma.nombre AS profesor',
'COUNT(DISTINCT CASE WHEN alumno.genero IN (\'F\', \'Femenino\') THEN alumno.id_cuenta END) AS femenino',
'COUNT(DISTINCT CASE WHEN alumno.genero IN (\'M\', \'Masculino\') THEN alumno.id_cuenta END) AS masculino',
'COUNT(DISTINCT alumno.id_cuenta) AS total'
'COUNT(DISTINCT alumno.id_cuenta) AS total'
])
.groupBy('carrera.carrera')
.addGroupBy('plataforma.nombre')
@@ -193,7 +194,7 @@ async findAllInscritos(idPeriodo: number) {
}
}
//Borrar
async addTimeBorrar(
idCuenta: number,
idPlataforma: number,
@@ -230,4 +231,43 @@ async findAllInscritos(idPeriodo: number) {
const create = repo.create(data);
return await repo.save(create);
}
async findAllInscritosByRango(
idPeriodoInicio: number,
idPeriodoFin: number,
) {
return this.alumnoInscritoRepo
.createQueryBuilder('inscritos')
.innerJoin('inscritos.alumno', 'alumno')
.innerJoin('alumno.carrera', 'carrera')
.innerJoin('inscritos.plataforma', 'plataforma')
.innerJoin('inscritos.periodo', 'periodo')
.where('periodo.id_periodo BETWEEN :inicio AND :fin', {
inicio: idPeriodoInicio,
fin: idPeriodoFin,
})
.select([
'periodo.id_periodo AS id_periodo',
'periodo.semestre AS semestre',
'carrera.carrera AS carrera',
'plataforma.nombre AS profesor',
`COUNT(DISTINCT CASE
WHEN alumno.genero IN ('F', 'Femenino')
THEN alumno.id_cuenta
END) AS femenino`,
`COUNT(DISTINCT CASE
WHEN alumno.genero IN ('M', 'Masculino')
THEN alumno.id_cuenta
END) AS masculino`,
'COUNT(DISTINCT alumno.id_cuenta) AS total',
])
.groupBy('periodo.id_periodo')
.addGroupBy('carrera.carrera')
.addGroupBy('plataforma.nombre')
.orderBy('periodo.id_periodo', 'ASC')
.getRawMany();
}
}