diff --git a/lib/ui/transaction/edit/transaction_edit.dart b/lib/ui/transaction/edit/transaction_edit.dart index d40b0ac47..77c3b9c51 100644 --- a/lib/ui/transaction/edit/transaction_edit.dart +++ b/lib/ui/transaction/edit/transaction_edit.dart @@ -1,7 +1,10 @@ import 'package:flutter/material.dart'; import 'package:invoiceninja_flutter/ui/app/edit_scaffold.dart'; import 'package:invoiceninja_flutter/ui/app/form_card.dart'; +import 'package:invoiceninja_flutter/ui/app/forms/date_picker.dart'; +import 'package:invoiceninja_flutter/ui/app/forms/decorated_form_field.dart'; import 'package:invoiceninja_flutter/ui/transaction/edit/transaction_edit_vm.dart'; +import 'package:invoiceninja_flutter/utils/formatting.dart'; import 'package:invoiceninja_flutter/utils/localization.dart'; import 'package:invoiceninja_flutter/utils/completers.dart'; import 'package:invoiceninja_flutter/ui/app/scrollable_listview.dart'; @@ -24,18 +27,22 @@ class _TransactionEditState extends State { final _debouncer = Debouncer(); final _descriptionController = TextEditingController(); + final _amountController = TextEditingController(); List _controllers = []; @override void didChangeDependencies() { _controllers = [ + _amountController, _descriptionController, ]; _controllers.forEach((controller) => controller.removeListener(_onChanged)); final transaction = widget.viewModel.transaction; + _amountController.text = formatNumber(transaction.amount, context, + formatNumberType: FormatNumberType.inputMoney); _descriptionController.text = transaction.description; _controllers.forEach((controller) => controller.addListener(_onChanged)); @@ -56,7 +63,7 @@ class _TransactionEditState extends State { void _onChanged() { _debouncer.run(() { final transaction = widget.viewModel.transaction.rebuild((b) => b - // STARTER: set value - do not remove comment + ..amount = parseDouble(_amountController.text.trim()) ..description = _descriptionController.text.trim()); if (transaction != widget.viewModel.transaction) { widget.viewModel.onChanged(transaction); @@ -97,13 +104,24 @@ class _TransactionEditState extends State { children: [ FormCard( children: [ - // STARTER: widgets - do not remove comment - TextFormField( + DecoratedFormField( + label: localization.amount, + keyboardType: + TextInputType.numberWithOptions(decimal: true), + controller: _amountController, + ), + DatePicker( + labelText: localization.date, + onSelected: (date, _) { + viewModel.onChanged( + transaction.rebuild((b) => b..date = date)); + }, + selectedDate: transaction.date), + DecoratedFormField( + label: localization.description, + keyboardType: TextInputType.multiline, controller: _descriptionController, - autocorrect: false, - decoration: InputDecoration( - labelText: 'Transactions', - ), + maxLines: 4, ), ], ), diff --git a/lib/ui/transaction/transaction_presenter.dart b/lib/ui/transaction/transaction_presenter.dart index 301893ad9..0cd54b5aa 100644 --- a/lib/ui/transaction/transaction_presenter.dart +++ b/lib/ui/transaction/transaction_presenter.dart @@ -12,9 +12,9 @@ class TransactionPresenter extends EntityPresenter { static List getDefaultTableFields(UserCompanyEntity userCompany) { return [ TransactionFields.status, - TransactionFields.date, TransactionFields.deposit, TransactionFields.withdrawal, + TransactionFields.date, TransactionFields.description, TransactionFields.category, TransactionFields.bankAccount,