This commit is contained in:
Hillel Coren 2019-11-17 23:51:28 +02:00
parent c690006984
commit 85fd533452
24 changed files with 113 additions and 136 deletions

View File

@ -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/entities.dart';
import 'package:invoiceninja_flutter/data/models/gateway_token_model.dart'; import 'package:invoiceninja_flutter/data/models/gateway_token_model.dart';
import 'package:invoiceninja_flutter/data/models/models.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'; import 'package:invoiceninja_flutter/utils/formatting.dart';
part 'client_model.g.dart'; part 'client_model.g.dart';
@ -55,7 +56,7 @@ class ClientFields {
abstract class ClientEntity extends Object abstract class ClientEntity extends Object
with BaseEntity, SelectableEntity with BaseEntity, SelectableEntity
implements Built<ClientEntity, ClientEntityBuilder> { implements Built<ClientEntity, ClientEntityBuilder> {
factory ClientEntity({String id}) { factory ClientEntity({String id, AppState state}) {
return _$ClientEntity._( return _$ClientEntity._(
id: id ?? BaseEntity.nextId, id: id ?? BaseEntity.nextId,
isChanged: false, isChanged: false,

View File

@ -4,7 +4,7 @@ import 'package:built_value/serializer.dart';
import 'package:invoiceninja_flutter/constants.dart'; import 'package:invoiceninja_flutter/constants.dart';
import 'package:invoiceninja_flutter/data/models/entities.dart'; import 'package:invoiceninja_flutter/data/models/entities.dart';
import 'package:invoiceninja_flutter/data/models/models.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'; import 'package:invoiceninja_flutter/utils/formatting.dart';
part 'expense_model.g.dart'; part 'expense_model.g.dart';
@ -69,8 +69,7 @@ abstract class ExpenseEntity extends Object
implements Built<ExpenseEntity, ExpenseEntityBuilder> { implements Built<ExpenseEntity, ExpenseEntityBuilder> {
factory ExpenseEntity( factory ExpenseEntity(
{String id, {String id,
CompanyEntity company, AppState state,
PrefState prefState,
VendorEntity vendor, VendorEntity vendor,
ClientEntity client}) { ClientEntity client}) {
return _$ExpenseEntity._( return _$ExpenseEntity._(
@ -79,7 +78,7 @@ abstract class ExpenseEntity extends Object
privateNotes: '', privateNotes: '',
publicNotes: '', publicNotes: '',
shouldBeInvoiced: false, shouldBeInvoiced: false,
invoiceDocuments: prefState?.addDocumentsToInvoice ?? false, invoiceDocuments: state?.prefState?.addDocumentsToInvoice ?? false,
transactionId: '', transactionId: '',
transactionReference: '', transactionReference: '',
bankId: '', bankId: '',
@ -90,10 +89,10 @@ abstract class ExpenseEntity extends Object
exchangeRate: 1, exchangeRate: 1,
expenseCurrencyId: (vendor != null && vendor.hasCurrency) expenseCurrencyId: (vendor != null && vendor.hasCurrency)
? vendor.currencyId ? vendor.currencyId
: (company?.currencyId ?? kDefaultCurrencyId), : (state?.company?.currencyId ?? kDefaultCurrencyId),
invoiceCurrencyId: (client != null && client.hasCurrency) invoiceCurrencyId: (client != null && client.hasCurrency)
? client.currencyId ? client.currencyId
: (company?.currencyId ?? kDefaultCurrencyId), : (state?.company?.currencyId ?? kDefaultCurrencyId),
taxName1: '', taxName1: '',
taxName2: '', taxName2: '',
taxRate1: 0, taxRate1: 0,

View File

@ -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/company_model.dart';
import 'package:invoiceninja_flutter/data/models/entities.dart'; import 'package:invoiceninja_flutter/data/models/entities.dart';
import 'package:invoiceninja_flutter/data/models/models.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'; import 'package:invoiceninja_flutter/utils/formatting.dart';
part 'group_model.g.dart'; part 'group_model.g.dart';
@ -43,7 +44,7 @@ class GroupFields {
abstract class GroupEntity extends Object abstract class GroupEntity extends Object
with BaseEntity, SelectableEntity with BaseEntity, SelectableEntity
implements Built<GroupEntity, GroupEntityBuilder> { implements Built<GroupEntity, GroupEntityBuilder> {
factory GroupEntity({String id}) { factory GroupEntity({String id, AppState state}) {
return _$GroupEntity._( return _$GroupEntity._(
id: id ?? BaseEntity.nextId, id: id ?? BaseEntity.nextId,
isChanged: false, isChanged: false,

View File

@ -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/mixins/invoice_mixin.dart';
import 'package:invoiceninja_flutter/data/models/models.dart'; import 'package:invoiceninja_flutter/data/models/models.dart';
import 'package:invoiceninja_flutter/data/models/quote_model.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'; import 'package:invoiceninja_flutter/utils/formatting.dart';
part 'invoice_model.g.dart'; part 'invoice_model.g.dart';
@ -70,8 +71,9 @@ abstract class InvoiceEntity extends Object
factory InvoiceEntity( factory InvoiceEntity(
{String id, {String id,
bool isQuote = false, bool isQuote = false,
CompanyEntity company, AppState state,
ClientEntity client}) { ClientEntity client}) {
final company = state?.company;
return _$InvoiceEntity._( return _$InvoiceEntity._(
id: id ?? BaseEntity.nextId, id: id ?? BaseEntity.nextId,
isChanged: false, isChanged: false,
@ -520,8 +522,8 @@ abstract class InvoiceEntity extends Object
String get invitationDownloadLink => String get invitationDownloadLink =>
invitations.isEmpty ? '' : invitations.first.downloadLink; invitations.isEmpty ? '' : invitations.first.downloadLink;
PaymentEntity createPayment(CompanyEntity company) { PaymentEntity createPayment(AppState state) {
return PaymentEntity(company: company).rebuild((b) => b return PaymentEntity(state: state).rebuild((b) => b
..invoiceId = id ..invoiceId = id
..clientId = clientId ..clientId = clientId
..amount = balance); ..amount = balance);

View File

@ -4,6 +4,7 @@ import 'package:built_value/serializer.dart';
import 'package:invoiceninja_flutter/constants.dart'; import 'package:invoiceninja_flutter/constants.dart';
import 'package:invoiceninja_flutter/data/models/entities.dart'; import 'package:invoiceninja_flutter/data/models/entities.dart';
import 'package:invoiceninja_flutter/data/models/models.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'; import 'package:invoiceninja_flutter/utils/formatting.dart';
part 'payment_model.g.dart'; part 'payment_model.g.dart';
@ -54,16 +55,16 @@ class PaymentFields {
abstract class PaymentEntity extends Object abstract class PaymentEntity extends Object
with BaseEntity, SelectableEntity with BaseEntity, SelectableEntity
implements Built<PaymentEntity, PaymentEntityBuilder> { implements Built<PaymentEntity, PaymentEntityBuilder> {
factory PaymentEntity({String id, CompanyEntity company}) { factory PaymentEntity({String id, AppState state}) {
return _$PaymentEntity._( return _$PaymentEntity._(
id: id ?? BaseEntity.nextId, id: id ?? BaseEntity.nextId,
isChanged: false, isChanged: false,
amount: 0.0, amount: 0.0,
transactionReference: '', transactionReference: '',
paymentDate: convertDateTimeToSqlDate(), paymentDate: convertDateTimeToSqlDate(),
paymentTypeId: company != null && paymentTypeId: state?.company != null &&
(company.settings.defaultPaymentTypeId ?? '').isNotEmpty (state.company.settings.defaultPaymentTypeId ?? '').isNotEmpty
? company.settings.defaultPaymentTypeId ? state.company.settings.defaultPaymentTypeId
: '', : '',
invoiceId: '', invoiceId: '',
clientId: '', clientId: '',

View File

@ -3,6 +3,7 @@ import 'package:built_value/built_value.dart';
import 'package:built_value/serializer.dart'; import 'package:built_value/serializer.dart';
import 'package:invoiceninja_flutter/data/models/entities.dart'; import 'package:invoiceninja_flutter/data/models/entities.dart';
import 'package:invoiceninja_flutter/data/models/models.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'; import 'package:invoiceninja_flutter/utils/formatting.dart';
part 'product_model.g.dart'; part 'product_model.g.dart';
@ -47,7 +48,7 @@ class ProductFields {
abstract class ProductEntity extends Object abstract class ProductEntity extends Object
with BaseEntity, SelectableEntity with BaseEntity, SelectableEntity
implements Built<ProductEntity, ProductEntityBuilder> { implements Built<ProductEntity, ProductEntityBuilder> {
factory ProductEntity({String id}) { factory ProductEntity({String id, AppState state}) {
return _$ProductEntity._( return _$ProductEntity._(
id: id ?? BaseEntity.nextId, id: id ?? BaseEntity.nextId,
isChanged: false, isChanged: false,

View File

@ -3,6 +3,7 @@ import 'package:built_value/built_value.dart';
import 'package:built_value/serializer.dart'; import 'package:built_value/serializer.dart';
import 'package:invoiceninja_flutter/data/models/entities.dart'; import 'package:invoiceninja_flutter/data/models/entities.dart';
import 'package:invoiceninja_flutter/data/models/models.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'; import 'package:invoiceninja_flutter/utils/formatting.dart';
part 'project_model.g.dart'; part 'project_model.g.dart';
@ -51,7 +52,7 @@ class ProjectFields {
abstract class ProjectEntity extends Object abstract class ProjectEntity extends Object
with BaseEntity, SelectableEntity with BaseEntity, SelectableEntity
implements Built<ProjectEntity, ProjectEntityBuilder> { implements Built<ProjectEntity, ProjectEntityBuilder> {
factory ProjectEntity({String id}) { factory ProjectEntity({String id, AppState state}) {
return _$ProjectEntity._( return _$ProjectEntity._(
id: id ?? BaseEntity.nextId, id: id ?? BaseEntity.nextId,
isChanged: false, isChanged: false,

View File

@ -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/company_model.dart';
import 'package:invoiceninja_flutter/data/models/entities.dart'; import 'package:invoiceninja_flutter/data/models/entities.dart';
import 'package:invoiceninja_flutter/data/models/models.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'; import 'package:invoiceninja_flutter/utils/formatting.dart';
part 'task_model.g.dart'; part 'task_model.g.dart';
@ -127,7 +128,8 @@ abstract class TaskTime implements Built<TaskTime, TaskTimeBuilder> {
abstract class TaskEntity extends Object abstract class TaskEntity extends Object
with BaseEntity, SelectableEntity, BelongsToClient with BaseEntity, SelectableEntity, BelongsToClient
implements Built<TaskEntity, TaskEntityBuilder> { implements Built<TaskEntity, TaskEntityBuilder> {
factory TaskEntity({String id, bool isRunning = false}) { factory TaskEntity({String id, AppState state}) {
final isRunning = state?.prefState?.autoStartTasks ?? false;
return _$TaskEntity._( return _$TaskEntity._(
id: id ?? BaseEntity.nextId, id: id ?? BaseEntity.nextId,
isChanged: false, isChanged: false,

View File

@ -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/company_model.dart';
import 'package:invoiceninja_flutter/data/models/entities.dart'; import 'package:invoiceninja_flutter/data/models/entities.dart';
import 'package:invoiceninja_flutter/data/models/models.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'; import 'package:invoiceninja_flutter/utils/formatting.dart';
part 'tax_rate_model.g.dart'; part 'tax_rate_model.g.dart';
@ -44,7 +45,7 @@ class TaxRateFields {
abstract class TaxRateEntity extends Object abstract class TaxRateEntity extends Object
with BaseEntity, SelectableEntity with BaseEntity, SelectableEntity
implements Built<TaxRateEntity, TaxRateEntityBuilder> { implements Built<TaxRateEntity, TaxRateEntityBuilder> {
factory TaxRateEntity({String id, String name, double rate}) { factory TaxRateEntity({String id, String name, double rate, AppState state}) {
return _$TaxRateEntity._( return _$TaxRateEntity._(
id: BaseEntity.nextId, id: BaseEntity.nextId,
isChanged: false, isChanged: false,

View File

@ -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/company_model.dart';
import 'package:invoiceninja_flutter/data/models/entities.dart'; import 'package:invoiceninja_flutter/data/models/entities.dart';
import 'package:invoiceninja_flutter/data/models/models.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'; import 'package:invoiceninja_flutter/utils/formatting.dart';
part 'user_model.g.dart'; part 'user_model.g.dart';
@ -45,7 +46,7 @@ class UserFields {
abstract class UserEntity extends Object abstract class UserEntity extends Object
with BaseEntity, SelectableEntity with BaseEntity, SelectableEntity
implements Built<UserEntity, UserEntityBuilder> { implements Built<UserEntity, UserEntityBuilder> {
factory UserEntity({String id}) { factory UserEntity({String id, AppState state}) {
return _$UserEntity._( return _$UserEntity._(
id: id ?? BaseEntity.nextId, id: id ?? BaseEntity.nextId,
isChanged: false, isChanged: false,

View File

@ -3,6 +3,7 @@ import 'package:built_value/built_value.dart';
import 'package:built_value/serializer.dart'; import 'package:built_value/serializer.dart';
import 'package:invoiceninja_flutter/data/models/entities.dart'; import 'package:invoiceninja_flutter/data/models/entities.dart';
import 'package:invoiceninja_flutter/data/models/models.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'; import 'package:invoiceninja_flutter/utils/formatting.dart';
part 'vendor_model.g.dart'; part 'vendor_model.g.dart';
@ -61,7 +62,7 @@ class VendorFields {
abstract class VendorEntity extends Object abstract class VendorEntity extends Object
with BaseEntity, SelectableEntity with BaseEntity, SelectableEntity
implements Built<VendorEntity, VendorEntityBuilder> { implements Built<VendorEntity, VendorEntityBuilder> {
factory VendorEntity({String id}) { factory VendorEntity({String id, AppState state}) {
return _$VendorEntity._( return _$VendorEntity._(
id: id ?? BaseEntity.nextId, id: id ?? BaseEntity.nextId,
isChanged: false, isChanged: false,

View File

@ -314,113 +314,84 @@ void viewEntity(
entityType: entity.entityType, entityType: entity.entityType,
force: force); force: force);
BaseEntity createDefaultEntity({BuildContext context, EntityType entityType}) {
final store = StoreProvider.of<AppState>(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( void createEntityByType(
{BuildContext context, EntityType entityType, bool force = false}) { {BuildContext context, EntityType entityType, bool force = false}) {
final store = StoreProvider.of<AppState>(context); final store = StoreProvider.of<AppState>(context);
final state = store.state;
final navigator = Navigator.of(context); final navigator = Navigator.of(context);
final entity = createDefaultEntity(context: context, entityType: entityType);
switch (entityType) { switch (entityType) {
case EntityType.client: case EntityType.client:
store.dispatch(EditClient( store.dispatch(EditClient(
client: ClientEntity(), client: ClientEntity(state: state),
navigator: navigator, navigator: navigator,
force: force, force: force));
));
break; break;
case EntityType.user: case EntityType.user:
store store.dispatch(EditUser(
.dispatch(EditUser(navigator: navigator, force: force, user: entity)); navigator: navigator,
force: force,
user: UserEntity(state: state),
));
break; break;
case EntityType.project: case EntityType.project:
store.dispatch( store.dispatch(EditProject(
EditProject(navigator: navigator, force: force, project: entity)); navigator: navigator,
force: force,
project: ProjectEntity(state: state)));
break; break;
case EntityType.taxRate: case EntityType.taxRate:
store.dispatch( store.dispatch(EditTaxRate(
EditTaxRate(navigator: navigator, force: force, taxRate: entity)); navigator: navigator,
force: force,
taxRate: TaxRateEntity(state: state)));
break; break;
case EntityType.companyGateway: case EntityType.companyGateway:
store.dispatch(EditCompanyGateway( store.dispatch(EditCompanyGateway(
navigator: navigator, force: force, companyGateway: entity)); navigator: navigator,
force: force,
companyGateway: CompanyGatewayEntity()));
break; break;
case EntityType.invoice: case EntityType.invoice:
store.dispatch(EditInvoice( store.dispatch(EditInvoice(
navigator: navigator, navigator: navigator,
force: force, force: force,
invoice: entity, invoice: InvoiceEntity(state: state),
)); ));
break; break;
//case EntityType.recurringInvoice: //case EntityType.recurringInvoice:
//store.dispatch(ViewRecurringInvoice(recurringInvoiceId: entityId, navigator: navigator)); //store.dispatch(ViewRecurringInvoice(recurringInvoiceId: entityId, navigator: navigator));
//break; //break;
case EntityType.quote: case EntityType.quote:
store.dispatch( store.dispatch(EditQuote(
EditQuote(navigator: navigator, force: force, quote: entity)); navigator: navigator,
force: force,
quote: InvoiceEntity(
state: state,
isQuote: true,
)));
break; break;
case EntityType.vendor: case EntityType.vendor:
store.dispatch( store.dispatch(EditVendor(
EditVendor(navigator: navigator, force: force, vendor: entity)); navigator: navigator,
force: force,
vendor: VendorEntity(state: state)));
break; break;
case EntityType.product: case EntityType.product:
store.dispatch( store.dispatch(EditProduct(
EditProduct(navigator: navigator, force: force, product: entity)); navigator: navigator,
force: force,
product: ProductEntity(state: state)));
break; break;
case EntityType.task: case EntityType.task:
store store.dispatch(EditTask(
.dispatch(EditTask(navigator: navigator, force: force, task: entity)); navigator: navigator, force: force, task: TaskEntity(state: state)));
break; break;
case EntityType.expense: case EntityType.expense:
store.dispatch( store.dispatch(EditExpense(
EditExpense(navigator: navigator, force: force, expense: entity)); navigator: navigator,
force: force,
expense: ExpenseEntity(state: state)));
break; break;
//case EntityType.expenseCategory: //case EntityType.expenseCategory:
//store.dispatch(ViewExpenseCategory(taxRateId: entityId, navigator: navigator)); //store.dispatch(ViewExpenseCategory(taxRateId: entityId, navigator: navigator));
@ -429,12 +400,17 @@ void createEntityByType(
//store.dispatch(ViewCredit(creditId: entityId, navigator: navigator)); //store.dispatch(ViewCredit(creditId: entityId, navigator: navigator));
//break; //break;
case EntityType.payment: case EntityType.payment:
store.dispatch( store.dispatch(EditPayment(
EditPayment(navigator: navigator, force: force, payment: entity)); navigator: navigator,
force: force,
payment: PaymentEntity(state: state)));
break; break;
case EntityType.group: case EntityType.group:
store.dispatch( store.dispatch(EditGroup(
EditGroup(navigator: navigator, force: force, group: entity)); navigator: navigator,
force: force,
group: GroupEntity(state: state),
));
break; break;
// TODO Add to starter // TODO Add to starter
} }

View File

@ -285,7 +285,6 @@ void handleClientAction(
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 localization = AppLocalization.of(context); final localization = AppLocalization.of(context);
final clientIds = clients.map((client) => client.id).toList(); final clientIds = clients.map((client) => client.id).toList();
final client = clients[0]; final client = clients[0];
@ -297,18 +296,17 @@ void handleClientAction(
case EntityAction.newInvoice: case EntityAction.newInvoice:
createEntity( createEntity(
context: context, context: context,
entity: InvoiceEntity(company: company, client: client)); entity: InvoiceEntity(state: state, client: client));
break; break;
case EntityAction.newExpense: case EntityAction.newExpense:
createEntity( createEntity(
context: context, context: context,
entity: ExpenseEntity( entity: ExpenseEntity(state: state, client: client));
company: company, client: client, prefState: state.prefState));
break; break;
case EntityAction.newPayment: case EntityAction.newPayment:
createEntity( createEntity(
context: context, context: context,
entity: PaymentEntity(company: company) entity: PaymentEntity(state: state)
.rebuild((b) => b.clientId = client.id)); .rebuild((b) => b.clientId = client.id));
break; break;
case EntityAction.restore: case EntityAction.restore:

View File

@ -276,7 +276,7 @@ void handleExpenseAction(
expense: expense, categoryMap: company.expenseCategoryMap); expense: expense, categoryMap: company.expenseCategoryMap);
createEntity( createEntity(
context: context, context: context,
entity: InvoiceEntity(company: company).rebuild((b) => b entity: InvoiceEntity(state: state).rebuild((b) => b
..hasExpenses = true ..hasExpenses = true
..clientId = expense.clientId ..clientId = expense.clientId
..lineItems.add(item))); ..lineItems.add(item)));

View File

@ -357,7 +357,6 @@ void handleInvoiceAction(BuildContext context, List<BaseEntity> invoices,
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 localization = AppLocalization.of(context); final localization = AppLocalization.of(context);
final invoice = invoices.first as InvoiceEntity; final invoice = invoices.first as InvoiceEntity;
final invoiceIds = invoices.map((invoice) => invoice.id).toList(); final invoiceIds = invoices.map((invoice) => invoice.id).toList();
@ -394,7 +393,7 @@ void handleInvoiceAction(BuildContext context, List<BaseEntity> invoices,
createEntity(context: context, entity: invoice.clone); // TODO fix this createEntity(context: context, entity: invoice.clone); // TODO fix this
break; break;
case EntityAction.newPayment: case EntityAction.newPayment:
createEntity(context: context, entity: invoice.createPayment(company)); createEntity(context: context, entity: invoice.createPayment(state));
break; break;
case EntityAction.restore: case EntityAction.restore:
store.dispatch(RestoreInvoiceRequest( store.dispatch(RestoreInvoiceRequest(

View File

@ -226,7 +226,7 @@ void handleProductAction(
convertProductToInvoiceItem(context: context, product: product); convertProductToInvoiceItem(context: context, product: product);
createEntity( createEntity(
context: context, context: context,
entity: InvoiceEntity(company: state.company) entity: InvoiceEntity(state: state)
.rebuild((b) => b..lineItems.add(item))); .rebuild((b) => b..lineItems.add(item)));
break; break;
case EntityAction.edit: case EntityAction.edit:

View File

@ -259,7 +259,6 @@ void handleProjectAction(
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 project = projects.first as ProjectEntity; final project = projects.first as ProjectEntity;
final projectIds = projects.map((project) => project.id).toList(); final projectIds = projects.map((project) => project.id).toList();
@ -270,7 +269,7 @@ void handleProjectAction(
case EntityAction.newTask: case EntityAction.newTask:
createEntity( createEntity(
context: context, context: context,
entity: TaskEntity(isRunning: state.prefState.autoStartTasks) entity: TaskEntity(state: state)
.rebuild((b) => b .rebuild((b) => b
..projectId = project.id ..projectId = project.id
..clientId = project.clientId)); ..clientId = project.clientId));
@ -280,7 +279,7 @@ void handleProjectAction(
convertProjectToInvoiceItem(project: project, context: context); convertProjectToInvoiceItem(project: project, context: context);
createEntity( createEntity(
context: context, context: context,
entity: InvoiceEntity(company: company).rebuild((b) => b entity: InvoiceEntity(state: state).rebuild((b) => b
..hasTasks = true ..hasTasks = true
..clientId = project.clientId ..clientId = project.clientId
..lineItems.addAll(items))); ..lineItems.addAll(items)));

View File

@ -294,7 +294,6 @@ void handleTaskAction(
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 localization = AppLocalization.of(context); final localization = AppLocalization.of(context);
final task = tasks.first as TaskEntity; final task = tasks.first as TaskEntity;
final taskIds = tasks.map((task) => task.id).toList(); final taskIds = tasks.map((task) => task.id).toList();
@ -332,7 +331,7 @@ void handleTaskAction(
final item = convertTaskToInvoiceItem(task: task, context: context); final item = convertTaskToInvoiceItem(task: task, context: context);
createEntity( createEntity(
context: context, context: context,
entity: InvoiceEntity(company: company).rebuild((b) => b entity: InvoiceEntity(state: state).rebuild((b) => b
..hasTasks = true ..hasTasks = true
..clientId = task.clientId ..clientId = task.clientId
..lineItems.add(item))); ..lineItems.add(item)));

View File

@ -284,7 +284,6 @@ void handleVendorAction(
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 localization = AppLocalization.of(context); final localization = AppLocalization.of(context);
final vendor = vendors.first as VendorEntity; final vendor = vendors.first as VendorEntity;
final vendorIds = vendors.map((vendor) => vendor.id).toList(); final vendorIds = vendors.map((vendor) => vendor.id).toList();
@ -296,7 +295,7 @@ void handleVendorAction(
case EntityAction.newExpense: case EntityAction.newExpense:
createEntity( createEntity(
context: context, context: context,
entity: ExpenseEntity(company: company, vendor: vendor)); entity: ExpenseEntity(state: state, vendor: vendor));
break; break;
case EntityAction.restore: case EntityAction.restore:
store.dispatch(RestoreVendorRequest( store.dispatch(RestoreVendorRequest(

View File

@ -83,7 +83,7 @@ class _ClientViewState extends State<ClientView>
createEntity( createEntity(
context: context, context: context,
entity: InvoiceEntity( entity: InvoiceEntity(
company: company, client: client)); state: viewModel.state, client: client));
}, },
) )
: Container(), : Container(),
@ -96,7 +96,7 @@ class _ClientViewState extends State<ClientView>
Navigator.of(context).pop(); Navigator.of(context).pop();
createEntity( createEntity(
context: context, context: context,
entity: PaymentEntity(company: company) entity: PaymentEntity(state: store.state)
.rebuild((b) => b.clientId = client.id)); .rebuild((b) => b.clientId = client.id));
}, },
) )
@ -112,7 +112,7 @@ class _ClientViewState extends State<ClientView>
createEntity( createEntity(
context: context, context: context,
entity: InvoiceEntity( entity: InvoiceEntity(
company: company, state: viewModel.state,
client: client, client: client,
isQuote: true)); isQuote: true));
}, },
@ -143,9 +143,7 @@ class _ClientViewState extends State<ClientView>
Navigator.of(context).pop(); Navigator.of(context).pop();
createEntity( createEntity(
context: context, context: context,
entity: TaskEntity( entity: TaskEntity(state: viewModel.state)
isRunning:
store.state.prefState.autoStartTasks)
.rebuild((b) => b.clientId = client.id)); .rebuild((b) => b.clientId = client.id));
}, },
) )
@ -161,9 +159,8 @@ class _ClientViewState extends State<ClientView>
createEntity( createEntity(
context: context, context: context,
entity: ExpenseEntity( entity: ExpenseEntity(
company: company, state: store.state,
client: client, client: client,));
prefState: store.state.prefState));
}, },
) )
: Container(), : Container(),

View File

@ -88,7 +88,7 @@ class ClientViewVM {
createEntity( createEntity(
context: context, context: context,
entity: entity:
InvoiceEntity(company: state.company, client: client)); InvoiceEntity(state: state, client: client));
} else { } else {
viewEntitiesByType( viewEntitiesByType(
context: context, context: context,
@ -101,7 +101,7 @@ class ClientViewVM {
createEntity( createEntity(
context: context, context: context,
entity: InvoiceEntity( entity: InvoiceEntity(
company: state.company, client: client, isQuote: true)); state: state, client: client, isQuote: true));
} else { } else {
viewEntitiesByType( viewEntitiesByType(
context: context, context: context,
@ -113,7 +113,7 @@ class ClientViewVM {
if (longPress && client.isActive) { if (longPress && client.isActive) {
createEntity( createEntity(
context: context, context: context,
entity: PaymentEntity(company: state.company) entity: PaymentEntity(state: state)
.rebuild((b) => b..clientId = client.id)); .rebuild((b) => b..clientId = client.id));
} else { } else {
viewEntitiesByType( viewEntitiesByType(
@ -139,7 +139,7 @@ class ClientViewVM {
if (longPress && client.isActive) { if (longPress && client.isActive) {
createEntity( createEntity(
context: context, context: context,
entity: TaskEntity(isRunning: state.prefState.autoStartTasks) entity: TaskEntity(state: state)
.rebuild((b) => b..clientId = client.id)); .rebuild((b) => b..clientId = client.id));
} else { } else {
viewEntitiesByType( viewEntitiesByType(
@ -153,9 +153,8 @@ class ClientViewVM {
createEntity( createEntity(
context: context, context: context,
entity: ExpenseEntity( entity: ExpenseEntity(
company: state.company, state: state,
client: client, client: client,));
prefState: state.prefState));
} else { } else {
viewEntitiesByType( viewEntitiesByType(
context: context, context: context,

View File

@ -95,7 +95,7 @@ class ProjectViewVM {
if (longPress && project.isActive && client.isActive) { if (longPress && project.isActive && client.isActive) {
createEntity( createEntity(
context: context, context: context,
entity: TaskEntity(isRunning: state.prefState.autoStartTasks) entity: TaskEntity(state: state)
.rebuild((b) => b .rebuild((b) => b
..projectId = project.id ..projectId = project.id
..clientId = project.clientId)); ..clientId = project.clientId));
@ -109,7 +109,7 @@ class ProjectViewVM {
onAddTaskPressed: (context) { onAddTaskPressed: (context) {
createEntity( createEntity(
context: context, context: context,
entity: TaskEntity(isRunning: state.prefState.autoStartTasks) entity: TaskEntity(state: state)
.rebuild((b) => b .rebuild((b) => b
..projectId = project.id ..projectId = project.id
..clientId = project.clientId), ..clientId = project.clientId),

View File

@ -88,7 +88,7 @@ class UserViewVM {
if (longPress && user.isActive) { if (longPress && user.isActive) {
createEntity( createEntity(
context: context, context: context,
entity: InvoiceEntity(company: state.company)); entity: InvoiceEntity(state: state));
} else { } else {
viewEntitiesByType( viewEntitiesByType(
context: context, context: context,
@ -100,7 +100,7 @@ class UserViewVM {
if (longPress && user.isActive) { if (longPress && user.isActive) {
createEntity( createEntity(
context: context, context: context,
entity: InvoiceEntity(company: state.company, isQuote: true)); entity: InvoiceEntity(state: state, isQuote: true));
} else { } else {
viewEntitiesByType( viewEntitiesByType(
context: context, context: context,
@ -112,7 +112,7 @@ class UserViewVM {
if (longPress && user.isActive) { if (longPress && user.isActive) {
createEntity( createEntity(
context: context, context: context,
entity: PaymentEntity(company: state.company)); entity: PaymentEntity(state: state));
} else { } else {
viewEntitiesByType( viewEntitiesByType(
context: context, context: context,
@ -135,7 +135,7 @@ class UserViewVM {
createEntity( createEntity(
context: context, context: context,
entity: entity:
TaskEntity(isRunning: state.prefState.autoStartTasks)); TaskEntity(state: state));
} else { } else {
viewEntitiesByType( viewEntitiesByType(
context: context, context: context,

View File

@ -90,7 +90,7 @@ class VendorViewVM {
createEntity( createEntity(
context: context, context: context,
entity: entity:
ExpenseEntity(company: state.company, vendor: vendor)); ExpenseEntity(state: state, vendor: vendor));
} else { } else {
viewEntitiesByType( viewEntitiesByType(
context: context, entityType: EntityType.expense, filterEntity: vendor); context: context, entityType: EntityType.expense, filterEntity: vendor);
@ -101,7 +101,7 @@ class VendorViewVM {
onAddExpensePressed: (context) { onAddExpensePressed: (context) {
createEntity( createEntity(
context: context, context: context,
entity: ExpenseEntity(company: state.company, vendor: vendor)); entity: ExpenseEntity(state: state, vendor: vendor));
}, },
onEntityAction: (BuildContext context, EntityAction action) => onEntityAction: (BuildContext context, EntityAction action) =>
handleVendorAction(context, [vendor], action), handleVendorAction(context, [vendor], action),