From 31c36f0edf7348c10efa33932e4b6667914272f9 Mon Sep 17 00:00:00 2001 From: MaysWind Date: Mon, 29 Dec 2025 00:11:33 +0800 Subject: [PATCH] fix the median amount was calculated incorrectly in account reconciliation statements --- src/components/base/AccountBalanceTrendsChartBase.ts | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/components/base/AccountBalanceTrendsChartBase.ts b/src/components/base/AccountBalanceTrendsChartBase.ts index 8a08c4fd..d0279c8d 100644 --- a/src/components/base/AccountBalanceTrendsChartBase.ts +++ b/src/components/base/AccountBalanceTrendsChartBase.ts @@ -178,11 +178,17 @@ export function useAccountBalanceTrendsChartBase(props: CommonAccountBalanceTren return data1.time - data2.time; }); + const allDataItemsSortedByClosingBalance = Array.from(dataItems) + .sort(function (data1: TransactionReconciliationStatementResponseItem, data2: TransactionReconciliationStatementResponseItem) { + return data1.accountClosingBalance - data2.accountClosingBalance; + } + ); + const openingBalance = dataItems[0]!.accountOpeningBalance; const closingBalance = dataItems[dataItems.length - 1]!.accountClosingBalance; const minimumBalance = Math.min(...dataItems.map(item => item.accountClosingBalance)); const maximumBalance = Math.max(...dataItems.map(item => item.accountClosingBalance)); - const medianBalance = dataItems[Math.floor(dataItems.length / 2)]!.accountClosingBalance; + const medianBalance = allDataItemsSortedByClosingBalance[Math.floor(allDataItemsSortedByClosingBalance.length / 2)]!.accountClosingBalance; const averageBalance = Math.trunc(sumAmounts(dataItems.map(item => item.accountClosingBalance)) / dataItems.length); if (props.account.isAsset) {