added periodo
This commit is contained in:
@@ -0,0 +1,23 @@
|
||||
import {
|
||||
IsString,
|
||||
Length,
|
||||
IsDateString,
|
||||
IsOptional,
|
||||
IsBoolean,
|
||||
} from 'class-validator';
|
||||
|
||||
export class CreatePeriodoDto {
|
||||
@IsString()
|
||||
@Length(6, 6)
|
||||
semestre: string;
|
||||
|
||||
@IsDateString()
|
||||
fecha_inicio_servicio: string;
|
||||
|
||||
@IsDateString()
|
||||
fecha_fin_servicio: string;
|
||||
|
||||
@IsOptional()
|
||||
@IsBoolean()
|
||||
activo?: boolean;
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
import { Controller, Get, Param } from '@nestjs/common';
|
||||
import { PeriodoService } from './periodo.service';
|
||||
|
||||
@Controller('periodo')
|
||||
export class PeriodoController {}
|
||||
@@ -0,0 +1,10 @@
|
||||
import { Module } from '@nestjs/common';
|
||||
import { PeriodoService } from './periodo.service';
|
||||
import { PeriodoController } from './periodo.controller';
|
||||
|
||||
@Module({
|
||||
controllers: [PeriodoController],
|
||||
providers: [PeriodoService],
|
||||
exports: [PeriodoService],
|
||||
})
|
||||
export class PeriodoModule {}
|
||||
@@ -0,0 +1,35 @@
|
||||
import { Injectable, NotFoundException } from '@nestjs/common';
|
||||
import { InjectRepository } from '@nestjs/typeorm';
|
||||
import { Periodo } from 'src/database/AT/entities/periodo.entity';
|
||||
import { Repository } from 'typeorm';
|
||||
|
||||
@Injectable()
|
||||
export class PeriodoService {
|
||||
constructor(
|
||||
@InjectRepository(Periodo)
|
||||
private readonly periodoRepository: Repository<Periodo>,
|
||||
) {}
|
||||
|
||||
async getById(id_periodo: number): Promise<Periodo> {
|
||||
const periodo = await this.periodoRepository.findOne({
|
||||
where: { id_periodo },
|
||||
});
|
||||
|
||||
if (!periodo) {
|
||||
throw new NotFoundException('periodo no encontrado');
|
||||
}
|
||||
return periodo;
|
||||
}
|
||||
|
||||
async getLatestPeriodo(): Promise<Periodo> {
|
||||
const periodo = await this.periodoRepository.findOne({
|
||||
order: { id_periodo: 'DESC' },
|
||||
});
|
||||
|
||||
if (!periodo) {
|
||||
throw new NotFoundException('No hay periodos registrados');
|
||||
}
|
||||
|
||||
return periodo;
|
||||
}
|
||||
}
|
||||
@@ -1,8 +1,4 @@
|
||||
import {
|
||||
Injectable,
|
||||
ExecutionContext,
|
||||
UnauthorizedException,
|
||||
} from '@nestjs/common';
|
||||
import { Injectable, ExecutionContext } from '@nestjs/common';
|
||||
import { AuthGuard } from '@nestjs/passport';
|
||||
|
||||
@Injectable()
|
||||
@@ -12,7 +8,7 @@ export class GoogleAuthGuard extends AuthGuard('google') {
|
||||
|
||||
if (err || !user) {
|
||||
return res.redirect(
|
||||
`${process.env.FRONTEND_URL}/oauth-callback?error=${info.message || info}`,
|
||||
`${process.env.FRONTEND_URL}/oauth-callback?error=cancelado`,
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { IsNumber, IsString } from 'class-validator';
|
||||
import { IsNumber, IsOptional, IsString } from 'class-validator';
|
||||
|
||||
export class abonoKioscoDto {
|
||||
@IsNumber()
|
||||
@@ -9,4 +9,8 @@ export class abonoKioscoDto {
|
||||
|
||||
@IsString()
|
||||
transaccion: string;
|
||||
|
||||
@IsString()
|
||||
@IsOptional()
|
||||
plataforma?: string;
|
||||
}
|
||||
|
||||
@@ -9,8 +9,8 @@ export class OperationsController {
|
||||
|
||||
@UseGuards(JwtAuthGuard)
|
||||
@Post('abonoKiosco')
|
||||
depositKiosco(@Body() abonoKiosco: abonoKioscoDto, @Req() req) {
|
||||
async depositKiosco(@Body() abonoKiosco: abonoKioscoDto, @Req() req) {
|
||||
const idPersona = req.user.idPersona;
|
||||
return this.operationsService.depositKiosco(abonoKiosco, idPersona);
|
||||
return await this.operationsService.depositKiosco(abonoKiosco, idPersona);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,8 +6,8 @@ import { PersonaModule } from 'src/modules/Monedero/persona/persona.module';
|
||||
import { PagoPatronatoModule } from 'src/modules/Monedero/pago-patronato/pago-patronato.module';
|
||||
import { PagoKioscoModule } from 'src/modules/Monedero/pago-kiosco/pago-kiosco.module';
|
||||
import { AlumnoModule } from 'src/modules/AT/alumno/student.module';
|
||||
import { AlumnoInscritoService } from 'src/modules/AT/alumno_inscrito/alumno_inscrito.service';
|
||||
import { AlumnoInscritoModule } from 'src/modules/AT/alumno_inscrito/alumno_inscrito.module';
|
||||
import { PeriodoModule } from 'src/modules/AT/periodo/periodo.module';
|
||||
|
||||
@Module({
|
||||
imports: [
|
||||
@@ -17,6 +17,7 @@ import { AlumnoInscritoModule } from 'src/modules/AT/alumno_inscrito/alumno_insc
|
||||
PagoPatronatoModule,
|
||||
AlumnoModule,
|
||||
AlumnoInscritoModule,
|
||||
PeriodoModule,
|
||||
],
|
||||
controllers: [OperationsController],
|
||||
providers: [OperationsService],
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
import { Injectable } 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';
|
||||
|
||||
@Injectable()
|
||||
export class OperationsService {
|
||||
@@ -13,9 +15,11 @@ export class OperationsService {
|
||||
private readonly personaService: PersonaService,
|
||||
private readonly alumnoInscritoServie: AlumnoInscritoService,
|
||||
private readonly alumnoService: AlumnoService,
|
||||
private readonly periodoService: PeriodoService,
|
||||
) {}
|
||||
|
||||
async depositKiosco({ cantidad, idKiosco, transaccion }, idPersona: number) {
|
||||
async depositKiosco(abono: abonoKioscoDto, idPersona: number) {
|
||||
const { cantidad, idKiosco, transaccion, plataforma } = abono;
|
||||
const today = new Date().toString();
|
||||
|
||||
const transaction = {
|
||||
@@ -41,11 +45,18 @@ export class OperationsService {
|
||||
if (transaccion === 'Inscripcion') {
|
||||
newSaldo = await this.personaService.saldo(idPersona);
|
||||
const persona = await this.personaService.findById(idPersona);
|
||||
console.log(persona);
|
||||
|
||||
const alumno = await this.alumnoService.findOneById(
|
||||
Number(persona.numeroIdentificar),
|
||||
);
|
||||
|
||||
const periodo = await this.periodoService.getLatestPeriodo();
|
||||
|
||||
await this.alumnoInscritoServie.create({
|
||||
id_cuenta: alumno.id_cuenta,
|
||||
id_periodo: periodo.id_periodo,
|
||||
id_plataforma: plataforma,
|
||||
});
|
||||
} else {
|
||||
newSaldo = await this.personaService.updateSaldo(idPersona, cantidad);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user