diff --git a/lib/constants.dart b/lib/constants.dart index 2a69ebe35..bc11504a2 100644 --- a/lib/constants.dart +++ b/lib/constants.dart @@ -351,6 +351,8 @@ const String kReportGroupYear = 'year'; const String kActivityEmailInvoice = '6'; +const int kPaymentTermsOff = -1; + const int kModuleRecurringInvoices = 1; const int kModuleCredits = 2; const int kModuleQuotes = 4; diff --git a/lib/ui/settings/company_details.dart b/lib/ui/settings/company_details.dart index c4754a02e..3ad5049d0 100644 --- a/lib/ui/settings/company_details.dart +++ b/lib/ui/settings/company_details.dart @@ -1,6 +1,7 @@ import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:image_picker/image_picker.dart'; +import 'package:invoiceninja_flutter/constants.dart'; import 'package:invoiceninja_flutter/data/models/entities.dart'; import 'package:invoiceninja_flutter/redux/static/static_selectors.dart'; import 'package:invoiceninja_flutter/ui/app/buttons/elevated_button.dart'; @@ -131,9 +132,11 @@ class _CompanyDetailsState extends State _postalCodeController.text = settings.postalCode; _taskRateController.text = formatNumber(settings.defaultTaskRate, context, formatNumberType: FormatNumberType.input); - _paymentTermsController.text = formatNumber( - settings.defaultPaymentTerms?.toDouble(), context, - formatNumberType: FormatNumberType.input); + _paymentTermsController.text = + settings.defaultPaymentTerms == kPaymentTermsOff + ? '' + : formatNumber(settings.defaultPaymentTerms?.toDouble(), context, + formatNumberType: FormatNumberType.input); _custom1Controller.text = settings.customValue1; _custom2Controller.text = settings.customValue2; _custom3Controller.text = settings.customValue3; @@ -152,6 +155,7 @@ class _CompanyDetailsState extends State } void _onSettingsChanged() { + final state = widget.viewModel.state; _debouncer.run(() { final settings = widget.viewModel.settings.rebuild((b) => b ..name = _nameController.text.trim() @@ -167,8 +171,11 @@ class _CompanyDetailsState extends State ..postalCode = _postalCodeController.text.trim() ..defaultTaskRate = parseDouble(_taskRateController.text, zeroIsNull: true) - ..defaultPaymentTerms = - parseInt(_paymentTermsController.text, zeroIsNull: true) + ..defaultPaymentTerms = _paymentTermsController.text.isEmpty + ? (state.settingsUIState.entityType == EntityType.company + ? -1 + : null) + : parseInt(_paymentTermsController.text) ..customValue1 = _custom1Controller.text.trim() ..customValue2 = _custom2Controller.text.trim() ..customValue3 = _custom3Controller.text.trim() @@ -452,7 +459,6 @@ class _CompanyDetailsState extends State settings.rebuild( (b) => b..defaultPaymentTypeId = paymentType?.id)), allowClearing: true, - ), DecoratedFormField( label: localization.paymentTerms,