mirror of
https://github.com/mayswind/ezbookkeeping.git
synced 2026-05-20 17:54:30 +08:00
support credit card billing cycles as a time granularity option in the account balance trend chart on the account reconciliation statements page
This commit is contained in:
@@ -8,7 +8,8 @@ import {
|
|||||||
type YearUnixTime,
|
type YearUnixTime,
|
||||||
type YearQuarterUnixTime,
|
type YearQuarterUnixTime,
|
||||||
type YearMonthUnixTime,
|
type YearMonthUnixTime,
|
||||||
YearMonthDayUnixTime
|
YearMonthDayUnixTime,
|
||||||
|
DateRange
|
||||||
} from '@/core/datetime.ts';
|
} from '@/core/datetime.ts';
|
||||||
import type { FiscalYearUnixTime } from '@/core/fiscalyear.ts';
|
import type { FiscalYearUnixTime } from '@/core/fiscalyear.ts';
|
||||||
import { ChartDateAggregationType } from '@/core/statistics.ts';
|
import { ChartDateAggregationType } from '@/core/statistics.ts';
|
||||||
@@ -24,7 +25,9 @@ import {
|
|||||||
getQuarterFirstTimeTimeBySpecifiedUnixTime,
|
getQuarterFirstTimeTimeBySpecifiedUnixTime,
|
||||||
getMonthFirstDateTimeBySpecifiedUnixTime,
|
getMonthFirstDateTimeBySpecifiedUnixTime,
|
||||||
getDayFirstDateTimeBySpecifiedUnixTime,
|
getDayFirstDateTimeBySpecifiedUnixTime,
|
||||||
|
getBillingCycleLastUnixTimeBySpecifiedUnixTime,
|
||||||
getAllDaysStartAndEndUnixTimes,
|
getAllDaysStartAndEndUnixTimes,
|
||||||
|
getAllBillingCyclesStartAndEndUnixTimes,
|
||||||
getFiscalYearStartDateTime
|
getFiscalYearStartDateTime
|
||||||
} from '@/lib/datetime.ts';
|
} from '@/lib/datetime.ts';
|
||||||
import { TimezoneTypeForStatistics } from '@/core/timezone.ts';
|
import { TimezoneTypeForStatistics } from '@/core/timezone.ts';
|
||||||
@@ -43,6 +46,7 @@ export interface AccountBalanceTrendsChartItem {
|
|||||||
dateRangeKey: string;
|
dateRangeKey: string;
|
||||||
lastYearDateRangeKey: string;
|
lastYearDateRangeKey: string;
|
||||||
displayDate: string;
|
displayDate: string;
|
||||||
|
alternativeDisplayDate: string;
|
||||||
openingBalance: number;
|
openingBalance: number;
|
||||||
closingBalance: number;
|
closingBalance: number;
|
||||||
minimumBalance: number;
|
minimumBalance: number;
|
||||||
@@ -59,6 +63,7 @@ export interface CommonAccountBalanceTrendsChartProps {
|
|||||||
timezoneUsedForDateRange: number;
|
timezoneUsedForDateRange: number;
|
||||||
fiscalYearStart: number;
|
fiscalYearStart: number;
|
||||||
account: AccountInfoResponse;
|
account: AccountInfoResponse;
|
||||||
|
statementDate: number | undefined;
|
||||||
}
|
}
|
||||||
|
|
||||||
export function useAccountBalanceTrendsChartBase(props: CommonAccountBalanceTrendsChartProps) {
|
export function useAccountBalanceTrendsChartBase(props: CommonAccountBalanceTrendsChartProps) {
|
||||||
@@ -67,11 +72,12 @@ export function useAccountBalanceTrendsChartBase(props: CommonAccountBalanceTren
|
|||||||
formatDateTimeToGregorianLikeShortYear,
|
formatDateTimeToGregorianLikeShortYear,
|
||||||
formatDateTimeToGregorianLikeShortYearMonth,
|
formatDateTimeToGregorianLikeShortYearMonth,
|
||||||
formatDateTimeToGregorianLikeYearQuarter,
|
formatDateTimeToGregorianLikeYearQuarter,
|
||||||
formatDateTimeToGregorianLikeFiscalYear
|
formatDateTimeToGregorianLikeFiscalYear,
|
||||||
|
formatDateRange
|
||||||
} = useI18n();
|
} = useI18n();
|
||||||
|
|
||||||
const showYearOverYearOnTooltip = ref<boolean>(true);
|
const showYearOverYearOnTooltip = ref<boolean>(true);
|
||||||
const showPeriodOverPeriodOnTooltip = computed<boolean>(() => props.dateAggregationType === ChartDateAggregationType.Day.type || props.dateAggregationType === ChartDateAggregationType.Month.type || props.dateAggregationType === ChartDateAggregationType.Quarter.type);
|
const showPeriodOverPeriodOnTooltip = computed<boolean>(() => props.dateAggregationType === ChartDateAggregationType.Day.type || props.dateAggregationType === ChartDateAggregationType.Month.type || props.dateAggregationType === ChartDateAggregationType.Quarter.type || props.dateAggregationType === ChartDateAggregationType.BillingCycle.type);
|
||||||
|
|
||||||
const dataDateRange = computed<AccountBalanceUnixTimeAndBalanceRange | null>(() => {
|
const dataDateRange = computed<AccountBalanceUnixTimeAndBalanceRange | null>(() => {
|
||||||
if (!props.items || props.items.length < 1) {
|
if (!props.items || props.items.length < 1) {
|
||||||
@@ -116,6 +122,8 @@ export function useAccountBalanceTrendsChartBase(props: CommonAccountBalanceTren
|
|||||||
|
|
||||||
if (props.dateAggregationType === ChartDateAggregationType.Day.type) {
|
if (props.dateAggregationType === ChartDateAggregationType.Day.type) {
|
||||||
return getAllDaysStartAndEndUnixTimes(dataDateRange.value.minUnixTime, dataDateRange.value.maxUnixTime);
|
return getAllDaysStartAndEndUnixTimes(dataDateRange.value.minUnixTime, dataDateRange.value.maxUnixTime);
|
||||||
|
} else if (props.dateAggregationType === ChartDateAggregationType.BillingCycle.type) {
|
||||||
|
return getAllBillingCyclesStartAndEndUnixTimes(dataDateRange.value.minUnixTime, dataDateRange.value.maxUnixTime, props.statementDate ?? 1);
|
||||||
} else {
|
} else {
|
||||||
const startYearMonth = getGregorianCalendarYearAndMonthFromUnixTime(dataDateRange.value.minUnixTime);
|
const startYearMonth = getGregorianCalendarYearAndMonthFromUnixTime(dataDateRange.value.minUnixTime);
|
||||||
const endYearMonth = getGregorianCalendarYearAndMonthFromUnixTime(dataDateRange.value.maxUnixTime);
|
const endYearMonth = getGregorianCalendarYearAndMonthFromUnixTime(dataDateRange.value.maxUnixTime);
|
||||||
@@ -156,6 +164,9 @@ export function useAccountBalanceTrendsChartBase(props: CommonAccountBalanceTren
|
|||||||
} else if (props.dateAggregationType === ChartDateAggregationType.Day.type) {
|
} else if (props.dateAggregationType === ChartDateAggregationType.Day.type) {
|
||||||
minDateTime = getDayFirstDateTimeBySpecifiedUnixTime(dateItem.time, transactionTimeUtfOffset);
|
minDateTime = getDayFirstDateTimeBySpecifiedUnixTime(dateItem.time, transactionTimeUtfOffset);
|
||||||
displayDate = formatDateTimeToShortDate(minDateTime);
|
displayDate = formatDateTimeToShortDate(minDateTime);
|
||||||
|
} else if (props.dateAggregationType === ChartDateAggregationType.BillingCycle.type) {
|
||||||
|
minDateTime = getBillingCycleLastUnixTimeBySpecifiedUnixTime(dateItem.time, props.statementDate ?? 1, transactionTimeUtfOffset);
|
||||||
|
displayDate = formatDateTimeToGregorianLikeShortYearMonth(minDateTime);
|
||||||
} else {
|
} else {
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
@@ -179,6 +190,7 @@ export function useAccountBalanceTrendsChartBase(props: CommonAccountBalanceTren
|
|||||||
const minDateTime = parseDateTimeFromUnixTime(dateRange.minUnixTime);
|
const minDateTime = parseDateTimeFromUnixTime(dateRange.minUnixTime);
|
||||||
|
|
||||||
let displayDate = '';
|
let displayDate = '';
|
||||||
|
let alternativeDisplayDate = '';
|
||||||
|
|
||||||
if (props.dateAggregationType === ChartDateAggregationType.Year.type) {
|
if (props.dateAggregationType === ChartDateAggregationType.Year.type) {
|
||||||
displayDate = formatDateTimeToGregorianLikeShortYear(minDateTime);
|
displayDate = formatDateTimeToGregorianLikeShortYear(minDateTime);
|
||||||
@@ -190,6 +202,10 @@ export function useAccountBalanceTrendsChartBase(props: CommonAccountBalanceTren
|
|||||||
displayDate = formatDateTimeToGregorianLikeShortYearMonth(minDateTime);
|
displayDate = formatDateTimeToGregorianLikeShortYearMonth(minDateTime);
|
||||||
} else if (props.dateAggregationType === ChartDateAggregationType.Day.type) {
|
} else if (props.dateAggregationType === ChartDateAggregationType.Day.type) {
|
||||||
displayDate = formatDateTimeToShortDate(minDateTime);
|
displayDate = formatDateTimeToShortDate(minDateTime);
|
||||||
|
} else if (props.dateAggregationType === ChartDateAggregationType.BillingCycle.type) {
|
||||||
|
const maxDateTime = parseDateTimeFromUnixTime(dateRange.maxUnixTime);
|
||||||
|
displayDate = formatDateTimeToGregorianLikeShortYearMonth(maxDateTime);
|
||||||
|
alternativeDisplayDate = formatDateRange(DateRange.Custom.type, dateRange.minUnixTime, dateRange.maxUnixTime);
|
||||||
} else {
|
} else {
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
@@ -256,6 +272,7 @@ export function useAccountBalanceTrendsChartBase(props: CommonAccountBalanceTren
|
|||||||
dateRangeKey: dateRangeKey,
|
dateRangeKey: dateRangeKey,
|
||||||
lastYearDateRangeKey: lastYearDateRangeKey,
|
lastYearDateRangeKey: lastYearDateRangeKey,
|
||||||
displayDate: displayDate,
|
displayDate: displayDate,
|
||||||
|
alternativeDisplayDate: alternativeDisplayDate,
|
||||||
openingBalance: lastOpeningBalance,
|
openingBalance: lastOpeningBalance,
|
||||||
closingBalance: lastClosingBalance,
|
closingBalance: lastClosingBalance,
|
||||||
minimumBalance: lastMinimumBalance,
|
minimumBalance: lastMinimumBalance,
|
||||||
|
|||||||
@@ -211,6 +211,10 @@ const chartOptions = computed<object>(() => {
|
|||||||
let periodOverPeriodDataItemDisplayItems: NameNumeralValue[] | undefined = undefined;
|
let periodOverPeriodDataItemDisplayItems: NameNumeralValue[] | undefined = undefined;
|
||||||
let separatorLineIndex: number | undefined = undefined;
|
let separatorLineIndex: number | undefined = undefined;
|
||||||
|
|
||||||
|
if (dataItem.alternativeDisplayDate) {
|
||||||
|
header = dataItem.alternativeDisplayDate;
|
||||||
|
}
|
||||||
|
|
||||||
if (props.type === AccountBalanceTrendChartType.Boxplot.type) {
|
if (props.type === AccountBalanceTrendChartType.Boxplot.type) {
|
||||||
header += ` ${props.legendName}`;
|
header += ` ${props.legendName}`;
|
||||||
displayItems = getBoxplotChartTooltip(dataItem);
|
displayItems = getBoxplotChartTooltip(dataItem);
|
||||||
|
|||||||
@@ -27,7 +27,7 @@
|
|||||||
:key="item.index"
|
:key="item.index"
|
||||||
:style="`top: ${virtualDataItems.topPosition}px`"
|
:style="`top: ${virtualDataItems.topPosition}px`"
|
||||||
:virtual-list-index="item.index"
|
:virtual-list-index="item.index"
|
||||||
:title="item.displayDate"
|
:title="item.alternativeDisplayDate || item.displayDate"
|
||||||
:after="formatAmountToLocalizedNumeralsWithCurrency(item.closingBalance, account.currency)"
|
:after="formatAmountToLocalizedNumeralsWithCurrency(item.closingBalance, account.currency)"
|
||||||
v-for="item in virtualDataItems.items"
|
v-for="item in virtualDataItems.items"
|
||||||
>
|
>
|
||||||
@@ -99,6 +99,7 @@ const allVirtualListItems = computed<MobileAccountBalanceTrendsChartItem[]>(() =
|
|||||||
dateRangeKey: dataItem.dateRangeKey,
|
dateRangeKey: dataItem.dateRangeKey,
|
||||||
lastYearDateRangeKey: dataItem.lastYearDateRangeKey,
|
lastYearDateRangeKey: dataItem.lastYearDateRangeKey,
|
||||||
displayDate: dataItem.displayDate,
|
displayDate: dataItem.displayDate,
|
||||||
|
alternativeDisplayDate: dataItem.alternativeDisplayDate,
|
||||||
openingBalance: dataItem.openingBalance,
|
openingBalance: dataItem.openingBalance,
|
||||||
closingBalance: dataItem.closingBalance,
|
closingBalance: dataItem.closingBalance,
|
||||||
medianBalance: dataItem.medianBalance,
|
medianBalance: dataItem.medianBalance,
|
||||||
|
|||||||
@@ -236,6 +236,8 @@ export class ChartDateAggregationType {
|
|||||||
public static readonly Year = new ChartDateAggregationType(2, 'Yearly', 'Aggregate by Year', StatisticsAnalysisType.TrendAnalysis, StatisticsAnalysisType.AssetTrends);
|
public static readonly Year = new ChartDateAggregationType(2, 'Yearly', 'Aggregate by Year', StatisticsAnalysisType.TrendAnalysis, StatisticsAnalysisType.AssetTrends);
|
||||||
public static readonly FiscalYear = new ChartDateAggregationType(3, 'FiscalYearly', 'Aggregate by Fiscal Year', StatisticsAnalysisType.TrendAnalysis, StatisticsAnalysisType.AssetTrends);
|
public static readonly FiscalYear = new ChartDateAggregationType(3, 'FiscalYearly', 'Aggregate by Fiscal Year', StatisticsAnalysisType.TrendAnalysis, StatisticsAnalysisType.AssetTrends);
|
||||||
|
|
||||||
|
public static readonly BillingCycle = new ChartDateAggregationType(11, 'BillingCycle', 'Aggregate by Billing Cycle');
|
||||||
|
|
||||||
public static readonly Default = ChartDateAggregationType.Month;
|
public static readonly Default = ChartDateAggregationType.Month;
|
||||||
|
|
||||||
public readonly type: number;
|
public readonly type: number;
|
||||||
|
|||||||
@@ -890,6 +890,26 @@ export function getDayLastDateTimeBySpecifiedUnixTime(unixTime: number, utcOffse
|
|||||||
return getDayFirstDateTimeBySpecifiedUnixTime(unixTime, utcOffset).add(1, 'days').subtract(1, 'seconds');
|
return getDayFirstDateTimeBySpecifiedUnixTime(unixTime, utcOffset).add(1, 'days').subtract(1, 'seconds');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function getBillingCycleFirstUnixTimeBySpecifiedUnixTime(unixTime: number, statementDate: number, utcOffset?: number): DateTime {
|
||||||
|
let date = moment.unix(unixTime);
|
||||||
|
|
||||||
|
if (isNumber(utcOffset)) {
|
||||||
|
date = date.tz(getFixedTimezoneName(utcOffset));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (date.date() > statementDate) {
|
||||||
|
date = date.set({ date: statementDate + 1, hour: 0, minute: 0, second: 0, millisecond: 0 });
|
||||||
|
} else {
|
||||||
|
date = date.set({ date: statementDate, hour: 0, minute: 0, second: 0, millisecond: 0 }).add(-1, 'months').add(1, 'days');
|
||||||
|
}
|
||||||
|
|
||||||
|
return MomentDateTime.of(date);
|
||||||
|
}
|
||||||
|
|
||||||
|
export function getBillingCycleLastUnixTimeBySpecifiedUnixTime(unixTime: number, statementDate: number, utcOffset?: number): DateTime {
|
||||||
|
return getBillingCycleFirstUnixTimeBySpecifiedUnixTime(unixTime, statementDate, utcOffset).add(1, 'months').subtract(1, 'seconds');
|
||||||
|
}
|
||||||
|
|
||||||
export function getYearFirstUnixTime(year: number): number {
|
export function getYearFirstUnixTime(year: number): number {
|
||||||
return moment().set({ year: year, month: 0, date: 1, hour: 0, minute: 0, second: 0, millisecond: 0 }).unix();
|
return moment().set({ year: year, month: 0, date: 1, hour: 0, minute: 0, second: 0, millisecond: 0 }).unix();
|
||||||
}
|
}
|
||||||
@@ -1106,6 +1126,41 @@ export function getAllMonthsStartAndEndUnixTimes(startYearMonth: Year0BasedMonth
|
|||||||
return allYearMonthTimes;
|
return allYearMonthTimes;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function getAllBillingCyclesStartAndEndUnixTimes(startUnixTime: number, endUnixTime: number, statementDate: number): YearMonthUnixTime[] {
|
||||||
|
const allYearMonthTimes: YearMonthUnixTime[] = [];
|
||||||
|
|
||||||
|
if (!startUnixTime || !endUnixTime) {
|
||||||
|
return allYearMonthTimes;
|
||||||
|
}
|
||||||
|
|
||||||
|
let unixTime: number = startUnixTime;
|
||||||
|
|
||||||
|
while (unixTime <= endUnixTime) {
|
||||||
|
const currentDateTime = parseDateTimeFromUnixTime(unixTime);
|
||||||
|
let currentBillingCycleMinDateTime: DateTime;
|
||||||
|
|
||||||
|
if (currentDateTime.getGregorianCalendarDay() > statementDate) {
|
||||||
|
const currentMonthMinDateTime = getMonthFirstDateTimeBySpecifiedUnixTime(unixTime);
|
||||||
|
currentBillingCycleMinDateTime = currentMonthMinDateTime.add(statementDate, 'days');
|
||||||
|
} else {
|
||||||
|
const currentMonthMinDateTime = getMonthFirstDateTimeBySpecifiedUnixTime(unixTime);
|
||||||
|
const previousMonthMinDateTime = currentMonthMinDateTime.add(-1, 'months');
|
||||||
|
currentBillingCycleMinDateTime = previousMonthMinDateTime.add(statementDate, 'days');
|
||||||
|
}
|
||||||
|
|
||||||
|
const currentBillingCycleMaxDateTime = currentBillingCycleMinDateTime.add(1, 'months').subtract(1, 'seconds');
|
||||||
|
const yearMonth: Year0BasedMonth = {
|
||||||
|
year: currentBillingCycleMaxDateTime.getGregorianCalendarYear(),
|
||||||
|
month0base: currentBillingCycleMaxDateTime.getGregorianCalendarMonth() - 1
|
||||||
|
};
|
||||||
|
|
||||||
|
allYearMonthTimes.push(YearMonthUnixTime.of(yearMonth, currentBillingCycleMinDateTime.getUnixTime(), currentBillingCycleMaxDateTime.getUnixTime()));
|
||||||
|
unixTime = currentBillingCycleMaxDateTime.getUnixTime() + 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
return allYearMonthTimes;
|
||||||
|
}
|
||||||
|
|
||||||
export function getAllDaysStartAndEndUnixTimes(startUnixTime: number, endUnixTime: number): YearMonthDayUnixTime[] {
|
export function getAllDaysStartAndEndUnixTimes(startUnixTime: number, endUnixTime: number): YearMonthDayUnixTime[] {
|
||||||
const allYearMonthDayTimes: YearMonthDayUnixTime[] = [];
|
const allYearMonthDayTimes: YearMonthDayUnixTime[] = [];
|
||||||
|
|
||||||
|
|||||||
@@ -109,7 +109,7 @@ export function getDateRangeKeyWithYearOffset(dateRange: YearUnixTime | FiscalYe
|
|||||||
return (dateRange.year + (yearOffset ?? 0)).toString();
|
return (dateRange.year + (yearOffset ?? 0)).toString();
|
||||||
} else if (dateAggregationType === ChartDateAggregationType.Quarter.type && 'quarter' in dateRange) {
|
} else if (dateAggregationType === ChartDateAggregationType.Quarter.type && 'quarter' in dateRange) {
|
||||||
return `${dateRange.year + (yearOffset ?? 0)}-${dateRange.quarter}`;
|
return `${dateRange.year + (yearOffset ?? 0)}-${dateRange.quarter}`;
|
||||||
} else if (dateAggregationType === ChartDateAggregationType.Month.type && 'month0base' in dateRange) {
|
} else if ((dateAggregationType === ChartDateAggregationType.Month.type || dateAggregationType === ChartDateAggregationType.BillingCycle.type) && 'month0base' in dateRange) {
|
||||||
return `${dateRange.year + (yearOffset ?? 0)}-${dateRange.month0base + 1}`;
|
return `${dateRange.year + (yearOffset ?? 0)}-${dateRange.month0base + 1}`;
|
||||||
} else if (dateAggregationType === ChartDateAggregationType.Day.type && 'day' in dateRange) {
|
} else if (dateAggregationType === ChartDateAggregationType.Day.type && 'day' in dateRange) {
|
||||||
return `${dateRange.year + (yearOffset ?? 0)}-${dateRange.month}-${dateRange.day}`;
|
return `${dateRange.year + (yearOffset ?? 0)}-${dateRange.month}-${dateRange.day}`;
|
||||||
|
|||||||
+3
-1
@@ -294,7 +294,8 @@
|
|||||||
"Yearly": "Jährlich",
|
"Yearly": "Jährlich",
|
||||||
"Quarterly": "Vierteljährlich",
|
"Quarterly": "Vierteljährlich",
|
||||||
"Monthly": "Monatlich",
|
"Monthly": "Monatlich",
|
||||||
"Daily": "Täglich"
|
"Daily": "Täglich",
|
||||||
|
"BillingCycle": "Billing Cycle"
|
||||||
},
|
},
|
||||||
"numeral": {
|
"numeral": {
|
||||||
"Western Arabic Numerals": "Westlich-arabische Ziffern",
|
"Western Arabic Numerals": "Westlich-arabische Ziffern",
|
||||||
@@ -2210,6 +2211,7 @@
|
|||||||
"Aggregate by Quarter": "Nach Quartal aggregieren",
|
"Aggregate by Quarter": "Nach Quartal aggregieren",
|
||||||
"Aggregate by Year": "Nach Jahr aggregieren",
|
"Aggregate by Year": "Nach Jahr aggregieren",
|
||||||
"Aggregate by Fiscal Year": "Nach Geschäftsjahr aggregieren",
|
"Aggregate by Fiscal Year": "Nach Geschäftsjahr aggregieren",
|
||||||
|
"Aggregate by Billing Cycle": "Aggregate by Billing Cycle",
|
||||||
"Year-over-Year": "Jahresvergleich",
|
"Year-over-Year": "Jahresvergleich",
|
||||||
"Period-over-Period": "Periodenvergleich",
|
"Period-over-Period": "Periodenvergleich",
|
||||||
"Filter Accounts": "Konten filtern",
|
"Filter Accounts": "Konten filtern",
|
||||||
|
|||||||
+3
-1
@@ -294,7 +294,8 @@
|
|||||||
"Yearly": "Yearly",
|
"Yearly": "Yearly",
|
||||||
"Quarterly": "Quarterly",
|
"Quarterly": "Quarterly",
|
||||||
"Monthly": "Monthly",
|
"Monthly": "Monthly",
|
||||||
"Daily": "Daily"
|
"Daily": "Daily",
|
||||||
|
"BillingCycle": "Billing Cycle"
|
||||||
},
|
},
|
||||||
"numeral": {
|
"numeral": {
|
||||||
"Western Arabic Numerals": "Western Arabic Numerals",
|
"Western Arabic Numerals": "Western Arabic Numerals",
|
||||||
@@ -2210,6 +2211,7 @@
|
|||||||
"Aggregate by Quarter": "Aggregate by Quarter",
|
"Aggregate by Quarter": "Aggregate by Quarter",
|
||||||
"Aggregate by Year": "Aggregate by Year",
|
"Aggregate by Year": "Aggregate by Year",
|
||||||
"Aggregate by Fiscal Year": "Aggregate by Fiscal Year",
|
"Aggregate by Fiscal Year": "Aggregate by Fiscal Year",
|
||||||
|
"Aggregate by Billing Cycle": "Aggregate by Billing Cycle",
|
||||||
"Year-over-Year": "Year-over-Year",
|
"Year-over-Year": "Year-over-Year",
|
||||||
"Period-over-Period": "Period-over-Period",
|
"Period-over-Period": "Period-over-Period",
|
||||||
"Filter Accounts": "Filter Accounts",
|
"Filter Accounts": "Filter Accounts",
|
||||||
|
|||||||
+3
-1
@@ -294,7 +294,8 @@
|
|||||||
"Yearly": "Anual",
|
"Yearly": "Anual",
|
||||||
"Quarterly": "Trimestral",
|
"Quarterly": "Trimestral",
|
||||||
"Monthly": "Mensual",
|
"Monthly": "Mensual",
|
||||||
"Daily": "Diario"
|
"Daily": "Diario",
|
||||||
|
"BillingCycle": "Billing Cycle"
|
||||||
},
|
},
|
||||||
"numeral": {
|
"numeral": {
|
||||||
"Western Arabic Numerals": "Cifras Arábigas Occidentales",
|
"Western Arabic Numerals": "Cifras Arábigas Occidentales",
|
||||||
@@ -2210,6 +2211,7 @@
|
|||||||
"Aggregate by Quarter": "Agregado por Trimestre",
|
"Aggregate by Quarter": "Agregado por Trimestre",
|
||||||
"Aggregate by Year": "Agregado por Año",
|
"Aggregate by Year": "Agregado por Año",
|
||||||
"Aggregate by Fiscal Year": "Agregado por Año Fiscal",
|
"Aggregate by Fiscal Year": "Agregado por Año Fiscal",
|
||||||
|
"Aggregate by Billing Cycle": "Aggregate by Billing Cycle",
|
||||||
"Year-over-Year": "Year-over-Year",
|
"Year-over-Year": "Year-over-Year",
|
||||||
"Period-over-Period": "Period-over-Period",
|
"Period-over-Period": "Period-over-Period",
|
||||||
"Filter Accounts": "Filtrar cuentas",
|
"Filter Accounts": "Filtrar cuentas",
|
||||||
|
|||||||
+3
-1
@@ -294,7 +294,8 @@
|
|||||||
"Yearly": "Annuel",
|
"Yearly": "Annuel",
|
||||||
"Quarterly": "Trimestriel",
|
"Quarterly": "Trimestriel",
|
||||||
"Monthly": "Mensuel",
|
"Monthly": "Mensuel",
|
||||||
"Daily": "Quotidien"
|
"Daily": "Quotidien",
|
||||||
|
"BillingCycle": "Billing Cycle"
|
||||||
},
|
},
|
||||||
"numeral": {
|
"numeral": {
|
||||||
"Western Arabic Numerals": "Chiffres arabes occidentaux",
|
"Western Arabic Numerals": "Chiffres arabes occidentaux",
|
||||||
@@ -2210,6 +2211,7 @@
|
|||||||
"Aggregate by Quarter": "Agréger par trimestre",
|
"Aggregate by Quarter": "Agréger par trimestre",
|
||||||
"Aggregate by Year": "Agréger par année",
|
"Aggregate by Year": "Agréger par année",
|
||||||
"Aggregate by Fiscal Year": "Agréger par année fiscale",
|
"Aggregate by Fiscal Year": "Agréger par année fiscale",
|
||||||
|
"Aggregate by Billing Cycle": "Aggregate by Billing Cycle",
|
||||||
"Year-over-Year": "Year-over-Year",
|
"Year-over-Year": "Year-over-Year",
|
||||||
"Period-over-Period": "Period-over-Period",
|
"Period-over-Period": "Period-over-Period",
|
||||||
"Filter Accounts": "Filtrer les comptes",
|
"Filter Accounts": "Filtrer les comptes",
|
||||||
|
|||||||
+10
-3
@@ -634,7 +634,7 @@ export function useI18n() {
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
function getLocalizedChartDateAggregationTypeAndDisplayName(analysisType: StatisticsAnalysisType, fullName: boolean): TypeAndDisplayName[] {
|
function getLocalizedChartDateAggregationTypeAndDisplayName(analysisType: StatisticsAnalysisType, fullName: boolean, includeBillingCycle: boolean): TypeAndDisplayName[] {
|
||||||
const ret: TypeAndDisplayName[] = [];
|
const ret: TypeAndDisplayName[] = [];
|
||||||
const allTypes: ChartDateAggregationType[] = ChartDateAggregationType.values(analysisType);
|
const allTypes: ChartDateAggregationType[] = ChartDateAggregationType.values(analysisType);
|
||||||
|
|
||||||
@@ -645,6 +645,13 @@ export function useI18n() {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (includeBillingCycle) {
|
||||||
|
ret.push({
|
||||||
|
type: ChartDateAggregationType.BillingCycle.type,
|
||||||
|
displayName: t(fullName ? ChartDateAggregationType.BillingCycle.fullName : `granularity.${ChartDateAggregationType.BillingCycle.shortName}`)
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2432,8 +2439,8 @@ export function useI18n() {
|
|||||||
getAllAccountBalanceTrendChartTypes: () => getLocalizedDisplayNameAndType(AccountBalanceTrendChartType.values()),
|
getAllAccountBalanceTrendChartTypes: () => getLocalizedDisplayNameAndType(AccountBalanceTrendChartType.values()),
|
||||||
getAllStatisticsChartDataTypes: (analysisType: StatisticsAnalysisType, withDesktopOnlyChart?: boolean) => getLocalizedDisplayNameAndType(ChartDataType.values(analysisType, withDesktopOnlyChart)),
|
getAllStatisticsChartDataTypes: (analysisType: StatisticsAnalysisType, withDesktopOnlyChart?: boolean) => getLocalizedDisplayNameAndType(ChartDataType.values(analysisType, withDesktopOnlyChart)),
|
||||||
getAllStatisticsSortingTypes: (useAlternativeName?: boolean) => getLocalizedDisplayNameAndType(ChartSortingType.values(), useAlternativeName),
|
getAllStatisticsSortingTypes: (useAlternativeName?: boolean) => getLocalizedDisplayNameAndType(ChartSortingType.values(), useAlternativeName),
|
||||||
getAllStatisticsDateAggregationTypes: (analysisType: StatisticsAnalysisType) => getLocalizedChartDateAggregationTypeAndDisplayName(analysisType, true),
|
getAllStatisticsDateAggregationTypes: (analysisType: StatisticsAnalysisType, includeBillingCycle: boolean) => getLocalizedChartDateAggregationTypeAndDisplayName(analysisType, true, includeBillingCycle),
|
||||||
getAllStatisticsDateAggregationTypesWithShortName: (analysisType: StatisticsAnalysisType) => getLocalizedChartDateAggregationTypeAndDisplayName(analysisType, false),
|
getAllStatisticsDateAggregationTypesWithShortName: (analysisType: StatisticsAnalysisType, includeBillingCycle: boolean) => getLocalizedChartDateAggregationTypeAndDisplayName(analysisType, false, includeBillingCycle),
|
||||||
getAllTransactionEditScopeTypes: () => getLocalizedDisplayNameAndType(TransactionEditScopeType.values()),
|
getAllTransactionEditScopeTypes: () => getLocalizedDisplayNameAndType(TransactionEditScopeType.values()),
|
||||||
getAllTransactionQuickSaveButtonStyles: () => getLocalizedDisplayNameAndType(TransactionQuickSaveButtonStyle.values()),
|
getAllTransactionQuickSaveButtonStyles: () => getLocalizedDisplayNameAndType(TransactionQuickSaveButtonStyle.values()),
|
||||||
getAllTransactionQuickAddButtonActionTypes: () => getLocalizedDisplayNameAndType(TransactionQuickAddButtonActionType.values()),
|
getAllTransactionQuickAddButtonActionTypes: () => getLocalizedDisplayNameAndType(TransactionQuickAddButtonActionType.values()),
|
||||||
|
|||||||
+3
-1
@@ -294,7 +294,8 @@
|
|||||||
"Yearly": "Yearly",
|
"Yearly": "Yearly",
|
||||||
"Quarterly": "Quarterly",
|
"Quarterly": "Quarterly",
|
||||||
"Monthly": "Monthly",
|
"Monthly": "Monthly",
|
||||||
"Daily": "Daily"
|
"Daily": "Daily",
|
||||||
|
"BillingCycle": "Billing Cycle"
|
||||||
},
|
},
|
||||||
"numeral": {
|
"numeral": {
|
||||||
"Western Arabic Numerals": "Western Arabic Numerals",
|
"Western Arabic Numerals": "Western Arabic Numerals",
|
||||||
@@ -2210,6 +2211,7 @@
|
|||||||
"Aggregate by Quarter": "Aggrega per trimestre",
|
"Aggregate by Quarter": "Aggrega per trimestre",
|
||||||
"Aggregate by Year": "Aggrega per anno",
|
"Aggregate by Year": "Aggrega per anno",
|
||||||
"Aggregate by Fiscal Year": "Aggregate by Fiscal Year",
|
"Aggregate by Fiscal Year": "Aggregate by Fiscal Year",
|
||||||
|
"Aggregate by Billing Cycle": "Aggregate by Billing Cycle",
|
||||||
"Year-over-Year": "Year-over-Year",
|
"Year-over-Year": "Year-over-Year",
|
||||||
"Period-over-Period": "Period-over-Period",
|
"Period-over-Period": "Period-over-Period",
|
||||||
"Filter Accounts": "Filtra conti",
|
"Filter Accounts": "Filtra conti",
|
||||||
|
|||||||
+3
-1
@@ -294,7 +294,8 @@
|
|||||||
"Yearly": "Yearly",
|
"Yearly": "Yearly",
|
||||||
"Quarterly": "Quarterly",
|
"Quarterly": "Quarterly",
|
||||||
"Monthly": "Monthly",
|
"Monthly": "Monthly",
|
||||||
"Daily": "Daily"
|
"Daily": "Daily",
|
||||||
|
"BillingCycle": "Billing Cycle"
|
||||||
},
|
},
|
||||||
"numeral": {
|
"numeral": {
|
||||||
"Western Arabic Numerals": "Western Arabic Numerals",
|
"Western Arabic Numerals": "Western Arabic Numerals",
|
||||||
@@ -2210,6 +2211,7 @@
|
|||||||
"Aggregate by Quarter": "四半期ごとに集計",
|
"Aggregate by Quarter": "四半期ごとに集計",
|
||||||
"Aggregate by Year": "年ごとに集計",
|
"Aggregate by Year": "年ごとに集計",
|
||||||
"Aggregate by Fiscal Year": "Aggregate by Fiscal Year",
|
"Aggregate by Fiscal Year": "Aggregate by Fiscal Year",
|
||||||
|
"Aggregate by Billing Cycle": "Aggregate by Billing Cycle",
|
||||||
"Year-over-Year": "Year-over-Year",
|
"Year-over-Year": "Year-over-Year",
|
||||||
"Period-over-Period": "Period-over-Period",
|
"Period-over-Period": "Period-over-Period",
|
||||||
"Filter Accounts": "口座で絞り込み",
|
"Filter Accounts": "口座で絞り込み",
|
||||||
|
|||||||
+3
-1
@@ -294,7 +294,8 @@
|
|||||||
"Yearly": "ವಾರ್ಷಿಕ",
|
"Yearly": "ವಾರ್ಷಿಕ",
|
||||||
"Quarterly": "ತ್ರೈಮಾಸಿಕ",
|
"Quarterly": "ತ್ರೈಮಾಸಿಕ",
|
||||||
"Monthly": "ಮಾಸಿಕ",
|
"Monthly": "ಮಾಸಿಕ",
|
||||||
"Daily": "ದೈನಂದಿನ"
|
"Daily": "ದೈನಂದಿನ",
|
||||||
|
"BillingCycle": "Billing Cycle"
|
||||||
},
|
},
|
||||||
"numeral": {
|
"numeral": {
|
||||||
"Western Arabic Numerals": "Western Arabic Numerals",
|
"Western Arabic Numerals": "Western Arabic Numerals",
|
||||||
@@ -2210,6 +2211,7 @@
|
|||||||
"Aggregate by Quarter": "ತ್ರೈಮಾಸಿಕ ಒಕ್ಕೂಟ",
|
"Aggregate by Quarter": "ತ್ರೈಮಾಸಿಕ ಒಕ್ಕೂಟ",
|
||||||
"Aggregate by Year": "ವರ್ಷವಾರು ಒಕ್ಕೂಟ",
|
"Aggregate by Year": "ವರ್ಷವಾರು ಒಕ್ಕೂಟ",
|
||||||
"Aggregate by Fiscal Year": "ಹಣಕಾಸು ವರ್ಷವಾರು ಒಕ್ಕೂಟ",
|
"Aggregate by Fiscal Year": "ಹಣಕಾಸು ವರ್ಷವಾರು ಒಕ್ಕೂಟ",
|
||||||
|
"Aggregate by Billing Cycle": "Aggregate by Billing Cycle",
|
||||||
"Year-over-Year": "Year-over-Year",
|
"Year-over-Year": "Year-over-Year",
|
||||||
"Period-over-Period": "Period-over-Period",
|
"Period-over-Period": "Period-over-Period",
|
||||||
"Filter Accounts": "ಖಾತೆಗಳನ್ನು ಫಿಲ್ಟರ್ ಮಾಡಿ",
|
"Filter Accounts": "ಖಾತೆಗಳನ್ನು ಫಿಲ್ಟರ್ ಮಾಡಿ",
|
||||||
|
|||||||
+3
-1
@@ -294,7 +294,8 @@
|
|||||||
"Yearly": "연간",
|
"Yearly": "연간",
|
||||||
"Quarterly": "분기별",
|
"Quarterly": "분기별",
|
||||||
"Monthly": "월간",
|
"Monthly": "월간",
|
||||||
"Daily": "일간"
|
"Daily": "일간",
|
||||||
|
"BillingCycle": "Billing Cycle"
|
||||||
},
|
},
|
||||||
"numeral": {
|
"numeral": {
|
||||||
"Western Arabic Numerals": "서양 아라비아 숫자",
|
"Western Arabic Numerals": "서양 아라비아 숫자",
|
||||||
@@ -2210,6 +2211,7 @@
|
|||||||
"Aggregate by Quarter": "분기별 집계",
|
"Aggregate by Quarter": "분기별 집계",
|
||||||
"Aggregate by Year": "연도별 집계",
|
"Aggregate by Year": "연도별 집계",
|
||||||
"Aggregate by Fiscal Year": "회계 연도별 집계",
|
"Aggregate by Fiscal Year": "회계 연도별 집계",
|
||||||
|
"Aggregate by Billing Cycle": "Aggregate by Billing Cycle",
|
||||||
"Year-over-Year": "Year-over-Year",
|
"Year-over-Year": "Year-over-Year",
|
||||||
"Period-over-Period": "Period-over-Period",
|
"Period-over-Period": "Period-over-Period",
|
||||||
"Filter Accounts": "계좌 필터",
|
"Filter Accounts": "계좌 필터",
|
||||||
|
|||||||
+3
-1
@@ -294,7 +294,8 @@
|
|||||||
"Yearly": "Jaarlijks",
|
"Yearly": "Jaarlijks",
|
||||||
"Quarterly": "Per kwartaal",
|
"Quarterly": "Per kwartaal",
|
||||||
"Monthly": "Maandelijks",
|
"Monthly": "Maandelijks",
|
||||||
"Daily": "Dagelijks"
|
"Daily": "Dagelijks",
|
||||||
|
"BillingCycle": "Billing Cycle"
|
||||||
},
|
},
|
||||||
"numeral": {
|
"numeral": {
|
||||||
"Western Arabic Numerals": "Western Arabic Numerals",
|
"Western Arabic Numerals": "Western Arabic Numerals",
|
||||||
@@ -2210,6 +2211,7 @@
|
|||||||
"Aggregate by Quarter": "Groeperen per kwartaal",
|
"Aggregate by Quarter": "Groeperen per kwartaal",
|
||||||
"Aggregate by Year": "Groeperen per jaar",
|
"Aggregate by Year": "Groeperen per jaar",
|
||||||
"Aggregate by Fiscal Year": "Groeperen per boekjaar",
|
"Aggregate by Fiscal Year": "Groeperen per boekjaar",
|
||||||
|
"Aggregate by Billing Cycle": "Aggregate by Billing Cycle",
|
||||||
"Year-over-Year": "Year-over-Year",
|
"Year-over-Year": "Year-over-Year",
|
||||||
"Period-over-Period": "Period-over-Period",
|
"Period-over-Period": "Period-over-Period",
|
||||||
"Filter Accounts": "Rekeningen filteren",
|
"Filter Accounts": "Rekeningen filteren",
|
||||||
|
|||||||
@@ -294,7 +294,8 @@
|
|||||||
"Yearly": "Anual",
|
"Yearly": "Anual",
|
||||||
"Quarterly": "Trimestral",
|
"Quarterly": "Trimestral",
|
||||||
"Monthly": "Mensal",
|
"Monthly": "Mensal",
|
||||||
"Daily": "Diário"
|
"Daily": "Diário",
|
||||||
|
"BillingCycle": "Billing Cycle"
|
||||||
},
|
},
|
||||||
"numeral": {
|
"numeral": {
|
||||||
"Western Arabic Numerals": "Algarismos Arábicos Ocidentais",
|
"Western Arabic Numerals": "Algarismos Arábicos Ocidentais",
|
||||||
@@ -2210,6 +2211,7 @@
|
|||||||
"Aggregate by Quarter": "Agregar por Trimestre",
|
"Aggregate by Quarter": "Agregar por Trimestre",
|
||||||
"Aggregate by Year": "Agregar por Ano",
|
"Aggregate by Year": "Agregar por Ano",
|
||||||
"Aggregate by Fiscal Year": "Agregar por Ano Fiscal",
|
"Aggregate by Fiscal Year": "Agregar por Ano Fiscal",
|
||||||
|
"Aggregate by Billing Cycle": "Aggregate by Billing Cycle",
|
||||||
"Year-over-Year": "Year-over-Year",
|
"Year-over-Year": "Year-over-Year",
|
||||||
"Period-over-Period": "Period-over-Period",
|
"Period-over-Period": "Period-over-Period",
|
||||||
"Filter Accounts": "Filtrar Contas",
|
"Filter Accounts": "Filtrar Contas",
|
||||||
|
|||||||
+3
-1
@@ -294,7 +294,8 @@
|
|||||||
"Yearly": "Ежегодно",
|
"Yearly": "Ежегодно",
|
||||||
"Quarterly": "Ежеквартально",
|
"Quarterly": "Ежеквартально",
|
||||||
"Monthly": "Ежемесячно",
|
"Monthly": "Ежемесячно",
|
||||||
"Daily": "Ежедневно"
|
"Daily": "Ежедневно",
|
||||||
|
"BillingCycle": "Billing Cycle"
|
||||||
},
|
},
|
||||||
"numeral": {
|
"numeral": {
|
||||||
"Western Arabic Numerals": "Западно арабские цифры",
|
"Western Arabic Numerals": "Западно арабские цифры",
|
||||||
@@ -2210,6 +2211,7 @@
|
|||||||
"Aggregate by Quarter": "Агрегировать по кварталам",
|
"Aggregate by Quarter": "Агрегировать по кварталам",
|
||||||
"Aggregate by Year": "Агрегировать по годам",
|
"Aggregate by Year": "Агрегировать по годам",
|
||||||
"Aggregate by Fiscal Year": "Агрегировать по фискальным годам",
|
"Aggregate by Fiscal Year": "Агрегировать по фискальным годам",
|
||||||
|
"Aggregate by Billing Cycle": "Aggregate by Billing Cycle",
|
||||||
"Year-over-Year": "Year-over-Year",
|
"Year-over-Year": "Year-over-Year",
|
||||||
"Period-over-Period": "Period-over-Period",
|
"Period-over-Period": "Period-over-Period",
|
||||||
"Filter Accounts": "Фильтровать счета",
|
"Filter Accounts": "Фильтровать счета",
|
||||||
|
|||||||
+3
-1
@@ -294,7 +294,8 @@
|
|||||||
"Yearly": "Letno",
|
"Yearly": "Letno",
|
||||||
"Quarterly": "Četrtletno",
|
"Quarterly": "Četrtletno",
|
||||||
"Monthly": "Mesečno",
|
"Monthly": "Mesečno",
|
||||||
"Daily": "Dnevno"
|
"Daily": "Dnevno",
|
||||||
|
"BillingCycle": "Billing Cycle"
|
||||||
},
|
},
|
||||||
"numeral": {
|
"numeral": {
|
||||||
"Western Arabic Numerals": "Zahodne arabske številke",
|
"Western Arabic Numerals": "Zahodne arabske številke",
|
||||||
@@ -2210,6 +2211,7 @@
|
|||||||
"Aggregate by Quarter": "Združi po četrtletjih",
|
"Aggregate by Quarter": "Združi po četrtletjih",
|
||||||
"Aggregate by Year": "Združi po letih",
|
"Aggregate by Year": "Združi po letih",
|
||||||
"Aggregate by Fiscal Year": "Združi po fiskalnih letih",
|
"Aggregate by Fiscal Year": "Združi po fiskalnih letih",
|
||||||
|
"Aggregate by Billing Cycle": "Aggregate by Billing Cycle",
|
||||||
"Year-over-Year": "Year-over-Year",
|
"Year-over-Year": "Year-over-Year",
|
||||||
"Period-over-Period": "Period-over-Period",
|
"Period-over-Period": "Period-over-Period",
|
||||||
"Filter Accounts": "Filtriraj račune",
|
"Filter Accounts": "Filtriraj račune",
|
||||||
|
|||||||
+3
-1
@@ -294,7 +294,8 @@
|
|||||||
"Yearly": "ஆண்டுவாரியாக",
|
"Yearly": "ஆண்டுவாரியாக",
|
||||||
"Quarterly": "காலாண்டு வாரியாக",
|
"Quarterly": "காலாண்டு வாரியாக",
|
||||||
"Monthly": "மாதாந்திர",
|
"Monthly": "மாதாந்திர",
|
||||||
"Daily": "தினசரி"
|
"Daily": "தினசரி",
|
||||||
|
"BillingCycle": "Billing Cycle"
|
||||||
},
|
},
|
||||||
"numeral": {
|
"numeral": {
|
||||||
"Western Arabic Numerals": "மேற்கத்திய அரபு எண்கள்",
|
"Western Arabic Numerals": "மேற்கத்திய அரபு எண்கள்",
|
||||||
@@ -2210,6 +2211,7 @@
|
|||||||
"Aggregate by Quarter": "காலாண்டு கூட்டமைப்பு",
|
"Aggregate by Quarter": "காலாண்டு கூட்டமைப்பு",
|
||||||
"Aggregate by Year": "ஆண்டுவாரி கூட்டமைப்பு",
|
"Aggregate by Year": "ஆண்டுவாரி கூட்டமைப்பு",
|
||||||
"Aggregate by Fiscal Year": "நிதி ஆண்டுவாரி கூட்டமைப்பு",
|
"Aggregate by Fiscal Year": "நிதி ஆண்டுவாரி கூட்டமைப்பு",
|
||||||
|
"Aggregate by Billing Cycle": "Aggregate by Billing Cycle",
|
||||||
"Year-over-Year": "Year-over-Year",
|
"Year-over-Year": "Year-over-Year",
|
||||||
"Period-over-Period": "Period-over-Period",
|
"Period-over-Period": "Period-over-Period",
|
||||||
"Filter Accounts": "கணக்குகளை வடிகட்டி செய்",
|
"Filter Accounts": "கணக்குகளை வடிகட்டி செய்",
|
||||||
|
|||||||
+3
-1
@@ -294,7 +294,8 @@
|
|||||||
"Yearly": "รายปี",
|
"Yearly": "รายปี",
|
||||||
"Quarterly": "รายไตรมาส",
|
"Quarterly": "รายไตรมาส",
|
||||||
"Monthly": "รายเดือน",
|
"Monthly": "รายเดือน",
|
||||||
"Daily": "รายวัน"
|
"Daily": "รายวัน",
|
||||||
|
"BillingCycle": "Billing Cycle"
|
||||||
},
|
},
|
||||||
"numeral": {
|
"numeral": {
|
||||||
"Western Arabic Numerals": "เลขอารบิกตะวันตก",
|
"Western Arabic Numerals": "เลขอารบิกตะวันตก",
|
||||||
@@ -2210,6 +2211,7 @@
|
|||||||
"Aggregate by Quarter": "รวมตามไตรมาส",
|
"Aggregate by Quarter": "รวมตามไตรมาส",
|
||||||
"Aggregate by Year": "รวมตามปี",
|
"Aggregate by Year": "รวมตามปี",
|
||||||
"Aggregate by Fiscal Year": "รวมตามปีงบประมาณ",
|
"Aggregate by Fiscal Year": "รวมตามปีงบประมาณ",
|
||||||
|
"Aggregate by Billing Cycle": "Aggregate by Billing Cycle",
|
||||||
"Year-over-Year": "Year-over-Year",
|
"Year-over-Year": "Year-over-Year",
|
||||||
"Period-over-Period": "Period-over-Period",
|
"Period-over-Period": "Period-over-Period",
|
||||||
"Filter Accounts": "กรองบัญชี",
|
"Filter Accounts": "กรองบัญชี",
|
||||||
|
|||||||
+3
-1
@@ -294,7 +294,8 @@
|
|||||||
"Yearly": "Yıllık",
|
"Yearly": "Yıllık",
|
||||||
"Quarterly": "Çeyreklik",
|
"Quarterly": "Çeyreklik",
|
||||||
"Monthly": "Aylık",
|
"Monthly": "Aylık",
|
||||||
"Daily": "Günlük"
|
"Daily": "Günlük",
|
||||||
|
"BillingCycle": "Billing Cycle"
|
||||||
},
|
},
|
||||||
"numeral": {
|
"numeral": {
|
||||||
"Western Arabic Numerals": "Batı Arap Rakamları",
|
"Western Arabic Numerals": "Batı Arap Rakamları",
|
||||||
@@ -2210,6 +2211,7 @@
|
|||||||
"Aggregate by Quarter": "Çeyreğe Göre Topla",
|
"Aggregate by Quarter": "Çeyreğe Göre Topla",
|
||||||
"Aggregate by Year": "Yıla Göre Topla",
|
"Aggregate by Year": "Yıla Göre Topla",
|
||||||
"Aggregate by Fiscal Year": "Mali Yıla Göre Topla",
|
"Aggregate by Fiscal Year": "Mali Yıla Göre Topla",
|
||||||
|
"Aggregate by Billing Cycle": "Aggregate by Billing Cycle",
|
||||||
"Year-over-Year": "Year-over-Year",
|
"Year-over-Year": "Year-over-Year",
|
||||||
"Period-over-Period": "Period-over-Period",
|
"Period-over-Period": "Period-over-Period",
|
||||||
"Filter Accounts": "Hesapları Filtrele",
|
"Filter Accounts": "Hesapları Filtrele",
|
||||||
|
|||||||
+3
-1
@@ -294,7 +294,8 @@
|
|||||||
"Yearly": "Yearly",
|
"Yearly": "Yearly",
|
||||||
"Quarterly": "Quarterly",
|
"Quarterly": "Quarterly",
|
||||||
"Monthly": "Monthly",
|
"Monthly": "Monthly",
|
||||||
"Daily": "Daily"
|
"Daily": "Daily",
|
||||||
|
"BillingCycle": "Billing Cycle"
|
||||||
},
|
},
|
||||||
"numeral": {
|
"numeral": {
|
||||||
"Western Arabic Numerals": "Western Arabic Numerals",
|
"Western Arabic Numerals": "Western Arabic Numerals",
|
||||||
@@ -2210,6 +2211,7 @@
|
|||||||
"Aggregate by Quarter": "Агрегувати за кварталами",
|
"Aggregate by Quarter": "Агрегувати за кварталами",
|
||||||
"Aggregate by Year": "Агрегувати за роками",
|
"Aggregate by Year": "Агрегувати за роками",
|
||||||
"Aggregate by Fiscal Year": "Aggregate by Fiscal Year",
|
"Aggregate by Fiscal Year": "Aggregate by Fiscal Year",
|
||||||
|
"Aggregate by Billing Cycle": "Aggregate by Billing Cycle",
|
||||||
"Year-over-Year": "Year-over-Year",
|
"Year-over-Year": "Year-over-Year",
|
||||||
"Period-over-Period": "Period-over-Period",
|
"Period-over-Period": "Period-over-Period",
|
||||||
"Filter Accounts": "Фільтрувати рахунки",
|
"Filter Accounts": "Фільтрувати рахунки",
|
||||||
|
|||||||
+3
-1
@@ -294,7 +294,8 @@
|
|||||||
"Yearly": "Yearly",
|
"Yearly": "Yearly",
|
||||||
"Quarterly": "Quarterly",
|
"Quarterly": "Quarterly",
|
||||||
"Monthly": "Monthly",
|
"Monthly": "Monthly",
|
||||||
"Daily": "Daily"
|
"Daily": "Daily",
|
||||||
|
"BillingCycle": "Billing Cycle"
|
||||||
},
|
},
|
||||||
"numeral": {
|
"numeral": {
|
||||||
"Western Arabic Numerals": "Western Arabic Numerals",
|
"Western Arabic Numerals": "Western Arabic Numerals",
|
||||||
@@ -2210,6 +2211,7 @@
|
|||||||
"Aggregate by Quarter": "Tổng hợp theo quý",
|
"Aggregate by Quarter": "Tổng hợp theo quý",
|
||||||
"Aggregate by Year": "Tổng hợp theo năm",
|
"Aggregate by Year": "Tổng hợp theo năm",
|
||||||
"Aggregate by Fiscal Year": "Aggregate by Fiscal Year",
|
"Aggregate by Fiscal Year": "Aggregate by Fiscal Year",
|
||||||
|
"Aggregate by Billing Cycle": "Aggregate by Billing Cycle",
|
||||||
"Year-over-Year": "Year-over-Year",
|
"Year-over-Year": "Year-over-Year",
|
||||||
"Period-over-Period": "Period-over-Period",
|
"Period-over-Period": "Period-over-Period",
|
||||||
"Filter Accounts": "Lọc tài khoản",
|
"Filter Accounts": "Lọc tài khoản",
|
||||||
|
|||||||
@@ -294,7 +294,8 @@
|
|||||||
"Yearly": "按年",
|
"Yearly": "按年",
|
||||||
"Quarterly": "按季度",
|
"Quarterly": "按季度",
|
||||||
"Monthly": "按月",
|
"Monthly": "按月",
|
||||||
"Daily": "按天"
|
"Daily": "按天",
|
||||||
|
"BillingCycle": "按账单周期"
|
||||||
},
|
},
|
||||||
"numeral": {
|
"numeral": {
|
||||||
"Western Arabic Numerals": "阿拉伯数字",
|
"Western Arabic Numerals": "阿拉伯数字",
|
||||||
@@ -2210,6 +2211,7 @@
|
|||||||
"Aggregate by Quarter": "按季度聚合",
|
"Aggregate by Quarter": "按季度聚合",
|
||||||
"Aggregate by Year": "按年聚合",
|
"Aggregate by Year": "按年聚合",
|
||||||
"Aggregate by Fiscal Year": "按财年聚合",
|
"Aggregate by Fiscal Year": "按财年聚合",
|
||||||
|
"Aggregate by Billing Cycle": "按账单周期聚合",
|
||||||
"Year-over-Year": "同比",
|
"Year-over-Year": "同比",
|
||||||
"Period-over-Period": "环比",
|
"Period-over-Period": "环比",
|
||||||
"Filter Accounts": "过滤账户",
|
"Filter Accounts": "过滤账户",
|
||||||
|
|||||||
@@ -294,7 +294,8 @@
|
|||||||
"Yearly": "依年份",
|
"Yearly": "依年份",
|
||||||
"Quarterly": "依季度",
|
"Quarterly": "依季度",
|
||||||
"Monthly": "依月份",
|
"Monthly": "依月份",
|
||||||
"Daily": "依日期"
|
"Daily": "依日期",
|
||||||
|
"BillingCycle": "依帳單週期"
|
||||||
},
|
},
|
||||||
"numeral": {
|
"numeral": {
|
||||||
"Western Arabic Numerals": "阿拉伯數字",
|
"Western Arabic Numerals": "阿拉伯數字",
|
||||||
@@ -2210,6 +2211,7 @@
|
|||||||
"Aggregate by Quarter": "依季度彙整",
|
"Aggregate by Quarter": "依季度彙整",
|
||||||
"Aggregate by Year": "依年份彙整",
|
"Aggregate by Year": "依年份彙整",
|
||||||
"Aggregate by Fiscal Year": "依財年彙整",
|
"Aggregate by Fiscal Year": "依財年彙整",
|
||||||
|
"Aggregate by Billing Cycle": "依帳單週期彙整",
|
||||||
"Year-over-Year": "同比",
|
"Year-over-Year": "同比",
|
||||||
"Period-over-Period": "環比",
|
"Period-over-Period": "環比",
|
||||||
"Filter Accounts": "篩選帳戶",
|
"Filter Accounts": "篩選帳戶",
|
||||||
|
|||||||
@@ -63,11 +63,12 @@ export function useReconciliationStatementPageBase() {
|
|||||||
const defaultCurrency = computed<string>(() => userStore.currentUserDefaultCurrency);
|
const defaultCurrency = computed<string>(() => userStore.currentUserDefaultCurrency);
|
||||||
|
|
||||||
const allChartTypes = computed<TypeAndDisplayName[]>(() => getAllAccountBalanceTrendChartTypes());
|
const allChartTypes = computed<TypeAndDisplayName[]>(() => getAllAccountBalanceTrendChartTypes());
|
||||||
const allDateAggregationTypes = computed<TypeAndDisplayName[]>(() => getAllStatisticsDateAggregationTypesWithShortName(StatisticsAnalysisType.AssetTrends));
|
const allDateAggregationTypes = computed<TypeAndDisplayName[]>(() => getAllStatisticsDateAggregationTypesWithShortName(StatisticsAnalysisType.AssetTrends, !!currentAccountStatementDate.value));
|
||||||
const allTimezoneTypesUsedForDateRange = computed<TypeAndDisplayName[]>(() => getAllTimezoneTypesUsedForStatistics());
|
const allTimezoneTypesUsedForDateRange = computed<TypeAndDisplayName[]>(() => getAllTimezoneTypesUsedForStatistics());
|
||||||
|
|
||||||
const currentAccount = computed(() => allAccountsMap.value[accountId.value]);
|
const currentAccount = computed(() => allAccountsMap.value[accountId.value]);
|
||||||
const currentAccountCurrency = computed<string>(() => currentAccount.value?.currency ?? defaultCurrency.value);
|
const currentAccountCurrency = computed<string>(() => currentAccount.value?.currency ?? defaultCurrency.value);
|
||||||
|
const currentAccountStatementDate = computed<number | undefined>(() => accountsStore.getAccountStatementDate(accountId.value) || undefined);
|
||||||
const isCurrentLiabilityAccount = computed<boolean>(() => currentAccount.value?.isLiability ?? false);
|
const isCurrentLiabilityAccount = computed<boolean>(() => currentAccount.value?.isLiability ?? false);
|
||||||
|
|
||||||
const exportFileName = computed<string>(() => {
|
const exportFileName = computed<string>(() => {
|
||||||
@@ -309,6 +310,7 @@ export function useReconciliationStatementPageBase() {
|
|||||||
allTimezoneTypesUsedForDateRange,
|
allTimezoneTypesUsedForDateRange,
|
||||||
currentAccount,
|
currentAccount,
|
||||||
currentAccountCurrency,
|
currentAccountCurrency,
|
||||||
|
currentAccountStatementDate,
|
||||||
isCurrentLiabilityAccount,
|
isCurrentLiabilityAccount,
|
||||||
exportFileName,
|
exportFileName,
|
||||||
displayStartDateTime,
|
displayStartDateTime,
|
||||||
|
|||||||
@@ -73,8 +73,8 @@ export function useStatisticsTransactionPageBase() {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
const allSortingTypes = computed<TypeAndDisplayName[]>(() => getAllStatisticsSortingTypes());
|
const allSortingTypes = computed<TypeAndDisplayName[]>(() => getAllStatisticsSortingTypes());
|
||||||
const allTrendAnalysisDateAggregationTypes = computed<TypeAndDisplayName[]>(() => getAllStatisticsDateAggregationTypes(StatisticsAnalysisType.TrendAnalysis));
|
const allTrendAnalysisDateAggregationTypes = computed<TypeAndDisplayName[]>(() => getAllStatisticsDateAggregationTypes(StatisticsAnalysisType.TrendAnalysis, false));
|
||||||
const allAssetTrendsDateAggregationTypes = computed<TypeAndDisplayName[]>(() => getAllStatisticsDateAggregationTypes(StatisticsAnalysisType.AssetTrends));
|
const allAssetTrendsDateAggregationTypes = computed<TypeAndDisplayName[]>(() => getAllStatisticsDateAggregationTypes(StatisticsAnalysisType.AssetTrends, false));
|
||||||
|
|
||||||
const query = computed<TransactionStatisticsFilter>(() => statisticsStore.transactionStatisticsFilter);
|
const query = computed<TransactionStatisticsFilter>(() => statisticsStore.transactionStatisticsFilter);
|
||||||
const queryChartDataCategory = computed<string>(() => statisticsStore.categoricalAnalysisChartDataCategory);
|
const queryChartDataCategory = computed<string>(() => statisticsStore.categoricalAnalysisChartDataCategory);
|
||||||
|
|||||||
@@ -246,6 +246,7 @@
|
|||||||
:items="[]"
|
:items="[]"
|
||||||
:legend-name="isCurrentLiabilityAccount ? tt('Account Outstanding Balance') : tt('Account Balance')"
|
:legend-name="isCurrentLiabilityAccount ? tt('Account Outstanding Balance') : tt('Account Balance')"
|
||||||
:account="currentAccount"
|
:account="currentAccount"
|
||||||
|
:statement-date="currentAccountStatementDate"
|
||||||
:skeleton="true"
|
:skeleton="true"
|
||||||
v-if="showAccountBalanceTrendsCharts && loading"
|
v-if="showAccountBalanceTrendsCharts && loading"
|
||||||
/>
|
/>
|
||||||
@@ -258,6 +259,7 @@
|
|||||||
:items="reconciliationStatements?.transactions"
|
:items="reconciliationStatements?.transactions"
|
||||||
:legend-name="isCurrentLiabilityAccount ? tt('Account Outstanding Balance') : tt('Account Balance')"
|
:legend-name="isCurrentLiabilityAccount ? tt('Account Outstanding Balance') : tt('Account Balance')"
|
||||||
:account="currentAccount"
|
:account="currentAccount"
|
||||||
|
:statement-date="currentAccountStatementDate"
|
||||||
v-if="showAccountBalanceTrendsCharts && !loading"
|
v-if="showAccountBalanceTrendsCharts && !loading"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
@@ -320,6 +322,7 @@ import {
|
|||||||
mdiChartWaterfall,
|
mdiChartWaterfall,
|
||||||
mdiCalendarTodayOutline,
|
mdiCalendarTodayOutline,
|
||||||
mdiCalendarMonthOutline,
|
mdiCalendarMonthOutline,
|
||||||
|
mdiCalendarTextOutline,
|
||||||
mdiHomeClockOutline,
|
mdiHomeClockOutline,
|
||||||
mdiInvoiceTextClockOutline,
|
mdiInvoiceTextClockOutline,
|
||||||
mdiLayersTripleOutline,
|
mdiLayersTripleOutline,
|
||||||
@@ -353,6 +356,7 @@ const {
|
|||||||
allTimezoneTypesUsedForDateRange,
|
allTimezoneTypesUsedForDateRange,
|
||||||
currentAccount,
|
currentAccount,
|
||||||
currentAccountCurrency,
|
currentAccountCurrency,
|
||||||
|
currentAccountStatementDate,
|
||||||
isCurrentLiabilityAccount,
|
isCurrentLiabilityAccount,
|
||||||
exportFileName,
|
exportFileName,
|
||||||
displayStartDateTime,
|
displayStartDateTime,
|
||||||
@@ -391,6 +395,7 @@ const chartDataDateAggregationTypeIconMap = {
|
|||||||
[ChartDateAggregationType.Quarter.type]: mdiLayersTripleOutline,
|
[ChartDateAggregationType.Quarter.type]: mdiLayersTripleOutline,
|
||||||
[ChartDateAggregationType.Year.type]: mdiLayersTripleOutline,
|
[ChartDateAggregationType.Year.type]: mdiLayersTripleOutline,
|
||||||
[ChartDateAggregationType.FiscalYear.type]: mdiLayersTripleOutline,
|
[ChartDateAggregationType.FiscalYear.type]: mdiLayersTripleOutline,
|
||||||
|
[ChartDateAggregationType.BillingCycle.type]: mdiCalendarTextOutline,
|
||||||
};
|
};
|
||||||
|
|
||||||
const timezoneTypeIconMap = {
|
const timezoneTypeIconMap = {
|
||||||
|
|||||||
@@ -277,6 +277,7 @@
|
|||||||
:fiscal-year-start="fiscalYearStart"
|
:fiscal-year-start="fiscalYearStart"
|
||||||
:items="reconciliationStatements?.transactions"
|
:items="reconciliationStatements?.transactions"
|
||||||
:account="currentAccount"
|
:account="currentAccount"
|
||||||
|
:statement-date="currentAccountStatementDate"
|
||||||
/>
|
/>
|
||||||
</f7-card-content>
|
</f7-card-content>
|
||||||
</f7-card>
|
</f7-card>
|
||||||
@@ -424,6 +425,7 @@ const {
|
|||||||
isCurrentLiabilityAccount,
|
isCurrentLiabilityAccount,
|
||||||
currentAccount,
|
currentAccount,
|
||||||
currentAccountCurrency,
|
currentAccountCurrency,
|
||||||
|
currentAccountStatementDate,
|
||||||
displayStartDateTime,
|
displayStartDateTime,
|
||||||
displayEndDateTime,
|
displayEndDateTime,
|
||||||
displayTotalInflows,
|
displayTotalInflows,
|
||||||
|
|||||||
Reference in New Issue
Block a user