Merge pull request #842 from bigcapitalhq/fix-auto-increment-transactions

fix: auto increment serial transactions
This commit is contained in:
Ahmed Bouhuolia
2025-11-02 21:10:04 +02:00
committed by GitHub
10 changed files with 95 additions and 34 deletions

View File

@@ -29,6 +29,7 @@ import { CreditNotesImportable } from './commands/CreditNotesImportable';
import { CreditNoteInventoryTransactionsSubscriber } from './subscribers/CreditNoteInventoryTransactionsSubscriber';
import { RefundSyncCreditNoteBalanceSubscriber } from './subscribers/RefundSyncCreditNoteBalanceSubscriber';
import { DeleteCustomerLinkedCreditSubscriber } from './subscribers/DeleteCustomerLinkedCreditSubscriber';
import { CreditNoteAutoSerialSubscriber } from './subscribers/CreditNoteAutoSerialSubscriber';
import { CreditNoteInventoryTransactions } from './commands/CreditNotesInventoryTransactions';
import { InventoryCostModule } from '../InventoryCost/InventoryCost.module';
import { CreditNoteRefundsModule } from '../CreditNoteRefunds/CreditNoteRefunds.module';
@@ -71,6 +72,7 @@ import { CreditNotesApplyInvoiceModule } from '../CreditNotesApplyInvoice/Credit
CreditNoteInventoryTransactionsSubscriber,
RefundSyncCreditNoteBalanceSubscriber,
DeleteCustomerLinkedCreditSubscriber,
CreditNoteAutoSerialSubscriber,
],
exports: [
CreateCreditNoteService,

View File

@@ -5,17 +5,17 @@ import { ICreditNoteCreatedPayload } from '../types/CreditNotes.types';
import { events } from '@/common/events/events';
@Injectable()
export default class CreditNoteAutoSerialSubscriber {
export class CreditNoteAutoSerialSubscriber {
constructor(
private readonly creditNoteIncrementService: CreditNoteAutoIncrementService,
) {}
) { }
/**
* Auto serial increment once credit note created.
* @param {ICreditNoteCreatedPayload} payload -
*/
@OnEvent(events.creditNote.onCreated)
async autoSerialIncrementOnceCreated({}: ICreditNoteCreatedPayload) {
async autoSerialIncrementOnceCreated({ }: ICreditNoteCreatedPayload) {
await this.creditNoteIncrementService.incrementSerialNumber();
}
}

View File

@@ -39,6 +39,7 @@ import { SaleEstimatesExportable } from './SaleEstimatesExportable';
import { SaleEstimatesImportable } from './SaleEstimatesImportable';
import { GetSaleEstimateMailStateService } from './queries/GetSaleEstimateMailState.service';
import { GetSaleEstimateMailTemplateService } from './queries/GetSaleEstimateMailTemplate.service';
import { SaleEstimateAutoIncrementSubscriber } from './subscribers/SaleEstimateAutoIncrementSubscriber';
@Module({
imports: [
@@ -82,13 +83,14 @@ import { GetSaleEstimateMailTemplateService } from './queries/GetSaleEstimateMai
SaleEstimatesExportable,
SaleEstimatesImportable,
GetSaleEstimateMailStateService,
GetSaleEstimateMailTemplateService
GetSaleEstimateMailTemplateService,
SaleEstimateAutoIncrementSubscriber,
],
exports: [
SaleEstimatesExportable,
SaleEstimatesImportable,
GetSaleEstimateMailStateService,
GetSaleEstimateMailTemplateService
]
GetSaleEstimateMailTemplateService,
],
})
export class SaleEstimatesModule {}
export class SaleEstimatesModule { }

View File

@@ -0,0 +1,19 @@
import { Injectable } from '@nestjs/common';
import { OnEvent } from '@nestjs/event-emitter';
import { events } from '@/common/events/events';
import { SaleEstimateIncrement } from '../commands/SaleEstimateIncrement.service';
import { ISaleEstimateCreatedPayload } from '../types/SaleEstimates.types';
@Injectable()
export class SaleEstimateAutoIncrementSubscriber {
constructor(private readonly estimateIncrement: SaleEstimateIncrement) { }
/**
* Handles increment next number of estimate once be created.
* @param {ISaleEstimateCreatedPayload} payload -
*/
@OnEvent(events.saleEstimate.onCreated)
private async handleEstimateNextNumberIncrement({ }: ISaleEstimateCreatedPayload) {
await this.estimateIncrement.incrementNextEstimateNumber();
}
}

View File

@@ -52,6 +52,7 @@ import { InvoiceChangeStatusOnMailSentSubscriber } from './subscribers/InvoiceCh
import { InvoiceCostGLEntriesSubscriber } from './subscribers/InvoiceCostGLEntriesSubscriber';
import { InvoicePaymentGLRewriteSubscriber } from './subscribers/InvoicePaymentGLRewriteSubscriber';
import { SaleInvoiceWriteInventoryTransactionsSubscriber } from './subscribers/InvoiceWriteInventoryTransactions';
import { SaleInvoiceAutoIncrementSubscriber } from './subscribers/SaleInvoiceAutoIncrementSubscriber';
import { SaleInvoiceCostGLEntries } from './SaleInvoiceCostGLEntries';
import { InvoicePaymentsGLEntriesRewrite } from './InvoicePaymentsGLRewrite';
import { PaymentsReceivedModule } from '../PaymentReceived/PaymentsReceived.module';
@@ -120,6 +121,7 @@ import { PaymentLinksModule } from '../PaymentLinks/PaymentLinks.module';
InvoiceCostGLEntriesSubscriber,
InvoicePaymentGLRewriteSubscriber,
SaleInvoiceWriteInventoryTransactionsSubscriber,
SaleInvoiceAutoIncrementSubscriber,
InvoicePaymentsGLEntriesRewrite,
SaleInvoicesCost,
SaleInvoicesExportable,
@@ -133,4 +135,4 @@ import { PaymentLinksModule } from '../PaymentLinks/PaymentLinks.module';
SaleInvoicesImportable,
],
})
export class SaleInvoicesModule {}
export class SaleInvoicesModule { }

