diff --git a/lib/constants.dart b/lib/constants.dart index a164bf95d..f9e53d1cc 100644 --- a/lib/constants.dart +++ b/lib/constants.dart @@ -191,6 +191,7 @@ const String kCurrencyUSDollar = '1'; const String kCurrencyEuro = '3'; const String kCountryUnitedStates = '840'; +const String kCountryAustralia = '36'; const String kCountryCanada = '124'; const String kCountrySwitzerland = '756'; diff --git a/lib/ui/settings/tax_settings.dart b/lib/ui/settings/tax_settings.dart index d5cdf825e..cf69d4472 100644 --- a/lib/ui/settings/tax_settings.dart +++ b/lib/ui/settings/tax_settings.dart @@ -1,8 +1,7 @@ // Flutter imports: import 'package:flutter/material.dart'; -import 'package:invoiceninja_flutter/data/models/entities.dart'; -import 'package:invoiceninja_flutter/redux/static/static_selectors.dart'; -import 'package:invoiceninja_flutter/ui/app/entity_dropdown.dart'; +import 'package:invoiceninja_flutter/constants.dart'; +import 'package:invoiceninja_flutter/data/models/models.dart'; // Package imports: import 'package:material_design_icons_flutter/material_design_icons_flutter.dart'; @@ -54,7 +53,16 @@ class _TaxSettingsState extends State { final settings = viewModel.settings; final company = viewModel.company; final state = viewModel.state; - //final taxData = company.taxData; + final taxData = company.taxData; + + List subregions = []; + String region = 'EU'; + if (company.settings.countryId == kCountryUnitedStates) { + region = 'US'; + } else if (company.settings.countryId == kCountryAustralia) { + region = 'AU'; + } + subregions = taxData.regions[region].subregions.keys.toList(); return EditScaffold( title: localization.taxSettings, @@ -150,7 +158,17 @@ class _TaxSettingsState extends State { helpLabel: localization.calculateTaxesHelp, ), if (company.calculateTaxes) ...[ - //AppDropdownButton(value: , onChanged: onChanged, items: items), + AppDropdownButton( + labelText: localization.sellerSubregion, + value: taxData.sellerSubregion, + onChanged: (dynamic value) { + viewModel.onCompanyChanged(company + .rebuild((b) => b..taxData.sellerSubregion = value)); + }, + items: subregions + .map((code) => + DropdownMenuItem(child: Text(code), value: code)) + .toList()), ] ], )