Correct task selector

This commit is contained in:
Hillel Coren 2021-09-29 16:25:13 +03:00
parent 68664844a1
commit 47e769653b
3 changed files with 17 additions and 8 deletions

View File

@ -257,7 +257,9 @@ List<String> clientExpenseList(
BuiltMap<String, ExpenseEntity> 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;

View File

@ -86,7 +86,9 @@ List<String> taskList(
BuiltMap<String, ProjectEntity> 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;

View File

@ -138,9 +138,13 @@ class _InvoiceItemSelectorState extends State<InvoiceItemSelector>
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<InvoiceItemSelector>
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)) {