diff --git a/src/Operations/dto/operations.dto.ts b/src/Operations/dto/operations.dto.ts index 2703fa4..ee5579e 100644 --- a/src/Operations/dto/operations.dto.ts +++ b/src/Operations/dto/operations.dto.ts @@ -1,11 +1,10 @@ -import { IsInt, IsNotEmpty, Min } from "class-validator"; +import { IsInt, IsNotEmpty, Min } from 'class-validator'; export class chargePrintDto { - @IsInt() @IsNotEmpty() @Min(1) - monto:number + monto: number; @IsInt() @Min(1) @@ -15,4 +14,8 @@ export class chargePrintDto { @IsInt() @IsNotEmpty() id_cuenta: number; + + @IsInt() + @IsNotEmpty() + id_servicio: number; } diff --git a/src/Operations/operations.controller.ts b/src/Operations/operations.controller.ts index af4c3fe..046c81a 100644 --- a/src/Operations/operations.controller.ts +++ b/src/Operations/operations.controller.ts @@ -20,5 +20,19 @@ export class OperationsController { const id_usuario = req.user.id; return this.operationsService.addCredit(data, id_usuario); } + + // @UseGuards(JwtAuthGuard) + // @Post('registration') + // async addReceiptInscription(@Body() data, @Req() req: any) { + // const id_usuario = req.user.id; + // return this.operationsService.addReceiptInscription(data, id_usuario); + // } + + @UseGuards(JwtAuthGuard) + @Post('time') + async addTime(@Body() data, @Req() req: any) { + const id_usuario = req.user.id; + return this.operationsService.addTime(data, id_usuario); + } } -//IO \ No newline at end of file +//IO diff --git a/src/Operations/operations.module.ts b/src/Operations/operations.module.ts index c1f994a..ba46c87 100644 --- a/src/Operations/operations.module.ts +++ b/src/Operations/operations.module.ts @@ -8,6 +8,7 @@ import { DetalleServicioModule } from 'src/detalle_servicio/detalle_servicio.mod import { AlumnoModule } from 'src/alumno/student.module'; import { UserModule } from 'src/user/user.module'; import { ReciboModule } from 'src/recibo/recibo.module'; +import { AlumnoInscritoModule } from 'src/alumno_inscrito/alumno_inscrito.module'; @Module({ imports: [ @@ -16,6 +17,7 @@ import { ReciboModule } from 'src/recibo/recibo.module'; AlumnoModule, UserModule, ReciboModule, + AlumnoInscritoModule ], controllers: [OperationsController], providers: [OperationsService], diff --git a/src/Operations/operations.services.ts b/src/Operations/operations.services.ts index 5dd2c9b..d5ce61a 100644 --- a/src/Operations/operations.services.ts +++ b/src/Operations/operations.services.ts @@ -9,19 +9,21 @@ import { DataSource } from 'typeorm'; import { chargePrintDto } from './dto/operations.dto'; import { UserService } from 'src/user/user.service'; import { ReciboService } from 'src/recibo/recibo.service'; +import { AlumnoInscritoService } from 'src/alumno_inscrito/alumno_inscrito.service'; @Injectable() export class OperationsService { constructor( private readonly dataSource: DataSource, private readonly alumnoService: AlumnoService, + private readonly alumnoInscritoService: AlumnoInscritoService, private readonly detalleServicioService: DetalleServicioService, private readonly userService: UserService, private readonly reciboService: ReciboService, ) {} async chargePrint(data: chargePrintDto, id_usuario: number) { - const { monto, id_cuenta } = data; + const { monto, id_cuenta, id_servicio, numero_hojas } = data; const queryRunner = this.dataSource.createQueryRunner(); await queryRunner.connect(); @@ -38,11 +40,12 @@ export class OperationsService { const alum = await this.alumnoService.findOne(id_cuenta); const detalleData = { - servicio: 1, + servicio: id_servicio, user, alum, monto, fecha_operacion: new Date(), + numero_hojas, }; await this.detalleServicioService.Create( @@ -104,4 +107,66 @@ export class OperationsService { await queryRunner.release(); } } + + async addTime(data, id_usuario: number) { + const { + monto, + id_cuenta, + idPlataforma, + folio_recibo, + fecha_recibo, + } = data; + + const studentRegister = await this.alumnoInscritoService.findRegister( + id_cuenta, + idPlataforma, + ); + + 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: 5, + user, + alum, + monto, + fecha_operacion: new Date(), + }; + + await this.detalleServicioService.Create( + detalleData, + queryRunner.manager, + ); + + studentRegister.tiempo_disponible += 3600; + + await this.alumnoInscritoService.save( + studentRegister, + queryRunner.manager, + ); + + await queryRunner.commitTransaction(); + return { studentRegister}; + } catch (error) { + await queryRunner.rollbackTransaction(); + throw new InternalServerErrorException(error.message); + } finally { + await queryRunner.release(); + } + } } diff --git a/src/alumno_inscrito/alumno_inscrito.controller.ts b/src/alumno_inscrito/alumno_inscrito.controller.ts index 020e47e..d5c4d5b 100644 --- a/src/alumno_inscrito/alumno_inscrito.controller.ts +++ b/src/alumno_inscrito/alumno_inscrito.controller.ts @@ -20,15 +20,15 @@ export class AlumnoInscritoController { return this.alumnoInscritoService.findAll(); } - @Post('/tiempo') - async addTime(@Body() body: AddTimeDto) { - const { idCuenta, idPlataforma, tiempoExtra } = body; - return this.alumnoInscritoService.addTime( - idCuenta, - idPlataforma, - tiempoExtra, - ); - } + // @Post('/tiempo') + // async addTime(@Body() body: AddTimeDto) { + // const { idCuenta, idPlataforma, tiempoExtra } = body; + // return this.alumnoInscritoService.( + // idCuenta, + // idPlataforma, + // tiempoExtra, + // ); + // } @Get('/plataforma') async findAllPlataforma() { diff --git a/src/alumno_inscrito/alumno_inscrito.module.ts b/src/alumno_inscrito/alumno_inscrito.module.ts index f7c94a2..bb76fca 100644 --- a/src/alumno_inscrito/alumno_inscrito.module.ts +++ b/src/alumno_inscrito/alumno_inscrito.module.ts @@ -10,5 +10,6 @@ import { PeriodoModule } from 'src/periodo/periodo.module'; imports: [TypeOrmModule.forFeature([AlumnoInscrito,Plataforma,BitacoraMesa]),PeriodoModule], controllers: [AlumnoInscritoController], providers: [AlumnoInscritoService], + exports:[AlumnoInscritoService] }) export class AlumnoInscritoModule {} diff --git a/src/alumno_inscrito/alumno_inscrito.service.ts b/src/alumno_inscrito/alumno_inscrito.service.ts index de3ec1b..7f0391e 100644 --- a/src/alumno_inscrito/alumno_inscrito.service.ts +++ b/src/alumno_inscrito/alumno_inscrito.service.ts @@ -6,7 +6,7 @@ import { 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 { EntityManager, Repository } from 'typeorm'; import { PeriodoService } from 'src/periodo/periodo.service'; @Injectable() @@ -95,7 +95,29 @@ export class AlumnoInscritoService { return { message: 'Plática marcada correctamente' }; } - async addTime( + async findRegister(id_cuenta: number, id_plataforma: number):Promise { + const periodoActivo = await this.periodoService.getPeriodoActivo(); +console.log(id_cuenta) + 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( + 'No existe inscripción en el periodo y plataforma actual', + ); + } + console.log(student) + return student; + } + + //Borrar + async addTimeBorrar( idCuenta: number, idPlataforma: number, tiempoExtra: number = 3600, @@ -120,4 +142,9 @@ export class AlumnoInscritoService { return await this.alumnoInscritoRepo.save(alumnoInscrito); } + + async save(data, manager: EntityManager) { + const repo = manager.getRepository(AlumnoInscrito); + return await repo.save(data); + } } diff --git a/src/equipo/equipo.controller.ts b/src/equipo/equipo.controller.ts index b70a3ed..bded489 100644 --- a/src/equipo/equipo.controller.ts +++ b/src/equipo/equipo.controller.ts @@ -1,11 +1,7 @@ import { Controller, Get, - Post, - Body, - Patch, Param, - Delete, } from '@nestjs/common'; import { EquipoService } from './equipo.service'; import { Equipo } from './entities/equipo.entity';