- Added English translations for customer types in `customer.json`. - Updated `Model.ts` to improve deletion logic by filtering dependent relations. - Introduced `BillPaymentBillSyncSubscriber` to handle bill payment events. - Enhanced `CreateBillPaymentService` and `EditBillPaymentService` to fetch entries after insertion/updating. - Updated `SaleInvoiceCostGLEntries` to include item entry details in GL entries. - Refactored various components in the webapp for consistency in naming conventions.
81 lines
2.2 KiB
TypeScript
81 lines
2.2 KiB
TypeScript
import {
|
|
IBillPaymentEventCreatedPayload,
|
|
IBillPaymentEventDeletedPayload,
|
|
IBillPaymentEventEditedPayload,
|
|
} from '../types/BillPayments.types';
|
|
import { BillPaymentBillSync } from '../commands/BillPaymentBillSync.service';
|
|
import { Injectable } from '@nestjs/common';
|
|
import { OnEvent } from '@nestjs/event-emitter';
|
|
import { events } from '@/common/events/events';
|
|
|
|
@Injectable()
|
|
export class BillPaymentBillSyncSubscriber {
|
|
/**
|
|
* @param {BillPaymentBillSync} billPaymentBillSync - Bill payment bill sync service.
|
|
*/
|
|
constructor(private readonly billPaymentBillSync: BillPaymentBillSync) { }
|
|
|
|
/**
|
|
* Handle bill increment/decrement payment amount
|
|
* once created, edited or deleted.
|
|
*/
|
|
@OnEvent(events.billPayment.onCreated)
|
|
async handleBillIncrementPaymentOnceCreated({
|
|
billPayment,
|
|
trx,
|
|
}: IBillPaymentEventCreatedPayload) {
|
|
// Ensure entries are available - they should be included in insertGraphAndFetch
|
|
const entries = billPayment.entries || [];
|
|
await this.billPaymentBillSync.saveChangeBillsPaymentAmount(
|
|
entries.map((entry) => ({
|
|
billId: entry.billId,
|
|
paymentAmount: entry.paymentAmount,
|
|
})),
|
|
null,
|
|
trx,
|
|
);
|
|
}
|
|
|
|
/**
|
|
* Handle bill increment/decrement payment amount once edited.
|
|
*/
|
|
@OnEvent(events.billPayment.onEdited)
|
|
async handleBillIncrementPaymentOnceEdited({
|
|
billPayment,
|
|
oldBillPayment,
|
|
trx,
|
|
}: IBillPaymentEventEditedPayload) {
|
|
const entries = billPayment.entries || [];
|
|
const oldEntries = oldBillPayment?.entries || null;
|
|
|
|
await this.billPaymentBillSync.saveChangeBillsPaymentAmount(
|
|
entries.map((entry) => ({
|
|
billId: entry.billId,
|
|
paymentAmount: entry.paymentAmount,
|
|
})),
|
|
oldEntries,
|
|
trx,
|
|
);
|
|
}
|
|
|
|
/**
|
|
* Handle revert bills payment amount once bill payment deleted.
|
|
*/
|
|
@OnEvent(events.billPayment.onDeleted)
|
|
async handleBillDecrementPaymentAmount({
|
|
oldBillPayment,
|
|
trx,
|
|
}: IBillPaymentEventDeletedPayload) {
|
|
const oldEntries = oldBillPayment.entries || [];
|
|
|
|
await this.billPaymentBillSync.saveChangeBillsPaymentAmount(
|
|
oldEntries.map((entry) => ({
|
|
billId: entry.billId,
|
|
paymentAmount: 0,
|
|
})),
|
|
oldEntries,
|
|
trx,
|
|
);
|
|
}
|
|
}
|