Files
bigcapital/packages/server/src/modules/SaleInvoices/SaleInvoices.module.ts
2025-04-10 23:34:42 +02:00

135 lines
6.5 KiB
TypeScript

import { forwardRef, Module } from '@nestjs/common';
import { TenancyContext } from '../Tenancy/TenancyContext.service';
import { TenancyDatabaseModule } from '../Tenancy/TenancyDB/TenancyDB.module';
import { TransformerInjectable } from '../Transformer/TransformerInjectable.service';
import { CreateSaleInvoice } from './commands/CreateSaleInvoice.service';
import { DeleteSaleInvoice } from './commands/DeleteSaleInvoice.service';
import { DeliverSaleInvoice } from './commands/DeliverSaleInvoice.service';
import { EditSaleInvoice } from './commands/EditSaleInvoice.service';
import { GenerateShareLink } from './commands/GenerateInvoicePaymentLink.service';
import { SaleInvoiceIncrement } from './commands/SaleInvoiceIncrement.service';
import { GetInvoicePaymentMail } from './queries/GetInvoicePaymentMail.service';
import { GetSaleInvoice } from './queries/GetSaleInvoice.service';
import { GetSaleInvoicesPayable } from './queries/GetSaleInvoicesPayable.service';
import { GetSaleInvoiceState } from './queries/GetSaleInvoiceState.service';
import { SaleInvoicePdf } from './queries/SaleInvoicePdf.service';
import { SaleInvoiceApplication } from './SaleInvoices.application';
import { ItemsEntriesService } from '../Items/ItemsEntries.service';
import { CommandSaleInvoiceValidators } from './commands/CommandSaleInvoiceValidators.service';
import { CommandSaleInvoiceDTOTransformer } from './commands/CommandSaleInvoiceDTOTransformer.service';
import { SaleEstimateValidators } from '../SaleEstimates/commands/SaleEstimateValidators.service';
import { UnlinkConvertedSaleEstimate } from '../SaleEstimates/commands/UnlinkConvertedSaleEstimate.service';
import { PdfTemplatesModule } from '../PdfTemplate/PdfTemplates.module';
import { AutoIncrementOrdersModule } from '../AutoIncrementOrders/AutoIncrementOrders.module';
import { ChromiumlyTenancyModule } from '../ChromiumlyTenancy/ChromiumlyTenancy.module';
import { SaleInvoicePdfTemplate } from './queries/SaleInvoicePdfTemplate.service';
import { WriteoffSaleInvoice } from './commands/WriteoffSaleInvoice.service';
import { GetInvoicePaymentsService } from './queries/GetInvoicePayments.service';
import { BranchesModule } from '../Branches/Branches.module';
import { WarehousesModule } from '../Warehouses/Warehouses.module';
import { TaxRatesModule } from '../TaxRates/TaxRate.module';
import { SaleInvoicesController } from './SaleInvoices.controller';
import { InvoiceGLEntriesSubscriber } from './subscribers/InvoiceGLEntriesSubscriber';
import { SaleInvoiceGLEntries } from './ledger/InvoiceGLEntries';
import { LedgerModule } from '../Ledger/Ledger.module';
import { AccountsModule } from '../Accounts/Accounts.module';
import { SaleInvoiceWriteoffSubscriber } from './subscribers/SaleInvoiceWriteoffSubscriber';
import { SaleInvoiceWriteoffGLStorage } from './commands/writeoff/SaleInvoiceWriteoffGLStorage';
import { InvoiceInventoryTransactions } from './commands/inventory/InvoiceInventoryTransactions';
import { MailModule } from '../Mail/Mail.module';
import { GetSaleInvoicesService } from './queries/GetSaleInvoices';
import { SendSaleInvoiceMail } from './commands/SendSaleInvoiceMail';
import { GetSaleInvoiceMailState } from './queries/GetSaleInvoiceMailState.service';
import { InventoryCostModule } from '../InventoryCost/InventoryCost.module';
import { SendSaleInvoiceMailCommon } from './commands/SendInvoiceInvoiceMailCommon.service';
import { DynamicListModule } from '../DynamicListing/DynamicList.module';
import { MailNotificationModule } from '../MailNotification/MailNotification.module';
import { SendSaleInvoiceMailProcessor } from './processors/SendSaleInvoiceMail.processor';
import { BullModule } from '@nestjs/bull';
import { SendSaleInvoiceQueue } from './constants';
import { InvoicePaymentIntegrationSubscriber } from './subscribers/InvoicePaymentIntegrationSubscriber';
import { InvoiceChangeStatusOnMailSentSubscriber } from './subscribers/InvoiceChangeStatusOnMailSentSubscriber';
import { InvoiceCostGLEntriesSubscriber } from './subscribers/InvoiceCostGLEntriesSubscriber';
import { InvoicePaymentGLRewriteSubscriber } from './subscribers/InvoicePaymentGLRewriteSubscriber';
import { SaleInvoiceWriteInventoryTransactionsSubscriber } from './subscribers/InvoiceWriteInventoryTransactions';
import { SaleInvoiceCostGLEntries } from './SaleInvoiceCostGLEntries';
import { InvoicePaymentsGLEntriesRewrite } from './InvoicePaymentsGLRewrite';
import { PaymentsReceivedModule } from '../PaymentReceived/PaymentsReceived.module';
import { SaleInvoicesCost } from './SalesInvoicesCost';
import { SaleInvoicesExportable } from './commands/SaleInvoicesExportable';
import { SaleInvoicesImportable } from './commands/SaleInvoicesImportable';
@Module({
imports: [
TenancyDatabaseModule,
PdfTemplatesModule,
AutoIncrementOrdersModule,
ChromiumlyTenancyModule,
BranchesModule,
WarehousesModule,
TaxRatesModule,
PaymentsReceivedModule,
LedgerModule,
AccountsModule,
MailModule,
MailNotificationModule,
forwardRef(() => InventoryCostModule),
DynamicListModule,
BullModule.registerQueue({ name: SendSaleInvoiceQueue }),
],
controllers: [SaleInvoicesController],
providers: [
CreateSaleInvoice,
EditSaleInvoice,
DeleteSaleInvoice,
GetSaleInvoicesPayable,
DeliverSaleInvoice,
GenerateShareLink,
GetInvoicePaymentMail,
SaleInvoiceIncrement,
GetSaleInvoiceState,
GetSaleInvoice,
GetInvoicePaymentMail,
SaleInvoicePdf,
SaleInvoiceApplication,
TenancyContext,
TransformerInjectable,
ItemsEntriesService,
CommandSaleInvoiceValidators,
CommandSaleInvoiceDTOTransformer,
SaleEstimateValidators,
UnlinkConvertedSaleEstimate,
SaleInvoicePdfTemplate,
WriteoffSaleInvoice,
GetInvoicePaymentsService,
SaleInvoiceGLEntries,
InvoiceGLEntriesSubscriber,
SaleInvoiceWriteoffGLStorage,
SaleInvoiceWriteoffSubscriber,
InvoiceInventoryTransactions,
SendSaleInvoiceMail,
GetSaleInvoicesService,
GetSaleInvoiceMailState,
SendSaleInvoiceMailCommon,
SendSaleInvoiceMailProcessor,
SaleInvoiceCostGLEntries,
InvoicePaymentIntegrationSubscriber,
InvoiceChangeStatusOnMailSentSubscriber,
InvoiceCostGLEntriesSubscriber,
InvoicePaymentGLRewriteSubscriber,
SaleInvoiceWriteInventoryTransactionsSubscriber,
InvoicePaymentsGLEntriesRewrite,
SaleInvoicesCost,
SaleInvoicesExportable,
SaleInvoicesImportable,
],
exports: [
GetSaleInvoice,
SaleInvoicesCost,
SaleInvoicePdf,
SaleInvoicesExportable,
SaleInvoicesImportable,
],
})
export class SaleInvoicesModule {}