From 2b754d28be433960b538df9fdd1c502b46c8515f Mon Sep 17 00:00:00 2001 From: IO420 <320154041@pcpuma.acatlan.unam.mx> Date: Thu, 22 Jan 2026 10:53:40 -0600 Subject: [PATCH] fixed create alumno inscrito --- src/alumno/student.service.ts | 2 +- .../alumno_inscrito.controller.ts | 4 ++-- src/alumno_inscrito/alumno_inscrito.module.ts | 3 ++- src/alumno_inscrito/alumno_inscrito.service.ts | 14 ++++++++++++-- .../dto/create-alumno_inscrito.dto.ts | 8 -------- src/periodo/periodo.module.ts | 1 + src/periodo/periodo.service.ts | 17 +++++++++++++++-- 7 files changed, 33 insertions(+), 16 deletions(-) diff --git a/src/alumno/student.service.ts b/src/alumno/student.service.ts index dea6dfe..65028ab 100644 --- a/src/alumno/student.service.ts +++ b/src/alumno/student.service.ts @@ -35,7 +35,7 @@ export class AlumnoService { }); if (!student) { - throw new NotFoundException(`Student not found`); + throw new NotFoundException(`Numero de cuenta ${id_cuenta} no existente`); } return student; diff --git a/src/alumno_inscrito/alumno_inscrito.controller.ts b/src/alumno_inscrito/alumno_inscrito.controller.ts index 055ce65..2cbf6cb 100644 --- a/src/alumno_inscrito/alumno_inscrito.controller.ts +++ b/src/alumno_inscrito/alumno_inscrito.controller.ts @@ -28,8 +28,8 @@ export class AlumnoInscritoController { ): Promise { return this.alumnoInscritoService.findById(id_cuenta); } -//pruebas borrar -@Patch('platica/:idCuenta/:idPeriodo/:idPlataforma') + //pruebas borrar + @Patch('platica/:idCuenta/:idPeriodo/:idPlataforma') marcarPlatica( @Param('idCuenta') idCuenta: number, @Param('idPeriodo') idPeriodo: number, diff --git a/src/alumno_inscrito/alumno_inscrito.module.ts b/src/alumno_inscrito/alumno_inscrito.module.ts index b9d1ab8..f7c94a2 100644 --- a/src/alumno_inscrito/alumno_inscrito.module.ts +++ b/src/alumno_inscrito/alumno_inscrito.module.ts @@ -4,9 +4,10 @@ import { AlumnoInscritoController } from './alumno_inscrito.controller'; import { TypeOrmModule } from '@nestjs/typeorm'; import { AlumnoInscrito, Plataforma } from './entities/alumno_inscrito.entity'; import { BitacoraMesa } from 'src/bitacora_mesa/entities/bitacora_mesa.entity'; +import { PeriodoModule } from 'src/periodo/periodo.module'; @Module({ - imports: [TypeOrmModule.forFeature([AlumnoInscrito,Plataforma,BitacoraMesa])], + imports: [TypeOrmModule.forFeature([AlumnoInscrito,Plataforma,BitacoraMesa]),PeriodoModule], controllers: [AlumnoInscritoController], providers: [AlumnoInscritoService], }) diff --git a/src/alumno_inscrito/alumno_inscrito.service.ts b/src/alumno_inscrito/alumno_inscrito.service.ts index c3b858c..8da2993 100644 --- a/src/alumno_inscrito/alumno_inscrito.service.ts +++ b/src/alumno_inscrito/alumno_inscrito.service.ts @@ -7,6 +7,7 @@ import { CreateAlumnoInscritoDto } from './dto/create-alumno_inscrito.dto'; import { AlumnoInscrito, Plataforma } from './entities/alumno_inscrito.entity'; import { InjectRepository } from '@nestjs/typeorm'; import { Repository } from 'typeorm'; +import { PeriodoService } from 'src/periodo/periodo.service'; @Injectable() export class AlumnoInscritoService { @@ -15,13 +16,16 @@ export class AlumnoInscritoService { private readonly alumnoInscritoRepo: Repository, @InjectRepository(Plataforma) private readonly plataformaRepo: Repository, + private readonly periodoService:PeriodoService ) {} async create(dto: CreateAlumnoInscritoDto): Promise { + const periodoActivo = await this.periodoService.getPeriodoActivo(); + const existing = await this.alumnoInscritoRepo.findOne({ where: { alumno: { id_cuenta: dto.id_cuenta }, - periodo: { id_periodo: dto.id_periodo }, + periodo: { id_periodo: periodoActivo.id_periodo }, plataforma: { id_plataforma: dto.id_plataforma }, }, }); @@ -32,7 +36,13 @@ export class AlumnoInscritoService { ); } - const alumnoInscrito = this.alumnoInscritoRepo.create(dto); + const alumnoInscrito = this.alumnoInscritoRepo.create({ + realizo_pago: dto.realizo_pago ?? false, + alumno: { id_cuenta: dto.id_cuenta }, + plataforma: { id_plataforma: dto.id_plataforma }, + periodo: periodoActivo, + }); + return this.alumnoInscritoRepo.save(alumnoInscrito); } diff --git a/src/alumno_inscrito/dto/create-alumno_inscrito.dto.ts b/src/alumno_inscrito/dto/create-alumno_inscrito.dto.ts index 7d9487f..b9522c3 100644 --- a/src/alumno_inscrito/dto/create-alumno_inscrito.dto.ts +++ b/src/alumno_inscrito/dto/create-alumno_inscrito.dto.ts @@ -5,18 +5,10 @@ export class CreateAlumnoInscritoDto { @IsNumber() id_cuenta: number; - @IsNotEmpty() - @IsNumber() - id_periodo: number; - @IsNotEmpty() @IsNumber() id_plataforma: number; @IsBoolean() realizo_pago?: boolean; - - @IsNumber() - tiempo_disponible?: number; - } diff --git a/src/periodo/periodo.module.ts b/src/periodo/periodo.module.ts index 4137707..53e66a1 100644 --- a/src/periodo/periodo.module.ts +++ b/src/periodo/periodo.module.ts @@ -8,5 +8,6 @@ import { Periodo } from './entities/periodo.entity'; imports:[TypeOrmModule.forFeature([Periodo])], controllers: [PeriodoController], providers: [PeriodoService], + exports:[PeriodoService] }) export class PeriodoModule {} diff --git a/src/periodo/periodo.service.ts b/src/periodo/periodo.service.ts index addf96a..a809cbb 100644 --- a/src/periodo/periodo.service.ts +++ b/src/periodo/periodo.service.ts @@ -1,4 +1,4 @@ -import { Injectable } from '@nestjs/common'; +import { Injectable, NotFoundException } from '@nestjs/common'; import { InjectRepository } from '@nestjs/typeorm'; import { Periodo } from './entities/periodo.entity'; import { Repository } from 'typeorm'; @@ -14,7 +14,20 @@ export class PeriodoService { return this.periodoRepository.findOne({ where: {} }); } - async findAll(){ + async findAll() { return this.periodoRepository.find(); } + + async getPeriodoActivo(): Promise { + const periodo = await this.periodoRepository.findOne({ + where: { activo: true }, + order: { id_periodo: 'DESC' }, + }); + + if (!periodo) { + throw new NotFoundException('No hay periodos activos'); + } + + return periodo; + } }