From e90b76c80ede9bf6e38ba66368711e90978898fd Mon Sep 17 00:00:00 2001 From: MaysWind Date: Sun, 3 Aug 2025 14:27:34 +0800 Subject: [PATCH] code refactor --- .../ReconciliationStatementPageBase.ts | 33 +++++++++++-------- .../dialogs/ReconciliationStatementDialog.vue | 25 ++++++++++---- 2 files changed, 38 insertions(+), 20 deletions(-) diff --git a/src/views/base/accounts/ReconciliationStatementPageBase.ts b/src/views/base/accounts/ReconciliationStatementPageBase.ts index d3c09e49..a8282b4c 100644 --- a/src/views/base/accounts/ReconciliationStatementPageBase.ts +++ b/src/views/base/accounts/ReconciliationStatementPageBase.ts @@ -111,6 +111,24 @@ export function useReconciliationStatementPageBase() { } }); + function getDisplayTransactionType(transaction: TransactionReconciliationStatementResponseItem): string { + if (transaction.type === TransactionType.ModifyBalance) { + return tt('Modify Balance'); + } else if (transaction.type === TransactionType.Income) { + return tt('Income'); + } else if (transaction.type === TransactionType.Expense) { + return tt('Expense'); + } else if (transaction.type === TransactionType.Transfer && transaction.destinationAccountId === accountId.value) { + return tt('Transfer In'); + } else if (transaction.type === TransactionType.Transfer && transaction.sourceAccountId === accountId.value) { + return tt('Transfer Out'); + } else if (transaction.type === TransactionType.Transfer) { + return tt('Transfer'); + } else { + return tt('Unknown'); + } + } + function getDisplayDateTime(transaction: TransactionReconciliationStatementResponseItem): string { const transactionTime = getUnixTime(parseDateFromUnixTime(transaction.time, transaction.utcOffset, currentTimezoneOffsetMinutes.value)); return formatUnixTimeToLongDateTime(transactionTime); @@ -192,27 +210,15 @@ export function useReconciliationStatementPageBase() { const transactions = reconciliationStatements.value?.transactions ?? []; const rows = transactions.map(transaction => { const transactionTime = getUnixTime(parseDateFromUnixTime(transaction.time, transaction.utcOffset, currentTimezoneOffsetMinutes.value)); - let type = ''; + let type = getDisplayTransactionType(transaction); let categoryName = allCategoriesMap.value[transaction.categoryId]?.name || ''; let displayAmount = removeAll(formatAmount(transaction.sourceAmount), digitGroupingSymbol); let displayAccountName = allAccountsMap.value[transaction.sourceAccountId]?.name || ''; if (transaction.type === TransactionType.ModifyBalance) { - type = tt('Modify Balance'); categoryName = tt('Modify Balance'); - } else if (transaction.type === TransactionType.Income) { - type = tt('Income'); - } else if (transaction.type === TransactionType.Expense) { - type = tt('Expense'); } else if (transaction.type === TransactionType.Transfer && transaction.destinationAccountId === accountId.value) { - type = tt('Transfer In'); displayAmount = removeAll(formatAmount(transaction.destinationAmount), digitGroupingSymbol); - } else if (transaction.type === TransactionType.Transfer && transaction.sourceAccountId === accountId.value) { - type = tt('Transfer Out'); - } else if (transaction.type === TransactionType.Transfer) { - type = tt('Transfer'); - } else { - type = tt('Unknown'); } if (transaction.type === TransactionType.Transfer && allAccountsMap.value[transaction.destinationAccountId]) { @@ -274,6 +280,7 @@ export function useReconciliationStatementPageBase() { displayOpeningBalance, displayClosingBalance, // functions + getDisplayTransactionType, getDisplayDateTime, getDisplayDate, getDisplayTime, diff --git a/src/views/desktop/accounts/list/dialogs/ReconciliationStatementDialog.vue b/src/views/desktop/accounts/list/dialogs/ReconciliationStatementDialog.vue index cfa399ce..24a802f9 100644 --- a/src/views/desktop/accounts/list/dialogs/ReconciliationStatementDialog.vue +++ b/src/views/desktop/accounts/list/dialogs/ReconciliationStatementDialog.vue @@ -116,13 +116,9 @@ v-if="item.utcOffset !== currentTimezoneOffsetMinutes">{{ getDisplayTimezone(item) }}