added addTime

This commit is contained in:
2026-01-23 12:36:14 -06:00
parent 209b54b412
commit 156954abb3
8 changed files with 129 additions and 21 deletions
+6 -3
View File
@@ -1,11 +1,10 @@
import { IsInt, IsNotEmpty, Min } from "class-validator"; import { IsInt, IsNotEmpty, Min } from 'class-validator';
export class chargePrintDto { export class chargePrintDto {
@IsInt() @IsInt()
@IsNotEmpty() @IsNotEmpty()
@Min(1) @Min(1)
monto:number monto: number;
@IsInt() @IsInt()
@Min(1) @Min(1)
@@ -15,4 +14,8 @@ export class chargePrintDto {
@IsInt() @IsInt()
@IsNotEmpty() @IsNotEmpty()
id_cuenta: number; id_cuenta: number;
@IsInt()
@IsNotEmpty()
id_servicio: number;
} }
+15 -1
View File
@@ -20,5 +20,19 @@ export class OperationsController {
const id_usuario = req.user.id; const id_usuario = req.user.id;
return this.operationsService.addCredit(data, id_usuario); 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 //IO
+2
View File
@@ -8,6 +8,7 @@ import { DetalleServicioModule } from 'src/detalle_servicio/detalle_servicio.mod
import { AlumnoModule } from 'src/alumno/student.module'; 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';
@Module({ @Module({
imports: [ imports: [
@@ -16,6 +17,7 @@ import { ReciboModule } from 'src/recibo/recibo.module';
AlumnoModule, AlumnoModule,
UserModule, UserModule,
ReciboModule, ReciboModule,
AlumnoInscritoModule
], ],
controllers: [OperationsController], controllers: [OperationsController],
providers: [OperationsService], providers: [OperationsService],
+67 -2
View File
@@ -9,19 +9,21 @@ import { DataSource } from 'typeorm';
import { chargePrintDto } from './dto/operations.dto'; 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';
@Injectable() @Injectable()
export class OperationsService { export class OperationsService {
constructor( constructor(
private readonly dataSource: DataSource, private readonly dataSource: DataSource,
private readonly alumnoService: AlumnoService, private readonly alumnoService: AlumnoService,
private readonly alumnoInscritoService: AlumnoInscritoService,
private readonly detalleServicioService: DetalleServicioService, private readonly detalleServicioService: DetalleServicioService,
private readonly userService: UserService, private readonly userService: UserService,
private readonly reciboService: ReciboService, private readonly reciboService: ReciboService,
) {} ) {}
async chargePrint(data: chargePrintDto, id_usuario: number) { 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(); const queryRunner = this.dataSource.createQueryRunner();
await queryRunner.connect(); await queryRunner.connect();
@@ -38,11 +40,12 @@ export class OperationsService {
const alum = await this.alumnoService.findOne(id_cuenta); const alum = await this.alumnoService.findOne(id_cuenta);
const detalleData = { const detalleData = {
servicio: 1, servicio: id_servicio,
user, user,
alum, alum,
monto, monto,
fecha_operacion: new Date(), fecha_operacion: new Date(),
numero_hojas,
}; };
await this.detalleServicioService.Create( await this.detalleServicioService.Create(
@@ -104,4 +107,66 @@ export class OperationsService {
await queryRunner.release(); 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();
}
}
} }
@@ -20,15 +20,15 @@ export class AlumnoInscritoController {
return this.alumnoInscritoService.findAll(); return this.alumnoInscritoService.findAll();
} }
@Post('/tiempo') // @Post('/tiempo')
async addTime(@Body() body: AddTimeDto) { // async addTime(@Body() body: AddTimeDto) {
const { idCuenta, idPlataforma, tiempoExtra } = body; // const { idCuenta, idPlataforma, tiempoExtra } = body;
return this.alumnoInscritoService.addTime( // return this.alumnoInscritoService.(
idCuenta, // idCuenta,
idPlataforma, // idPlataforma,
tiempoExtra, // tiempoExtra,
); // );
} // }
@Get('/plataforma') @Get('/plataforma')
async findAllPlataforma() { async findAllPlataforma() {
@@ -10,5 +10,6 @@ import { PeriodoModule } from 'src/periodo/periodo.module';
imports: [TypeOrmModule.forFeature([AlumnoInscrito,Plataforma,BitacoraMesa]),PeriodoModule], imports: [TypeOrmModule.forFeature([AlumnoInscrito,Plataforma,BitacoraMesa]),PeriodoModule],
controllers: [AlumnoInscritoController], controllers: [AlumnoInscritoController],
providers: [AlumnoInscritoService], providers: [AlumnoInscritoService],
exports:[AlumnoInscritoService]
}) })
export class AlumnoInscritoModule {} export class AlumnoInscritoModule {}
+29 -2
View File
@@ -6,7 +6,7 @@ import {
import { CreateAlumnoInscritoDto } from './dto/create-alumno_inscrito.dto'; import { CreateAlumnoInscritoDto } from './dto/create-alumno_inscrito.dto';
import { AlumnoInscrito, Plataforma } from './entities/alumno_inscrito.entity'; import { AlumnoInscrito, Plataforma } from './entities/alumno_inscrito.entity';
import { InjectRepository } from '@nestjs/typeorm'; import { InjectRepository } from '@nestjs/typeorm';
import { Repository } from 'typeorm'; import { EntityManager, Repository } from 'typeorm';
import { PeriodoService } from 'src/periodo/periodo.service'; import { PeriodoService } from 'src/periodo/periodo.service';
@Injectable() @Injectable()
@@ -95,7 +95,29 @@ export class AlumnoInscritoService {
return { message: 'Plática marcada correctamente' }; return { message: 'Plática marcada correctamente' };
} }
async addTime( async findRegister(id_cuenta: number, id_plataforma: number):Promise<AlumnoInscrito> {
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, idCuenta: number,
idPlataforma: number, idPlataforma: number,
tiempoExtra: number = 3600, tiempoExtra: number = 3600,
@@ -120,4 +142,9 @@ export class AlumnoInscritoService {
return await this.alumnoInscritoRepo.save(alumnoInscrito); return await this.alumnoInscritoRepo.save(alumnoInscrito);
} }
async save(data, manager: EntityManager) {
const repo = manager.getRepository(AlumnoInscrito);
return await repo.save(data);
}
} }
-4
View File
@@ -1,11 +1,7 @@
import { import {
Controller, Controller,
Get, Get,
Post,
Body,
Patch,
Param, Param,
Delete,
} from '@nestjs/common'; } from '@nestjs/common';
import { EquipoService } from './equipo.service'; import { EquipoService } from './equipo.service';
import { Equipo } from './entities/equipo.entity'; import { Equipo } from './entities/equipo.entity';