diff --git a/lib/data/models/client_model.dart b/lib/data/models/client_model.dart index fb96adbf3..0ce2753a8 100644 --- a/lib/data/models/client_model.dart +++ b/lib/data/models/client_model.dart @@ -6,6 +6,7 @@ import 'package:invoiceninja_flutter/data/models/company_model.dart'; import 'package:invoiceninja_flutter/data/models/entities.dart'; import 'package:invoiceninja_flutter/data/models/gateway_token_model.dart'; import 'package:invoiceninja_flutter/data/models/models.dart'; +import 'package:invoiceninja_flutter/redux/app/app_state.dart'; import 'package:invoiceninja_flutter/utils/formatting.dart'; part 'client_model.g.dart'; @@ -55,7 +56,7 @@ class ClientFields { abstract class ClientEntity extends Object with BaseEntity, SelectableEntity implements Built { - factory ClientEntity({String id}) { + factory ClientEntity({String id, AppState state}) { return _$ClientEntity._( id: id ?? BaseEntity.nextId, isChanged: false, diff --git a/lib/data/models/expense_model.dart b/lib/data/models/expense_model.dart index c289ca633..0eec6f65f 100644 --- a/lib/data/models/expense_model.dart +++ b/lib/data/models/expense_model.dart @@ -4,7 +4,7 @@ import 'package:built_value/serializer.dart'; import 'package:invoiceninja_flutter/constants.dart'; import 'package:invoiceninja_flutter/data/models/entities.dart'; import 'package:invoiceninja_flutter/data/models/models.dart'; -import 'package:invoiceninja_flutter/redux/ui/pref_state.dart'; +import 'package:invoiceninja_flutter/redux/app/app_state.dart'; import 'package:invoiceninja_flutter/utils/formatting.dart'; part 'expense_model.g.dart'; @@ -69,8 +69,7 @@ abstract class ExpenseEntity extends Object implements Built { factory ExpenseEntity( {String id, - CompanyEntity company, - PrefState prefState, + AppState state, VendorEntity vendor, ClientEntity client}) { return _$ExpenseEntity._( @@ -79,7 +78,7 @@ abstract class ExpenseEntity extends Object privateNotes: '', publicNotes: '', shouldBeInvoiced: false, - invoiceDocuments: prefState?.addDocumentsToInvoice ?? false, + invoiceDocuments: state?.prefState?.addDocumentsToInvoice ?? false, transactionId: '', transactionReference: '', bankId: '', @@ -90,10 +89,10 @@ abstract class ExpenseEntity extends Object exchangeRate: 1, expenseCurrencyId: (vendor != null && vendor.hasCurrency) ? vendor.currencyId - : (company?.currencyId ?? kDefaultCurrencyId), + : (state?.company?.currencyId ?? kDefaultCurrencyId), invoiceCurrencyId: (client != null && client.hasCurrency) ? client.currencyId - : (company?.currencyId ?? kDefaultCurrencyId), + : (state?.company?.currencyId ?? kDefaultCurrencyId), taxName1: '', taxName2: '', taxRate1: 0, diff --git a/lib/data/models/group_model.dart b/lib/data/models/group_model.dart index 0c41abfc2..3fcaecd37 100644 --- a/lib/data/models/group_model.dart +++ b/lib/data/models/group_model.dart @@ -4,6 +4,7 @@ import 'package:built_value/serializer.dart'; import 'package:invoiceninja_flutter/data/models/company_model.dart'; import 'package:invoiceninja_flutter/data/models/entities.dart'; import 'package:invoiceninja_flutter/data/models/models.dart'; +import 'package:invoiceninja_flutter/redux/app/app_state.dart'; import 'package:invoiceninja_flutter/utils/formatting.dart'; part 'group_model.g.dart'; @@ -43,7 +44,7 @@ class GroupFields { abstract class GroupEntity extends Object with BaseEntity, SelectableEntity implements Built { - factory GroupEntity({String id}) { + factory GroupEntity({String id, AppState state}) { return _$GroupEntity._( id: id ?? BaseEntity.nextId, isChanged: false, diff --git a/lib/data/models/invoice_model.dart b/lib/data/models/invoice_model.dart index eef0ec7ac..2b80cdfa0 100644 --- a/lib/data/models/invoice_model.dart +++ b/lib/data/models/invoice_model.dart @@ -7,6 +7,7 @@ import 'package:invoiceninja_flutter/data/models/entities.dart'; import 'package:invoiceninja_flutter/data/models/mixins/invoice_mixin.dart'; import 'package:invoiceninja_flutter/data/models/models.dart'; import 'package:invoiceninja_flutter/data/models/quote_model.dart'; +import 'package:invoiceninja_flutter/redux/app/app_state.dart'; import 'package:invoiceninja_flutter/utils/formatting.dart'; part 'invoice_model.g.dart'; @@ -70,8 +71,9 @@ abstract class InvoiceEntity extends Object factory InvoiceEntity( {String id, bool isQuote = false, - CompanyEntity company, + AppState state, ClientEntity client}) { + final company = state?.company; return _$InvoiceEntity._( id: id ?? BaseEntity.nextId, isChanged: false, @@ -520,8 +522,8 @@ abstract class InvoiceEntity extends Object String get invitationDownloadLink => invitations.isEmpty ? '' : invitations.first.downloadLink; - PaymentEntity createPayment(CompanyEntity company) { - return PaymentEntity(company: company).rebuild((b) => b + PaymentEntity createPayment(AppState state) { + return PaymentEntity(state: state).rebuild((b) => b ..invoiceId = id ..clientId = clientId ..amount = balance); diff --git a/lib/data/models/payment_model.dart b/lib/data/models/payment_model.dart index faf39f6c7..8fb2e302e 100644 --- a/lib/data/models/payment_model.dart +++ b/lib/data/models/payment_model.dart @@ -4,6 +4,7 @@ import 'package:built_value/serializer.dart'; import 'package:invoiceninja_flutter/constants.dart'; import 'package:invoiceninja_flutter/data/models/entities.dart'; import 'package:invoiceninja_flutter/data/models/models.dart'; +import 'package:invoiceninja_flutter/redux/app/app_state.dart'; import 'package:invoiceninja_flutter/utils/formatting.dart'; part 'payment_model.g.dart'; @@ -54,16 +55,16 @@ class PaymentFields { abstract class PaymentEntity extends Object with BaseEntity, SelectableEntity implements Built { - factory PaymentEntity({String id, CompanyEntity company}) { + factory PaymentEntity({String id, AppState state}) { return _$PaymentEntity._( id: id ?? BaseEntity.nextId, isChanged: false, amount: 0.0, transactionReference: '', paymentDate: convertDateTimeToSqlDate(), - paymentTypeId: company != null && - (company.settings.defaultPaymentTypeId ?? '').isNotEmpty - ? company.settings.defaultPaymentTypeId + paymentTypeId: state?.company != null && + (state.company.settings.defaultPaymentTypeId ?? '').isNotEmpty + ? state.company.settings.defaultPaymentTypeId : '', invoiceId: '', clientId: '', diff --git a/lib/data/models/product_model.dart b/lib/data/models/product_model.dart index 15506d48a..76bbf3a67 100644 --- a/lib/data/models/product_model.dart +++ b/lib/data/models/product_model.dart @@ -3,6 +3,7 @@ import 'package:built_value/built_value.dart'; import 'package:built_value/serializer.dart'; import 'package:invoiceninja_flutter/data/models/entities.dart'; import 'package:invoiceninja_flutter/data/models/models.dart'; +import 'package:invoiceninja_flutter/redux/app/app_state.dart'; import 'package:invoiceninja_flutter/utils/formatting.dart'; part 'product_model.g.dart'; @@ -47,7 +48,7 @@ class ProductFields { abstract class ProductEntity extends Object with BaseEntity, SelectableEntity implements Built { - factory ProductEntity({String id}) { + factory ProductEntity({String id, AppState state}) { return _$ProductEntity._( id: id ?? BaseEntity.nextId, isChanged: false, diff --git a/lib/data/models/project_model.dart b/lib/data/models/project_model.dart index fce2bee25..0b9cc8c67 100644 --- a/lib/data/models/project_model.dart +++ b/lib/data/models/project_model.dart @@ -3,6 +3,7 @@ import 'package:built_value/built_value.dart'; import 'package:built_value/serializer.dart'; import 'package:invoiceninja_flutter/data/models/entities.dart'; import 'package:invoiceninja_flutter/data/models/models.dart'; +import 'package:invoiceninja_flutter/redux/app/app_state.dart'; import 'package:invoiceninja_flutter/utils/formatting.dart'; part 'project_model.g.dart'; @@ -51,7 +52,7 @@ class ProjectFields { abstract class ProjectEntity extends Object with BaseEntity, SelectableEntity implements Built { - factory ProjectEntity({String id}) { + factory ProjectEntity({String id, AppState state}) { return _$ProjectEntity._( id: id ?? BaseEntity.nextId, isChanged: false, diff --git a/lib/data/models/task_model.dart b/lib/data/models/task_model.dart index 96c8123b0..3eb0e6239 100644 --- a/lib/data/models/task_model.dart +++ b/lib/data/models/task_model.dart @@ -7,6 +7,7 @@ import 'package:invoiceninja_flutter/data/models/client_model.dart'; import 'package:invoiceninja_flutter/data/models/company_model.dart'; import 'package:invoiceninja_flutter/data/models/entities.dart'; import 'package:invoiceninja_flutter/data/models/models.dart'; +import 'package:invoiceninja_flutter/redux/app/app_state.dart'; import 'package:invoiceninja_flutter/utils/formatting.dart'; part 'task_model.g.dart'; @@ -127,7 +128,8 @@ abstract class TaskTime implements Built { abstract class TaskEntity extends Object with BaseEntity, SelectableEntity, BelongsToClient implements Built { - factory TaskEntity({String id, bool isRunning = false}) { + factory TaskEntity({String id, AppState state}) { + final isRunning = state?.prefState?.autoStartTasks ?? false; return _$TaskEntity._( id: id ?? BaseEntity.nextId, isChanged: false, diff --git a/lib/data/models/tax_rate_model.dart b/lib/data/models/tax_rate_model.dart index 8e6a250db..e1ce8da97 100644 --- a/lib/data/models/tax_rate_model.dart +++ b/lib/data/models/tax_rate_model.dart @@ -4,6 +4,7 @@ import 'package:built_value/serializer.dart'; import 'package:invoiceninja_flutter/data/models/company_model.dart'; import 'package:invoiceninja_flutter/data/models/entities.dart'; import 'package:invoiceninja_flutter/data/models/models.dart'; +import 'package:invoiceninja_flutter/redux/app/app_state.dart'; import 'package:invoiceninja_flutter/utils/formatting.dart'; part 'tax_rate_model.g.dart'; @@ -44,7 +45,7 @@ class TaxRateFields { abstract class TaxRateEntity extends Object with BaseEntity, SelectableEntity implements Built { - factory TaxRateEntity({String id, String name, double rate}) { + factory TaxRateEntity({String id, String name, double rate, AppState state}) { return _$TaxRateEntity._( id: BaseEntity.nextId, isChanged: false, diff --git a/lib/data/models/user_model.dart b/lib/data/models/user_model.dart index 4c386c5f7..63d93406d 100644 --- a/lib/data/models/user_model.dart +++ b/lib/data/models/user_model.dart @@ -4,6 +4,7 @@ import 'package:built_value/serializer.dart'; import 'package:invoiceninja_flutter/data/models/company_model.dart'; import 'package:invoiceninja_flutter/data/models/entities.dart'; import 'package:invoiceninja_flutter/data/models/models.dart'; +import 'package:invoiceninja_flutter/redux/app/app_state.dart'; import 'package:invoiceninja_flutter/utils/formatting.dart'; part 'user_model.g.dart'; @@ -45,7 +46,7 @@ class UserFields { abstract class UserEntity extends Object with BaseEntity, SelectableEntity implements Built { - factory UserEntity({String id}) { + factory UserEntity({String id, AppState state}) { return _$UserEntity._( id: id ?? BaseEntity.nextId, isChanged: false, diff --git a/lib/data/models/vendor_model.dart b/lib/data/models/vendor_model.dart index 60526bc18..fa0a225d1 100644 --- a/lib/data/models/vendor_model.dart +++ b/lib/data/models/vendor_model.dart @@ -3,6 +3,7 @@ import 'package:built_value/built_value.dart'; import 'package:built_value/serializer.dart'; import 'package:invoiceninja_flutter/data/models/entities.dart'; import 'package:invoiceninja_flutter/data/models/models.dart'; +import 'package:invoiceninja_flutter/redux/app/app_state.dart'; import 'package:invoiceninja_flutter/utils/formatting.dart'; part 'vendor_model.g.dart'; @@ -61,7 +62,7 @@ class VendorFields { abstract class VendorEntity extends Object with BaseEntity, SelectableEntity implements Built { - factory VendorEntity({String id}) { + factory VendorEntity({String id, AppState state}) { return _$VendorEntity._( id: id ?? BaseEntity.nextId, isChanged: false, diff --git a/lib/redux/app/app_actions.dart b/lib/redux/app/app_actions.dart index f1da22274..55db85d75 100644 --- a/lib/redux/app/app_actions.dart +++ b/lib/redux/app/app_actions.dart @@ -314,113 +314,84 @@ void viewEntity( entityType: entity.entityType, force: force); -BaseEntity createDefaultEntity({BuildContext context, EntityType entityType}) { - final store = StoreProvider.of(context); - final state = store.state; - final company = state.company; - - switch (entityType) { - case EntityType.client: - return ClientEntity(); - break; - case EntityType.user: - return UserEntity(); - case EntityType.project: - return ProjectEntity(); - case EntityType.taxRate: - return TaxRateEntity(); - case EntityType.companyGateway: - return CompanyGatewayEntity(); - case EntityType.invoice: - return InvoiceEntity(company: company); - //case EntityType.recurringInvoice: - //store.dispatch(ViewRecurringInvoice(recurringInvoiceId: entityId, navigator: navigator)); - //break; - case EntityType.quote: - return InvoiceEntity(company: company, isQuote: true); - case EntityType.vendor: - return VendorEntity(); - case EntityType.product: - return ProductEntity(); - case EntityType.task: - return TaskEntity(isRunning: state.prefState.autoStartTasks); - case EntityType.expense: - return ExpenseEntity(prefState: state.prefState); - //case EntityType.expenseCategory: - //store.dispatch(ViewExpenseCategory(taxRateId: entityId, navigator: navigator)); - //break; - //case EntityType.credit: - //store.dispatch(ViewCredit(creditId: entityId, navigator: navigator)); - //break; - case EntityType.payment: - return PaymentEntity(company: company); - case EntityType.group: - return GroupEntity(); - // TODO Add to starter - default: - return null; - } -} - void createEntityByType( {BuildContext context, EntityType entityType, bool force = false}) { final store = StoreProvider.of(context); + final state = store.state; final navigator = Navigator.of(context); - final entity = createDefaultEntity(context: context, entityType: entityType); switch (entityType) { case EntityType.client: store.dispatch(EditClient( - client: ClientEntity(), - navigator: navigator, - force: force, - )); + client: ClientEntity(state: state), + navigator: navigator, + force: force)); break; case EntityType.user: - store - .dispatch(EditUser(navigator: navigator, force: force, user: entity)); + store.dispatch(EditUser( + navigator: navigator, + force: force, + user: UserEntity(state: state), + )); break; case EntityType.project: - store.dispatch( - EditProject(navigator: navigator, force: force, project: entity)); + store.dispatch(EditProject( + navigator: navigator, + force: force, + project: ProjectEntity(state: state))); break; case EntityType.taxRate: - store.dispatch( - EditTaxRate(navigator: navigator, force: force, taxRate: entity)); + store.dispatch(EditTaxRate( + navigator: navigator, + force: force, + taxRate: TaxRateEntity(state: state))); break; case EntityType.companyGateway: store.dispatch(EditCompanyGateway( - navigator: navigator, force: force, companyGateway: entity)); + navigator: navigator, + force: force, + companyGateway: CompanyGatewayEntity())); break; case EntityType.invoice: store.dispatch(EditInvoice( navigator: navigator, force: force, - invoice: entity, + invoice: InvoiceEntity(state: state), )); break; //case EntityType.recurringInvoice: //store.dispatch(ViewRecurringInvoice(recurringInvoiceId: entityId, navigator: navigator)); //break; case EntityType.quote: - store.dispatch( - EditQuote(navigator: navigator, force: force, quote: entity)); + store.dispatch(EditQuote( + navigator: navigator, + force: force, + quote: InvoiceEntity( + state: state, + isQuote: true, + ))); break; case EntityType.vendor: - store.dispatch( - EditVendor(navigator: navigator, force: force, vendor: entity)); + store.dispatch(EditVendor( + navigator: navigator, + force: force, + vendor: VendorEntity(state: state))); break; case EntityType.product: - store.dispatch( - EditProduct(navigator: navigator, force: force, product: entity)); + store.dispatch(EditProduct( + navigator: navigator, + force: force, + product: ProductEntity(state: state))); break; case EntityType.task: - store - .dispatch(EditTask(navigator: navigator, force: force, task: entity)); + store.dispatch(EditTask( + navigator: navigator, force: force, task: TaskEntity(state: state))); break; case EntityType.expense: - store.dispatch( - EditExpense(navigator: navigator, force: force, expense: entity)); + store.dispatch(EditExpense( + navigator: navigator, + force: force, + expense: ExpenseEntity(state: state))); break; //case EntityType.expenseCategory: //store.dispatch(ViewExpenseCategory(taxRateId: entityId, navigator: navigator)); @@ -429,12 +400,17 @@ void createEntityByType( //store.dispatch(ViewCredit(creditId: entityId, navigator: navigator)); //break; case EntityType.payment: - store.dispatch( - EditPayment(navigator: navigator, force: force, payment: entity)); + store.dispatch(EditPayment( + navigator: navigator, + force: force, + payment: PaymentEntity(state: state))); break; case EntityType.group: - store.dispatch( - EditGroup(navigator: navigator, force: force, group: entity)); + store.dispatch(EditGroup( + navigator: navigator, + force: force, + group: GroupEntity(state: state), + )); break; // TODO Add to starter } diff --git a/lib/redux/client/client_actions.dart b/lib/redux/client/client_actions.dart index 0dea68cfd..96ec0d8f6 100644 --- a/lib/redux/client/client_actions.dart +++ b/lib/redux/client/client_actions.dart @@ -285,7 +285,6 @@ void handleClientAction( final store = StoreProvider.of(context); final state = store.state; - final CompanyEntity company = state.company; final localization = AppLocalization.of(context); final clientIds = clients.map((client) => client.id).toList(); final client = clients[0]; @@ -297,18 +296,17 @@ void handleClientAction( case EntityAction.newInvoice: createEntity( context: context, - entity: InvoiceEntity(company: company, client: client)); + entity: InvoiceEntity(state: state, client: client)); break; case EntityAction.newExpense: createEntity( context: context, - entity: ExpenseEntity( - company: company, client: client, prefState: state.prefState)); + entity: ExpenseEntity(state: state, client: client)); break; case EntityAction.newPayment: createEntity( context: context, - entity: PaymentEntity(company: company) + entity: PaymentEntity(state: state) .rebuild((b) => b.clientId = client.id)); break; case EntityAction.restore: diff --git a/lib/redux/expense/expense_actions.dart b/lib/redux/expense/expense_actions.dart index 6ec67cfdd..40c46d9fd 100644 --- a/lib/redux/expense/expense_actions.dart +++ b/lib/redux/expense/expense_actions.dart @@ -276,7 +276,7 @@ void handleExpenseAction( expense: expense, categoryMap: company.expenseCategoryMap); createEntity( context: context, - entity: InvoiceEntity(company: company).rebuild((b) => b + entity: InvoiceEntity(state: state).rebuild((b) => b ..hasExpenses = true ..clientId = expense.clientId ..lineItems.add(item))); diff --git a/lib/redux/invoice/invoice_actions.dart b/lib/redux/invoice/invoice_actions.dart index b803dd00e..3d5f82856 100644 --- a/lib/redux/invoice/invoice_actions.dart +++ b/lib/redux/invoice/invoice_actions.dart @@ -357,7 +357,6 @@ void handleInvoiceAction(BuildContext context, List invoices, final store = StoreProvider.of(context); final state = store.state; - final CompanyEntity company = state.company; final localization = AppLocalization.of(context); final invoice = invoices.first as InvoiceEntity; final invoiceIds = invoices.map((invoice) => invoice.id).toList(); @@ -394,7 +393,7 @@ void handleInvoiceAction(BuildContext context, List invoices, createEntity(context: context, entity: invoice.clone); // TODO fix this break; case EntityAction.newPayment: - createEntity(context: context, entity: invoice.createPayment(company)); + createEntity(context: context, entity: invoice.createPayment(state)); break; case EntityAction.restore: store.dispatch(RestoreInvoiceRequest( diff --git a/lib/redux/product/product_actions.dart b/lib/redux/product/product_actions.dart index 56edc0eaa..21607c6a8 100644 --- a/lib/redux/product/product_actions.dart +++ b/lib/redux/product/product_actions.dart @@ -226,7 +226,7 @@ void handleProductAction( convertProductToInvoiceItem(context: context, product: product); createEntity( context: context, - entity: InvoiceEntity(company: state.company) + entity: InvoiceEntity(state: state) .rebuild((b) => b..lineItems.add(item))); break; case EntityAction.edit: diff --git a/lib/redux/project/project_actions.dart b/lib/redux/project/project_actions.dart index a2d60fe38..033599599 100644 --- a/lib/redux/project/project_actions.dart +++ b/lib/redux/project/project_actions.dart @@ -259,7 +259,6 @@ void handleProjectAction( final store = StoreProvider.of(context); final state = store.state; - final CompanyEntity company = state.company; final project = projects.first as ProjectEntity; final projectIds = projects.map((project) => project.id).toList(); @@ -270,7 +269,7 @@ void handleProjectAction( case EntityAction.newTask: createEntity( context: context, - entity: TaskEntity(isRunning: state.prefState.autoStartTasks) + entity: TaskEntity(state: state) .rebuild((b) => b ..projectId = project.id ..clientId = project.clientId)); @@ -280,7 +279,7 @@ void handleProjectAction( convertProjectToInvoiceItem(project: project, context: context); createEntity( context: context, - entity: InvoiceEntity(company: company).rebuild((b) => b + entity: InvoiceEntity(state: state).rebuild((b) => b ..hasTasks = true ..clientId = project.clientId ..lineItems.addAll(items))); diff --git a/lib/redux/task/task_actions.dart b/lib/redux/task/task_actions.dart index 3baba75c2..9f8106485 100644 --- a/lib/redux/task/task_actions.dart +++ b/lib/redux/task/task_actions.dart @@ -294,7 +294,6 @@ void handleTaskAction( final store = StoreProvider.of(context); final state = store.state; - final CompanyEntity company = state.company; final localization = AppLocalization.of(context); final task = tasks.first as TaskEntity; final taskIds = tasks.map((task) => task.id).toList(); @@ -332,7 +331,7 @@ void handleTaskAction( final item = convertTaskToInvoiceItem(task: task, context: context); createEntity( context: context, - entity: InvoiceEntity(company: company).rebuild((b) => b + entity: InvoiceEntity(state: state).rebuild((b) => b ..hasTasks = true ..clientId = task.clientId ..lineItems.add(item))); diff --git a/lib/redux/vendor/vendor_actions.dart b/lib/redux/vendor/vendor_actions.dart index 001349f90..4e936a207 100644 --- a/lib/redux/vendor/vendor_actions.dart +++ b/lib/redux/vendor/vendor_actions.dart @@ -284,7 +284,6 @@ void handleVendorAction( final store = StoreProvider.of(context); final state = store.state; - final CompanyEntity company = state.company; final localization = AppLocalization.of(context); final vendor = vendors.first as VendorEntity; final vendorIds = vendors.map((vendor) => vendor.id).toList(); @@ -296,7 +295,7 @@ void handleVendorAction( case EntityAction.newExpense: createEntity( context: context, - entity: ExpenseEntity(company: company, vendor: vendor)); + entity: ExpenseEntity(state: state, vendor: vendor)); break; case EntityAction.restore: store.dispatch(RestoreVendorRequest( diff --git a/lib/ui/client/view/client_view.dart b/lib/ui/client/view/client_view.dart index e0f8e908e..019ad638d 100644 --- a/lib/ui/client/view/client_view.dart +++ b/lib/ui/client/view/client_view.dart @@ -83,7 +83,7 @@ class _ClientViewState extends State createEntity( context: context, entity: InvoiceEntity( - company: company, client: client)); + state: viewModel.state, client: client)); }, ) : Container(), @@ -96,7 +96,7 @@ class _ClientViewState extends State Navigator.of(context).pop(); createEntity( context: context, - entity: PaymentEntity(company: company) + entity: PaymentEntity(state: store.state) .rebuild((b) => b.clientId = client.id)); }, ) @@ -112,7 +112,7 @@ class _ClientViewState extends State createEntity( context: context, entity: InvoiceEntity( - company: company, + state: viewModel.state, client: client, isQuote: true)); }, @@ -143,9 +143,7 @@ class _ClientViewState extends State Navigator.of(context).pop(); createEntity( context: context, - entity: TaskEntity( - isRunning: - store.state.prefState.autoStartTasks) + entity: TaskEntity(state: viewModel.state) .rebuild((b) => b.clientId = client.id)); }, ) @@ -161,9 +159,8 @@ class _ClientViewState extends State createEntity( context: context, entity: ExpenseEntity( - company: company, - client: client, - prefState: store.state.prefState)); + state: store.state, + client: client,)); }, ) : Container(), diff --git a/lib/ui/client/view/client_view_vm.dart b/lib/ui/client/view/client_view_vm.dart index 9845e88cc..650414760 100644 --- a/lib/ui/client/view/client_view_vm.dart +++ b/lib/ui/client/view/client_view_vm.dart @@ -88,7 +88,7 @@ class ClientViewVM { createEntity( context: context, entity: - InvoiceEntity(company: state.company, client: client)); + InvoiceEntity(state: state, client: client)); } else { viewEntitiesByType( context: context, @@ -101,7 +101,7 @@ class ClientViewVM { createEntity( context: context, entity: InvoiceEntity( - company: state.company, client: client, isQuote: true)); + state: state, client: client, isQuote: true)); } else { viewEntitiesByType( context: context, @@ -113,7 +113,7 @@ class ClientViewVM { if (longPress && client.isActive) { createEntity( context: context, - entity: PaymentEntity(company: state.company) + entity: PaymentEntity(state: state) .rebuild((b) => b..clientId = client.id)); } else { viewEntitiesByType( @@ -139,7 +139,7 @@ class ClientViewVM { if (longPress && client.isActive) { createEntity( context: context, - entity: TaskEntity(isRunning: state.prefState.autoStartTasks) + entity: TaskEntity(state: state) .rebuild((b) => b..clientId = client.id)); } else { viewEntitiesByType( @@ -153,9 +153,8 @@ class ClientViewVM { createEntity( context: context, entity: ExpenseEntity( - company: state.company, - client: client, - prefState: state.prefState)); + state: state, + client: client,)); } else { viewEntitiesByType( context: context, diff --git a/lib/ui/project/view/project_view_vm.dart b/lib/ui/project/view/project_view_vm.dart index 33346c215..55caf13c2 100644 --- a/lib/ui/project/view/project_view_vm.dart +++ b/lib/ui/project/view/project_view_vm.dart @@ -95,7 +95,7 @@ class ProjectViewVM { if (longPress && project.isActive && client.isActive) { createEntity( context: context, - entity: TaskEntity(isRunning: state.prefState.autoStartTasks) + entity: TaskEntity(state: state) .rebuild((b) => b ..projectId = project.id ..clientId = project.clientId)); @@ -109,7 +109,7 @@ class ProjectViewVM { onAddTaskPressed: (context) { createEntity( context: context, - entity: TaskEntity(isRunning: state.prefState.autoStartTasks) + entity: TaskEntity(state: state) .rebuild((b) => b ..projectId = project.id ..clientId = project.clientId), diff --git a/lib/ui/user/view/user_view_vm.dart b/lib/ui/user/view/user_view_vm.dart index df474e6cb..b391d9cac 100644 --- a/lib/ui/user/view/user_view_vm.dart +++ b/lib/ui/user/view/user_view_vm.dart @@ -88,7 +88,7 @@ class UserViewVM { if (longPress && user.isActive) { createEntity( context: context, - entity: InvoiceEntity(company: state.company)); + entity: InvoiceEntity(state: state)); } else { viewEntitiesByType( context: context, @@ -100,7 +100,7 @@ class UserViewVM { if (longPress && user.isActive) { createEntity( context: context, - entity: InvoiceEntity(company: state.company, isQuote: true)); + entity: InvoiceEntity(state: state, isQuote: true)); } else { viewEntitiesByType( context: context, @@ -112,7 +112,7 @@ class UserViewVM { if (longPress && user.isActive) { createEntity( context: context, - entity: PaymentEntity(company: state.company)); + entity: PaymentEntity(state: state)); } else { viewEntitiesByType( context: context, @@ -135,7 +135,7 @@ class UserViewVM { createEntity( context: context, entity: - TaskEntity(isRunning: state.prefState.autoStartTasks)); + TaskEntity(state: state)); } else { viewEntitiesByType( context: context, diff --git a/lib/ui/vendor/view/vendor_view_vm.dart b/lib/ui/vendor/view/vendor_view_vm.dart index 337ce4d44..df561e116 100644 --- a/lib/ui/vendor/view/vendor_view_vm.dart +++ b/lib/ui/vendor/view/vendor_view_vm.dart @@ -90,7 +90,7 @@ class VendorViewVM { createEntity( context: context, entity: - ExpenseEntity(company: state.company, vendor: vendor)); + ExpenseEntity(state: state, vendor: vendor)); } else { viewEntitiesByType( context: context, entityType: EntityType.expense, filterEntity: vendor); @@ -101,7 +101,7 @@ class VendorViewVM { onAddExpensePressed: (context) { createEntity( context: context, - entity: ExpenseEntity(company: state.company, vendor: vendor)); + entity: ExpenseEntity(state: state, vendor: vendor)); }, onEntityAction: (BuildContext context, EntityAction action) => handleVendorAction(context, [vendor], action),