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 'delivery_line_detail.dart'; class DeliveryBarData extends StatefulWidget { const DeliveryBarData(); @override _DeliveryBarDataState createState() => _DeliveryBarDataState(); } class _DeliveryBarDataState 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); return LocalProgress( inAsyncCall: _isLoading, child: Scaffold( appBar: AppBar( backgroundColor: primaryColor, title: LocalText( context, 'delivery.data.title', 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, "delivery.date")), MyDataColumn(label: LocalText(context, "delivery.qty"),numeric: true), ], rows: getProductRow(chartModel.revenue.getDelivery()), ), ), ), ), ), ); } List getProductRow(List doList) { return doList.map((d) { var r = MyDataRow( onSelectChanged: (bool selected) async { Navigator.push( context, MaterialPageRoute(builder: (context) => DeliveryBarDetail(d.date)), ); }, cells: [ MyDataCell( new Text(dateFormatter.format(d.date), style: textStyle), ), MyDataCell( NumberCell(d.amount) ), ], ); return r; }).toList(); } }