merge material 3
This commit is contained in:
@@ -2,6 +2,7 @@ import 'package:fcs/helpers/theme.dart';
|
||||
import 'package:fcs/pages/main/model/main_model.dart';
|
||||
import 'package:fcs/pages/widgets/display_text.dart';
|
||||
import 'package:fcs/pages/widgets/fcs_id_icon.dart';
|
||||
import 'package:fcs/pages/widgets/local_app_bar.dart';
|
||||
import 'package:fcs/pages/widgets/local_text.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
@@ -63,24 +64,11 @@ class _BuyingOnlinePagetate extends State<BuyingOnlinePage>
|
||||
);
|
||||
|
||||
return Scaffold(
|
||||
appBar: AppBar(
|
||||
centerTitle: true,
|
||||
leading: new IconButton(
|
||||
icon: new Icon(
|
||||
CupertinoIcons.back,
|
||||
color: primaryColor,
|
||||
),
|
||||
onPressed: () => Navigator.of(context).pop(),
|
||||
),
|
||||
title: LocalText(
|
||||
context,
|
||||
"buy_online.title",
|
||||
fontSize: 20,
|
||||
color: primaryColor,
|
||||
),
|
||||
backgroundColor: Colors.white,
|
||||
shadowColor: Colors.transparent,
|
||||
),
|
||||
appBar: LocalAppBar(
|
||||
labelKey: "buy_online.title",
|
||||
backgroundColor: Colors.white,
|
||||
arrowColor: primaryColor,
|
||||
labelColor: primaryColor),
|
||||
body: ListView(
|
||||
shrinkWrap: true,
|
||||
padding: EdgeInsets.only(top: 10, left: 10, right: 10),
|
||||
@@ -92,11 +80,12 @@ class _BuyingOnlinePagetate extends State<BuyingOnlinePage>
|
||||
instructionBox,
|
||||
new Container(
|
||||
decoration: new BoxDecoration(color: Colors.white),
|
||||
child: new TabBar(
|
||||
// indicatorColor: primaryColor,
|
||||
child: new TabBar.secondary(
|
||||
labelPadding: EdgeInsets.all(7),
|
||||
dividerColor: Colors.grey.shade200,
|
||||
indicatorColor: primaryColor,
|
||||
labelColor: primaryColor,
|
||||
labelStyle: TextStyle(fontWeight: FontWeight.bold),
|
||||
unselectedLabelColor: Colors.grey,
|
||||
controller: _tabController,
|
||||
tabs: [
|
||||
LocalText(context, "buy_online.fullname", color: primaryColor),
|
||||
|
||||
@@ -24,6 +24,8 @@ class _CargoTableState extends State<CargoTable> {
|
||||
headingRowHeight: 40,
|
||||
columnSpacing: 50,
|
||||
showCheckboxColumn: false,
|
||||
decoration: BoxDecoration(border: Border.all(color: Colors.white)),
|
||||
border: TableBorder(horizontalInside: BorderSide(color: Colors.white)),
|
||||
columns: [
|
||||
DataColumn(
|
||||
label: LocalText(
|
||||
|
||||
@@ -39,14 +39,14 @@ class _CargoTableState extends State<CargoTable> {
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
print("Cargotypes:${cargoTypes!.length}");
|
||||
|
||||
return SingleChildScrollView(
|
||||
scrollDirection: Axis.horizontal,
|
||||
child: DataTable(
|
||||
showCheckboxColumn: false,
|
||||
headingRowHeight: 40,
|
||||
columnSpacing: 40,
|
||||
decoration: BoxDecoration(border: Border.all(color: Colors.white)),
|
||||
border: TableBorder(horizontalInside: BorderSide(color: Colors.white)),
|
||||
columns: [
|
||||
DataColumn(
|
||||
label: LocalText(
|
||||
|
||||
@@ -20,6 +20,7 @@ import 'package:fcs/pages/widgets/delivery_address_selection.dart';
|
||||
import 'package:fcs/pages/widgets/display_text.dart';
|
||||
import 'package:fcs/pages/widgets/fcs_id_icon.dart';
|
||||
import 'package:fcs/pages/widgets/length_picker.dart';
|
||||
import 'package:fcs/pages/widgets/local_app_bar.dart';
|
||||
import 'package:fcs/pages/widgets/local_button.dart';
|
||||
import 'package:fcs/pages/widgets/local_dropdown.dart';
|
||||
import 'package:fcs/pages/widgets/local_radio_buttons.dart';
|
||||
@@ -531,21 +532,11 @@ class _CartonEditorState extends State<CartonEditor> {
|
||||
return LocalProgress(
|
||||
inAsyncCall: _isLoading,
|
||||
child: Scaffold(
|
||||
appBar: AppBar(
|
||||
centerTitle: true,
|
||||
leading: new IconButton(
|
||||
icon:
|
||||
new Icon(CupertinoIcons.back, color: primaryColor, size: 30),
|
||||
onPressed: () => Navigator.of(context).pop()),
|
||||
shadowColor: Colors.transparent,
|
||||
backgroundColor: Colors.white,
|
||||
title: LocalText(
|
||||
context,
|
||||
_isNew ? "box.info.title" : "box.edit.title",
|
||||
fontSize: 20,
|
||||
color: primaryColor,
|
||||
),
|
||||
),
|
||||
appBar: LocalAppBar(
|
||||
labelKey: _isNew ? "box.info.title" : "box.edit.title",
|
||||
backgroundColor: Colors.white,
|
||||
arrowColor: primaryColor,
|
||||
labelColor: primaryColor),
|
||||
body: Padding(
|
||||
padding: const EdgeInsets.all(8.0),
|
||||
child: ListView(
|
||||
|
||||
@@ -11,6 +11,7 @@ import 'package:fcs/pages/widgets/defalut_delivery_address.dart';
|
||||
import 'package:fcs/pages/widgets/display_text.dart';
|
||||
import 'package:fcs/pages/widgets/fcs_id_icon.dart';
|
||||
import 'package:fcs/pages/widgets/length_picker.dart';
|
||||
import 'package:fcs/pages/widgets/local_app_bar.dart';
|
||||
import 'package:fcs/pages/widgets/local_radio_buttons.dart';
|
||||
import 'package:fcs/pages/widgets/local_text.dart';
|
||||
import 'package:fcs/pages/widgets/local_title.dart';
|
||||
@@ -311,20 +312,11 @@ class _CartonInfoState extends State<CartonInfo> {
|
||||
return LocalProgress(
|
||||
inAsyncCall: _isLoading,
|
||||
child: Scaffold(
|
||||
appBar: AppBar(
|
||||
centerTitle: true,
|
||||
leading: new IconButton(
|
||||
icon: new Icon(CupertinoIcons.back, color: primaryColor, size: 30),
|
||||
onPressed: () => Navigator.of(context).pop(),
|
||||
),
|
||||
shadowColor: Colors.transparent,
|
||||
appBar: LocalAppBar(
|
||||
labelKey: "box.info.title",
|
||||
backgroundColor: Colors.white,
|
||||
title: LocalText(
|
||||
context,
|
||||
"box.info.title",
|
||||
fontSize: 20,
|
||||
color: primaryColor,
|
||||
),
|
||||
labelColor: primaryColor,
|
||||
arrowColor: primaryColor,
|
||||
actions: isEdiable
|
||||
? <Widget>[
|
||||
IconButton(
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import 'package:fcs/helpers/theme.dart';
|
||||
import 'package:fcs/pages/carton/model/carton_model.dart';
|
||||
import 'package:fcs/pages/widgets/local_app_bar.dart';
|
||||
import 'package:fcs/pages/widgets/local_popup_menu_button.dart';
|
||||
import 'package:fcs/pages/widgets/local_popupmenu.dart';
|
||||
import 'package:fcs/pages/widgets/local_text.dart';
|
||||
@@ -60,33 +61,20 @@ class _CartonListState extends State<CartonList> {
|
||||
});
|
||||
return LocalProgress(
|
||||
inAsyncCall: _isLoading,
|
||||
child: DefaultTabController(
|
||||
length: 2,
|
||||
child: Scaffold(
|
||||
appBar: AppBar(
|
||||
centerTitle: true,
|
||||
leading: new IconButton(
|
||||
icon: new Icon(CupertinoIcons.back),
|
||||
onPressed: () => Navigator.of(context).pop(),
|
||||
),
|
||||
backgroundColor: primaryColor,
|
||||
title: LocalText(context, "boxes.name",
|
||||
color: Colors.white, fontSize: 20),
|
||||
actions: <Widget>[popupMenu],
|
||||
),
|
||||
floatingActionButton: FloatingActionButton.extended(
|
||||
onPressed: () {
|
||||
_newBox();
|
||||
},
|
||||
icon: Icon(Icons.add),
|
||||
label: LocalText(context, "boxes.new", color: Colors.white),
|
||||
backgroundColor: primaryColor,
|
||||
),
|
||||
body: PaginatorListView<Carton>(
|
||||
paginatorListener: boxModel.getBoxes!,
|
||||
rowBuilder: (p) => CartonListRow(box: p),
|
||||
color: primaryColor),
|
||||
child: Scaffold(
|
||||
appBar: LocalAppBar(labelKey: "boxes.name", actions: [popupMenu]),
|
||||
floatingActionButton: FloatingActionButton.extended(
|
||||
onPressed: () {
|
||||
_newBox();
|
||||
},
|
||||
icon: Icon(Icons.add),
|
||||
label: LocalText(context, "boxes.new", color: Colors.white),
|
||||
backgroundColor: primaryColor,
|
||||
),
|
||||
body: PaginatorListView<Carton>(
|
||||
paginatorListener: boxModel.getBoxes!,
|
||||
rowBuilder: (p) => CartonListRow(box: p),
|
||||
color: primaryColor),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -29,7 +29,7 @@ class CartonListRow extends StatelessWidget {
|
||||
children: <Widget>[
|
||||
Expanded(
|
||||
child: new Padding(
|
||||
padding: const EdgeInsets.symmetric(vertical: 16.0),
|
||||
padding: const EdgeInsets.symmetric(vertical: 13.0),
|
||||
child: new Row(
|
||||
children: <Widget>[
|
||||
Container(
|
||||
|
||||
@@ -2,7 +2,6 @@ import 'package:fcs/domain/entities/package.dart';
|
||||
import 'package:fcs/helpers/theme.dart';
|
||||
import 'package:fcs/pages/widgets/local_text.dart';
|
||||
import 'package:fcs/pages/widgets/local_title.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
typedef OnSelect = Function(Package package, bool checked);
|
||||
|
||||
@@ -30,13 +30,9 @@ class CartonRow extends StatelessWidget {
|
||||
child: new Row(
|
||||
children: <Widget>[
|
||||
Container(
|
||||
padding: EdgeInsets.only(left: 5, right: 10),
|
||||
child: Icon(
|
||||
MaterialCommunityIcons.package,
|
||||
color: primaryColor,
|
||||
size: 30,
|
||||
),
|
||||
),
|
||||
padding: EdgeInsets.only(left: 5, right: 10),
|
||||
child: Icon(MaterialCommunityIcons.package,
|
||||
color: primaryColor, size: 30)),
|
||||
new Expanded(
|
||||
child: new Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
|
||||
@@ -10,14 +10,18 @@ Widget getCartonNumberStatus(BuildContext context, Carton carton) {
|
||||
LocalText(
|
||||
context,
|
||||
'',
|
||||
text: carton.cartonNumber ,
|
||||
text: carton.cartonNumber,
|
||||
color: primaryColor,
|
||||
fontSize: 18,
|
||||
fontWeight: FontWeight.bold,
|
||||
),
|
||||
Padding(
|
||||
padding: const EdgeInsets.only(left: 8.0),
|
||||
child: Chip(label: Text(carton.status??"")),
|
||||
child: Chip(
|
||||
shape: const StadiumBorder(
|
||||
side: BorderSide(color: Colors.transparent)),
|
||||
backgroundColor: Colors.grey.withOpacity(0.3),
|
||||
label: Text(carton.status ?? "")),
|
||||
),
|
||||
],
|
||||
);
|
||||
|
||||
@@ -32,7 +32,7 @@ class CartonListRow extends StatelessWidget {
|
||||
children: <Widget>[
|
||||
Expanded(
|
||||
child: new Padding(
|
||||
padding: const EdgeInsets.symmetric(vertical: 13.0),
|
||||
padding: const EdgeInsets.symmetric(vertical: 10.0),
|
||||
child: new Row(
|
||||
children: <Widget>[
|
||||
new Padding(
|
||||
|
||||
@@ -5,6 +5,7 @@ import 'package:fcs/pages/widgets/barcode_scanner.dart';
|
||||
import 'package:fcs/pages/widgets/local_popup_menu_button.dart';
|
||||
import 'package:fcs/pages/widgets/local_popupmenu.dart';
|
||||
import 'package:fcs/pagination/paginator_listview.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_vector_icons/flutter_vector_icons.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
@@ -32,13 +33,15 @@ class PartSearchDelegate extends SearchDelegate<Carton> {
|
||||
final ThemeData theme = Theme.of(context);
|
||||
return theme.copyWith(
|
||||
appBarTheme: AppBarTheme(color: primaryColor),
|
||||
iconButtonTheme: IconButtonThemeData(
|
||||
style: ButtonStyle(
|
||||
iconColor: MaterialStateProperty.all<Color>(Colors.white))),
|
||||
inputDecorationTheme: InputDecorationTheme(
|
||||
border: InputBorder.none,
|
||||
hintStyle: TextStyle(
|
||||
color: theme.primaryTextTheme.caption?.color, fontSize: 14)),
|
||||
hintStyle: TextStyle(color: Colors.grey, fontSize: 14)),
|
||||
textTheme: TextTheme(
|
||||
headline1: TextStyle(
|
||||
color: theme.primaryTextTheme.headline1?.color,
|
||||
displayLarge: TextStyle(
|
||||
color: theme.primaryTextTheme.displayLarge?.color,
|
||||
fontSize: 16,
|
||||
backgroundColor: primaryColor)),
|
||||
primaryColor: primaryColor,
|
||||
@@ -83,7 +86,7 @@ class PartSearchDelegate extends SearchDelegate<Carton> {
|
||||
@override
|
||||
Widget buildLeading(BuildContext context) {
|
||||
return IconButton(
|
||||
icon: Icon(Icons.arrow_back),
|
||||
icon: Icon(CupertinoIcons.back),
|
||||
onPressed: () => close(context, new Carton()),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -14,6 +14,7 @@ import 'package:fcs/pages/package/package_info.dart';
|
||||
import 'package:fcs/pages/profile/profile_page.dart';
|
||||
import 'package:fcs/pages/shipment/model/shipment_model.dart';
|
||||
import 'package:fcs/pages/shipment/shipment_info.dart';
|
||||
import 'package:fcs/pages/widgets/local_app_bar.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
@@ -50,18 +51,9 @@ class MessageDetail extends StatelessWidget {
|
||||
String userID = Provider.of<MessageModel>(context).user?.id ?? "";
|
||||
|
||||
return Scaffold(
|
||||
appBar: AppBar(
|
||||
leading: new IconButton(
|
||||
icon: new Icon(CupertinoIcons.back),
|
||||
onPressed: () => Navigator.of(context).pop(),
|
||||
),
|
||||
backgroundColor: primaryColor,
|
||||
elevation: .9,
|
||||
title: Text(
|
||||
receiverName ?? "FCS Team",
|
||||
),
|
||||
actions: <Widget>[],
|
||||
),
|
||||
appBar: LocalAppBar(
|
||||
titleWidget: Text(receiverName ?? "FCS Team",
|
||||
style: TextStyle(color: Colors.white, fontSize: 20))),
|
||||
body: Padding(
|
||||
padding: EdgeInsets.all(16.0),
|
||||
child: Column(
|
||||
@@ -129,15 +121,15 @@ class MessageDetail extends StatelessWidget {
|
||||
minLines: 1,
|
||||
keyboardType: TextInputType.multiline,
|
||||
controller: textEditingController,
|
||||
cursorColor: primaryColor,
|
||||
decoration: InputDecoration(
|
||||
focusedBorder: const OutlineInputBorder(
|
||||
borderSide:
|
||||
const BorderSide(color: primaryColor, width: 1.0),
|
||||
),
|
||||
border: new OutlineInputBorder(
|
||||
borderRadius: const BorderRadius.all(
|
||||
const Radius.circular(10.0),
|
||||
),
|
||||
borderRadius:
|
||||
const BorderRadius.all(const Radius.circular(5.0)),
|
||||
),
|
||||
hintText: getLocalString(context, "message.hint.input"),
|
||||
hintStyle: TextStyle(
|
||||
|
||||
@@ -3,7 +3,7 @@ import 'package:fcs/helpers/theme.dart';
|
||||
import 'package:fcs/pages/contact/model/contact_model.dart';
|
||||
import 'package:fcs/pages/main/util.dart';
|
||||
import 'package:fcs/pages/widgets/input_text.dart';
|
||||
import 'package:fcs/pages/widgets/local_text.dart';
|
||||
import 'package:fcs/pages/widgets/local_app_bar.dart';
|
||||
import 'package:fcs/pages/widgets/progress.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
@@ -87,21 +87,11 @@ class _ContactEditorState extends State<ContactEditor> {
|
||||
return LocalProgress(
|
||||
inAsyncCall: _isLoading,
|
||||
child: Scaffold(
|
||||
appBar: AppBar(
|
||||
centerTitle: true,
|
||||
leading: new IconButton(
|
||||
icon: new Icon(CupertinoIcons.back, color: primaryColor),
|
||||
onPressed: () {
|
||||
Navigator.of(context).pop();
|
||||
}),
|
||||
shadowColor: Colors.transparent,
|
||||
appBar: LocalAppBar(
|
||||
labelKey: 'contact.edit.title',
|
||||
backgroundColor: Colors.white,
|
||||
title: LocalText(
|
||||
context,
|
||||
'contact.edit.title',
|
||||
color: primaryColor,
|
||||
fontSize: 20,
|
||||
)),
|
||||
labelColor: primaryColor,
|
||||
arrowColor: primaryColor),
|
||||
body: ListView(
|
||||
children: [
|
||||
Padding(
|
||||
|
||||
@@ -3,7 +3,7 @@ import 'package:fcs/domain/vo/contact.dart';
|
||||
import 'package:fcs/helpers/theme.dart';
|
||||
import 'package:fcs/pages/contact/contact_editor.dart';
|
||||
import 'package:fcs/pages/main/model/main_model.dart';
|
||||
import 'package:fcs/pages/widgets/local_text.dart';
|
||||
import 'package:fcs/pages/widgets/local_app_bar.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
|
||||
@@ -26,23 +26,11 @@ class _ContactPageState extends State<ContactPage> {
|
||||
bool isEditable = context.select((MainModel m) => m.contactEditable());
|
||||
|
||||
return Scaffold(
|
||||
appBar: AppBar(
|
||||
centerTitle: true,
|
||||
leading: new IconButton(
|
||||
icon: new Icon(
|
||||
CupertinoIcons.back,
|
||||
color: primaryColor,
|
||||
),
|
||||
onPressed: () => Navigator.of(context).pop(),
|
||||
),
|
||||
shadowColor: Colors.transparent,
|
||||
appBar: LocalAppBar(
|
||||
labelKey: "contact.title",
|
||||
backgroundColor: Colors.white,
|
||||
title: LocalText(
|
||||
context,
|
||||
'contact.title',
|
||||
color: primaryColor,
|
||||
fontSize: 20,
|
||||
),
|
||||
labelColor: primaryColor,
|
||||
arrowColor: primaryColor,
|
||||
actions: isEditable
|
||||
? [
|
||||
IconButton(
|
||||
@@ -102,6 +90,7 @@ class _ContactPageState extends State<ContactPage> {
|
||||
onTap: () => _opencontactItem(setting.facebookLink ?? ""),
|
||||
labelKey: "contact.facebook",
|
||||
),
|
||||
const SizedBox(height: 30)
|
||||
],
|
||||
),
|
||||
);
|
||||
|
||||
@@ -7,6 +7,7 @@ import 'package:fcs/pages/customer/customer_editor.dart';
|
||||
import 'package:fcs/pages/customer/model/customer_model.dart';
|
||||
import 'package:fcs/pages/main/model/main_model.dart';
|
||||
import 'package:fcs/pages/user_search/user_serach.dart';
|
||||
import 'package:fcs/pages/widgets/local_app_bar.dart';
|
||||
import 'package:fcs/pages/widgets/local_text.dart';
|
||||
import 'package:fcs/pages/widgets/progress.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
@@ -28,7 +29,6 @@ class _CustomerListState extends State<CustomerList> {
|
||||
final double dotSize = 15.0;
|
||||
bool _isLoading = false;
|
||||
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
context.read<CustomerModel>().loadPaginationCustomers();
|
||||
@@ -42,26 +42,15 @@ class _CustomerListState extends State<CustomerList> {
|
||||
return LocalProgress(
|
||||
inAsyncCall: _isLoading,
|
||||
child: Scaffold(
|
||||
appBar: AppBar(
|
||||
centerTitle: true,
|
||||
leading: new IconButton(
|
||||
icon: new Icon(CupertinoIcons.back),
|
||||
onPressed: () => Navigator.of(context).pop(),
|
||||
),
|
||||
actions: <Widget>[
|
||||
appBar: LocalAppBar(
|
||||
labelKey: "customer.list.title",
|
||||
actions: [
|
||||
IconButton(
|
||||
icon: Icon(Icons.search, color: Colors.white),
|
||||
onPressed: () => searchUser(context, onUserSelect: (u) {
|
||||
_select(u);
|
||||
})),
|
||||
],
|
||||
backgroundColor: primaryColor,
|
||||
title: LocalText(
|
||||
context,
|
||||
"customer.list.title",
|
||||
fontSize: 20,
|
||||
color: Colors.white,
|
||||
),
|
||||
),
|
||||
floatingActionButton: FloatingActionButton.extended(
|
||||
onPressed: () {
|
||||
@@ -88,7 +77,7 @@ class _CustomerListState extends State<CustomerList> {
|
||||
children: <Widget>[
|
||||
Expanded(
|
||||
child: new Padding(
|
||||
padding: const EdgeInsets.symmetric(vertical: 2.0),
|
||||
padding: const EdgeInsets.symmetric(vertical: 5.0),
|
||||
child: new Row(
|
||||
children: <Widget>[
|
||||
InkWell(
|
||||
@@ -120,7 +109,7 @@ class _CustomerListState extends State<CustomerList> {
|
||||
child: new Text(
|
||||
customer.name ?? "",
|
||||
style: new TextStyle(
|
||||
fontSize: 20.0, color: primaryColor),
|
||||
fontSize: 18.0, color: primaryColor),
|
||||
),
|
||||
),
|
||||
Padding(
|
||||
@@ -146,16 +135,13 @@ class _CustomerListState extends State<CustomerList> {
|
||||
onPressed: () => _share(customer),
|
||||
style: TextButton.styleFrom(
|
||||
shape: RoundedRectangleBorder(
|
||||
borderRadius: BorderRadius.circular(18.0),
|
||||
borderRadius: BorderRadius.circular(20.0),
|
||||
side: BorderSide(color: primaryColor))),
|
||||
// shape: RoundedRectangleBorder(
|
||||
// borderRadius: BorderRadius.circular(18.0),
|
||||
// side: BorderSide(color: primaryColor)),
|
||||
child: Row(
|
||||
children: [
|
||||
Text(
|
||||
"Share",
|
||||
style: TextStyle(fontSize: 12),
|
||||
style: TextStyle(fontSize: 12, color: primaryColor),
|
||||
),
|
||||
Icon(Icons.share, color: primaryColor),
|
||||
],
|
||||
|
||||
@@ -3,9 +3,8 @@ import 'package:fcs/helpers/theme.dart';
|
||||
import 'package:fcs/pages/customer/model/customer_model.dart';
|
||||
import 'package:fcs/pages/main/util.dart';
|
||||
import 'package:fcs/pages/widgets/input_text.dart';
|
||||
import 'package:fcs/pages/widgets/local_text.dart';
|
||||
import 'package:fcs/pages/widgets/local_app_bar.dart';
|
||||
import 'package:fcs/pages/widgets/progress.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
@@ -42,31 +41,20 @@ class _InvitationCreateState extends State<InvitationCreate> {
|
||||
return LocalProgress(
|
||||
inAsyncCall: _isLoading,
|
||||
child: Scaffold(
|
||||
appBar: AppBar(
|
||||
appBar: LocalAppBar(
|
||||
labelKey: "invitation.form.title",
|
||||
backgroundColor: Colors.white,
|
||||
shadowColor: Colors.transparent,
|
||||
centerTitle: true,
|
||||
leading: new IconButton(
|
||||
icon: new Icon(
|
||||
CupertinoIcons.back,
|
||||
color: primaryColor,
|
||||
),
|
||||
onPressed: () {
|
||||
if (isDataChanged()) {
|
||||
showConfirmDialog(context, "back.button_confirm", () {
|
||||
Navigator.of(context).pop();
|
||||
});
|
||||
} else {
|
||||
labelColor: primaryColor,
|
||||
arrowColor: primaryColor,
|
||||
onBack: () {
|
||||
if (isDataChanged()) {
|
||||
showConfirmDialog(context, "back.button_confirm", () {
|
||||
Navigator.of(context).pop();
|
||||
}
|
||||
},
|
||||
),
|
||||
title: LocalText(
|
||||
context,
|
||||
"invitation.form.title",
|
||||
fontSize: 20,
|
||||
color: primaryColor,
|
||||
),
|
||||
});
|
||||
} else {
|
||||
Navigator.of(context).pop();
|
||||
}
|
||||
},
|
||||
),
|
||||
body: Container(
|
||||
padding: EdgeInsets.all(18),
|
||||
|
||||
@@ -13,12 +13,11 @@ import 'package:fcs/pages/rates/model/shipment_rate_model.dart';
|
||||
import 'package:fcs/pages/widgets/defalut_delivery_address.dart';
|
||||
import 'package:fcs/pages/widgets/display_text.dart';
|
||||
import 'package:fcs/pages/widgets/fcs_id_icon.dart';
|
||||
import 'package:fcs/pages/widgets/local_app_bar.dart';
|
||||
import 'package:fcs/pages/widgets/local_button.dart';
|
||||
import 'package:fcs/pages/widgets/local_radio_buttons.dart';
|
||||
import 'package:fcs/pages/widgets/local_text.dart';
|
||||
import 'package:fcs/pages/widgets/local_title.dart';
|
||||
import 'package:fcs/pages/widgets/progress.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_vector_icons/flutter_vector_icons.dart';
|
||||
import 'package:intl/intl.dart';
|
||||
@@ -226,23 +225,11 @@ class _DeliveryInfoState extends State<DeliveryInfo> {
|
||||
return LocalProgress(
|
||||
inAsyncCall: _isLoading,
|
||||
child: Scaffold(
|
||||
appBar: AppBar(
|
||||
centerTitle: true,
|
||||
leading: new IconButton(
|
||||
icon: new Icon(CupertinoIcons.back, color: primaryColor, size: 30),
|
||||
onPressed: () {
|
||||
Navigator.of(context).pop();
|
||||
},
|
||||
),
|
||||
shadowColor: Colors.transparent,
|
||||
backgroundColor: Colors.white,
|
||||
title: LocalText(
|
||||
context,
|
||||
"delivery.info.title",
|
||||
fontSize: 20,
|
||||
color: primaryColor,
|
||||
),
|
||||
),
|
||||
appBar: LocalAppBar(
|
||||
labelKey: "delivery.info.title",
|
||||
backgroundColor: Colors.white,
|
||||
labelColor: primaryColor,
|
||||
arrowColor: primaryColor),
|
||||
body: Padding(
|
||||
padding: const EdgeInsets.all(10.0),
|
||||
child: ListView(children: <Widget>[
|
||||
|
||||
@@ -1,9 +1,8 @@
|
||||
import 'package:fcs/helpers/theme.dart';
|
||||
import 'package:fcs/pages/widgets/local_app_bar.dart';
|
||||
import 'package:fcs/pages/widgets/local_popup_menu_button.dart';
|
||||
import 'package:fcs/pages/widgets/local_popupmenu.dart';
|
||||
import 'package:fcs/pages/widgets/local_text.dart';
|
||||
import 'package:fcs/pages/widgets/progress.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
@@ -61,17 +60,7 @@ class _DeliverListState extends State<DeliverList> {
|
||||
return LocalProgress(
|
||||
inAsyncCall: _isLoading,
|
||||
child: Scaffold(
|
||||
appBar: AppBar(
|
||||
centerTitle: true,
|
||||
leading: new IconButton(
|
||||
icon: new Icon(CupertinoIcons.back),
|
||||
onPressed: () => Navigator.of(context).pop(),
|
||||
),
|
||||
backgroundColor: primaryColor,
|
||||
title: LocalText(context, "delivery",
|
||||
color: Colors.white, fontSize: 20),
|
||||
actions: <Widget>[popupMenu],
|
||||
),
|
||||
appBar: LocalAppBar(labelKey: "delivery", actions: [popupMenu]),
|
||||
body: PaginatorListView<Carton>(
|
||||
paginatorListener: deliveryModel.getCartons!,
|
||||
rowBuilder: (p) => DeliveryListRow(box: p),
|
||||
|
||||
@@ -4,9 +4,8 @@ import 'package:fcs/helpers/theme.dart';
|
||||
import 'package:fcs/pages/delivery_address/model/delivery_address_model.dart';
|
||||
import 'package:fcs/pages/main/util.dart';
|
||||
import 'package:fcs/pages/widgets/input_text.dart';
|
||||
import 'package:fcs/pages/widgets/local_text.dart';
|
||||
import 'package:fcs/pages/widgets/local_app_bar.dart';
|
||||
import 'package:fcs/pages/widgets/progress.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_vector_icons/flutter_vector_icons.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
@@ -104,24 +103,20 @@ class _DeliveryAddressEditorState extends State<DeliveryAddressEditor> {
|
||||
return LocalProgress(
|
||||
inAsyncCall: _isLoading,
|
||||
child: Scaffold(
|
||||
appBar: AppBar(
|
||||
centerTitle: true,
|
||||
leading: new IconButton(
|
||||
icon: new Icon(CupertinoIcons.back, color: primaryColor),
|
||||
onPressed: () {
|
||||
if (isDataChanged()) {
|
||||
showConfirmDialog(context, "back.button_confirm", () {
|
||||
Navigator.of(context).pop();
|
||||
});
|
||||
} else {
|
||||
Navigator.of(context).pop();
|
||||
}
|
||||
},
|
||||
),
|
||||
appBar: LocalAppBar(
|
||||
labelKey: 'delivery_address',
|
||||
backgroundColor: Colors.white,
|
||||
shadowColor: Colors.transparent,
|
||||
title: LocalText(context, 'delivery_address',
|
||||
color: primaryColor, fontSize: 18),
|
||||
labelColor: primaryColor,
|
||||
arrowColor: primaryColor,
|
||||
onBack: () {
|
||||
if (isDataChanged()) {
|
||||
showConfirmDialog(context, "back.button_confirm", () {
|
||||
Navigator.of(context).pop();
|
||||
});
|
||||
} else {
|
||||
Navigator.of(context).pop();
|
||||
}
|
||||
},
|
||||
actions: [
|
||||
_isNew
|
||||
? Container()
|
||||
|
||||
@@ -2,6 +2,7 @@ import 'package:fcs/domain/vo/delivery_address.dart';
|
||||
import 'package:fcs/helpers/theme.dart';
|
||||
import 'package:fcs/pages/delivery_address/delivery_address_editor.dart';
|
||||
import 'package:fcs/pages/main/util.dart';
|
||||
import 'package:fcs/pages/widgets/local_app_bar.dart';
|
||||
import 'package:fcs/pages/widgets/local_text.dart';
|
||||
import 'package:fcs/pages/widgets/progress.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
@@ -15,7 +16,7 @@ class DeliveryAddressList extends StatefulWidget {
|
||||
final bool isAdminCreation;
|
||||
final DeliveryAddress? deliveryAddress;
|
||||
const DeliveryAddressList(
|
||||
{Key? key, this.isAdminCreation = false, this.deliveryAddress})
|
||||
{Key? key, this.isAdminCreation = false, this.deliveryAddress})
|
||||
: super(key: key);
|
||||
@override
|
||||
_DeliveryAddressListState createState() => _DeliveryAddressListState();
|
||||
@@ -41,17 +42,11 @@ class _DeliveryAddressListState extends State<DeliveryAddressList> {
|
||||
return LocalProgress(
|
||||
inAsyncCall: _isLoading,
|
||||
child: Scaffold(
|
||||
appBar: AppBar(
|
||||
centerTitle: true,
|
||||
leading: new IconButton(
|
||||
icon: new Icon(CupertinoIcons.back, color: primaryColor),
|
||||
onPressed: () => Navigator.of(context).pop(),
|
||||
),
|
||||
backgroundColor: Colors.white,
|
||||
shadowColor: Colors.transparent,
|
||||
title: LocalText(context, 'delivery_addresses',
|
||||
color: primaryColor, fontSize: 20),
|
||||
),
|
||||
appBar: LocalAppBar(
|
||||
labelKey: 'delivery_addresses',
|
||||
backgroundColor: Colors.white,
|
||||
labelColor: primaryColor,
|
||||
arrowColor: primaryColor),
|
||||
floatingActionButton: FloatingActionButton.extended(
|
||||
onPressed: () {
|
||||
Navigator.of(context).push(CupertinoPageRoute(
|
||||
|
||||
@@ -1,140 +0,0 @@
|
||||
import 'package:fcs/domain/entities/faq.dart';
|
||||
import 'package:fcs/helpers/theme.dart';
|
||||
import 'package:fcs/pages/faq/faq_edit_page.dart';
|
||||
import 'package:fcs/pages/faq/model/faq_model.dart';
|
||||
import 'package:fcs/pages/main/model/language_model.dart';
|
||||
import 'package:fcs/pages/main/model/main_model.dart';
|
||||
import 'package:fcs/pages/main/util.dart';
|
||||
import 'package:fcs/pages/widgets/local_text.dart';
|
||||
import 'package:fcs/pages/widgets/progress.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
class FAQDetailPage extends StatefulWidget {
|
||||
final FAQ faq;
|
||||
const FAQDetailPage({required this.faq});
|
||||
@override
|
||||
_FAQDetailPageState createState() => _FAQDetailPageState();
|
||||
}
|
||||
|
||||
class _FAQDetailPageState extends State<FAQDetailPage> {
|
||||
bool _isLoading = false;
|
||||
FAQ faq = new FAQ();
|
||||
|
||||
intState() {
|
||||
super.initState();
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
if (widget.faq.id != null)
|
||||
faq = context.select((FAQModel m) => m.getFAQ(widget.faq.id!));
|
||||
// if (faq == null) return Text("Deleted");
|
||||
|
||||
bool isEditable = context.select((MainModel m) => m.faqEditable());
|
||||
return LocalProgress(
|
||||
inAsyncCall: _isLoading,
|
||||
child: Scaffold(
|
||||
body: CustomScrollView(slivers: [
|
||||
SliverAppBar(
|
||||
leading: IconButton(
|
||||
icon: Icon(
|
||||
CupertinoIcons.back,
|
||||
color: primaryColor,
|
||||
size: 50,
|
||||
),
|
||||
onPressed: () => Navigator.of(context).pop(),
|
||||
),
|
||||
backgroundColor: Colors.white,
|
||||
expandedHeight: 100.0,
|
||||
floating: false,
|
||||
pinned: true,
|
||||
flexibleSpace: FlexibleSpaceBar(
|
||||
centerTitle: true,
|
||||
titlePadding: EdgeInsets.symmetric(vertical: 10),
|
||||
),
|
||||
actions: isEditable
|
||||
? [
|
||||
IconButton(
|
||||
onPressed: () {
|
||||
showConfirmDialog(context, "faq.edit.delete.confirm",
|
||||
() {
|
||||
_delete();
|
||||
});
|
||||
},
|
||||
icon: Icon(
|
||||
CupertinoIcons.delete,
|
||||
color: primaryColor,
|
||||
size: 30,
|
||||
)),
|
||||
IconButton(
|
||||
onPressed: () =>
|
||||
Navigator.of(context).push<void>(CupertinoPageRoute(
|
||||
builder: (context) => FAQEditor(faq: faq),
|
||||
)),
|
||||
icon: Icon(
|
||||
CupertinoIcons.pen,
|
||||
color: primaryColor,
|
||||
))
|
||||
]
|
||||
: [],
|
||||
),
|
||||
SliverList(
|
||||
delegate: SliverChildListDelegate([
|
||||
Padding(
|
||||
padding: const EdgeInsets.all(28.0),
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
getQuestion(context, faq),
|
||||
SizedBox(
|
||||
height: 50,
|
||||
),
|
||||
getAnwser(context, faq)
|
||||
],
|
||||
),
|
||||
),
|
||||
]))
|
||||
]),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
Widget getQuestion(BuildContext context, FAQ faq) {
|
||||
bool isEng = Provider.of<LanguageModel>(context).isEng;
|
||||
return TextLocalStyle(
|
||||
context,
|
||||
faq.question(isEng),
|
||||
fontSize: 22,
|
||||
fontWeight: FontWeight.bold,
|
||||
);
|
||||
}
|
||||
|
||||
Widget getAnwser(BuildContext context, FAQ faq) {
|
||||
bool isEng = Provider.of<LanguageModel>(context).isEng;
|
||||
return TextLocalStyle(
|
||||
context,
|
||||
faq.answer(isEng),
|
||||
fontSize: 16,
|
||||
fontWeight: FontWeight.w200,
|
||||
);
|
||||
}
|
||||
|
||||
_delete() async {
|
||||
setState(() {
|
||||
_isLoading = true;
|
||||
});
|
||||
try {
|
||||
FAQModel faqModel = Provider.of<FAQModel>(context, listen: false);
|
||||
await faqModel.deleteFAQ(faq);
|
||||
Navigator.pop(context);
|
||||
} catch (e) {
|
||||
showMsgDialog(context, "Error", e.toString());
|
||||
} finally {
|
||||
setState(() {
|
||||
_isLoading = false;
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -5,9 +5,8 @@ import 'package:fcs/pages/faq/model/faq_model.dart';
|
||||
import 'package:fcs/pages/faq/widgets.dart';
|
||||
import 'package:fcs/pages/main/util.dart';
|
||||
import 'package:fcs/pages/widgets/input_text.dart';
|
||||
import 'package:fcs/pages/widgets/local_text.dart';
|
||||
import 'package:fcs/pages/widgets/local_app_bar.dart';
|
||||
import 'package:fcs/pages/widgets/progress.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_vector_icons/flutter_vector_icons.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
@@ -84,6 +83,7 @@ class _FAQEditorState extends State<FAQEditor> {
|
||||
withBorder: true,
|
||||
);
|
||||
final pageLinkBox = DropdownButton<String>(
|
||||
isExpanded: true,
|
||||
value: _pageLink,
|
||||
style: TextStyle(color: Colors.deepPurple),
|
||||
underline: Container(
|
||||
@@ -124,33 +124,30 @@ class _FAQEditorState extends State<FAQEditor> {
|
||||
return LocalProgress(
|
||||
inAsyncCall: _isLoading,
|
||||
child: Scaffold(
|
||||
appBar: AppBar(
|
||||
centerTitle: true,
|
||||
leading: new IconButton(
|
||||
icon: new Icon(CupertinoIcons.back, color: primaryColor),
|
||||
onPressed: () {
|
||||
if (isDataChanged()) {
|
||||
showConfirmDialog(context, "back.button_confirm", () {
|
||||
Navigator.of(context).pop();
|
||||
});
|
||||
} else {
|
||||
Navigator.of(context).pop();
|
||||
}
|
||||
},
|
||||
),
|
||||
appBar: LocalAppBar(
|
||||
labelKey: _isNew ? 'faq.add.title' : 'faq.edit.title',
|
||||
backgroundColor: Colors.white,
|
||||
shadowColor: Colors.transparent,
|
||||
title: LocalText(
|
||||
context, _isNew ? 'faq.add.title' : 'faq.edit.title',
|
||||
color: primaryColor, fontSize: 20),
|
||||
arrowColor: primaryColor,
|
||||
labelColor: primaryColor,
|
||||
onBack: () {
|
||||
if (isDataChanged()) {
|
||||
showConfirmDialog(context, "back.button_confirm", () {
|
||||
Navigator.of(context).pop();
|
||||
});
|
||||
} else {
|
||||
Navigator.of(context).pop();
|
||||
}
|
||||
},
|
||||
actions: [
|
||||
IconButton(
|
||||
icon: Icon(
|
||||
Icons.delete,
|
||||
color: primaryColor,
|
||||
),
|
||||
onPressed: _delete,
|
||||
)
|
||||
_isNew
|
||||
? const SizedBox()
|
||||
: IconButton(
|
||||
icon: Icon(
|
||||
Icons.delete,
|
||||
color: primaryColor,
|
||||
),
|
||||
onPressed: _delete,
|
||||
)
|
||||
],
|
||||
),
|
||||
body: Form(
|
||||
|
||||
@@ -8,6 +8,7 @@ import 'package:fcs/pages/main/model/main_model.dart';
|
||||
import 'package:fcs/pages/payment_methods/payment_method_page.dart';
|
||||
import 'package:fcs/pages/rates/shipment_rates.dart';
|
||||
import 'package:fcs/pages/widgets/fcs_expansion_tile.dart';
|
||||
import 'package:fcs/pages/widgets/local_app_bar.dart';
|
||||
import 'package:fcs/pages/widgets/local_text.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
@@ -15,7 +16,6 @@ import 'package:provider/provider.dart';
|
||||
|
||||
import 'model/faq_model.dart';
|
||||
|
||||
|
||||
class FAQListPage extends StatefulWidget {
|
||||
@override
|
||||
_FAQListPageState createState() => _FAQListPageState();
|
||||
@@ -29,19 +29,8 @@ class _FAQListPageState extends State<FAQListPage>
|
||||
bool isEditable = context.select((MainModel m) => m.faqEditable());
|
||||
|
||||
return Scaffold(
|
||||
appBar: AppBar(
|
||||
centerTitle: true,
|
||||
title: LocalText(
|
||||
context,
|
||||
"faq.title",
|
||||
color: Colors.white,
|
||||
fontSize: 20,
|
||||
),
|
||||
leading: new IconButton(
|
||||
icon: new Icon(CupertinoIcons.back),
|
||||
onPressed: () => Navigator.of(context).pop(),
|
||||
),
|
||||
backgroundColor: primaryColor,
|
||||
appBar: LocalAppBar(
|
||||
labelKey: "faq.title",
|
||||
actions: isEditable
|
||||
? [
|
||||
IconButton(
|
||||
|
||||
@@ -7,10 +7,9 @@ import 'package:fcs/pages/main/model/main_model.dart';
|
||||
import 'package:fcs/pages/widgets/display_text.dart';
|
||||
import 'package:fcs/pages/widgets/input_date.dart';
|
||||
import 'package:fcs/pages/widgets/input_text.dart';
|
||||
import 'package:fcs/pages/widgets/local_app_bar.dart';
|
||||
import 'package:fcs/pages/widgets/local_button.dart';
|
||||
import 'package:fcs/pages/widgets/local_text.dart';
|
||||
import 'package:fcs/pages/widgets/progress.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_vector_icons/flutter_vector_icons.dart';
|
||||
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
|
||||
@@ -50,13 +49,15 @@ class _FcsShipmentEditorState extends State<FcsShipmentEditor> {
|
||||
if (widget.shipment != null) {
|
||||
_shipment = widget.shipment!;
|
||||
_shipmentNumberController.text = _shipment.shipmentNumber ?? "";
|
||||
if(_shipment.cutoffDate != null)
|
||||
_cutoffDateController.text = dateFormatter.format(_shipment.cutoffDate!);
|
||||
if(_shipment.arrivalDate != null)
|
||||
_arrivalDateController.text = dateFormatter.format(_shipment.arrivalDate!);
|
||||
if(_shipment.departureDate != null)
|
||||
_departureDateControler.text =
|
||||
dateFormatter.format(_shipment.departureDate!);
|
||||
if (_shipment.cutoffDate != null)
|
||||
_cutoffDateController.text =
|
||||
dateFormatter.format(_shipment.cutoffDate!);
|
||||
if (_shipment.arrivalDate != null)
|
||||
_arrivalDateController.text =
|
||||
dateFormatter.format(_shipment.arrivalDate!);
|
||||
if (_shipment.departureDate != null)
|
||||
_departureDateControler.text =
|
||||
dateFormatter.format(_shipment.departureDate!);
|
||||
_statusController.text = _shipment.status ?? "";
|
||||
_currentShipmentType = _shipment.shipType;
|
||||
_consigneeController.text = _shipment.consignee ?? "";
|
||||
@@ -91,12 +92,12 @@ class _FcsShipmentEditorState extends State<FcsShipmentEditor> {
|
||||
return LocalProgress(
|
||||
inAsyncCall: _isLoading,
|
||||
child: Scaffold(
|
||||
appBar: AppBar(
|
||||
centerTitle: true,
|
||||
shadowColor: Colors.transparent,
|
||||
leading: new IconButton(
|
||||
icon: new Icon(CupertinoIcons.back, color: primaryColor),
|
||||
onPressed: () {
|
||||
appBar: LocalAppBar(
|
||||
labelKey: "FCSshipment.form.title",
|
||||
backgroundColor: Colors.white,
|
||||
labelColor: primaryColor,
|
||||
arrowColor: primaryColor,
|
||||
onBack: () {
|
||||
if (isDataChanged()) {
|
||||
showConfirmDialog(context, "back.button_confirm", () {
|
||||
Navigator.of(context).pop();
|
||||
@@ -104,16 +105,7 @@ class _FcsShipmentEditorState extends State<FcsShipmentEditor> {
|
||||
} else {
|
||||
Navigator.of(context).pop();
|
||||
}
|
||||
},
|
||||
),
|
||||
backgroundColor: Colors.white,
|
||||
title: LocalText(
|
||||
context,
|
||||
"FCSshipment.form.title",
|
||||
color: primaryColor,
|
||||
fontSize: 18,
|
||||
),
|
||||
),
|
||||
}),
|
||||
body: Padding(
|
||||
padding: const EdgeInsets.all(10.0),
|
||||
child: ListView(children: <Widget>[
|
||||
@@ -206,7 +198,7 @@ class _FcsShipmentEditorState extends State<FcsShipmentEditor> {
|
||||
// fcsShipment.departureDate =
|
||||
// depDate == "" ? null : dateFormatter.parse(depDate);
|
||||
} catch (e) {
|
||||
showMsgDialog(context, "Error", e.toString()); // shold never happen
|
||||
// showMsgDialog(context, "Error", e.toString()); // shold never happen
|
||||
}
|
||||
return fcsShipment;
|
||||
}
|
||||
|
||||
@@ -4,6 +4,7 @@ import 'package:fcs/helpers/theme.dart';
|
||||
import 'package:fcs/pages/fcs_shipment/model/fcs_shipment_model.dart';
|
||||
import 'package:fcs/pages/main/util.dart';
|
||||
import 'package:fcs/pages/widgets/display_text.dart';
|
||||
import 'package:fcs/pages/widgets/local_app_bar.dart';
|
||||
import 'package:fcs/pages/widgets/local_button.dart';
|
||||
import 'package:fcs/pages/widgets/local_text.dart';
|
||||
import 'package:fcs/pages/widgets/pdf_screen.dart';
|
||||
@@ -132,20 +133,11 @@ class _FcsShipmentInfoState extends State<FcsShipmentInfo> {
|
||||
return LocalProgress(
|
||||
inAsyncCall: _isLoading,
|
||||
child: Scaffold(
|
||||
appBar: AppBar(
|
||||
centerTitle: true,
|
||||
leading: new IconButton(
|
||||
icon: new Icon(CupertinoIcons.back, color: primaryColor, size: 30),
|
||||
onPressed: () => Navigator.of(context).pop(),
|
||||
),
|
||||
shadowColor: Colors.transparent,
|
||||
appBar: LocalAppBar(
|
||||
labelKey: "FCSshipment.form.title",
|
||||
backgroundColor: Colors.white,
|
||||
title: LocalText(
|
||||
context,
|
||||
"FCSshipment.form.title",
|
||||
fontSize: 20,
|
||||
color: primaryColor,
|
||||
),
|
||||
labelColor: primaryColor,
|
||||
arrowColor: primaryColor,
|
||||
actions: [
|
||||
IconButton(
|
||||
icon: Icon(Icons.edit, color: primaryColor),
|
||||
@@ -154,7 +146,30 @@ class _FcsShipmentInfoState extends State<FcsShipmentInfo> {
|
||||
menuPopWidget(context)
|
||||
],
|
||||
),
|
||||
// appBar: AppBar(
|
||||
// centerTitle: true,
|
||||
// leading: new IconButton(
|
||||
// icon: new Icon(CupertinoIcons.back, color: primaryColor, size: 30),
|
||||
// onPressed: () => Navigator.of(context).pop(),
|
||||
// ),
|
||||
// shadowColor: Colors.transparent,
|
||||
// backgroundColor: Colors.white,
|
||||
// title: LocalText(
|
||||
// context,
|
||||
// "FCSshipment.form.title",
|
||||
// fontSize: 20,
|
||||
// color: primaryColor,
|
||||
// ),
|
||||
// actions: [
|
||||
// IconButton(
|
||||
// icon: Icon(Icons.edit, color: primaryColor),
|
||||
// onPressed: _edit,
|
||||
// ),
|
||||
// menuPopWidget(context)
|
||||
// ],
|
||||
// ),
|
||||
body: Card(
|
||||
elevation: 0,
|
||||
child: Column(
|
||||
children: <Widget>[
|
||||
Expanded(
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import 'package:fcs/helpers/theme.dart';
|
||||
import 'package:fcs/pages/fcs_shipment/model/fcs_shipment_model.dart';
|
||||
import 'package:fcs/pages/widgets/local_app_bar.dart';
|
||||
import 'package:fcs/pages/widgets/local_popup_menu_button.dart';
|
||||
import 'package:fcs/pages/widgets/local_popupmenu.dart';
|
||||
import 'package:fcs/pages/widgets/local_text.dart';
|
||||
@@ -63,17 +64,8 @@ class _FcsShipmentListState extends State<FcsShipmentList> {
|
||||
return LocalProgress(
|
||||
inAsyncCall: _isLoading,
|
||||
child: Scaffold(
|
||||
appBar: AppBar(
|
||||
centerTitle: true,
|
||||
leading: new IconButton(
|
||||
icon: new Icon(CupertinoIcons.back),
|
||||
onPressed: () => Navigator.of(context).pop(),
|
||||
),
|
||||
backgroundColor: primaryColor,
|
||||
title: LocalText(context, 'FCSshipment.list.title',
|
||||
color: Colors.white, fontSize: 20),
|
||||
actions: [popupMenu],
|
||||
),
|
||||
appBar: LocalAppBar(
|
||||
labelKey: "FCSshipment.list.title", actions: [popupMenu]),
|
||||
floatingActionButton: FloatingActionButton.extended(
|
||||
onPressed: () {
|
||||
_newShipment();
|
||||
|
||||
@@ -20,7 +20,10 @@ Future showMsgDialog(BuildContext context, String title, String msg) {
|
||||
content: new Text(msg),
|
||||
actions: <Widget>[
|
||||
new TextButton(
|
||||
child: new Text("Close"),
|
||||
child: new Text(
|
||||
"Close",
|
||||
style: TextStyle(color: primaryColor),
|
||||
),
|
||||
onPressed: () {
|
||||
Navigator.of(context).pop();
|
||||
},
|
||||
@@ -52,14 +55,16 @@ Future<void> showConfirmDialog(
|
||||
crossAxisAlignment: CrossAxisAlignment.center,
|
||||
children: <Widget>[
|
||||
TextButton(
|
||||
style:
|
||||
TextButton.styleFrom(backgroundColor: Colors.grey[300]),
|
||||
// color: Colors.grey[300],
|
||||
style: TextButton.styleFrom(
|
||||
backgroundColor: Colors.grey[300],
|
||||
shape: RoundedRectangleBorder(
|
||||
borderRadius: BorderRadius.circular(5.0))),
|
||||
child: Text(
|
||||
AppTranslations.of(context)!.text('btn.cancel'),
|
||||
style: Provider.of<LanguageModel>(context).isEng
|
||||
? TextStyle()
|
||||
: TextStyle(fontFamily: 'Myanmar3'),
|
||||
? TextStyle(color: primaryColor)
|
||||
: TextStyle(
|
||||
fontFamily: 'Myanmar3', color: primaryColor),
|
||||
),
|
||||
onPressed: () {
|
||||
Navigator.of(context).pop();
|
||||
@@ -68,8 +73,10 @@ Future<void> showConfirmDialog(
|
||||
width: 0,
|
||||
),
|
||||
TextButton(
|
||||
style: TextButton.styleFrom(backgroundColor: primaryColor),
|
||||
// color: primaryColor,
|
||||
style: TextButton.styleFrom(
|
||||
backgroundColor: primaryColor,
|
||||
shape: RoundedRectangleBorder(
|
||||
borderRadius: BorderRadius.circular(5.0))),
|
||||
child: Text(AppTranslations.of(context)!.text('btn.ok'),
|
||||
style: Provider.of<LanguageModel>(context).isEng
|
||||
? TextStyle(
|
||||
@@ -374,7 +381,8 @@ String getLocalString(BuildContext context, String key) {
|
||||
}
|
||||
|
||||
void showToast(GlobalKey key, String text) {
|
||||
final ScaffoldMessengerState scaffold = key.currentState as ScaffoldMessengerState;
|
||||
final ScaffoldMessengerState scaffold =
|
||||
key.currentState as ScaffoldMessengerState;
|
||||
scaffold.showSnackBar(
|
||||
SnackBar(
|
||||
content: Text(text),
|
||||
|
||||
@@ -3,6 +3,7 @@ import 'package:fcs/helpers/theme.dart';
|
||||
import 'package:fcs/pages/market/model/market_model.dart';
|
||||
import 'package:fcs/pages/main/util.dart';
|
||||
import 'package:fcs/pages/widgets/input_text.dart';
|
||||
import 'package:fcs/pages/widgets/local_app_bar.dart';
|
||||
import 'package:fcs/pages/widgets/local_text.dart';
|
||||
import 'package:fcs/pages/widgets/progress.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
@@ -58,22 +59,11 @@ class _MarketEditorState extends State<MarketEditor> {
|
||||
return LocalProgress(
|
||||
inAsyncCall: _isLoading,
|
||||
child: Scaffold(
|
||||
appBar: AppBar(
|
||||
centerTitle: true,
|
||||
leading: new IconButton(
|
||||
icon:
|
||||
new Icon(CupertinoIcons.back, color: primaryColor, size: 30),
|
||||
onPressed: () => Navigator.of(context).pop(),
|
||||
),
|
||||
shadowColor: Colors.transparent,
|
||||
backgroundColor: Colors.white,
|
||||
title: LocalText(
|
||||
context,
|
||||
"market.edit.title",
|
||||
fontSize: 20,
|
||||
color: primaryColor,
|
||||
),
|
||||
),
|
||||
appBar: LocalAppBar(
|
||||
labelKey: 'market.edit.title',
|
||||
backgroundColor: Colors.white,
|
||||
labelColor: primaryColor,
|
||||
arrowColor: primaryColor),
|
||||
body: Padding(
|
||||
padding: const EdgeInsets.only(left: 12.0, right: 12),
|
||||
child: ListView(
|
||||
|
||||
@@ -1,265 +0,0 @@
|
||||
import 'package:fcs/domain/entities/market.dart';
|
||||
import 'package:fcs/domain/entities/package.dart';
|
||||
import 'package:fcs/helpers/theme.dart';
|
||||
import 'package:fcs/pages/main/util.dart';
|
||||
import 'package:fcs/pages/market/market_editor.dart';
|
||||
import 'package:fcs/pages/market/model/market_model.dart';
|
||||
import 'package:fcs/pages/package/tracking_id_page.dart';
|
||||
import 'package:fcs/pages/widgets/display_text.dart';
|
||||
import 'package:fcs/pages/widgets/input_text.dart';
|
||||
import 'package:fcs/pages/widgets/local_text.dart';
|
||||
import 'package:fcs/pages/widgets/multi_img_controller.dart';
|
||||
import 'package:fcs/pages/widgets/multi_img_file.dart';
|
||||
import 'package:fcs/pages/widgets/progress.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_vector_icons/flutter_vector_icons.dart';
|
||||
import 'package:intl/intl.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
class PackageEditorPage extends StatefulWidget {
|
||||
final Package? package;
|
||||
PackageEditorPage({this.package});
|
||||
|
||||
@override
|
||||
_PackageEditorPageState createState() => _PackageEditorPageState();
|
||||
}
|
||||
|
||||
class _PackageEditorPageState extends State<PackageEditorPage> {
|
||||
TextEditingController _remarkCtl = new TextEditingController();
|
||||
TextEditingController _descCtl = new TextEditingController();
|
||||
|
||||
Package? _package;
|
||||
bool _isLoading = false;
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
_package = widget.package!;
|
||||
selectedMarket = _package!.market;
|
||||
_descCtl.text = _package!.desc!;
|
||||
_remarkCtl.text = _package!.remark!;
|
||||
multiImgController.setImageUrls = _package!.photoUrls;
|
||||
}
|
||||
|
||||
final DateFormat dateFormat = DateFormat("d MMM yyyy");
|
||||
|
||||
bool isNew = false;
|
||||
MultiImgController multiImgController = MultiImgController();
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final trackingIdBox = DisplayText(
|
||||
text: _package != null ? _package!.trackingID : "",
|
||||
labelTextKey: "package.tracking.id",
|
||||
iconData: MaterialCommunityIcons.barcode_scan,
|
||||
);
|
||||
final statusBox = DisplayText(
|
||||
text: _package != null ? _package!.status : "",
|
||||
labelTextKey: "package.edit.status",
|
||||
iconData: AntDesign.exclamationcircleo,
|
||||
);
|
||||
final customerNameBox = DisplayText(
|
||||
text: _package != null ? _package!.userName : "",
|
||||
labelTextKey: "package.create.name",
|
||||
iconData: Icons.perm_identity,
|
||||
);
|
||||
final completeProcessingBtn = fcsButton(
|
||||
context,
|
||||
getLocalString(context, 'package.edit.complete.process.btn'),
|
||||
callack: _completeProcessing,
|
||||
);
|
||||
final descBox = InputText(
|
||||
labelTextKey: 'package.edit.desc',
|
||||
iconData: MaterialCommunityIcons.message_text_outline,
|
||||
controller: _descCtl);
|
||||
final remarkBox = InputText(
|
||||
labelTextKey: 'package.edit.remark',
|
||||
iconData: Entypo.new_message,
|
||||
controller: _remarkCtl);
|
||||
|
||||
final img = MultiImageFile(
|
||||
enabled: true,
|
||||
controller: multiImgController,
|
||||
title: "Receipt File",
|
||||
);
|
||||
return LocalProgress(
|
||||
inAsyncCall: _isLoading,
|
||||
child: Scaffold(
|
||||
appBar: AppBar(
|
||||
centerTitle: true,
|
||||
leading: new IconButton(
|
||||
icon: new Icon(CupertinoIcons.back, color: primaryColor, size: 30),
|
||||
onPressed: () {
|
||||
showConfirmDialog(context, "back.button_confirm", () {
|
||||
Navigator.of(context).pop();
|
||||
});
|
||||
},
|
||||
),
|
||||
shadowColor: Colors.transparent,
|
||||
backgroundColor: Colors.white,
|
||||
title: LocalText(
|
||||
context,
|
||||
"package.edit.title",
|
||||
fontSize: 20,
|
||||
color: primaryColor,
|
||||
),
|
||||
actions: [
|
||||
IconButton(
|
||||
icon: Icon(Icons.delete, color: primaryColor),
|
||||
onPressed: _delete,
|
||||
)
|
||||
],
|
||||
),
|
||||
body: Padding(
|
||||
padding: const EdgeInsets.all(8.0),
|
||||
child: ListView(
|
||||
children: [
|
||||
trackingIdBox,
|
||||
customerNameBox,
|
||||
statusBox,
|
||||
Divider(),
|
||||
Center(
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.all(8.0),
|
||||
child: LocalText(
|
||||
context,
|
||||
"package.edit.procseeing",
|
||||
color: primaryColor,
|
||||
fontSize: 16,
|
||||
fontWeight: FontWeight.w700,
|
||||
),
|
||||
),
|
||||
),
|
||||
Padding(
|
||||
padding: const EdgeInsets.only(left: 18.0, right: 10),
|
||||
child: Column(
|
||||
children: [
|
||||
marketDropdown(),
|
||||
descBox,
|
||||
remarkBox,
|
||||
img,
|
||||
],
|
||||
),
|
||||
),
|
||||
completeProcessingBtn,
|
||||
SizedBox(
|
||||
height: 20,
|
||||
)
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
String? selectedMarket;
|
||||
Widget marketDropdown() {
|
||||
List<Market> _markets = Provider.of<MarketModel>(context).markets;
|
||||
List<String?> markets = _markets.map((e) => e.name).toList();
|
||||
markets.insert(0, MANAGE_MARKET);
|
||||
if (!markets.contains(selectedMarket)) {
|
||||
markets.insert(0, selectedMarket!);
|
||||
}
|
||||
|
||||
return Row(
|
||||
children: [
|
||||
Padding(
|
||||
padding: const EdgeInsets.only(right: 18.0),
|
||||
child: LocalText(
|
||||
context,
|
||||
"package.create.market",
|
||||
color: primaryColor,
|
||||
fontSize: 16,
|
||||
),
|
||||
),
|
||||
Container(
|
||||
width: 150,
|
||||
child: DropdownButton<String>(
|
||||
value: selectedMarket,
|
||||
style: TextStyle(color: Colors.black, fontSize: 14),
|
||||
underline: Container(
|
||||
height: 1,
|
||||
color: Colors.grey,
|
||||
),
|
||||
onChanged: (String? newValue) {
|
||||
setState(() {
|
||||
if (newValue == MANAGE_MARKET) {
|
||||
selectedMarket = null;
|
||||
_manageMarket();
|
||||
return;
|
||||
}
|
||||
selectedMarket = newValue;
|
||||
});
|
||||
},
|
||||
isExpanded: true,
|
||||
items: markets.map<DropdownMenuItem<String>>((String? value) {
|
||||
return DropdownMenuItem<String>(
|
||||
value: value,
|
||||
child: Text(value ?? "",
|
||||
overflow: TextOverflow.ellipsis,
|
||||
style: TextStyle(
|
||||
color: value == MANAGE_MARKET
|
||||
? secondaryColor
|
||||
: primaryColor)),
|
||||
);
|
||||
}).toList(),
|
||||
),
|
||||
),
|
||||
],
|
||||
);
|
||||
}
|
||||
|
||||
_manageMarket() {
|
||||
Navigator.push<Package>(
|
||||
context,
|
||||
CupertinoPageRoute(builder: (context) => MarketEditor()),
|
||||
);
|
||||
}
|
||||
|
||||
_completeProcessing() async {
|
||||
if (_descCtl.text == "") {
|
||||
showMsgDialog(context, "Error", "Expected some description");
|
||||
return;
|
||||
}
|
||||
setState(() {
|
||||
_isLoading = true;
|
||||
});
|
||||
|
||||
try {
|
||||
_package!.desc = _descCtl.text;
|
||||
_package!.remark = _remarkCtl.text;
|
||||
_package!.market = selectedMarket!;
|
||||
// await packageModel.completeProcessing(_package,
|
||||
// multiImgController.getAddedFile, multiImgController.getDeletedUrl);
|
||||
Navigator.pop(context);
|
||||
} catch (e) {
|
||||
showMsgDialog(context, "Error", e.toString());
|
||||
} finally {
|
||||
setState(() {
|
||||
_isLoading = false;
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
_delete() {
|
||||
showConfirmDialog(context, "package.delete.confirm", _deletePackage);
|
||||
}
|
||||
|
||||
_deletePackage() async {
|
||||
setState(() {
|
||||
_isLoading = true;
|
||||
});
|
||||
|
||||
try {
|
||||
// await packageModel.deletePackage(_package);
|
||||
Navigator.pop<bool>(context, true);
|
||||
} catch (e) {
|
||||
showMsgDialog(context, "Error", e.toString());
|
||||
} finally {
|
||||
setState(() {
|
||||
_isLoading = false;
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -155,6 +155,7 @@ class _PackageInfoState extends State<PackageInfo> {
|
||||
),
|
||||
),
|
||||
body: Card(
|
||||
elevation: 0,
|
||||
child: Column(
|
||||
children: <Widget>[
|
||||
Expanded(
|
||||
@@ -177,9 +178,12 @@ class _PackageInfoState extends State<PackageInfo> {
|
||||
widget.isSearchResult ? Container() : deliveryAddressBox,
|
||||
widget.isSearchResult
|
||||
? Container()
|
||||
: StatusTree(
|
||||
shipmentHistory: _package!.shipmentHistory,
|
||||
currentStatus: _package!.status),
|
||||
: Padding(
|
||||
padding: const EdgeInsets.only(top: 15),
|
||||
child: StatusTree(
|
||||
shipmentHistory: _package!.shipmentHistory,
|
||||
currentStatus: _package!.status),
|
||||
),
|
||||
SizedBox(
|
||||
height: 20,
|
||||
)
|
||||
|
||||
@@ -4,9 +4,9 @@ import 'package:fcs/pages/package/model/package_model.dart';
|
||||
import 'package:fcs/pages/package/package_info.dart';
|
||||
import 'package:fcs/pages/package/package_list_row.dart';
|
||||
import 'package:fcs/pages/package_search/package_serach.dart';
|
||||
import 'package:fcs/pages/widgets/local_app_bar.dart';
|
||||
import 'package:fcs/pages/widgets/local_popup_menu_button.dart';
|
||||
import 'package:fcs/pages/widgets/local_popupmenu.dart';
|
||||
import 'package:fcs/pages/widgets/local_text.dart';
|
||||
import 'package:fcs/pages/widgets/progress.dart';
|
||||
import 'package:fcs/pagination/paginator_listview.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
@@ -55,20 +55,9 @@ class _PackageListState extends State<PackageList> {
|
||||
return LocalProgress(
|
||||
inAsyncCall: _isLoading,
|
||||
child: Scaffold(
|
||||
appBar: AppBar(
|
||||
centerTitle: true,
|
||||
leading: new IconButton(
|
||||
icon: new Icon(CupertinoIcons.back),
|
||||
onPressed: () => Navigator.of(context).pop(),
|
||||
),
|
||||
backgroundColor: primaryColor,
|
||||
title: LocalText(
|
||||
context,
|
||||
"package.title",
|
||||
fontSize: 20,
|
||||
color: Colors.white,
|
||||
),
|
||||
actions: <Widget>[
|
||||
appBar: LocalAppBar(
|
||||
labelKey: 'package.title',
|
||||
actions: [
|
||||
widget.forCustomer
|
||||
? Container()
|
||||
: IconButton(
|
||||
@@ -78,8 +67,7 @@ class _PackageListState extends State<PackageList> {
|
||||
),
|
||||
iconSize: 30,
|
||||
onPressed: () => searchPackage(context,
|
||||
callbackPackageSelect: _searchCallback),
|
||||
),
|
||||
callbackPackageSelect: _searchCallback)),
|
||||
popupMenu
|
||||
],
|
||||
),
|
||||
|
||||
@@ -3,6 +3,7 @@ import 'package:fcs/helpers/theme.dart';
|
||||
import 'package:fcs/pages/package/model/package_model.dart';
|
||||
import 'package:fcs/pages/package/package_list_row.dart';
|
||||
import 'package:fcs/pages/widgets/barcode_scanner.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_vector_icons/flutter_vector_icons.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
@@ -28,13 +29,15 @@ class PackageSearchDelegate extends SearchDelegate<Package> {
|
||||
final ThemeData theme = Theme.of(context);
|
||||
return theme.copyWith(
|
||||
appBarTheme: AppBarTheme(color: primaryColor),
|
||||
iconButtonTheme: IconButtonThemeData(
|
||||
style: ButtonStyle(
|
||||
iconColor: MaterialStateProperty.all<Color>(Colors.white))),
|
||||
inputDecorationTheme: InputDecorationTheme(
|
||||
border: InputBorder.none,
|
||||
hintStyle: TextStyle(
|
||||
color: theme.primaryTextTheme.caption?.color, fontSize: 14)),
|
||||
hintStyle: TextStyle(color: Colors.grey, fontSize: 14)),
|
||||
textTheme: TextTheme(
|
||||
headline1: TextStyle(
|
||||
color: theme.primaryTextTheme.headline1?.color,
|
||||
displayLarge: TextStyle(
|
||||
color: theme.primaryTextTheme.displayLarge?.color,
|
||||
fontSize: 16,
|
||||
backgroundColor: primaryColor)),
|
||||
primaryColor: primaryColor,
|
||||
@@ -59,7 +62,7 @@ class PackageSearchDelegate extends SearchDelegate<Package> {
|
||||
@override
|
||||
Widget buildLeading(BuildContext context) {
|
||||
return IconButton(
|
||||
icon: Icon(Icons.arrow_back),
|
||||
icon: Icon(CupertinoIcons.back),
|
||||
onPressed: () => close(context, new Package()),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -3,9 +3,8 @@ import 'package:fcs/helpers/theme.dart';
|
||||
import 'package:fcs/pages/payment_methods/model/payment_method_model.dart';
|
||||
import 'package:fcs/pages/main/util.dart';
|
||||
import 'package:fcs/pages/widgets/input_text.dart';
|
||||
import 'package:fcs/pages/widgets/local_text.dart';
|
||||
import 'package:fcs/pages/widgets/local_app_bar.dart';
|
||||
import 'package:fcs/pages/widgets/progress.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_vector_icons/flutter_vector_icons.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
@@ -55,28 +54,20 @@ class _PaymentMethodEditorState extends State<PaymentMethodEditor> {
|
||||
inAsyncCall: _isLoading,
|
||||
child: Scaffold(
|
||||
backgroundColor: Colors.white,
|
||||
appBar: AppBar(
|
||||
centerTitle: true,
|
||||
leading: new IconButton(
|
||||
icon: new Icon(CupertinoIcons.back, color: primaryColor),
|
||||
onPressed: () {
|
||||
if (isDataChanged()) {
|
||||
showConfirmDialog(context, "back.button_confirm", () {
|
||||
Navigator.of(context).pop();
|
||||
});
|
||||
} else {
|
||||
Navigator.of(context).pop();
|
||||
}
|
||||
},
|
||||
),
|
||||
title: LocalText(
|
||||
context,
|
||||
isNew ? "pm.form.new" : "pm.update",
|
||||
fontSize: 20,
|
||||
color: primaryColor,
|
||||
),
|
||||
shadowColor: Colors.transparent,
|
||||
appBar: LocalAppBar(
|
||||
labelKey: isNew ? "pm.form.new" : "pm.update",
|
||||
backgroundColor: Colors.white,
|
||||
labelColor: primaryColor,
|
||||
arrowColor: primaryColor,
|
||||
onBack: () {
|
||||
if (isDataChanged()) {
|
||||
showConfirmDialog(context, "back.button_confirm", () {
|
||||
Navigator.of(context).pop();
|
||||
});
|
||||
} else {
|
||||
Navigator.of(context).pop();
|
||||
}
|
||||
},
|
||||
actions: <Widget>[
|
||||
isNew
|
||||
? Container()
|
||||
|
||||
@@ -5,6 +5,7 @@ import 'package:fcs/pages/payment_methods/model/payment_method_model.dart';
|
||||
import 'package:fcs/pages/payment_methods/payment_method_editor.dart';
|
||||
import 'package:fcs/pages/main/util.dart';
|
||||
import 'package:fcs/pages/widgets/display_text.dart';
|
||||
import 'package:fcs/pages/widgets/local_app_bar.dart';
|
||||
import 'package:fcs/pages/widgets/local_text.dart';
|
||||
import 'package:fcs/pages/widgets/progress.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
@@ -31,25 +32,11 @@ class _PaymentMethodPageState extends State<PaymentMethodPage> {
|
||||
inAsyncCall: _isLoading,
|
||||
child: Scaffold(
|
||||
key: key,
|
||||
appBar: AppBar(
|
||||
leading: new IconButton(
|
||||
icon: new Icon(
|
||||
CupertinoIcons.back,
|
||||
color: primaryColor,
|
||||
),
|
||||
onPressed: () => Navigator.of(context).pop(),
|
||||
),
|
||||
centerTitle: true,
|
||||
title: LocalText(
|
||||
context,
|
||||
"pm.title",
|
||||
fontSize: 20,
|
||||
color: primaryColor,
|
||||
),
|
||||
shadowColor: Colors.transparent,
|
||||
backgroundColor: Colors.white,
|
||||
actions: <Widget>[],
|
||||
),
|
||||
appBar: LocalAppBar(
|
||||
labelKey: "pm.title",
|
||||
backgroundColor: Colors.white,
|
||||
labelColor: primaryColor,
|
||||
arrowColor: primaryColor),
|
||||
body: Padding(
|
||||
padding: const EdgeInsets.all(12.0),
|
||||
child: ListView.separated(
|
||||
|
||||
@@ -10,6 +10,7 @@ import 'package:fcs/pages/pickup/model/pickup_model.dart';
|
||||
import 'package:fcs/pages/widgets/defalut_delivery_address.dart';
|
||||
import 'package:fcs/pages/widgets/display_text.dart';
|
||||
import 'package:fcs/pages/widgets/input_text.dart';
|
||||
import 'package:fcs/pages/widgets/local_app_bar.dart';
|
||||
import 'package:fcs/pages/widgets/local_text.dart';
|
||||
import 'package:fcs/pages/widgets/multi_img_controller.dart';
|
||||
import 'package:fcs/pages/widgets/multi_img_file.dart';
|
||||
@@ -131,28 +132,20 @@ class _PickupEditorState extends State<PickupEditor> {
|
||||
return LocalProgress(
|
||||
inAsyncCall: _isLoading,
|
||||
child: Scaffold(
|
||||
appBar: AppBar(
|
||||
centerTitle: true,
|
||||
leading: new IconButton(
|
||||
icon: new Icon(CupertinoIcons.back, color: primaryColor, size: 30),
|
||||
onPressed: () {
|
||||
if (isDataChanged()) {
|
||||
showConfirmDialog(context, "back.button_confirm", () {
|
||||
Navigator.of(context).pop();
|
||||
});
|
||||
} else {
|
||||
Navigator.of(context).pop();
|
||||
}
|
||||
},
|
||||
),
|
||||
shadowColor: Colors.transparent,
|
||||
appBar: LocalAppBar(
|
||||
labelKey: "pickup.edit.title",
|
||||
backgroundColor: Colors.white,
|
||||
title: LocalText(
|
||||
context,
|
||||
"pickup.edit.title",
|
||||
fontSize: 20,
|
||||
color: primaryColor,
|
||||
),
|
||||
labelColor: primaryColor,
|
||||
arrowColor: primaryColor,
|
||||
onBack: () {
|
||||
if (isDataChanged()) {
|
||||
showConfirmDialog(context, "back.button_confirm", () {
|
||||
Navigator.of(context).pop();
|
||||
});
|
||||
} else {
|
||||
Navigator.of(context).pop();
|
||||
}
|
||||
},
|
||||
),
|
||||
body: Padding(
|
||||
padding: const EdgeInsets.all(8.0),
|
||||
|
||||
@@ -5,7 +5,7 @@ import 'package:fcs/pages/pickup/model/pickup_model.dart';
|
||||
import 'package:fcs/pages/pickup/pickup_editor.dart';
|
||||
import 'package:fcs/pages/widgets/defalut_delivery_address.dart';
|
||||
import 'package:fcs/pages/widgets/display_text.dart';
|
||||
import 'package:fcs/pages/widgets/local_text.dart';
|
||||
import 'package:fcs/pages/widgets/local_app_bar.dart';
|
||||
import 'package:fcs/pages/widgets/multi_img_controller.dart';
|
||||
import 'package:fcs/pages/widgets/multi_img_file.dart';
|
||||
import 'package:fcs/pages/widgets/progress.dart';
|
||||
@@ -149,22 +149,13 @@ class _PickupInfoState extends State<PickupInfo> {
|
||||
return LocalProgress(
|
||||
inAsyncCall: _isLoading,
|
||||
child: Scaffold(
|
||||
appBar: AppBar(
|
||||
centerTitle: true,
|
||||
leading: new IconButton(
|
||||
icon: new Icon(CupertinoIcons.back, color: primaryColor, size: 30),
|
||||
onPressed: () => Navigator.of(context).pop(),
|
||||
),
|
||||
shadowColor: Colors.transparent,
|
||||
backgroundColor: Colors.white,
|
||||
title: LocalText(
|
||||
context,
|
||||
"pickup.info.title",
|
||||
fontSize: 20,
|
||||
color: primaryColor,
|
||||
),
|
||||
),
|
||||
appBar: LocalAppBar(
|
||||
labelKey: "pickup.info.title",
|
||||
backgroundColor: Colors.white,
|
||||
labelColor: primaryColor,
|
||||
arrowColor: primaryColor),
|
||||
body: Card(
|
||||
elevation: 0,
|
||||
child: Column(
|
||||
children: <Widget>[
|
||||
Expanded(
|
||||
|
||||
@@ -3,7 +3,7 @@ import 'package:fcs/helpers/theme.dart';
|
||||
import 'package:fcs/pages/pickup/pickup_info.dart';
|
||||
import 'package:fcs/pages/pickup/pickup_list_row.dart';
|
||||
import 'package:fcs/pages/pickup_search/pickup_serach.dart';
|
||||
import 'package:fcs/pages/widgets/local_text.dart';
|
||||
import 'package:fcs/pages/widgets/local_app_bar.dart';
|
||||
import 'package:fcs/pages/widgets/progress.dart';
|
||||
import 'package:fcs/pagination/paginator_listview.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
@@ -26,7 +26,6 @@ class _PickupListState extends State<PickupList> {
|
||||
super.initState();
|
||||
}
|
||||
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
var pickupModel = Provider.of<PickupModel>(context);
|
||||
@@ -35,29 +34,17 @@ class _PickupListState extends State<PickupList> {
|
||||
return LocalProgress(
|
||||
inAsyncCall: _isLoading,
|
||||
child: Scaffold(
|
||||
appBar: AppBar(
|
||||
centerTitle: true,
|
||||
leading: new IconButton(
|
||||
icon: new Icon(CupertinoIcons.back),
|
||||
onPressed: () => Navigator.of(context).pop(),
|
||||
),
|
||||
backgroundColor: primaryColor,
|
||||
title: LocalText(
|
||||
context,
|
||||
"pickup.title",
|
||||
fontSize: 20,
|
||||
color: Colors.white,
|
||||
),
|
||||
actions: <Widget>[
|
||||
appBar: LocalAppBar(
|
||||
labelKey: "pickup.title",
|
||||
actions: [
|
||||
IconButton(
|
||||
icon: Icon(
|
||||
Icons.search,
|
||||
color: Colors.white,
|
||||
),
|
||||
iconSize: 30,
|
||||
onPressed: () => searchPickup(context,
|
||||
callbackPickupSelect: _searchCallback),
|
||||
),
|
||||
icon: Icon(
|
||||
Icons.search,
|
||||
color: Colors.white,
|
||||
),
|
||||
iconSize: 30,
|
||||
onPressed: () => searchPickup(context,
|
||||
callbackPickupSelect: _searchCallback)),
|
||||
],
|
||||
),
|
||||
body: PaginatorListView<Pickup>(
|
||||
|
||||
@@ -4,6 +4,7 @@ import 'package:fcs/helpers/theme.dart';
|
||||
import 'package:fcs/pages/pickup/model/pickup_model.dart';
|
||||
import 'package:fcs/pages/pickup/pickup_list_row.dart';
|
||||
import 'package:fcs/pages/widgets/barcode_scanner.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_vector_icons/flutter_vector_icons.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
@@ -29,13 +30,15 @@ class PackageSearchDelegate extends SearchDelegate<Pickup> {
|
||||
final ThemeData theme = Theme.of(context);
|
||||
return theme.copyWith(
|
||||
appBarTheme: AppBarTheme(color: primaryColor),
|
||||
iconButtonTheme: IconButtonThemeData(
|
||||
style: ButtonStyle(
|
||||
iconColor: MaterialStateProperty.all<Color>(Colors.white))),
|
||||
inputDecorationTheme: InputDecorationTheme(
|
||||
border: InputBorder.none,
|
||||
hintStyle: TextStyle(
|
||||
color: theme.primaryTextTheme.caption?.color, fontSize: 14)),
|
||||
hintStyle: TextStyle(color: Colors.grey, fontSize: 14)),
|
||||
textTheme: TextTheme(
|
||||
headline1: TextStyle(
|
||||
color: theme.primaryTextTheme.headline1?.color,
|
||||
displayLarge: TextStyle(
|
||||
color: theme.primaryTextTheme.displayLarge?.color,
|
||||
fontSize: 16,
|
||||
backgroundColor: primaryColor)),
|
||||
primaryColor: primaryColor,
|
||||
@@ -60,7 +63,7 @@ class PackageSearchDelegate extends SearchDelegate<Pickup> {
|
||||
@override
|
||||
Widget buildLeading(BuildContext context) {
|
||||
return IconButton(
|
||||
icon: Icon(Icons.arrow_back),
|
||||
icon: Icon(CupertinoIcons.back),
|
||||
onPressed: () => close(context, new Pickup()),
|
||||
);
|
||||
}
|
||||
@@ -120,7 +123,8 @@ class PackageSearchDelegate extends SearchDelegate<Pickup> {
|
||||
child: Center(
|
||||
child: Opacity(
|
||||
opacity: 0.2,
|
||||
child: Icon(SimpleLineIcons.direction, size: 200, color: primaryColor)),
|
||||
child: Icon(SimpleLineIcons.direction,
|
||||
size: 200, color: primaryColor)),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -11,6 +11,7 @@ import 'package:fcs/pages/user_search/user_serach.dart';
|
||||
import 'package:fcs/pages/widgets/display_text.dart';
|
||||
import 'package:fcs/pages/widgets/fcs_id_icon.dart';
|
||||
import 'package:fcs/pages/widgets/input_text.dart';
|
||||
import 'package:fcs/pages/widgets/local_app_bar.dart';
|
||||
import 'package:fcs/pages/widgets/local_text.dart';
|
||||
import 'package:fcs/pages/widgets/multi_img_controller.dart';
|
||||
import 'package:fcs/pages/widgets/multi_img_file.dart';
|
||||
@@ -172,28 +173,20 @@ class _ProcessingEditEditorState extends State<ProcessingEditEditor> {
|
||||
return LocalProgress(
|
||||
inAsyncCall: _isLoading,
|
||||
child: Scaffold(
|
||||
appBar: AppBar(
|
||||
centerTitle: true,
|
||||
leading: new IconButton(
|
||||
icon: new Icon(CupertinoIcons.back, color: primaryColor, size: 30),
|
||||
onPressed: () {
|
||||
if (isDataChanged()) {
|
||||
showConfirmDialog(context, "back.button_confirm", () {
|
||||
Navigator.of(context).pop();
|
||||
});
|
||||
} else {
|
||||
Navigator.of(context).pop();
|
||||
}
|
||||
},
|
||||
),
|
||||
shadowColor: Colors.transparent,
|
||||
appBar: LocalAppBar(
|
||||
labelKey: "processing.edit.title",
|
||||
backgroundColor: Colors.white,
|
||||
title: LocalText(
|
||||
context,
|
||||
"processing.edit.title",
|
||||
fontSize: 20,
|
||||
color: primaryColor,
|
||||
),
|
||||
labelColor: primaryColor,
|
||||
arrowColor: primaryColor,
|
||||
onBack: () {
|
||||
if (isDataChanged()) {
|
||||
showConfirmDialog(context, "back.button_confirm", () {
|
||||
Navigator.of(context).pop();
|
||||
});
|
||||
} else {
|
||||
Navigator.of(context).pop();
|
||||
}
|
||||
},
|
||||
),
|
||||
body: Padding(
|
||||
padding: const EdgeInsets.all(8.0),
|
||||
@@ -337,7 +330,7 @@ class _ProcessingEditEditorState extends State<ProcessingEditEditor> {
|
||||
fcsID: _consignee!.fcsID,
|
||||
senderFCSID: _sender!.fcsID,
|
||||
market: selectedMarket,
|
||||
desc: _descCtl.text ,
|
||||
desc: _descCtl.text,
|
||||
remark: _remarkCtl.text,
|
||||
photoUrls: widget.package!.photoUrls);
|
||||
return widget.package!.isChangedForEditProcessing(_package) ||
|
||||
|
||||
@@ -7,7 +7,7 @@ import 'package:fcs/pages/package/package_info.dart';
|
||||
import 'package:fcs/pages/user_search/user_serach.dart';
|
||||
import 'package:fcs/pages/widgets/display_text.dart';
|
||||
import 'package:fcs/pages/widgets/fcs_id_icon.dart';
|
||||
import 'package:fcs/pages/widgets/local_text.dart';
|
||||
import 'package:fcs/pages/widgets/local_app_bar.dart';
|
||||
import 'package:fcs/pages/widgets/progress.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
@@ -177,23 +177,11 @@ class _ProcesingEditorState extends State<ProcesingEditor> {
|
||||
return LocalProgress(
|
||||
inAsyncCall: _isLoading,
|
||||
child: Scaffold(
|
||||
appBar: AppBar(
|
||||
centerTitle: true,
|
||||
leading: new IconButton(
|
||||
icon:
|
||||
new Icon(CupertinoIcons.back, color: primaryColor, size: 30),
|
||||
onPressed: () {
|
||||
Navigator.of(context).pop();
|
||||
},
|
||||
),
|
||||
shadowColor: Colors.transparent,
|
||||
appBar: LocalAppBar(
|
||||
labelKey: _isNew ? "processing.create" : "processing.update",
|
||||
backgroundColor: Colors.white,
|
||||
title: LocalText(
|
||||
context,
|
||||
_isNew ? "processing.create" : "processing.update",
|
||||
fontSize: 20,
|
||||
color: primaryColor,
|
||||
),
|
||||
labelColor: primaryColor,
|
||||
arrowColor: primaryColor,
|
||||
),
|
||||
body: Padding(
|
||||
padding: const EdgeInsets.only(left: 12.0, right: 12),
|
||||
|
||||
@@ -4,7 +4,7 @@ import 'package:fcs/pages/main/util.dart';
|
||||
import 'package:fcs/pages/package/model/package_model.dart';
|
||||
import 'package:fcs/pages/widgets/display_text.dart';
|
||||
import 'package:fcs/pages/widgets/fcs_id_icon.dart';
|
||||
import 'package:fcs/pages/widgets/local_text.dart';
|
||||
import 'package:fcs/pages/widgets/local_app_bar.dart';
|
||||
import 'package:fcs/pages/widgets/multi_img_controller.dart';
|
||||
import 'package:fcs/pages/widgets/multi_img_file.dart';
|
||||
import 'package:fcs/pages/widgets/progress.dart';
|
||||
@@ -131,32 +131,23 @@ class _ProcessingInfoState extends State<ProcessingInfo> {
|
||||
return LocalProgress(
|
||||
inAsyncCall: _isLoading,
|
||||
child: Scaffold(
|
||||
appBar: AppBar(
|
||||
centerTitle: true,
|
||||
leading: new IconButton(
|
||||
icon: new Icon(CupertinoIcons.back, color: primaryColor, size: 30),
|
||||
onPressed: () => Navigator.of(context).pop(),
|
||||
),
|
||||
shadowColor: Colors.transparent,
|
||||
backgroundColor: Colors.white,
|
||||
title: LocalText(
|
||||
context,
|
||||
"processing.info.title",
|
||||
fontSize: 20,
|
||||
color: primaryColor,
|
||||
),
|
||||
actions: <Widget>[
|
||||
IconButton(
|
||||
icon: Icon(Icons.delete, color: primaryColor),
|
||||
onPressed: _delete,
|
||||
),
|
||||
IconButton(
|
||||
icon: Icon(Icons.edit, color: primaryColor),
|
||||
onPressed: _gotoEditor,
|
||||
),
|
||||
],
|
||||
),
|
||||
appBar: LocalAppBar(
|
||||
labelKey: "processing.info.title",
|
||||
backgroundColor: Colors.white,
|
||||
labelColor: primaryColor,
|
||||
arrowColor: primaryColor,
|
||||
actions: [
|
||||
IconButton(
|
||||
icon: Icon(Icons.delete, color: primaryColor),
|
||||
onPressed: _delete,
|
||||
),
|
||||
IconButton(
|
||||
icon: Icon(Icons.edit, color: primaryColor),
|
||||
onPressed: _gotoEditor,
|
||||
),
|
||||
]),
|
||||
body: Card(
|
||||
elevation: 0,
|
||||
child: Column(
|
||||
children: <Widget>[
|
||||
Expanded(
|
||||
@@ -177,9 +168,7 @@ class _ProcessingInfoState extends State<ProcessingInfo> {
|
||||
StatusTree(
|
||||
shipmentHistory: _package!.shipmentHistory,
|
||||
currentStatus: _package!.status ?? ""),
|
||||
SizedBox(
|
||||
height: 20,
|
||||
)
|
||||
SizedBox(height: 20)
|
||||
]),
|
||||
)),
|
||||
],
|
||||
@@ -222,7 +211,7 @@ class _ProcessingInfoState extends State<ProcessingInfo> {
|
||||
PackageModel packageModel =
|
||||
Provider.of<PackageModel>(context, listen: false);
|
||||
Package? p = await packageModel.getPackage(_package!.id!);
|
||||
if(p == null)return;
|
||||
if (p == null) return;
|
||||
initPackage(p);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@ import 'package:fcs/domain/entities/package.dart';
|
||||
import 'package:fcs/helpers/theme.dart';
|
||||
import 'package:fcs/pages/package/model/package_model.dart';
|
||||
import 'package:fcs/pages/package_search/package_serach.dart';
|
||||
import 'package:fcs/pages/widgets/local_app_bar.dart';
|
||||
import 'package:fcs/pages/widgets/local_text.dart';
|
||||
import 'package:fcs/pages/widgets/progress.dart';
|
||||
import 'package:fcs/pagination/paginator_listview.dart';
|
||||
@@ -39,31 +40,16 @@ class _ProcessingListState extends State<ProcessingList> {
|
||||
return LocalProgress(
|
||||
inAsyncCall: _isLoading,
|
||||
child: Scaffold(
|
||||
appBar: AppBar(
|
||||
centerTitle: true,
|
||||
leading: new IconButton(
|
||||
icon: new Icon(CupertinoIcons.back),
|
||||
onPressed: () => Navigator.of(context).pop(),
|
||||
),
|
||||
backgroundColor: primaryColor,
|
||||
title: LocalText(
|
||||
context,
|
||||
"processing.title",
|
||||
fontSize: 20,
|
||||
color: Colors.white,
|
||||
),
|
||||
actions: <Widget>[
|
||||
IconButton(
|
||||
appBar: LocalAppBar(labelKey: "processing.title", actions: [
|
||||
IconButton(
|
||||
icon: Icon(
|
||||
Icons.search,
|
||||
color: Colors.white,
|
||||
),
|
||||
iconSize: 30,
|
||||
onPressed: () => searchPackage(context,
|
||||
callbackPackageSelect: _searchCallback),
|
||||
),
|
||||
],
|
||||
),
|
||||
callbackPackageSelect: _searchCallback))
|
||||
]),
|
||||
floatingActionButton: FloatingActionButton.extended(
|
||||
onPressed: () {
|
||||
_newProcessing();
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
import 'package:fcs/helpers/theme.dart';
|
||||
import 'package:fcs/pages/main/model/main_model.dart';
|
||||
import 'package:fcs/pages/widgets/local_text.dart';
|
||||
import 'package:fcs/pages/widgets/local_app_bar.dart';
|
||||
import 'package:fcs/pages/widgets/progress.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:fcs/pages/main/util.dart';
|
||||
@@ -41,27 +40,11 @@ class _ProfileCurrencyEditState extends State<ProfileCurrencyEdit> {
|
||||
return LocalProgress(
|
||||
inAsyncCall: _loading,
|
||||
child: Scaffold(
|
||||
appBar: AppBar(
|
||||
centerTitle: true,
|
||||
title: LocalText(
|
||||
context,
|
||||
"profile.edit.currency.title",
|
||||
fontSize: 20,
|
||||
color: primaryColor,
|
||||
),
|
||||
backgroundColor: Colors.white,
|
||||
shadowColor: Colors.transparent,
|
||||
leading: IconButton(
|
||||
icon: Icon(
|
||||
CupertinoIcons.back,
|
||||
size: 35,
|
||||
color: primaryColor,
|
||||
),
|
||||
onPressed: () {
|
||||
Navigator.of(context).pop();
|
||||
},
|
||||
),
|
||||
),
|
||||
appBar: LocalAppBar(
|
||||
labelKey: 'profile.edit.currency.title',
|
||||
backgroundColor: Colors.white,
|
||||
labelColor: primaryColor,
|
||||
arrowColor: primaryColor),
|
||||
body: Column(
|
||||
children: <Widget>[
|
||||
InkWell(
|
||||
@@ -75,10 +58,10 @@ class _ProfileCurrencyEditState extends State<ProfileCurrencyEdit> {
|
||||
value: Currency.USD,
|
||||
groupValue: _currency,
|
||||
onChanged: (Currency? value) {
|
||||
if(value != null)
|
||||
setState(() {
|
||||
_currency = value;
|
||||
});
|
||||
if (value != null)
|
||||
setState(() {
|
||||
_currency = value;
|
||||
});
|
||||
},
|
||||
),
|
||||
),
|
||||
@@ -94,10 +77,10 @@ class _ProfileCurrencyEditState extends State<ProfileCurrencyEdit> {
|
||||
value: Currency.MMK,
|
||||
groupValue: _currency,
|
||||
onChanged: (Currency? value) {
|
||||
if(value != null)
|
||||
setState(() {
|
||||
_currency = value;
|
||||
});
|
||||
if (value != null)
|
||||
setState(() {
|
||||
_currency = value;
|
||||
});
|
||||
},
|
||||
),
|
||||
),
|
||||
|
||||
@@ -2,9 +2,8 @@ import 'package:fcs/helpers/theme.dart';
|
||||
import 'package:fcs/localization/app_translations.dart';
|
||||
import 'package:fcs/pages/main/model/language_model.dart';
|
||||
import 'package:fcs/pages/main/model/main_model.dart';
|
||||
import 'package:fcs/pages/widgets/local_text.dart';
|
||||
import 'package:fcs/pages/widgets/local_app_bar.dart';
|
||||
import 'package:fcs/pages/widgets/progress.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:fcs/pages/main/util.dart';
|
||||
@@ -58,27 +57,11 @@ class _ProfileEditState extends State<ProfileEdit> {
|
||||
return LocalProgress(
|
||||
inAsyncCall: _loading,
|
||||
child: Scaffold(
|
||||
appBar: AppBar(
|
||||
centerTitle: true,
|
||||
title: LocalText(
|
||||
context,
|
||||
"profile.edit_title",
|
||||
fontSize: 20,
|
||||
color: primaryColor,
|
||||
),
|
||||
backgroundColor: Colors.white,
|
||||
shadowColor: Colors.transparent,
|
||||
leading: IconButton(
|
||||
icon: Icon(
|
||||
CupertinoIcons.back,
|
||||
size: 35,
|
||||
color: primaryColor,
|
||||
),
|
||||
onPressed: () {
|
||||
Navigator.of(context).pop();
|
||||
},
|
||||
),
|
||||
),
|
||||
appBar: LocalAppBar(
|
||||
labelKey: "profile.edit_title",
|
||||
backgroundColor: Colors.white,
|
||||
labelColor: primaryColor,
|
||||
arrowColor: primaryColor),
|
||||
body: Column(
|
||||
children: <Widget>[
|
||||
Expanded(child: name),
|
||||
|
||||
@@ -12,7 +12,7 @@ import 'package:fcs/pages/staff/model/staff_model.dart';
|
||||
import 'package:fcs/pages/widgets/defalut_delivery_address.dart';
|
||||
import 'package:fcs/pages/widgets/display_text.dart';
|
||||
import 'package:fcs/pages/widgets/fcs_id_icon.dart';
|
||||
import 'package:fcs/pages/widgets/local_text.dart';
|
||||
import 'package:fcs/pages/widgets/local_app_bar.dart';
|
||||
import 'package:fcs/pages/widgets/progress.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
@@ -128,25 +128,11 @@ class _ProfileState extends State<Profile> {
|
||||
inAsyncCall: _isLoading,
|
||||
child: Scaffold(
|
||||
key: key,
|
||||
appBar: AppBar(
|
||||
centerTitle: true,
|
||||
leading: IconButton(
|
||||
icon: Icon(
|
||||
CupertinoIcons.back,
|
||||
size: 35,
|
||||
color: primaryColor,
|
||||
),
|
||||
onPressed: () => Navigator.of(context).pop(),
|
||||
),
|
||||
title: LocalText(
|
||||
context,
|
||||
"profile.title",
|
||||
fontSize: 20,
|
||||
color: primaryColor,
|
||||
),
|
||||
shadowColor: Colors.transparent,
|
||||
backgroundColor: Colors.white,
|
||||
),
|
||||
appBar: LocalAppBar(
|
||||
labelKey: "profile.title",
|
||||
backgroundColor: Colors.white,
|
||||
labelColor: primaryColor,
|
||||
arrowColor: primaryColor),
|
||||
body: Padding(
|
||||
padding: const EdgeInsets.all(8.0),
|
||||
child: ListView(
|
||||
|
||||
@@ -1,10 +1,9 @@
|
||||
import 'package:fcs/domain/entities/cargo_type.dart';
|
||||
import 'package:fcs/helpers/theme.dart';
|
||||
import 'package:fcs/localization/app_translations.dart';
|
||||
import 'package:fcs/pages/main/util.dart';
|
||||
import 'package:fcs/pages/widgets/input_text.dart';
|
||||
import 'package:fcs/pages/widgets/local_app_bar.dart';
|
||||
import 'package:fcs/pages/widgets/progress.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
@@ -56,27 +55,25 @@ class _CargoEditorState extends State<CargoEditor> {
|
||||
return LocalProgress(
|
||||
inAsyncCall: _isLoading,
|
||||
child: Scaffold(
|
||||
appBar: AppBar(
|
||||
centerTitle: true,
|
||||
leading: new IconButton(
|
||||
icon: new Icon(CupertinoIcons.back),
|
||||
onPressed: () {
|
||||
if (isDataChanged()) {
|
||||
showConfirmDialog(context, "back.button_confirm", () {
|
||||
Navigator.of(context).pop();
|
||||
});
|
||||
} else {
|
||||
appBar: LocalAppBar(
|
||||
labelKey: "cargo.form.title",
|
||||
backgroundColor: Colors.white,
|
||||
labelColor: primaryColor,
|
||||
arrowColor: primaryColor,
|
||||
onBack: () {
|
||||
if (isDataChanged()) {
|
||||
showConfirmDialog(context, "back.button_confirm", () {
|
||||
Navigator.of(context).pop();
|
||||
}
|
||||
},
|
||||
),
|
||||
backgroundColor: primaryColor,
|
||||
title: Text(AppTranslations.of(context)!.text("cargo.form.title")),
|
||||
});
|
||||
} else {
|
||||
Navigator.of(context).pop();
|
||||
}
|
||||
},
|
||||
actions: [
|
||||
_isNew
|
||||
? Container()
|
||||
: IconButton(
|
||||
icon: Icon(Icons.delete),
|
||||
icon: Icon(Icons.delete, color: primaryColor),
|
||||
onPressed: _delete,
|
||||
)
|
||||
],
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import 'package:fcs/domain/entities/cargo_type.dart';
|
||||
import 'package:fcs/helpers/theme.dart';
|
||||
import 'package:fcs/pages/widgets/local_app_bar.dart';
|
||||
import 'package:fcs/pages/widgets/local_text.dart';
|
||||
import 'package:fcs/pages/widgets/progress.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
@@ -35,20 +36,7 @@ class _CargoTypeListState extends State<CargoTypeList> {
|
||||
return LocalProgress(
|
||||
inAsyncCall: _isLoading,
|
||||
child: Scaffold(
|
||||
appBar: AppBar(
|
||||
centerTitle: true,
|
||||
leading: new IconButton(
|
||||
icon: new Icon(CupertinoIcons.back),
|
||||
onPressed: () => Navigator.pop(context),
|
||||
),
|
||||
backgroundColor: primaryColor,
|
||||
title: LocalText(
|
||||
context,
|
||||
"cargo.form.title",
|
||||
fontSize: 20,
|
||||
color: Colors.white,
|
||||
),
|
||||
),
|
||||
appBar: LocalAppBar(labelKey: "cargo.form.title"),
|
||||
floatingActionButton: FloatingActionButton.extended(
|
||||
onPressed: () {
|
||||
Navigator.of(context).push(
|
||||
|
||||
@@ -1,10 +1,9 @@
|
||||
import 'package:fcs/domain/entities/cargo_type.dart';
|
||||
import 'package:fcs/helpers/theme.dart';
|
||||
import 'package:fcs/localization/app_translations.dart';
|
||||
import 'package:fcs/pages/main/util.dart';
|
||||
import 'package:fcs/pages/widgets/input_text.dart';
|
||||
import 'package:fcs/pages/widgets/local_app_bar.dart';
|
||||
import 'package:fcs/pages/widgets/progress.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
@@ -64,30 +63,25 @@ class _CustomEditorState extends State<CustomEditor> {
|
||||
return LocalProgress(
|
||||
inAsyncCall: _isLoading,
|
||||
child: Scaffold(
|
||||
appBar: AppBar(
|
||||
centerTitle: true,
|
||||
leading: new IconButton(
|
||||
icon: new Icon(
|
||||
CupertinoIcons.back,
|
||||
),
|
||||
onPressed: () {
|
||||
if (isDataChanged()) {
|
||||
showConfirmDialog(context, "back.button_confirm", () {
|
||||
Navigator.of(context).pop();
|
||||
});
|
||||
} else {
|
||||
appBar: LocalAppBar(
|
||||
labelKey: 'rate.custom.form.title',
|
||||
backgroundColor: Colors.white,
|
||||
arrowColor: primaryColor,
|
||||
labelColor: primaryColor,
|
||||
onBack: () {
|
||||
if (isDataChanged()) {
|
||||
showConfirmDialog(context, "back.button_confirm", () {
|
||||
Navigator.of(context).pop();
|
||||
}
|
||||
},
|
||||
),
|
||||
backgroundColor: primaryColor,
|
||||
title:
|
||||
Text(AppTranslations.of(context)!.text("rate.custom.form.title")),
|
||||
});
|
||||
} else {
|
||||
Navigator.of(context).pop();
|
||||
}
|
||||
},
|
||||
actions: [
|
||||
_isNew
|
||||
? Container()
|
||||
: IconButton(
|
||||
icon: Icon(Icons.delete),
|
||||
icon: Icon(Icons.delete, color: primaryColor),
|
||||
onPressed: _delete,
|
||||
)
|
||||
],
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import 'package:fcs/domain/entities/cargo_type.dart';
|
||||
import 'package:fcs/helpers/theme.dart';
|
||||
import 'package:fcs/pages/rates/custom_editor.dart';
|
||||
import 'package:fcs/pages/widgets/local_app_bar.dart';
|
||||
import 'package:fcs/pages/widgets/local_text.dart';
|
||||
import 'package:fcs/pages/widgets/progress.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
@@ -39,20 +40,7 @@ class _CustomListState extends State<CustomList> {
|
||||
return LocalProgress(
|
||||
inAsyncCall: _isLoading,
|
||||
child: Scaffold(
|
||||
appBar: AppBar(
|
||||
centerTitle: true,
|
||||
leading: new IconButton(
|
||||
icon: new Icon(CupertinoIcons.back),
|
||||
onPressed: () => Navigator.pop(context),
|
||||
),
|
||||
backgroundColor: primaryColor,
|
||||
title: LocalText(
|
||||
context,
|
||||
"rate.custom_duty.title",
|
||||
fontSize: 20,
|
||||
color: Colors.white,
|
||||
),
|
||||
),
|
||||
appBar: LocalAppBar(labelKey: 'rate.custom_duty.title'),
|
||||
floatingActionButton: FloatingActionButton.extended(
|
||||
onPressed: () {
|
||||
Navigator.of(context).push(
|
||||
@@ -81,8 +69,9 @@ class _CustomListState extends State<CustomList> {
|
||||
},
|
||||
child: Container(
|
||||
child: _row(
|
||||
custom.name??"",
|
||||
"Custom Fee \$ " + custom.customDutyFee.toStringAsFixed(2),
|
||||
custom.name ?? "",
|
||||
"Custom Fee \$ " +
|
||||
custom.customDutyFee.toStringAsFixed(2),
|
||||
// ignore: unnecessary_null_comparison
|
||||
custom.rate == null
|
||||
? ""
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import 'package:fcs/domain/entities/discount_by_weight.dart';
|
||||
import 'package:fcs/helpers/theme.dart';
|
||||
import 'package:fcs/pages/rates/discount_by_weight_editor.dart';
|
||||
import 'package:fcs/pages/widgets/local_app_bar.dart';
|
||||
import 'package:fcs/pages/widgets/local_text.dart';
|
||||
import 'package:fcs/pages/widgets/progress.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
@@ -35,20 +36,7 @@ class _DiscountByWeightListState extends State<DiscountByWeightList> {
|
||||
return LocalProgress(
|
||||
inAsyncCall: _isLoading,
|
||||
child: Scaffold(
|
||||
appBar: AppBar(
|
||||
centerTitle: true,
|
||||
leading: new IconButton(
|
||||
icon: new Icon(CupertinoIcons.back),
|
||||
onPressed: () => Navigator.pop(context),
|
||||
),
|
||||
backgroundColor: primaryColor,
|
||||
title: LocalText(
|
||||
context,
|
||||
"rate.discount_by_weight",
|
||||
fontSize: 20,
|
||||
color: Colors.white,
|
||||
),
|
||||
),
|
||||
appBar: LocalAppBar(labelKey: 'rate.discount_by_weight'),
|
||||
floatingActionButton: FloatingActionButton.extended(
|
||||
onPressed: () {
|
||||
Navigator.of(context).push(CupertinoPageRoute(
|
||||
@@ -86,7 +74,7 @@ class _DiscountByWeightListState extends State<DiscountByWeightList> {
|
||||
|
||||
_row(String desc, String price) {
|
||||
return Container(
|
||||
padding: EdgeInsets.only(left: 25, top: 5, bottom: 5),
|
||||
padding: EdgeInsets.only(left: 25, top: 8, bottom: 8),
|
||||
child: Row(
|
||||
children: <Widget>[
|
||||
Text('$desc ', style: TextStyle(fontSize: 15)),
|
||||
|
||||
@@ -1,11 +1,10 @@
|
||||
import 'package:fcs/domain/entities/discount_by_weight.dart';
|
||||
import 'package:fcs/helpers/theme.dart';
|
||||
import 'package:fcs/localization/app_translations.dart';
|
||||
import 'package:fcs/pages/main/util.dart';
|
||||
import 'package:fcs/pages/rates/model/shipment_rate_model.dart';
|
||||
import 'package:fcs/pages/widgets/input_text.dart';
|
||||
import 'package:fcs/pages/widgets/local_app_bar.dart';
|
||||
import 'package:fcs/pages/widgets/progress.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
@@ -58,27 +57,25 @@ class _DiscountByWeightEditorState extends State<DiscountByWeightEditor> {
|
||||
return LocalProgress(
|
||||
inAsyncCall: _isLoading,
|
||||
child: Scaffold(
|
||||
appBar: AppBar(
|
||||
centerTitle: true,
|
||||
leading: new IconButton(
|
||||
icon: new Icon(CupertinoIcons.back),
|
||||
onPressed: () {
|
||||
if (isDataChanged()) {
|
||||
showConfirmDialog(context, "back.button_confirm", () {
|
||||
Navigator.of(context).pop();
|
||||
});
|
||||
} else {
|
||||
appBar: LocalAppBar(
|
||||
labelKey: 'discount.new',
|
||||
backgroundColor: Colors.white,
|
||||
labelColor: primaryColor,
|
||||
arrowColor: primaryColor,
|
||||
onBack: () {
|
||||
if (isDataChanged()) {
|
||||
showConfirmDialog(context, "back.button_confirm", () {
|
||||
Navigator.of(context).pop();
|
||||
}
|
||||
},
|
||||
),
|
||||
backgroundColor: primaryColor,
|
||||
title: Text(AppTranslations.of(context)!.text("discount.new")),
|
||||
});
|
||||
} else {
|
||||
Navigator.of(context).pop();
|
||||
}
|
||||
},
|
||||
actions: [
|
||||
_isNew
|
||||
? Container()
|
||||
: IconButton(
|
||||
icon: Icon(Icons.delete),
|
||||
icon: Icon(Icons.delete, color: primaryColor),
|
||||
onPressed: _delete,
|
||||
)
|
||||
],
|
||||
|
||||
@@ -6,6 +6,7 @@ import 'package:fcs/pages/main/model/main_model.dart';
|
||||
import 'package:fcs/pages/rates/cargo_type_list.dart';
|
||||
import 'package:fcs/pages/rates/custom_list.dart';
|
||||
import 'package:fcs/pages/rates/model/shipment_rate_model.dart';
|
||||
import 'package:fcs/pages/widgets/local_app_bar.dart';
|
||||
import 'package:fcs/pages/widgets/local_text.dart';
|
||||
import 'package:fcs/pages/widgets/progress.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
@@ -46,33 +47,23 @@ class _ShipmentRatesState extends State<ShipmentRates> {
|
||||
return LocalProgress(
|
||||
inAsyncCall: _isLoading,
|
||||
child: Scaffold(
|
||||
appBar: AppBar(
|
||||
centerTitle: true,
|
||||
leading: new IconButton(
|
||||
icon: new Icon(CupertinoIcons.back, color: primaryColor),
|
||||
onPressed: () => Navigator.of(context).pop(),
|
||||
),
|
||||
backgroundColor: Colors.white,
|
||||
shadowColor: Colors.transparent,
|
||||
title: LocalText(context, 'rate.title',
|
||||
color: primaryColor, fontSize: 20),
|
||||
actions: isEditable
|
||||
? [
|
||||
IconButton(
|
||||
onPressed: () => Navigator.of(context).push(
|
||||
CupertinoPageRoute(
|
||||
builder: (context) => ShipmentRatesEdit())),
|
||||
icon: Icon(
|
||||
Icons.edit,
|
||||
color: primaryColor,
|
||||
))
|
||||
]
|
||||
: [],
|
||||
),
|
||||
appBar: LocalAppBar(
|
||||
labelKey: "rate.title",
|
||||
backgroundColor: Colors.white,
|
||||
labelColor: primaryColor,
|
||||
arrowColor: primaryColor,
|
||||
actions: isEditable
|
||||
? [
|
||||
IconButton(
|
||||
onPressed: () => Navigator.of(context).push(
|
||||
CupertinoPageRoute(
|
||||
builder: (context) => ShipmentRatesEdit())),
|
||||
icon: Icon(Icons.edit, color: primaryColor))
|
||||
]
|
||||
: []),
|
||||
body: Padding(
|
||||
padding: const EdgeInsets.all(8.0),
|
||||
child: ListView(
|
||||
// crossAxisAlignment: CrossAxisAlignment.center,
|
||||
children: <Widget>[
|
||||
fcsButton(context, getLocalString(context, "rate.cal.title"),
|
||||
callack: () {
|
||||
|
||||
@@ -6,6 +6,7 @@ import 'package:fcs/pages/rates/model/shipment_rate_model.dart';
|
||||
import 'package:fcs/pages/widgets/display_text.dart';
|
||||
import 'package:fcs/pages/widgets/input_text.dart';
|
||||
import 'package:fcs/pages/widgets/length_picker.dart';
|
||||
import 'package:fcs/pages/widgets/local_app_bar.dart';
|
||||
import 'package:fcs/pages/widgets/local_dropdown.dart';
|
||||
import 'package:fcs/pages/widgets/local_text.dart';
|
||||
import 'package:fcs/pages/widgets/progress.dart';
|
||||
@@ -53,9 +54,9 @@ class _ShipmentRatesCalState extends State<ShipmentRatesCal> {
|
||||
_calShipmentWeight() {
|
||||
Rate rate = Provider.of<ShipmentRateModel>(context, listen: false).rate;
|
||||
|
||||
double l = double.parse(_lengthController.text);
|
||||
double w = double.parse(_widthController.text);
|
||||
double h = double.parse(_heightController.text);
|
||||
double l = double.tryParse(_lengthController.text) ?? 0;
|
||||
double w = double.tryParse(_widthController.text) ?? 0;
|
||||
double h = double.tryParse(_heightController.text) ?? 0;
|
||||
_cargoType.weight = double.tryParse(_actualWeightCtl.text) ?? 0;
|
||||
Carton box =
|
||||
Carton(cargoTypes: [_cargoType], length: l, width: w, height: h);
|
||||
@@ -137,19 +138,11 @@ class _ShipmentRatesCalState extends State<ShipmentRatesCal> {
|
||||
return LocalProgress(
|
||||
inAsyncCall: _isLoading,
|
||||
child: Scaffold(
|
||||
appBar: AppBar(
|
||||
centerTitle: true,
|
||||
leading: new IconButton(
|
||||
icon: new Icon(CupertinoIcons.back, color: primaryColor),
|
||||
onPressed: () {
|
||||
Navigator.of(context).pop();
|
||||
},
|
||||
),
|
||||
backgroundColor: Colors.white,
|
||||
shadowColor: Colors.transparent,
|
||||
title: LocalText(context, 'rate.cal.title',
|
||||
color: primaryColor, fontSize: 20),
|
||||
),
|
||||
appBar: LocalAppBar(
|
||||
labelKey: "rate.cal.title",
|
||||
backgroundColor: Colors.white,
|
||||
labelColor: primaryColor,
|
||||
arrowColor: primaryColor),
|
||||
body: Padding(
|
||||
padding: const EdgeInsets.all(8.0),
|
||||
child: ListView(
|
||||
|
||||
@@ -1,10 +1,9 @@
|
||||
import 'package:fcs/domain/entities/rate.dart';
|
||||
import 'package:fcs/helpers/theme.dart';
|
||||
import 'package:fcs/localization/app_translations.dart';
|
||||
import 'package:fcs/pages/rates/model/shipment_rate_model.dart';
|
||||
import 'package:fcs/pages/widgets/input_text.dart';
|
||||
import 'package:fcs/pages/widgets/local_app_bar.dart';
|
||||
import 'package:fcs/pages/widgets/progress.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
@@ -73,24 +72,20 @@ class _ShipmentRatesEditState extends State<ShipmentRatesEdit> {
|
||||
return LocalProgress(
|
||||
inAsyncCall: _isLoading,
|
||||
child: Scaffold(
|
||||
appBar: AppBar(
|
||||
centerTitle: true,
|
||||
leading: new IconButton(
|
||||
icon: new Icon(
|
||||
CupertinoIcons.back,
|
||||
),
|
||||
onPressed: () {
|
||||
if (isDataChanged()) {
|
||||
showConfirmDialog(context, "back.button_confirm", () {
|
||||
Navigator.of(context).pop();
|
||||
});
|
||||
} else {
|
||||
appBar: LocalAppBar(
|
||||
labelKey: "rate.edit.title",
|
||||
backgroundColor: Colors.white,
|
||||
labelColor: primaryColor,
|
||||
arrowColor: primaryColor,
|
||||
onBack: () {
|
||||
if (isDataChanged()) {
|
||||
showConfirmDialog(context, "back.button_confirm", () {
|
||||
Navigator.of(context).pop();
|
||||
}
|
||||
},
|
||||
),
|
||||
backgroundColor: primaryColor,
|
||||
title: Text(AppTranslations.of(context)!.text("rate.edit.title")),
|
||||
});
|
||||
} else {
|
||||
Navigator.of(context).pop();
|
||||
}
|
||||
},
|
||||
),
|
||||
body: Container(
|
||||
padding: EdgeInsets.all(18),
|
||||
|
||||
@@ -8,11 +8,10 @@ import 'package:fcs/pages/widgets/barcode_scanner.dart';
|
||||
import 'package:fcs/pages/widgets/display_text.dart';
|
||||
import 'package:fcs/pages/widgets/fcs_id_icon.dart';
|
||||
import 'package:fcs/pages/widgets/input_text.dart';
|
||||
import 'package:fcs/pages/widgets/local_text.dart';
|
||||
import 'package:fcs/pages/widgets/local_app_bar.dart';
|
||||
import 'package:fcs/pages/widgets/multi_img_controller.dart';
|
||||
import 'package:fcs/pages/widgets/multi_img_file.dart';
|
||||
import 'package:fcs/pages/widgets/progress.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_vector_icons/flutter_vector_icons.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
@@ -143,29 +142,20 @@ class _ReceivingEditorState extends State<ReceivingEditor> {
|
||||
return LocalProgress(
|
||||
inAsyncCall: _isLoading,
|
||||
child: Scaffold(
|
||||
appBar: AppBar(
|
||||
centerTitle: true,
|
||||
leading: new IconButton(
|
||||
icon:
|
||||
new Icon(CupertinoIcons.back, color: primaryColor, size: 30),
|
||||
onPressed: () {
|
||||
if (isDataChanged()) {
|
||||
showConfirmDialog(context, "back.button_confirm", () {
|
||||
Navigator.of(context).pop();
|
||||
});
|
||||
} else {
|
||||
Navigator.of(context).pop();
|
||||
}
|
||||
},
|
||||
),
|
||||
shadowColor: Colors.transparent,
|
||||
appBar: LocalAppBar(
|
||||
labelKey: _isNew ? "receiving.create" : "receiving.update",
|
||||
backgroundColor: Colors.white,
|
||||
title: LocalText(
|
||||
context,
|
||||
_isNew ? "receiving.create" : "receiving.update",
|
||||
fontSize: 20,
|
||||
color: primaryColor,
|
||||
),
|
||||
labelColor: primaryColor,
|
||||
arrowColor: primaryColor,
|
||||
onBack: () {
|
||||
if (isDataChanged()) {
|
||||
showConfirmDialog(context, "back.button_confirm", () {
|
||||
Navigator.of(context).pop();
|
||||
});
|
||||
} else {
|
||||
Navigator.of(context).pop();
|
||||
}
|
||||
},
|
||||
),
|
||||
body: Padding(
|
||||
padding: const EdgeInsets.only(left: 12.0, right: 12),
|
||||
|
||||
@@ -5,7 +5,7 @@ import 'package:fcs/pages/main/util.dart';
|
||||
import 'package:fcs/pages/package/model/package_model.dart';
|
||||
import 'package:fcs/pages/widgets/display_text.dart';
|
||||
import 'package:fcs/pages/widgets/fcs_id_icon.dart';
|
||||
import 'package:fcs/pages/widgets/local_text.dart';
|
||||
import 'package:fcs/pages/widgets/local_app_bar.dart';
|
||||
import 'package:fcs/pages/widgets/multi_img_controller.dart';
|
||||
import 'package:fcs/pages/widgets/multi_img_file.dart';
|
||||
import 'package:fcs/pages/widgets/progress.dart';
|
||||
@@ -85,20 +85,11 @@ class _ReceivingInfoState extends State<ReceivingInfo> {
|
||||
return LocalProgress(
|
||||
inAsyncCall: _isLoading,
|
||||
child: Scaffold(
|
||||
appBar: AppBar(
|
||||
centerTitle: true,
|
||||
leading: new IconButton(
|
||||
icon: new Icon(CupertinoIcons.back, color: primaryColor, size: 30),
|
||||
onPressed: () => Navigator.of(context).pop(),
|
||||
),
|
||||
shadowColor: Colors.transparent,
|
||||
appBar: LocalAppBar(
|
||||
labelKey: "receiving.info",
|
||||
backgroundColor: Colors.white,
|
||||
title: LocalText(
|
||||
context,
|
||||
"receiving.info",
|
||||
fontSize: 20,
|
||||
color: primaryColor,
|
||||
),
|
||||
arrowColor: primaryColor,
|
||||
labelColor: primaryColor,
|
||||
actions: isCustomer
|
||||
? null
|
||||
: <Widget>[
|
||||
@@ -113,6 +104,7 @@ class _ReceivingInfoState extends State<ReceivingInfo> {
|
||||
],
|
||||
),
|
||||
body: Card(
|
||||
elevation: 0,
|
||||
child: Column(
|
||||
children: <Widget>[
|
||||
Expanded(
|
||||
|
||||
@@ -2,6 +2,7 @@ import 'package:fcs/domain/entities/package.dart';
|
||||
import 'package:fcs/helpers/theme.dart';
|
||||
import 'package:fcs/pages/package/model/package_model.dart';
|
||||
import 'package:fcs/pages/package_search/package_serach.dart';
|
||||
import 'package:fcs/pages/widgets/local_app_bar.dart';
|
||||
import 'package:fcs/pages/widgets/local_text.dart';
|
||||
import 'package:fcs/pages/widgets/progress.dart';
|
||||
import 'package:fcs/pagination/paginator_listview.dart';
|
||||
@@ -29,20 +30,9 @@ class _ReceivingListState extends State<ReceivingList> {
|
||||
return LocalProgress(
|
||||
inAsyncCall: _isLoading,
|
||||
child: Scaffold(
|
||||
appBar: AppBar(
|
||||
centerTitle: true,
|
||||
leading: new IconButton(
|
||||
icon: new Icon(CupertinoIcons.back),
|
||||
onPressed: () => Navigator.of(context).pop(),
|
||||
),
|
||||
backgroundColor: primaryColor,
|
||||
title: LocalText(
|
||||
context,
|
||||
"receiving.title",
|
||||
fontSize: 20,
|
||||
color: Colors.white,
|
||||
),
|
||||
actions: <Widget>[
|
||||
appBar: LocalAppBar(
|
||||
labelKey: "receiving.title",
|
||||
actions: [
|
||||
IconButton(
|
||||
icon: Icon(
|
||||
Icons.search,
|
||||
@@ -51,7 +41,7 @@ class _ReceivingListState extends State<ReceivingList> {
|
||||
iconSize: 30,
|
||||
onPressed: () => searchPackage(context,
|
||||
callbackPackageSelect: _searchCallback),
|
||||
),
|
||||
)
|
||||
],
|
||||
),
|
||||
floatingActionButton: FloatingActionButton.extended(
|
||||
|
||||
@@ -6,9 +6,8 @@ import 'package:fcs/pages/main/model/language_model.dart';
|
||||
import 'package:fcs/pages/main/util.dart';
|
||||
import 'package:fcs/pages/staff/model/staff_model.dart';
|
||||
import 'package:fcs/pages/widgets/display_text.dart';
|
||||
import 'package:fcs/pages/widgets/local_text.dart';
|
||||
import 'package:fcs/pages/widgets/local_app_bar.dart';
|
||||
import 'package:fcs/pages/widgets/progress.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
@@ -37,8 +36,8 @@ class _StaffEditorState extends State<StaffEditor> {
|
||||
isNew = widget.staff == null;
|
||||
user = User();
|
||||
if (!isNew) {
|
||||
user =
|
||||
User(name: widget.staff!.name, phoneNumber: widget.staff!.phoneNumber);
|
||||
user = User(
|
||||
name: widget.staff!.name, phoneNumber: widget.staff!.phoneNumber);
|
||||
user.privileges = widget.staff!.privileges;
|
||||
privileges.forEach((p) => user.privileges.contains(p.id)
|
||||
? p.isChecked = true
|
||||
@@ -64,11 +63,12 @@ class _StaffEditorState extends State<StaffEditor> {
|
||||
new Checkbox(
|
||||
value: p.isChecked == null ? false : p.isChecked,
|
||||
activeColor: primaryColor,
|
||||
side: BorderSide(color: Colors.black38, width: 2),
|
||||
onChanged: (bool? value) {
|
||||
if(value != null)
|
||||
setState(() {
|
||||
p.isChecked = value;
|
||||
});
|
||||
if (value != null)
|
||||
setState(() {
|
||||
p.isChecked = value;
|
||||
});
|
||||
}),
|
||||
Padding(
|
||||
padding: const EdgeInsets.only(right: 8.0),
|
||||
@@ -79,7 +79,7 @@ class _StaffEditorState extends State<StaffEditor> {
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: <Widget>[
|
||||
new Text(
|
||||
p.name ??"",
|
||||
p.name ?? "",
|
||||
style: TextStyle(fontSize: 15.0, color: primaryColor),
|
||||
),
|
||||
Text(p.desc ?? "",
|
||||
@@ -169,23 +169,11 @@ class _StaffEditorState extends State<StaffEditor> {
|
||||
return LocalProgress(
|
||||
inAsyncCall: _isLoading,
|
||||
child: Scaffold(
|
||||
appBar: AppBar(
|
||||
centerTitle: true,
|
||||
leading: new IconButton(
|
||||
icon: new Icon(CupertinoIcons.back,
|
||||
color: primaryColor, size: 30),
|
||||
onPressed: () {
|
||||
Navigator.of(context).pop();
|
||||
}),
|
||||
shadowColor: Colors.transparent,
|
||||
backgroundColor: Colors.white,
|
||||
title: LocalText(
|
||||
context,
|
||||
"staff.form.title",
|
||||
fontSize: 20,
|
||||
color: primaryColor,
|
||||
),
|
||||
),
|
||||
appBar: LocalAppBar(
|
||||
labelKey: "staff.form.title",
|
||||
backgroundColor: Colors.white,
|
||||
labelColor: primaryColor,
|
||||
arrowColor: primaryColor),
|
||||
body: Padding(
|
||||
padding: const EdgeInsets.only(left: 12.0, right: 12),
|
||||
child: ListView(
|
||||
@@ -197,7 +185,7 @@ class _StaffEditorState extends State<StaffEditor> {
|
||||
namebox,
|
||||
Padding(
|
||||
padding: const EdgeInsets.only(top: 18.0),
|
||||
child: Text("Privileges"),
|
||||
child: Text("Privileges", style: TextStyle(fontSize: 15)),
|
||||
),
|
||||
Column(
|
||||
children: showprivilegeList(context),
|
||||
@@ -227,7 +215,8 @@ class _StaffEditorState extends State<StaffEditor> {
|
||||
});
|
||||
StaffModel staffModel = Provider.of<StaffModel>(context, listen: false);
|
||||
try {
|
||||
await staffModel.updatePrivileges(this.selectedUser!.id!, privilegesIDs());
|
||||
await staffModel.updatePrivileges(
|
||||
this.selectedUser!.id!, privilegesIDs());
|
||||
Navigator.pop(context);
|
||||
} catch (e) {
|
||||
showMsgDialog(context, "Error", e.toString());
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import 'package:fcs/domain/entities/user.dart';
|
||||
import 'package:fcs/helpers/theme.dart';
|
||||
import 'package:fcs/pages/staff/model/staff_model.dart';
|
||||
import 'package:fcs/pages/widgets/local_app_bar.dart';
|
||||
import 'package:fcs/pages/widgets/local_text.dart';
|
||||
import 'package:fcs/pages/widgets/progress.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
@@ -35,20 +36,7 @@ class _StaffListState extends State<StaffList> {
|
||||
return LocalProgress(
|
||||
inAsyncCall: _isLoading,
|
||||
child: Scaffold(
|
||||
appBar: AppBar(
|
||||
centerTitle: true,
|
||||
leading: new IconButton(
|
||||
icon: new Icon(CupertinoIcons.back),
|
||||
onPressed: () => Navigator.of(context).pop(),
|
||||
),
|
||||
backgroundColor: primaryColor,
|
||||
title: LocalText(
|
||||
context,
|
||||
'staff.list.title',
|
||||
color: Colors.white,
|
||||
fontSize: 20,
|
||||
),
|
||||
),
|
||||
appBar: LocalAppBar(labelKey: "staff.list.title"),
|
||||
floatingActionButton: FloatingActionButton.extended(
|
||||
onPressed: () {
|
||||
Navigator.of(context).push(
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
|
||||
import 'package:fcs/domain/vo/term.dart';
|
||||
import 'package:fcs/helpers/theme.dart';
|
||||
import 'package:fcs/pages/main/util.dart';
|
||||
@@ -69,11 +68,7 @@ class _TermEditState extends State<TermEdit> {
|
||||
color: primaryColor,
|
||||
),
|
||||
leading: IconButton(
|
||||
icon: Icon(
|
||||
CupertinoIcons.back,
|
||||
color: primaryColor,
|
||||
size: 30,
|
||||
),
|
||||
icon: Icon(CupertinoIcons.back, color: primaryColor, size: 25),
|
||||
onPressed: () {
|
||||
Navigator.of(context).pop();
|
||||
},
|
||||
@@ -85,7 +80,8 @@ class _TermEditState extends State<TermEdit> {
|
||||
onPressed: _unfocus,
|
||||
icon: Icon(Icons.check, color: primaryColor))
|
||||
],
|
||||
bottom: TabBar(
|
||||
bottom: TabBar.secondary(
|
||||
indicatorColor: primaryColor,
|
||||
onTap: (index) {
|
||||
if (index == 0) {
|
||||
_focusNodeEng = new FocusNode();
|
||||
@@ -119,12 +115,15 @@ class _TermEditState extends State<TermEdit> {
|
||||
height: MediaQuery.of(context).size.height - 200,
|
||||
child: TabBarView(
|
||||
children: [
|
||||
const SizedBox(),
|
||||
const SizedBox(),
|
||||
// textEditor(_controllerEng, _focusNodeEng),
|
||||
// textEditor(_controllerMm, _focusNodeMm),
|
||||
],
|
||||
),
|
||||
),
|
||||
savebtn,
|
||||
const SizedBox(height: 20)
|
||||
],
|
||||
),
|
||||
),
|
||||
|
||||
@@ -1,10 +1,9 @@
|
||||
|
||||
import 'package:fcs/domain/entities/setting.dart';
|
||||
import 'package:fcs/domain/vo/term.dart';
|
||||
import 'package:fcs/helpers/theme.dart';
|
||||
import 'package:fcs/pages/main/model/main_model.dart';
|
||||
import 'package:fcs/pages/term/term_edit.dart';
|
||||
import 'package:fcs/pages/widgets/local_text.dart';
|
||||
import 'package:fcs/pages/widgets/local_app_bar.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
@@ -51,23 +50,11 @@ class _TermPageState extends State<TermPage> {
|
||||
bool isEditable = context.select((MainModel m) => m.termEditable());
|
||||
|
||||
return Scaffold(
|
||||
appBar: AppBar(
|
||||
shadowColor: Colors.transparent,
|
||||
appBar: LocalAppBar(
|
||||
labelKey: 'term',
|
||||
backgroundColor: Colors.white,
|
||||
centerTitle: true,
|
||||
leading: new IconButton(
|
||||
icon: new Icon(
|
||||
CupertinoIcons.back,
|
||||
color: primaryColor,
|
||||
),
|
||||
onPressed: () => Navigator.of(context).pop(),
|
||||
),
|
||||
title: LocalText(
|
||||
context,
|
||||
'term',
|
||||
color: primaryColor,
|
||||
fontSize: 20,
|
||||
),
|
||||
labelColor: primaryColor,
|
||||
arrowColor: primaryColor,
|
||||
actions: isEditable
|
||||
? [
|
||||
IconButton(
|
||||
@@ -76,10 +63,7 @@ class _TermPageState extends State<TermPage> {
|
||||
builder: (context) =>
|
||||
TermEdit(term: Term.fromSetting(setting!)),
|
||||
)),
|
||||
icon: Icon(
|
||||
Icons.edit,
|
||||
color: primaryColor,
|
||||
))
|
||||
icon: Icon(Icons.edit, color: primaryColor))
|
||||
]
|
||||
: [],
|
||||
),
|
||||
|
||||
@@ -2,6 +2,7 @@ import 'package:fcs/domain/entities/user.dart';
|
||||
import 'package:fcs/helpers/theme.dart';
|
||||
import 'package:fcs/pages/package/model/package_model.dart';
|
||||
import 'package:fcs/pages/user_search/user_list_row.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
@@ -30,13 +31,15 @@ class UserSearchDelegate extends SearchDelegate<User> {
|
||||
final ThemeData theme = Theme.of(context);
|
||||
return theme.copyWith(
|
||||
appBarTheme: AppBarTheme(color: primaryColor),
|
||||
iconButtonTheme: IconButtonThemeData(
|
||||
style: ButtonStyle(
|
||||
iconColor: MaterialStateProperty.all<Color>(Colors.white))),
|
||||
inputDecorationTheme: InputDecorationTheme(
|
||||
border: InputBorder.none,
|
||||
hintStyle: TextStyle(
|
||||
color: theme.primaryTextTheme.caption?.color, fontSize: 14)),
|
||||
hintStyle: TextStyle(color: Colors.grey, fontSize: 14)),
|
||||
textTheme: TextTheme(
|
||||
headline1: TextStyle(
|
||||
color: theme.primaryTextTheme.headline1?.color,
|
||||
displayLarge: TextStyle(
|
||||
color: theme.primaryTextTheme.displayLarge?.color,
|
||||
fontSize: 16,
|
||||
backgroundColor: primaryColor)),
|
||||
primaryColor: primaryColor,
|
||||
@@ -56,7 +59,7 @@ class UserSearchDelegate extends SearchDelegate<User> {
|
||||
@override
|
||||
Widget buildLeading(BuildContext context) {
|
||||
return IconButton(
|
||||
icon: Icon(Icons.arrow_back),
|
||||
icon: Icon(CupertinoIcons.back),
|
||||
onPressed: () => close(context, new User()),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -15,7 +15,11 @@ class DefaultDeliveryAddress extends StatelessWidget {
|
||||
final IconData? iconData;
|
||||
|
||||
const DefaultDeliveryAddress(
|
||||
{Key? key, this.deliveryAddress, this.onTap, this.labelKey, this.iconData})
|
||||
{Key? key,
|
||||
this.deliveryAddress,
|
||||
this.onTap,
|
||||
this.labelKey,
|
||||
this.iconData})
|
||||
: super(key: key);
|
||||
|
||||
@override
|
||||
@@ -38,6 +42,9 @@ class DefaultDeliveryAddress extends StatelessWidget {
|
||||
: GestureDetector(
|
||||
onTap: () => onTap!(),
|
||||
child: Chip(
|
||||
shape: const StadiumBorder(
|
||||
side: BorderSide(color: Colors.transparent)),
|
||||
backgroundColor: Colors.grey.withOpacity(0.3),
|
||||
label: LocalText(
|
||||
context, "delivery_address.change_address",
|
||||
color: primaryColor)),
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
import 'package:fcs/helpers/theme.dart';
|
||||
import 'package:fcs/pages/widgets/local_text.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
|
||||
import 'input_text.dart';
|
||||
|
||||
@@ -268,6 +266,7 @@ class _LengthPickerDialogState extends State<LengthPickerDialog> {
|
||||
),
|
||||
),
|
||||
Slider(
|
||||
inactiveColor: Colors.grey.shade200,
|
||||
activeColor: primaryColor,
|
||||
value: _valueFeet.toDouble() > MAX_FEET
|
||||
? 0
|
||||
@@ -296,6 +295,7 @@ class _LengthPickerDialogState extends State<LengthPickerDialog> {
|
||||
),
|
||||
),
|
||||
Slider(
|
||||
inactiveColor: Colors.grey.shade200,
|
||||
activeColor: primaryColor,
|
||||
value: _valueInc.toDouble() > (widget.displayFeet! ? 11 : MAX_INC)
|
||||
? 0
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
import 'package:fcs/helpers/theme.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
import 'local_text.dart';
|
||||
|
||||
class LocalAppBar extends StatelessWidget implements PreferredSizeWidget {
|
||||
@@ -12,6 +11,7 @@ class LocalAppBar extends StatelessWidget implements PreferredSizeWidget {
|
||||
final List<Widget>? actions;
|
||||
final Widget? titleWidget;
|
||||
final Function()? onBack;
|
||||
final bool centerTitle;
|
||||
|
||||
const LocalAppBar(
|
||||
{Key? key,
|
||||
@@ -21,7 +21,8 @@ class LocalAppBar extends StatelessWidget implements PreferredSizeWidget {
|
||||
this.arrowColor = Colors.white,
|
||||
this.actions,
|
||||
this.titleWidget,
|
||||
this.onBack})
|
||||
this.onBack,
|
||||
this.centerTitle = true})
|
||||
: super(key: key);
|
||||
|
||||
@override
|
||||
@@ -31,21 +32,23 @@ class LocalAppBar extends StatelessWidget implements PreferredSizeWidget {
|
||||
Widget build(BuildContext context) {
|
||||
return AppBar(
|
||||
elevation: 0,
|
||||
centerTitle: true,
|
||||
centerTitle: centerTitle,
|
||||
leading: IconButton(
|
||||
icon: Icon(CupertinoIcons.back, color: arrowColor, size: 25),
|
||||
onPressed: onBack),
|
||||
onPressed: () {
|
||||
if (onBack != null) {
|
||||
onBack!();
|
||||
} else {
|
||||
Navigator.of(context).pop();
|
||||
}
|
||||
}),
|
||||
shadowColor: Colors.transparent,
|
||||
backgroundColor: backgroundColor,
|
||||
surfaceTintColor: backgroundColor,
|
||||
title: titleWidget ??
|
||||
(labelKey != null
|
||||
? LocalText(
|
||||
context,
|
||||
labelKey!,
|
||||
color: Colors.white,
|
||||
fontSize: 20,
|
||||
)
|
||||
? LocalText(context, labelKey!,
|
||||
color: labelColor ?? Colors.white, fontSize: 20)
|
||||
: const SizedBox()),
|
||||
actions: actions,
|
||||
);
|
||||
|
||||
@@ -19,6 +19,7 @@ class StatusTree extends StatelessWidget {
|
||||
Widget build(BuildContext context) {
|
||||
return ExpansionTile(
|
||||
initiallyExpanded: true,
|
||||
shape: Border.symmetric(horizontal: BorderSide(color: Colors.grey.shade300)),
|
||||
title: Text(
|
||||
'Status',
|
||||
style: TextStyle(color: primaryColor, fontWeight: FontWeight.bold),
|
||||
|
||||
Reference in New Issue
Block a user