added Inscription

This commit is contained in:
2026-01-23 13:36:45 -06:00
parent 156954abb3
commit 7868f7d172
5 changed files with 140 additions and 49 deletions
+6 -6
View File
@@ -21,12 +21,12 @@ export class OperationsController {
return this.operationsService.addCredit(data, id_usuario); return this.operationsService.addCredit(data, id_usuario);
} }
// @UseGuards(JwtAuthGuard) @UseGuards(JwtAuthGuard)
// @Post('registration') @Post('registration')
// async addReceiptInscription(@Body() data, @Req() req: any) { async addReceiptInscription(@Body() data, @Req() req: any) {
// const id_usuario = req.user.id; const id_usuario = req.user.id;
// return this.operationsService.addReceiptInscription(data, id_usuario); return this.operationsService.addReceiptInscription(data, id_usuario);
// } }
@UseGuards(JwtAuthGuard) @UseGuards(JwtAuthGuard)
@Post('time') @Post('time')
+3 -1
View File
@@ -9,6 +9,7 @@ import { AlumnoModule } from 'src/alumno/student.module';
import { UserModule } from 'src/user/user.module'; import { UserModule } from 'src/user/user.module';
import { ReciboModule } from 'src/recibo/recibo.module'; import { ReciboModule } from 'src/recibo/recibo.module';
import { AlumnoInscritoModule } from 'src/alumno_inscrito/alumno_inscrito.module'; import { AlumnoInscritoModule } from 'src/alumno_inscrito/alumno_inscrito.module';
import { PeriodoModule } from 'src/periodo/periodo.module';
@Module({ @Module({
imports: [ imports: [
@@ -17,7 +18,8 @@ import { AlumnoInscritoModule } from 'src/alumno_inscrito/alumno_inscrito.module
AlumnoModule, AlumnoModule,
UserModule, UserModule,
ReciboModule, ReciboModule,
AlumnoInscritoModule AlumnoInscritoModule,
PeriodoModule,
], ],
controllers: [OperationsController], controllers: [OperationsController],
providers: [OperationsService], providers: [OperationsService],
+65 -8
View File
@@ -10,6 +10,7 @@ import { chargePrintDto } from './dto/operations.dto';
import { UserService } from 'src/user/user.service'; import { UserService } from 'src/user/user.service';
import { ReciboService } from 'src/recibo/recibo.service'; import { ReciboService } from 'src/recibo/recibo.service';
import { AlumnoInscritoService } from 'src/alumno_inscrito/alumno_inscrito.service'; import { AlumnoInscritoService } from 'src/alumno_inscrito/alumno_inscrito.service';
import { PeriodoService } from 'src/periodo/periodo.service';
@Injectable() @Injectable()
export class OperationsService { export class OperationsService {
@@ -20,6 +21,7 @@ export class OperationsService {
private readonly detalleServicioService: DetalleServicioService, private readonly detalleServicioService: DetalleServicioService,
private readonly userService: UserService, private readonly userService: UserService,
private readonly reciboService: ReciboService, private readonly reciboService: ReciboService,
private readonly periodoService: PeriodoService,
) {} ) {}
async chargePrint(data: chargePrintDto, id_usuario: number) { async chargePrint(data: chargePrintDto, id_usuario: number) {
@@ -109,13 +111,7 @@ export class OperationsService {
} }
async addTime(data, id_usuario: number) { async addTime(data, id_usuario: number) {
const { const { monto, id_cuenta, idPlataforma, folio_recibo, fecha_recibo } = data;
monto,
id_cuenta,
idPlataforma,
folio_recibo,
fecha_recibo,
} = data;
const studentRegister = await this.alumnoInscritoService.findRegister( const studentRegister = await this.alumnoInscritoService.findRegister(
id_cuenta, id_cuenta,
@@ -161,7 +157,68 @@ export class OperationsService {
); );
await queryRunner.commitTransaction(); await queryRunner.commitTransaction();
return { studentRegister}; return { studentRegister };
} catch (error) {
await queryRunner.rollbackTransaction();
throw new InternalServerErrorException(error.message);
} finally {
await queryRunner.release();
}
}
async addReceiptInscription(data, id_usuario: number) {
const {
monto,
id_cuenta,
id_plataforma,
folio_recibo,
fecha_recibo,
realizo_pago,
} = data;
await this.alumnoInscritoService.findNotRegister(id_cuenta, id_plataforma);
const queryRunner = this.dataSource.createQueryRunner();
await queryRunner.connect();
await queryRunner.startTransaction();
const user = await this.userService.findOne(id_usuario);
const alum = await this.alumnoService.findOne(id_cuenta);
try {
const detalleRecibo = {
folio_recibo,
user,
alum,
fecha_recibo,
monto,
};
await this.reciboService.create(detalleRecibo, queryRunner.manager);
const detalleData = {
servicio: 4,
user,
alum,
monto,
fecha_operacion: new Date(),
};
await this.detalleServicioService.Create(
detalleData,
queryRunner.manager,
);
const periodo = await this.periodoService.getPeriodoActivo();
const plataforma =
await this.alumnoInscritoService.findPlataformaById(id_plataforma);
await this.alumnoInscritoService.create(
{ realizo_pago, alumno: alum, plataforma, periodo },
queryRunner.manager,
);
await queryRunner.commitTransaction();
} catch (error) { } catch (error) {
await queryRunner.rollbackTransaction(); await queryRunner.rollbackTransaction();
throw new InternalServerErrorException(error.message); throw new InternalServerErrorException(error.message);
@@ -10,10 +10,10 @@ import { AlumnoInscrito } from './entities/alumno_inscrito.entity';
export class AlumnoInscritoController { export class AlumnoInscritoController {
constructor(private readonly alumnoInscritoService: AlumnoInscritoService) {} constructor(private readonly alumnoInscritoService: AlumnoInscritoService) {}
@Post() // @Post()
async create(@Body() dto: CreateAlumnoInscritoDto): Promise<AlumnoInscrito> { // async create(@Body() dto: CreateAlumnoInscritoDto): Promise<AlumnoInscrito> {
return this.alumnoInscritoService.create(dto); // return this.alumnoInscritoService.create(dto);
} // }
@Get() @Get()
async findAll(): Promise<AlumnoInscrito[]> { async findAll(): Promise<AlumnoInscrito[]> {
+62 -30
View File
@@ -19,32 +19,33 @@ export class AlumnoInscritoService {
private readonly periodoService: PeriodoService, private readonly periodoService: PeriodoService,
) {} ) {}
async create(dto: CreateAlumnoInscritoDto): Promise<AlumnoInscrito> { //Borrar
const periodoActivo = await this.periodoService.getPeriodoActivo(); // async createBorrar(dto: CreateAlumnoInscritoDto): Promise<AlumnoInscrito> {
// const periodoActivo = await this.periodoService.getPeriodoActivo();
const existing = await this.alumnoInscritoRepo.findOne({ // const existing = await this.alumnoInscritoRepo.findOne({
where: { // where: {
alumno: { id_cuenta: dto.id_cuenta }, // alumno: { id_cuenta: dto.id_cuenta },
periodo: { id_periodo: periodoActivo.id_periodo }, // periodo: { id_periodo: periodoActivo.id_periodo },
plataforma: { id_plataforma: dto.id_plataforma }, // plataforma: { id_plataforma: dto.id_plataforma },
}, // },
}); // });
if (existing) { // if (existing) {
throw new BadRequestException( // throw new BadRequestException(
'El alumno ya está inscrito en este periodo y plataforma', // 'El alumno ya está inscrito en este periodo y plataforma',
); // );
} // }
const alumnoInscrito = this.alumnoInscritoRepo.create({ // const alumnoInscrito = this.alumnoInscritoRepo.create({
realizo_pago: dto.realizo_pago ?? false, // realizo_pago: dto.realizo_pago ?? false,
alumno: { id_cuenta: dto.id_cuenta }, // alumno: { id_cuenta: dto.id_cuenta },
plataforma: { id_plataforma: dto.id_plataforma }, // plataforma: { id_plataforma: dto.id_plataforma },
periodo: periodoActivo, // periodo: periodoActivo,
}); // });
return this.alumnoInscritoRepo.save(alumnoInscrito); // return this.alumnoInscritoRepo.save(alumnoInscrito);
} // }
async findAll(): Promise<AlumnoInscrito[]> { async findAll(): Promise<AlumnoInscrito[]> {
return this.alumnoInscritoRepo.find({ return this.alumnoInscritoRepo.find({
@@ -57,6 +58,10 @@ export class AlumnoInscritoService {
return this.plataformaRepo.find(); return this.plataformaRepo.find();
} }
async findPlataformaById(id_plataforma:number) {
return this.plataformaRepo.findOne({where:{id_plataforma}});
}
async findById(id_cuenta: number): Promise<AlumnoInscrito[]> { async findById(id_cuenta: number): Promise<AlumnoInscrito[]> {
const students = await this.alumnoInscritoRepo const students = await this.alumnoInscritoRepo
.createQueryBuilder('ai') .createQueryBuilder('ai')
@@ -95,16 +100,19 @@ export class AlumnoInscritoService {
return { message: 'Plática marcada correctamente' }; return { message: 'Plática marcada correctamente' };
} }
async findRegister(id_cuenta: number, id_plataforma: number):Promise<AlumnoInscrito> { async findRegister(
id_cuenta: number,
id_plataforma: number,
): Promise<AlumnoInscrito> {
const periodoActivo = await this.periodoService.getPeriodoActivo(); const periodoActivo = await this.periodoService.getPeriodoActivo();
console.log(id_cuenta)
const student = await this.alumnoInscritoRepo.findOne({ const student = await this.alumnoInscritoRepo.findOne({
where: { where: {
alumno: { id_cuenta }, alumno: { id_cuenta },
plataforma: { id_plataforma }, plataforma: { id_plataforma },
periodo: { id_periodo: periodoActivo.id_periodo }, periodo: { id_periodo: periodoActivo.id_periodo },
}, },
relations:['alumno','periodo','plataforma'] relations: ['alumno', 'periodo', 'plataforma'],
}); });
if (!student) { if (!student) {
@@ -112,10 +120,28 @@ console.log(id_cuenta)
'No existe inscripción en el periodo y plataforma actual', 'No existe inscripción en el periodo y plataforma actual',
); );
} }
console.log(student)
return student; return student;
} }
async findNotRegister(id_cuenta: number, id_plataforma: number) {
const periodoActivo = await this.periodoService.getPeriodoActivo();
const student = await this.alumnoInscritoRepo.findOne({
where: {
alumno: { id_cuenta },
plataforma: { id_plataforma },
periodo: { id_periodo: periodoActivo.id_periodo },
},
relations: ['alumno', 'periodo', 'plataforma'],
});
if (student) {
throw new Error(
'El alumno ya está inscrito en este periodo y plataforma',
);
}
}
//Borrar //Borrar
async addTimeBorrar( async addTimeBorrar(
idCuenta: number, idCuenta: number,
@@ -143,8 +169,14 @@ console.log(id_cuenta)
return await this.alumnoInscritoRepo.save(alumnoInscrito); return await this.alumnoInscritoRepo.save(alumnoInscrito);
} }
async save(data, manager: EntityManager) { async save(data, manager: EntityManager) {
const repo = manager.getRepository(AlumnoInscrito); const repo = manager.getRepository(AlumnoInscrito);
return await repo.save(data); return await repo.save(data);
} }
async create(data, manager: EntityManager) {
const repo = manager.getRepository(AlumnoInscrito);
const create = repo.create(data);
return await repo.save(create);
}
} }