Files
fcs/lib/pages/invoice/invoice_customer_list.dart

149 lines
5.1 KiB
Dart
Raw Normal View History

2020-10-22 04:14:53 +06:30
import 'package:fcs/domain/entities/fcs_shipment.dart';
2020-10-14 20:56:46 +06:30
import 'package:fcs/domain/entities/user.dart';
import 'package:fcs/helpers/theme.dart';
import 'package:fcs/pages/customer/model/customer_model.dart';
2020-10-26 04:41:24 +06:30
import 'package:fcs/pages/invoice/editor/invoice_editor.dart';
import 'package:fcs/pages/widgets/local_app_bar.dart';
2020-10-14 20:56:46 +06:30
import 'package:fcs/pages/widgets/progress.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:intl/intl.dart';
import 'package:provider/provider.dart';
class InvoiceCustomerList extends StatefulWidget {
2021-09-10 12:00:08 +06:30
final FcsShipment? fcsShipment;
2020-10-22 04:14:53 +06:30
2021-09-10 12:00:08 +06:30
const InvoiceCustomerList({Key? key, this.fcsShipment}) : super(key: key);
2020-10-22 04:14:53 +06:30
2020-10-14 20:56:46 +06:30
@override
_InvoiceCustomerListState createState() => _InvoiceCustomerListState();
}
class _InvoiceCustomerListState extends State<InvoiceCustomerList> {
var dateFormatter = new DateFormat('dd MMM yyyy - hh:mm:ss a');
final double dotSize = 15.0;
bool _isLoading = false;
2020-10-22 04:14:53 +06:30
List<User> _users = [];
@override
void initState() {
super.initState();
_load();
}
_load() async {
CustomerModel customerModel =
Provider.of<CustomerModel>(context, listen: false);
2021-09-10 15:22:11 +06:30
var users = await customerModel.getInvoiceUsers(widget.fcsShipment!.id!);
2020-10-22 04:14:53 +06:30
setState(() {
_users = users;
});
}
2020-10-14 20:56:46 +06:30
@override
Widget build(BuildContext context) {
return LocalProgress(
inAsyncCall: _isLoading,
child: Scaffold(
appBar: LocalAppBar(labelKey: 'customer.list.title'),
2020-10-14 20:56:46 +06:30
body: Column(
crossAxisAlignment: CrossAxisAlignment.end,
children: [
Expanded(
child: ListView.separated(
separatorBuilder: (context, index) => Divider(
color: Colors.grey,
),
scrollDirection: Axis.vertical,
shrinkWrap: true,
2020-10-22 04:14:53 +06:30
itemCount: _users.length,
2020-10-14 20:56:46 +06:30
itemBuilder: (BuildContext context, int index) {
2020-10-22 04:14:53 +06:30
User customer = _users[index];
2020-10-14 20:56:46 +06:30
return _item(customer);
}),
),
],
),
),
);
}
Widget _item(User customer) {
return InkWell(
2020-10-26 04:41:24 +06:30
onTap: () async {
bool? created = await Navigator.of(context).push(CupertinoPageRoute(
2020-10-22 04:14:53 +06:30
builder: (context) => InvoiceEditor(
customer: customer, fcsShipment: widget.fcsShipment)));
if (created ?? false) {
2020-10-26 04:41:24 +06:30
_load();
}
2020-10-14 20:56:46 +06:30
},
child: Padding(
padding: const EdgeInsets.only(left: 12.0, right: 12),
child: Row(
children: <Widget>[
Expanded(
child: new Padding(
padding: const EdgeInsets.symmetric(vertical: 2.0),
child: new Row(
children: <Widget>[
2020-10-22 04:14:53 +06:30
Padding(
padding: const EdgeInsets.all(5.0),
child: Container(
padding: const EdgeInsets.only(
left: 10.0, right: 10, top: 6, bottom: 6),
decoration: BoxDecoration(
color: primaryColor,
borderRadius:
BorderRadius.all(Radius.circular(35.0))),
child: Text(
customer.initial,
style: TextStyle(fontSize: 30, color: Colors.white),
2020-10-14 20:56:46 +06:30
),
),
),
new Expanded(
child: Padding(
padding: const EdgeInsets.only(left: 8.0),
child: new Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Padding(
padding: const EdgeInsets.only(top: 2.0),
child: new Text(
2021-09-10 15:22:11 +06:30
customer.name!,
2020-10-14 20:56:46 +06:30
style: new TextStyle(
fontSize: 20.0, color: primaryColor),
),
),
Padding(
padding: const EdgeInsets.only(top: 2.0),
child: new Text(
2021-09-10 15:22:11 +06:30
customer.phoneNumber!,
2020-10-14 20:56:46 +06:30
style: new TextStyle(
fontSize: 15.0, color: Colors.grey),
),
),
],
),
),
),
],
),
),
),
Column(
crossAxisAlignment: CrossAxisAlignment.end,
children: [
Padding(
padding: const EdgeInsets.only(right: 5),
child: Text(customer.getLastMessageTime),
),
],
),
],
),
),
);
}
}