@@ -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