mirror of
https://github.com/bigcapitalhq/bigcapital.git
synced 2026-02-20 06:40:31 +00:00
refactor: tenant proxy providers
This commit is contained in:
@@ -11,9 +11,12 @@ import { BankRulesModule } from '../BankRules/BankRules.module';
|
||||
const models = [RegisterTenancyModel(RecognizedBankTransaction)];
|
||||
|
||||
@Module({
|
||||
imports: [BankingTransactionsModule, forwardRef(() => BankRulesModule)],
|
||||
providers: [
|
||||
imports: [
|
||||
BankingTransactionsModule,
|
||||
forwardRef(() => BankRulesModule),
|
||||
...models,
|
||||
],
|
||||
providers: [
|
||||
GetAutofillCategorizeTransactionService,
|
||||
RevertRecognizedTransactionsService,
|
||||
RecognizeTranasctionsService,
|
||||
|
||||
@@ -8,18 +8,23 @@ import { BankRule } from '@/modules/BankRules/models/BankRule';
|
||||
import { RecognizedBankTransaction } from '../models/RecognizedBankTransaction';
|
||||
import { UncategorizedBankTransaction } from '@/modules/BankingTransactions/models/UncategorizedBankTransaction';
|
||||
import { transformToMapBy } from '@/utils/transform-to-map-by';
|
||||
import { TenantModelProxy } from '@/modules/System/models/TenantBaseModel';
|
||||
|
||||
@Injectable()
|
||||
export class RecognizeTranasctionsService {
|
||||
constructor(
|
||||
@Inject(UncategorizedBankTransaction.name)
|
||||
private readonly uncategorizedCashflowTransactionModel: typeof UncategorizedBankTransaction,
|
||||
private readonly uncategorizedCashflowTransactionModel: TenantModelProxy<
|
||||
typeof UncategorizedBankTransaction
|
||||
>,
|
||||
|
||||
@Inject(RecognizedBankTransaction.name)
|
||||
private readonly recognizedBankTransactionModel: typeof RecognizedBankTransaction,
|
||||
private readonly recognizedBankTransactionModel: TenantModelProxy<
|
||||
typeof RecognizedBankTransaction
|
||||
>,
|
||||
|
||||
@Inject(BankRule.name)
|
||||
private readonly bankRuleModel: typeof BankRule,
|
||||
private readonly bankRuleModel: TenantModelProxy<typeof BankRule>,
|
||||
) {}
|
||||
|
||||
/**
|
||||
@@ -33,7 +38,7 @@ export class RecognizeTranasctionsService {
|
||||
transaction: UncategorizedBankTransaction,
|
||||
trx?: Knex.Transaction,
|
||||
) {
|
||||
const recognizedTransaction = await this.recognizedBankTransactionModel
|
||||
const recognizedTransaction = await this.recognizedBankTransactionModel()
|
||||
.query(trx)
|
||||
.insert({
|
||||
bankRuleId: bankRule.id,
|
||||
@@ -43,7 +48,8 @@ export class RecognizeTranasctionsService {
|
||||
assignedPayee: bankRule.assignPayee,
|
||||
assignedMemo: bankRule.assignMemo,
|
||||
});
|
||||
await this.uncategorizedCashflowTransactionModel
|
||||
|
||||
await this.uncategorizedCashflowTransactionModel()
|
||||
.query(trx)
|
||||
.findById(transaction.id)
|
||||
.patch({
|
||||
@@ -52,7 +58,7 @@ export class RecognizeTranasctionsService {
|
||||
}
|
||||
|
||||
/**
|
||||
* Regonized the uncategorized transactions.
|
||||
* Recognized the uncategorized transactions.
|
||||
* @param {number|Array<number>} ruleId - The target rule id/ids.
|
||||
* @param {RecognizeTransactionsCriteria}
|
||||
* @param {Knex.Transaction} trx -
|
||||
@@ -63,7 +69,7 @@ export class RecognizeTranasctionsService {
|
||||
trx?: Knex.Transaction,
|
||||
) {
|
||||
const uncategorizedTranasctions =
|
||||
await this.uncategorizedCashflowTransactionModel
|
||||
await this.uncategorizedCashflowTransactionModel()
|
||||
.query(trx)
|
||||
.onBuild((query) => {
|
||||
query.modify('notRecognized');
|
||||
@@ -78,14 +84,17 @@ export class RecognizeTranasctionsService {
|
||||
}
|
||||
});
|
||||
|
||||
const bankRules = await this.bankRuleModel.query(trx).onBuild((q) => {
|
||||
const rulesIds = !isEmpty(ruleId) ? castArray(ruleId) : [];
|
||||
const bankRules = await this.bankRuleModel()
|
||||
.query(trx)
|
||||
.onBuild((q) => {
|
||||
const rulesIds = !isEmpty(ruleId) ? castArray(ruleId) : [];
|
||||
|
||||
if (rulesIds?.length > 0) {
|
||||
q.whereIn('id', rulesIds);
|
||||
}
|
||||
q.withGraphFetched('conditions');
|
||||
});
|
||||
|
||||
if (rulesIds?.length > 0) {
|
||||
q.whereIn('id', rulesIds);
|
||||
}
|
||||
q.withGraphFetched('conditions');
|
||||
});
|
||||
const bankRulesByAccountId = transformToMapBy(
|
||||
bankRules,
|
||||
'applyIfAccountId',
|
||||
|
||||
@@ -3,6 +3,7 @@ import { castArray, first, uniq } from 'lodash';
|
||||
import { GetAutofillCategorizeTransctionTransformer } from './GetAutofillCategorizeTransactionTransformer';
|
||||
import { UncategorizedBankTransaction } from '@/modules/BankingTransactions/models/UncategorizedBankTransaction';
|
||||
import { TransformerInjectable } from '@/modules/Transformer/TransformerInjectable.service';
|
||||
import { TenantModelProxy } from '@/modules/System/models/TenantBaseModel';
|
||||
|
||||
@Injectable()
|
||||
export class GetAutofillCategorizeTransactionService {
|
||||
@@ -10,7 +11,9 @@ export class GetAutofillCategorizeTransactionService {
|
||||
private readonly transformer: TransformerInjectable,
|
||||
|
||||
@Inject(UncategorizedBankTransaction.name)
|
||||
private readonly uncategorizedBankTransactionModel: typeof UncategorizedBankTransaction,
|
||||
private readonly uncategorizedBankTransactionModel: TenantModelProxy<
|
||||
typeof UncategorizedBankTransaction
|
||||
>,
|
||||
) {}
|
||||
|
||||
/**
|
||||
@@ -18,13 +21,14 @@ export class GetAutofillCategorizeTransactionService {
|
||||
* @param {Array<number> | number} uncategorizeTransactionsId - Uncategorized transactions ids.
|
||||
*/
|
||||
public async getAutofillCategorizeTransaction(
|
||||
uncategorizeTransactionsId: Array<number> | number
|
||||
uncategorizeTransactionsId: Array<number> | number,
|
||||
) {
|
||||
const uncategorizeTransactionsIds = uniq(
|
||||
castArray(uncategorizeTransactionsId)
|
||||
castArray(uncategorizeTransactionsId),
|
||||
);
|
||||
const uncategorizedTransactions =
|
||||
await this.uncategorizedBankTransactionModel.query()
|
||||
await this.uncategorizedBankTransactionModel()
|
||||
.query()
|
||||
.whereIn('id', uncategorizeTransactionsIds)
|
||||
.withGraphFetched('recognizedTransaction.assignAccount')
|
||||
.withGraphFetched('recognizedTransaction.bankRule')
|
||||
@@ -36,7 +40,7 @@ export class GetAutofillCategorizeTransactionService {
|
||||
{
|
||||
uncategorizedTransactions,
|
||||
firstUncategorizedTransaction: first(uncategorizedTransactions),
|
||||
}
|
||||
},
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user