refactor of money utils with new money2 package
This commit is contained in:
@@ -1,10 +1,11 @@
|
||||
import 'package:money2/money2.dart';
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
import 'package:pshared/controllers/payment/source.dart';
|
||||
import 'package:pshared/models/payment/settlement_mode.dart';
|
||||
import 'package:pshared/provider/payment/amount.dart';
|
||||
import 'package:pshared/utils/currency.dart';
|
||||
import 'package:pshared/utils/money.dart';
|
||||
|
||||
import 'package:pweb/models/payment/amount/mode.dart';
|
||||
|
||||
@@ -22,7 +23,7 @@ class PaymentAmountFieldController extends ChangeNotifier {
|
||||
|
||||
PaymentAmountFieldController({required double? initialAmount})
|
||||
: textController = TextEditingController(
|
||||
text: initialAmount == null ? '' : amountToString(initialAmount),
|
||||
text: initialAmount == null ? '' : initialAmount.toString(),
|
||||
);
|
||||
|
||||
PaymentAmountMode get mode => _mode;
|
||||
@@ -122,18 +123,14 @@ class PaymentAmountFieldController extends ChangeNotifier {
|
||||
};
|
||||
|
||||
double? _parseAmount(String value) {
|
||||
final parsed = parseMoneyAmount(
|
||||
value.replaceAll(',', '.'),
|
||||
fallback: double.nan,
|
||||
);
|
||||
return parsed.isNaN ? null : parsed;
|
||||
return double.tryParse(value.replaceAll(',', '.').trim());
|
||||
}
|
||||
|
||||
void _syncTextWithAmount(double? amount) {
|
||||
final parsedText = _parseAmount(textController.text);
|
||||
if (parsedText == amount) return;
|
||||
|
||||
final nextText = amount == null ? '' : amountToString(amount);
|
||||
final nextText = amount == null ? '' : _formatAmount(amount);
|
||||
_isSyncingText = true;
|
||||
textController.value = TextEditingValue(
|
||||
text: nextText,
|
||||
@@ -142,6 +139,12 @@ class PaymentAmountFieldController extends ChangeNotifier {
|
||||
_isSyncingText = false;
|
||||
}
|
||||
|
||||
String _formatAmount(double amount) {
|
||||
final currency = money2CurrencyFromCode(activeCurrencyCode);
|
||||
if (currency == null) return amount.toString();
|
||||
return Money.fromNumWithCurrency(amount, currency).toDecimal().toString();
|
||||
}
|
||||
|
||||
@override
|
||||
void dispose() {
|
||||
_provider?.removeListener(_handleProviderChanged);
|
||||
|
||||
@@ -29,5 +29,4 @@ class RecentPaymentsController extends ChangeNotifier {
|
||||
_recent = sortOperations(operations).take(5).toList();
|
||||
notifyListeners();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user