diff --git a/src/views/base/accounts/ReconciliationStatementPageBase.ts b/src/views/base/accounts/ReconciliationStatementPageBase.ts index 074d8779..95b0af17 100644 --- a/src/views/base/accounts/ReconciliationStatementPageBase.ts +++ b/src/views/base/accounts/ReconciliationStatementPageBase.ts @@ -7,6 +7,7 @@ import { useAccountsStore } from '@/stores/account.ts'; import { useTransactionCategoriesStore } from '@/stores/transactionCategory.ts'; import type { TypeAndDisplayName } from '@/core/base.ts'; +import type { NumeralSystem } from '@/core/numeral.ts'; import type { WeekDayValue } from '@/core/datetime.ts'; import { TimezoneTypeForStatistics } from '@/core/timezone.ts'; import { TransactionType } from '@/core/transaction.ts'; @@ -36,6 +37,7 @@ export function useReconciliationStatementPageBase() { getAllAccountBalanceTrendChartTypes, getAllStatisticsDateAggregationTypesWithShortName, getAllTimezoneTypesUsedForStatistics, + getCurrentNumeralSystemType, formatDateTimeToLongDateTime, formatDateTimeToLongDate, formatDateTimeToShortTime, @@ -55,6 +57,7 @@ export function useReconciliationStatementPageBase() { const chartDataDateAggregationType = ref(ChartDateAggregationType.Day.type); const timezoneUsedForDateRange = ref(TimezoneTypeForStatistics.ApplicationTimezone.type); + const numeralSystem = computed(() => getCurrentNumeralSystemType()); const firstDayOfWeek = computed(() => userStore.currentUserFirstDayOfWeek); const fiscalYearStart = computed(() => userStore.currentUserFiscalYearStart); const defaultCurrency = computed(() => userStore.currentUserDefaultCurrency); @@ -188,6 +191,13 @@ export function useReconciliationStatementPageBase() { return `UTC${getUtcOffsetByUtcOffsetMinutes(transaction.utcOffset)}`; } + function getDisplayTimeInDefaultTimezone(transaction: TransactionReconciliationStatementResponseItemWithInfo): string { + const timezoneOffsetMinutes = getTimezoneOffsetMinutes(transaction.time); + const dateTime = parseDateTimeFromUnixTimeWithTimezoneOffset(transaction.time, timezoneOffsetMinutes); + const utcOffset = numeralSystem.value.replaceWesternArabicDigitsToLocalizedDigits(getUtcOffsetByUtcOffsetMinutes(timezoneOffsetMinutes)); + return `${formatDateTimeToLongDateTime(dateTime)} (UTC${utcOffset})`; + } + function getDisplaySourceAmount(transaction: TransactionReconciliationStatementResponseItemWithInfo): string { const currency = transaction.sourceAccount?.currency ?? defaultCurrency.value; return formatAmountToLocalizedNumeralsWithCurrency(transaction.sourceAmount, currency); @@ -320,6 +330,7 @@ export function useReconciliationStatementPageBase() { getDisplayTime, isSameAsDefaultTimezoneOffsetMinutes, getDisplayTimezone, + getDisplayTimeInDefaultTimezone, getDisplaySourceAmount, getDisplayDestinationAmount, getDisplayAccountBalance, diff --git a/src/views/desktop/accounts/list/dialogs/ReconciliationStatementDialog.vue b/src/views/desktop/accounts/list/dialogs/ReconciliationStatementDialog.vue index 562546a8..412b4aab 100644 --- a/src/views/desktop/accounts/list/dialogs/ReconciliationStatementDialog.vue +++ b/src/views/desktop/accounts/list/dialogs/ReconciliationStatementDialog.vue @@ -158,6 +158,7 @@ {{ getDisplayDateTime(item) }} {{ getDisplayTimezone(item) }} + {{ getDisplayTimeInDefaultTimezone(item) }}