fix: filter the uncategorized transactions out of matched transactions

This commit is contained in:
Ahmed Bouhuolia
2024-07-03 17:23:12 +02:00
parent 91730d204e
commit 67b519db61
19 changed files with 98 additions and 91 deletions

View File

@@ -1,4 +1,5 @@
import { Inject, Service } from 'typedi';
import { initialize } from 'objection';
import HasTenancyService from '../Tenancy/TenancyService';
import { TransformerInjectable } from '@/lib/Transformer/TransformerInjectable';
import { UncategorizedTransactionTransformer } from './UncategorizedTransactionTransformer';
@@ -22,7 +23,13 @@ export class GetUncategorizedTransactions {
accountId: number,
query: IGetUncategorizedTransactionsQuery
) {
const { UncategorizedCashflowTransaction } = this.tenancy.models(tenantId);
const {
UncategorizedCashflowTransaction,
RecognizedBankTransaction,
MatchedBankTransaction,
Account,
} = this.tenancy.models(tenantId);
const knex = this.tenancy.knex(tenantId);
// Parsed query with default values.
const _query = {
@@ -30,6 +37,15 @@ export class GetUncategorizedTransactions {
pageSize: 20,
...query,
};
// Initialize the ORM models metadata.
await initialize(knex, [
UncategorizedCashflowTransaction,
MatchedBankTransaction,
RecognizedBankTransaction,
Account,
]);
const { results, pagination } =
await UncategorizedCashflowTransaction.query()
.onBuild((q) => {
@@ -40,6 +56,9 @@ export class GetUncategorizedTransactions {
q.withGraphFetched('account');
q.withGraphFetched('recognizedTransaction.assignAccount');
q.withGraphJoined('matchedBankTransactions');
q.whereNull('matchedBankTransactions.id');
q.orderBy('date', 'DESC');
})
.pagination(_query.page - 1, _query.pageSize);