From 8faa7bd68d3413d63e29c0618d7a2741cafa19ca Mon Sep 17 00:00:00 2001 From: TheTrueCaligari <caligari@mg4ever.net> Date: Tue, 9 May 2023 16:11:04 +0200 Subject: [PATCH] Fix for issue #319 (#1008) --- .../src/components/accounts/Account.js | 36 ++++++++++++++++--- upcoming-release-notes/1008.md | 6 ++++ 2 files changed, 38 insertions(+), 4 deletions(-) create mode 100644 upcoming-release-notes/1008.md diff --git a/packages/desktop-client/src/components/accounts/Account.js b/packages/desktop-client/src/components/accounts/Account.js index b5fe9fe4c..7d7ae712c 100644 --- a/packages/desktop-client/src/components/accounts/Account.js +++ b/packages/desktop-client/src/components/accounts/Account.js @@ -353,7 +353,7 @@ function DetailedBalance({ name, balance }) { ); } -function SelectedBalance({ selectedItems }) { +function SelectedBalance({ selectedItems, account }) { let name = `selected-balance-${[...selectedItems].join('-')}`; let rows = useSheetValue({ @@ -376,9 +376,31 @@ function SelectedBalance({ selectedItems }) { .calculate({ $sum: '$amount' }), }); + let scheduleBalance = null; + let scheduleData = useCachedSchedules(); + let previewIds = [...selectedItems] + .filter(id => isPreviewId(id)) + .map(id => id.slice(8)); + for (let s of scheduleData.schedules) { + if (previewIds.includes(s.id)) { + if (!account || account.id === s._account) { + scheduleBalance += s._amount; + } else { + scheduleBalance -= s._amount; + } + } + } + if (balance == null) { - return null; + if (scheduleBalance == null) { + return null; + } else { + balance = scheduleBalance; + } + } else if (scheduleBalance != null) { + balance += scheduleBalance; } + return <DetailedBalance name="Selected balance:" balance={balance} />; } @@ -400,7 +422,12 @@ function MoreBalances({ balanceQuery }) { ); } -function Balances({ balanceQuery, showExtraBalances, onToggleExtraBalances }) { +function Balances({ + balanceQuery, + showExtraBalances, + onToggleExtraBalances, + account, +}) { let selectedItems = useSelectedItems(); return ( @@ -445,7 +472,7 @@ function Balances({ balanceQuery, showExtraBalances, onToggleExtraBalances }) { {showExtraBalances && <MoreBalances balanceQuery={balanceQuery} />} {selectedItems.size > 0 && ( - <SelectedBalance selectedItems={selectedItems} /> + <SelectedBalance selectedItems={selectedItems} account={account} /> )} </View> ); @@ -794,6 +821,7 @@ const AccountHeader = memo( balanceQuery={balanceQuery} showExtraBalances={showExtraBalances} onToggleExtraBalances={onToggleExtraBalances} + account={account} /> <Stack diff --git a/upcoming-release-notes/1008.md b/upcoming-release-notes/1008.md new file mode 100644 index 000000000..8bf34cb03 --- /dev/null +++ b/upcoming-release-notes/1008.md @@ -0,0 +1,6 @@ +--- +category: Bugfix +authors: [TheTrueCaligari] +--- + +Reports: Add Upcoming/Due transactions in the "Selected balance" sum (Issue #319) -- GitLab