import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:intl/intl.dart'; import 'package:provider/provider.dart'; import 'package:fcs/model/chart_model.dart'; import 'package:fcs/model/main_model.dart'; import 'package:fcs/theme/theme.dart'; import 'package:fcs/vo/revenue.dart'; import 'package:fcs/widget/local_text.dart'; import 'package:fcs/widget/my_data_table.dart'; import 'package:fcs/widget/number_cell.dart'; import 'package:fcs/widget/progress.dart'; import 'revenue_line_detail.dart'; class RevenueLineData extends StatefulWidget { const RevenueLineData(); @override _RevenueLineDataState createState() => _RevenueLineDataState(); } class _RevenueLineDataState extends State { final numberFormatter = new NumberFormat("#,###"); var dateFormatter = new DateFormat('dd MMM yyyy'); bool _isLoading = false; @override void initState() { super.initState(); } @override Widget build(BuildContext context) { var chartModel = Provider.of(context); var mainModel = Provider.of(context); return LocalProgress( inAsyncCall: _isLoading, child: Scaffold( appBar: AppBar( backgroundColor: primaryColor, title: mainModel.user.isOwnerAndAbove() ? LocalText(context, 'revenue.amounts', color: Colors.white, fontSize: 18) : LocalText(context, 'spending.amounts', color: Colors.white, fontSize: 18), ), body: Container( padding: EdgeInsets.only(top: 10), child: SingleChildScrollView( scrollDirection: Axis.vertical, child: SingleChildScrollView( scrollDirection: Axis.horizontal, padding: EdgeInsets.only(left: 20), child: MyDataTable( columnSpacing: 100, columns: [ MyDataColumn(label: LocalText(context, "revenue.date")), MyDataColumn(label: LocalText(context, "revenue.amount"),numeric: true), ], rows: getProductRow(chartModel.revenue.getData()), ), ), ), ), ), ); } List getProductRow(List revs) { return revs.map((p) { var r = MyDataRow( onSelectChanged: (bool selected) async { Navigator.push( context, MaterialPageRoute(builder: (context) => RevenueLineDetail(p.date)), ); }, cells: [ MyDataCell( new Text(dateFormatter.format(p.date), style: textStyle), ), MyDataCell( NumberCell(p.amount) ), ], ); return r; }).toList(); } }