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/material.dart';
class PayoutVolumesController extends ChangeNotifier {
DateTimeRange _range;
PayoutVolumesController({DateTime? now})
: _range = _defaultRange(now ?? DateTime.now());
DateTimeRange get range => _range;
void setRange(DateTimeRange range) {
final normalized = _normalizeRange(range);
if (_isSameRange(_range, normalized)) return;
_range = normalized;
notifyListeners();
}
static DateTimeRange _defaultRange(DateTime now) {
final local = now.toLocal();
final start = DateTime(local.year, local.month, 1);
final end = DateTime(
local.year,
local.month,
local.day,
);
return DateTimeRange(start: start, end: end);
}
static DateTimeRange _normalizeRange(DateTimeRange range) {
final start = DateTime(range.start.year, range.start.month, range.start.day);
final end = DateTime(
range.end.year,
range.end.month,
range.end.day,
);
return DateTimeRange(start: start, end: end);
}
static bool _isSameRange(DateTimeRange a, DateTimeRange b) {
return a.start.isAtSameMomentAs(b.start) &&
a.end.isAtSameMomentAs(b.end);
}
}