87 lines
2.7 KiB
TypeScript
87 lines
2.7 KiB
TypeScript
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;
|
|
}
|
|
}
|