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 {
|
import { Injectable, ExecutionContext } from '@nestjs/common';
|
||||||
Injectable,
|
|
||||||
ExecutionContext,
|
|
||||||
UnauthorizedException,
|
|
||||||
} from '@nestjs/common';
|
|
||||||
import { AuthGuard } from '@nestjs/passport';
|
import { AuthGuard } from '@nestjs/passport';
|
||||||
|
|
||||||
@Injectable()
|
@Injectable()
|
||||||
@@ -12,7 +8,7 @@ export class GoogleAuthGuard extends AuthGuard('google') {
|
|||||||
|
|
||||||
if (err || !user) {
|
if (err || !user) {
|
||||||
return res.redirect(
|
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 {
|
export class abonoKioscoDto {
|
||||||
@IsNumber()
|
@IsNumber()
|
||||||
@@ -9,4 +9,8 @@ export class abonoKioscoDto {
|
|||||||
|
|
||||||
@IsString()
|
@IsString()
|
||||||
transaccion: string;
|
transaccion: string;
|
||||||
|
|
||||||
|
@IsString()
|
||||||
|
@IsOptional()
|
||||||
|
plataforma?: string;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,8 +9,8 @@ export class OperationsController {
|
|||||||
|
|
||||||
@UseGuards(JwtAuthGuard)
|
@UseGuards(JwtAuthGuard)
|
||||||
@Post('abonoKiosco')
|
@Post('abonoKiosco')
|
||||||
depositKiosco(@Body() abonoKiosco: abonoKioscoDto, @Req() req) {
|
async depositKiosco(@Body() abonoKiosco: abonoKioscoDto, @Req() req) {
|
||||||
const idPersona = req.user.idPersona;
|
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 { PagoPatronatoModule } from 'src/modules/Monedero/pago-patronato/pago-patronato.module';
|
||||||
import { PagoKioscoModule } from 'src/modules/Monedero/pago-kiosco/pago-kiosco.module';
|
import { PagoKioscoModule } from 'src/modules/Monedero/pago-kiosco/pago-kiosco.module';
|
||||||
import { AlumnoModule } from 'src/modules/AT/alumno/student.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 { AlumnoInscritoModule } from 'src/modules/AT/alumno_inscrito/alumno_inscrito.module';
|
||||||
|
import { PeriodoModule } from 'src/modules/AT/periodo/periodo.module';
|
||||||
|
|
||||||
@Module({
|
@Module({
|
||||||
imports: [
|
imports: [
|
||||||
@@ -17,6 +17,7 @@ import { AlumnoInscritoModule } from 'src/modules/AT/alumno_inscrito/alumno_insc
|
|||||||
PagoPatronatoModule,
|
PagoPatronatoModule,
|
||||||
AlumnoModule,
|
AlumnoModule,
|
||||||
AlumnoInscritoModule,
|
AlumnoInscritoModule,
|
||||||
|
PeriodoModule,
|
||||||
],
|
],
|
||||||
controllers: [OperationsController],
|
controllers: [OperationsController],
|
||||||
providers: [OperationsService],
|
providers: [OperationsService],
|
||||||
|
|||||||
@@ -1,9 +1,11 @@
|
|||||||
import { Injectable } from '@nestjs/common';
|
import { Injectable } from '@nestjs/common';
|
||||||
import { AlumnoService } from 'src/modules/AT/alumno/student.service';
|
import { AlumnoService } from 'src/modules/AT/alumno/student.service';
|
||||||
import { AlumnoInscritoService } from 'src/modules/AT/alumno_inscrito/alumno_inscrito.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 { PagoKioscoService } from 'src/modules/Monedero/pago-kiosco/pago-kiosco.service';
|
||||||
import { PersonaService } from 'src/modules/Monedero/persona/persona.service';
|
import { PersonaService } from 'src/modules/Monedero/persona/persona.service';
|
||||||
import { TransaccionService } from 'src/modules/Monedero/transaccion/transaccion.service';
|
import { TransaccionService } from 'src/modules/Monedero/transaccion/transaccion.service';
|
||||||
|
import { abonoKioscoDto } from './dto/create-operation.dto';
|
||||||
|
|
||||||
@Injectable()
|
@Injectable()
|
||||||
export class OperationsService {
|
export class OperationsService {
|
||||||
@@ -13,9 +15,11 @@ export class OperationsService {
|
|||||||
private readonly personaService: PersonaService,
|
private readonly personaService: PersonaService,
|
||||||
private readonly alumnoInscritoServie: AlumnoInscritoService,
|
private readonly alumnoInscritoServie: AlumnoInscritoService,
|
||||||
private readonly alumnoService: AlumnoService,
|
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 today = new Date().toString();
|
||||||
|
|
||||||
const transaction = {
|
const transaction = {
|
||||||
@@ -41,11 +45,18 @@ export class OperationsService {
|
|||||||
if (transaccion === 'Inscripcion') {
|
if (transaccion === 'Inscripcion') {
|
||||||
newSaldo = await this.personaService.saldo(idPersona);
|
newSaldo = await this.personaService.saldo(idPersona);
|
||||||
const persona = await this.personaService.findById(idPersona);
|
const persona = await this.personaService.findById(idPersona);
|
||||||
console.log(persona);
|
|
||||||
|
|
||||||
const alumno = await this.alumnoService.findOneById(
|
const alumno = await this.alumnoService.findOneById(
|
||||||
Number(persona.numeroIdentificar),
|
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 {
|
} else {
|
||||||
newSaldo = await this.personaService.updateSaldo(idPersona, cantidad);
|
newSaldo = await this.personaService.updateSaldo(idPersona, cantidad);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user