mirror of
https://github.com/mayswind/ezbookkeeping.git
synced 2026-05-20 01:34:24 +08:00
show transaction date time in current timezone when hover over the transaction time
This commit is contained in:
@@ -7,6 +7,7 @@ import { useAccountsStore } from '@/stores/account.ts';
|
|||||||
import { useTransactionCategoriesStore } from '@/stores/transactionCategory.ts';
|
import { useTransactionCategoriesStore } from '@/stores/transactionCategory.ts';
|
||||||
|
|
||||||
import type { TypeAndDisplayName } from '@/core/base.ts';
|
import type { TypeAndDisplayName } from '@/core/base.ts';
|
||||||
|
import type { NumeralSystem } from '@/core/numeral.ts';
|
||||||
import type { WeekDayValue } from '@/core/datetime.ts';
|
import type { WeekDayValue } from '@/core/datetime.ts';
|
||||||
import { TimezoneTypeForStatistics } from '@/core/timezone.ts';
|
import { TimezoneTypeForStatistics } from '@/core/timezone.ts';
|
||||||
import { TransactionType } from '@/core/transaction.ts';
|
import { TransactionType } from '@/core/transaction.ts';
|
||||||
@@ -36,6 +37,7 @@ export function useReconciliationStatementPageBase() {
|
|||||||
getAllAccountBalanceTrendChartTypes,
|
getAllAccountBalanceTrendChartTypes,
|
||||||
getAllStatisticsDateAggregationTypesWithShortName,
|
getAllStatisticsDateAggregationTypesWithShortName,
|
||||||
getAllTimezoneTypesUsedForStatistics,
|
getAllTimezoneTypesUsedForStatistics,
|
||||||
|
getCurrentNumeralSystemType,
|
||||||
formatDateTimeToLongDateTime,
|
formatDateTimeToLongDateTime,
|
||||||
formatDateTimeToLongDate,
|
formatDateTimeToLongDate,
|
||||||
formatDateTimeToShortTime,
|
formatDateTimeToShortTime,
|
||||||
@@ -55,6 +57,7 @@ export function useReconciliationStatementPageBase() {
|
|||||||
const chartDataDateAggregationType = ref<number>(ChartDateAggregationType.Day.type);
|
const chartDataDateAggregationType = ref<number>(ChartDateAggregationType.Day.type);
|
||||||
const timezoneUsedForDateRange = ref<number>(TimezoneTypeForStatistics.ApplicationTimezone.type);
|
const timezoneUsedForDateRange = ref<number>(TimezoneTypeForStatistics.ApplicationTimezone.type);
|
||||||
|
|
||||||
|
const numeralSystem = computed<NumeralSystem>(() => getCurrentNumeralSystemType());
|
||||||
const firstDayOfWeek = computed<WeekDayValue>(() => userStore.currentUserFirstDayOfWeek);
|
const firstDayOfWeek = computed<WeekDayValue>(() => userStore.currentUserFirstDayOfWeek);
|
||||||
const fiscalYearStart = computed<number>(() => userStore.currentUserFiscalYearStart);
|
const fiscalYearStart = computed<number>(() => userStore.currentUserFiscalYearStart);
|
||||||
const defaultCurrency = computed<string>(() => userStore.currentUserDefaultCurrency);
|
const defaultCurrency = computed<string>(() => userStore.currentUserDefaultCurrency);
|
||||||
@@ -188,6 +191,13 @@ export function useReconciliationStatementPageBase() {
|
|||||||
return `UTC${getUtcOffsetByUtcOffsetMinutes(transaction.utcOffset)}`;
|
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 {
|
function getDisplaySourceAmount(transaction: TransactionReconciliationStatementResponseItemWithInfo): string {
|
||||||
const currency = transaction.sourceAccount?.currency ?? defaultCurrency.value;
|
const currency = transaction.sourceAccount?.currency ?? defaultCurrency.value;
|
||||||
return formatAmountToLocalizedNumeralsWithCurrency(transaction.sourceAmount, currency);
|
return formatAmountToLocalizedNumeralsWithCurrency(transaction.sourceAmount, currency);
|
||||||
@@ -320,6 +330,7 @@ export function useReconciliationStatementPageBase() {
|
|||||||
getDisplayTime,
|
getDisplayTime,
|
||||||
isSameAsDefaultTimezoneOffsetMinutes,
|
isSameAsDefaultTimezoneOffsetMinutes,
|
||||||
getDisplayTimezone,
|
getDisplayTimezone,
|
||||||
|
getDisplayTimeInDefaultTimezone,
|
||||||
getDisplaySourceAmount,
|
getDisplaySourceAmount,
|
||||||
getDisplayDestinationAmount,
|
getDisplayDestinationAmount,
|
||||||
getDisplayAccountBalance,
|
getDisplayAccountBalance,
|
||||||
|
|||||||
@@ -158,6 +158,7 @@
|
|||||||
<span>{{ getDisplayDateTime(item) }}</span>
|
<span>{{ getDisplayDateTime(item) }}</span>
|
||||||
<v-chip class="ms-1" variant="flat" color="secondary" size="x-small"
|
<v-chip class="ms-1" variant="flat" color="secondary" size="x-small"
|
||||||
v-if="!isSameAsDefaultTimezoneOffsetMinutes(item)">{{ getDisplayTimezone(item) }}</v-chip>
|
v-if="!isSameAsDefaultTimezoneOffsetMinutes(item)">{{ getDisplayTimezone(item) }}</v-chip>
|
||||||
|
<v-tooltip activator="parent" v-if="!isSameAsDefaultTimezoneOffsetMinutes(item)">{{ getDisplayTimeInDefaultTimezone(item) }}</v-tooltip>
|
||||||
</template>
|
</template>
|
||||||
<template #item.type="{ item }">
|
<template #item.type="{ item }">
|
||||||
<v-chip label variant="outlined" size="x-small"
|
<v-chip label variant="outlined" size="x-small"
|
||||||
@@ -358,6 +359,7 @@ const {
|
|||||||
getDisplayDateTime,
|
getDisplayDateTime,
|
||||||
isSameAsDefaultTimezoneOffsetMinutes,
|
isSameAsDefaultTimezoneOffsetMinutes,
|
||||||
getDisplayTimezone,
|
getDisplayTimezone,
|
||||||
|
getDisplayTimeInDefaultTimezone,
|
||||||
getDisplaySourceAmount,
|
getDisplaySourceAmount,
|
||||||
getDisplayDestinationAmount,
|
getDisplayDestinationAmount,
|
||||||
getDisplayAccountBalance,
|
getDisplayAccountBalance,
|
||||||
|
|||||||
Reference in New Issue
Block a user