Rework has_tasks

This commit is contained in:
Hillel Coren 2021-03-31 17:58:01 +03:00
parent 7855e3d414
commit b1c4649d4e
8 changed files with 14 additions and 33 deletions

View File

@ -158,7 +158,6 @@ abstract class InvoiceEntity extends Object
isAmountDiscount: false,
partial: 0.0,
partialDueDate: '',
hasTasks: false,
autoBillEnabled: false,
customValue1: '',
customValue2: '',
@ -168,7 +167,6 @@ abstract class InvoiceEntity extends Object
customTaxes2: company?.enableCustomSurchargeTaxes2 ?? false,
customTaxes3: company?.enableCustomSurchargeTaxes3 ?? false,
customTaxes4: company?.enableCustomSurchargeTaxes4 ?? false,
hasExpenses: false,
invoiceId: '',
customSurcharge1: 0,
customSurcharge2: 0,
@ -472,9 +470,9 @@ abstract class InvoiceEntity extends Object
kMillisecondsToRefreshActivities;
}
bool get hasTask => lineItems.any((item) => item.isTask);
bool get hasTasks => lineItems.any((item) => item.isTask);
bool get hasExpense => lineItems.any((item) => item.isExpense);
bool get hasExpenses => lineItems.any((item) => item.isExpense);
@override
bool get isEditable {
@ -1040,7 +1038,6 @@ abstract class InvoiceEntity extends Object
// ignore: unused_element
static void _initializeBuilder(InvoiceEntityBuilder builder) => builder
..paidToDate = 0
..hasTasks = false
..subscriptionId = '';
static Serializer<InvoiceEntity> get serializer => _$invoiceEntitySerializer;

View File

@ -283,9 +283,8 @@ void handleExpenseAction(
if (items.isNotEmpty) {
createEntity(
context: context,
entity: InvoiceEntity(state: state, client: client).rebuild((b) => b
..hasExpenses = true
..lineItems.addAll(items)));
entity: InvoiceEntity(state: state, client: client)
.rebuild((b) => b..lineItems.addAll(items)));
}
break;
case EntityAction.restore:

View File

@ -12,6 +12,7 @@ InvoiceItemEntity convertExpenseToInvoiceItem({
@required CompanyEntity company,
}) {
return InvoiceItemEntity().rebuild((b) => b
..typeId = InvoiceItemEntity.TYPE_EXPENSE
..expenseId = expense.id
..productKey = categoryMap[expense.categoryId]?.name ?? ''
..notes = expense.publicNotes

View File

@ -132,19 +132,11 @@ InvoiceEntity _updateEditing(InvoiceEntity invoice, dynamic action) {
InvoiceEntity _addInvoiceItem(InvoiceEntity invoice, AddInvoiceItem action) {
final item = action.invoiceItem ?? InvoiceItemEntity();
return invoice.rebuild((b) => b
..hasTasks = b.hasTasks || item.isTask
..hasExpenses = b.hasExpenses || item.isExpense
..lineItems.add(item));
return invoice.rebuild((b) => b..lineItems.add(item));
}
InvoiceEntity _addInvoiceItems(InvoiceEntity invoice, AddInvoiceItems action) {
return invoice.rebuild((b) => b
..hasTasks =
b.hasTasks || action.lineItems.where((item) => item.isTask).isNotEmpty
..hasExpenses = b.hasExpenses ||
action.lineItems.where((item) => item.isExpense).isNotEmpty
..lineItems.addAll(action.lineItems));
return invoice.rebuild((b) => b..lineItems.addAll(action.lineItems));
}
InvoiceEntity _removeInvoiceItem(

View File

@ -286,9 +286,8 @@ void handleProjectAction(
convertProjectToInvoiceItem(project: project, context: context);
createEntity(
context: context,
entity: InvoiceEntity(state: state, client: client).rebuild((b) => b
..hasTasks = true
..lineItems.addAll(items)));
entity: InvoiceEntity(state: state, client: client)
.rebuild((b) => b..lineItems.addAll(items)));
break;
case EntityAction.newExpense:
createEntity(

View File

@ -154,18 +154,12 @@ InvoiceEntity _updateEditing(InvoiceEntity recurringInvoice, dynamic action) {
InvoiceEntity _addRecurringInvoiceItem(
InvoiceEntity recurringInvoice, AddRecurringInvoiceItem action) {
final item = action.invoiceItem ?? InvoiceItemEntity();
return recurringInvoice.rebuild((b) => b
..hasTasks = b.hasTasks || item.isTask
..hasExpenses = b.hasExpenses || item.isExpense
..lineItems.add(item));
return recurringInvoice.rebuild((b) => b..lineItems.add(item));
}
InvoiceEntity _addRecurringInvoiceItems(
InvoiceEntity recurringInvoice, AddRecurringInvoiceItems action) {
return recurringInvoice.rebuild((b) => b
..hasTasks = action.items.where((item) => item.isTask).isNotEmpty
..hasExpenses = action.items.where((item) => item.isExpense).isNotEmpty
..lineItems.addAll(action.items));
return recurringInvoice.rebuild((b) => b..lineItems.addAll(action.items));
}
InvoiceEntity _removeRecurringInvoiceItem(

View File

@ -333,9 +333,8 @@ void handleTaskAction(
if (items.isNotEmpty) {
createEntity(
context: context,
entity: InvoiceEntity(state: state, client: client).rebuild((b) => b
..hasTasks = true
..lineItems.addAll(items)));
entity: InvoiceEntity(state: state, client: client)
.rebuild((b) => b..lineItems.addAll(items)));
}
break;
case EntityAction.clone:

View File

@ -55,8 +55,8 @@ InvoiceItemEntity convertTaskToInvoiceItem(
}
return InvoiceItemEntity().rebuild((b) => b
..taskId = task.id
..typeId = InvoiceItemEntity.TYPE_TASK
..taskId = task.id
..notes = notes
..cost = taskRateSelector(
company: state.company,