reports page

This commit is contained in:
Arseni
2026-02-16 21:05:38 +03:00
parent 11d4b9a608
commit 0eea39fb97
56 changed files with 2227 additions and 501 deletions

View File

@@ -0,0 +1,44 @@
import 'package:flutter/foundation.dart';
import 'package:pshared/models/payment/operation.dart';
import 'package:pshared/provider/payment/payments.dart';
import 'package:pweb/utils/report/operations.dart';
import 'package:pweb/utils/report/payment_mapper.dart';
class RecentPaymentsController extends ChangeNotifier {
PaymentsProvider? _payments;
List<OperationItem> _recent = const [];
List<OperationItem> get recentOperations => _recent;
bool get isLoading => _payments?.isLoading ?? false;
Exception? get error => _payments?.error;
void update(PaymentsProvider provider) {
if (!identical(_payments, provider)) {
_payments?.removeListener(_onPaymentsChanged);
_payments = provider;
_payments?.addListener(_onPaymentsChanged);
}
_rebuild();
}
void _onPaymentsChanged() {
_rebuild();
}
void _rebuild() {
final operations = (_payments?.payments ?? const [])
.map(mapPaymentToOperation)
.toList();
_recent = sortOperations(operations).take(5).toList();
notifyListeners();
}
@override
void dispose() {
_payments?.removeListener(_onPaymentsChanged);
super.dispose();
}
}