Commit 873fba2d authored by DatHV's avatar DatHV
Browse files

update chart history

parent f1723336
import 'dart:math';
import 'package:flutter/material.dart';
import 'package:fl_chart/fl_chart.dart';
import 'package:intl/intl.dart';
......@@ -8,11 +10,13 @@ class MonthlyPointsChart extends StatelessWidget {
super.key,
required this.items,
required this.date,
this.monthSummary,
this.onPrevMonth,
this.onNextMonth,
this.onChangeDate,
});
final MonthSummaryChartModel? monthSummary;
final List<DaySummaryChartModel> items;
final DateTime date;
final VoidCallback? onPrevMonth;
......@@ -23,8 +27,8 @@ class MonthlyPointsChart extends StatelessWidget {
@override
Widget build(BuildContext context) {
final parsed = _parseToDayMap(items, date);
print('items ${items.length}, parsed: $parsed');
final daysInMonth = DateUtils.getDaysInMonth(date.year, date.month);
final total = parsed.values.fold<double>(0, (p, e) => p + e);
final maxVal = (parsed.values.isEmpty ? 0 : parsed.values.reduce((a, b) => a > b ? a : b)).abs();
final yMax = _niceMax(maxVal.toDouble());
final yStep = _niceStep(yMax);
......@@ -58,7 +62,7 @@ class MonthlyPointsChart extends StatelessWidget {
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text(
_formatInt(total),
_formatInt(_toDouble(monthSummary?.rewardMonthTotal ?? '0')),
style: const TextStyle(
fontSize: 40,
fontWeight: FontWeight.w700,
......@@ -190,11 +194,12 @@ class MonthlyPointsChart extends StatelessWidget {
if (dt == null || dt.month != m || dt.year != y) continue;
final reward = _toDouble(e.rewardDayTotal);
final redeem = _toDouble(e.redeemDayTotal);
final adjust = _toDouble(e.adjustDayTotal);
final val = reward - redeem + adjust;
map[dt.day] = (map[dt.day] ?? 0) + val; // gộp nếu trùng ngày
// final redeem = _toDouble(e.redeemDayTotal);
// final adjust = _toDouble(e.adjustDayTotal);
// final val = reward - redeem + adjust;
var val = (map[dt.day] ?? 0) + reward;
val = max(val, 0); // không âm
map[dt.day] = val; // gộp nếu trùng ngày
}
return map;
}
......
......@@ -54,6 +54,7 @@ class _HistoryPointScreenState extends State<HistoryPointScreen> {
SliverToBoxAdapter(
child: MonthlyPointsChart(
items: _viewModel.transactionSummary.value?.days ?? [],
monthSummary: _viewModel.transactionSummary.value?.month,
date: _viewModel.selectedDate,
onPrevMonth: () => _viewModel.changeDate(true),
onNextMonth: () => _viewModel.changeDate(false),
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment