feat: migrate manual journal to nestjs

This commit is contained in:
Ahmed Bouhuolia
2024-12-26 20:57:21 +02:00
parent cd84872a61
commit 736cedd63d
34 changed files with 2129 additions and 69 deletions

View File

@@ -14,6 +14,7 @@ import { BranchesApplication } from './BranchesApplication.service';
import { BranchesSettingsService } from './BranchesSettings';
import { BranchCommandValidator } from './commands/BranchCommandValidator.service';
import { BranchTransactionDTOTransformer } from './integrations/BranchTransactionDTOTransform';
import { ManualJournalBranchesDTOTransformer } from './integrations/ManualJournals/ManualJournalDTOTransformer.service';
@Module({
imports: [TenancyDatabaseModule],
@@ -31,8 +32,13 @@ import { BranchTransactionDTOTransformer } from './integrations/BranchTransactio
TenancyContext,
TransformerInjectable,
BranchCommandValidator,
BranchTransactionDTOTransformer
BranchTransactionDTOTransformer,
ManualJournalBranchesDTOTransformer,
],
exports: [
BranchesSettingsService,
BranchTransactionDTOTransformer,
ManualJournalBranchesDTOTransformer,
],
exports: [BranchTransactionDTOTransformer],
})
export class BranchesModule {}

View File

@@ -0,0 +1,37 @@
import { Inject, Injectable } from '@nestjs/common';
import { omit } from 'lodash';
import { BranchesSettingsService } from '../../BranchesSettings';
import { IManualJournalDTO } from '@/modules/ManualJournals/types/ManualJournals.types';
@Injectable()
export class ManualJournalBranchesDTOTransformer {
constructor(
@Inject()
private readonly branchesSettings: BranchesSettingsService,
) {}
/**
*
* @param DTO
* @returns
*/
private excludeDTOBranchIdWhenInactive = (
DTO: IManualJournalDTO,
): IManualJournalDTO => {
const isActive = this.branchesSettings.isMultiBranchesActive();
if (isActive) return DTO;
return {
...DTO,
entries: DTO.entries.map((e) => omit(e, ['branchId'])),
};
};
/**
*
*/
public transformDTO = (DTO: IManualJournalDTO): IManualJournalDTO => {
return this.excludeDTOBranchIdWhenInactive(DTO);
};
}

View File

@@ -1,32 +0,0 @@
// import { omit } from 'lodash';
// import { Inject, Service } from 'typedi';
// import { IManualJournal } from '@/interfaces';
// import { BranchesSettings } from '../../BranchesSettings';
// @Service()
// export class ManualJournalBranchesDTOTransformer {
// @Inject()
// branchesSettings: BranchesSettings;
// private excludeDTOBranchIdWhenInactive = (
// tenantId: number,
// DTO: IManualJournal
// ): IManualJournal => {
// const isActive = this.branchesSettings.isMultiBranchesActive(tenantId);
// if (isActive) return DTO;
// return {
// ...DTO,
// entries: DTO.entries.map((e) => omit(e, ['branchId'])),
// };
// };
// /**
// *
// */
// public transformDTO =
// (tenantId: number) =>
// (DTO: IManualJournal): IManualJournal => {
// return this.excludeDTOBranchIdWhenInactive(tenantId, DTO);
// };
// }