feat: wip categorized transactions

This commit is contained in:
Ahmed Bouhuolia
2024-03-04 21:01:36 +02:00
parent f23e8d98f6
commit 68f2f4ee84
12 changed files with 115 additions and 30 deletions

View File

@@ -90,7 +90,7 @@ export class PlaidSyncDb {
tenantId,
uncategoriedDTO
),
{ concurrency: CONCURRENCY_ASYNC }
{ concurrency: 1 }
);
}

View File

@@ -44,8 +44,9 @@ export const transformPlaidTrxsToCashflowCreate = R.curry(
): CreateUncategorizedTransactionDTO => {
return {
date: plaidTranasction.date,
description: plaidTranasction.name,
amount: plaidTranasction.amount,
description: plaidTranasction.name,
payee: plaidTranasction.payment_meta?.payee,
currencyCode: plaidTranasction.iso_currency_code,
accountId: cashflowAccountId,
referenceNo: plaidTranasction.payment_meta?.reference_number,

View File

@@ -1,6 +1,6 @@
import { Inject, Service } from 'typedi';
import HasTenancyService from '../Tenancy/TenancyService';
import UnitOfWork from '../UnitOfWork';
import UnitOfWork, { IsolationLevel } from '../UnitOfWork';
import { Knex } from 'knex';
import { CreateUncategorizedTransactionDTO } from '@/interfaces';
@@ -21,15 +21,20 @@ export class CreateUncategorizedTransaction {
tenantId: number,
createDTO: CreateUncategorizedTransactionDTO
) {
const { UncategorizedCashflowTransaction } = this.tenancy.models(tenantId);
const { UncategorizedCashflowTransaction, Account } =
this.tenancy.models(tenantId);
return this.uow.withTransaction(tenantId, async (trx: Knex.Transaction) => {
const transaction = await UncategorizedCashflowTransaction.query(
trx
).insertAndFetch({
...createDTO,
});
return transaction;
});
return this.uow.withTransaction(
tenantId,
async (trx: Knex.Transaction) => {
const transaction = await UncategorizedCashflowTransaction.query(
trx
).insertAndFetch({
...createDTO,
});
return transaction;
},
);
}
}

View File

@@ -29,9 +29,12 @@ export class UncategorizedTransactionTransformer extends Transformer {
* @returns {string}
*/
protected formattetDepositAmount(transaction) {
return formatNumber(transaction.deposit, {
currencyCode: transaction.currencyCode,
});
if (transaction.isDepositTransaction) {
return formatNumber(transaction.deposit, {
currencyCode: transaction.currencyCode,
});
}
return '';
}
/**
@@ -40,8 +43,11 @@ export class UncategorizedTransactionTransformer extends Transformer {
* @returns {string}
*/
protected formattedWithdrawalAmount(transaction) {
return formatNumber(transaction.withdrawal, {
currencyCode: transaction.currencyCode,
});
if (transaction.isWithdrawalTransaction) {
return formatNumber(transaction.withdrawal, {
currencyCode: transaction.currencyCode,
});
}
return '';
}
}