reconciliation statement page / dialog supports account balance trends chart (#184)

This commit is contained in:
MaysWind
2025-08-04 01:22:36 +08:00
parent 15d1d269ae
commit 14b4e40039
26 changed files with 917 additions and 29 deletions
+10
View File
@@ -251,6 +251,13 @@
"31": "31."
}
},
"granularity": {
"FiscalYearly": "Fiscal Yearly",
"Yearly": "Yearly",
"Quarterly": "Quarterly",
"Monthly": "Monthly",
"Daily": "Daily"
},
"numeral": {
"Dot": "Punkt",
"Comma": "Komma",
@@ -1635,6 +1642,8 @@
"Unable to delete this account": "Konto kann nicht gelöscht werden",
"Unable to delete this sub-account": "Unable to delete this sub-account",
"Reconciliation Statement": "Reconciliation Statement",
"Show Account Balance Trends": "Show Account Balance Trends",
"Show Transaction List": "Show Transaction List",
"Update Closing Balance": "Update Closing Balance",
"Please enter the new closing balance for the account": "Please enter the new closing balance for the account",
"Transaction": "Transaktion",
@@ -1873,6 +1882,7 @@
"Sort by Amount": "Nach Betrag sortieren",
"Sort by Display Order": "Nach Anzeigereihenfolge sortieren",
"Sort by Name": "Nach Name sortieren",
"Time Granularity": "Time Granularity",
"Aggregate by Month": "Nach Monat aggregieren",
"Aggregate by Quarter": "Nach Quartal aggregieren",
"Aggregate by Year": "Nach Jahr aggregieren",
+10
View File
@@ -251,6 +251,13 @@
"31": "31th"
}
},
"granularity": {
"FiscalYearly": "Fiscal Yearly",
"Yearly": "Yearly",
"Quarterly": "Quarterly",
"Monthly": "Monthly",
"Daily": "Daily"
},
"numeral": {
"Dot": "Dot",
"Comma": "Comma",
@@ -1635,6 +1642,8 @@
"Unable to delete this account": "Unable to delete this account",
"Unable to delete this sub-account": "Unable to delete this sub-account",
"Reconciliation Statement": "Reconciliation Statement",
"Show Account Balance Trends": "Show Account Balance Trends",
"Show Transaction List": "Show Transaction List",
"Update Closing Balance": "Update Closing Balance",
"Please enter the new closing balance for the account": "Please enter the new closing balance for the account",
"Transaction": "Transaction",
@@ -1873,6 +1882,7 @@
"Sort by Amount": "Sort by Amount",
"Sort by Display Order": "Sort by Display Order",
"Sort by Name": "Sort by Name",
"Time Granularity": "Time Granularity",
"Aggregate by Month": "Aggregate by Month",
"Aggregate by Quarter": "Aggregate by Quarter",
"Aggregate by Year": "Aggregate by Year",
+10
View File
@@ -251,6 +251,13 @@
"31": "31"
}
},
"granularity": {
"FiscalYearly": "Fiscal Yearly",
"Yearly": "Yearly",
"Quarterly": "Quarterly",
"Monthly": "Monthly",
"Daily": "Daily"
},
"numeral": {
"Dot": "Punto",
"Comma": "Coma",
@@ -1635,6 +1642,8 @@
"Unable to delete this account": "No se puede eliminar esta cuenta",
"Unable to delete this sub-account": "Unable to delete this sub-account",
"Reconciliation Statement": "Reconciliation Statement",
"Show Account Balance Trends": "Show Account Balance Trends",
"Show Transaction List": "Show Transaction List",
"Update Closing Balance": "Update Closing Balance",
"Please enter the new closing balance for the account": "Please enter the new closing balance for the account",
"Transaction": "Transacción",
@@ -1873,6 +1882,7 @@
"Sort by Amount": "Ordenar por Importe",
"Sort by Display Order": "Ordenar por orden de visualización",
"Sort by Name": "Ordenar por Nombre",
"Time Granularity": "Time Granularity",
"Aggregate by Month": "Agregado por mes",
"Aggregate by Quarter": "Agregado por trimestre",
"Aggregate by Year": "Agregado por año",
+27 -1
View File
@@ -147,6 +147,7 @@ import {
getTimezoneOffset,
getTimezoneOffsetMinutes,
getYear,
getQuarter,
isDateRangeMatchFullMonths,
isDateRangeMatchFullYears,
isPM,
@@ -496,6 +497,22 @@ export function useI18n() {
return ret;
}
function getLocalizedChartDateAggregationTypeAndDisplayName(fullName: boolean): TypeAndDisplayName[] {
const ret: TypeAndDisplayName[] = [];
const allTypes: ChartDateAggregationType[] = ChartDateAggregationType.values();
for (let i = 0; i < allTypes.length; i++) {
const type = allTypes[i];
ret.push({
type: type.type,
displayName: t(fullName ? type.fullName : `granularity.${type.shortName}`)
});
}
return ret;
}
function getAllMonthNames(type: string): string[] {
const ret = [];
const allMonths = Month.values();
@@ -1472,6 +1489,13 @@ export function useI18n() {
return formatMonthDay(monthDay, getLocalizedLongMonthDayFormat());
}
function formatUnixTimeToYearQuarter(unixTime: number): string {
const date = parseDateFromUnixTime(unixTime);
const year = getYear(date);
const quarter = getQuarter(date);
return formatYearQuarter(year, quarter);
}
function formatYearQuarter(year: number, quarter: number): string {
if (1 <= quarter && quarter <= 4) {
return t('format.yearQuarter.q' + quarter, {
@@ -1912,7 +1936,8 @@ export function useI18n() {
getAllTrendChartTypes: () => getLocalizedDisplayNameAndType(TrendChartType.values()),
getAllStatisticsChartDataTypes: (analysisType: StatisticsAnalysisType) => getLocalizedDisplayNameAndType(ChartDataType.values(analysisType)),
getAllStatisticsSortingTypes: () => getLocalizedDisplayNameAndType(ChartSortingType.values()),
getAllStatisticsDateAggregationTypes: () => getLocalizedDisplayNameAndType(ChartDateAggregationType.values()),
getAllStatisticsDateAggregationTypes: () => getLocalizedChartDateAggregationTypeAndDisplayName(true),
getAllStatisticsDateAggregationTypesWithShortName: () => getLocalizedChartDateAggregationTypeAndDisplayName(false),
getAllTransactionEditScopeTypes: () => getLocalizedDisplayNameAndType(TransactionEditScopeType.values()),
getAllTransactionTagFilterTypes: () => getLocalizedDisplayNameAndType(TransactionTagFilterType.values()),
getAllTransactionScheduledFrequencyTypes: () => getLocalizedDisplayNameAndType(ScheduledTemplateFrequencyType.values()),
@@ -1961,6 +1986,7 @@ export function useI18n() {
formatUnixTimeToShortTime: (unixTime: number, utcOffset?: number, currentUtcOffset?: number) => formatUnixTime(unixTime, getLocalizedShortTimeFormat(), utcOffset, currentUtcOffset),
formatDateToLongDate,
formatMonthDayToLongDay,
formatUnixTimeToYearQuarter,
formatYearQuarter,
formatDateRange,
formatFiscalYearStartToLongDay,
+10
View File
@@ -251,6 +251,13 @@
"31": "31"
}
},
"granularity": {
"FiscalYearly": "Fiscal Yearly",
"Yearly": "Yearly",
"Quarterly": "Quarterly",
"Monthly": "Monthly",
"Daily": "Daily"
},
"numeral": {
"Dot": "Punto",
"Comma": "Virgola",
@@ -1635,6 +1642,8 @@
"Unable to delete this account": "Impossibile eliminare questo account",
"Unable to delete this sub-account": "Impossibile eliminare questo sotto-account",
"Reconciliation Statement": "Reconciliation Statement",
"Show Account Balance Trends": "Show Account Balance Trends",
"Show Transaction List": "Show Transaction List",
"Update Closing Balance": "Update Closing Balance",
"Please enter the new closing balance for the account": "Please enter the new closing balance for the account",
"Transaction": "Transazione",
@@ -1873,6 +1882,7 @@
"Sort by Amount": "Ordina per importo",
"Sort by Display Order": "Ordina per ordine di visualizzazione",
"Sort by Name": "Ordina per nome",
"Time Granularity": "Time Granularity",
"Aggregate by Month": "Aggrega per mese",
"Aggregate by Quarter": "Aggrega per trimestre",
"Aggregate by Year": "Aggrega per anno",
+10
View File
@@ -251,6 +251,13 @@
"31": "31"
}
},
"granularity": {
"FiscalYearly": "Fiscal Yearly",
"Yearly": "Yearly",
"Quarterly": "Quarterly",
"Monthly": "Monthly",
"Daily": "Daily"
},
"numeral": {
"Dot": "ドット",
"Comma": "コンマ",
@@ -1635,6 +1642,8 @@
"Unable to delete this account": "この口座を削除できません",
"Unable to delete this sub-account": "Unable to delete this sub-account",
"Reconciliation Statement": "Reconciliation Statement",
"Show Account Balance Trends": "Show Account Balance Trends",
"Show Transaction List": "Show Transaction List",
"Update Closing Balance": "Update Closing Balance",
"Please enter the new closing balance for the account": "Please enter the new closing balance for the account",
"Transaction": "取引",
@@ -1873,6 +1882,7 @@
"Sort by Amount": "金額で並べ替え",
"Sort by Display Order": "表示で並べ替え",
"Sort by Name": "名前で並べ替え",
"Time Granularity": "Time Granularity",
"Aggregate by Month": "月ごとに集計",
"Aggregate by Quarter": "四半期ごとに集計",
"Aggregate by Year": "年ごとに集計",
+10
View File
@@ -251,6 +251,13 @@
"31": "31º"
}
},
"granularity": {
"FiscalYearly": "Fiscal Yearly",
"Yearly": "Yearly",
"Quarterly": "Quarterly",
"Monthly": "Monthly",
"Daily": "Daily"
},
"numeral": {
"Dot": "Ponto",
"Comma": "Vírgula",
@@ -1635,6 +1642,8 @@
"Unable to delete this account": "Não foi possível deletar esta conta",
"Unable to delete this sub-account": "Não foi possível deletar esta subconta",
"Reconciliation Statement": "Reconciliation Statement",
"Show Account Balance Trends": "Show Account Balance Trends",
"Show Transaction List": "Show Transaction List",
"Update Closing Balance": "Update Closing Balance",
"Please enter the new closing balance for the account": "Please enter the new closing balance for the account",
"Transaction": "Transação",
@@ -1873,6 +1882,7 @@
"Sort by Amount": "Classificar por Montante",
"Sort by Display Order": "Classificar por Ordem de Exibição",
"Sort by Name": "Classificar por Nome",
"Time Granularity": "Time Granularity",
"Aggregate by Month": "Agregado por Mês",
"Aggregate by Quarter": "Agregado por Trimestre",
"Aggregate by Year": "Agregado por Ano",
+10
View File
@@ -251,6 +251,13 @@
"31": "31-й"
}
},
"granularity": {
"FiscalYearly": "Fiscal Yearly",
"Yearly": "Yearly",
"Quarterly": "Quarterly",
"Monthly": "Monthly",
"Daily": "Daily"
},
"numeral": {
"Dot": "Точка",
"Comma": "Запятая",
@@ -1635,6 +1642,8 @@
"Unable to delete this account": "Не удалось удалить этот счет",
"Unable to delete this sub-account": "Unable to delete this sub-account",
"Reconciliation Statement": "Reconciliation Statement",
"Show Account Balance Trends": "Show Account Balance Trends",
"Show Transaction List": "Show Transaction List",
"Update Closing Balance": "Update Closing Balance",
"Please enter the new closing balance for the account": "Please enter the new closing balance for the account",
"Transaction": "Транзакция",
@@ -1873,6 +1882,7 @@
"Sort by Amount": "Сортировать по сумме",
"Sort by Display Order": "Сортировать по порядку отображения",
"Sort by Name": "Сортировать по имени",
"Time Granularity": "Time Granularity",
"Aggregate by Month": "Агрегировать по месяцам",
"Aggregate by Quarter": "Агрегировать по кварталам",
"Aggregate by Year": "Агрегировать по годам",
+10
View File
@@ -251,6 +251,13 @@
"31": "31-й"
}
},
"granularity": {
"FiscalYearly": "Fiscal Yearly",
"Yearly": "Yearly",
"Quarterly": "Quarterly",
"Monthly": "Monthly",
"Daily": "Daily"
},
"numeral": {
"Dot": "Крапка",
"Comma": "Кома",
@@ -1635,6 +1642,8 @@
"Unable to delete this account": "Не вдалося видалити цей рахунок",
"Unable to delete this sub-account": "Не вдалося видалити цей субрахунок",
"Reconciliation Statement": "Reconciliation Statement",
"Show Account Balance Trends": "Show Account Balance Trends",
"Show Transaction List": "Show Transaction List",
"Update Closing Balance": "Update Closing Balance",
"Please enter the new closing balance for the account": "Please enter the new closing balance for the account",
"Transaction": "Транзакція",
@@ -1873,6 +1882,7 @@
"Sort by Amount": "Сортувати за сумою",
"Sort by Display Order": "Сортувати за порядком відображення",
"Sort by Name": "Сортувати за назвою",
"Time Granularity": "Time Granularity",
"Aggregate by Month": "Агрегувати за місяцями",
"Aggregate by Quarter": "Агрегувати за кварталами",
"Aggregate by Year": "Агрегувати за роками",
+10
View File
@@ -251,6 +251,13 @@
"31": "Ngày 31"
}
},
"granularity": {
"FiscalYearly": "Fiscal Yearly",
"Yearly": "Yearly",
"Quarterly": "Quarterly",
"Monthly": "Monthly",
"Daily": "Daily"
},
"numeral": {
"Dot": "Dấu chấm",
"Comma": "Dấu phẩy",
@@ -1635,6 +1642,8 @@
"Unable to delete this account": "Không thể xóa tài khoản này",
"Unable to delete this sub-account": "Unable to delete this sub-account",
"Reconciliation Statement": "Reconciliation Statement",
"Show Account Balance Trends": "Show Account Balance Trends",
"Show Transaction List": "Show Transaction List",
"Update Closing Balance": "Update Closing Balance",
"Please enter the new closing balance for the account": "Please enter the new closing balance for the account",
"Transaction": "Giao dịch",
@@ -1873,6 +1882,7 @@
"Sort by Amount": "Sắp xếp theo số tiền",
"Sort by Display Order": "Sắp xếp theo thứ tự hiển thị",
"Sort by Name": "Sắp xếp theo tên",
"Time Granularity": "Time Granularity",
"Aggregate by Month": "Tổng hợp theo tháng",
"Aggregate by Quarter": "Tổng hợp theo quý",
"Aggregate by Year": "Tổng hợp theo năm",
+10
View File
@@ -251,6 +251,13 @@
"31": "31"
}
},
"granularity": {
"FiscalYearly": "按财年",
"Yearly": "按年",
"Quarterly": "按季度",
"Monthly": "按月",
"Daily": "按天"
},
"numeral": {
"Dot": "句点",
"Comma": "逗号",
@@ -1635,6 +1642,8 @@
"Unable to delete this account": "无法删除该账户",
"Unable to delete this sub-account": "无法删除该子账户",
"Reconciliation Statement": "对账单",
"Show Account Balance Trends": "显示账户余额趋势",
"Show Transaction List": "显示交易列表",
"Update Closing Balance": "更新期末余额",
"Please enter the new closing balance for the account": "请输入账户的新期末余额",
"Transaction": "交易",
@@ -1873,6 +1882,7 @@
"Sort by Amount": "按金额排序",
"Sort by Display Order": "按显示顺序排序",
"Sort by Name": "按名称排序",
"Time Granularity": "时间粒度",
"Aggregate by Month": "按月聚合",
"Aggregate by Quarter": "按季度聚合",
"Aggregate by Year": "按年聚合",
+10
View File
@@ -251,6 +251,13 @@
"31": "31"
}
},
"granularity": {
"FiscalYearly": "依財政年度",
"Yearly": "依年份",
"Quarterly": "依季度",
"Monthly": "依月份",
"Daily": "依日期"
},
"numeral": {
"Dot": "句點",
"Comma": "逗號",
@@ -1635,6 +1642,8 @@
"Unable to delete this account": "無法刪除此帳戶",
"Unable to delete this sub-account": "無法刪除此子帳戶",
"Reconciliation Statement": "對帳單",
"Show Account Balance Trends": "顯示帳戶餘額趨勢",
"Show Transaction List": "顯示交易清單",
"Update Closing Balance": "更新期末餘額",
"Please enter the new closing balance for the account": "請輸入帳戶的新期末餘額",
"Transaction": "交易",
@@ -1873,6 +1882,7 @@
"Sort by Amount": "依金額排序",
"Sort by Display Order": "依顯示順序排序",
"Sort by Name": "依名稱排序",
"Time Granularity": "時間粒度",
"Aggregate by Month": "依月份彙整",
"Aggregate by Quarter": "依季度彙整",
"Aggregate by Year": "依年份彙整",