Correct expense actions

This commit is contained in:
Hillel Coren 2020-12-30 20:25:20 +02:00
parent cd7691d78e
commit b68435f037
2 changed files with 19 additions and 20 deletions

View File

@ -252,16 +252,6 @@ class FilterExpensesByCustom4 implements PersistUI {
void handleExpenseAction( void handleExpenseAction(
BuildContext context, List<BaseEntity> expenses, EntityAction action) { BuildContext context, List<BaseEntity> expenses, EntityAction action) {
assert(
[
EntityAction.restore,
EntityAction.archive,
EntityAction.delete,
EntityAction.toggleMultiselect
].contains(action) ||
expenses.length == 1,
'Cannot perform this action on more than one expense');
final store = StoreProvider.of<AppState>(context); final store = StoreProvider.of<AppState>(context);
final state = store.state; final state = store.state;
final CompanyEntity company = state.company; final CompanyEntity company = state.company;
@ -278,15 +268,24 @@ void handleExpenseAction(
createEntity(context: context, entity: expense.clone); createEntity(context: context, entity: expense.clone);
break; break;
case EntityAction.newInvoice: case EntityAction.newInvoice:
final item = convertExpenseToInvoiceItem( final items = expenses
.where((entity) {
final expense = entity as ExpenseEntity;
return !expense.isDeleted && !expense.isInvoiced;
})
.map((expense) => convertExpenseToInvoiceItem(
expense: expense, expense: expense,
categoryMap: state.expenseCategoryState.map, categoryMap: state.expenseCategoryState.map,
company: company); company: company,
))
.toList();
if (items.isNotEmpty) {
createEntity( createEntity(
context: context, context: context,
entity: InvoiceEntity(state: state, client: client).rebuild((b) => b entity: InvoiceEntity(state: state, client: client).rebuild((b) => b
..hasExpenses = true ..hasExpenses = true
..lineItems.add(item))); ..lineItems.addAll(items)));
}
break; break;
case EntityAction.viewInvoice: case EntityAction.viewInvoice:
viewEntityById( viewEntityById(

View File

@ -325,7 +325,7 @@ void handleTaskAction(
final items = tasks final items = tasks
.where((entity) { .where((entity) {
final task = entity as TaskEntity; final task = entity as TaskEntity;
return !task.isRunning && !task.isInvoiced; return !task.isDeleted && !task.isRunning && !task.isInvoiced;
}) })
.map((task) => convertTaskToInvoiceItem(task: task, context: context)) .map((task) => convertTaskToInvoiceItem(task: task, context: context))
.toList(); .toList();