add signin function
This commit is contained in:
@@ -8,7 +8,7 @@ import 'package:fcs/widget/local_text.dart';
|
||||
import 'package:fcs/widget/localization/app_translations.dart';
|
||||
import 'package:fcs/widget/progress.dart';
|
||||
|
||||
import '../theme/theme.dart' as Theme;
|
||||
import '../fcs/common/theme.dart' as Theme;
|
||||
import 'util.dart';
|
||||
|
||||
class AddPINEditor extends StatefulWidget {
|
||||
|
||||
@@ -12,7 +12,7 @@ import 'package:fcs/widget/popupmenu.dart';
|
||||
import 'package:fcs/widget/progress.dart';
|
||||
import 'package:zefyr/zefyr.dart';
|
||||
|
||||
import '../theme/theme.dart';
|
||||
import '../fcs/common/theme.dart';
|
||||
import 'announcement_editor.dart';
|
||||
|
||||
class AnnouncementPage extends StatefulWidget {
|
||||
|
||||
@@ -5,7 +5,7 @@ import 'package:provider/provider.dart';
|
||||
import 'package:fcs/model/announcement_model.dart';
|
||||
import 'package:fcs/model/language_model.dart';
|
||||
import 'package:fcs/pages/util.dart';
|
||||
import 'package:fcs/theme/theme.dart';
|
||||
import 'package:fcs/fcs/common/theme.dart';
|
||||
import 'package:fcs/vo/announcement.dart';
|
||||
import 'package:fcs/widget/local_text.dart';
|
||||
import 'package:fcs/widget/localization/app_translations.dart';
|
||||
|
||||
@@ -8,7 +8,7 @@ import 'package:fcs/widget/local_text.dart';
|
||||
import 'package:fcs/widget/localization/app_translations.dart';
|
||||
import 'package:fcs/widget/progress.dart';
|
||||
|
||||
import '../theme/theme.dart';
|
||||
import '../fcs/common/theme.dart';
|
||||
import 'announcement.dart';
|
||||
import 'announcement_editor.dart';
|
||||
|
||||
@@ -43,15 +43,13 @@ class _AnnouncementListState extends State<AnnouncementList> {
|
||||
inAsyncCall: _isLoading,
|
||||
child: Scaffold(
|
||||
appBar: AppBar(
|
||||
backgroundColor: primaryColor,
|
||||
title:
|
||||
LocalText(
|
||||
context,
|
||||
"announcement.title",
|
||||
color: Colors.white,
|
||||
fontSize: 20,
|
||||
)
|
||||
),
|
||||
backgroundColor: primaryColor,
|
||||
title: LocalText(
|
||||
context,
|
||||
"announcement.title",
|
||||
color: Colors.white,
|
||||
fontSize: 20,
|
||||
)),
|
||||
floatingActionButton: isOwnerAndAbove || hasAdmin
|
||||
? FloatingActionButton(
|
||||
backgroundColor: primaryColor,
|
||||
@@ -118,19 +116,22 @@ class _AnnouncementListState extends State<AnnouncementList> {
|
||||
],
|
||||
),
|
||||
),
|
||||
Column(
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: <Widget>[
|
||||
Padding(
|
||||
padding: const EdgeInsets.all(8.0),
|
||||
child: Text(announce.time==null?"":timeFormatter.format(announce.time)),
|
||||
),
|
||||
announce.fromToday()
|
||||
? Container()
|
||||
: Text(announce.time==null?"":dateFormatter.format(announce.time)),
|
||||
],
|
||||
)
|
||||
|
||||
Column(
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: <Widget>[
|
||||
Padding(
|
||||
padding: const EdgeInsets.all(8.0),
|
||||
child: Text(announce.time == null
|
||||
? ""
|
||||
: timeFormatter.format(announce.time)),
|
||||
),
|
||||
announce.fromToday()
|
||||
? Container()
|
||||
: Text(announce.time == null
|
||||
? ""
|
||||
: dateFormatter.format(announce.time)),
|
||||
],
|
||||
)
|
||||
],
|
||||
),
|
||||
),
|
||||
|
||||
@@ -5,7 +5,7 @@ import 'package:image_picker/image_picker.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:fcs/model/main_model.dart';
|
||||
import 'package:fcs/pages/util.dart';
|
||||
import 'package:fcs/theme/theme.dart';
|
||||
import 'package:fcs/fcs/common/theme.dart';
|
||||
import 'package:fcs/vo/bank_account.dart';
|
||||
import 'package:fcs/widget/local_text.dart';
|
||||
import 'package:fcs/widget/local_text_field.dart';
|
||||
|
||||
@@ -3,7 +3,7 @@ import 'package:flutter/services.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:fcs/model/main_model.dart';
|
||||
import 'package:fcs/pages/banks/bank_edit.dart';
|
||||
import 'package:fcs/theme/theme.dart';
|
||||
import 'package:fcs/fcs/common/theme.dart';
|
||||
import 'package:fcs/vo/bank_account.dart';
|
||||
import 'package:fcs/widget/local_text.dart';
|
||||
import 'package:fcs/widget/progress.dart';
|
||||
|
||||
@@ -5,7 +5,7 @@ import 'package:flutter_icons/flutter_icons.dart';
|
||||
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:fcs/model/product_model.dart';
|
||||
import 'package:fcs/theme/theme.dart';
|
||||
import 'package:fcs/fcs/common/theme.dart';
|
||||
import 'package:fcs/vo/buyer.dart';
|
||||
import 'package:fcs/vo/product.dart';
|
||||
import 'package:fcs/widget/progress.dart';
|
||||
|
||||
@@ -2,7 +2,7 @@ import 'package:flutter/material.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:fcs/model/user_model.dart';
|
||||
import 'package:fcs/pages/util.dart';
|
||||
import 'package:fcs/theme/theme.dart';
|
||||
import 'package:fcs/fcs/common/theme.dart';
|
||||
import 'package:fcs/vo/popup_menu.dart';
|
||||
import 'package:fcs/vo/user.dart';
|
||||
import 'package:fcs/widget/local_text.dart';
|
||||
|
||||
@@ -12,7 +12,7 @@ import 'package:fcs/widget/label_widgets.dart';
|
||||
import 'package:fcs/widget/localization/app_translations.dart';
|
||||
import 'package:fcs/widget/progress.dart';
|
||||
|
||||
import '../theme/theme.dart';
|
||||
import '../fcs/common/theme.dart';
|
||||
import 'document_log_page.dart';
|
||||
|
||||
class BuyerInfo extends StatefulWidget {
|
||||
|
||||
@@ -9,7 +9,7 @@ import 'package:fcs/widget/popupmenu.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:fcs/widget/progress.dart';
|
||||
|
||||
import '../theme/theme.dart';
|
||||
import '../fcs/common/theme.dart';
|
||||
import 'buyer_list_row.dart';
|
||||
|
||||
class BuyerList extends StatefulWidget {
|
||||
|
||||
@@ -2,7 +2,7 @@ import 'package:flutter/material.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:fcs/model/buyer_model.dart';
|
||||
import 'package:fcs/pages/util.dart';
|
||||
import 'package:fcs/theme/theme.dart';
|
||||
import 'package:fcs/fcs/common/theme.dart';
|
||||
import 'package:fcs/vo/buyer.dart';
|
||||
|
||||
import 'buyer_info.dart';
|
||||
|
||||
@@ -7,7 +7,7 @@ import 'package:fcs/model/main_model.dart';
|
||||
import 'package:fcs/widget/local_text.dart';
|
||||
import 'package:fcs/widget/progress.dart';
|
||||
|
||||
import '../theme/theme.dart';
|
||||
import '../fcs/common/theme.dart';
|
||||
import '../widget/label_widgets.dart';
|
||||
import '../widget/local_text.dart';
|
||||
import 'instruction.dart';
|
||||
|
||||
@@ -6,17 +6,19 @@ import 'package:fcs/widget/localization/app_translations.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:fcs/widget/progress.dart';
|
||||
|
||||
import '../theme/theme.dart';
|
||||
import '../fcs/common/theme.dart';
|
||||
|
||||
class CalculateShipmentCostEditor extends StatefulWidget {
|
||||
final PickUp pickUp;
|
||||
CalculateShipmentCostEditor({this.pickUp});
|
||||
|
||||
@override
|
||||
_CalculateShipmentCostEditorState createState() => _CalculateShipmentCostEditorState();
|
||||
_CalculateShipmentCostEditorState createState() =>
|
||||
_CalculateShipmentCostEditorState();
|
||||
}
|
||||
|
||||
class _CalculateShipmentCostEditorState extends State<CalculateShipmentCostEditor> {
|
||||
class _CalculateShipmentCostEditorState
|
||||
extends State<CalculateShipmentCostEditor> {
|
||||
TextEditingController _addressEditingController = new TextEditingController();
|
||||
TextEditingController _fromTimeEditingController =
|
||||
new TextEditingController();
|
||||
|
||||
@@ -9,7 +9,7 @@ import 'package:fcs/widget/local_text.dart';
|
||||
import 'package:fcs/widget/localization/app_translations.dart';
|
||||
import 'package:fcs/widget/progress.dart';
|
||||
|
||||
import '../theme/theme.dart' as Theme;
|
||||
import '../fcs/common/theme.dart' as Theme;
|
||||
import 'confirm_email.dart';
|
||||
import 'util.dart';
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@ import 'package:fcs/widget/local_text.dart';
|
||||
import 'package:fcs/widget/localization/app_translations.dart';
|
||||
import 'package:fcs/widget/progress.dart';
|
||||
|
||||
import '../theme/theme.dart' as Theme;
|
||||
import '../fcs/common/theme.dart' as Theme;
|
||||
import 'util.dart';
|
||||
|
||||
class ChangePassword extends StatefulWidget {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:fcs/model/user_model.dart';
|
||||
import 'package:fcs/theme/theme.dart';
|
||||
import 'package:fcs/fcs/common/theme.dart';
|
||||
import 'package:fcs/widget/localization/app_translations.dart';
|
||||
import 'package:fcs/widget/progress.dart';
|
||||
|
||||
@@ -38,7 +38,7 @@ class _ConfirmEmailState extends State<ConfirmEmail> {
|
||||
try {
|
||||
await userModel.confirmEmail(
|
||||
widget.id, widget.email, widget.phoneNumber, _sms.text);
|
||||
Navigator.pushNamedAndRemoveUntil(context, "/home", (r) => false);
|
||||
Navigator.pushNamedAndRemoveUntil(context, "/welcome", (r) => false);
|
||||
} catch (e) {
|
||||
showMsgDialog(context, "Error", e.toString());
|
||||
}
|
||||
|
||||
@@ -7,7 +7,7 @@ import 'package:provider/provider.dart';
|
||||
import 'package:url_launcher/url_launcher.dart';
|
||||
import 'package:fcs/model/main_model.dart';
|
||||
import 'package:fcs/pages/util.dart';
|
||||
import 'package:fcs/theme/theme.dart';
|
||||
import 'package:fcs/fcs/common/theme.dart';
|
||||
import 'package:fcs/widget/local_text.dart';
|
||||
import 'package:fcs/widget/progress.dart';
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@ import 'package:fcs/model/language_model.dart';
|
||||
import 'package:fcs/model/main_model.dart';
|
||||
import 'package:fcs/pages/phone_input.dart';
|
||||
import 'package:fcs/pages/util.dart';
|
||||
import 'package:fcs/theme/theme.dart';
|
||||
import 'package:fcs/fcs/common/theme.dart';
|
||||
import 'package:fcs/vo/setting.dart';
|
||||
import 'package:fcs/widget/local_text.dart';
|
||||
import 'package:fcs/widget/local_text_field.dart';
|
||||
|
||||
@@ -4,7 +4,7 @@ import 'package:fcs/widget/localization/app_translations.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:fcs/widget/progress.dart';
|
||||
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
|
||||
import '../theme/theme.dart';
|
||||
import '../fcs/common/theme.dart';
|
||||
|
||||
class CustomEditor extends StatefulWidget {
|
||||
final Custom custom;
|
||||
|
||||
@@ -4,7 +4,7 @@ import 'package:fcs/model/employee_model.dart';
|
||||
import 'package:fcs/model/language_model.dart';
|
||||
import 'package:fcs/model/main_model.dart';
|
||||
import 'package:fcs/model/user_model.dart';
|
||||
import 'package:fcs/theme/theme.dart';
|
||||
import 'package:fcs/fcs/common/theme.dart';
|
||||
import 'package:fcs/vo/role.dart';
|
||||
import 'package:fcs/vo/user.dart';
|
||||
import 'package:fcs/widget/local_text.dart';
|
||||
|
||||
@@ -7,10 +7,10 @@ import 'package:flutter_icons/flutter_icons.dart';
|
||||
import 'package:intl/intl.dart';
|
||||
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:fcs/theme/theme.dart';
|
||||
import 'package:fcs/fcs/common/theme.dart';
|
||||
import 'package:fcs/widget/progress.dart';
|
||||
|
||||
import '../theme/theme.dart';
|
||||
import '../fcs/common/theme.dart';
|
||||
import '../vo/user.dart';
|
||||
import '../widget/local_text.dart';
|
||||
import 'customer_editor.dart';
|
||||
|
||||
@@ -12,7 +12,7 @@ import 'package:fcs/model/main_model.dart';
|
||||
import 'package:fcs/model/po_model.dart';
|
||||
import 'package:fcs/model/product_model.dart';
|
||||
import 'package:fcs/pages/do/photo_page.dart';
|
||||
import 'package:fcs/theme/theme.dart';
|
||||
import 'package:fcs/fcs/common/theme.dart';
|
||||
import 'package:fcs/vo/do.dart';
|
||||
import 'package:fcs/widget/img_file.dart';
|
||||
import 'package:fcs/widget/local_text.dart';
|
||||
@@ -425,8 +425,8 @@ class _DeliveryItemState extends State<DeliveryItem> {
|
||||
label: LocalText(context, "do.storage"),
|
||||
),
|
||||
MyDataColumn(
|
||||
label: LocalText(context, "do.quantity"),numeric: true
|
||||
),
|
||||
label: LocalText(context, "do.quantity"),
|
||||
numeric: true),
|
||||
],
|
||||
rows: getProductRow(doObj.doLines),
|
||||
),
|
||||
@@ -446,7 +446,7 @@ class _DeliveryItemState extends State<DeliveryItem> {
|
||||
|
||||
List<MyDataRow> getProductRow(List<DOLine> doLines) {
|
||||
ProductModel productModel = Provider.of<ProductModel>(context);
|
||||
if (doLines.isNotEmpty) {
|
||||
if (doLines.isNotEmpty) {
|
||||
doLines.forEach((d) {
|
||||
productModel.products.forEach((p) {
|
||||
if (p.id == d.productID) {
|
||||
@@ -471,9 +471,7 @@ class _DeliveryItemState extends State<DeliveryItem> {
|
||||
MyDataCell(
|
||||
new Text(d.storageName, style: textStyle),
|
||||
),
|
||||
MyDataCell(
|
||||
NumberCell(d.qty)
|
||||
),
|
||||
MyDataCell(NumberCell(d.qty)),
|
||||
],
|
||||
);
|
||||
}).toList();
|
||||
|
||||
@@ -7,7 +7,7 @@ import 'package:fcs/model/language_model.dart';
|
||||
import 'package:fcs/model/main_model.dart';
|
||||
import 'package:fcs/pages/delivery/delivery_item.dart';
|
||||
import 'package:fcs/pages/util.dart';
|
||||
import 'package:fcs/theme/theme.dart';
|
||||
import 'package:fcs/fcs/common/theme.dart';
|
||||
import 'package:fcs/vo/popup_menu.dart';
|
||||
import 'package:fcs/widget/localization/app_translations.dart';
|
||||
import 'package:fcs/widget/popupmenu.dart';
|
||||
|
||||
@@ -8,7 +8,7 @@ import 'package:fcs/widget/local_text.dart';
|
||||
import 'package:fcs/widget/popupmenu.dart';
|
||||
import 'package:fcs/widget/progress.dart';
|
||||
|
||||
import '../theme/theme.dart';
|
||||
import '../fcs/common/theme.dart';
|
||||
import 'util.dart';
|
||||
|
||||
class PhoneDeviceList extends StatefulWidget {
|
||||
|
||||
@@ -5,7 +5,7 @@ import 'package:fcs/widget/localization/app_translations.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:fcs/widget/progress.dart';
|
||||
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
|
||||
import '../theme/theme.dart';
|
||||
import '../fcs/common/theme.dart';
|
||||
|
||||
class DiscountByWeightEditor extends StatefulWidget {
|
||||
final Discount discount;
|
||||
|
||||
@@ -8,7 +8,7 @@ import 'package:provider/provider.dart';
|
||||
import 'package:fcs/widget/localization/app_translations.dart';
|
||||
import 'package:fcs/widget/progress.dart';
|
||||
|
||||
import '../theme/theme.dart';
|
||||
import '../fcs/common/theme.dart';
|
||||
|
||||
class DiscountEditor extends StatefulWidget {
|
||||
final Discount discount;
|
||||
|
||||
@@ -7,7 +7,7 @@ import 'package:provider/provider.dart';
|
||||
import 'package:fcs/widget/localization/app_translations.dart';
|
||||
import 'package:fcs/widget/progress.dart';
|
||||
|
||||
import '../theme/theme.dart';
|
||||
import '../fcs/common/theme.dart';
|
||||
|
||||
class DiscountList extends StatefulWidget {
|
||||
@override
|
||||
@@ -95,7 +95,8 @@ class _DiscountListState extends State<DiscountList> {
|
||||
crossAxisAlignment: CrossAxisAlignment.end,
|
||||
children: <Widget>[
|
||||
Padding(
|
||||
padding: const EdgeInsets.only(left: 10.0,bottom: 5.0),
|
||||
padding:
|
||||
const EdgeInsets.only(left: 10.0, bottom: 5.0),
|
||||
child: Text(
|
||||
'\$ ${discount.amount.toString()}',
|
||||
style: TextStyle(
|
||||
@@ -104,7 +105,7 @@ class _DiscountListState extends State<DiscountList> {
|
||||
fontSize: 16),
|
||||
),
|
||||
),
|
||||
getStatus(discount.status),
|
||||
getStatus(discount.status),
|
||||
],
|
||||
),
|
||||
],
|
||||
|
||||
@@ -13,7 +13,7 @@ import 'package:fcs/model/main_model.dart';
|
||||
import 'package:fcs/model/po_model.dart';
|
||||
import 'package:fcs/model/product_model.dart';
|
||||
import 'package:fcs/pages/do/photo_page.dart';
|
||||
import 'package:fcs/theme/theme.dart';
|
||||
import 'package:fcs/fcs/common/theme.dart';
|
||||
import 'package:fcs/vo/do.dart';
|
||||
import 'package:fcs/vo/po.dart';
|
||||
import 'package:fcs/widget/img_file.dart';
|
||||
@@ -539,8 +539,9 @@ class _DOApprovalState extends State<DOApproval> {
|
||||
label: LocalText(context, "do.storage"),
|
||||
),
|
||||
MyDataColumn(
|
||||
label: LocalText(context, "do.quantity"),numeric: true
|
||||
),
|
||||
label:
|
||||
LocalText(context, "do.quantity"),
|
||||
numeric: true),
|
||||
],
|
||||
rows: getProductRow(doObj.doLines),
|
||||
),
|
||||
@@ -633,16 +634,20 @@ class _DOApprovalState extends State<DOApproval> {
|
||||
MyDataColumn(label: LocalText(context, "po.number")),
|
||||
MyDataColumn(label: LocalText(context, "po.product")),
|
||||
MyDataColumn(
|
||||
label: LocalText(context, "do.po_qty"),numeric: true,
|
||||
label: LocalText(context, "do.po_qty"),
|
||||
numeric: true,
|
||||
),
|
||||
MyDataColumn(
|
||||
label: LocalText(context, "do.po_balance_qty"),numeric: true,
|
||||
label: LocalText(context, "do.po_balance_qty"),
|
||||
numeric: true,
|
||||
),
|
||||
MyDataColumn(
|
||||
label: LocalText(context, "po.retrieved.amount"),numeric: true,
|
||||
label: LocalText(context, "po.retrieved.amount"),
|
||||
numeric: true,
|
||||
),
|
||||
MyDataColumn(
|
||||
label: LocalText(context, "do.do_qty"),numeric: true,
|
||||
label: LocalText(context, "do.do_qty"),
|
||||
numeric: true,
|
||||
),
|
||||
],
|
||||
rows: getPOProductRow(),
|
||||
|
||||
@@ -9,7 +9,7 @@ import 'package:fcs/model/po_model.dart';
|
||||
import 'package:fcs/model/product_model.dart';
|
||||
import 'package:fcs/pages/do/do_product_item.dart';
|
||||
import 'package:fcs/pages/util.dart';
|
||||
import 'package:fcs/theme/theme.dart';
|
||||
import 'package:fcs/fcs/common/theme.dart';
|
||||
import 'package:fcs/vo/do.dart';
|
||||
import 'package:fcs/vo/po.dart';
|
||||
import 'package:fcs/widget/img_file.dart';
|
||||
@@ -415,9 +415,7 @@ class _DOFormState extends State<DOForm> {
|
||||
columns: [
|
||||
MyDataColumn(label: LocalText(context, "do.product")),
|
||||
MyDataColumn(
|
||||
label: LocalText(context, "po.avail.qty"),
|
||||
numeric: true
|
||||
),
|
||||
label: LocalText(context, "po.avail.qty"), numeric: true),
|
||||
MyDataColumn(
|
||||
label: LocalText(context, "do.do_qty"),
|
||||
numeric: true,
|
||||
@@ -464,19 +462,17 @@ class _DOFormState extends State<DOForm> {
|
||||
style: textStyle,
|
||||
),
|
||||
),
|
||||
MyDataCell(
|
||||
NumberCell(d.poBalQty)
|
||||
),
|
||||
MyDataCell(NumberCell(d.poBalQty)),
|
||||
MyDataCell(
|
||||
Container(
|
||||
color: Colors.cyan,
|
||||
child: Row(
|
||||
mainAxisAlignment: MainAxisAlignment.end,
|
||||
children: <Widget>[
|
||||
new Text(d.qty == null ? "0" : d.qty.toString(),
|
||||
style: textStyle),
|
||||
],
|
||||
)),
|
||||
child: Row(
|
||||
mainAxisAlignment: MainAxisAlignment.end,
|
||||
children: <Widget>[
|
||||
new Text(d.qty == null ? "0" : d.qty.toString(),
|
||||
style: textStyle),
|
||||
],
|
||||
)),
|
||||
),
|
||||
],
|
||||
);
|
||||
@@ -504,16 +500,20 @@ class _DOFormState extends State<DOForm> {
|
||||
MyDataColumn(label: LocalText(context, "po.number")),
|
||||
MyDataColumn(label: LocalText(context, "po.product")),
|
||||
MyDataColumn(
|
||||
label: LocalText(context, "do.po_qty"),numeric: true,
|
||||
label: LocalText(context, "do.po_qty"),
|
||||
numeric: true,
|
||||
),
|
||||
MyDataColumn(
|
||||
label: LocalText(context, "po.avail.qty"),numeric: true,
|
||||
label: LocalText(context, "po.avail.qty"),
|
||||
numeric: true,
|
||||
),
|
||||
MyDataColumn(
|
||||
label: LocalText(context, "po.retrieved.amount"),numeric: true,
|
||||
label: LocalText(context, "po.retrieved.amount"),
|
||||
numeric: true,
|
||||
),
|
||||
MyDataColumn(
|
||||
label: LocalText(context, "do.do_qty"),numeric: true,
|
||||
label: LocalText(context, "do.do_qty"),
|
||||
numeric: true,
|
||||
),
|
||||
],
|
||||
rows: getPOProductRow(),
|
||||
@@ -540,8 +540,8 @@ class _DOFormState extends State<DOForm> {
|
||||
});
|
||||
|
||||
doSubmission.dopoLies.sort((p1, p2) {
|
||||
if (p1.displayOrder!=p2.displayOrder)
|
||||
return p1.displayOrder.compareTo(p2.displayOrder);
|
||||
if (p1.displayOrder != p2.displayOrder)
|
||||
return p1.displayOrder.compareTo(p2.displayOrder);
|
||||
return p1.poNumber.compareTo(p2.poNumber);
|
||||
});
|
||||
}
|
||||
@@ -560,15 +560,9 @@ class _DOFormState extends State<DOForm> {
|
||||
style: textStyle,
|
||||
),
|
||||
),
|
||||
MyDataCell(
|
||||
NumberCell(d.poQty)
|
||||
),
|
||||
MyDataCell(
|
||||
NumberCell(d.poBalQty)
|
||||
),
|
||||
MyDataCell(
|
||||
NumberCell(d.getPoBalanceQty)
|
||||
),
|
||||
MyDataCell(NumberCell(d.poQty)),
|
||||
MyDataCell(NumberCell(d.poBalQty)),
|
||||
MyDataCell(NumberCell(d.getPoBalanceQty)),
|
||||
MyDataCell(
|
||||
Container(
|
||||
color: Colors.grey,
|
||||
|
||||
@@ -3,7 +3,7 @@ import 'package:provider/provider.dart';
|
||||
import 'package:fcs/model/language_model.dart';
|
||||
import 'package:fcs/model/po_model.dart';
|
||||
import 'package:fcs/pages/util.dart';
|
||||
import 'package:fcs/theme/theme.dart';
|
||||
import 'package:fcs/fcs/common/theme.dart';
|
||||
import 'package:fcs/vo/do.dart';
|
||||
import 'package:fcs/vo/po.dart';
|
||||
import 'package:fcs/widget/img_file.dart';
|
||||
|
||||
@@ -6,7 +6,7 @@ import 'package:fcs/model/language_model.dart';
|
||||
import 'package:fcs/model/main_model.dart';
|
||||
import 'package:fcs/pages/do/do_creation_form.dart';
|
||||
import 'package:fcs/pages/util.dart';
|
||||
import 'package:fcs/theme/theme.dart';
|
||||
import 'package:fcs/fcs/common/theme.dart';
|
||||
import 'package:fcs/vo/popup_menu.dart';
|
||||
import 'package:fcs/widget/localization/app_translations.dart';
|
||||
import 'package:fcs/widget/popupmenu.dart';
|
||||
|
||||
@@ -3,7 +3,7 @@ import 'package:font_awesome_flutter/font_awesome_flutter.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:fcs/model/language_model.dart';
|
||||
import 'package:fcs/pages/util.dart';
|
||||
import 'package:fcs/theme/theme.dart';
|
||||
import 'package:fcs/fcs/common/theme.dart';
|
||||
import 'package:fcs/vo/do.dart';
|
||||
import 'package:fcs/widget/local_text.dart';
|
||||
import 'package:fcs/widget/localization/app_translations.dart';
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:fcs/model/storage_model.dart';
|
||||
import 'package:fcs/theme/theme.dart';
|
||||
import 'package:fcs/fcs/common/theme.dart';
|
||||
import 'package:fcs/util.dart';
|
||||
import 'package:fcs/vo/do.dart';
|
||||
import 'package:fcs/vo/storage.dart';
|
||||
|
||||
@@ -3,7 +3,7 @@ import 'package:flutter/material.dart';
|
||||
import 'package:image_picker/image_picker.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:fcs/model/language_model.dart';
|
||||
import 'package:fcs/theme/theme.dart';
|
||||
import 'package:fcs/fcs/common/theme.dart';
|
||||
import 'package:fcs/widget/localization/app_translations.dart';
|
||||
|
||||
import '../util.dart';
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:fcs/theme/theme.dart';
|
||||
import 'package:fcs/fcs/common/theme.dart';
|
||||
import 'package:fcs/vo/po.dart';
|
||||
import 'package:fcs/widget/local_text.dart';
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ import 'package:intl/intl.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:fcs/model/log_model.dart';
|
||||
import 'package:fcs/model/user_model.dart';
|
||||
import 'package:fcs/theme/theme.dart';
|
||||
import 'package:fcs/fcs/common/theme.dart';
|
||||
import 'package:fcs/vo/document_log.dart';
|
||||
import 'package:fcs/vo/role.dart';
|
||||
import 'package:fcs/widget/local_text.dart';
|
||||
|
||||
@@ -4,7 +4,7 @@ import 'package:fcs/model/language_model.dart';
|
||||
import 'package:fcs/model/main_model.dart';
|
||||
import 'package:fcs/model/shared_pref.dart';
|
||||
import 'package:fcs/model/user_model.dart';
|
||||
import 'package:fcs/theme/theme.dart';
|
||||
import 'package:fcs/fcs/common/theme.dart';
|
||||
import 'package:fcs/vo/user.dart';
|
||||
import 'package:fcs/widget/local_text.dart';
|
||||
import 'package:fcs/widget/localization/app_translations.dart';
|
||||
@@ -82,7 +82,8 @@ class _EmailPageState extends State<EmailPage> {
|
||||
child: InkWell(
|
||||
onTap: () {
|
||||
SharedPref.saveSkippedRecoverEmail(true);
|
||||
Navigator.pushNamedAndRemoveUntil(context, "/home", (r) => false);
|
||||
Navigator.pushNamedAndRemoveUntil(
|
||||
context, "/welcome", (r) => false);
|
||||
},
|
||||
child: Row(
|
||||
mainAxisAlignment: MainAxisAlignment.end,
|
||||
|
||||
@@ -9,7 +9,7 @@ import 'package:provider/provider.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:fcs/widget/progress.dart';
|
||||
|
||||
import '../theme/theme.dart';
|
||||
import '../fcs/common/theme.dart';
|
||||
|
||||
class FCSProfilePage extends StatefulWidget {
|
||||
final PickUp pickUp;
|
||||
|
||||
@@ -4,7 +4,7 @@ import 'package:provider/provider.dart';
|
||||
import 'package:fcs/model/main_model.dart';
|
||||
import 'package:fcs/model/user_model.dart';
|
||||
import 'package:fcs/pages/reset_password.dart';
|
||||
import 'package:fcs/theme/theme.dart';
|
||||
import 'package:fcs/fcs/common/theme.dart';
|
||||
import 'package:fcs/widget/local_text.dart';
|
||||
import 'package:fcs/widget/localization/app_translations.dart';
|
||||
import 'package:fcs/widget/progress.dart';
|
||||
|
||||
@@ -1,519 +0,0 @@
|
||||
import 'package:country_code_picker/country_code.dart';
|
||||
import 'package:fcs/model/main_model.dart';
|
||||
import 'package:fcs/pages/discount_list.dart';
|
||||
import 'package:fcs/pages/payment_method_page.dart';
|
||||
import 'package:fcs/pages/shipment_list.dart';
|
||||
import 'package:fcs/pages_fcs/box_list.dart';
|
||||
import 'package:fcs/pages_fcs/delivery_list.dart';
|
||||
import 'package:fcs/pages_fcs/package_list.dart';
|
||||
import 'package:fcs/widget/bottom_up_page_route.dart';
|
||||
import 'package:fcs/widget/localization/transalation.dart';
|
||||
import 'package:fcs/widget/right_left_page_route%20copy.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_icons/flutter_icons.dart';
|
||||
import 'package:flutter_staggered_grid_view/flutter_staggered_grid_view.dart';
|
||||
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
|
||||
import 'package:intl/intl.dart';
|
||||
import 'package:logging/logging.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'dart:math' as math;
|
||||
import 'package:fcs/charts/bar_chart.dart';
|
||||
import 'package:fcs/charts/delivery_do_line.dart';
|
||||
import 'package:fcs/charts/delivery_do_summary.dart';
|
||||
import 'package:fcs/charts/delivery_line.dart';
|
||||
import 'package:fcs/charts/delivery_summary.dart';
|
||||
import 'package:fcs/charts/do_line.dart';
|
||||
import 'package:fcs/charts/po_balance_chart.dart';
|
||||
import 'package:fcs/charts/po_line.dart';
|
||||
import 'package:fcs/charts/revenue_line.dart';
|
||||
import 'package:fcs/model/language_model.dart';
|
||||
import 'package:fcs/model/product_model.dart';
|
||||
import 'package:fcs/pages/banks/banks.dart';
|
||||
import 'package:fcs/pages/buyer_list.dart';
|
||||
import 'package:fcs/pages/contact.dart';
|
||||
import 'package:fcs/pages/delivery/delivery_list.dart';
|
||||
import 'package:fcs/pages/manual/manual_page.dart';
|
||||
import 'package:fcs/pages/notification_list.dart';
|
||||
import 'package:fcs/pages/term.dart';
|
||||
import 'package:fcs/reports/report_list.dart';
|
||||
import 'package:fcs/widget/banner.dart';
|
||||
import 'package:fcs/widget/local_text.dart';
|
||||
import 'package:fcs/widget/localization/app_translations.dart';
|
||||
import 'package:fcs/widget/offline_redirect.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_staggered_grid_view/flutter_staggered_grid_view.dart';
|
||||
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
|
||||
import 'package:intl/intl.dart';
|
||||
import 'package:logging/logging.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
import '../theme/theme.dart';
|
||||
import 'announcement_list.dart';
|
||||
import 'buying_online.dart';
|
||||
import 'customer_list.dart';
|
||||
import 'do/do_list.dart';
|
||||
import 'invoice/invoce_list.dart';
|
||||
import 'my_registeration.dart';
|
||||
import 'pd/pd_list.dart';
|
||||
import 'products_list.dart';
|
||||
import 'profile_page.dart';
|
||||
import '../fcs/common/pages/signin/signin_page.dart';
|
||||
import 'staff_list.dart';
|
||||
|
||||
import 'fcs_profile_page.dart';
|
||||
import 'pd/pd_list.dart';
|
||||
import 'pickup_list.dart';
|
||||
import 'products_list.dart';
|
||||
import 'profile_page.dart';
|
||||
import 'shipment_rates.dart';
|
||||
import 'storage/storage_list.dart';
|
||||
import 'user_list.dart';
|
||||
|
||||
final msgLog = Logger('backgroundMessageHandler');
|
||||
|
||||
class HomePage extends StatefulWidget {
|
||||
@override
|
||||
_HomePageState createState() => _HomePageState();
|
||||
}
|
||||
|
||||
typedef BtnCallback();
|
||||
|
||||
class _HomePageState extends State<HomePage> {
|
||||
final log = Logger('_HomePageState');
|
||||
bool login = false;
|
||||
bool customer = true;
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
}
|
||||
|
||||
void dispose() {
|
||||
super.dispose();
|
||||
}
|
||||
|
||||
static final List<String> chartDropdownItems = [
|
||||
'Last 7 days',
|
||||
'Last month',
|
||||
'Last three months'
|
||||
];
|
||||
String actualDropdown = chartDropdownItems[0];
|
||||
int actualChart = 0;
|
||||
final numberFormatter = new NumberFormat("#,###");
|
||||
|
||||
String pin;
|
||||
List<bool> isSelected = [true, false];
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
login = Provider.of<MainModel>(context).isLogin();
|
||||
var owner = Provider.of<MainModel>(context).isOwner();
|
||||
var customer = Provider.of<MainModel>(context).isCustomer();
|
||||
|
||||
final packagesBtn = _buildBtn2("package.name",
|
||||
icon: Octicons.package,
|
||||
btnCallback: () =>
|
||||
Navigator.of(context).push(BottomUpPageRoute(PackageList())));
|
||||
|
||||
final boxesBtn = _buildBtn2("boxes.name",
|
||||
icon: MaterialCommunityIcons.package,
|
||||
btnCallback: () =>
|
||||
Navigator.of(context).push(BottomUpPageRoute(BoxList())));
|
||||
|
||||
final pickUpBtn = _buildBtn2("pickup",
|
||||
icon: SimpleLineIcons.direction,
|
||||
btnCallback: () =>
|
||||
Navigator.of(context).push(BottomUpPageRoute(PickUpList())));
|
||||
|
||||
final shipmentCostBtn = _buildBtn2("rate",
|
||||
icon: FontAwesomeIcons.calculator,
|
||||
btnCallback: () =>
|
||||
Navigator.of(context).push(BottomUpPageRoute(ShipmentRates())));
|
||||
|
||||
final fcsProfileBtn = _buildBtn2("fcs.btn",
|
||||
// imgIcon: Image.asset("assets/logo_btn.png", height: 25,color:Colors.white),
|
||||
icon: MaterialCommunityIcons.home_city,
|
||||
btnCallback: () =>
|
||||
Navigator.of(context).push(BottomUpPageRoute(FCSProfilePage())));
|
||||
|
||||
final shipmentBtn = _buildBtn2("shipment.title",
|
||||
icon: Ionicons.ios_airplane,
|
||||
imgIcon: Image.asset(
|
||||
"assets/truck.png",
|
||||
width: 50,
|
||||
height: 50,
|
||||
color: primaryColor,
|
||||
),
|
||||
btnCallback: () =>
|
||||
Navigator.of(context).push(BottomUpPageRoute(ShipmentList())));
|
||||
|
||||
final buyingBtn = _buildBtn2("buy_online",
|
||||
icon: MaterialCommunityIcons.cart_outline, btnCallback: () {
|
||||
Navigator.push(context, BottomUpPageRoute(BuyingOnlinePage())
|
||||
// MaterialPageRoute(builder: (context) => BuyingOnlinePage()),
|
||||
);
|
||||
});
|
||||
|
||||
final notiBtn =
|
||||
_buildBtn2("message.btn", icon: Icons.message, btnCallback: () {
|
||||
Navigator.push(
|
||||
context,
|
||||
BottomUpPageRoute(NotificationList()),
|
||||
);
|
||||
});
|
||||
|
||||
final staffBtn = _buildBtn2("staff.title",
|
||||
icon: MaterialCommunityIcons.worker,
|
||||
btnCallback: () =>
|
||||
Navigator.of(context).push(BottomUpPageRoute(StaffList())));
|
||||
|
||||
final customersBtn = _buildBtn2("customers.btn",
|
||||
icon: Feather.users,
|
||||
btnCallback: () =>
|
||||
Navigator.of(context).push(BottomUpPageRoute(CustomerList())));
|
||||
|
||||
final invoicesBtn = _buildBtn2("invoices.btn",
|
||||
icon: FontAwesomeIcons.fileInvoice,
|
||||
btnCallback: () =>
|
||||
Navigator.of(context).push(BottomUpPageRoute(InvoiceList())));
|
||||
|
||||
final paymentMethodBtn = _buildBtn2("payment.method.btn",
|
||||
icon: FontAwesomeIcons.creditCard,
|
||||
btnCallback: () =>
|
||||
Navigator.of(context).push(BottomUpPageRoute(PaymentMethodPage())));
|
||||
|
||||
final discountBtn = _buildBtn2("discount.btn",
|
||||
icon: Entypo.price_ribbon,
|
||||
btnCallback: () =>
|
||||
Navigator.of(context).push(BottomUpPageRoute(DiscountList())));
|
||||
|
||||
final termBtn = _buildBtn2("term.btn",
|
||||
icon: FontAwesomeIcons.info,
|
||||
btnCallback: () =>
|
||||
Navigator.of(context).push(BottomUpPageRoute(Term())));
|
||||
final deliveryBtn = _buildBtn2("delivery.title",
|
||||
icon: MaterialCommunityIcons.truck_fast,
|
||||
btnCallback: () =>
|
||||
Navigator.of(context).push(BottomUpPageRoute(DeliverList())));
|
||||
|
||||
List<Widget> widgets = [];
|
||||
customer ? widgets.add(buyingBtn) : "";
|
||||
customer || owner ? widgets.add(pickUpBtn) : "";
|
||||
owner ? widgets.add(shipmentBtn) : "";
|
||||
customer || owner ? widgets.add(notiBtn) : "";
|
||||
owner ? widgets.add(staffBtn) : "";
|
||||
owner ? widgets.add(fcsProfileBtn) : "";
|
||||
widgets.add(shipmentCostBtn);
|
||||
customer || owner ? widgets.add(packagesBtn) : "";
|
||||
owner ? widgets.add(boxesBtn) : "";
|
||||
owner ? widgets.add(deliveryBtn) : "";
|
||||
owner ? widgets.add(customersBtn) : "";
|
||||
customer || owner ? widgets.add(invoicesBtn) : "";
|
||||
owner ? widgets.add(paymentMethodBtn) : "";
|
||||
owner ? widgets.add(discountBtn) : "";
|
||||
// widgets.add(termBtn);
|
||||
|
||||
return OfflineRedirect(
|
||||
child: FlavorBanner(
|
||||
child: Scaffold(
|
||||
appBar: AppBar(
|
||||
elevation: 0,
|
||||
backgroundColor: primaryColor,
|
||||
title: ClipRRect(
|
||||
child: Image.asset("assets/logo.jpg", height: 40),
|
||||
borderRadius: new BorderRadius.circular(30.0),
|
||||
),
|
||||
actions: login
|
||||
? <Widget>[
|
||||
ToggleButtons(
|
||||
children: <Widget>[
|
||||
Image.asset(
|
||||
'icons/flags/png/us.png',
|
||||
package: 'country_icons',
|
||||
fit: BoxFit.fitWidth,
|
||||
width: 25,
|
||||
),
|
||||
Image.asset(
|
||||
'icons/flags/png/mm.png',
|
||||
package: 'country_icons',
|
||||
fit: BoxFit.fitWidth,
|
||||
width: 25,
|
||||
)
|
||||
],
|
||||
onPressed: _langChange,
|
||||
isSelected: isSelected,
|
||||
),
|
||||
IconButton(
|
||||
onPressed: () {
|
||||
Navigator.of(context)
|
||||
.push(RightLeftPageRoute(Profile()));
|
||||
},
|
||||
iconSize: 30,
|
||||
icon: Icon(Icons.account_circle),
|
||||
),
|
||||
]
|
||||
: <Widget>[
|
||||
ToggleButtons(
|
||||
children: <Widget>[
|
||||
Image.asset(
|
||||
'icons/flags/png/us.png',
|
||||
package: 'country_icons',
|
||||
fit: BoxFit.fitWidth,
|
||||
width: 25,
|
||||
),
|
||||
Image.asset(
|
||||
'icons/flags/png/mm.png',
|
||||
package: 'country_icons',
|
||||
fit: BoxFit.fitWidth,
|
||||
width: 25,
|
||||
)
|
||||
],
|
||||
onPressed: _langChange,
|
||||
isSelected: isSelected,
|
||||
),
|
||||
FlatButton(
|
||||
onPressed: () {
|
||||
Navigator.of(context)
|
||||
.push(BottomUpPageRoute(SigninPage()));
|
||||
},
|
||||
// iconSize: 30,
|
||||
child: Text(
|
||||
"Sign In",
|
||||
style: siginButtonStyle,
|
||||
),
|
||||
),
|
||||
]),
|
||||
body: Container(
|
||||
decoration: BoxDecoration(
|
||||
gradient:
|
||||
// RadialGradient(
|
||||
// center: const Alignment(-0.7, 0.6), // near the top right
|
||||
// radius: 0.6,
|
||||
// colors: [
|
||||
// secondaryColor,
|
||||
// primaryColor, // yellow sun
|
||||
// ],
|
||||
// stops: [0.4, 1.0],
|
||||
// )
|
||||
LinearGradient(
|
||||
begin: Alignment.topCenter,
|
||||
end: Alignment
|
||||
.bottomCenter, // 10% of the width, so there are ten blinds.
|
||||
colors: [
|
||||
Color(0xd0272262),
|
||||
Color(0xfa272262),
|
||||
// Color(0xa0ff4400),
|
||||
// secondaryColor,
|
||||
], // whitish to gray
|
||||
),
|
||||
// SweepGradient(
|
||||
// center: FractionalOffset.centerLeft,
|
||||
// startAngle: 0.0,
|
||||
// endAngle: math.pi * 2,
|
||||
// colors: const <Color>[
|
||||
// secondaryColor,
|
||||
// primaryColor,
|
||||
// secondaryColor,
|
||||
// primaryColor,
|
||||
// secondaryColor,
|
||||
// ],
|
||||
// stops: const <double>[0.0, 0.25, 0.5, 0.75, 1.0],
|
||||
// ),
|
||||
),
|
||||
child: Column(
|
||||
children: <Widget>[
|
||||
Expanded(
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.only(top: 8.0),
|
||||
child: ListView(children: [
|
||||
Wrap(
|
||||
alignment: WrapAlignment.center,
|
||||
children: widgets,
|
||||
),
|
||||
]),
|
||||
),
|
||||
),
|
||||
Container(
|
||||
height: 80,
|
||||
child: Row(
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: <Widget>[
|
||||
// _buildSmallButton(
|
||||
// "Policies", FontAwesomeIcons.fileContract),
|
||||
InkWell(
|
||||
onTap: () {
|
||||
Navigator.of(context)
|
||||
.push(BottomUpPageRoute(Contact()));
|
||||
},
|
||||
child: _buildSmallButton(
|
||||
"Contact Us", SimpleLineIcons.support),
|
||||
),
|
||||
InkWell(
|
||||
onTap: () {
|
||||
Navigator.of(context)
|
||||
.push(BottomUpPageRoute(Term()));
|
||||
},
|
||||
child: _buildSmallButton(
|
||||
"Terms of service", Icons.info_outline),
|
||||
),
|
||||
],
|
||||
),
|
||||
)
|
||||
],
|
||||
))),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
_langChange(index) {
|
||||
var languageModel = Provider.of<LanguageModel>(context);
|
||||
languageModel.saveLanguage(Translation().supportedLanguages[index]);
|
||||
setState(() {
|
||||
isSelected.asMap().forEach((i, e) {
|
||||
isSelected[i] = false;
|
||||
});
|
||||
isSelected[index] = !isSelected[index];
|
||||
});
|
||||
}
|
||||
|
||||
Widget _buildTile(Widget child, {Function() onTap}) {
|
||||
return Material(
|
||||
elevation: 0,
|
||||
borderRadius: BorderRadius.circular(12.0),
|
||||
// shadowColor: Colors.transparent,
|
||||
color: Colors.transparent,
|
||||
child: InkWell(
|
||||
onTap: onTap != null
|
||||
? () => onTap()
|
||||
: () {
|
||||
log.info('Not set yet');
|
||||
},
|
||||
child: child));
|
||||
}
|
||||
|
||||
Widget _buildBtn(String title,
|
||||
{Image imgIcon, IconData icon, BtnCallback btnCallback}) {
|
||||
var languageModel = Provider.of<LanguageModel>(context);
|
||||
return _buildTile(
|
||||
Padding(
|
||||
padding: const EdgeInsets.all(5.0),
|
||||
child: Column(
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
crossAxisAlignment: CrossAxisAlignment.center,
|
||||
children: <Widget>[
|
||||
icon != null
|
||||
? Material(
|
||||
child: Padding(
|
||||
padding: EdgeInsets.only(top: 10),
|
||||
child: Icon(icon, color: primaryColor, size: 35.0)))
|
||||
: Container(
|
||||
padding: EdgeInsets.only(top: 3),
|
||||
child: imgIcon,
|
||||
),
|
||||
Padding(padding: EdgeInsets.only(bottom: 10.0)),
|
||||
Text(AppTranslations.of(context).text(title),
|
||||
style: languageModel.isEng
|
||||
? TextStyle(
|
||||
color: Colors.black,
|
||||
fontWeight: FontWeight.w700,
|
||||
fontSize: 12.0)
|
||||
: TextStyle(
|
||||
color: Colors.black,
|
||||
fontWeight: FontWeight.w700,
|
||||
fontSize: 12.0,
|
||||
fontFamily: "MyanmarUnicode")),
|
||||
]),
|
||||
),
|
||||
onTap: btnCallback,
|
||||
);
|
||||
}
|
||||
|
||||
Widget _buildBtn2(String title,
|
||||
{Image imgIcon, IconData icon, BtnCallback btnCallback}) {
|
||||
var languageModel = Provider.of<LanguageModel>(context);
|
||||
return Container(
|
||||
width: 100,
|
||||
height: 100,
|
||||
decoration: new BoxDecoration(
|
||||
color: Colors.transparent, //new Color.fromRGBO(255, 0, 0, 0.0),
|
||||
borderRadius: new BorderRadius.only(
|
||||
topLeft: const Radius.circular(40.0),
|
||||
topRight: const Radius.circular(40.0))),
|
||||
// color: Colors.transparent,
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.all(5.0),
|
||||
child: Column(
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
crossAxisAlignment: CrossAxisAlignment.center,
|
||||
children: <Widget>[
|
||||
// Padding(
|
||||
// padding: EdgeInsets.only(top: 10),
|
||||
// child: Icon(icon, color: Colors.white, size: 35.0)),
|
||||
// Padding(padding: EdgeInsets.only(bottom: 10.0)),
|
||||
ClipOval(
|
||||
child: Material(
|
||||
color: Colors.black54, // button color
|
||||
child: InkWell(
|
||||
splashColor: primaryColor, // inkwell color
|
||||
child: SizedBox(
|
||||
width: 60,
|
||||
height: 60,
|
||||
child: icon == null
|
||||
? Container(width: 10, height: 10, child: imgIcon)
|
||||
: Icon(icon, color: Colors.white, size: 30)),
|
||||
onTap: btnCallback,
|
||||
),
|
||||
),
|
||||
),
|
||||
|
||||
Container(
|
||||
height: 30,
|
||||
child: FittedBox(
|
||||
fit: BoxFit.fitWidth,
|
||||
child: Text(AppTranslations.of(context).text(title),
|
||||
style: languageModel.isEng
|
||||
? TextStyle(
|
||||
color: Colors.white,
|
||||
fontWeight: FontWeight.w500,
|
||||
fontSize: 14.0,
|
||||
fontFamily: "Roboto")
|
||||
: TextStyle(
|
||||
color: Colors.white,
|
||||
fontWeight: FontWeight.w700,
|
||||
fontSize: 12.0,
|
||||
fontFamily: "MyanmarUnicode")),
|
||||
),
|
||||
),
|
||||
]),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
Widget _buildSmallButton(String text, IconData iconData) {
|
||||
return Padding(
|
||||
padding: const EdgeInsets.all(18.0),
|
||||
child: Row(
|
||||
children: <Widget>[
|
||||
IconButton(
|
||||
icon: Icon(iconData, color: Colors.white70),
|
||||
color: Colors.white70,
|
||||
onPressed: null),
|
||||
// RaisedButton(onPressed: ()=>{},child: Row(
|
||||
// children: <Widget>[
|
||||
// IconButton(
|
||||
// icon: Icon(iconData, ),
|
||||
// onPressed: null),
|
||||
// Text(text),
|
||||
// ],
|
||||
// ),color: Colors.transparent,
|
||||
// focusColor: Colors.transparent,),
|
||||
Text(
|
||||
text,
|
||||
style: subMenuStyle,
|
||||
)
|
||||
],
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -1,310 +0,0 @@
|
||||
import 'package:fcs/model/language_model.dart';
|
||||
import 'package:fcs/model/main_model.dart';
|
||||
import 'package:fcs/pages/contact.dart';
|
||||
import 'package:fcs/widget/banner.dart';
|
||||
import 'package:fcs/widget/bottom_up_page_route.dart';
|
||||
import 'package:fcs/widget/dimension_box.dart';
|
||||
import 'package:fcs/widget/localization/transalation.dart';
|
||||
import 'package:fcs/widget/offline_redirect.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_icons/flutter_icons.dart';
|
||||
import 'package:intl/intl.dart' as intl;
|
||||
import 'package:logging/logging.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
import '../theme/theme.dart';
|
||||
import 'profile_page.dart';
|
||||
import '../fcs/common/pages/signin/signin_page.dart';
|
||||
import 'term.dart';
|
||||
|
||||
final msgLog = Logger('backgroundMessageHandler');
|
||||
|
||||
class HomePageWelcome extends StatefulWidget {
|
||||
@override
|
||||
_HomePageWelcomeState createState() => _HomePageWelcomeState();
|
||||
}
|
||||
|
||||
typedef BtnCallback();
|
||||
|
||||
class _HomePageWelcomeState extends State<HomePageWelcome> {
|
||||
final log = Logger('_HomePageWelcomeState');
|
||||
bool login = false;
|
||||
bool customer = true;
|
||||
double length = 10;
|
||||
double width = 10;
|
||||
double height = 10;
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
}
|
||||
|
||||
void dispose() {
|
||||
super.dispose();
|
||||
}
|
||||
|
||||
int actualChart = 0;
|
||||
final numberFormatter = new intl.NumberFormat("#,###");
|
||||
|
||||
String pin;
|
||||
List<bool> isSelected = [true, false];
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
login = Provider.of<MainModel>(context).isLogin();
|
||||
|
||||
return OfflineRedirect(
|
||||
child: FlavorBanner(
|
||||
child: Scaffold(
|
||||
appBar: AppBar(
|
||||
elevation: 0,
|
||||
backgroundColor: primaryColor,
|
||||
title: ClipRRect(
|
||||
child: Image.asset("assets/logo.jpg", height: 40),
|
||||
borderRadius: new BorderRadius.circular(30.0),
|
||||
),
|
||||
actions: login
|
||||
? <Widget>[
|
||||
ToggleButtons(
|
||||
children: <Widget>[
|
||||
Image.asset(
|
||||
'icons/flags/png/us.png',
|
||||
package: 'country_icons',
|
||||
fit: BoxFit.fitWidth,
|
||||
width: 25,
|
||||
),
|
||||
Image.asset(
|
||||
'icons/flags/png/mm.png',
|
||||
package: 'country_icons',
|
||||
fit: BoxFit.fitWidth,
|
||||
width: 25,
|
||||
)
|
||||
],
|
||||
onPressed: _langChange,
|
||||
isSelected: isSelected,
|
||||
),
|
||||
IconButton(
|
||||
onPressed: () {
|
||||
Navigator.push(
|
||||
context,
|
||||
MaterialPageRoute(
|
||||
builder: (context) => Profile()),
|
||||
);
|
||||
},
|
||||
iconSize: 30,
|
||||
icon: Icon(Icons.account_circle),
|
||||
),
|
||||
]
|
||||
: <Widget>[
|
||||
ToggleButtons(
|
||||
children: <Widget>[
|
||||
Image.asset(
|
||||
'icons/flags/png/us.png',
|
||||
package: 'country_icons',
|
||||
fit: BoxFit.fitWidth,
|
||||
width: 25,
|
||||
),
|
||||
Image.asset(
|
||||
'icons/flags/png/mm.png',
|
||||
package: 'country_icons',
|
||||
fit: BoxFit.fitWidth,
|
||||
width: 25,
|
||||
)
|
||||
],
|
||||
onPressed: _langChange,
|
||||
isSelected: isSelected,
|
||||
),
|
||||
FlatButton(
|
||||
onPressed: () {
|
||||
Navigator.of(context)
|
||||
.push(BottomUpPageRoute(SigninPage()));
|
||||
},
|
||||
// iconSize: 30,
|
||||
child: Text(
|
||||
"Sign In",
|
||||
style: siginButtonStyle,
|
||||
),
|
||||
),
|
||||
]),
|
||||
body: Container(
|
||||
decoration: BoxDecoration(
|
||||
gradient: LinearGradient(
|
||||
begin: Alignment.topCenter,
|
||||
end: Alignment
|
||||
.bottomCenter, // 10% of the width, so there are ten blinds.
|
||||
colors: [
|
||||
Color(0xd0272262),
|
||||
Color(0xfa272262),
|
||||
], // whitish to gray
|
||||
)),
|
||||
child: Column(
|
||||
children: <Widget>[
|
||||
Expanded(
|
||||
child: Column(
|
||||
children: <Widget>[
|
||||
Padding(
|
||||
padding: const EdgeInsets.all(80.0),
|
||||
child: Text(
|
||||
"Welcome!",
|
||||
textAlign: TextAlign.center,
|
||||
style: TextStyle(
|
||||
color: Colors.white,
|
||||
fontSize: 28,
|
||||
fontFamily: "Roboto"),
|
||||
),
|
||||
),
|
||||
Padding(
|
||||
padding: const EdgeInsets.only(top: 0.0),
|
||||
child: Text(
|
||||
"Cargo Services",
|
||||
textAlign: TextAlign.center,
|
||||
style: TextStyle(
|
||||
color: Colors.white,
|
||||
fontSize: 28,
|
||||
fontFamily: "Roboto"),
|
||||
),
|
||||
),
|
||||
Padding(
|
||||
padding: const EdgeInsets.all(10.0),
|
||||
child: Text(
|
||||
"by FCS Trading",
|
||||
textAlign: TextAlign.center,
|
||||
style: TextStyle(
|
||||
color: Colors.white,
|
||||
fontSize: 18,
|
||||
fontFamily: "Roboto"),
|
||||
),
|
||||
),
|
||||
Container(
|
||||
padding: EdgeInsets.only(top: 10, bottom: 10),
|
||||
child: CircleAvatar(
|
||||
radius: (50),
|
||||
backgroundColor: Colors.white,
|
||||
child: ClipRRect(
|
||||
borderRadius: BorderRadius.circular(50),
|
||||
child: Image.asset("assets/logo.jpg"),
|
||||
)),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
// Row(
|
||||
// children: <Widget>[
|
||||
// Expanded(
|
||||
// child: Container(
|
||||
// height: 200,
|
||||
// // child: DimensionBox(
|
||||
// // dimension: Dimension(length, width, height),
|
||||
// // color: secondaryColor,
|
||||
// // ),
|
||||
// ),
|
||||
// ),
|
||||
// RotatedBox(
|
||||
// quarterTurns: -1,
|
||||
// child: Slider(
|
||||
// min: 6,
|
||||
// max: 100,
|
||||
// value: height,
|
||||
// onChanged: (value) {
|
||||
// setState(() {
|
||||
// height = value;
|
||||
// });
|
||||
// },
|
||||
// ),
|
||||
// ),
|
||||
// ],
|
||||
// ),
|
||||
// Row(
|
||||
// mainAxisAlignment: MainAxisAlignment.spaceEvenly,
|
||||
// children: <Widget>[
|
||||
// Slider(
|
||||
// label: "Length",
|
||||
// min: 6,
|
||||
// max: 100,
|
||||
// value: length,
|
||||
// onChanged: (value) {
|
||||
// setState(() {
|
||||
// length = value;
|
||||
// });
|
||||
// },
|
||||
// ),
|
||||
// Slider(
|
||||
// label: "Width",
|
||||
// min: 6,
|
||||
// max: 100,
|
||||
// value: width,
|
||||
// onChanged: (value) {
|
||||
// setState(() {
|
||||
// width = value;
|
||||
// });
|
||||
// },
|
||||
// ),
|
||||
// ],
|
||||
// ),
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: <Widget>[
|
||||
// _buildSmallButton(
|
||||
// "Policies", FontAwesomeIcons.fileContract),
|
||||
InkWell(
|
||||
onTap: () {
|
||||
Navigator.of(context).push(
|
||||
MaterialPageRoute(builder: (_) => Contact()));
|
||||
},
|
||||
child: _buildSmallButton(
|
||||
"Contact Us", SimpleLineIcons.support),
|
||||
),
|
||||
InkWell(
|
||||
onTap: () {
|
||||
Navigator.of(context).push(
|
||||
MaterialPageRoute(builder: (_) => Term()));
|
||||
},
|
||||
child: _buildSmallButton(
|
||||
"Terms of service", Icons.info_outline),
|
||||
),
|
||||
],
|
||||
)
|
||||
],
|
||||
))),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
_langChange(index) {
|
||||
var languageModel = Provider.of<LanguageModel>(context);
|
||||
languageModel.saveLanguage(Translation().supportedLanguages[index]);
|
||||
setState(() {
|
||||
isSelected.asMap().forEach((i, e) {
|
||||
isSelected[i] = false;
|
||||
});
|
||||
isSelected[index] = !isSelected[index];
|
||||
});
|
||||
}
|
||||
|
||||
Widget _buildSmallButton(String text, IconData iconData) {
|
||||
return Padding(
|
||||
padding: const EdgeInsets.all(18.0),
|
||||
child: Row(
|
||||
children: <Widget>[
|
||||
IconButton(
|
||||
icon: Icon(iconData, color: Colors.white70),
|
||||
color: Colors.white70,
|
||||
onPressed: null),
|
||||
// RaisedButton(onPressed: ()=>{},child: Row(
|
||||
// children: <Widget>[
|
||||
// IconButton(
|
||||
// icon: Icon(iconData, ),
|
||||
// onPressed: null),
|
||||
// Text(text),
|
||||
// ],
|
||||
// ),color: Colors.transparent,
|
||||
// focusColor: Colors.transparent,),
|
||||
Text(
|
||||
text,
|
||||
style: subMenuStyle,
|
||||
)
|
||||
],
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
import 'package:fcs/theme/theme.dart';
|
||||
import 'package:fcs/fcs/common/theme.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:fcs/model/language_model.dart';
|
||||
@@ -53,9 +53,10 @@ class _InstructionPageState extends State<InstructionPage> {
|
||||
),
|
||||
body: Container(
|
||||
padding: EdgeInsets.only(left: 5, right: 5, top: 5),
|
||||
child: Card(elevation: 0,
|
||||
child: Card(
|
||||
elevation: 0,
|
||||
child: Expanded(
|
||||
child: FittedBox(
|
||||
child: FittedBox(
|
||||
child: Image.asset(widget.image), fit: BoxFit.contain),
|
||||
)),
|
||||
),
|
||||
|
||||
@@ -3,7 +3,7 @@ import 'package:fcs/widget/localization/app_translations.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:fcs/widget/progress.dart';
|
||||
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
|
||||
import '../theme/theme.dart';
|
||||
import '../fcs/common/theme.dart';
|
||||
|
||||
class InvitationPage extends StatefulWidget {
|
||||
@override
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import 'package:fcs/model_fcs/box_model.dart';
|
||||
import 'package:fcs/model_fcs/package_model.dart';
|
||||
import 'package:fcs/theme/theme.dart';
|
||||
import 'package:fcs/fcs/common/theme.dart';
|
||||
import 'package:fcs/vo/box.dart';
|
||||
import 'package:fcs/widget/localization/app_translations.dart';
|
||||
import 'package:fcs/widget/progress.dart';
|
||||
@@ -61,7 +61,9 @@ class _BoxAdditionState extends State<BoxAddition> {
|
||||
icon: Icon(Icons.pages)),
|
||||
items: boxModel.processed
|
||||
.map((e) => DropdownMenuItem(
|
||||
child: Text('${e.shipmentNumber}-${e.receiverNumber} #${e.boxNumber}'), value: e))
|
||||
child: Text(
|
||||
'${e.shipmentNumber}-${e.receiverNumber} #${e.boxNumber}'),
|
||||
value: e))
|
||||
.toList(),
|
||||
onChanged: (map) => {},
|
||||
),
|
||||
|
||||
@@ -3,7 +3,7 @@ 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/theme/theme.dart';
|
||||
import 'package:fcs/fcs/common/theme.dart';
|
||||
import 'package:fcs/widget/bottom_up_page_route.dart';
|
||||
import 'package:fcs/widget/local_text.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
@@ -39,7 +39,7 @@ class _InvoiceListState extends State<InvoiceList> {
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
var owner = Provider.of<MainModel>(context).isOwner();
|
||||
var owner = Provider.of<MainModel>(context).isOwner();
|
||||
|
||||
return LocalProgress(
|
||||
inAsyncCall: _isLoading,
|
||||
@@ -73,16 +73,19 @@ class _InvoiceListState extends State<InvoiceList> {
|
||||
],
|
||||
),
|
||||
),
|
||||
floatingActionButton:owner? FloatingActionButton.extended(
|
||||
onPressed: () {
|
||||
_newInvoice();
|
||||
},
|
||||
icon: Icon(Icons.add),
|
||||
label: Text(AppTranslations.of(context).text("invoices.add")),
|
||||
backgroundColor: primaryColor,
|
||||
):null,
|
||||
floatingActionButton: owner
|
||||
? FloatingActionButton.extended(
|
||||
onPressed: () {
|
||||
_newInvoice();
|
||||
},
|
||||
icon: Icon(Icons.add),
|
||||
label:
|
||||
Text(AppTranslations.of(context).text("invoices.add")),
|
||||
backgroundColor: primaryColor,
|
||||
)
|
||||
: null,
|
||||
body: TabBarView(
|
||||
children: [ _pending(), _paided()],
|
||||
children: [_pending(), _paided()],
|
||||
)),
|
||||
),
|
||||
);
|
||||
|
||||
@@ -2,7 +2,7 @@ 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/theme/theme.dart';
|
||||
import 'package:fcs/fcs/common/theme.dart';
|
||||
import 'package:fcs/vo/box.dart';
|
||||
import 'package:fcs/vo/cargo.dart';
|
||||
import 'package:fcs/vo/invoice.dart';
|
||||
@@ -173,8 +173,9 @@ class _InvoiceEditorState extends State<InvoiceEditor> {
|
||||
decoration: InputDecoration(
|
||||
fillColor: Colors.white,
|
||||
labelText: 'Invoice Date',
|
||||
labelStyle:
|
||||
TextStyle(fontSize: 16,),
|
||||
labelStyle: TextStyle(
|
||||
fontSize: 16,
|
||||
),
|
||||
filled: true,
|
||||
enabledBorder: InputBorder.none,
|
||||
focusedBorder: InputBorder.none,
|
||||
@@ -194,7 +195,8 @@ class _InvoiceEditorState extends State<InvoiceEditor> {
|
||||
fillColor: Colors.white,
|
||||
labelText: 'Invoice Number',
|
||||
labelStyle: TextStyle(
|
||||
fontSize: 16,),
|
||||
fontSize: 16,
|
||||
),
|
||||
filled: true,
|
||||
enabledBorder: InputBorder.none,
|
||||
focusedBorder: InputBorder.none,
|
||||
@@ -213,8 +215,9 @@ class _InvoiceEditorState extends State<InvoiceEditor> {
|
||||
decoration: InputDecoration(
|
||||
fillColor: Colors.white,
|
||||
labelText: 'Customer Name',
|
||||
labelStyle:
|
||||
TextStyle(fontSize: 16,),
|
||||
labelStyle: TextStyle(
|
||||
fontSize: 16,
|
||||
),
|
||||
filled: true,
|
||||
focusedBorder: UnderlineInputBorder(
|
||||
borderSide: BorderSide(
|
||||
@@ -243,7 +246,8 @@ class _InvoiceEditorState extends State<InvoiceEditor> {
|
||||
fillColor: Colors.white,
|
||||
labelText: 'Customer Name',
|
||||
labelStyle: TextStyle(
|
||||
fontSize: 16,),
|
||||
fontSize: 16,
|
||||
),
|
||||
filled: true,
|
||||
enabledBorder: InputBorder.none,
|
||||
focusedBorder: InputBorder.none,
|
||||
@@ -288,7 +292,8 @@ class _InvoiceEditorState extends State<InvoiceEditor> {
|
||||
fillColor: Colors.white,
|
||||
labelText: 'Status',
|
||||
labelStyle: TextStyle(
|
||||
fontSize: 16, ),
|
||||
fontSize: 16,
|
||||
),
|
||||
filled: true,
|
||||
enabledBorder: InputBorder.none,
|
||||
focusedBorder: InputBorder.none,
|
||||
@@ -307,8 +312,9 @@ class _InvoiceEditorState extends State<InvoiceEditor> {
|
||||
decoration: InputDecoration(
|
||||
fillColor: Colors.white,
|
||||
labelText: 'Amount',
|
||||
labelStyle:
|
||||
TextStyle(fontSize: 16,),
|
||||
labelStyle: TextStyle(
|
||||
fontSize: 16,
|
||||
),
|
||||
filled: true,
|
||||
enabledBorder: InputBorder.none,
|
||||
focusedBorder: InputBorder.none,
|
||||
@@ -327,8 +333,9 @@ class _InvoiceEditorState extends State<InvoiceEditor> {
|
||||
decoration: InputDecoration(
|
||||
fillColor: Colors.white,
|
||||
labelText: 'Balance',
|
||||
labelStyle:
|
||||
TextStyle(fontSize: 16, ),
|
||||
labelStyle: TextStyle(
|
||||
fontSize: 16,
|
||||
),
|
||||
filled: true,
|
||||
enabledBorder: InputBorder.none,
|
||||
focusedBorder: InputBorder.none,
|
||||
@@ -347,8 +354,9 @@ class _InvoiceEditorState extends State<InvoiceEditor> {
|
||||
decoration: InputDecoration(
|
||||
fillColor: Colors.white,
|
||||
labelText: 'Handling Fee',
|
||||
labelStyle:
|
||||
TextStyle(fontSize: 16,),
|
||||
labelStyle: TextStyle(
|
||||
fontSize: 16,
|
||||
),
|
||||
filled: true,
|
||||
enabledBorder: InputBorder.none,
|
||||
focusedBorder: InputBorder.none,
|
||||
@@ -367,8 +375,9 @@ class _InvoiceEditorState extends State<InvoiceEditor> {
|
||||
decoration: InputDecoration(
|
||||
fillColor: Colors.white,
|
||||
labelText: 'Customs Fee',
|
||||
labelStyle:
|
||||
TextStyle(fontSize: 16,),
|
||||
labelStyle: TextStyle(
|
||||
fontSize: 16,
|
||||
),
|
||||
filled: true,
|
||||
icon: Icon(
|
||||
FontAwesomeIcons.moneyBill,
|
||||
@@ -388,8 +397,9 @@ class _InvoiceEditorState extends State<InvoiceEditor> {
|
||||
decoration: InputDecoration(
|
||||
fillColor: Colors.white,
|
||||
labelText: 'Customs Fee Description',
|
||||
labelStyle:
|
||||
TextStyle(fontSize: 16,),
|
||||
labelStyle: TextStyle(
|
||||
fontSize: 16,
|
||||
),
|
||||
filled: true,
|
||||
icon: Icon(
|
||||
Icons.comment,
|
||||
|
||||
@@ -3,7 +3,7 @@ import 'dart:io';
|
||||
|
||||
import 'package:fcs/model/main_model.dart';
|
||||
import 'package:fcs/pages/invoice/payment_pdf_screen.dart';
|
||||
import 'package:fcs/theme/theme.dart';
|
||||
import 'package:fcs/fcs/common/theme.dart';
|
||||
import 'package:fcs/vo/invoice.dart';
|
||||
import 'package:fcs/widget/bottom_up_page_route.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
@@ -132,29 +132,30 @@ class _InvoiceListRowState extends State<InvoiceListRow> {
|
||||
// padding: const EdgeInsets.all(0),
|
||||
// child: getStatus(_invoice.status),
|
||||
// ),
|
||||
_invoice.status=="Pending"?
|
||||
Padding(
|
||||
padding: const EdgeInsets.only(left: 10.0),
|
||||
child: InkWell(
|
||||
child: RaisedButton(
|
||||
child: Row(
|
||||
children: <Widget>[
|
||||
Icon(
|
||||
Icons.payment,
|
||||
color: primaryColor,
|
||||
),
|
||||
Padding(
|
||||
padding: const EdgeInsets.only(left:8.0),
|
||||
child: Text("Payment"),
|
||||
)
|
||||
],
|
||||
),
|
||||
onPressed: () {
|
||||
Navigator.of(context)
|
||||
.push(BottomUpPageRoute(PaymentPage(invoice: _invoice)));
|
||||
},
|
||||
)),
|
||||
):Container(),
|
||||
_invoice.status == "Pending"
|
||||
? Padding(
|
||||
padding: const EdgeInsets.only(left: 10.0),
|
||||
child: InkWell(
|
||||
child: RaisedButton(
|
||||
child: Row(
|
||||
children: <Widget>[
|
||||
Icon(
|
||||
Icons.payment,
|
||||
color: primaryColor,
|
||||
),
|
||||
Padding(
|
||||
padding: const EdgeInsets.only(left: 8.0),
|
||||
child: Text("Payment"),
|
||||
)
|
||||
],
|
||||
),
|
||||
onPressed: () {
|
||||
Navigator.of(context).push(
|
||||
BottomUpPageRoute(PaymentPage(invoice: _invoice)));
|
||||
},
|
||||
)),
|
||||
)
|
||||
: Container(),
|
||||
Padding(
|
||||
padding: const EdgeInsets.only(left: 8.0),
|
||||
child: InkWell(
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import 'package:fcs/model_fcs/package_model.dart';
|
||||
import 'package:fcs/theme/theme.dart';
|
||||
import 'package:fcs/fcs/common/theme.dart';
|
||||
import 'package:fcs/vo/package.dart';
|
||||
import 'package:fcs/widget/localization/app_translations.dart';
|
||||
import 'package:fcs/widget/progress.dart';
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import 'package:fcs/model/main_model.dart';
|
||||
import 'package:fcs/model/pickup_model.dart';
|
||||
import 'package:fcs/theme/theme.dart';
|
||||
import 'package:fcs/fcs/common/theme.dart';
|
||||
import 'package:fcs/vo/package.dart';
|
||||
import 'package:fcs/widget/label_widgets.dart';
|
||||
import 'package:fcs/widget/localization/app_translations.dart';
|
||||
@@ -61,7 +61,9 @@ class _PackageInfoState extends State<PackageInfo> {
|
||||
padding: EdgeInsets.only(top: 10),
|
||||
child: Row(
|
||||
children: <Widget>[
|
||||
Icon(Icons.calendar_today,),
|
||||
Icon(
|
||||
Icons.calendar_today,
|
||||
),
|
||||
Padding(
|
||||
padding: const EdgeInsets.only(right: 8.0, left: 15),
|
||||
child: labeledText(
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import 'package:fcs/model/main_model.dart';
|
||||
import 'package:fcs/pages/util.dart';
|
||||
import 'package:fcs/theme/theme.dart';
|
||||
import 'package:fcs/fcs/common/theme.dart';
|
||||
import 'package:fcs/vo/invoice.dart';
|
||||
import 'package:fcs/vo/package.dart';
|
||||
import 'package:fcs/widget/local_text.dart';
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import 'dart:async';
|
||||
|
||||
import 'package:fcs/theme/theme.dart';
|
||||
import 'package:fcs/fcs/common/theme.dart';
|
||||
import 'package:fcs/widget/local_text.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
@@ -30,7 +30,7 @@ class _PaymentPDFScreenState extends State<PaymentPDFScreen>
|
||||
return Scaffold(
|
||||
appBar: AppBar(
|
||||
backgroundColor: primaryColor,
|
||||
title:Text("Invoice File"),
|
||||
title: Text("Invoice File"),
|
||||
actions: <Widget>[
|
||||
IconButton(
|
||||
icon: Icon(Icons.share),
|
||||
|
||||
@@ -6,7 +6,7 @@ import 'package:fcs/widget/local_text.dart';
|
||||
import 'package:fcs/widget/localization/app_translations.dart';
|
||||
import 'package:fcs/widget/progress.dart';
|
||||
|
||||
import '../theme/theme.dart';
|
||||
import '../fcs/common/theme.dart';
|
||||
|
||||
class LogList extends StatefulWidget {
|
||||
@override
|
||||
|
||||
@@ -10,7 +10,7 @@ import 'package:fcs/widget/bubble_indication_painter.dart';
|
||||
import 'package:fcs/widget/localization/app_translations.dart';
|
||||
import 'package:fcs/widget/progress.dart';
|
||||
|
||||
import '../theme/theme.dart' as Theme;
|
||||
import '../fcs/common/theme.dart' as Theme;
|
||||
import 'forget_password.dart';
|
||||
import 'sms_page.dart';
|
||||
import 'util.dart';
|
||||
@@ -82,7 +82,7 @@ class _LoginPageState extends State<LoginPage>
|
||||
: 580.0,
|
||||
child: Column(
|
||||
mainAxisSize: MainAxisSize.max,
|
||||
children: <Widget>[
|
||||
children: <Widget>[
|
||||
Padding(
|
||||
padding: EdgeInsets.only(top: 50.0),
|
||||
child: _buildMenuBar(context),
|
||||
@@ -662,14 +662,13 @@ class _LoginPageState extends State<LoginPage>
|
||||
var phoneNumber = signupPhoneNumberController.text;
|
||||
try {
|
||||
await authModel.signup(name, password, confirmPassword, phoneNumber);
|
||||
Navigator.push(
|
||||
Navigator.push(
|
||||
context,
|
||||
MaterialPageRoute(
|
||||
builder: (context) =>
|
||||
SmsCodePage(id: phoneNumber, password: password),
|
||||
),
|
||||
);
|
||||
|
||||
} catch (e) {
|
||||
showMsgDialog(context, "Error", e.toString());
|
||||
} finally {
|
||||
|
||||
@@ -7,7 +7,7 @@ import 'package:fcs/model/language_model.dart';
|
||||
import 'package:fcs/model/main_model.dart';
|
||||
import 'package:fcs/model/manual_model.dart';
|
||||
import 'package:fcs/pages/manual/moveable_stack_item.dart';
|
||||
import 'package:fcs/theme/theme.dart';
|
||||
import 'package:fcs/fcs/common/theme.dart';
|
||||
import 'package:fcs/vo/manual.dart';
|
||||
import 'package:path/path.dart' as Path;
|
||||
import 'package:fcs/widget/progress.dart';
|
||||
|
||||
@@ -9,7 +9,7 @@ import 'package:fcs/vo/manual.dart';
|
||||
import 'package:fcs/widget/local_text.dart';
|
||||
import 'package:fcs/widget/progress.dart';
|
||||
|
||||
import '../../theme/theme.dart';
|
||||
import '../../fcs/common/theme.dart';
|
||||
import 'slide_page.dart';
|
||||
|
||||
class ManualPage extends StatefulWidget {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import 'package:fcs/model_fcs/message_model.dart';
|
||||
import 'package:fcs/theme/theme.dart';
|
||||
import 'package:fcs/fcs/common/theme.dart';
|
||||
import 'package:fcs/vo/message.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:intl/intl.dart';
|
||||
@@ -82,7 +82,7 @@ class MessageDetail extends StatelessWidget {
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
DateFormat dateFormat=DateFormat("HH:mm");
|
||||
DateFormat dateFormat = DateFormat("HH:mm");
|
||||
MessageModel messageModel = Provider.of<MessageModel>(context);
|
||||
List<Message> messages = messageModel.getMessage(msg.receiverName);
|
||||
List<Bubble> bubbles = messages
|
||||
|
||||
@@ -10,7 +10,7 @@ import 'package:fcs/widget/local_text.dart';
|
||||
import 'package:fcs/widget/my_data_table.dart';
|
||||
import 'package:fcs/widget/progress.dart';
|
||||
|
||||
import '../theme/theme.dart';
|
||||
import '../fcs/common/theme.dart';
|
||||
import '../widget/localization/app_translations.dart';
|
||||
import 'my_registeration_item.dart';
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@ import 'package:fcs/model/reg_model.dart';
|
||||
import 'package:fcs/widget/label_widgets.dart';
|
||||
import 'package:fcs/widget/progress.dart';
|
||||
|
||||
import '../theme/theme.dart';
|
||||
import '../fcs/common/theme.dart';
|
||||
import '../util.dart';
|
||||
import '../widget/localization/app_translations.dart';
|
||||
import 'my_registeration.dart';
|
||||
@@ -50,13 +50,17 @@ class _MyRegisterationInfoState extends State<MyRegisterationInfo> {
|
||||
labeledText(context, regModel.reg.bizType, "buyer.type_biz");
|
||||
final statusBox = labeledText(context, regModel.reg.status, "reg.status");
|
||||
final dailyQuotaBox = labeledText(
|
||||
context, formatNumber(regModel.reg.dailyQuota), "reg.quota",number: true);
|
||||
context, formatNumber(regModel.reg.dailyQuota), "reg.quota",
|
||||
number: true);
|
||||
final dailyQuotaUsedBox = labeledText(
|
||||
context, formatNumber(regModel.reg.dailyQuotaUsed), "reg.quota.used",number: true);
|
||||
context, formatNumber(regModel.reg.dailyQuotaUsed), "reg.quota.used",
|
||||
number: true);
|
||||
final maxQuotaBox = labeledText(
|
||||
context, formatNumber(regModel.reg.maxQuota), "reg.max_quota",number: true);
|
||||
context, formatNumber(regModel.reg.maxQuota), "reg.max_quota",
|
||||
number: true);
|
||||
final maxQuotaUsedBox = labeledText(
|
||||
context, formatNumber(regModel.reg.maxQuotaUsed), "reg.max_quota.used",number: true);
|
||||
context, formatNumber(regModel.reg.maxQuotaUsed), "reg.max_quota.used",
|
||||
number: true);
|
||||
final nricFrontBox =
|
||||
labeledImg(context, regModel.reg.nricFrontUrl, "reg_info.nric_front");
|
||||
final nricBackBox =
|
||||
|
||||
@@ -2,7 +2,7 @@ import 'package:flutter/material.dart';
|
||||
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:fcs/model/product_model.dart';
|
||||
import 'package:fcs/theme/theme.dart';
|
||||
import 'package:fcs/fcs/common/theme.dart';
|
||||
import 'package:fcs/vo/buyer.dart';
|
||||
import 'package:fcs/vo/product.dart';
|
||||
import 'package:fcs/widget/progress.dart';
|
||||
|
||||
@@ -9,7 +9,7 @@ import 'package:fcs/model/notification_model.dart';
|
||||
import 'package:fcs/vo/notification.dart' as Noti;
|
||||
import 'package:fcs/widget/progress.dart';
|
||||
|
||||
import '../theme/theme.dart';
|
||||
import '../fcs/common/theme.dart';
|
||||
import '../widget/local_text.dart';
|
||||
|
||||
class NotificationList extends StatefulWidget {
|
||||
|
||||
@@ -9,7 +9,7 @@ import 'package:provider/provider.dart';
|
||||
import 'package:fcs/widget/localization/app_translations.dart';
|
||||
import 'package:fcs/widget/progress.dart';
|
||||
|
||||
import '../theme/theme.dart';
|
||||
import '../fcs/common/theme.dart';
|
||||
|
||||
class PaymentMethodEditor extends StatefulWidget {
|
||||
final PaymentMethod paymentMethod;
|
||||
|
||||
@@ -6,7 +6,7 @@ import 'package:fcs/model/main_model.dart';
|
||||
import 'package:fcs/widget/localization/app_translations.dart';
|
||||
import 'package:fcs/widget/progress.dart';
|
||||
|
||||
import '../theme/theme.dart';
|
||||
import '../fcs/common/theme.dart';
|
||||
|
||||
class PaymentMethodPage extends StatefulWidget {
|
||||
@override
|
||||
|
||||
@@ -5,7 +5,7 @@ import 'package:fcs/model/language_model.dart';
|
||||
import 'package:fcs/model/log_model.dart';
|
||||
import 'package:fcs/model/main_model.dart';
|
||||
import 'package:fcs/model/pd_model.dart';
|
||||
import 'package:fcs/theme/theme.dart';
|
||||
import 'package:fcs/fcs/common/theme.dart';
|
||||
import 'package:fcs/vo/pd.dart';
|
||||
import 'package:fcs/widget/local_text.dart';
|
||||
import 'package:fcs/widget/localization/app_translations.dart';
|
||||
@@ -142,13 +142,11 @@ class _PDFormState extends State<PDForm> {
|
||||
scrollDirection: Axis.horizontal,
|
||||
child: MyDataTable(
|
||||
columns: [
|
||||
MyDataColumn(
|
||||
label: LocalText(context, "pd.product")),
|
||||
MyDataColumn(label: LocalText(context, "pd.product")),
|
||||
MyDataColumn(
|
||||
label: LocalText(context, "pd.storage"),
|
||||
),
|
||||
MyDataColumn(
|
||||
label: LocalText(context, "pd.quantity")),
|
||||
MyDataColumn(label: LocalText(context, "pd.quantity")),
|
||||
],
|
||||
rows: getProductRow(pd),
|
||||
),
|
||||
|
||||
@@ -4,7 +4,7 @@ import 'package:provider/provider.dart';
|
||||
import 'package:fcs/model/language_model.dart';
|
||||
import 'package:fcs/model/product_model.dart';
|
||||
import 'package:fcs/model/storage_model.dart';
|
||||
import 'package:fcs/theme/theme.dart';
|
||||
import 'package:fcs/fcs/common/theme.dart';
|
||||
import 'package:fcs/vo/pd.dart';
|
||||
import 'package:fcs/vo/product.dart';
|
||||
import 'package:fcs/vo/storage.dart';
|
||||
|
||||
@@ -4,7 +4,7 @@ import 'package:provider/provider.dart';
|
||||
import 'package:fcs/model/language_model.dart';
|
||||
import 'package:fcs/model/pd_model.dart';
|
||||
import 'package:fcs/pages/pd/pd_form.dart';
|
||||
import 'package:fcs/theme/theme.dart';
|
||||
import 'package:fcs/fcs/common/theme.dart';
|
||||
import 'package:fcs/widget/localization/app_translations.dart';
|
||||
import 'package:fcs/widget/progress.dart';
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:fcs/pages/util.dart';
|
||||
import 'package:fcs/theme/theme.dart';
|
||||
import 'package:fcs/fcs/common/theme.dart';
|
||||
import 'package:fcs/widget/local_text.dart';
|
||||
import 'package:fcs/widget/localization/app_translations.dart';
|
||||
|
||||
@@ -16,7 +16,7 @@ class _PhoneEditorState extends State<PhoneEditor> {
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
_phone.text ='09';
|
||||
_phone.text = '09';
|
||||
}
|
||||
|
||||
@override
|
||||
|
||||
@@ -16,7 +16,7 @@ import 'package:fcs/widget/progress.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import '../theme/theme.dart';
|
||||
import '../fcs/common/theme.dart';
|
||||
import 'shipping_address_editor.dart';
|
||||
|
||||
class PickupBoxEditor extends StatefulWidget {
|
||||
|
||||
@@ -23,7 +23,7 @@ import 'package:fcs/widget/localization/app_translations.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:fcs/widget/progress.dart';
|
||||
|
||||
import '../theme/theme.dart';
|
||||
import '../fcs/common/theme.dart';
|
||||
import 'pickup_box_editor.dart';
|
||||
|
||||
class PickUpEditor extends StatefulWidget {
|
||||
|
||||
@@ -8,7 +8,7 @@ import 'package:fcs/widget/localization/app_translations.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:fcs/widget/progress.dart';
|
||||
|
||||
import '../theme/theme.dart';
|
||||
import '../fcs/common/theme.dart';
|
||||
import 'pickup_editor.dart';
|
||||
|
||||
class PickUpList extends StatefulWidget {
|
||||
|
||||
@@ -7,7 +7,7 @@ import 'package:flutter_icons/flutter_icons.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:fcs/model/buyer_model.dart';
|
||||
import 'package:fcs/pages/util.dart';
|
||||
import 'package:fcs/theme/theme.dart';
|
||||
import 'package:fcs/fcs/common/theme.dart';
|
||||
import 'package:fcs/vo/buyer.dart';
|
||||
|
||||
import 'buyer_info.dart';
|
||||
|
||||
@@ -5,7 +5,7 @@ import 'package:flutter_verification_code_input/flutter_verification_code_input.
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:fcs/model/main_model.dart';
|
||||
import 'package:fcs/pages/util.dart';
|
||||
import 'package:fcs/theme/theme.dart';
|
||||
import 'package:fcs/fcs/common/theme.dart';
|
||||
import 'package:quiver/async.dart';
|
||||
|
||||
class PinLoginDialog extends StatefulWidget {
|
||||
|
||||
@@ -3,7 +3,7 @@ import 'package:font_awesome_flutter/font_awesome_flutter.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:fcs/model/language_model.dart';
|
||||
import 'package:fcs/model/product_model.dart';
|
||||
import 'package:fcs/theme/theme.dart';
|
||||
import 'package:fcs/fcs/common/theme.dart';
|
||||
import 'package:fcs/vo/po.dart';
|
||||
import 'package:fcs/vo/product.dart';
|
||||
import 'package:fcs/widget/local_text.dart';
|
||||
@@ -62,7 +62,7 @@ class _POItemState extends State<POItem> {
|
||||
width: 170.0,
|
||||
child: DropdownButton<String>(
|
||||
value: currentProductID,
|
||||
isExpanded: true,
|
||||
isExpanded: true,
|
||||
hint: Text(
|
||||
'Select Product',
|
||||
style: labelStyle,
|
||||
|
||||
@@ -7,7 +7,7 @@ import 'package:fcs/model/main_model.dart';
|
||||
import 'package:fcs/model/po_model.dart';
|
||||
import 'package:fcs/model/product_model.dart';
|
||||
import 'package:fcs/pages/po/po_item.dart';
|
||||
import 'package:fcs/theme/theme.dart';
|
||||
import 'package:fcs/fcs/common/theme.dart';
|
||||
import 'package:fcs/vo/attach.dart';
|
||||
import 'package:fcs/vo/po.dart';
|
||||
import 'package:fcs/widget/img_file.dart';
|
||||
|
||||
@@ -8,7 +8,7 @@ import 'package:fcs/vo/product.dart';
|
||||
import 'package:fcs/widget/localization/app_translations.dart';
|
||||
import 'package:fcs/widget/progress.dart';
|
||||
|
||||
import '../theme/theme.dart';
|
||||
import '../fcs/common/theme.dart';
|
||||
|
||||
class ProductEditItem extends StatefulWidget {
|
||||
final Product product;
|
||||
|
||||
@@ -2,7 +2,7 @@ import 'package:flutter/material.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:fcs/model/language_model.dart';
|
||||
import 'package:fcs/model/main_model.dart';
|
||||
import 'package:fcs/theme/theme.dart';
|
||||
import 'package:fcs/fcs/common/theme.dart';
|
||||
import 'package:fcs/widget/localization/app_translations.dart';
|
||||
import 'package:fcs/widget/products.dart';
|
||||
import 'package:fcs/widget/progress.dart';
|
||||
|
||||
@@ -8,7 +8,7 @@ import 'package:fcs/vo/product.dart';
|
||||
import 'package:fcs/widget/localization/app_translations.dart';
|
||||
import 'package:fcs/widget/progress.dart';
|
||||
|
||||
import '../theme/theme.dart';
|
||||
import '../fcs/common/theme.dart';
|
||||
import 'product_edit_item.dart';
|
||||
|
||||
class ProductsListEdit extends StatefulWidget {
|
||||
|
||||
@@ -6,7 +6,7 @@ import 'package:fcs/pages/util.dart';
|
||||
import 'package:fcs/widget/localization/app_translations.dart';
|
||||
import 'package:fcs/widget/progress.dart';
|
||||
|
||||
import '../theme/theme.dart';
|
||||
import '../fcs/common/theme.dart';
|
||||
|
||||
typedef void ProfileCallback();
|
||||
|
||||
|
||||
@@ -1,434 +0,0 @@
|
||||
import 'package:fcs/model/shipment_model.dart';
|
||||
import 'package:fcs/pages_fcs/shipping_address_row.dart';
|
||||
import 'package:fcs/vo/shipping_address.dart';
|
||||
import 'package:fcs/widget/bottom_up_page_route.dart';
|
||||
import 'package:fcs/widget/local_text.dart';
|
||||
import 'package:fcs/widget/my_data_table.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_icons/flutter_icons.dart';
|
||||
import 'package:package_info/package_info.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:fcs/model/language_model.dart';
|
||||
import 'package:fcs/model/main_model.dart';
|
||||
import 'package:fcs/model/user_model.dart';
|
||||
import 'package:fcs/pages/profile_edit.dart';
|
||||
import 'package:fcs/pages/util.dart';
|
||||
import 'package:fcs/vo/role.dart';
|
||||
import 'package:fcs/widget/localization/app_translations.dart';
|
||||
import 'package:fcs/widget/localization/transalation.dart';
|
||||
import 'package:fcs/widget/progress.dart';
|
||||
|
||||
import '../theme/theme.dart';
|
||||
import 'profile_setting.dart';
|
||||
import 'shipping_address_editor.dart';
|
||||
|
||||
typedef void ProfileCallback();
|
||||
|
||||
class Profile extends StatefulWidget {
|
||||
@override
|
||||
_ProfileState createState() => _ProfileState();
|
||||
}
|
||||
|
||||
class _ProfileState extends State<Profile> {
|
||||
bool _isLoading = false;
|
||||
String selectedLanguage;
|
||||
TextEditingController bizNameController = new TextEditingController();
|
||||
|
||||
static final List<String> languagesList = Translation().supportedLanguages;
|
||||
static final List<String> languageCodesList =
|
||||
Translation().supportedLanguagesCodes;
|
||||
|
||||
final Map<dynamic, dynamic> languagesMap = {
|
||||
languagesList[0]: languageCodesList[0],
|
||||
languagesList[1]: languageCodesList[1],
|
||||
};
|
||||
|
||||
buildLanguage(LanguageModel languageModel) async {
|
||||
var lan = await languageModel.load();
|
||||
if (this.selectedLanguage != lan) {
|
||||
setState(() {
|
||||
this.selectedLanguage = lan;
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
var languageModel = Provider.of<LanguageModel>(context);
|
||||
MainModel mainModel = Provider.of<MainModel>(context);
|
||||
|
||||
// buildLanguage(languageModel);
|
||||
_selectedDropdown(String selected) {
|
||||
setState(() {
|
||||
selectedLanguage = selected;
|
||||
languageModel.saveLanguage(selectedLanguage);
|
||||
});
|
||||
}
|
||||
|
||||
final namebox = Container(
|
||||
// padding: EdgeInsets.only(left: 25.0, right: 25.0),
|
||||
padding: EdgeInsets.only(top: 10, left: 25.0, right: 25.0),
|
||||
child: Container(
|
||||
height: 45.0,
|
||||
child: Row(
|
||||
children: <Widget>[
|
||||
Padding(
|
||||
padding: EdgeInsets.only(left: 0.0),
|
||||
child: Text(
|
||||
AppTranslations.of(context).text("profile.name"),
|
||||
style: languageModel.isEng
|
||||
? TextStyle(
|
||||
fontSize: 16.0,
|
||||
fontWeight: FontWeight.bold,
|
||||
fontStyle: FontStyle.normal)
|
||||
: TextStyle(
|
||||
fontSize: 15.0,
|
||||
fontWeight: FontWeight.bold,
|
||||
fontStyle: FontStyle.normal,
|
||||
fontFamily: "MyanmarUnicode"),
|
||||
),
|
||||
),
|
||||
SizedBox(
|
||||
width: 30,
|
||||
),
|
||||
Container(
|
||||
child: Center(
|
||||
child: Text(
|
||||
mainModel.user == null ? "" : mainModel.user.name,
|
||||
style:
|
||||
TextStyle(fontSize: 16.0, fontStyle: FontStyle.normal),
|
||||
),
|
||||
),
|
||||
)
|
||||
],
|
||||
),
|
||||
));
|
||||
|
||||
final phonenumberbox = Container(
|
||||
padding: EdgeInsets.only(left: 25.0, right: 25.0),
|
||||
height: 45.0,
|
||||
child: Row(
|
||||
children: <Widget>[
|
||||
Padding(
|
||||
padding: EdgeInsets.only(left: 0.0),
|
||||
child: Text(
|
||||
AppTranslations.of(context).text("profile.phone"),
|
||||
style: languageModel.isEng
|
||||
? TextStyle(
|
||||
fontSize: 16.0,
|
||||
fontWeight: FontWeight.bold,
|
||||
fontStyle: FontStyle.normal)
|
||||
: TextStyle(
|
||||
fontSize: 15.0,
|
||||
fontWeight: FontWeight.bold,
|
||||
fontStyle: FontStyle.normal,
|
||||
fontFamily: "MyanmarUnicode"),
|
||||
),
|
||||
),
|
||||
SizedBox(
|
||||
width: 27,
|
||||
),
|
||||
Container(
|
||||
child: Center(
|
||||
child: Text(
|
||||
mainModel.user == null
|
||||
? ""
|
||||
: mainModel.user.phone == null ? '' : mainModel.user.phone,
|
||||
style: TextStyle(fontSize: 16.0, fontStyle: FontStyle.normal),
|
||||
),
|
||||
),
|
||||
)
|
||||
],
|
||||
),
|
||||
);
|
||||
final emailBox = Container(
|
||||
padding: EdgeInsets.only(top: 10, left: 25.0, right: 25.0),
|
||||
child: Row(
|
||||
children: <Widget>[
|
||||
Text(
|
||||
AppTranslations.of(context).text("profile.email"),
|
||||
style: languageModel.isEng
|
||||
? TextStyle(
|
||||
fontSize: 16.0,
|
||||
fontWeight: FontWeight.bold,
|
||||
fontStyle: FontStyle.normal)
|
||||
: TextStyle(
|
||||
fontSize: 15.0,
|
||||
fontWeight: FontWeight.bold,
|
||||
fontStyle: FontStyle.normal,
|
||||
fontFamily: "MyanmarUnicode"),
|
||||
),
|
||||
SizedBox(
|
||||
width: 35,
|
||||
),
|
||||
Text(
|
||||
mainModel.user == null
|
||||
? ""
|
||||
: mainModel.user.email == null || mainModel.user.email == ''
|
||||
? ''
|
||||
: mainModel.user.email,
|
||||
style: TextStyle(fontSize: 16.0, fontStyle: FontStyle.normal),
|
||||
),
|
||||
],
|
||||
),
|
||||
);
|
||||
final languageBox = Container(
|
||||
padding: EdgeInsets.only(bottom: 0, top: 7, left: 25.0, right: 25.0),
|
||||
child: Container(
|
||||
height: 45.0,
|
||||
child: Row(
|
||||
children: <Widget>[
|
||||
Text(
|
||||
AppTranslations.of(context).text("profile.language"),
|
||||
style: languageModel.isEng
|
||||
? TextStyle(
|
||||
fontSize: 16.0,
|
||||
fontWeight: FontWeight.bold,
|
||||
fontStyle: FontStyle.normal)
|
||||
: TextStyle(
|
||||
fontSize: 16.0,
|
||||
fontWeight: FontWeight.bold,
|
||||
fontStyle: FontStyle.normal,
|
||||
fontFamily: "MyanmarUnicode"),
|
||||
),
|
||||
Container(
|
||||
width: 140,
|
||||
padding: EdgeInsets.only(left: 30),
|
||||
child: Theme(
|
||||
data: new ThemeData(
|
||||
canvasColor: Colors.white,
|
||||
),
|
||||
child: DropdownButton(
|
||||
hint: Text("English"),
|
||||
value: selectedLanguage,
|
||||
isExpanded: true,
|
||||
iconSize: 40,
|
||||
items: languagesList
|
||||
.map<DropdownMenuItem<String>>((String value) {
|
||||
return DropdownMenuItem<String>(
|
||||
value: value,
|
||||
child: Text(value),
|
||||
);
|
||||
}).toList(),
|
||||
onChanged: _selectedDropdown),
|
||||
)),
|
||||
],
|
||||
),
|
||||
));
|
||||
|
||||
final logoutbutton = Container(
|
||||
padding: EdgeInsets.only(left: 20.0, right: 24.0),
|
||||
child: Padding(
|
||||
padding: EdgeInsets.symmetric(vertical: 10.0),
|
||||
child: Card(
|
||||
elevation: 23,
|
||||
child: Container(
|
||||
height: 45.0,
|
||||
child: ButtonTheme(
|
||||
minWidth: 900.0,
|
||||
height: 100.0,
|
||||
child: FlatButton.icon(
|
||||
onPressed: () {
|
||||
showConfirmDialog(context, "profile.logout.confirm",
|
||||
() async {
|
||||
setState(() {
|
||||
_isLoading = true;
|
||||
});
|
||||
await mainModel.logout();
|
||||
Navigator.of(context).pushNamedAndRemoveUntil(
|
||||
"/home", ModalRoute.withName('/home'));
|
||||
Future.delayed(Duration(seconds: 1), () {
|
||||
if (mounted) {
|
||||
setState(() {
|
||||
_isLoading = false;
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
},
|
||||
label: Text(
|
||||
AppTranslations.of(context).text("profile.logout"),
|
||||
style: languageModel.isEng
|
||||
? TextStyle(
|
||||
fontSize: 16.0,
|
||||
fontWeight: FontWeight.bold,
|
||||
fontStyle: FontStyle.normal)
|
||||
: TextStyle(
|
||||
fontSize: 16.0,
|
||||
fontWeight: FontWeight.bold,
|
||||
fontStyle: FontStyle.normal,
|
||||
fontFamily: "MyanmarUnicode")),
|
||||
icon: Icon(
|
||||
Icons.exit_to_app,
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
)));
|
||||
return LocalProgress(
|
||||
inAsyncCall: _isLoading,
|
||||
child: Scaffold(
|
||||
appBar: AppBar(
|
||||
title: Text(
|
||||
AppTranslations.of(context).text("profile.title"),
|
||||
),
|
||||
backgroundColor: primaryColor,
|
||||
actions: <Widget>[],
|
||||
),
|
||||
body: Column(
|
||||
children: <Widget>[
|
||||
Expanded(
|
||||
child: ListView(
|
||||
// padding: EdgeInsets.only(left: 25.0, right: 25.0),
|
||||
shrinkWrap: true,
|
||||
children: <Widget>[
|
||||
Row(
|
||||
children: <Widget>[
|
||||
namebox,
|
||||
Padding(
|
||||
padding: const EdgeInsets.only(left: 18.0),
|
||||
child: Icon(Icons.edit),
|
||||
)
|
||||
],
|
||||
),
|
||||
mainModel.isBuyer() ? Container() : getPrivilegeBox(context),
|
||||
phonenumberbox,
|
||||
mainModel.user == null
|
||||
? Container()
|
||||
: mainModel.user.email == null ||
|
||||
mainModel.user.email == ''
|
||||
? Container()
|
||||
: emailBox,
|
||||
languageBox,
|
||||
getShippingAddressList(context),
|
||||
],
|
||||
),
|
||||
),
|
||||
logoutbutton,
|
||||
SizedBox(height: 25)
|
||||
],
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
Widget getShippingAddressList(BuildContext context) {
|
||||
var shipmentModel = Provider.of<ShipmentModel>(context);
|
||||
return Container(
|
||||
padding: EdgeInsets.only(top: 5, left: 10),
|
||||
child: ExpansionTile(
|
||||
title: Text(
|
||||
"My Addresses",
|
||||
style: TextStyle(
|
||||
fontWeight: FontWeight.bold, fontStyle: FontStyle.normal),
|
||||
),
|
||||
children: <Widget>[
|
||||
Column(
|
||||
children: getAddressList(context, shipmentModel.shippingAddresses),
|
||||
),
|
||||
Container(
|
||||
padding: EdgeInsets.only(top: 20, bottom: 15, right: 15),
|
||||
child: Align(
|
||||
alignment: Alignment.bottomRight,
|
||||
child: Container(
|
||||
width: 130,
|
||||
height: 40,
|
||||
child: FloatingActionButton.extended(
|
||||
materialTapTargetSize: MaterialTapTargetSize.shrinkWrap,
|
||||
onPressed: () {
|
||||
Navigator.push(
|
||||
context,
|
||||
BottomUpPageRoute(ShippingAddressEditor()),
|
||||
);
|
||||
},
|
||||
icon: Icon(Icons.add),
|
||||
label: Text(
|
||||
'Add New\nAddress',
|
||||
style: TextStyle(fontSize: 12),
|
||||
),
|
||||
backgroundColor: primaryColor,
|
||||
),
|
||||
),
|
||||
),
|
||||
)
|
||||
],
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
List<Widget> getAddressList(
|
||||
BuildContext context, List<ShippingAddress> addresses) {
|
||||
return addresses.asMap().entries.map((s) {
|
||||
return InkWell(
|
||||
onTap: () {
|
||||
Navigator.push(
|
||||
context,
|
||||
BottomUpPageRoute(ShippingAddressEditor(shippingAddress: s.value)),
|
||||
);
|
||||
},
|
||||
child: ShippingAddressRow(shippingAddress: s.value, index: s.key),
|
||||
);
|
||||
}).toList();
|
||||
}
|
||||
|
||||
Widget getPrivilegeBox(BuildContext context) {
|
||||
var languageModel = Provider.of<LanguageModel>(context);
|
||||
var userModel = Provider.of<UserModel>(context);
|
||||
|
||||
return ListTileTheme(
|
||||
contentPadding: EdgeInsets.all(0),
|
||||
child: ExpansionTile(
|
||||
title: Text(
|
||||
AppTranslations.of(context).text("profile.privilege"),
|
||||
style: languageModel.isEng
|
||||
? TextStyle(
|
||||
fontSize: 16.0,
|
||||
fontWeight: FontWeight.bold,
|
||||
fontStyle: FontStyle.normal,
|
||||
)
|
||||
: TextStyle(
|
||||
fontSize: 15.0,
|
||||
fontWeight: FontWeight.bold,
|
||||
fontStyle: FontStyle.normal,
|
||||
fontFamily: "MyanmarUnicode"),
|
||||
),
|
||||
children: <Widget>[
|
||||
Align(
|
||||
alignment: Alignment.topLeft,
|
||||
child: SingleChildScrollView(
|
||||
scrollDirection: Axis.horizontal,
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children:
|
||||
getRowPrivilegeWidget(userModel.getUserPrivileges())),
|
||||
),
|
||||
)
|
||||
],
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
List<Widget> getRowPrivilegeWidget(List<Privilege> privileges) {
|
||||
return privileges.map((p) {
|
||||
return Container(
|
||||
padding: EdgeInsets.all(8.0),
|
||||
child: Row(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: <Widget>[
|
||||
Text(p.name,
|
||||
style: TextStyle(fontSize: 16.0, fontStyle: FontStyle.normal)),
|
||||
SizedBox(
|
||||
width: 30,
|
||||
),
|
||||
Container(
|
||||
child: Text(
|
||||
"- ${p.desc}",
|
||||
style: TextStyle(fontSize: 16.0, fontStyle: FontStyle.normal),
|
||||
),
|
||||
)
|
||||
],
|
||||
),
|
||||
);
|
||||
}).toList();
|
||||
}
|
||||
}
|
||||
@@ -4,7 +4,7 @@ import 'package:fcs/model/main_model.dart';
|
||||
import 'package:fcs/widget/local_text.dart';
|
||||
import 'package:fcs/widget/progress.dart';
|
||||
|
||||
import '../theme/theme.dart';
|
||||
import '../fcs/common/theme.dart';
|
||||
import 'add_pin_editor.dart';
|
||||
import 'block_list.dart';
|
||||
import 'chage_phone_number.dart';
|
||||
|
||||
@@ -2,7 +2,7 @@ import 'package:flutter/material.dart';
|
||||
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:fcs/model/language_model.dart';
|
||||
import 'package:fcs/theme/theme.dart';
|
||||
import 'package:fcs/fcs/common/theme.dart';
|
||||
import 'package:fcs/vo/buyer.dart';
|
||||
import 'package:fcs/widget/local_text.dart';
|
||||
import 'package:fcs/widget/localization/app_translations.dart';
|
||||
|
||||
@@ -8,7 +8,7 @@ import 'package:fcs/vo/buyer.dart';
|
||||
import 'package:fcs/widget/localization/app_translations.dart';
|
||||
import 'package:fcs/widget/progress.dart';
|
||||
|
||||
import '../theme/theme.dart';
|
||||
import '../fcs/common/theme.dart';
|
||||
|
||||
class QuotaPage extends StatefulWidget {
|
||||
final Buyer buyer;
|
||||
|
||||
@@ -2,7 +2,7 @@ import 'package:flutter/material.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:fcs/model/language_model.dart';
|
||||
import 'package:fcs/model/report_user_model.dart';
|
||||
import 'package:fcs/theme/theme.dart';
|
||||
import 'package:fcs/fcs/common/theme.dart';
|
||||
import 'package:fcs/vo/report.dart';
|
||||
import 'package:fcs/vo/report_user.dart';
|
||||
import 'package:fcs/vo/user.dart';
|
||||
|
||||
@@ -7,7 +7,7 @@ import 'package:fcs/widget/local_text.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:fcs/widget/progress.dart';
|
||||
|
||||
import '../theme/theme.dart';
|
||||
import '../fcs/common/theme.dart';
|
||||
import 'report_user_editor.dart';
|
||||
import 'util.dart';
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ import 'package:fcs/widget/local_text.dart';
|
||||
import 'package:fcs/widget/localization/app_translations.dart';
|
||||
import 'package:fcs/widget/progress.dart';
|
||||
|
||||
import '../theme/theme.dart' as Theme;
|
||||
import '../fcs/common/theme.dart' as Theme;
|
||||
import 'util.dart';
|
||||
|
||||
class ResetPasswordPage extends StatefulWidget {
|
||||
@@ -319,7 +319,7 @@ class _ResetPasswordPageState extends State<ResetPasswordPage>
|
||||
UserModel userModel = Provider.of<UserModel>(context);
|
||||
try {
|
||||
await userModel.resetPassword(widget.phoneNumber, password, smsCode);
|
||||
Navigator.pushNamedAndRemoveUntil(context, "/login", (r) => false);
|
||||
Navigator.pushNamedAndRemoveUntil(context, "/login", (r) => false);
|
||||
} catch (e) {
|
||||
showMsgDialog(context, "Error", e.toString());
|
||||
} finally {
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:fcs/model/buyer_model.dart';
|
||||
import 'package:fcs/theme/theme.dart';
|
||||
import 'package:fcs/fcs/common/theme.dart';
|
||||
import 'package:fcs/vo/buyer.dart';
|
||||
|
||||
import 'buyer_list_row.dart';
|
||||
|
||||
@@ -4,7 +4,7 @@ import 'package:provider/provider.dart';
|
||||
import 'package:fcs/model/language_model.dart';
|
||||
import 'package:fcs/model/main_model.dart';
|
||||
import 'package:fcs/pages/util.dart';
|
||||
import 'package:fcs/theme/theme.dart';
|
||||
import 'package:fcs/fcs/common/theme.dart';
|
||||
import 'package:fcs/vo/setting.dart';
|
||||
import 'package:fcs/widget/local_text.dart';
|
||||
import 'package:fcs/widget/progress.dart';
|
||||
@@ -21,7 +21,7 @@ class _SettingEidtorState extends State<SettingEidtor> {
|
||||
TextEditingController _poExpire = new TextEditingController();
|
||||
TextEditingController _poOpend = new TextEditingController();
|
||||
TextEditingController _poClosed = new TextEditingController();
|
||||
TextEditingController _latestDeliveryDay = new TextEditingController();
|
||||
TextEditingController _latestDeliveryDay = new TextEditingController();
|
||||
TextEditingController _firstStorageDay = new TextEditingController();
|
||||
TextEditingController _firstStorageCharge = new TextEditingController();
|
||||
TextEditingController _secondStorageDay = new TextEditingController();
|
||||
@@ -40,7 +40,7 @@ class _SettingEidtorState extends State<SettingEidtor> {
|
||||
_poExpire.text = widget.setting.poExpireInHours.toString();
|
||||
_poOpend.text = widget.setting.poOpenAt.toString();
|
||||
_poClosed.text = widget.setting.poCloseAt.toString();
|
||||
_latestDeliveryDay.text =widget.setting.latestDeliveryDay.toString();
|
||||
_latestDeliveryDay.text = widget.setting.latestDeliveryDay.toString();
|
||||
_firstStorageDay.text = widget.setting.firstStorageChargeIn.toString();
|
||||
_firstStorageCharge.text = widget.setting.firstStorageCharge.toString();
|
||||
_secondStorageDay.text = widget.setting.secondStorageChargeIn.toString();
|
||||
@@ -395,7 +395,7 @@ class _SettingEidtorState extends State<SettingEidtor> {
|
||||
widget.setting.poExpireInHours = int.parse(_poExpire.text);
|
||||
widget.setting.poOpenAt = int.parse(_poOpend.text);
|
||||
widget.setting.poCloseAt = int.parse(_poClosed.text);
|
||||
widget.setting.latestDeliveryDay=int.parse(_latestDeliveryDay.text);
|
||||
widget.setting.latestDeliveryDay = int.parse(_latestDeliveryDay.text);
|
||||
widget.setting.firstStorageChargeIn = int.parse(_firstStorageDay.text);
|
||||
widget.setting.firstStorageCharge = int.parse(_firstStorageCharge.text);
|
||||
widget.setting.secondStorageChargeIn = int.parse(_secondStorageDay.text);
|
||||
|
||||
@@ -2,7 +2,7 @@ import 'package:flutter/material.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:fcs/model/main_model.dart';
|
||||
import 'package:fcs/pages/util.dart';
|
||||
import 'package:fcs/theme/theme.dart';
|
||||
import 'package:fcs/fcs/common/theme.dart';
|
||||
import 'package:fcs/vo/setting.dart';
|
||||
import 'package:fcs/widget/local_text.dart';
|
||||
import 'package:fcs/widget/progress.dart';
|
||||
|
||||
@@ -13,7 +13,7 @@ import 'package:fcs/widget/localization/app_translations.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:fcs/widget/progress.dart';
|
||||
|
||||
import '../theme/theme.dart';
|
||||
import '../fcs/common/theme.dart';
|
||||
|
||||
class ShipmentEditor extends StatefulWidget {
|
||||
final Shipment shipment;
|
||||
|
||||
@@ -9,7 +9,7 @@ import 'package:fcs/widget/localization/app_translations.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:fcs/widget/progress.dart';
|
||||
|
||||
import '../theme/theme.dart';
|
||||
import '../fcs/common/theme.dart';
|
||||
import 'shipment_editor.dart';
|
||||
import 'shipment_list_row.dart';
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import 'package:fcs/theme/theme.dart';
|
||||
import 'package:fcs/fcs/common/theme.dart';
|
||||
import 'package:fcs/vo/shipment.dart';
|
||||
import 'package:fcs/widget/bottom_up_page_route.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
@@ -12,7 +12,7 @@ import 'package:fcs/widget/localization/app_translations.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:fcs/widget/progress.dart';
|
||||
|
||||
import '../theme/theme.dart';
|
||||
import '../fcs/common/theme.dart';
|
||||
import 'util.dart';
|
||||
|
||||
class ShipmentRates extends StatefulWidget {
|
||||
|
||||
@@ -6,7 +6,7 @@ import 'package:fcs/widget/localization/app_translations.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:fcs/widget/progress.dart';
|
||||
|
||||
import '../theme/theme.dart';
|
||||
import '../fcs/common/theme.dart';
|
||||
|
||||
class ShipmentRatesCal extends StatefulWidget {
|
||||
final PickUp pickUp;
|
||||
|
||||
@@ -13,7 +13,7 @@ import 'package:fcs/widget/localization/app_translations.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:fcs/widget/progress.dart';
|
||||
|
||||
import '../theme/theme.dart';
|
||||
import '../fcs/common/theme.dart';
|
||||
import 'custom_editor.dart';
|
||||
import 'discount_by_weight_editor.dart';
|
||||
import 'util.dart';
|
||||
|
||||
@@ -5,7 +5,7 @@ import 'package:flutter_icons/flutter_icons.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:fcs/widget/progress.dart';
|
||||
|
||||
import '../theme/theme.dart';
|
||||
import '../fcs/common/theme.dart';
|
||||
|
||||
class ShippingAddressEditor extends StatefulWidget {
|
||||
final ShippingAddress shippingAddress;
|
||||
@@ -85,7 +85,7 @@ class _ShippingAddressEditorState extends State<ShippingAddressEditor> {
|
||||
children: <Widget>[
|
||||
Expanded(
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.only(left: 10.0,right: 10),
|
||||
padding: const EdgeInsets.only(left: 10.0, right: 10),
|
||||
child: ListView(children: <Widget>[
|
||||
usaAddress,
|
||||
SizedBox(height: 10),
|
||||
|
||||
@@ -3,7 +3,7 @@ import 'package:progress/progress.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
import '../model/main_model.dart';
|
||||
import '../theme/theme.dart';
|
||||
import '../fcs/common/theme.dart';
|
||||
import '../widget/localization/app_translations.dart';
|
||||
import '../widget/progress.dart';
|
||||
import 'util.dart';
|
||||
|
||||
@@ -1,149 +0,0 @@
|
||||
import 'dart:async';
|
||||
|
||||
import 'package:fcs/model/main_model.dart';
|
||||
import 'package:fcs/theme/theme.dart';
|
||||
import 'package:fcs/widget/local_text.dart';
|
||||
import 'package:fcs/widget/localization/app_translations.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:logging/logging.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
class SplashScreen extends StatefulWidget {
|
||||
@override
|
||||
_SplashScreenState createState() => new _SplashScreenState();
|
||||
}
|
||||
|
||||
class _SplashScreenState extends State<SplashScreen> {
|
||||
final log = Logger('_SplashScreenState');
|
||||
|
||||
bool _loaded = false;
|
||||
bool _isSupport = false;
|
||||
bool _isGoogleService = true;
|
||||
bool _isLogin = false;
|
||||
bool _isAgree = false;
|
||||
bool _hasEmail = false;
|
||||
bool _isOnline = true;
|
||||
Timer timer;
|
||||
|
||||
startTime() async {
|
||||
var _duration = new Duration(milliseconds: 1000);
|
||||
this.timer = new Timer.periodic(_duration, navigationPage);
|
||||
}
|
||||
|
||||
void navigationPage(Timer timer) async {
|
||||
if (!_isOnline) {
|
||||
return;
|
||||
}
|
||||
|
||||
// GooglePlayServicesAvailability availability = await GoogleApiAvailability
|
||||
// .instance
|
||||
// .checkGooglePlayServicesAvailability(true);
|
||||
// log.info("GooglePlaysServcie Result1:$availability");
|
||||
// if (availability != GooglePlayServicesAvailability.success &&
|
||||
// Platform.isAndroid) {
|
||||
// timer.cancel();
|
||||
// setState(() {
|
||||
// _isGoogleService = false;
|
||||
// });
|
||||
// return;
|
||||
// }
|
||||
|
||||
if (_loaded) {
|
||||
timer.cancel();
|
||||
if (this._isLogin) {
|
||||
Navigator.of(context).pushReplacementNamed('/homeLogin');
|
||||
} else {
|
||||
Navigator.of(context).pushReplacementNamed('/home');
|
||||
}
|
||||
|
||||
// if (_isSupport) {
|
||||
// if (_isLogin) {
|
||||
// if (!_isAgree) {
|
||||
// await Navigator.of(context).pushNamed('/term');
|
||||
// startTime();
|
||||
// } else {
|
||||
// bool skipped = await SharedPref.getSkippedRecoverEmail();
|
||||
// skipped = skipped ?? false;
|
||||
// if (!this._hasEmail && !skipped) {
|
||||
// Navigator.of(context).pushReplacementNamed('/email');
|
||||
// } else {
|
||||
// }
|
||||
// }
|
||||
// } else {
|
||||
// Navigator.of(context).pushReplacementNamed('/welcome');
|
||||
// }
|
||||
// }
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
startTime();
|
||||
}
|
||||
|
||||
void dispose() {
|
||||
super.dispose();
|
||||
if (timer.isActive) timer.cancel();
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
MainModel mainModel = Provider.of<MainModel>(context);
|
||||
|
||||
this._loaded = mainModel.isLoaded;
|
||||
this._isSupport = true;
|
||||
this._isLogin = mainModel.isLogin();
|
||||
// this._isAgree = mainModel.agreedTerm();
|
||||
this._hasEmail = mainModel.hasEmail();
|
||||
this._isOnline = mainModel.isOnline;
|
||||
|
||||
return new Scaffold(
|
||||
backgroundColor: Colors.white,
|
||||
body: new Center(
|
||||
child: Column(
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: <Widget>[
|
||||
new Image.asset(
|
||||
"assets/logo.jpg",
|
||||
width: 180,
|
||||
),
|
||||
SizedBox(height: 50),
|
||||
Column(
|
||||
children: <Widget>[
|
||||
Text(
|
||||
"Cargo Services",
|
||||
style: welcomeLabelStyle,
|
||||
),
|
||||
Text(
|
||||
"by FCS Trading",
|
||||
style: welcomeSubLabelStyle,
|
||||
),
|
||||
],
|
||||
),
|
||||
// CircularProgressIndicator(
|
||||
// valueColor: new AlwaysStoppedAnimation<Color>(primaryColor),
|
||||
// ),
|
||||
SizedBox(height: 30),
|
||||
_isOnline
|
||||
? Container()
|
||||
: Column(
|
||||
children: <Widget>[
|
||||
LocalText(context, "offline.status"),
|
||||
],
|
||||
),
|
||||
Text(_isGoogleService ? "" : "Google Play service not found."),
|
||||
Text(
|
||||
_loaded
|
||||
? (!_isSupport
|
||||
? "Version outdated, please update your app!"
|
||||
: "")
|
||||
: AppTranslations.of(context).text("load"),
|
||||
style: TextStyle(
|
||||
color: primaryColor, fontWeight: FontWeight.bold)),
|
||||
],
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -4,7 +4,7 @@ import 'package:fcs/model/employee_model.dart';
|
||||
import 'package:fcs/model/language_model.dart';
|
||||
import 'package:fcs/model/main_model.dart';
|
||||
import 'package:fcs/model/user_model.dart';
|
||||
import 'package:fcs/theme/theme.dart';
|
||||
import 'package:fcs/fcs/common/theme.dart';
|
||||
import 'package:fcs/vo/role.dart';
|
||||
import 'package:fcs/vo/user.dart';
|
||||
import 'package:fcs/widget/local_text.dart';
|
||||
|
||||
@@ -6,10 +6,10 @@ import 'package:intl/intl.dart';
|
||||
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:fcs/model/employee_model.dart';
|
||||
import 'package:fcs/theme/theme.dart';
|
||||
import 'package:fcs/fcs/common/theme.dart';
|
||||
import 'package:fcs/widget/progress.dart';
|
||||
|
||||
import '../theme/theme.dart';
|
||||
import '../fcs/common/theme.dart';
|
||||
import '../vo/user.dart';
|
||||
import '../widget/local_text.dart';
|
||||
import 'staff_editor.dart';
|
||||
|
||||
@@ -5,7 +5,7 @@ import 'package:provider/provider.dart';
|
||||
import 'package:fcs/model/language_model.dart';
|
||||
import 'package:fcs/model/product_model.dart';
|
||||
import 'package:fcs/model/storage_model.dart';
|
||||
import 'package:fcs/theme/theme.dart';
|
||||
import 'package:fcs/fcs/common/theme.dart';
|
||||
import 'package:fcs/vo/inventory_line.dart';
|
||||
import 'package:fcs/vo/product.dart';
|
||||
import 'package:fcs/vo/storage.dart';
|
||||
|
||||
@@ -3,7 +3,7 @@ import 'package:provider/provider.dart';
|
||||
import 'package:fcs/model/storage_model.dart';
|
||||
import 'package:fcs/pages/storage/inventory_item.dart';
|
||||
import 'package:fcs/pages/util.dart';
|
||||
import 'package:fcs/theme/theme.dart';
|
||||
import 'package:fcs/fcs/common/theme.dart';
|
||||
import 'package:fcs/vo/inventory_line.dart';
|
||||
import 'package:fcs/vo/inventory_taking.dart';
|
||||
import 'package:fcs/widget/local_text.dart';
|
||||
@@ -78,10 +78,8 @@ class _TakeInventoryState extends State<TakeInventory> {
|
||||
scrollDirection: Axis.horizontal,
|
||||
child: MyDataTable(
|
||||
columns: [
|
||||
MyDataColumn(
|
||||
label: LocalText(context, "inventory.product")),
|
||||
MyDataColumn(
|
||||
label: LocalText(context, "inventory.storage")),
|
||||
MyDataColumn(label: LocalText(context, "inventory.product")),
|
||||
MyDataColumn(label: LocalText(context, "inventory.storage")),
|
||||
MyDataColumn(
|
||||
label: LocalText(context, "inventory.old.qty"),
|
||||
),
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user