import { Injectable, NotFoundException } from '@nestjs/common'; import { AlumnoService } from 'src/modules/AT/alumno/student.service'; import { AlumnoInscritoService } from 'src/modules/AT/alumno_inscrito/alumno_inscrito.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 { constructor( private readonly transaccionService: TransaccionService, private readonly pagoKioscoService: PagoKioscoService, private readonly personaService: PersonaService, private readonly alumnoInscritoServie: AlumnoInscritoService, private readonly alumnoService: AlumnoService, ) {} async depositKiosco(abono: abonoKioscoDto, idPersona: number) { const { cantidad, idKiosco, transaccion, plataforma } = abono; const today = new Date().toString(); const transaction = { nombreTransaccion: transaccion, idPersona, fecha: today, tipoTransaccion: 2, }; const responseTransaccion = this.transaccionService.create(transaction); const pagoKiosco = { idTransaccion: (await responseTransaccion).idTransaccion, monto: cantidad, fecha: today, idKiosco, pagoPatronatoCreado: false, }; this.pagoKioscoService.create(pagoKiosco); let newSaldo: number; if (transaccion === 'Inscripcion') { if (!plataforma) { throw new NotFoundException('Debe de colocar una plataforma'); } const [saldoActual, persona] = await Promise.all( [ this.personaService.saldo(idPersona), this.personaService.findById(idPersona), ], ); const alumno = await this.alumnoService.findOneById( Number(persona.numeroIdentificar), ); await this.alumnoInscritoServie.create(alumno,plataforma); newSaldo = saldoActual; } else { newSaldo = await this.personaService.updateSaldo(idPersona, cantidad); } return newSaldo; } async inscriptionAT(plataforma: string, idPersona: number) { if (!plataforma) { throw new NotFoundException('Debe de colocar una plataforma'); } const [saldoActual, persona] = await Promise.all([ this.personaService.saldo(idPersona), this.personaService.findById(idPersona), ]); const alumno = await this.alumnoService.findOneById( Number(persona.numeroIdentificar), ); await this.alumnoInscritoServie.create(alumno,plataforma) return saldoActual; } }