fixed register
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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],
|
||||
|
||||
@@ -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<AlumnoInscrito>,
|
||||
@InjectRepository(Periodo, 'dbAT')
|
||||
private readonly periodoRepository: Repository<Periodo>,
|
||||
private readonly periodoService: PeriodoService,
|
||||
private readonly plataformaService: PlataformaService,
|
||||
) {}
|
||||
|
||||
async findAll(): Promise<AlumnoInscrito[]> {
|
||||
@@ -27,17 +28,19 @@ export class AlumnoInscritoService {
|
||||
});
|
||||
}
|
||||
|
||||
async create(dto: CreateAlumnoInscritoDto): Promise<AlumnoInscrito> {
|
||||
const periodo = await this.periodoRepository.findOne({
|
||||
order: {
|
||||
id_periodo: 'DESC',
|
||||
},
|
||||
});
|
||||
async create(
|
||||
alumno: CreateAlumnoDto,
|
||||
namePlataforma: string,
|
||||
): Promise<AlumnoInscrito> {
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,7 +7,7 @@ export class CreateAlumnoInscritoDto {
|
||||
|
||||
@IsNotEmpty()
|
||||
@IsNumber()
|
||||
id_periodo: number;
|
||||
id_periodo?: number;
|
||||
|
||||
@IsNotEmpty()
|
||||
@IsNumber()
|
||||
|
||||
@@ -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");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user