From 2d5898d1afebf6677a06227cfa93d6f23467fdb8 Mon Sep 17 00:00:00 2001 From: IO420 <320154041@pcpuma.acatlan.unam.mx> Date: Fri, 21 Nov 2025 20:46:04 -0600 Subject: [PATCH] fixed register --- .../AT/alumno/dto/create-student.dto.ts | 46 ++++++++++++++++++- .../alumno_inscrito.controller.ts | 3 +- .../alumno_inscrito/alumno_inscrito.module.ts | 6 ++- .../alumno_inscrito.service.ts | 32 ++++++++----- .../dto/create-alumno_inscrito.dto.ts | 2 +- .../AT/plataforma/periodo.controller.ts | 11 ++++- src/operations/operations.controller.ts | 7 +++ src/operations/operations.service.ts | 33 +++++++------ 8 files changed, 107 insertions(+), 33 deletions(-) diff --git a/src/modules/AT/alumno/dto/create-student.dto.ts b/src/modules/AT/alumno/dto/create-student.dto.ts index d9afcbe..67bceb8 100644 --- a/src/modules/AT/alumno/dto/create-student.dto.ts +++ b/src/modules/AT/alumno/dto/create-student.dto.ts @@ -1,4 +1,4 @@ -import { IsEmail, IsNotEmpty, IsNumber, IsString } from 'class-validator'; +import { IsDate, IsDateString, IsEmail, IsEnum, IsNotEmpty, IsNumber, IsOptional, IsString } from 'class-validator'; export class CreateStudentDto { @IsNotEmpty() @@ -19,4 +19,46 @@ export class CreateStudentDto { @IsEmail() @IsString() correo: string; -} \ No newline at end of file +} + +export class CreateAlumnoDto { + @IsNotEmpty() + @IsNumber() + id_cuenta: number; + + @IsNotEmpty() + @IsString() + nombre: string; + + @IsOptional() + @IsDate() + fecha_nacimiento?: Date | null; + + @IsOptional() + @IsEmail() + correo?: string | null; + + @IsOptional() + @IsNumber() + credito?: number; + + @IsOptional() + @IsEnum(['si', 'no']) + vigente?: 'si' | 'no'; + + @IsOptional() + @IsNumber() + id_periodo?: number | null; + + @IsNotEmpty() + @IsDate() + fecha_registro: Date; + + @IsOptional() + @IsNumber() + generacion?: number | null; + + @IsOptional() + @IsNumber() + id_carrera?: number | null; +} diff --git a/src/modules/AT/alumno_inscrito/alumno_inscrito.controller.ts b/src/modules/AT/alumno_inscrito/alumno_inscrito.controller.ts index 4603d03..7ce2501 100644 --- a/src/modules/AT/alumno_inscrito/alumno_inscrito.controller.ts +++ b/src/modules/AT/alumno_inscrito/alumno_inscrito.controller.ts @@ -1,7 +1,6 @@ -import { Controller, Get, Post, Body, Param } from '@nestjs/common'; +import { Controller, Get, Param } from '@nestjs/common'; import { AlumnoInscritoService } from './alumno_inscrito.service'; import { AlumnoInscrito } from 'src/database/AT/entities/alumno_inscrito.entity'; -import { CreateAlumnoInscritoDto } from './dto/create-alumno_inscrito.dto'; @Controller('alumno-inscrito') export class AlumnoInscritoController { diff --git a/src/modules/AT/alumno_inscrito/alumno_inscrito.module.ts b/src/modules/AT/alumno_inscrito/alumno_inscrito.module.ts index 39d086b..e140c12 100644 --- a/src/modules/AT/alumno_inscrito/alumno_inscrito.module.ts +++ b/src/modules/AT/alumno_inscrito/alumno_inscrito.module.ts @@ -3,10 +3,12 @@ import { AlumnoInscritoService } from './alumno_inscrito.service'; import { AlumnoInscritoController } from './alumno_inscrito.controller'; import { TypeOrmModule } from '@nestjs/typeorm'; import { AlumnoInscrito } from 'src/database/AT/entities/alumno_inscrito.entity'; -import { Periodo } from 'src/database/AT/entities/periodo.entity'; +import { PeriodoModule } from '../periodo/periodo.module'; +import { PlataformaService } from '../plataforma/periodo.service'; +import { PlataformaModule } from '../plataforma/periodo.module'; @Module({ - imports: [TypeOrmModule.forFeature([AlumnoInscrito, Periodo], 'dbAT')], + imports: [TypeOrmModule.forFeature([AlumnoInscrito], 'dbAT'),PeriodoModule,PlataformaModule], controllers: [AlumnoInscritoController], providers: [AlumnoInscritoService], exports: [AlumnoInscritoService], diff --git a/src/modules/AT/alumno_inscrito/alumno_inscrito.service.ts b/src/modules/AT/alumno_inscrito/alumno_inscrito.service.ts index d262d3f..f259eef 100644 --- a/src/modules/AT/alumno_inscrito/alumno_inscrito.service.ts +++ b/src/modules/AT/alumno_inscrito/alumno_inscrito.service.ts @@ -2,16 +2,17 @@ import { BadRequestException, Injectable } from '@nestjs/common'; import { InjectRepository } from '@nestjs/typeorm'; import { Repository } from 'typeorm'; import { AlumnoInscrito } from 'src/database/AT/entities/alumno_inscrito.entity'; -import { CreateAlumnoInscritoDto } from './dto/create-alumno_inscrito.dto'; -import { Periodo } from 'src/database/AT/entities/periodo.entity'; +import { PeriodoService } from '../periodo/periodo.service'; +import { CreateAlumnoDto } from '../alumno/dto/create-student.dto'; +import { PlataformaService } from '../plataforma/periodo.service'; @Injectable() export class AlumnoInscritoService { constructor( @InjectRepository(AlumnoInscrito, 'dbAT') private readonly alumnoInscritoRepo: Repository, - @InjectRepository(Periodo, 'dbAT') - private readonly periodoRepository: Repository, + private readonly periodoService: PeriodoService, + private readonly plataformaService: PlataformaService, ) {} async findAll(): Promise { @@ -27,17 +28,19 @@ export class AlumnoInscritoService { }); } - async create(dto: CreateAlumnoInscritoDto): Promise { - const periodo = await this.periodoRepository.findOne({ - order: { - id_periodo: 'DESC', - }, - }); + async create( + alumno: CreateAlumnoDto, + namePlataforma: string, + ): Promise { + const periodo = await this.periodoService.getLatestPeriodo(); + + const plataforma = await this.plataformaService.getByName(namePlataforma); const existing = await this.alumnoInscritoRepo.findOne({ where: { - alumno: { id_cuenta: dto.id_cuenta }, + alumno: { id_cuenta: alumno.id_cuenta }, periodo: { id_periodo: periodo?.id_periodo }, + plataforma: { id_plataforma: plataforma?.id_plataforma }, }, }); @@ -47,7 +50,12 @@ export class AlumnoInscritoService { ); } - const alumnoInscrito = this.alumnoInscritoRepo.create(dto); + const alumnoInscrito = this.alumnoInscritoRepo.create({ + alumno: { id_cuenta: alumno.id_cuenta }, + periodo: { id_periodo: periodo.id_periodo }, + plataforma: { id_plataforma: plataforma.id_plataforma }, + }); + return this.alumnoInscritoRepo.save(alumnoInscrito); } } diff --git a/src/modules/AT/alumno_inscrito/dto/create-alumno_inscrito.dto.ts b/src/modules/AT/alumno_inscrito/dto/create-alumno_inscrito.dto.ts index 08588a6..d19220f 100644 --- a/src/modules/AT/alumno_inscrito/dto/create-alumno_inscrito.dto.ts +++ b/src/modules/AT/alumno_inscrito/dto/create-alumno_inscrito.dto.ts @@ -7,7 +7,7 @@ export class CreateAlumnoInscritoDto { @IsNotEmpty() @IsNumber() - id_periodo: number; + id_periodo?: number; @IsNotEmpty() @IsNumber() diff --git a/src/modules/AT/plataforma/periodo.controller.ts b/src/modules/AT/plataforma/periodo.controller.ts index d34d39c..2342270 100644 --- a/src/modules/AT/plataforma/periodo.controller.ts +++ b/src/modules/AT/plataforma/periodo.controller.ts @@ -1,4 +1,13 @@ import { Controller, Get, Param } from '@nestjs/common'; +import { PlataformaService } from './periodo.service'; @Controller('plataforma') -export class PlataformaController {} +export class PlataformaController { + constructor(private readonly plataformaService:PlataformaService){} + + //test + @Get() + GetPlataforma(){ + return this.plataformaService.getByName("windows"); + } +} diff --git a/src/operations/operations.controller.ts b/src/operations/operations.controller.ts index bc9865c..aad365c 100644 --- a/src/operations/operations.controller.ts +++ b/src/operations/operations.controller.ts @@ -13,4 +13,11 @@ export class OperationsController { const idPersona = req.user.idPersona; return await this.operationsService.depositKiosco(abonoKiosco, idPersona); } + + //test + @Post('inscription') + async inscription(@Body() body: { plataforma: string; idPersona: number }) { + const { plataforma, idPersona } = body; + return await this.operationsService.inscriptionAT(plataforma, idPersona); + } } diff --git a/src/operations/operations.service.ts b/src/operations/operations.service.ts index 43c8669..cec5e77 100644 --- a/src/operations/operations.service.ts +++ b/src/operations/operations.service.ts @@ -1,12 +1,10 @@ import { Injectable, NotFoundException } from '@nestjs/common'; import { AlumnoService } from 'src/modules/AT/alumno/student.service'; import { AlumnoInscritoService } from 'src/modules/AT/alumno_inscrito/alumno_inscrito.service'; -import { PeriodoService } from 'src/modules/AT/periodo/periodo.service'; import { PagoKioscoService } from 'src/modules/Monedero/pago-kiosco/pago-kiosco.service'; import { PersonaService } from 'src/modules/Monedero/persona/persona.service'; import { TransaccionService } from 'src/modules/Monedero/transaccion/transaccion.service'; import { abonoKioscoDto } from './dto/create-operation.dto'; -import { PlataformaService } from 'src/modules/AT/plataforma/periodo.service'; @Injectable() export class OperationsService { @@ -16,8 +14,6 @@ export class OperationsService { private readonly personaService: PersonaService, private readonly alumnoInscritoServie: AlumnoInscritoService, private readonly alumnoService: AlumnoService, - private readonly periodoService: PeriodoService, - private readonly plataformaService: PlataformaService, ) {} async depositKiosco(abono: abonoKioscoDto, idPersona: number) { @@ -45,17 +41,14 @@ export class OperationsService { let newSaldo: number; if (transaccion === 'Inscripcion') { - if (!plataforma) { throw new NotFoundException('Debe de colocar una plataforma'); } - const [saldoActual, persona, periodo, plataformaData] = await Promise.all( + const [saldoActual, persona] = await Promise.all( [ this.personaService.saldo(idPersona), this.personaService.findById(idPersona), - this.periodoService.getLatestPeriodo(), - this.plataformaService.getByName(plataforma), ], ); @@ -63,11 +56,7 @@ export class OperationsService { Number(persona.numeroIdentificar), ); - await this.alumnoInscritoServie.create({ - id_cuenta: alumno.id_cuenta, - id_periodo: periodo.id_periodo, - id_plataforma: plataformaData.id_plataforma, - }); + await this.alumnoInscritoServie.create(alumno,plataforma); newSaldo = saldoActual; } else { @@ -76,4 +65,22 @@ export class OperationsService { return newSaldo; } + + async inscriptionAT(plataforma: string, idPersona: number) { + if (!plataforma) { + throw new NotFoundException('Debe de colocar una plataforma'); + } + + const [saldoActual, persona] = await Promise.all([ + this.personaService.saldo(idPersona), + this.personaService.findById(idPersona), + ]); + + const alumno = await this.alumnoService.findOneById( + Number(persona.numeroIdentificar), + ); + + await this.alumnoInscritoServie.create(alumno,plataforma) + return saldoActual; + } }