This commit is contained in:
Sai Naw Wun
2020-10-07 02:33:06 +06:30
parent 01a2798a74
commit 65dda16fe6
475 changed files with 1543 additions and 90780 deletions

View File

@@ -1,9 +1,8 @@
import 'package:fcs/model_fcs/box_model.dart';
import 'package:fcs/model_fcs/package_model.dart';
import 'package:fcs/fcs/common/helpers/theme.dart';
import 'package:fcs/vo/box.dart';
import 'package:fcs/widget/localization/app_translations.dart';
import 'package:fcs/widget/progress.dart';
import 'package:fcs/domain/entities/box.dart';
import 'package:fcs/helpers/theme.dart';
import 'package:fcs/localization/app_translations.dart';
import 'package:fcs/pages/box/model/box_model.dart';
import 'package:fcs/pages/widgets/progress.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';

View File

@@ -1,21 +1,12 @@
import 'package:fcs/model/invoice_model.dart';
import 'package:fcs/model/main_model.dart';
import 'package:fcs/model/shipment_model.dart';
import 'package:fcs/model_fcs/package_model.dart';
import 'package:fcs/pages_fcs/package_list_row.dart';
import 'package:fcs/fcs/common/helpers/theme.dart';
import 'package:fcs/widget/bottom_up_page_route.dart';
import 'package:fcs/widget/local_text.dart';
import 'package:fcs/helpers/theme.dart';
import 'package:fcs/localization/app_translations.dart';
import 'package:fcs/pages/invoice/model/invoice_model.dart';
import 'package:fcs/pages/widgets/bottom_up_page_route.dart';
import 'package:fcs/pages/widgets/local_text.dart';
import 'package:fcs/pages/widgets/progress.dart';
import 'package:provider/provider.dart';
import 'package:fcs/pages/search_page.dart';
import 'package:fcs/vo/buyer.dart';
import 'package:fcs/widget/localization/app_translations.dart';
import 'package:flutter/material.dart';
import 'package:fcs/widget/progress.dart';
import '../shipment_editor.dart';
import '../shipment_list_row.dart';
import 'invoice_editor.dart';
import 'invoice_list_row.dart';
@@ -39,7 +30,7 @@ class _InvoiceListState extends State<InvoiceList> {
@override
Widget build(BuildContext context) {
var owner = Provider.of<MainModel>(context).isOwner();
var owner = true;
return LocalProgress(
inAsyncCall: _isLoading,
@@ -62,7 +53,7 @@ class _InvoiceListState extends State<InvoiceList> {
color: Colors.white,
),
iconSize: 30,
onPressed: () => showPlacesSearch(context),
// onPressed: () => showPlacesSearch(context),
),
],
bottom: TabBar(
@@ -95,30 +86,6 @@ class _InvoiceListState extends State<InvoiceList> {
Navigator.of(context).push(BottomUpPageRoute(InvoiceEditor()));
}
Widget _packages() {
var packageModel = Provider.of<PackageModel>(context);
return Column(
children: <Widget>[
Expanded(
child: new ListView.separated(
separatorBuilder: (context, index) => Divider(
color: Colors.black,
),
scrollDirection: Axis.vertical,
padding: EdgeInsets.only(top: 15),
shrinkWrap: true,
itemCount: packageModel.completed.length,
itemBuilder: (BuildContext context, int index) {
return PackageListRow(
package: packageModel.completed[index],
isReadOnly: true,
);
}),
),
],
);
}
Widget _pending() {
var invoiceModel = Provider.of<InvoiceModel>(context);
return Column(

View File

@@ -1,26 +1,23 @@
import 'package:fcs/model/discount_model.dart';
import 'package:fcs/model/main_model.dart';
import 'package:fcs/model_fcs/box_model.dart';
import 'package:fcs/pages/invoice/package_addition.dart';
import 'package:fcs/fcs/common/helpers/theme.dart';
import 'package:fcs/vo/box.dart';
import 'package:fcs/vo/cargo.dart';
import 'package:fcs/vo/invoice.dart';
import 'package:fcs/vo/package.dart';
import 'package:fcs/widget/bottom_up_page_route.dart';
import 'package:fcs/widget/local_text.dart';
import 'package:fcs/widget/localization/app_translations.dart';
import 'package:fcs/widget/multi_img_controller.dart';
import 'package:fcs/widget/multi_img_file.dart';
import 'package:fcs/widget/my_data_table.dart';
import 'package:fcs/widget/progress.dart';
import 'package:fcs/domain/entities/box.dart';
import 'package:fcs/domain/entities/cargo.dart';
import 'package:fcs/domain/entities/invoice.dart';
import 'package:fcs/domain/entities/payment_method.dart';
import 'package:fcs/helpers/theme.dart';
import 'package:fcs/localization/app_translations.dart';
import 'package:fcs/pages/discount/model/discount_model.dart';
import 'package:fcs/pages/main/model/main_model.dart';
import 'package:fcs/pages/widgets/bottom_up_page_route.dart';
import 'package:fcs/pages/widgets/local_text.dart';
import 'package:fcs/pages/widgets/multi_img_controller.dart';
import 'package:fcs/pages/widgets/multi_img_file.dart';
import 'package:fcs/pages/widgets/my_data_table.dart';
import 'package:fcs/pages/widgets/progress.dart';
import 'package:flutter/material.dart';
import 'package:flutter_icons/flutter_icons.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
import 'package:intl/intl.dart';
import 'package:provider/provider.dart';
import '../../fcs/common/pages/util.dart';
import 'box_addition.dart';
class InvoiceEditor extends StatefulWidget {
@@ -32,6 +29,29 @@ class InvoiceEditor extends StatefulWidget {
}
class _InvoiceEditorState extends State<InvoiceEditor> {
List<PaymentMethod> get paymentMethods {
List<PaymentMethod> methods = [
PaymentMethod(
name: 'AYA Bank',
accountName: 'FCS',
account: '100 23404320548398',
phone: '+959123456789',
),
PaymentMethod(
name: 'KBZ Bank',
accountName: 'FCS',
account: '100 23404320548398',
phone: '+959123456789',
),
PaymentMethod(
name: 'PayPal',
accountName: 'FCS',
link: 'https://www.paypal.com/donate/buttons',
),
];
return methods;
}
var dateFormatter = new DateFormat('dd MMM yyyy');
TextEditingController _invoiceNumberController = new TextEditingController();
TextEditingController _dateController = new TextEditingController();
@@ -58,7 +78,7 @@ class _InvoiceEditorState extends State<InvoiceEditor> {
];
List<String> _receipts = [
"assets/photos/amazon_ins.png",
"assets/buying_online_with_first_last_name.png",
];
@override
@@ -75,7 +95,7 @@ class _InvoiceEditorState extends State<InvoiceEditor> {
_statusController.text = _invoice.status.toString();
_handlingFeeController.text = '0';
_customFeeController.text = '0';
multiImgController.setImageUrls = _receipts;
// multiImgController.setImageUrls = _receipts;
_descriptionController.text = 'For Electronics goods';
_balanceController.text =
(_invoice.amount - _invoice.receipts[0].amount).toString();
@@ -452,7 +472,7 @@ class _InvoiceEditorState extends State<InvoiceEditor> {
Container(
width: 150.0,
child: DropdownButtonFormField(
items: mainModel.paymentMethods
items: paymentMethods
.map((e) => DropdownMenuItem(
child: Text(e.name), value: e.name))
.toList(),
@@ -598,7 +618,7 @@ class _InvoiceEditorState extends State<InvoiceEditor> {
),
),
),
mainModel.isOwner()
true
? Container(
padding: EdgeInsets.only(top: 20),
child: Align(

View File

@@ -1,22 +1,19 @@
import 'dart:async';
import 'dart:io';
import 'package:fcs/model/main_model.dart';
import 'package:fcs/pages/invoice/payment_pdf_screen.dart';
import 'package:fcs/fcs/common/helpers/theme.dart';
import 'package:fcs/vo/invoice.dart';
import 'package:fcs/widget/bottom_up_page_route.dart';
import 'package:fcs/domain/entities/invoice.dart';
import 'package:fcs/helpers/theme.dart';
import 'package:fcs/pages/widgets/bottom_up_page_route.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
import 'package:intl/intl.dart';
import 'package:path_provider/path_provider.dart';
import 'package:provider/provider.dart';
import '../../fcs/common/pages/util.dart';
import 'invoice_editor.dart';
import 'payment_page.dart';
import 'payment_pdf_screen.dart';
class InvoiceListRow extends StatefulWidget {
final Invoice invoice;
@@ -70,7 +67,7 @@ class _InvoiceListRowState extends State<InvoiceListRow> {
@override
Widget build(BuildContext context) {
var owner = Provider.of<MainModel>(context).isOwner();
var owner = true;
return Container(
padding: EdgeInsets.only(left: 15, right: 15),
child: Row(

View File

@@ -0,0 +1,163 @@
import 'package:fcs/domain/entities/invoice.dart';
import 'package:fcs/domain/entities/package.dart';
import 'package:fcs/domain/entities/receipt.dart';
import 'package:fcs/pages/main/model/base_model.dart';
class InvoiceModel extends BaseModel {
List<Invoice> invoices = [
Invoice(
invoiceNumber: 'A092(A)-30',
invoiceDate: DateTime(2020, 4, 5, 12, 30),
customerName: 'Ko Nyi',
customerPhoneNumber: '+959 888888888',
amount: 500,
status: 'Pending',
packages: [
Package(
shipmentNumber: "A202",
receiverNumber: "3",
boxNumber: "1",
rate: 7,
packageType: "General",
weight: 25,
status: "Received",
receiverAddress: '1 Bo Yar Nyunt St.\nDagon Tsp, Yangon',
arrivedDate: DateTime(2020, 6, 1),
),
Package(
shipmentNumber: "A202",
receiverNumber: "3",
boxNumber: "2",
rate: 7,
packageType: "General",
weight: 20,
status: "Received",
arrivedDate: DateTime(2020, 6, 1),
receiverAddress: '1 Bo Yar Nyunt St.\nDagon Tsp, Yangon'),
],
receipts: [
Receipt(amount: 200, date: DateTime(2020, 6, 1)),
Receipt(amount: 100, date: DateTime(2020, 6, 16)),
]),
Invoice(
invoiceNumber: 'A092(A)-31',
invoiceDate: DateTime(2020, 4, 5, 9, 30),
customerName: 'Ko Aung Myo',
customerPhoneNumber: '+959 444444444',
amount: 300,
status: 'Paid',
packages: [
Package(
shipmentNumber: "A202",
receiverNumber: "3",
boxNumber: "3",
rate: 7,
packageType: "General",
weight: 15,
status: "Received",
arrivedDate: DateTime(2020, 6, 1),
receiverAddress: '1 Bo Yar Nyunt St.\nDagon Tsp, Yangon'),
Package(
shipmentNumber: "A202",
receiverNumber: "2",
boxNumber: "1",
rate: 8,
packageType: "Medicine",
weight: 15,
status: "Processing",
arrivedDate: DateTime(2020, 6, 1),
receiverAddress: '2 Shwe Taung Kyar St, Bahan Tsp, Yangon'),
],
receipts: [
Receipt(amount: 200, date: DateTime(2020, 6, 1)),
]),
Invoice(
invoiceNumber: 'A092(A)-32',
invoiceDate: DateTime(2020, 4, 6, 10, 10),
customerName: 'Ko Zaw Thu',
customerPhoneNumber: '+959 777777777',
amount: 200,
status: 'Paid',
packages: [
Package(
shipmentNumber: "A202",
receiverNumber: "2",
boxNumber: "2",
rate: 7,
packageType: "General",
weight: 55,
status: "Ready to ship",
arrivedDate: DateTime(2020, 6, 1),
receiverAddress: '2 Shwe Taung Kyar St, Bahan Tsp, Yangon'),
Package(
shipmentNumber: "A201",
receiverNumber: "1",
boxNumber: "1",
rate: 9,
packageType: "Dangerous",
weight: 25,
status: "Delivered",
arrivedDate: DateTime(2020, 5, 21),
receiverAddress: '3 Kambzwza St, Bahan Tsp, Yangon'),
],
receipts: [
Receipt(amount: 200, date: DateTime(2020, 6, 1)),
]),
Invoice(
invoiceNumber: 'A092(A)-33',
invoiceDate: DateTime(2020, 4, 6, 12, 15),
customerName: 'Ko Myo Min',
customerPhoneNumber: '+959 555555555',
amount: 300,
status: 'Pending',
receipts: [
Receipt(amount: 200, date: DateTime(2020, 6, 1)),
],
packages: [
Package(
shipmentNumber: "A201",
receiverNumber: "1",
boxNumber: "1",
rate: 9,
packageType: "Dangerous",
weight: 25,
status: "Delivered",
arrivedDate: DateTime(2020, 5, 21),
receiverAddress: '3 Kambzwza St, Bahan Tsp, Yangon'),
Package(
shipmentNumber: "A201",
receiverNumber: "1",
boxNumber: "2",
rate: 7,
packageType: "General",
weight: 5,
status: "Delivered",
arrivedDate: DateTime(2020, 5, 21),
receiverAddress: '3 Kambzwza St, Bahan Tsp, Yangon'),
])
];
List<Invoice> get pending {
List<Invoice> _i = invoices.where((e) => e.status == "Pending").toList()
..sort((e1, e2) {
return e2.invoiceNumber.compareTo(e1.invoiceNumber);
});
return _i;
}
List<Invoice> get paided {
return invoices.where((e) => e.status == "Paid").toList()
..sort((e1, e2) {
return e2.invoiceNumber.compareTo(e1.invoiceNumber);
});
}
void initUser(user) {
super.initUser(user);
}
@override
logout() async {
invoices = [];
}
}

View File

@@ -1,107 +0,0 @@
import 'package:fcs/model_fcs/package_model.dart';
import 'package:fcs/fcs/common/helpers/theme.dart';
import 'package:fcs/vo/package.dart';
import 'package:fcs/widget/localization/app_translations.dart';
import 'package:fcs/widget/progress.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
class PackageAddition extends StatefulWidget {
final Package package;
PackageAddition({this.package});
@override
_PackageAdditionState createState() => _PackageAdditionState();
}
class _PackageAdditionState extends State<PackageAddition> {
Package _package = new Package();
bool _isLoading = false;
@override
void initState() {
super.initState();
if (widget.package != null) {
_package = widget.package;
}
}
@override
void dispose() {
super.dispose();
}
@override
Widget build(BuildContext context) {
var packageModel = Provider.of<PackageModel>(context);
return LocalProgress(
inAsyncCall: _isLoading,
child: Scaffold(
appBar: AppBar(
centerTitle: true,
leading: new IconButton(
icon: new Icon(Icons.close),
onPressed: () => Navigator.of(context).pop(),
),
backgroundColor: primaryColor,
title: Text(AppTranslations.of(context).text("package.edit.title")),
),
body: Card(
child: Column(
children: <Widget>[
Expanded(
child: Padding(
padding: const EdgeInsets.all(10.0),
child: ListView(children: <Widget>[
DropdownButtonFormField(
decoration: InputDecoration(
fillColor: Colors.white,
labelText: 'Package Number',
icon: Icon(Icons.pages)),
items: packageModel.completed
.map((e) => DropdownMenuItem(
child: Text(e.packageNumber), value: e))
.toList(),
onChanged: (map) => {},
),
]),
)),
widget.package == null
? Align(
alignment: Alignment.bottomCenter,
child: Center(
child: Container(
width: 250,
child: FlatButton(
child: Text('Add package'),
color: primaryColor,
textColor: Colors.white,
onPressed: () {
Navigator.pop(context);
},
),
)))
: Align(
alignment: Alignment.bottomCenter,
child: Center(
child: Container(
width: 250,
child: FlatButton(
child: Text('Save package'),
color: primaryColor,
textColor: Colors.white,
onPressed: () {
Navigator.pop(context);
},
),
))),
SizedBox(
height: 30,
)
],
),
),
),
);
}
}

View File

@@ -1,143 +0,0 @@
import 'package:fcs/model/main_model.dart';
import 'package:fcs/model/pickup_model.dart';
import 'package:fcs/fcs/common/helpers/theme.dart';
import 'package:fcs/vo/package.dart';
import 'package:fcs/widget/label_widgets.dart';
import 'package:fcs/widget/localization/app_translations.dart';
import 'package:fcs/widget/progress.dart';
import 'package:flutter/material.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
import 'package:intl/intl.dart';
import 'package:provider/provider.dart';
class PackageInfo extends StatefulWidget {
final Package package;
PackageInfo({this.package});
@override
_PackageInfoState createState() => _PackageInfoState();
}
class _PackageInfoState extends State<PackageInfo> {
var dateFormatter = new DateFormat('dd MMM yyyy');
Package _package;
bool _isLoading = false;
@override
void initState() {
super.initState();
if (widget.package != null) {
_package = widget.package;
}
}
@override
void dispose() {
super.dispose();
}
@override
Widget build(BuildContext context) {
return LocalProgress(
inAsyncCall: _isLoading,
child: Scaffold(
appBar: AppBar(
centerTitle: true,
leading: new IconButton(
icon: new Icon(Icons.close),
onPressed: () => Navigator.of(context).pop(),
),
backgroundColor: primaryColor,
title: Text(AppTranslations.of(context).text("package.edit.title")),
),
body: Card(
child: Column(
children: <Widget>[
Expanded(
child: Padding(
padding: const EdgeInsets.all(10.0),
child: ListView(children: <Widget>[
Container(
padding: EdgeInsets.only(top: 10),
child: Row(
children: <Widget>[
Icon(
Icons.calendar_today,
),
Padding(
padding: const EdgeInsets.only(right: 8.0, left: 15),
child: labeledText(
context,
dateFormatter.format(_package.arrivedDate),
"package.arrival.date"),
),
],
),
),
Container(
padding: EdgeInsets.only(top: 10),
child: Row(
children: <Widget>[
Icon(Icons.pages),
Padding(
padding: const EdgeInsets.only(right: 8.0, left: 15),
child: labeledText(context, _package.packageNumber,
"package.number"),
),
],
),
),
Container(
padding: EdgeInsets.only(top: 10),
child: Row(
children: <Widget>[
Icon(FontAwesomeIcons.weightHanging),
Padding(
padding: const EdgeInsets.only(right: 8.0, left: 15),
child: labeledText(
context,
"${_package.weight.toString()} lb",
"package.weight"),
),
],
),
),
Container(
padding: EdgeInsets.only(top: 10),
child: Row(
children: <Widget>[
Icon(FontAwesomeIcons.tag),
Padding(
padding: const EdgeInsets.only(right: 8.0, left: 15),
child: labeledText(context, _package.rate.toString(),
"package.rate"),
),
],
),
),
Container(
padding: EdgeInsets.only(top: 10),
child: Row(
children: <Widget>[
Icon(FontAwesomeIcons.moneyBill),
Padding(
padding: const EdgeInsets.only(right: 8.0, left: 15),
child: labeledText(
context,
_package.price == null
? ""
: "\$ " + _package.price.toString(),
"package.amount"),
),
],
),
)
]),
)),
],
),
),
),
);
}
}

View File

@@ -1,15 +1,12 @@
import 'package:fcs/model/main_model.dart';
import 'package:fcs/fcs/common/pages/util.dart';
import 'package:fcs/fcs/common/helpers/theme.dart';
import 'package:fcs/vo/invoice.dart';
import 'package:fcs/vo/package.dart';
import 'package:fcs/widget/local_text.dart';
import 'package:fcs/widget/localization/app_translations.dart';
import 'package:fcs/widget/multi_img_controller.dart';
import 'package:fcs/widget/multi_img_file.dart';
import 'package:fcs/widget/my_data_table.dart';
import 'package:fcs/widget/number_cell.dart';
import 'package:fcs/widget/progress.dart';
import 'package:fcs/domain/entities/invoice.dart';
import 'package:fcs/helpers/theme.dart';
import 'package:fcs/localization/app_translations.dart';
import 'package:fcs/pages/widgets/local_text.dart';
import 'package:fcs/pages/widgets/multi_img_controller.dart';
import 'package:fcs/pages/widgets/multi_img_file.dart';
import 'package:fcs/pages/widgets/my_data_table.dart';
import 'package:fcs/pages/widgets/number_cell.dart';
import 'package:fcs/pages/widgets/progress.dart';
import 'package:flutter/material.dart';
import 'package:flutter_icons/flutter_icons.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
@@ -38,7 +35,7 @@ class _PaymentPageState extends State<PaymentPage> {
Invoice _invoice = new Invoice();
bool _isLoading = false;
List<String> _receipts = [
"assets/photos/amazon_ins.png",
"assets/buying_online_with_first_last_name.png",
];
bool isNew;
@@ -46,7 +43,7 @@ class _PaymentPageState extends State<PaymentPage> {
void initState() {
if (widget.invoice != null) {
_invoice = widget.invoice;
multiImgController.setImageUrls = _receipts;
// multiImgController.setImageUrls = _receipts;
}
super.initState();
}

View File

@@ -1,7 +1,6 @@
import 'dart:async';
import 'package:fcs/fcs/common/helpers/theme.dart';
import 'package:fcs/widget/local_text.dart';
import 'package:fcs/helpers/theme.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter_pdfview/flutter_pdfview.dart';