feat: get bank account meta summary

This commit is contained in:
Ahmed Bouhuolia
2024-07-02 19:21:26 +02:00
parent 8a09de9771
commit 91730d204e
22 changed files with 476 additions and 69 deletions

View File

@@ -32,11 +32,16 @@ export class GetUncategorizedTransactions {
};
const { results, pagination } =
await UncategorizedCashflowTransaction.query()
.where('accountId', accountId)
.where('categorized', false)
.modify('notExcluded')
.withGraphFetched('account')
.orderBy('date', 'DESC')
.onBuild((q) => {
q.where('accountId', accountId);
q.where('categorized', false);
q.modify('notExcluded');
q.withGraphFetched('account');
q.withGraphFetched('recognizedTransaction.assignAccount');
q.orderBy('date', 'DESC');
})
.pagination(_query.page - 1, _query.pageSize);
const data = await this.transformer.transform(

View File

@@ -12,9 +12,25 @@ export class UncategorizedTransactionTransformer extends Transformer {
'formattedDate',
'formattedDepositAmount',
'formattedWithdrawalAmount',
'assignedAccountId',
'assignedAccountName',
'assignedAccountCode',
'assignedPayee',
'assignedMemo',
'assignedCategory',
'assignedCategoryFormatted',
];
};
/**
* Exclude all attributes.
* @returns {Array<string>}
*/
public excludeAttributes = (): string[] => {
return ['recognizedTransaction'];
};
/**
* Formattes the transaction date.
* @param transaction
@@ -26,7 +42,7 @@ export class UncategorizedTransactionTransformer extends Transformer {
/**
* Formatted amount.
* @param transaction
* @param transaction
* @returns {string}
*/
public formattedAmount(transaction) {
@@ -62,4 +78,69 @@ export class UncategorizedTransactionTransformer extends Transformer {
}
return '';
}
// --------------------------------------------------------
// # Recgonized transaction
// --------------------------------------------------------
/**
* Get the assigned account ID of the transaction.
* @param {object} transaction
* @returns {number}
*/
public assignedAccountId(transaction: any): number {
return transaction.recognizedTransaction?.assignedAccountId;
}
/**
* Get the assigned account name of the transaction.
* @param {object} transaction
* @returns {string}
*/
public assignedAccountName(transaction: any): string {
return transaction.recognizedTransaction?.assignAccount?.name;
}
/**
* Get the assigned account code of the transaction.
* @param {object} transaction
* @returns {string}
*/
public assignedAccountCode(transaction: any): string {
return transaction.recognizedTransaction?.assignAccount?.code;
}
/**
* Get the assigned payee of the transaction.
* @param {object} transaction
* @returns {string}
*/
public getAssignedPayee(transaction: any): string {
return transaction.recognizedTransaction?.assignedPayee;
}
/**
* Get the assigned memo of the transaction.
* @param {object} transaction
* @returns {string}
*/
public assignedMemo(transaction: any): string {
return transaction.recognizedTransaction?.assignedMemo;
}
/**
* Get the assigned category of the transaction.
* @param {object} transaction
* @returns {string}
*/
public assignedCategory(transaction: any): string {
return transaction.recognizedTransaction?.assignedCategory;
}
/**
* Get the assigned formatted category.
* @returns {string}
*/
public assignedCategoryFormatted() {
return 'Other Income';
}
}