small fixes

This commit is contained in:
Arseni
2026-02-17 11:17:19 +03:00
parent 0eea39fb97
commit e2e2257167
13 changed files with 120 additions and 58 deletions

View File

@@ -1,6 +1,9 @@
import 'package:pshared/models/payment/operation.dart';
import 'package:pshared/models/payment/payment.dart';
import 'package:pshared/models/payment/status.dart';
import 'package:pshared/utils/money.dart';
import 'package:pweb/models/payment_state.dart';
OperationItem mapPaymentToOperation(Payment payment) {
@@ -8,9 +11,11 @@ OperationItem mapPaymentToOperation(Payment payment) {
final settlement = payment.lastQuote?.expectedSettlementAmount;
final amountMoney = debit ?? settlement;
final amount = _parseAmount(amountMoney?.amount);
final amount = parseMoneyAmount(amountMoney?.amount);
final currency = amountMoney?.currency ?? '';
final toAmount = settlement == null ? amount : _parseAmount(settlement.amount);
final toAmount = settlement == null
? amount
: parseMoneyAmount(settlement.amount);
final toCurrency = settlement?.currency ?? currency;
final payId = _firstNonEmpty([
@@ -48,14 +53,15 @@ OperationItem mapPaymentToOperation(Payment payment) {
}
OperationStatus statusFromPayment(Payment payment) {
final normalized = _normalizePaymentState(payment.state);
switch (normalized) {
case 'SUCCESS':
final state = paymentStateFromRaw(payment.state);
switch (state) {
case PaymentState.success:
return OperationStatus.success;
case 'FAILED':
case 'CANCELLED':
case PaymentState.failed:
case PaymentState.cancelled:
return OperationStatus.error;
default:
case PaymentState.processing:
case PaymentState.unknown:
return OperationStatus.processing;
}
}
@@ -102,16 +108,3 @@ String? _firstNonEmpty(List<String?> values) {
}
return null;
}
String _normalizePaymentState(String? raw) {
final trimmed = (raw ?? '').trim().toUpperCase();
if (trimmed.startsWith('PAYMENT_STATE_')) {
return trimmed.substring('PAYMENT_STATE_'.length);
}
return trimmed;
}
double _parseAmount(String? amount) {
if (amount == null || amount.trim().isEmpty) return 0;
return double.tryParse(amount) ?? 0;
}