diff --git a/lib/redux/expense/expense_selectors.dart b/lib/redux/expense/expense_selectors.dart index a06b0dee3..97eab6e9e 100644 --- a/lib/redux/expense/expense_selectors.dart +++ b/lib/redux/expense/expense_selectors.dart @@ -257,7 +257,9 @@ List clientExpenseList( BuiltMap expenseMap, String clientId) { final list = expenseMap.keys.where((expenseid) { final expense = expenseMap[expenseid]; - if ((clientId ?? '').isNotEmpty && expense.clientId != clientId) { + if ((clientId ?? '').isNotEmpty && + (expense.clientId ?? '').isNotEmpty && + expense.clientId != clientId) { return false; } return expense.isActive && !expense.isInvoiced; diff --git a/lib/redux/task/task_selectors.dart b/lib/redux/task/task_selectors.dart index 9cffd1975..0c1de2825 100644 --- a/lib/redux/task/task_selectors.dart +++ b/lib/redux/task/task_selectors.dart @@ -86,7 +86,9 @@ List taskList( BuiltMap projectMap) { final list = taskMap.keys.where((taskId) { final task = taskMap[taskId]; - if ((clientId ?? '').isNotEmpty && task.clientId != clientId) { + if ((clientId ?? '').isNotEmpty && + (task.clientId ?? '').isNotEmpty && + task.clientId != clientId) { return false; } return task.isActive && task.isStopped && !task.isInvoiced; diff --git a/lib/ui/invoice/edit/invoice_item_selector.dart b/lib/ui/invoice/edit/invoice_item_selector.dart index 15298ca3c..b3f8f45f0 100644 --- a/lib/ui/invoice/edit/invoice_item_selector.dart +++ b/lib/ui/invoice/edit/invoice_item_selector.dart @@ -138,9 +138,13 @@ class _InvoiceItemSelectorState extends State return entity.isActive && entity.matchesFilter(_filter); }).toList(); - final tasks = memoizedTaskList(state.taskState.map, _filterClientId, - state.userState.map, state.clientState.map, state.projectState.map) - .where((entityId) { + final tasks = memoizedTaskList( + state.taskState.map, + _filterClientId, + state.userState.map, + state.clientState.map, + state.projectState.map, + ).where((entityId) { final task = state.taskState.get(entityId); final client = state.clientState.get(task.clientId); if (widget.excluded != null && widget.excluded.contains(task)) { @@ -149,9 +153,10 @@ class _InvoiceItemSelectorState extends State return task.matchesFilter(_filter) || client.matchesName(_filter); }).toList(); - final expenses = - memoizedClientExpenseList(state.expenseState.map, _filterClientId) - .where((entityId) { + final expenses = memoizedClientExpenseList( + state.expenseState.map, + _filterClientId, + ).where((entityId) { final expense = state.expenseState.get(entityId); final client = state.clientState.get(expense.clientId); if (widget.excluded != null && widget.excluded.contains(expense)) {