Files
api-monedero-electronico/src/operations/operations.service.ts
T

87 lines
2.7 KiB
TypeScript
Raw Normal View History

2025-11-03 19:33:33 -06:00
import { Injectable, NotFoundException } from '@nestjs/common';
2025-10-29 17:16:27 -06:00
import { AlumnoService } from 'src/modules/AT/alumno/student.service';
import { AlumnoInscritoService } from 'src/modules/AT/alumno_inscrito/alumno_inscrito.service';
2025-10-23 08:35:55 -06:00
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';
2025-11-03 19:26:45 -06:00
import { abonoKioscoDto } from './dto/create-operation.dto';
2025-10-20 14:13:16 -06:00
@Injectable()
export class OperationsService {
constructor(
private readonly transaccionService: TransaccionService,
private readonly pagoKioscoService: PagoKioscoService,
private readonly personaService: PersonaService,
2025-10-29 17:16:27 -06:00
private readonly alumnoInscritoServie: AlumnoInscritoService,
private readonly alumnoService: AlumnoService,
2025-10-20 14:13:16 -06:00
) {}
2025-11-03 19:26:45 -06:00
async depositKiosco(abono: abonoKioscoDto, idPersona: number) {
const { cantidad, idKiosco, transaccion, plataforma } = abono;
2025-10-20 14:13:16 -06:00
const today = new Date().toString();
2025-10-21 13:42:37 -06:00
const transaction = {
nombreTransaccion: transaccion,
2025-10-20 14:13:16 -06:00
idPersona,
fecha: today,
tipoTransaccion: 2,
};
2025-10-21 13:42:37 -06:00
const responseTransaccion = this.transaccionService.create(transaction);
2025-10-22 16:53:41 -06:00
2025-10-20 14:13:16 -06:00
const pagoKiosco = {
idTransaccion: (await responseTransaccion).idTransaccion,
2025-10-20 15:46:44 -06:00
monto: cantidad,
2025-10-20 14:13:16 -06:00
fecha: today,
idKiosco,
pagoPatronatoCreado: false,
};
2025-10-22 19:28:40 -06:00
this.pagoKioscoService.create(pagoKiosco);
2025-10-22 16:53:41 -06:00
2025-10-29 08:16:36 -06:00
let newSaldo: number;
if (transaccion === 'Inscripcion') {
2025-11-03 19:33:33 -06:00
if (!plataforma) {
throw new NotFoundException('Debe de colocar una plataforma');
}
2025-11-21 20:46:04 -06:00
const [saldoActual, persona] = await Promise.all(
2025-11-21 18:28:58 -06:00
[
this.personaService.saldo(idPersona),
this.personaService.findById(idPersona),
],
);
const alumno = await this.alumnoService.findOneById(
Number(persona.numeroIdentificar),
);
2025-11-03 19:26:45 -06:00
2025-11-21 20:46:04 -06:00
await this.alumnoInscritoServie.create(alumno,plataforma);
2025-11-21 18:28:58 -06:00
newSaldo = saldoActual;
2025-10-29 08:16:36 -06:00
} else {
newSaldo = await this.personaService.updateSaldo(idPersona, cantidad);
}
2025-10-22 15:00:05 -06:00
2025-10-20 14:13:16 -06:00
return newSaldo;
}
2025-11-21 20:46:04 -06:00
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;
}
2025-10-20 14:13:16 -06:00
}