This commit is contained in:
Hillel Coren 2020-10-14 23:18:29 +03:00
parent c7335a8dbb
commit f3fd24152b
5 changed files with 127 additions and 16 deletions

View File

@ -253,6 +253,18 @@ abstract class CompanyEntity extends Object
@BuiltValueField(wireName: 'google_analytics_key')
String get googleAnalyticsKey;
@nullable // TODO remove nullable
@BuiltValueField(wireName: 'mark_expenses_invoiceable')
bool get markExpensesInvoiceable;
@nullable // TODO remove nullable
@BuiltValueField(wireName: 'mark_expenses_paid')
bool get markExpensesPaid;
@nullable // TODO remove nullable
@BuiltValueField(wireName: 'invoice_expense_documents')
bool get invoiceExpenseDocuments;
SettingsEntity get settings;
@nullable

View File

@ -236,6 +236,24 @@ class _$CompanyEntitySerializer implements StructuredSerializer<CompanyEntity> {
..add(serializers.serialize(object.plan,
specifiedType: const FullType(String)));
}
if (object.markExpensesInvoiceable != null) {
result
..add('mark_expenses_invoiceable')
..add(serializers.serialize(object.markExpensesInvoiceable,
specifiedType: const FullType(bool)));
}
if (object.markExpensesPaid != null) {
result
..add('mark_expenses_paid')
..add(serializers.serialize(object.markExpensesPaid,
specifiedType: const FullType(bool)));
}
if (object.invoiceExpenseDocuments != null) {
result
..add('invoice_expense_documents')
..add(serializers.serialize(object.invoiceExpenseDocuments,
specifiedType: const FullType(bool)));
}
if (object.enabledModules != null) {
result
..add('enabled_modules')
@ -546,6 +564,18 @@ class _$CompanyEntitySerializer implements StructuredSerializer<CompanyEntity> {
result.googleAnalyticsKey = serializers.deserialize(value,
specifiedType: const FullType(String)) as String;
break;
case 'mark_expenses_invoiceable':
result.markExpensesInvoiceable = serializers.deserialize(value,
specifiedType: const FullType(bool)) as bool;
break;
case 'mark_expenses_paid':
result.markExpensesPaid = serializers.deserialize(value,
specifiedType: const FullType(bool)) as bool;
break;
case 'invoice_expense_documents':
result.invoiceExpenseDocuments = serializers.deserialize(value,
specifiedType: const FullType(bool)) as bool;
break;
case 'settings':
result.settings.replace(serializers.deserialize(value,
specifiedType: const FullType(SettingsEntity)) as SettingsEntity);
@ -2910,6 +2940,12 @@ class _$CompanyEntity extends CompanyEntity {
@override
final String googleAnalyticsKey;
@override
final bool markExpensesInvoiceable;
@override
final bool markExpensesPaid;
@override
final bool invoiceExpenseDocuments;
@override
final SettingsEntity settings;
@override
final int enabledModules;
@ -2988,6 +3024,9 @@ class _$CompanyEntity extends CompanyEntity {
this.customFields,
this.slackWebhookUrl,
this.googleAnalyticsKey,
this.markExpensesInvoiceable,
this.markExpensesPaid,
this.invoiceExpenseDocuments,
this.settings,
this.enabledModules,
this.isChanged,
@ -3241,6 +3280,9 @@ class _$CompanyEntity extends CompanyEntity {
customFields == other.customFields &&
slackWebhookUrl == other.slackWebhookUrl &&
googleAnalyticsKey == other.googleAnalyticsKey &&
markExpensesInvoiceable == other.markExpensesInvoiceable &&
markExpensesPaid == other.markExpensesPaid &&
invoiceExpenseDocuments == other.invoiceExpenseDocuments &&
settings == other.settings &&
enabledModules == other.enabledModules &&
isChanged == other.isChanged &&
@ -3275,15 +3317,15 @@ class _$CompanyEntity extends CompanyEntity {
$jc(
$jc(
$jc(
$jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc(0, enableCustomSurchargeTaxes1.hashCode), enableCustomSurchargeTaxes2.hashCode), enableCustomSurchargeTaxes3.hashCode), enableCustomSurchargeTaxes4.hashCode), sizeId.hashCode), industryId.hashCode), subdomain.hashCode), portalMode.hashCode), portalDomain.hashCode), updateProducts.hashCode), convertProductExchangeRate.hashCode), fillProducts.hashCode), enableProductCost.hashCode), enableProductQuantity.hashCode), defaultQuantity.hashCode), showProductDetails.hashCode), clientCanRegister.hashCode), isLarge.hashCode), enableShopApi.hashCode), plan.hashCode), companyKey.hashCode), firstDayOfWeek.hashCode), firstMonthOfYear.hashCode), numberOfInvoiceTaxRates.hashCode), numberOfItemTaxRates.hashCode), groups.hashCode), activities.hashCode), taxRates.hashCode), taskStatuses.hashCode), taskStatusMap.hashCode), companyGateways.hashCode), expenseCategories.hashCode), expenseCategoryMap.hashCode), users.hashCode), clients.hashCode), products.hashCode), invoices.hashCode), recurringInvoices.hashCode), payments.hashCode), quotes.hashCode), credits.hashCode), tasks.hashCode), projects.hashCode), expenses.hashCode),
vendors.hashCode),
designs.hashCode),
tokens.hashCode),
webhooks.hashCode),
paymentTerms.hashCode),
customFields.hashCode),
slackWebhookUrl.hashCode),
googleAnalyticsKey.hashCode),
$jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc(0, enableCustomSurchargeTaxes1.hashCode), enableCustomSurchargeTaxes2.hashCode), enableCustomSurchargeTaxes3.hashCode), enableCustomSurchargeTaxes4.hashCode), sizeId.hashCode), industryId.hashCode), subdomain.hashCode), portalMode.hashCode), portalDomain.hashCode), updateProducts.hashCode), convertProductExchangeRate.hashCode), fillProducts.hashCode), enableProductCost.hashCode), enableProductQuantity.hashCode), defaultQuantity.hashCode), showProductDetails.hashCode), clientCanRegister.hashCode), isLarge.hashCode), enableShopApi.hashCode), plan.hashCode), companyKey.hashCode), firstDayOfWeek.hashCode), firstMonthOfYear.hashCode), numberOfInvoiceTaxRates.hashCode), numberOfItemTaxRates.hashCode), groups.hashCode), activities.hashCode), taxRates.hashCode), taskStatuses.hashCode), taskStatusMap.hashCode), companyGateways.hashCode), expenseCategories.hashCode), expenseCategoryMap.hashCode), users.hashCode), clients.hashCode), products.hashCode), invoices.hashCode), recurringInvoices.hashCode), payments.hashCode), quotes.hashCode), credits.hashCode), tasks.hashCode), projects.hashCode), expenses.hashCode), vendors.hashCode), designs.hashCode), tokens.hashCode),
webhooks.hashCode),
paymentTerms.hashCode),
customFields.hashCode),
slackWebhookUrl.hashCode),
googleAnalyticsKey.hashCode),
markExpensesInvoiceable.hashCode),
markExpensesPaid.hashCode),
invoiceExpenseDocuments.hashCode),
settings.hashCode),
enabledModules.hashCode),
isChanged.hashCode),
@ -3352,6 +3394,9 @@ class _$CompanyEntity extends CompanyEntity {
..add('customFields', customFields)
..add('slackWebhookUrl', slackWebhookUrl)
..add('googleAnalyticsKey', googleAnalyticsKey)
..add('markExpensesInvoiceable', markExpensesInvoiceable)
..add('markExpensesPaid', markExpensesPaid)
..add('invoiceExpenseDocuments', invoiceExpenseDocuments)
..add('settings', settings)
..add('enabledModules', enabledModules)
..add('isChanged', isChanged)
@ -3640,6 +3685,21 @@ class CompanyEntityBuilder
set googleAnalyticsKey(String googleAnalyticsKey) =>
_$this._googleAnalyticsKey = googleAnalyticsKey;
bool _markExpensesInvoiceable;
bool get markExpensesInvoiceable => _$this._markExpensesInvoiceable;
set markExpensesInvoiceable(bool markExpensesInvoiceable) =>
_$this._markExpensesInvoiceable = markExpensesInvoiceable;
bool _markExpensesPaid;
bool get markExpensesPaid => _$this._markExpensesPaid;
set markExpensesPaid(bool markExpensesPaid) =>
_$this._markExpensesPaid = markExpensesPaid;
bool _invoiceExpenseDocuments;
bool get invoiceExpenseDocuments => _$this._invoiceExpenseDocuments;
set invoiceExpenseDocuments(bool invoiceExpenseDocuments) =>
_$this._invoiceExpenseDocuments = invoiceExpenseDocuments;
SettingsEntityBuilder _settings;
SettingsEntityBuilder get settings =>
_$this._settings ??= new SettingsEntityBuilder();
@ -3744,6 +3804,9 @@ class CompanyEntityBuilder
_customFields = _$v.customFields?.toBuilder();
_slackWebhookUrl = _$v.slackWebhookUrl;
_googleAnalyticsKey = _$v.googleAnalyticsKey;
_markExpensesInvoiceable = _$v.markExpensesInvoiceable;
_markExpensesPaid = _$v.markExpensesPaid;
_invoiceExpenseDocuments = _$v.invoiceExpenseDocuments;
_settings = _$v.settings?.toBuilder();
_enabledModules = _$v.enabledModules;
_isChanged = _$v.isChanged;
@ -3831,6 +3894,9 @@ class CompanyEntityBuilder
customFields: customFields.build(),
slackWebhookUrl: slackWebhookUrl,
googleAnalyticsKey: googleAnalyticsKey,
markExpensesInvoiceable: markExpensesInvoiceable,
markExpensesPaid: markExpensesPaid,
invoiceExpenseDocuments: invoiceExpenseDocuments,
settings: settings.build(),
enabledModules: enabledModules,
isChanged: isChanged,

View File

@ -151,6 +151,7 @@ class ExpenseEditSettingsState extends State<ExpenseEditSettings> {
: SwitchListTile(
activeColor: Theme.of(context).accentColor,
title: Text(localization.markInvoiceable),
subtitle: Text(localization.markInvoiceableHelp),
value: expense.shouldBeInvoiced,
onChanged: (value) {
viewModel.onChanged(
@ -161,6 +162,7 @@ class ExpenseEditSettingsState extends State<ExpenseEditSettings> {
activeColor: Theme.of(context).accentColor,
title: Text(localization.markPaid),
value: showPaymentFields,
subtitle: Text(localization.markPaidHelp),
onChanged: (value) {
if (value) {
if (expense.paymentDate.isEmpty) {
@ -215,6 +217,7 @@ class ExpenseEditSettingsState extends State<ExpenseEditSettings> {
SwitchListTile(
activeColor: Theme.of(context).accentColor,
title: Text(localization.convertCurrency),
subtitle: Text(localization.convertCurrencyHelp),
value: showConvertCurrencyFields,
onChanged: (value) {
setState(() => showConvertCurrencyFields = value);
@ -259,6 +262,7 @@ class ExpenseEditSettingsState extends State<ExpenseEditSettings> {
SwitchListTile(
activeColor: Theme.of(context).accentColor,
title: Text(localization.addDocumentsToInvoice),
subtitle: Text(localization.addDocumentsToInvoiceHelp),
value: expense.invoiceDocuments,
onChanged: (value) {
viewModel.onChanged(

View File

@ -50,17 +50,30 @@ class _ExpenseSettingsState extends State<ExpenseSettings> {
children: <Widget>[
FormCard(
children: <Widget>[
/*
SwitchListTile(
activeColor: Theme.of(context).accentColor,
title: Text(localization.showCost),
value: company.enableExpenseCost ?? false,
subtitle: Text(localization.showCostHelp),
title: Text(localization.markInvoiceable),
value: company.markExpensesInvoiceable ?? false,
subtitle: Text(localization.markInvoiceableHelp),
onChanged: (value) => viewModel.onCompanyChanged(
company.rebuild((b) => b..enableExpenseCost = value)),
company.rebuild((b) => b..markExpensesInvoiceable = value)),
),
SwitchListTile(
activeColor: Theme.of(context).accentColor,
title: Text(localization.markPaid),
value: company.markExpensesPaid ?? false,
subtitle: Text(localization.markPaidHelp),
onChanged: (value) => viewModel.onCompanyChanged(
company.rebuild((b) => b..markExpensesPaid = value)),
),
SwitchListTile(
activeColor: Theme.of(context).accentColor,
title: Text(localization.addDocumentsToInvoice),
value: company.invoiceExpenseDocuments ?? false,
subtitle: Text(localization.addDocumentsToInvoiceHelp),
onChanged: (value) => viewModel.onCompanyChanged(
company.rebuild((b) => b..invoiceExpenseDocuments = value)),
),
*/
],
),
],

View File

@ -15,6 +15,10 @@ mixin LocalizationsProvider on LocaleCodeAware {
static final Map<String, Map<String, String>> _localizedValues = {
'en': {
// STARTER: lang key - do not remove comment
'mark_paid_help': 'Track the expense has been paid',
'mark_invoiceable_help': 'Enable the expense to be invoiced',
'add_documents_to_invoice_help': 'Make the documents visible to clients',
'convert_currency_help': 'Set an exchange rate',
'expense_settings': 'Expense Settings',
'clone_to_recurring': 'Clone to Recurring',
'crypto': 'Crypto',
@ -4639,9 +4643,21 @@ mixin LocalizationsProvider on LocaleCodeAware {
String get crypto => _localizedValues[localeCode]['crypto'] ?? '';
String get markPaidHelp =>
_localizedValues[localeCode]['mark_paid_help'] ?? '';
String get markInvoiceableHelp =>
_localizedValues[localeCode]['mark_invoiceable_help'] ?? '';
String get addDocumentsToInvoiceHelp =>
_localizedValues[localeCode]['add_documents_to_invoice_help'] ?? '';
String get expenseSettings =>
_localizedValues[localeCode]['expense_settings'] ?? '';
String get convertCurrencyHelp =>
_localizedValues[localeCode]['convert_currency_help'] ?? '';
String get cloneToRecurring =>
_localizedValues[localeCode]['clone_to_recurring'] ?? '';