Correct expense actions
This commit is contained in:
parent
cd7691d78e
commit
b68435f037
|
|
@ -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(
|
||||||
|
|
|
||||||
|
|
@ -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();
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue