se agrego un endponit para buscar inscritos por un rango
This commit is contained in:
@@ -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 { AlumnoInscritoService } from './alumno_inscrito.service';
|
||||||
import {
|
import {
|
||||||
CreateAlumnoInscritoDto,
|
CreateAlumnoInscritoDto,
|
||||||
@@ -58,4 +58,12 @@ export class AlumnoInscritoController {
|
|||||||
): Promise<AlumnoInscrito[]> {
|
): Promise<AlumnoInscrito[]> {
|
||||||
return this.alumnoInscritoService.findById(id_cuenta);
|
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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -71,10 +71,11 @@ async findAllInscritos(idPeriodo: number) {
|
|||||||
.where('periodo.id_periodo = :idPeriodo', { idPeriodo })
|
.where('periodo.id_periodo = :idPeriodo', { idPeriodo })
|
||||||
.select([
|
.select([
|
||||||
'carrera.carrera AS carrera',
|
'carrera.carrera AS carrera',
|
||||||
|
'periodo.semestre AS semestre',
|
||||||
'plataforma.nombre AS profesor',
|
'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 (\'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 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')
|
.groupBy('carrera.carrera')
|
||||||
.addGroupBy('plataforma.nombre')
|
.addGroupBy('plataforma.nombre')
|
||||||
@@ -193,7 +194,7 @@ async findAllInscritos(idPeriodo: number) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//Borrar
|
|
||||||
async addTimeBorrar(
|
async addTimeBorrar(
|
||||||
idCuenta: number,
|
idCuenta: number,
|
||||||
idPlataforma: number,
|
idPlataforma: number,
|
||||||
@@ -230,4 +231,43 @@ async findAllInscritos(idPeriodo: number) {
|
|||||||
const create = repo.create(data);
|
const create = repo.create(data);
|
||||||
return await repo.save(create);
|
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();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user