View File

@@ -0,0 +1,19 @@
import { Injectable } from '@nestjs/common';
import { OnEvent } from '@nestjs/event-emitter';
import { events } from '@/common/events/events';
import { SaleInvoiceIncrement } from '../commands/SaleInvoiceIncrement.service';
import { ISaleInvoiceCreatedPayload } from '../SaleInvoice.types';
@Injectable()
export class SaleInvoiceAutoIncrementSubscriber {
constructor(private readonly invoiceIncrement: SaleInvoiceIncrement) { }
/**
* Handles increment next number of invoice once be created.
* @param {ISaleInvoiceCreatedPayload} payload -
*/
@OnEvent(events.saleInvoice.onCreated)
private async handleInvoiceNextNumberIncrement({ }: ISaleInvoiceCreatedPayload) {
await this.invoiceIncrement.incrementNextInvoiceNumber();
}
}

View File

@@ -39,6 +39,7 @@ import { SaleReceiptsExportable } from './commands/SaleReceiptsExportable';
import { SaleReceiptsImportable } from './commands/SaleReceiptsImportable';
import { GetSaleReceiptMailStateService } from './queries/GetSaleReceiptMailState.service';
import { GetSaleReceiptMailTemplateService } from './queries/GetSaleReceiptMailTemplate.service';
import { SaleReceiptAutoIncrementSubscriber } from './subscribers/SaleReceiptAutoIncrementSubscriber';
@Module({
controllers: [SaleReceiptsController],
@@ -82,7 +83,8 @@ import { GetSaleReceiptMailTemplateService } from './queries/GetSaleReceiptMailT
SaleReceiptsExportable,
SaleReceiptsImportable,
GetSaleReceiptMailStateService,
GetSaleReceiptMailTemplateService
GetSaleReceiptMailTemplateService,
SaleReceiptAutoIncrementSubscriber,
],
})
export class SaleReceiptsModule { }

