Files
bigcapital/packages/server-nest/src/modules/BillPayments/subscribers/BillPaymentGLEntriesSubscriber.ts
2025-01-01 12:11:58 +02:00

61 lines
1.6 KiB
TypeScript

import {
IBillPaymentEventCreatedPayload,
IBillPaymentEventDeletedPayload,
IBillPaymentEventEditedPayload,
} from '../types/BillPayments.types';
import { BillPaymentGLEntries } from '../commands/BillPaymentGLEntries';
import { Injectable } from '@nestjs/common';
import { OnEvent } from '@nestjs/event-emitter';
import { events } from '@/common/events/events';
@Injectable()
export class BillPaymentGLEntriesSubscriber {
constructor(
private readonly billPaymentGLEntries: BillPaymentGLEntries,
) {}
/**
* Handle bill payment writing journal entries once created.
*/
@OnEvent(events.billPayment.onCreated)
private async handleWriteJournalEntries({
billPayment,
trx,
}: IBillPaymentEventCreatedPayload) {
// Records the journal transactions after bills payment
// and change diff account balance.
await this.billPaymentGLEntries.writePaymentGLEntries(
billPayment.id,
trx
);
};
/**
* Handle bill payment re-writing journal entries once the payment transaction be edited.
*/
@OnEvent(events.billPayment.onEdited)
private async handleRewriteJournalEntriesOncePaymentEdited({
billPayment,
trx,
}: IBillPaymentEventEditedPayload) {
await this.billPaymentGLEntries.rewritePaymentGLEntries(
billPayment.id,
trx
);
};
/**
* Reverts journal entries once bill payment deleted.
*/
@OnEvent(events.billPayment.onDeleted)
private async handleRevertJournalEntries({
billPaymentId,
trx,
}: IBillPaymentEventDeletedPayload) {
await this.billPaymentGLEntries.revertPaymentGLEntries(
billPaymentId,
trx
);
};
}