Skip to content
This repository was archived by the owner on Aug 11, 2025. It is now read-only.

Commit 79e457b

Browse files
authored
fix-issue-3438 (#3476)
* fix-issue-3438 * fix-issue-3438 * fix-issue-3438 * fix-issue-3438
1 parent 7eaaba2 commit 79e457b

File tree

1 file changed

+67
-26
lines changed

1 file changed

+67
-26
lines changed

screen/reports/src/main/java/com/ivy/reports/ReportViewModel.kt

Lines changed: 67 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -214,15 +214,26 @@ class ReportViewModel @Inject constructor(
214214
private suspend fun setFilter(reportFilter: ReportFilter?) {
215215
scopedIOThread { scope ->
216216
if (reportFilter == null) {
217-
// clear filter
218-
filter.value = null
217+
setReportValues(
218+
income = 0.00,
219+
expense = 0.00,
220+
upcomingIncomeExpenseTransferPair = IncomeExpenseTransferPair.zero(),
221+
overDueIncomeExpenseTransferPair = IncomeExpenseTransferPair.zero(),
222+
history = persistentListOf(),
223+
upcomingTransactions = persistentListOf(),
224+
overdueTransactions = persistentListOf(),
225+
accounts = accountsAct(Unit),
226+
reportFilter = filter.value,
227+
accountIdFilters = persistentListOf(),
228+
transactions = persistentListOf(),
229+
balanceValue = 0.00
230+
)
219231
return@scopedIOThread
220232
}
221233

222234
if (!reportFilter.validate()) return@scopedIOThread
223235
val tempAccounts = reportFilter.accounts
224236
val baseCurrency = baseCurrency.value
225-
filter.value = reportFilter
226237
loading.value = true
227238

228239
val transactionsList = filterTransactions(
@@ -294,33 +305,63 @@ class ReportViewModel @Inject constructor(
294305
)
295306
)
296307

297-
income.doubleValue = tempIncome
298-
expenses.doubleValue = tempExpenses
299-
upcomingExpenses.doubleValue = upcomingIncomeExpense.expense.toDouble()
300-
upcomingIncome.doubleValue = upcomingIncomeExpense.income.toDouble()
301-
overdueIncome.doubleValue = overdueIncomeExpense.income.toDouble()
302-
overdueExpenses.doubleValue = overdueIncomeExpense.expense.toDouble()
303-
history.value = historyWithDateDividers.await().toImmutableList()
304-
upcomingTransactions.value = upcomingTransactionsList.map {
305-
it.toLegacy(transactionMapper)
306-
}.toImmutableList()
307-
overdueTransactions.value = overdue.map {
308-
it.toLegacy(transactionMapper)
309-
}.toImmutableList()
310-
accounts.value = tempAccounts.toImmutableList()
311-
filter.value = reportFilter
308+
setReportValues(
309+
income = tempIncome,
310+
expense = tempExpenses,
311+
upcomingIncomeExpenseTransferPair = upcomingIncomeExpense,
312+
overDueIncomeExpenseTransferPair = overdueIncomeExpense,
313+
history = historyWithDateDividers.await().toImmutableList(),
314+
upcomingTransactions = upcomingTransactionsList.map {
315+
it.toLegacy(transactionMapper)
316+
}.toImmutableList(),
317+
overdueTransactions = overdue.map {
318+
it.toLegacy(transactionMapper)
319+
}.toImmutableList(),
320+
accounts = tempAccounts.toImmutableList(),
321+
reportFilter = reportFilter,
322+
accountIdFilters = accountFilterIdList.await().toImmutableList(),
323+
transactions = transactionsList.map {
324+
it.toLegacy(transactionMapper)
325+
}.toImmutableList(),
326+
balanceValue = tempBalance
327+
)
328+
312329
loading.value = false
313-
accountIdFilters.value = accountFilterIdList.await().toImmutableList()
314-
transactions.value = transactionsList.map {
315-
it.toLegacy(transactionMapper)
316-
}.toImmutableList()
317-
balance.doubleValue = tempBalance
318-
filterOverlayVisible.value = false
319-
showTransfersAsIncExpCheckbox.value =
320-
reportFilter.trnTypes.contains(TransactionType.TRANSFER)
321330
}
322331
}
323332

333+
private fun setReportValues(
334+
income: Double,
335+
expense: Double,
336+
upcomingIncomeExpenseTransferPair: IncomeExpenseTransferPair,
337+
overDueIncomeExpenseTransferPair: IncomeExpenseTransferPair,
338+
history: ImmutableList<TransactionHistoryItem>,
339+
upcomingTransactions: ImmutableList<LegacyTransaction>,
340+
overdueTransactions: ImmutableList<LegacyTransaction>,
341+
accounts: ImmutableList<Account>,
342+
reportFilter: ReportFilter? = null,
343+
accountIdFilters: ImmutableList<UUID>,
344+
transactions: ImmutableList<LegacyTransaction>,
345+
balanceValue: Double
346+
) {
347+
this.income.doubleValue = income
348+
this.expenses.doubleValue = expense
349+
this.upcomingExpenses.doubleValue = upcomingIncomeExpenseTransferPair.expense.toDouble()
350+
this.upcomingIncome.doubleValue = upcomingIncomeExpenseTransferPair.income.toDouble()
351+
this.overdueIncome.doubleValue = overDueIncomeExpenseTransferPair.income.toDouble()
352+
this.overdueExpenses.doubleValue = overDueIncomeExpenseTransferPair.expense.toDouble()
353+
this.history.value = history
354+
this.upcomingTransactions.value = upcomingTransactions
355+
this.overdueTransactions.value = overdueTransactions
356+
this.accounts.value = accounts
357+
this.filter.value = reportFilter
358+
this.accountIdFilters.value = accountIdFilters
359+
this.transactions.value = transactions
360+
this.balance.doubleValue = balanceValue
361+
this.showTransfersAsIncExpCheckbox.value =
362+
reportFilter?.trnTypes?.contains(TransactionType.TRANSFER) ?: false
363+
}
364+
324365
private suspend fun filterTransactions(
325366
baseCurrency: String,
326367
accounts: List<Account>,

0 commit comments

Comments
 (0)