View File

@@ -0,0 +1,19 @@
import { Injectable } from '@nestjs/common';
import { OnEvent } from '@nestjs/event-emitter';
import { events } from '@/common/events/events';
import { SaleReceiptIncrement } from '../commands/SaleReceiptIncrement.service';
import { ISaleReceiptCreatedPayload } from '../types/SaleReceipts.types';
@Injectable()
export class SaleReceiptAutoIncrementSubscriber {
constructor(private readonly receiptIncrement: SaleReceiptIncrement) { }
/**
* Handles increment next number of receipt once be created.
* @param {ISaleReceiptCreatedPayload} payload -
*/
@OnEvent(events.saleReceipt.onCreated)
private async handleReceiptNextNumberIncrement({ }: ISaleReceiptCreatedPayload) {
await this.receiptIncrement.incrementNextReceiptNumber();
}
}

View File

@@ -21,6 +21,7 @@ import { VendorCreditGLEntries } from './commands/VendorCreditGLEntries';
import { LedgerModule } from '../Ledger/Ledger.module';
import { AccountsModule } from '../Accounts/Accounts.module';
import { VendorCreditInventoryTransactionsSubscriber } from './subscribers/VendorCreditInventoryTransactionsSusbcriber';
import { VendorCreditAutoSerialSubscriber } from './subscribers/VendorCreditAutoSerialSubscriber';
import { VendorCreditInventoryTransactions } from './commands/VendorCreditInventoryTransactions';
import { GetVendorCreditsService } from './queries/GetVendorCredits.service';
import { DynamicListModule } from '../DynamicListing/DynamicList.module';
@@ -57,6 +58,7 @@ import { VendorCreditsImportable } from './commands/VendorCreditsImportable';
VendorCreditGlEntriesSubscriber,
VendorCreditInventoryTransactions,
VendorCreditInventoryTransactionsSubscriber,
VendorCreditAutoSerialSubscriber,
VendorCreditsExportable,
VendorCreditsImportable,
],

View File

@@ -1,27 +1,21 @@
// import { Service, Inject } from 'typedi';
// import events from '@/subscribers/events';
// import BaseVendorCredit from '../commands/VendorCreditDTOTransform.service';
// import { IVendorCreditCreatedPayload } from '@/interfaces';
import { Injectable } from '@nestjs/common';
import { OnEvent } from '@nestjs/event-emitter';
import { events } from '@/common/events/events';
import { VendorCreditAutoIncrementService } from '../commands/VendorCreditAutoIncrement.service';
import { IVendorCreditCreatedPayload } from '../types/VendorCredit.types';
// @Service()
// export default class VendorCreditAutoSerialSubscriber {
// @Inject()
// vendorCreditService: BaseVendorCredit;
@Injectable()
export class VendorCreditAutoSerialSubscriber {
constructor(
private readonly vendorCreditIncrementService: VendorCreditAutoIncrementService,
) { }
// /**
// * Attaches events with handlers.
// */
// public attach(bus) {
// bus.subscribe(events.vendorCredit.onCreated, this.autoIncrementOnceCreated);
// }
// /**
// * Auto serial increment once the vendor credit created.
// * @param {IVendorCreditCreatedPayload} payload
// */
// private autoIncrementOnceCreated = ({
// tenantId,
// }: IVendorCreditCreatedPayload) => {
// this.vendorCreditService.incrementSerialNumber(tenantId);
// };
// }
/**
* Auto serial increment once vendor credit created.
* @param {IVendorCreditCreatedPayload} payload -
*/
@OnEvent(events.vendorCredit.onCreated)
async autoSerialIncrementOnceCreated({ }: IVendorCreditCreatedPayload) {
await this.vendorCreditIncrementService.incrementSerialNumber();
}
}