add signin function
This commit is contained in:
89
lib/app.dart
89
lib/app.dart
@@ -1,22 +1,22 @@
|
||||
import 'package:fcs/model/discount_model.dart';
|
||||
import 'package:fcs/model/shipment_model.dart';
|
||||
import 'package:fcs/model_fcs/message_model.dart';
|
||||
import 'package:fcs/model_fcs/package_model.dart';
|
||||
import 'package:fcs/vo/message.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_localizations/flutter_localizations.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:fcs/fcs/common/pages/signin/model/signin_model.dart';
|
||||
import 'package:fcs/model/buyer_model.dart';
|
||||
import 'package:fcs/model/delivery_model.dart';
|
||||
import 'package:fcs/model/discount_model.dart';
|
||||
import 'package:fcs/model/manual_model.dart';
|
||||
import 'package:fcs/model/notification_model.dart';
|
||||
import 'package:fcs/model/pd_model.dart';
|
||||
import 'package:fcs/model/reg_model.dart';
|
||||
import 'package:fcs/model/report_model.dart';
|
||||
import 'package:fcs/model/shipment_model.dart';
|
||||
import 'package:fcs/model/storage_model.dart';
|
||||
import 'package:fcs/model/test_model.dart';
|
||||
import 'package:fcs/model_fcs/message_model.dart';
|
||||
import 'package:fcs/model_fcs/package_model.dart';
|
||||
import 'package:fcs/pages/email_page.dart';
|
||||
import 'package:fcs/pages/login_page.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_localizations/flutter_localizations.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
import 'model/announcement_model.dart';
|
||||
import 'model/chart_model.dart';
|
||||
@@ -35,11 +35,10 @@ import 'model/report_user_model.dart';
|
||||
import 'model/shipment_rate_model.dart';
|
||||
import 'model/user_model.dart';
|
||||
import 'model_fcs/box_model.dart';
|
||||
import 'pages/home_page.dart';
|
||||
import 'pages/home_page_welcome.dart';
|
||||
import 'pages/splash.dart';
|
||||
import 'fcs/common/pages/home_page.dart';
|
||||
import 'fcs/common/pages/welcome_page.dart';
|
||||
import 'fcs/common/pages/splash_page.dart';
|
||||
import 'pages/term.dart';
|
||||
import 'pages/welcome_page.dart';
|
||||
import 'widget/localization/app_translations_delegate.dart';
|
||||
import 'widget/localization/transalation.dart';
|
||||
|
||||
@@ -131,9 +130,8 @@ class _AppState extends State<App> {
|
||||
Map<String, WidgetBuilder> route(BuildContext context) {
|
||||
final routes = <String, WidgetBuilder>{
|
||||
'/': (_) => SplashScreen(),
|
||||
'/home': (_) => HomePageWelcome(),
|
||||
'/homeLogin': (_) => HomePage(),
|
||||
'/welcome': (context) => WelcomePage(),
|
||||
'/welcome': (_) => WelcomePage(),
|
||||
'/home': (_) => HomePage(),
|
||||
'/term': (context) => Term(
|
||||
agreePage: true,
|
||||
),
|
||||
@@ -147,38 +145,37 @@ class _AppState extends State<App> {
|
||||
Widget build(BuildContext context) {
|
||||
return MultiProvider(
|
||||
providers: [
|
||||
ChangeNotifierProvider(builder: (context) => mainModel),
|
||||
ChangeNotifierProvider(builder: (context) => userModel),
|
||||
ChangeNotifierProvider(builder: (context) => productModel),
|
||||
ChangeNotifierProvider(builder: (context) => employeeModel),
|
||||
ChangeNotifierProvider(builder: (context) => poSubmissionModel),
|
||||
ChangeNotifierProvider(builder: (context) => doModel),
|
||||
ChangeNotifierProvider(builder: (context) => storageModel),
|
||||
ChangeNotifierProvider(builder: (context) => pdModel),
|
||||
ChangeNotifierProvider(builder: (context) => lanuguageModel),
|
||||
ChangeNotifierProvider(builder: (context) => regModel),
|
||||
ChangeNotifierProvider(builder: (context) => buyerModel),
|
||||
ChangeNotifierProvider(builder: (context) => notificationModel),
|
||||
ChangeNotifierProvider(builder: (context) => chartModel),
|
||||
ChangeNotifierProvider(builder: (context) => deliveryModel),
|
||||
ChangeNotifierProvider(builder: (context) => manualModel),
|
||||
ChangeNotifierProvider(builder: (context) => logModel),
|
||||
ChangeNotifierProvider(builder: (context) => deliveryModel),
|
||||
ChangeNotifierProvider(builder: (context) => phoneDeviceModel),
|
||||
ChangeNotifierProvider(builder: (context) => reportModel),
|
||||
ChangeNotifierProvider(builder: (context) => announcementModel),
|
||||
ChangeNotifierProvider(builder: (context) => reportUserModel),
|
||||
ChangeNotifierProvider(builder: (context) => pickUpModel),
|
||||
ChangeNotifierProvider(builder: (context) => shipmentRateModel),
|
||||
ChangeNotifierProvider(builder: (context) => shipmentModel),
|
||||
ChangeNotifierProvider(builder: (context) => packageModel),
|
||||
ChangeNotifierProvider(builder: (context) => boxModel),
|
||||
ChangeNotifierProvider(builder: (context) => messageModel),
|
||||
ChangeNotifierProvider(builder: (context) => invoiceModel),
|
||||
ChangeNotifierProvider(builder: (context) => customerModel),
|
||||
ChangeNotifierProvider(builder: (context) => discountModel),
|
||||
ChangeNotifierProvider.value(value: mainModel),
|
||||
ChangeNotifierProvider.value(value: userModel),
|
||||
ChangeNotifierProvider.value(value: productModel),
|
||||
ChangeNotifierProvider.value(value: employeeModel),
|
||||
ChangeNotifierProvider.value(value: poSubmissionModel),
|
||||
ChangeNotifierProvider.value(value: doModel),
|
||||
ChangeNotifierProvider.value(value: storageModel),
|
||||
ChangeNotifierProvider.value(value: pdModel),
|
||||
ChangeNotifierProvider.value(value: lanuguageModel),
|
||||
ChangeNotifierProvider.value(value: regModel),
|
||||
ChangeNotifierProvider.value(value: buyerModel),
|
||||
ChangeNotifierProvider.value(value: notificationModel),
|
||||
ChangeNotifierProvider.value(value: chartModel),
|
||||
ChangeNotifierProvider.value(value: deliveryModel),
|
||||
ChangeNotifierProvider.value(value: logModel),
|
||||
ChangeNotifierProvider.value(value: phoneDeviceModel),
|
||||
ChangeNotifierProvider.value(value: reportModel),
|
||||
ChangeNotifierProvider.value(value: announcementModel),
|
||||
ChangeNotifierProvider.value(value: reportUserModel),
|
||||
ChangeNotifierProvider.value(value: pickUpModel),
|
||||
ChangeNotifierProvider.value(value: shipmentRateModel),
|
||||
ChangeNotifierProvider.value(value: shipmentModel),
|
||||
ChangeNotifierProvider.value(value: packageModel),
|
||||
ChangeNotifierProvider.value(value: boxModel),
|
||||
ChangeNotifierProvider.value(value: messageModel),
|
||||
ChangeNotifierProvider.value(value: invoiceModel),
|
||||
ChangeNotifierProvider.value(value: customerModel),
|
||||
ChangeNotifierProvider.value(value: discountModel),
|
||||
ChangeNotifierProvider.value(value: testModel),
|
||||
ChangeNotifierProvider(
|
||||
builder: (context) => testModel,
|
||||
create: (_) => SigninModel(),
|
||||
),
|
||||
],
|
||||
child: Consumer<LanguageModel>(
|
||||
|
||||
@@ -6,7 +6,7 @@ import 'package:provider/provider.dart';
|
||||
import 'package:fcs/charts/qtyby_customer_table.dart';
|
||||
import 'package:fcs/model/chart_model.dart';
|
||||
import 'package:fcs/model/product_model.dart';
|
||||
import 'package:fcs/theme/theme.dart';
|
||||
import 'package:fcs/fcs/common/theme.dart';
|
||||
import 'package:fcs/vo/po.dart';
|
||||
import 'package:fcs/widget/local_text.dart';
|
||||
|
||||
@@ -41,7 +41,8 @@ class _BarChartState extends State<BarChart> {
|
||||
});
|
||||
});
|
||||
|
||||
this.chartSummary
|
||||
this
|
||||
.chartSummary
|
||||
.sort((s1, s2) => s1.displayOrder.compareTo(s2.displayOrder));
|
||||
}
|
||||
List<charts.Series<POChartData, String>> series = [
|
||||
|
||||
@@ -3,7 +3,7 @@ import 'package:flutter/material.dart';
|
||||
import 'package:intl/intl.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:fcs/model/chart_model.dart';
|
||||
import 'package:fcs/theme/theme.dart';
|
||||
import 'package:fcs/fcs/common/theme.dart';
|
||||
import 'package:fcs/vo/revenue.dart';
|
||||
import 'package:fcs/widget/local_text.dart';
|
||||
|
||||
@@ -45,7 +45,8 @@ class _DODeliveryLineChartState extends State<DODeliveryLineChart> {
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: <Widget>[
|
||||
LocalText(context, "delivery.do.title", color: primaryColor, fontSize: 16),
|
||||
LocalText(context, "delivery.do.title",
|
||||
color: primaryColor, fontSize: 16),
|
||||
InkWell(
|
||||
child: LocalText(
|
||||
context,
|
||||
@@ -54,8 +55,8 @@ class _DODeliveryLineChartState extends State<DODeliveryLineChart> {
|
||||
fontSize: 14,
|
||||
),
|
||||
onTap: () {
|
||||
Navigator.of(context)
|
||||
.push(MaterialPageRoute(builder: (_) => DODeliveryLineDetail()));
|
||||
Navigator.of(context).push(MaterialPageRoute(
|
||||
builder: (_) => DODeliveryLineDetail()));
|
||||
},
|
||||
),
|
||||
],
|
||||
|
||||
@@ -3,7 +3,7 @@ import 'package:flutter/material.dart';
|
||||
import 'package:intl/intl.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:fcs/model/chart_model.dart';
|
||||
import 'package:fcs/theme/theme.dart';
|
||||
import 'package:fcs/fcs/common/theme.dart';
|
||||
import 'package:fcs/vo/revenue.dart';
|
||||
import 'package:fcs/widget/local_text.dart';
|
||||
import 'package:fcs/widget/my_data_table.dart';
|
||||
|
||||
@@ -3,7 +3,7 @@ import 'package:flutter/material.dart';
|
||||
import 'package:intl/intl.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:fcs/model/chart_model.dart';
|
||||
import 'package:fcs/theme/theme.dart';
|
||||
import 'package:fcs/fcs/common/theme.dart';
|
||||
import 'package:fcs/vo/revenue.dart';
|
||||
import 'package:fcs/widget/local_text.dart';
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ import 'package:flutter/material.dart';
|
||||
import 'package:intl/intl.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:fcs/model/chart_model.dart';
|
||||
import 'package:fcs/theme/theme.dart';
|
||||
import 'package:fcs/fcs/common/theme.dart';
|
||||
import 'package:fcs/vo/revenue.dart';
|
||||
import 'package:fcs/widget/local_text.dart';
|
||||
import 'package:fcs/widget/my_data_table.dart';
|
||||
|
||||
@@ -3,7 +3,7 @@ import 'package:flutter/material.dart';
|
||||
import 'package:intl/intl.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:fcs/model/chart_model.dart';
|
||||
import 'package:fcs/theme/theme.dart';
|
||||
import 'package:fcs/fcs/common/theme.dart';
|
||||
import 'package:fcs/vo/revenue.dart';
|
||||
import 'package:fcs/widget/local_text.dart';
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@ import 'package:intl/intl.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:fcs/model/chart_model.dart';
|
||||
import 'package:fcs/model/main_model.dart';
|
||||
import 'package:fcs/theme/theme.dart';
|
||||
import 'package:fcs/fcs/common/theme.dart';
|
||||
import 'package:fcs/vo/revenue.dart';
|
||||
import 'package:fcs/widget/local_text.dart';
|
||||
import 'package:fcs/widget/my_data_table.dart';
|
||||
@@ -56,7 +56,8 @@ class _DeliveryBarDataState extends State<DeliveryBarData> {
|
||||
columnSpacing: 100,
|
||||
columns: [
|
||||
MyDataColumn(label: LocalText(context, "delivery.date")),
|
||||
MyDataColumn(label: LocalText(context, "delivery.qty"),numeric: true),
|
||||
MyDataColumn(
|
||||
label: LocalText(context, "delivery.qty"), numeric: true),
|
||||
],
|
||||
rows: getProductRow(chartModel.revenue.getDelivery()),
|
||||
),
|
||||
@@ -80,9 +81,7 @@ class _DeliveryBarDataState extends State<DeliveryBarData> {
|
||||
MyDataCell(
|
||||
new Text(dateFormatter.format(d.date), style: textStyle),
|
||||
),
|
||||
MyDataCell(
|
||||
NumberCell(d.amount)
|
||||
),
|
||||
MyDataCell(NumberCell(d.amount)),
|
||||
],
|
||||
);
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ import 'package:flutter/material.dart';
|
||||
import 'package:intl/intl.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:fcs/model/do_model.dart';
|
||||
import 'package:fcs/theme/theme.dart';
|
||||
import 'package:fcs/fcs/common/theme.dart';
|
||||
import 'package:fcs/vo/do.dart';
|
||||
import 'package:fcs/widget/local_text.dart';
|
||||
import 'package:fcs/widget/my_data_table.dart';
|
||||
@@ -61,7 +61,8 @@ class _DeliveryBarDetailState extends State<DeliveryBarDetail> {
|
||||
columns: [
|
||||
MyDataColumn(label: LocalText(context, "do.name")),
|
||||
MyDataColumn(label: LocalText(context, "do.do_num")),
|
||||
MyDataColumn(label: LocalText(context, "do.quantity"),numeric: true),
|
||||
MyDataColumn(
|
||||
label: LocalText(context, "do.quantity"), numeric: true),
|
||||
],
|
||||
rows: getProductRow(),
|
||||
),
|
||||
@@ -82,9 +83,7 @@ class _DeliveryBarDetailState extends State<DeliveryBarDetail> {
|
||||
MyDataCell(
|
||||
new Text(d.doNumber, style: textStyle),
|
||||
),
|
||||
MyDataCell(
|
||||
NumberCell(d.totalQty)
|
||||
),
|
||||
MyDataCell(NumberCell(d.totalQty)),
|
||||
],
|
||||
);
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ import 'package:flutter/material.dart';
|
||||
import 'package:intl/intl.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:fcs/model/chart_model.dart';
|
||||
import 'package:fcs/theme/theme.dart';
|
||||
import 'package:fcs/fcs/common/theme.dart';
|
||||
import 'package:fcs/vo/revenue.dart';
|
||||
import 'package:fcs/widget/local_text.dart';
|
||||
import 'delivery_summary_detail.dart';
|
||||
|
||||
@@ -3,7 +3,7 @@ import 'package:flutter/material.dart';
|
||||
import 'package:intl/intl.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:fcs/model/chart_model.dart';
|
||||
import 'package:fcs/theme/theme.dart';
|
||||
import 'package:fcs/fcs/common/theme.dart';
|
||||
import 'package:fcs/vo/revenue.dart';
|
||||
import 'package:fcs/widget/local_text.dart';
|
||||
import 'package:fcs/widget/my_data_table.dart';
|
||||
|
||||
@@ -3,7 +3,7 @@ import 'package:flutter/material.dart';
|
||||
import 'package:intl/intl.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:fcs/model/chart_model.dart';
|
||||
import 'package:fcs/theme/theme.dart';
|
||||
import 'package:fcs/fcs/common/theme.dart';
|
||||
import 'package:fcs/vo/po_do_count.dart';
|
||||
import 'package:fcs/widget/local_text.dart';
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ import 'package:flutter/material.dart';
|
||||
import 'package:intl/intl.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:fcs/model/chart_model.dart';
|
||||
import 'package:fcs/theme/theme.dart';
|
||||
import 'package:fcs/fcs/common/theme.dart';
|
||||
import 'package:fcs/vo/po_do_count.dart';
|
||||
import 'package:fcs/widget/local_text.dart';
|
||||
import 'package:fcs/widget/my_data_table.dart';
|
||||
|
||||
@@ -6,7 +6,7 @@ import 'package:provider/provider.dart';
|
||||
import 'package:fcs/charts/po_balance_table.dart';
|
||||
import 'package:fcs/model/chart_model.dart';
|
||||
import 'package:fcs/model/product_model.dart';
|
||||
import 'package:fcs/theme/theme.dart';
|
||||
import 'package:fcs/fcs/common/theme.dart';
|
||||
import 'package:fcs/vo/po.dart';
|
||||
import 'package:fcs/widget/local_text.dart';
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@ import 'package:intl/intl.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:fcs/model/chart_model.dart';
|
||||
import 'package:fcs/model/language_model.dart';
|
||||
import 'package:fcs/theme/theme.dart';
|
||||
import 'package:fcs/fcs/common/theme.dart';
|
||||
import 'package:fcs/vo/po.dart';
|
||||
import 'package:fcs/widget/local_text.dart';
|
||||
import 'package:fcs/widget/localization/app_translations.dart';
|
||||
|
||||
@@ -3,15 +3,13 @@ import 'package:flutter/material.dart';
|
||||
import 'package:intl/intl.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:fcs/model/chart_model.dart';
|
||||
import 'package:fcs/theme/theme.dart';
|
||||
import 'package:fcs/fcs/common/theme.dart';
|
||||
import 'package:fcs/vo/po.dart';
|
||||
import 'package:fcs/widget/local_text.dart';
|
||||
|
||||
class POBalanceChart_ extends StatefulWidget {
|
||||
@override
|
||||
_POBalanceChartState createState() => _POBalanceChartState();
|
||||
|
||||
|
||||
}
|
||||
|
||||
class _POBalanceChartState extends State<POBalanceChart_> {
|
||||
|
||||
@@ -4,7 +4,7 @@ import 'package:intl/intl.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:fcs/charts/po_line_detail.dart';
|
||||
import 'package:fcs/model/chart_model.dart';
|
||||
import 'package:fcs/theme/theme.dart';
|
||||
import 'package:fcs/fcs/common/theme.dart';
|
||||
import 'package:fcs/vo/po_do_count.dart';
|
||||
import 'package:fcs/widget/local_text.dart';
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@ import 'package:http/http.dart';
|
||||
import 'package:intl/intl.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:fcs/model/chart_model.dart';
|
||||
import 'package:fcs/theme/theme.dart';
|
||||
import 'package:fcs/fcs/common/theme.dart';
|
||||
import 'package:fcs/vo/po_do_count.dart';
|
||||
import 'package:fcs/widget/local_text.dart';
|
||||
import 'package:fcs/widget/my_data_table.dart';
|
||||
|
||||
@@ -4,7 +4,7 @@ import 'package:intl/intl.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:fcs/model/chart_model.dart';
|
||||
import 'package:fcs/model/language_model.dart';
|
||||
import 'package:fcs/theme/theme.dart';
|
||||
import 'package:fcs/fcs/common/theme.dart';
|
||||
import 'package:fcs/vo/po.dart';
|
||||
import 'package:fcs/widget/local_text.dart';
|
||||
import 'package:fcs/widget/localization/app_translations.dart';
|
||||
|
||||
@@ -4,7 +4,7 @@ import 'package:intl/intl.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:fcs/model/chart_model.dart';
|
||||
import 'package:fcs/model/main_model.dart';
|
||||
import 'package:fcs/theme/theme.dart';
|
||||
import 'package:fcs/fcs/common/theme.dart';
|
||||
import 'package:fcs/vo/revenue.dart';
|
||||
import 'package:fcs/widget/local_text.dart';
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@ import 'package:intl/intl.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:fcs/model/chart_model.dart';
|
||||
import 'package:fcs/model/main_model.dart';
|
||||
import 'package:fcs/theme/theme.dart';
|
||||
import 'package:fcs/fcs/common/theme.dart';
|
||||
import 'package:fcs/vo/revenue.dart';
|
||||
import 'package:fcs/widget/local_text.dart';
|
||||
import 'package:fcs/widget/my_data_table.dart';
|
||||
@@ -56,7 +56,9 @@ class _RevenueLineDataState extends State<RevenueLineData> {
|
||||
columnSpacing: 100,
|
||||
columns: [
|
||||
MyDataColumn(label: LocalText(context, "revenue.date")),
|
||||
MyDataColumn(label: LocalText(context, "revenue.amount"),numeric: true),
|
||||
MyDataColumn(
|
||||
label: LocalText(context, "revenue.amount"),
|
||||
numeric: true),
|
||||
],
|
||||
rows: getProductRow(chartModel.revenue.getData()),
|
||||
),
|
||||
@@ -70,7 +72,7 @@ class _RevenueLineDataState extends State<RevenueLineData> {
|
||||
List<MyDataRow> getProductRow(List<Data> revs) {
|
||||
return revs.map((p) {
|
||||
var r = MyDataRow(
|
||||
onSelectChanged: (bool selected) async {
|
||||
onSelectChanged: (bool selected) async {
|
||||
Navigator.push(
|
||||
context,
|
||||
MaterialPageRoute(builder: (context) => RevenueLineDetail(p.date)),
|
||||
@@ -80,9 +82,7 @@ class _RevenueLineDataState extends State<RevenueLineData> {
|
||||
MyDataCell(
|
||||
new Text(dateFormatter.format(p.date), style: textStyle),
|
||||
),
|
||||
MyDataCell(
|
||||
NumberCell(p.amount)
|
||||
),
|
||||
MyDataCell(NumberCell(p.amount)),
|
||||
],
|
||||
);
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@ import 'package:intl/intl.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:fcs/model/main_model.dart';
|
||||
import 'package:fcs/model/po_model.dart';
|
||||
import 'package:fcs/theme/theme.dart';
|
||||
import 'package:fcs/fcs/common/theme.dart';
|
||||
import 'package:fcs/vo/po.dart';
|
||||
import 'package:fcs/widget/local_text.dart';
|
||||
import 'package:fcs/widget/my_data_table.dart';
|
||||
|
||||
@@ -6,7 +6,7 @@ import 'package:dio/dio.dart';
|
||||
import 'package:logging/logging.dart';
|
||||
import 'package:fcs/vo/status.dart';
|
||||
|
||||
import '../config.dart';
|
||||
import '../../config.dart';
|
||||
|
||||
final log = Logger('requestAPI');
|
||||
|
||||
@@ -4,21 +4,29 @@ import 'package:fcs/fcs/common/domain/entities/auth.dart';
|
||||
import 'package:fcs/fcs/common/domain/entities/auth_status.dart';
|
||||
import 'package:firebase_auth/firebase_auth.dart';
|
||||
|
||||
import '../../api_helper.dart';
|
||||
|
||||
class AuthFb {
|
||||
static final AuthFb instance = AuthFb._();
|
||||
AuthFb._();
|
||||
|
||||
final FirebaseAuth _fb = FirebaseAuth.instance;
|
||||
static final FirebaseAuth _fb = FirebaseAuth.instance;
|
||||
static FirebaseUser firebaseUser;
|
||||
static String _verificationId;
|
||||
|
||||
Future<Auth> sendSmsCodeToPhoneNumber(String phoneNumber) {
|
||||
Completer<Auth> completer = Completer();
|
||||
|
||||
final PhoneVerificationCompleted verificationCompleted =
|
||||
(AuthCredential user) {
|
||||
completer.complete(Auth(authStatus: AuthStatus.AUTH_VERIFIED));
|
||||
(AuthCredential authCredential) async {
|
||||
firebaseUser = await _signIn(authCredential);
|
||||
Auth auth = Auth(authStatus: AuthStatus.AUTH_VERIFIED);
|
||||
auth.uid = firebaseUser.uid;
|
||||
auth.name = await _getName(firebaseUser);
|
||||
auth.phoneNumber = firebaseUser.phoneNumber;
|
||||
completer.complete(auth);
|
||||
print(
|
||||
'Inside _sendCodeToPhoneNumber: signInWithPhoneNumber auto succeeded: $user');
|
||||
'Inside _sendCodeToPhoneNumber: signInWithPhoneNumber auto succeeded: $firebaseUser');
|
||||
};
|
||||
|
||||
final PhoneVerificationFailed verificationFailed =
|
||||
@@ -28,8 +36,7 @@ class AuthFb {
|
||||
completer.complete(Auth(
|
||||
authStatus: AuthStatus.ERROR,
|
||||
authErrorCode: authException.code,
|
||||
authErrorMsg: authException.message));
|
||||
throw authException;
|
||||
authErrorMsg: "Phone number verification failed"));
|
||||
};
|
||||
|
||||
final PhoneCodeSent codeSent =
|
||||
@@ -63,11 +70,10 @@ class AuthFb {
|
||||
smsCode: smsCode,
|
||||
);
|
||||
|
||||
var firebaseUser = await _fb.signInWithCredential(credential);
|
||||
final FirebaseUser currentUser = await _fb.currentUser();
|
||||
assert(firebaseUser.user.uid == currentUser.uid);
|
||||
firebaseUser = await _signIn(credential);
|
||||
|
||||
auth.uid = firebaseUser.user.uid;
|
||||
auth.uid = firebaseUser.uid;
|
||||
auth.name = await _getName(firebaseUser);
|
||||
auth.authStatus = AuthStatus.AUTH_VERIFIED;
|
||||
} on Exception catch (e) {
|
||||
auth.authStatus = AuthStatus.ERROR;
|
||||
@@ -76,7 +82,46 @@ class AuthFb {
|
||||
return Future.value(auth);
|
||||
}
|
||||
|
||||
Future<void> logout() {
|
||||
Future<void> signout() {
|
||||
firebaseUser = null;
|
||||
return _fb.signOut();
|
||||
}
|
||||
|
||||
Future<FirebaseUser> _signIn(AuthCredential credential) async {
|
||||
AuthResult _authResult = await _fb.signInWithCredential(credential);
|
||||
FirebaseUser _fusr = _authResult.user;
|
||||
final FirebaseUser firebaseUser = await _fb.currentUser();
|
||||
assert(_fusr.uid == firebaseUser.uid);
|
||||
|
||||
var idToken = await firebaseUser.getIdToken();
|
||||
print("Claims:${idToken.claims}");
|
||||
|
||||
return firebaseUser;
|
||||
}
|
||||
|
||||
Future<String> _getName(FirebaseUser firebaseUser) async {
|
||||
IdTokenResult idToken = await firebaseUser.getIdToken();
|
||||
return idToken.claims["name"];
|
||||
}
|
||||
|
||||
Future<bool> hasSignup() async {
|
||||
IdTokenResult idToken = await firebaseUser.getIdToken();
|
||||
return idToken.claims.containsKey("signup") && idToken.claims["signup"];
|
||||
}
|
||||
|
||||
Future<void> signup(String name) async {
|
||||
await requestAPI("/signup", "POST",
|
||||
payload: {
|
||||
'name': name,
|
||||
},
|
||||
token: await getToken());
|
||||
// refresh token once signup
|
||||
await firebaseUser.getIdToken(refresh: true);
|
||||
}
|
||||
|
||||
static Future<String> getToken() async {
|
||||
FirebaseUser firebaseUser = await _fb.currentUser();
|
||||
IdTokenResult token = await firebaseUser.getIdToken();
|
||||
return token.token;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,6 +6,8 @@ class Auth {
|
||||
String authErrorMsg;
|
||||
|
||||
String uid;
|
||||
String name;
|
||||
String phoneNumber;
|
||||
|
||||
Auth({this.authStatus, this.authErrorCode, this.authErrorMsg});
|
||||
}
|
||||
|
||||
@@ -1 +1 @@
|
||||
enum AuthStatus { SMS_SENT, AUTH_VERIFIED, ERROR }
|
||||
enum AuthStatus { SMS_SENT, AUTH_VERIFIED, ERROR, SIGN_OUT }
|
||||
|
||||
@@ -1,74 +1,38 @@
|
||||
import 'package:country_code_picker/country_code.dart';
|
||||
import 'package:fcs/model/language_model.dart';
|
||||
import 'package:fcs/model/main_model.dart';
|
||||
import 'package:fcs/pages/contact.dart';
|
||||
import 'package:fcs/pages/discount_list.dart';
|
||||
import 'package:fcs/pages/notification_list.dart';
|
||||
import 'package:fcs/pages/payment_method_page.dart';
|
||||
import 'package:fcs/pages/shipment_list.dart';
|
||||
import 'package:fcs/pages/term.dart';
|
||||
import 'package:fcs/pages_fcs/box_list.dart';
|
||||
import 'package:fcs/pages_fcs/delivery_list.dart';
|
||||
import 'package:fcs/pages_fcs/package_list.dart';
|
||||
import 'package:fcs/widget/bottom_up_page_route.dart';
|
||||
import 'package:fcs/widget/localization/transalation.dart';
|
||||
import 'package:fcs/widget/right_left_page_route%20copy.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_icons/flutter_icons.dart';
|
||||
import 'package:flutter_staggered_grid_view/flutter_staggered_grid_view.dart';
|
||||
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
|
||||
import 'package:intl/intl.dart';
|
||||
import 'package:logging/logging.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'dart:math' as math;
|
||||
import 'package:fcs/charts/bar_chart.dart';
|
||||
import 'package:fcs/charts/delivery_do_line.dart';
|
||||
import 'package:fcs/charts/delivery_do_summary.dart';
|
||||
import 'package:fcs/charts/delivery_line.dart';
|
||||
import 'package:fcs/charts/delivery_summary.dart';
|
||||
import 'package:fcs/charts/do_line.dart';
|
||||
import 'package:fcs/charts/po_balance_chart.dart';
|
||||
import 'package:fcs/charts/po_line.dart';
|
||||
import 'package:fcs/charts/revenue_line.dart';
|
||||
import 'package:fcs/model/language_model.dart';
|
||||
import 'package:fcs/model/product_model.dart';
|
||||
import 'package:fcs/pages/banks/banks.dart';
|
||||
import 'package:fcs/pages/buyer_list.dart';
|
||||
import 'package:fcs/pages/contact.dart';
|
||||
import 'package:fcs/pages/delivery/delivery_list.dart';
|
||||
import 'package:fcs/pages/manual/manual_page.dart';
|
||||
import 'package:fcs/pages/notification_list.dart';
|
||||
import 'package:fcs/pages/term.dart';
|
||||
import 'package:fcs/reports/report_list.dart';
|
||||
import 'package:fcs/widget/banner.dart';
|
||||
import 'package:fcs/widget/local_text.dart';
|
||||
import 'package:fcs/widget/bottom_up_page_route.dart';
|
||||
import 'package:fcs/widget/localization/app_translations.dart';
|
||||
import 'package:fcs/widget/localization/transalation.dart';
|
||||
import 'package:fcs/widget/offline_redirect.dart';
|
||||
import 'package:fcs/widget/right_left_page_route%20copy.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_staggered_grid_view/flutter_staggered_grid_view.dart';
|
||||
import 'package:flutter_icons/flutter_icons.dart';
|
||||
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
|
||||
import 'package:intl/intl.dart';
|
||||
import 'package:logging/logging.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
import '../theme/theme.dart';
|
||||
import 'announcement_list.dart';
|
||||
import 'buying_online.dart';
|
||||
import 'customer_list.dart';
|
||||
import 'do/do_list.dart';
|
||||
import 'invoice/invoce_list.dart';
|
||||
import 'my_registeration.dart';
|
||||
import 'pd/pd_list.dart';
|
||||
import 'products_list.dart';
|
||||
import '../../../pages/buying_online.dart';
|
||||
import '../../../pages/customer_list.dart';
|
||||
import '../../../pages/fcs_profile_page.dart';
|
||||
import '../../../pages/invoice/invoce_list.dart';
|
||||
import '../../../pages/pickup_list.dart';
|
||||
import '../../../pages/shipment_rates.dart';
|
||||
import '../../../pages/staff_list.dart';
|
||||
import '../theme.dart';
|
||||
import 'profile_page.dart';
|
||||
import '../fcs/common/pages/signin/signin_page.dart';
|
||||
import 'staff_list.dart';
|
||||
|
||||
import 'fcs_profile_page.dart';
|
||||
import 'pd/pd_list.dart';
|
||||
import 'pickup_list.dart';
|
||||
import 'products_list.dart';
|
||||
import 'profile_page.dart';
|
||||
import 'shipment_rates.dart';
|
||||
import 'storage/storage_list.dart';
|
||||
import 'user_list.dart';
|
||||
import 'signin/signin_page.dart';
|
||||
|
||||
final msgLog = Logger('backgroundMessageHandler');
|
||||
|
||||
@@ -1,26 +1,21 @@
|
||||
import 'package:fcs/model/shipment_model.dart';
|
||||
import 'package:fcs/pages_fcs/shipping_address_row.dart';
|
||||
import 'package:fcs/vo/shipping_address.dart';
|
||||
import 'package:fcs/widget/bottom_up_page_route.dart';
|
||||
import 'package:fcs/widget/local_text.dart';
|
||||
import 'package:fcs/widget/my_data_table.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_icons/flutter_icons.dart';
|
||||
import 'package:package_info/package_info.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:fcs/fcs/common/pages/signin/model/signin_model.dart';
|
||||
import 'package:fcs/model/language_model.dart';
|
||||
import 'package:fcs/model/main_model.dart';
|
||||
import 'package:fcs/model/shipment_model.dart';
|
||||
import 'package:fcs/model/user_model.dart';
|
||||
import 'package:fcs/pages/profile_edit.dart';
|
||||
import 'package:fcs/pages/util.dart';
|
||||
import 'package:fcs/pages_fcs/shipping_address_row.dart';
|
||||
import 'package:fcs/vo/role.dart';
|
||||
import 'package:fcs/vo/shipping_address.dart';
|
||||
import 'package:fcs/widget/bottom_up_page_route.dart';
|
||||
import 'package:fcs/widget/localization/app_translations.dart';
|
||||
import 'package:fcs/widget/localization/transalation.dart';
|
||||
import 'package:fcs/widget/progress.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
import '../theme/theme.dart';
|
||||
import 'profile_setting.dart';
|
||||
import 'shipping_address_editor.dart';
|
||||
import '../../../pages/shipping_address_editor.dart';
|
||||
import '../theme.dart';
|
||||
|
||||
typedef void ProfileCallback();
|
||||
|
||||
@@ -235,8 +230,9 @@ class _ProfileState extends State<Profile> {
|
||||
_isLoading = true;
|
||||
});
|
||||
await mainModel.logout();
|
||||
await context.read<SigninModel>().signout();
|
||||
Navigator.of(context).pushNamedAndRemoveUntil(
|
||||
"/home", ModalRoute.withName('/home'));
|
||||
"/welcome", ModalRoute.withName('/welcome'));
|
||||
Future.delayed(Duration(seconds: 1), () {
|
||||
if (mounted) {
|
||||
setState(() {
|
||||
@@ -1,17 +1,19 @@
|
||||
import 'dart:async';
|
||||
|
||||
import 'package:fcs/fcs/common/domain/entities/auth.dart';
|
||||
import 'package:fcs/fcs/common/domain/entities/auth_status.dart';
|
||||
import 'package:fcs/fcs/common/pages/signin/model/signin_model.dart';
|
||||
import 'package:fcs/model/main_model.dart';
|
||||
import 'package:fcs/model/shared_pref.dart';
|
||||
import 'package:fcs/vo/user.dart';
|
||||
import 'package:fcs/pages/util.dart';
|
||||
import 'package:fcs/widget/bottom_up_page_route.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:pin_input_text_field/pin_input_text_field.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
import '../../../../theme/theme.dart';
|
||||
import 'signup_page.dart';
|
||||
import '../../theme.dart';
|
||||
import '../../../../widget/local_text.dart';
|
||||
import '../../../../widget/progress.dart';
|
||||
import '../../../../pages/user_edit.dart';
|
||||
|
||||
const resend_count_sec = 5;
|
||||
|
||||
@@ -191,9 +193,21 @@ class _CodePageState extends State<CodePage> {
|
||||
_resend() async {}
|
||||
|
||||
_verify() async {
|
||||
Provider.of<MainModel>(context).saveUser(pin, widget.phoneNumber);
|
||||
await Navigator.of(context).push(BottomUpPageRoute(UserEditPage()));
|
||||
Navigator.pop(context);
|
||||
try {
|
||||
Auth auth = await context.read<SigninModel>().signin(this.pin);
|
||||
if (auth.authStatus == AuthStatus.AUTH_VERIFIED) {
|
||||
bool hasSignup = await context.read<SigninModel>().hasSignup();
|
||||
if (!hasSignup) {
|
||||
await Navigator.of(context).push(BottomUpPageRoute(SignupPage()));
|
||||
} else {
|
||||
Navigator.pushNamedAndRemoveUntil(context, "/home", (r) => false);
|
||||
}
|
||||
Provider.of<MainModel>(context, listen: false)
|
||||
.saveUser(pin, widget.phoneNumber);
|
||||
}
|
||||
} catch (e) {
|
||||
showMsgDialog(context, "Error", e.toString());
|
||||
}
|
||||
}
|
||||
|
||||
_completeResend() {
|
||||
|
||||
@@ -1,8 +1,25 @@
|
||||
import 'package:fcs/fcs/common/data/providers/auth_fb.dart';
|
||||
import 'package:fcs/fcs/common/domain/entities/auth.dart';
|
||||
import 'package:flutter/foundation.dart';
|
||||
|
||||
class SigninModel extends ChangeNotifier {
|
||||
setPhoneNumber(String phoneNumber) async {
|
||||
await AuthFb.instance.sendSmsCodeToPhoneNumber(phoneNumber);
|
||||
Future<Auth> sendSms(String phoneNumber) {
|
||||
return AuthFb.instance.sendSmsCodeToPhoneNumber(phoneNumber);
|
||||
}
|
||||
|
||||
Future<Auth> signin(String smsCode) {
|
||||
return AuthFb.instance.signInWithPhoneNumber(smsCode);
|
||||
}
|
||||
|
||||
Future<void> signout() {
|
||||
return AuthFb.instance.signout();
|
||||
}
|
||||
|
||||
Future<bool> hasSignup() {
|
||||
return AuthFb.instance.hasSignup();
|
||||
}
|
||||
|
||||
Future<void> signup(String name) {
|
||||
return AuthFb.instance.signup(name);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,10 +1,14 @@
|
||||
import 'package:country_code_picker/country_code_picker.dart';
|
||||
import 'package:fcs/fcs/common/domain/entities/auth.dart';
|
||||
import 'package:fcs/fcs/common/domain/entities/auth_status.dart';
|
||||
import 'package:fcs/fcs/common/pages/signin/model/signin_model.dart';
|
||||
import 'package:fcs/widget/bottom_up_page_route.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
import '../../../../theme/theme.dart';
|
||||
import '../../theme.dart';
|
||||
import '../../../../widget/local_text.dart';
|
||||
import '../../../../widget/progress.dart';
|
||||
import 'code_page.dart';
|
||||
@@ -157,19 +161,33 @@ class _SigninPageState extends State<SigninPage> {
|
||||
return;
|
||||
}
|
||||
|
||||
setState(() {
|
||||
_isLoading = true;
|
||||
});
|
||||
|
||||
try {
|
||||
Exception exp;
|
||||
phoneNumber = phoneNumber[0] == "0"
|
||||
? phoneNumber.replaceFirst("0", "")
|
||||
: phoneNumber;
|
||||
phoneNumber = dialCode + phoneNumber;
|
||||
await Navigator.of(context)
|
||||
.push(BottomUpPageRoute(CodePage(phoneNumber: phoneNumber)));
|
||||
Navigator.pop(context);
|
||||
|
||||
Auth auth = await context.read<SigninModel>().sendSms(phoneNumber);
|
||||
if (auth.authStatus == AuthStatus.SMS_SENT) {
|
||||
await Navigator.of(context)
|
||||
.push(BottomUpPageRoute(CodePage(phoneNumber: phoneNumber)));
|
||||
Navigator.pop(context);
|
||||
}
|
||||
if (auth.authStatus == AuthStatus.ERROR) {
|
||||
showMsgDialog(context, "Error", auth.authErrorMsg);
|
||||
}
|
||||
|
||||
if (exp != null) throw exp;
|
||||
} catch (e) {
|
||||
showMsgDialog(context, "Error", e.toString());
|
||||
}
|
||||
setState(() {
|
||||
_isLoading = false;
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,21 +1,19 @@
|
||||
import 'package:fcs/model/shared_pref.dart';
|
||||
import 'package:fcs/widget/bottom_up_page_route.dart';
|
||||
import 'package:fcs/widget/localization/app_translations.dart';
|
||||
import 'package:fcs/fcs/common/pages/signin/model/signin_model.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
|
||||
|
||||
import '../theme/theme.dart';
|
||||
import '../widget/local_text.dart';
|
||||
import '../widget/progress.dart';
|
||||
import 'home_page.dart';
|
||||
import '../../../../widget/local_text.dart';
|
||||
import '../../../../widget/progress.dart';
|
||||
import '../../theme.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
class UserEditPage extends StatefulWidget {
|
||||
class SignupPage extends StatefulWidget {
|
||||
@override
|
||||
_UserEditPageState createState() => _UserEditPageState();
|
||||
_SignupPageState createState() => _SignupPageState();
|
||||
}
|
||||
|
||||
class _UserEditPageState extends State<UserEditPage> {
|
||||
class _SignupPageState extends State<SignupPage> {
|
||||
bool _isLoading = false;
|
||||
TextEditingController nameCtl;
|
||||
|
||||
@@ -110,6 +108,7 @@ class _UserEditPageState extends State<UserEditPage> {
|
||||
}
|
||||
|
||||
_submit() async {
|
||||
Navigator.pushNamedAndRemoveUntil(context, "/homeLogin", (r) => false);
|
||||
await context.read<SigninModel>().signup(nameCtl.text);
|
||||
Navigator.pushNamedAndRemoveUntil(context, "/home", (r) => false);
|
||||
}
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
import 'dart:async';
|
||||
|
||||
import 'package:fcs/model/main_model.dart';
|
||||
import 'package:fcs/theme/theme.dart';
|
||||
import 'package:fcs/fcs/common/theme.dart';
|
||||
import 'package:fcs/widget/local_text.dart';
|
||||
import 'package:fcs/widget/localization/app_translations.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
@@ -51,9 +51,9 @@ class _SplashScreenState extends State<SplashScreen> {
|
||||
if (_loaded) {
|
||||
timer.cancel();
|
||||
if (this._isLogin) {
|
||||
Navigator.of(context).pushReplacementNamed('/homeLogin');
|
||||
} else {
|
||||
Navigator.of(context).pushReplacementNamed('/home');
|
||||
} else {
|
||||
Navigator.of(context).pushReplacementNamed('/welcome');
|
||||
}
|
||||
|
||||
// if (_isSupport) {
|
||||
@@ -13,21 +13,21 @@ import 'package:intl/intl.dart' as intl;
|
||||
import 'package:logging/logging.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
import '../theme/theme.dart';
|
||||
import '../theme.dart';
|
||||
import 'profile_page.dart';
|
||||
import '../fcs/common/pages/signin/signin_page.dart';
|
||||
import 'term.dart';
|
||||
import 'signin/signin_page.dart';
|
||||
import '../../../pages/term.dart';
|
||||
|
||||
final msgLog = Logger('backgroundMessageHandler');
|
||||
|
||||
class HomePageWelcome extends StatefulWidget {
|
||||
class WelcomePage extends StatefulWidget {
|
||||
@override
|
||||
_HomePageWelcomeState createState() => _HomePageWelcomeState();
|
||||
_WelcomePageState createState() => _WelcomePageState();
|
||||
}
|
||||
|
||||
typedef BtnCallback();
|
||||
|
||||
class _HomePageWelcomeState extends State<HomePageWelcome> {
|
||||
class _WelcomePageState extends State<WelcomePage> {
|
||||
final log = Logger('_HomePageWelcomeState');
|
||||
bool login = false;
|
||||
bool customer = true;
|
||||
@@ -137,56 +137,54 @@ class _HomePageWelcomeState extends State<HomePageWelcome> {
|
||||
Color(0xfa272262),
|
||||
], // whitish to gray
|
||||
)),
|
||||
child: Column(
|
||||
child: ListView(
|
||||
children: <Widget>[
|
||||
Expanded(
|
||||
child: Column(
|
||||
children: <Widget>[
|
||||
Padding(
|
||||
padding: const EdgeInsets.all(80.0),
|
||||
child: Text(
|
||||
"Welcome!",
|
||||
textAlign: TextAlign.center,
|
||||
style: TextStyle(
|
||||
color: Colors.white,
|
||||
fontSize: 28,
|
||||
fontFamily: "Roboto"),
|
||||
),
|
||||
Column(
|
||||
children: <Widget>[
|
||||
Padding(
|
||||
padding: const EdgeInsets.all(80.0),
|
||||
child: Text(
|
||||
"Welcome!",
|
||||
textAlign: TextAlign.center,
|
||||
style: TextStyle(
|
||||
color: Colors.white,
|
||||
fontSize: 28,
|
||||
fontFamily: "Roboto"),
|
||||
),
|
||||
Padding(
|
||||
padding: const EdgeInsets.only(top: 0.0),
|
||||
child: Text(
|
||||
"Cargo Services",
|
||||
textAlign: TextAlign.center,
|
||||
style: TextStyle(
|
||||
color: Colors.white,
|
||||
fontSize: 28,
|
||||
fontFamily: "Roboto"),
|
||||
),
|
||||
),
|
||||
Padding(
|
||||
padding: const EdgeInsets.only(top: 0.0),
|
||||
child: Text(
|
||||
"Cargo Services",
|
||||
textAlign: TextAlign.center,
|
||||
style: TextStyle(
|
||||
color: Colors.white,
|
||||
fontSize: 28,
|
||||
fontFamily: "Roboto"),
|
||||
),
|
||||
Padding(
|
||||
padding: const EdgeInsets.all(10.0),
|
||||
child: Text(
|
||||
"by FCS Trading",
|
||||
textAlign: TextAlign.center,
|
||||
style: TextStyle(
|
||||
color: Colors.white,
|
||||
fontSize: 18,
|
||||
fontFamily: "Roboto"),
|
||||
),
|
||||
),
|
||||
Padding(
|
||||
padding: const EdgeInsets.all(10.0),
|
||||
child: Text(
|
||||
"by FCS Trading",
|
||||
textAlign: TextAlign.center,
|
||||
style: TextStyle(
|
||||
color: Colors.white,
|
||||
fontSize: 18,
|
||||
fontFamily: "Roboto"),
|
||||
),
|
||||
Container(
|
||||
padding: EdgeInsets.only(top: 10, bottom: 10),
|
||||
child: CircleAvatar(
|
||||
radius: (50),
|
||||
backgroundColor: Colors.white,
|
||||
child: ClipRRect(
|
||||
borderRadius: BorderRadius.circular(50),
|
||||
child: Image.asset("assets/logo.jpg"),
|
||||
)),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
Container(
|
||||
padding: EdgeInsets.only(top: 10, bottom: 10),
|
||||
child: CircleAvatar(
|
||||
radius: (50),
|
||||
backgroundColor: Colors.white,
|
||||
child: ClipRRect(
|
||||
borderRadius: BorderRadius.circular(50),
|
||||
child: Image.asset("assets/logo.jpg"),
|
||||
)),
|
||||
),
|
||||
],
|
||||
),
|
||||
// Row(
|
||||
// children: <Widget>[
|
||||
@@ -241,28 +239,29 @@ class _HomePageWelcomeState extends State<HomePageWelcome> {
|
||||
// ),
|
||||
// ],
|
||||
// ),
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: <Widget>[
|
||||
// _buildSmallButton(
|
||||
// "Policies", FontAwesomeIcons.fileContract),
|
||||
InkWell(
|
||||
onTap: () {
|
||||
Navigator.of(context).push(
|
||||
MaterialPageRoute(builder: (_) => Contact()));
|
||||
},
|
||||
child: _buildSmallButton(
|
||||
"Contact Us", SimpleLineIcons.support),
|
||||
),
|
||||
InkWell(
|
||||
onTap: () {
|
||||
Navigator.of(context).push(
|
||||
MaterialPageRoute(builder: (_) => Term()));
|
||||
},
|
||||
child: _buildSmallButton(
|
||||
"Terms of service", Icons.info_outline),
|
||||
),
|
||||
],
|
||||
Padding(
|
||||
padding: const EdgeInsets.only(top: 28.0),
|
||||
child: Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
|
||||
children: <Widget>[
|
||||
InkWell(
|
||||
onTap: () {
|
||||
Navigator.of(context).push(
|
||||
MaterialPageRoute(builder: (_) => Contact()));
|
||||
},
|
||||
child: _buildSmallButton(
|
||||
"Contact Us", SimpleLineIcons.support),
|
||||
),
|
||||
InkWell(
|
||||
onTap: () {
|
||||
Navigator.of(context).push(
|
||||
MaterialPageRoute(builder: (_) => Term()));
|
||||
},
|
||||
child: _buildSmallButton(
|
||||
"Terms of service", Icons.info_outline),
|
||||
),
|
||||
],
|
||||
),
|
||||
)
|
||||
],
|
||||
))),
|
||||
@@ -285,20 +284,12 @@ class _HomePageWelcomeState extends State<HomePageWelcome> {
|
||||
return Padding(
|
||||
padding: const EdgeInsets.all(18.0),
|
||||
child: Row(
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: <Widget>[
|
||||
IconButton(
|
||||
icon: Icon(iconData, color: Colors.white70),
|
||||
color: Colors.white70,
|
||||
onPressed: null),
|
||||
// RaisedButton(onPressed: ()=>{},child: Row(
|
||||
// children: <Widget>[
|
||||
// IconButton(
|
||||
// icon: Icon(iconData, ),
|
||||
// onPressed: null),
|
||||
// Text(text),
|
||||
// ],
|
||||
// ),color: Colors.transparent,
|
||||
// focusColor: Colors.transparent,),
|
||||
Padding(
|
||||
padding: const EdgeInsets.only(right: 5),
|
||||
child: Icon(iconData, color: Colors.white70, size: 18),
|
||||
),
|
||||
Text(
|
||||
text,
|
||||
style: subMenuStyle,
|
||||
@@ -31,7 +31,7 @@ class AuthImp implements AuthInterface {
|
||||
}
|
||||
|
||||
@override
|
||||
Future<Auth> logout() {
|
||||
return authFb.logout();
|
||||
Future<Auth> signout() {
|
||||
return authFb.signout();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,5 +3,5 @@ import 'package:fcs/fcs/common/domain/entities/auth.dart';
|
||||
abstract class AuthInterface {
|
||||
Future<Auth> sendSmsCodeToPhoneNumber(String phoneNumber);
|
||||
Future<Auth> signInWithSmsCode(String smsCode);
|
||||
Future<Auth> logout();
|
||||
Future<Auth> signout();
|
||||
}
|
||||
|
||||
@@ -18,7 +18,7 @@ const TextStyle welcomeLabelStyle =
|
||||
const TextStyle welcomeSubLabelStyle =
|
||||
TextStyle(fontSize: 18, color: primaryColor, fontWeight: FontWeight.w500);
|
||||
const TextStyle subMenuStyle =
|
||||
TextStyle(fontSize: 14, color: Colors.white, fontWeight: FontWeight.w500);
|
||||
TextStyle(fontSize: 11, color: Colors.white, fontWeight: FontWeight.w500);
|
||||
const TextStyle siginButtonStyle =
|
||||
TextStyle(fontSize: 16, color: Colors.white, fontWeight: FontWeight.w500);
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
import 'package:fcs/config.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:logging/logging.dart';
|
||||
import 'package:fcs/config.dart';
|
||||
import 'package:shared_preferences/shared_preferences.dart';
|
||||
|
||||
import 'app.dart';
|
||||
|
||||
@@ -9,8 +8,7 @@ void main() {
|
||||
Config(
|
||||
flavor: Flavor.DEV,
|
||||
color: Colors.blue,
|
||||
apiURL:
|
||||
"https://asia-northeast1-mokkon-wholesale-dev.cloudfunctions.net/APIOK",
|
||||
apiURL: "http://192.168.100.11:7777",
|
||||
reportURL: "http://petrok-dev.mokkon.com:8080",
|
||||
reportProjectID: "dev",
|
||||
level: Level.ALL);
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import 'package:flutter/foundation.dart';
|
||||
import 'package:fcs/model/api_helper.dart';
|
||||
import 'package:fcs/fcs/common/api_helper.dart';
|
||||
|
||||
import '../vo/setting.dart';
|
||||
import '../vo/user.dart';
|
||||
|
||||
@@ -4,7 +4,7 @@ import 'dart:convert' show HtmlEscape, base64, utf8;
|
||||
import 'package:cloud_firestore/cloud_firestore.dart';
|
||||
import 'package:logging/logging.dart';
|
||||
import 'package:fcs/config.dart';
|
||||
import 'package:fcs/theme/theme.dart';
|
||||
import 'package:fcs/fcs/common/theme.dart';
|
||||
import 'package:fcs/vo/buyer.dart';
|
||||
import 'package:fcs/vo/popup_menu.dart';
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@ import 'dart:typed_data';
|
||||
|
||||
import 'package:cloud_firestore/cloud_firestore.dart';
|
||||
import 'package:path/path.dart' as Path;
|
||||
import 'package:fcs/model/api_helper.dart';
|
||||
import 'package:fcs/fcs/common/api_helper.dart';
|
||||
import 'package:fcs/model/constants.dart';
|
||||
import 'package:fcs/pages/do/do_files.dart';
|
||||
import 'package:fcs/vo/do.dart';
|
||||
@@ -27,7 +27,6 @@ class DOModel extends BaseModel {
|
||||
_loadDOs();
|
||||
}
|
||||
|
||||
|
||||
@override
|
||||
logout() async {
|
||||
if (listener != null) await listener.cancel();
|
||||
@@ -247,7 +246,8 @@ class DOModel extends BaseModel {
|
||||
.where("status", isEqualTo: do_approved_status)
|
||||
.where("delivery_date", isGreaterThanOrEqualTo: date)
|
||||
.where("delivery_date", isLessThan: dateAddOne)
|
||||
.orderBy("delivery_date").orderBy("user_name")
|
||||
.orderBy("delivery_date")
|
||||
.orderBy("user_name")
|
||||
.limit(100)
|
||||
.getDocuments();
|
||||
snapshots.documents.forEach((d) {
|
||||
|
||||
@@ -22,7 +22,7 @@ import 'package:fcs/widget/NetworkConnectivity.dart';
|
||||
import '../config.dart';
|
||||
import '../vo/status.dart';
|
||||
import '../vo/user.dart';
|
||||
import 'api_helper.dart';
|
||||
import '../fcs/common/api_helper.dart';
|
||||
import 'base_model.dart';
|
||||
import 'constants.dart';
|
||||
import 'firebase_helper.dart';
|
||||
@@ -97,10 +97,10 @@ class MainModel extends ChangeNotifier {
|
||||
phone: '+959123456789',
|
||||
mail: 'kbz@gmail.com'),
|
||||
PaymentMethod(
|
||||
name: 'PayPal',
|
||||
accountName: 'FCS',
|
||||
link: 'https://www.paypal.com/donate/buttons',
|
||||
),
|
||||
name: 'PayPal',
|
||||
accountName: 'FCS',
|
||||
link: 'https://www.paypal.com/donate/buttons',
|
||||
),
|
||||
];
|
||||
return methods;
|
||||
}
|
||||
|
||||
@@ -6,7 +6,7 @@ import 'package:fcs/vo/report.dart';
|
||||
import 'package:fcs/vo/report_user.dart';
|
||||
import 'package:open_file/open_file.dart';
|
||||
import 'package:path_provider/path_provider.dart';
|
||||
import 'package:fcs/model/api_helper.dart' as api;
|
||||
import 'package:fcs/fcs/common/api_helper.dart' as api;
|
||||
import 'package:fcs/vo/report.dart';
|
||||
|
||||
import '../config.dart';
|
||||
|
||||
@@ -8,7 +8,7 @@ import 'package:fcs/widget/local_text.dart';
|
||||
import 'package:fcs/widget/localization/app_translations.dart';
|
||||
import 'package:fcs/widget/progress.dart';
|
||||
|
||||
import '../theme/theme.dart' as Theme;
|
||||
import '../fcs/common/theme.dart' as Theme;
|
||||
import 'util.dart';
|
||||
|
||||
class AddPINEditor extends StatefulWidget {
|
||||
|
||||
@@ -12,7 +12,7 @@ import 'package:fcs/widget/popupmenu.dart';
|
||||
import 'package:fcs/widget/progress.dart';
|
||||
import 'package:zefyr/zefyr.dart';
|
||||
|
||||
import '../theme/theme.dart';
|
||||
import '../fcs/common/theme.dart';
|
||||
import 'announcement_editor.dart';
|
||||
|
||||
class AnnouncementPage extends StatefulWidget {
|
||||
|
||||
@@ -5,7 +5,7 @@ import 'package:provider/provider.dart';
|
||||
import 'package:fcs/model/announcement_model.dart';
|
||||
import 'package:fcs/model/language_model.dart';
|
||||
import 'package:fcs/pages/util.dart';
|
||||
import 'package:fcs/theme/theme.dart';
|
||||
import 'package:fcs/fcs/common/theme.dart';
|
||||
import 'package:fcs/vo/announcement.dart';
|
||||
import 'package:fcs/widget/local_text.dart';
|
||||
import 'package:fcs/widget/localization/app_translations.dart';
|
||||
|
||||
@@ -8,7 +8,7 @@ import 'package:fcs/widget/local_text.dart';
|
||||
import 'package:fcs/widget/localization/app_translations.dart';
|
||||
import 'package:fcs/widget/progress.dart';
|
||||
|
||||
import '../theme/theme.dart';
|
||||
import '../fcs/common/theme.dart';
|
||||
import 'announcement.dart';
|
||||
import 'announcement_editor.dart';
|
||||
|
||||
@@ -43,15 +43,13 @@ class _AnnouncementListState extends State<AnnouncementList> {
|
||||
inAsyncCall: _isLoading,
|
||||
child: Scaffold(
|
||||
appBar: AppBar(
|
||||
backgroundColor: primaryColor,
|
||||
title:
|
||||
LocalText(
|
||||
context,
|
||||
"announcement.title",
|
||||
color: Colors.white,
|
||||
fontSize: 20,
|
||||
)
|
||||
),
|
||||
backgroundColor: primaryColor,
|
||||
title: LocalText(
|
||||
context,
|
||||
"announcement.title",
|
||||
color: Colors.white,
|
||||
fontSize: 20,
|
||||
)),
|
||||
floatingActionButton: isOwnerAndAbove || hasAdmin
|
||||
? FloatingActionButton(
|
||||
backgroundColor: primaryColor,
|
||||
@@ -118,19 +116,22 @@ class _AnnouncementListState extends State<AnnouncementList> {
|
||||
],
|
||||
),
|
||||
),
|
||||
Column(
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: <Widget>[
|
||||
Padding(
|
||||
padding: const EdgeInsets.all(8.0),
|
||||
child: Text(announce.time==null?"":timeFormatter.format(announce.time)),
|
||||
),
|
||||
announce.fromToday()
|
||||
? Container()
|
||||
: Text(announce.time==null?"":dateFormatter.format(announce.time)),
|
||||
],
|
||||
)
|
||||
|
||||
Column(
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: <Widget>[
|
||||
Padding(
|
||||
padding: const EdgeInsets.all(8.0),
|
||||
child: Text(announce.time == null
|
||||
? ""
|
||||
: timeFormatter.format(announce.time)),
|
||||
),
|
||||
announce.fromToday()
|
||||
? Container()
|
||||
: Text(announce.time == null
|
||||
? ""
|
||||
: dateFormatter.format(announce.time)),
|
||||
],
|
||||
)
|
||||
],
|
||||
),
|
||||
),
|
||||
|
||||
@@ -5,7 +5,7 @@ import 'package:image_picker/image_picker.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:fcs/model/main_model.dart';
|
||||
import 'package:fcs/pages/util.dart';
|
||||
import 'package:fcs/theme/theme.dart';
|
||||
import 'package:fcs/fcs/common/theme.dart';
|
||||
import 'package:fcs/vo/bank_account.dart';
|
||||
import 'package:fcs/widget/local_text.dart';
|
||||
import 'package:fcs/widget/local_text_field.dart';
|
||||
|
||||
@@ -3,7 +3,7 @@ import 'package:flutter/services.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:fcs/model/main_model.dart';
|
||||
import 'package:fcs/pages/banks/bank_edit.dart';
|
||||
import 'package:fcs/theme/theme.dart';
|
||||
import 'package:fcs/fcs/common/theme.dart';
|
||||
import 'package:fcs/vo/bank_account.dart';
|
||||
import 'package:fcs/widget/local_text.dart';
|
||||
import 'package:fcs/widget/progress.dart';
|
||||
|
||||
@@ -5,7 +5,7 @@ import 'package:flutter_icons/flutter_icons.dart';
|
||||
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:fcs/model/product_model.dart';
|
||||
import 'package:fcs/theme/theme.dart';
|
||||
import 'package:fcs/fcs/common/theme.dart';
|
||||
import 'package:fcs/vo/buyer.dart';
|
||||
import 'package:fcs/vo/product.dart';
|
||||
import 'package:fcs/widget/progress.dart';
|
||||
|
||||
@@ -2,7 +2,7 @@ import 'package:flutter/material.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:fcs/model/user_model.dart';
|
||||
import 'package:fcs/pages/util.dart';
|
||||
import 'package:fcs/theme/theme.dart';
|
||||
import 'package:fcs/fcs/common/theme.dart';
|
||||
import 'package:fcs/vo/popup_menu.dart';
|
||||
import 'package:fcs/vo/user.dart';
|
||||
import 'package:fcs/widget/local_text.dart';
|
||||
|
||||
@@ -12,7 +12,7 @@ import 'package:fcs/widget/label_widgets.dart';
|
||||
import 'package:fcs/widget/localization/app_translations.dart';
|
||||
import 'package:fcs/widget/progress.dart';
|
||||
|
||||
import '../theme/theme.dart';
|
||||
import '../fcs/common/theme.dart';
|
||||
import 'document_log_page.dart';
|
||||
|
||||
class BuyerInfo extends StatefulWidget {
|
||||
|
||||
@@ -9,7 +9,7 @@ import 'package:fcs/widget/popupmenu.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:fcs/widget/progress.dart';
|
||||
|
||||
import '../theme/theme.dart';
|
||||
import '../fcs/common/theme.dart';
|
||||
import 'buyer_list_row.dart';
|
||||
|
||||
class BuyerList extends StatefulWidget {
|
||||
|
||||
@@ -2,7 +2,7 @@ import 'package:flutter/material.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:fcs/model/buyer_model.dart';
|
||||
import 'package:fcs/pages/util.dart';
|
||||
import 'package:fcs/theme/theme.dart';
|
||||
import 'package:fcs/fcs/common/theme.dart';
|
||||
import 'package:fcs/vo/buyer.dart';
|
||||
|
||||
import 'buyer_info.dart';
|
||||
|
||||
@@ -7,7 +7,7 @@ import 'package:fcs/model/main_model.dart';
|
||||
import 'package:fcs/widget/local_text.dart';
|
||||
import 'package:fcs/widget/progress.dart';
|
||||
|
||||
import '../theme/theme.dart';
|
||||
import '../fcs/common/theme.dart';
|
||||
import '../widget/label_widgets.dart';
|
||||
import '../widget/local_text.dart';
|
||||
import 'instruction.dart';
|
||||
|
||||
@@ -6,17 +6,19 @@ import 'package:fcs/widget/localization/app_translations.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:fcs/widget/progress.dart';
|
||||
|
||||
import '../theme/theme.dart';
|
||||
import '../fcs/common/theme.dart';
|
||||
|
||||
class CalculateShipmentCostEditor extends StatefulWidget {
|
||||
final PickUp pickUp;
|
||||
CalculateShipmentCostEditor({this.pickUp});
|
||||
|
||||
@override
|
||||
_CalculateShipmentCostEditorState createState() => _CalculateShipmentCostEditorState();
|
||||
_CalculateShipmentCostEditorState createState() =>
|
||||
_CalculateShipmentCostEditorState();
|
||||
}
|
||||
|
||||
class _CalculateShipmentCostEditorState extends State<CalculateShipmentCostEditor> {
|
||||
class _CalculateShipmentCostEditorState
|
||||
extends State<CalculateShipmentCostEditor> {
|
||||
TextEditingController _addressEditingController = new TextEditingController();
|
||||
TextEditingController _fromTimeEditingController =
|
||||
new TextEditingController();
|
||||
|
||||
@@ -9,7 +9,7 @@ import 'package:fcs/widget/local_text.dart';
|
||||
import 'package:fcs/widget/localization/app_translations.dart';
|
||||
import 'package:fcs/widget/progress.dart';
|
||||
|
||||
import '../theme/theme.dart' as Theme;
|
||||
import '../fcs/common/theme.dart' as Theme;
|
||||
import 'confirm_email.dart';
|
||||
import 'util.dart';
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@ import 'package:fcs/widget/local_text.dart';
|
||||
import 'package:fcs/widget/localization/app_translations.dart';
|
||||
import 'package:fcs/widget/progress.dart';
|
||||
|
||||
import '../theme/theme.dart' as Theme;
|
||||
import '../fcs/common/theme.dart' as Theme;
|
||||
import 'util.dart';
|
||||
|
||||
class ChangePassword extends StatefulWidget {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:fcs/model/user_model.dart';
|
||||
import 'package:fcs/theme/theme.dart';
|
||||
import 'package:fcs/fcs/common/theme.dart';
|
||||
import 'package:fcs/widget/localization/app_translations.dart';
|
||||
import 'package:fcs/widget/progress.dart';
|
||||
|
||||
@@ -38,7 +38,7 @@ class _ConfirmEmailState extends State<ConfirmEmail> {
|
||||
try {
|
||||
await userModel.confirmEmail(
|
||||
widget.id, widget.email, widget.phoneNumber, _sms.text);
|
||||
Navigator.pushNamedAndRemoveUntil(context, "/home", (r) => false);
|
||||
Navigator.pushNamedAndRemoveUntil(context, "/welcome", (r) => false);
|
||||
} catch (e) {
|
||||
showMsgDialog(context, "Error", e.toString());
|
||||
}
|
||||
|
||||
@@ -7,7 +7,7 @@ import 'package:provider/provider.dart';
|
||||
import 'package:url_launcher/url_launcher.dart';
|
||||
import 'package:fcs/model/main_model.dart';
|
||||
import 'package:fcs/pages/util.dart';
|
||||
import 'package:fcs/theme/theme.dart';
|
||||
import 'package:fcs/fcs/common/theme.dart';
|
||||
import 'package:fcs/widget/local_text.dart';
|
||||
import 'package:fcs/widget/progress.dart';
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@ import 'package:fcs/model/language_model.dart';
|
||||
import 'package:fcs/model/main_model.dart';
|
||||
import 'package:fcs/pages/phone_input.dart';
|
||||
import 'package:fcs/pages/util.dart';
|
||||
import 'package:fcs/theme/theme.dart';
|
||||
import 'package:fcs/fcs/common/theme.dart';
|
||||
import 'package:fcs/vo/setting.dart';
|
||||
import 'package:fcs/widget/local_text.dart';
|
||||
import 'package:fcs/widget/local_text_field.dart';
|
||||
|
||||
@@ -4,7 +4,7 @@ import 'package:fcs/widget/localization/app_translations.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:fcs/widget/progress.dart';
|
||||
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
|
||||
import '../theme/theme.dart';
|
||||
import '../fcs/common/theme.dart';
|
||||
|
||||
class CustomEditor extends StatefulWidget {
|
||||
final Custom custom;
|
||||
|
||||
@@ -4,7 +4,7 @@ import 'package:fcs/model/employee_model.dart';
|
||||
import 'package:fcs/model/language_model.dart';
|
||||
import 'package:fcs/model/main_model.dart';
|
||||
import 'package:fcs/model/user_model.dart';
|
||||
import 'package:fcs/theme/theme.dart';
|
||||
import 'package:fcs/fcs/common/theme.dart';
|
||||
import 'package:fcs/vo/role.dart';
|
||||
import 'package:fcs/vo/user.dart';
|
||||
import 'package:fcs/widget/local_text.dart';
|
||||
|
||||
@@ -7,10 +7,10 @@ import 'package:flutter_icons/flutter_icons.dart';
|
||||
import 'package:intl/intl.dart';
|
||||
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:fcs/theme/theme.dart';
|
||||
import 'package:fcs/fcs/common/theme.dart';
|
||||
import 'package:fcs/widget/progress.dart';
|
||||
|
||||
import '../theme/theme.dart';
|
||||
import '../fcs/common/theme.dart';
|
||||
import '../vo/user.dart';
|
||||
import '../widget/local_text.dart';
|
||||
import 'customer_editor.dart';
|
||||
|
||||
@@ -12,7 +12,7 @@ import 'package:fcs/model/main_model.dart';
|
||||
import 'package:fcs/model/po_model.dart';
|
||||
import 'package:fcs/model/product_model.dart';
|
||||
import 'package:fcs/pages/do/photo_page.dart';
|
||||
import 'package:fcs/theme/theme.dart';
|
||||
import 'package:fcs/fcs/common/theme.dart';
|
||||
import 'package:fcs/vo/do.dart';
|
||||
import 'package:fcs/widget/img_file.dart';
|
||||
import 'package:fcs/widget/local_text.dart';
|
||||
@@ -425,8 +425,8 @@ class _DeliveryItemState extends State<DeliveryItem> {
|
||||
label: LocalText(context, "do.storage"),
|
||||
),
|
||||
MyDataColumn(
|
||||
label: LocalText(context, "do.quantity"),numeric: true
|
||||
),
|
||||
label: LocalText(context, "do.quantity"),
|
||||
numeric: true),
|
||||
],
|
||||
rows: getProductRow(doObj.doLines),
|
||||
),
|
||||
@@ -446,7 +446,7 @@ class _DeliveryItemState extends State<DeliveryItem> {
|
||||
|
||||
List<MyDataRow> getProductRow(List<DOLine> doLines) {
|
||||
ProductModel productModel = Provider.of<ProductModel>(context);
|
||||
if (doLines.isNotEmpty) {
|
||||
if (doLines.isNotEmpty) {
|
||||
doLines.forEach((d) {
|
||||
productModel.products.forEach((p) {
|
||||
if (p.id == d.productID) {
|
||||
@@ -471,9 +471,7 @@ class _DeliveryItemState extends State<DeliveryItem> {
|
||||
MyDataCell(
|
||||
new Text(d.storageName, style: textStyle),
|
||||
),
|
||||
MyDataCell(
|
||||
NumberCell(d.qty)
|
||||
),
|
||||
MyDataCell(NumberCell(d.qty)),
|
||||
],
|
||||
);
|
||||
}).toList();
|
||||
|
||||
@@ -7,7 +7,7 @@ import 'package:fcs/model/language_model.dart';
|
||||
import 'package:fcs/model/main_model.dart';
|
||||
import 'package:fcs/pages/delivery/delivery_item.dart';
|
||||
import 'package:fcs/pages/util.dart';
|
||||
import 'package:fcs/theme/theme.dart';
|
||||
import 'package:fcs/fcs/common/theme.dart';
|
||||
import 'package:fcs/vo/popup_menu.dart';
|
||||
import 'package:fcs/widget/localization/app_translations.dart';
|
||||
import 'package:fcs/widget/popupmenu.dart';
|
||||
|
||||
@@ -8,7 +8,7 @@ import 'package:fcs/widget/local_text.dart';
|
||||
import 'package:fcs/widget/popupmenu.dart';
|
||||
import 'package:fcs/widget/progress.dart';
|
||||
|
||||
import '../theme/theme.dart';
|
||||
import '../fcs/common/theme.dart';
|
||||
import 'util.dart';
|
||||
|
||||
class PhoneDeviceList extends StatefulWidget {
|
||||
|
||||
@@ -5,7 +5,7 @@ import 'package:fcs/widget/localization/app_translations.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:fcs/widget/progress.dart';
|
||||
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
|
||||
import '../theme/theme.dart';
|
||||
import '../fcs/common/theme.dart';
|
||||
|
||||
class DiscountByWeightEditor extends StatefulWidget {
|
||||
final Discount discount;
|
||||
|
||||
@@ -8,7 +8,7 @@ import 'package:provider/provider.dart';
|
||||
import 'package:fcs/widget/localization/app_translations.dart';
|
||||
import 'package:fcs/widget/progress.dart';
|
||||
|
||||
import '../theme/theme.dart';
|
||||
import '../fcs/common/theme.dart';
|
||||
|
||||
class DiscountEditor extends StatefulWidget {
|
||||
final Discount discount;
|
||||
|
||||
@@ -7,7 +7,7 @@ import 'package:provider/provider.dart';
|
||||
import 'package:fcs/widget/localization/app_translations.dart';
|
||||
import 'package:fcs/widget/progress.dart';
|
||||
|
||||
import '../theme/theme.dart';
|
||||
import '../fcs/common/theme.dart';
|
||||
|
||||
class DiscountList extends StatefulWidget {
|
||||
@override
|
||||
@@ -95,7 +95,8 @@ class _DiscountListState extends State<DiscountList> {
|
||||
crossAxisAlignment: CrossAxisAlignment.end,
|
||||
children: <Widget>[
|
||||
Padding(
|
||||
padding: const EdgeInsets.only(left: 10.0,bottom: 5.0),
|
||||
padding:
|
||||
const EdgeInsets.only(left: 10.0, bottom: 5.0),
|
||||
child: Text(
|
||||
'\$ ${discount.amount.toString()}',
|
||||
style: TextStyle(
|
||||
@@ -104,7 +105,7 @@ class _DiscountListState extends State<DiscountList> {
|
||||
fontSize: 16),
|
||||
),
|
||||
),
|
||||
getStatus(discount.status),
|
||||
getStatus(discount.status),
|
||||
],
|
||||
),
|
||||
],
|
||||
|
||||
@@ -13,7 +13,7 @@ import 'package:fcs/model/main_model.dart';
|
||||
import 'package:fcs/model/po_model.dart';
|
||||
import 'package:fcs/model/product_model.dart';
|
||||
import 'package:fcs/pages/do/photo_page.dart';
|
||||
import 'package:fcs/theme/theme.dart';
|
||||
import 'package:fcs/fcs/common/theme.dart';
|
||||
import 'package:fcs/vo/do.dart';
|
||||
import 'package:fcs/vo/po.dart';
|
||||
import 'package:fcs/widget/img_file.dart';
|
||||
@@ -539,8 +539,9 @@ class _DOApprovalState extends State<DOApproval> {
|
||||
label: LocalText(context, "do.storage"),
|
||||
),
|
||||
MyDataColumn(
|
||||
label: LocalText(context, "do.quantity"),numeric: true
|
||||
),
|
||||
label:
|
||||
LocalText(context, "do.quantity"),
|
||||
numeric: true),
|
||||
],
|
||||
rows: getProductRow(doObj.doLines),
|
||||
),
|
||||
@@ -633,16 +634,20 @@ class _DOApprovalState extends State<DOApproval> {
|
||||
MyDataColumn(label: LocalText(context, "po.number")),
|
||||
MyDataColumn(label: LocalText(context, "po.product")),
|
||||
MyDataColumn(
|
||||
label: LocalText(context, "do.po_qty"),numeric: true,
|
||||
label: LocalText(context, "do.po_qty"),
|
||||
numeric: true,
|
||||
),
|
||||
MyDataColumn(
|
||||
label: LocalText(context, "do.po_balance_qty"),numeric: true,
|
||||
label: LocalText(context, "do.po_balance_qty"),
|
||||
numeric: true,
|
||||
),
|
||||
MyDataColumn(
|
||||
label: LocalText(context, "po.retrieved.amount"),numeric: true,
|
||||
label: LocalText(context, "po.retrieved.amount"),
|
||||
numeric: true,
|
||||
),
|
||||
MyDataColumn(
|
||||
label: LocalText(context, "do.do_qty"),numeric: true,
|
||||
label: LocalText(context, "do.do_qty"),
|
||||
numeric: true,
|
||||
),
|
||||
],
|
||||
rows: getPOProductRow(),
|
||||
|
||||
@@ -9,7 +9,7 @@ import 'package:fcs/model/po_model.dart';
|
||||
import 'package:fcs/model/product_model.dart';
|
||||
import 'package:fcs/pages/do/do_product_item.dart';
|
||||
import 'package:fcs/pages/util.dart';
|
||||
import 'package:fcs/theme/theme.dart';
|
||||
import 'package:fcs/fcs/common/theme.dart';
|
||||
import 'package:fcs/vo/do.dart';
|
||||
import 'package:fcs/vo/po.dart';
|
||||
import 'package:fcs/widget/img_file.dart';
|
||||
@@ -415,9 +415,7 @@ class _DOFormState extends State<DOForm> {
|
||||
columns: [
|
||||
MyDataColumn(label: LocalText(context, "do.product")),
|
||||
MyDataColumn(
|
||||
label: LocalText(context, "po.avail.qty"),
|
||||
numeric: true
|
||||
),
|
||||
label: LocalText(context, "po.avail.qty"), numeric: true),
|
||||
MyDataColumn(
|
||||
label: LocalText(context, "do.do_qty"),
|
||||
numeric: true,
|
||||
@@ -464,19 +462,17 @@ class _DOFormState extends State<DOForm> {
|
||||
style: textStyle,
|
||||
),
|
||||
),
|
||||
MyDataCell(
|
||||
NumberCell(d.poBalQty)
|
||||
),
|
||||
MyDataCell(NumberCell(d.poBalQty)),
|
||||
MyDataCell(
|
||||
Container(
|
||||
color: Colors.cyan,
|
||||
child: Row(
|
||||
mainAxisAlignment: MainAxisAlignment.end,
|
||||
children: <Widget>[
|
||||
new Text(d.qty == null ? "0" : d.qty.toString(),
|
||||
style: textStyle),
|
||||
],
|
||||
)),
|
||||
child: Row(
|
||||
mainAxisAlignment: MainAxisAlignment.end,
|
||||
children: <Widget>[
|
||||
new Text(d.qty == null ? "0" : d.qty.toString(),
|
||||
style: textStyle),
|
||||
],
|
||||
)),
|
||||
),
|
||||
],
|
||||
);
|
||||
@@ -504,16 +500,20 @@ class _DOFormState extends State<DOForm> {
|
||||
MyDataColumn(label: LocalText(context, "po.number")),
|
||||
MyDataColumn(label: LocalText(context, "po.product")),
|
||||
MyDataColumn(
|
||||
label: LocalText(context, "do.po_qty"),numeric: true,
|
||||
label: LocalText(context, "do.po_qty"),
|
||||
numeric: true,
|
||||
),
|
||||
MyDataColumn(
|
||||
label: LocalText(context, "po.avail.qty"),numeric: true,
|
||||
label: LocalText(context, "po.avail.qty"),
|
||||
numeric: true,
|
||||
),
|
||||
MyDataColumn(
|
||||
label: LocalText(context, "po.retrieved.amount"),numeric: true,
|
||||
label: LocalText(context, "po.retrieved.amount"),
|
||||
numeric: true,
|
||||
),
|
||||
MyDataColumn(
|
||||
label: LocalText(context, "do.do_qty"),numeric: true,
|
||||
label: LocalText(context, "do.do_qty"),
|
||||
numeric: true,
|
||||
),
|
||||
],
|
||||
rows: getPOProductRow(),
|
||||
@@ -540,8 +540,8 @@ class _DOFormState extends State<DOForm> {
|
||||
});
|
||||
|
||||
doSubmission.dopoLies.sort((p1, p2) {
|
||||
if (p1.displayOrder!=p2.displayOrder)
|
||||
return p1.displayOrder.compareTo(p2.displayOrder);
|
||||
if (p1.displayOrder != p2.displayOrder)
|
||||
return p1.displayOrder.compareTo(p2.displayOrder);
|
||||
return p1.poNumber.compareTo(p2.poNumber);
|
||||
});
|
||||
}
|
||||
@@ -560,15 +560,9 @@ class _DOFormState extends State<DOForm> {
|
||||
style: textStyle,
|
||||
),
|
||||
),
|
||||
MyDataCell(
|
||||
NumberCell(d.poQty)
|
||||
),
|
||||
MyDataCell(
|
||||
NumberCell(d.poBalQty)
|
||||
),
|
||||
MyDataCell(
|
||||
NumberCell(d.getPoBalanceQty)
|
||||
),
|
||||
MyDataCell(NumberCell(d.poQty)),
|
||||
MyDataCell(NumberCell(d.poBalQty)),
|
||||
MyDataCell(NumberCell(d.getPoBalanceQty)),
|
||||
MyDataCell(
|
||||
Container(
|
||||
color: Colors.grey,
|
||||
|
||||
@@ -3,7 +3,7 @@ import 'package:provider/provider.dart';
|
||||
import 'package:fcs/model/language_model.dart';
|
||||
import 'package:fcs/model/po_model.dart';
|
||||
import 'package:fcs/pages/util.dart';
|
||||
import 'package:fcs/theme/theme.dart';
|
||||
import 'package:fcs/fcs/common/theme.dart';
|
||||
import 'package:fcs/vo/do.dart';
|
||||
import 'package:fcs/vo/po.dart';
|
||||
import 'package:fcs/widget/img_file.dart';
|
||||
|
||||
@@ -6,7 +6,7 @@ import 'package:fcs/model/language_model.dart';
|
||||
import 'package:fcs/model/main_model.dart';
|
||||
import 'package:fcs/pages/do/do_creation_form.dart';
|
||||
import 'package:fcs/pages/util.dart';
|
||||
import 'package:fcs/theme/theme.dart';
|
||||
import 'package:fcs/fcs/common/theme.dart';
|
||||
import 'package:fcs/vo/popup_menu.dart';
|
||||
import 'package:fcs/widget/localization/app_translations.dart';
|
||||
import 'package:fcs/widget/popupmenu.dart';
|
||||
|
||||
@@ -3,7 +3,7 @@ import 'package:font_awesome_flutter/font_awesome_flutter.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:fcs/model/language_model.dart';
|
||||
import 'package:fcs/pages/util.dart';
|
||||
import 'package:fcs/theme/theme.dart';
|
||||
import 'package:fcs/fcs/common/theme.dart';
|
||||
import 'package:fcs/vo/do.dart';
|
||||
import 'package:fcs/widget/local_text.dart';
|
||||
import 'package:fcs/widget/localization/app_translations.dart';
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:fcs/model/storage_model.dart';
|
||||
import 'package:fcs/theme/theme.dart';
|
||||
import 'package:fcs/fcs/common/theme.dart';
|
||||
import 'package:fcs/util.dart';
|
||||
import 'package:fcs/vo/do.dart';
|
||||
import 'package:fcs/vo/storage.dart';
|
||||
|
||||
@@ -3,7 +3,7 @@ import 'package:flutter/material.dart';
|
||||
import 'package:image_picker/image_picker.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:fcs/model/language_model.dart';
|
||||
import 'package:fcs/theme/theme.dart';
|
||||
import 'package:fcs/fcs/common/theme.dart';
|
||||
import 'package:fcs/widget/localization/app_translations.dart';
|
||||
|
||||
import '../util.dart';
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:fcs/theme/theme.dart';
|
||||
import 'package:fcs/fcs/common/theme.dart';
|
||||
import 'package:fcs/vo/po.dart';
|
||||
import 'package:fcs/widget/local_text.dart';
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ import 'package:intl/intl.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:fcs/model/log_model.dart';
|
||||
import 'package:fcs/model/user_model.dart';
|
||||
import 'package:fcs/theme/theme.dart';
|
||||
import 'package:fcs/fcs/common/theme.dart';
|
||||
import 'package:fcs/vo/document_log.dart';
|
||||
import 'package:fcs/vo/role.dart';
|
||||
import 'package:fcs/widget/local_text.dart';
|
||||
|
||||
@@ -4,7 +4,7 @@ import 'package:fcs/model/language_model.dart';
|
||||
import 'package:fcs/model/main_model.dart';
|
||||
import 'package:fcs/model/shared_pref.dart';
|
||||
import 'package:fcs/model/user_model.dart';
|
||||
import 'package:fcs/theme/theme.dart';
|
||||
import 'package:fcs/fcs/common/theme.dart';
|
||||
import 'package:fcs/vo/user.dart';
|
||||
import 'package:fcs/widget/local_text.dart';
|
||||
import 'package:fcs/widget/localization/app_translations.dart';
|
||||
@@ -82,7 +82,8 @@ class _EmailPageState extends State<EmailPage> {
|
||||
child: InkWell(
|
||||
onTap: () {
|
||||
SharedPref.saveSkippedRecoverEmail(true);
|
||||
Navigator.pushNamedAndRemoveUntil(context, "/home", (r) => false);
|
||||
Navigator.pushNamedAndRemoveUntil(
|
||||
context, "/welcome", (r) => false);
|
||||
},
|
||||
child: Row(
|
||||
mainAxisAlignment: MainAxisAlignment.end,
|
||||
|
||||
@@ -9,7 +9,7 @@ import 'package:provider/provider.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:fcs/widget/progress.dart';
|
||||
|
||||
import '../theme/theme.dart';
|
||||
import '../fcs/common/theme.dart';
|
||||
|
||||
class FCSProfilePage extends StatefulWidget {
|
||||
final PickUp pickUp;
|
||||
|
||||
@@ -4,7 +4,7 @@ import 'package:provider/provider.dart';
|
||||
import 'package:fcs/model/main_model.dart';
|
||||
import 'package:fcs/model/user_model.dart';
|
||||
import 'package:fcs/pages/reset_password.dart';
|
||||
import 'package:fcs/theme/theme.dart';
|
||||
import 'package:fcs/fcs/common/theme.dart';
|
||||
import 'package:fcs/widget/local_text.dart';
|
||||
import 'package:fcs/widget/localization/app_translations.dart';
|
||||
import 'package:fcs/widget/progress.dart';
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import 'package:fcs/theme/theme.dart';
|
||||
import 'package:fcs/fcs/common/theme.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:fcs/model/language_model.dart';
|
||||
@@ -53,9 +53,10 @@ class _InstructionPageState extends State<InstructionPage> {
|
||||
),
|
||||
body: Container(
|
||||
padding: EdgeInsets.only(left: 5, right: 5, top: 5),
|
||||
child: Card(elevation: 0,
|
||||
child: Card(
|
||||
elevation: 0,
|
||||
child: Expanded(
|
||||
child: FittedBox(
|
||||
child: FittedBox(
|
||||
child: Image.asset(widget.image), fit: BoxFit.contain),
|
||||
)),
|
||||
),
|
||||
|
||||
@@ -3,7 +3,7 @@ import 'package:fcs/widget/localization/app_translations.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:fcs/widget/progress.dart';
|
||||
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
|
||||
import '../theme/theme.dart';
|
||||
import '../fcs/common/theme.dart';
|
||||
|
||||
class InvitationPage extends StatefulWidget {
|
||||
@override
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import 'package:fcs/model_fcs/box_model.dart';
|
||||
import 'package:fcs/model_fcs/package_model.dart';
|
||||
import 'package:fcs/theme/theme.dart';
|
||||
import 'package:fcs/fcs/common/theme.dart';
|
||||
import 'package:fcs/vo/box.dart';
|
||||
import 'package:fcs/widget/localization/app_translations.dart';
|
||||
import 'package:fcs/widget/progress.dart';
|
||||
@@ -61,7 +61,9 @@ class _BoxAdditionState extends State<BoxAddition> {
|
||||
icon: Icon(Icons.pages)),
|
||||
items: boxModel.processed
|
||||
.map((e) => DropdownMenuItem(
|
||||
child: Text('${e.shipmentNumber}-${e.receiverNumber} #${e.boxNumber}'), value: e))
|
||||
child: Text(
|
||||
'${e.shipmentNumber}-${e.receiverNumber} #${e.boxNumber}'),
|
||||
value: e))
|
||||
.toList(),
|
||||
onChanged: (map) => {},
|
||||
),
|
||||
|
||||
@@ -3,7 +3,7 @@ import 'package:fcs/model/main_model.dart';
|
||||
import 'package:fcs/model/shipment_model.dart';
|
||||
import 'package:fcs/model_fcs/package_model.dart';
|
||||
import 'package:fcs/pages_fcs/package_list_row.dart';
|
||||
import 'package:fcs/theme/theme.dart';
|
||||
import 'package:fcs/fcs/common/theme.dart';
|
||||
import 'package:fcs/widget/bottom_up_page_route.dart';
|
||||
import 'package:fcs/widget/local_text.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
@@ -39,7 +39,7 @@ class _InvoiceListState extends State<InvoiceList> {
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
var owner = Provider.of<MainModel>(context).isOwner();
|
||||
var owner = Provider.of<MainModel>(context).isOwner();
|
||||
|
||||
return LocalProgress(
|
||||
inAsyncCall: _isLoading,
|
||||
@@ -73,16 +73,19 @@ class _InvoiceListState extends State<InvoiceList> {
|
||||
],
|
||||
),
|
||||
),
|
||||
floatingActionButton:owner? FloatingActionButton.extended(
|
||||
onPressed: () {
|
||||
_newInvoice();
|
||||
},
|
||||
icon: Icon(Icons.add),
|
||||
label: Text(AppTranslations.of(context).text("invoices.add")),
|
||||
backgroundColor: primaryColor,
|
||||
):null,
|
||||
floatingActionButton: owner
|
||||
? FloatingActionButton.extended(
|
||||
onPressed: () {
|
||||
_newInvoice();
|
||||
},
|
||||
icon: Icon(Icons.add),
|
||||
label:
|
||||
Text(AppTranslations.of(context).text("invoices.add")),
|
||||
backgroundColor: primaryColor,
|
||||
)
|
||||
: null,
|
||||
body: TabBarView(
|
||||
children: [ _pending(), _paided()],
|
||||
children: [_pending(), _paided()],
|
||||
)),
|
||||
),
|
||||
);
|
||||
|
||||
@@ -2,7 +2,7 @@ import 'package:fcs/model/discount_model.dart';
|
||||
import 'package:fcs/model/main_model.dart';
|
||||
import 'package:fcs/model_fcs/box_model.dart';
|
||||
import 'package:fcs/pages/invoice/package_addition.dart';
|
||||
import 'package:fcs/theme/theme.dart';
|
||||
import 'package:fcs/fcs/common/theme.dart';
|
||||
import 'package:fcs/vo/box.dart';
|
||||
import 'package:fcs/vo/cargo.dart';
|
||||
import 'package:fcs/vo/invoice.dart';
|
||||
@@ -173,8 +173,9 @@ class _InvoiceEditorState extends State<InvoiceEditor> {
|
||||
decoration: InputDecoration(
|
||||
fillColor: Colors.white,
|
||||
labelText: 'Invoice Date',
|
||||
labelStyle:
|
||||
TextStyle(fontSize: 16,),
|
||||
labelStyle: TextStyle(
|
||||
fontSize: 16,
|
||||
),
|
||||
filled: true,
|
||||
enabledBorder: InputBorder.none,
|
||||
focusedBorder: InputBorder.none,
|
||||
@@ -194,7 +195,8 @@ class _InvoiceEditorState extends State<InvoiceEditor> {
|
||||
fillColor: Colors.white,
|
||||
labelText: 'Invoice Number',
|
||||
labelStyle: TextStyle(
|
||||
fontSize: 16,),
|
||||
fontSize: 16,
|
||||
),
|
||||
filled: true,
|
||||
enabledBorder: InputBorder.none,
|
||||
focusedBorder: InputBorder.none,
|
||||
@@ -213,8 +215,9 @@ class _InvoiceEditorState extends State<InvoiceEditor> {
|
||||
decoration: InputDecoration(
|
||||
fillColor: Colors.white,
|
||||
labelText: 'Customer Name',
|
||||
labelStyle:
|
||||
TextStyle(fontSize: 16,),
|
||||
labelStyle: TextStyle(
|
||||
fontSize: 16,
|
||||
),
|
||||
filled: true,
|
||||
focusedBorder: UnderlineInputBorder(
|
||||
borderSide: BorderSide(
|
||||
@@ -243,7 +246,8 @@ class _InvoiceEditorState extends State<InvoiceEditor> {
|
||||
fillColor: Colors.white,
|
||||
labelText: 'Customer Name',
|
||||
labelStyle: TextStyle(
|
||||
fontSize: 16,),
|
||||
fontSize: 16,
|
||||
),
|
||||
filled: true,
|
||||
enabledBorder: InputBorder.none,
|
||||
focusedBorder: InputBorder.none,
|
||||
@@ -288,7 +292,8 @@ class _InvoiceEditorState extends State<InvoiceEditor> {
|
||||
fillColor: Colors.white,
|
||||
labelText: 'Status',
|
||||
labelStyle: TextStyle(
|
||||
fontSize: 16, ),
|
||||
fontSize: 16,
|
||||
),
|
||||
filled: true,
|
||||
enabledBorder: InputBorder.none,
|
||||
focusedBorder: InputBorder.none,
|
||||
@@ -307,8 +312,9 @@ class _InvoiceEditorState extends State<InvoiceEditor> {
|
||||
decoration: InputDecoration(
|
||||
fillColor: Colors.white,
|
||||
labelText: 'Amount',
|
||||
labelStyle:
|
||||
TextStyle(fontSize: 16,),
|
||||
labelStyle: TextStyle(
|
||||
fontSize: 16,
|
||||
),
|
||||
filled: true,
|
||||
enabledBorder: InputBorder.none,
|
||||
focusedBorder: InputBorder.none,
|
||||
@@ -327,8 +333,9 @@ class _InvoiceEditorState extends State<InvoiceEditor> {
|
||||
decoration: InputDecoration(
|
||||
fillColor: Colors.white,
|
||||
labelText: 'Balance',
|
||||
labelStyle:
|
||||
TextStyle(fontSize: 16, ),
|
||||
labelStyle: TextStyle(
|
||||
fontSize: 16,
|
||||
),
|
||||
filled: true,
|
||||
enabledBorder: InputBorder.none,
|
||||
focusedBorder: InputBorder.none,
|
||||
@@ -347,8 +354,9 @@ class _InvoiceEditorState extends State<InvoiceEditor> {
|
||||
decoration: InputDecoration(
|
||||
fillColor: Colors.white,
|
||||
labelText: 'Handling Fee',
|
||||
labelStyle:
|
||||
TextStyle(fontSize: 16,),
|
||||
labelStyle: TextStyle(
|
||||
fontSize: 16,
|
||||
),
|
||||
filled: true,
|
||||
enabledBorder: InputBorder.none,
|
||||
focusedBorder: InputBorder.none,
|
||||
@@ -367,8 +375,9 @@ class _InvoiceEditorState extends State<InvoiceEditor> {
|
||||
decoration: InputDecoration(
|
||||
fillColor: Colors.white,
|
||||
labelText: 'Customs Fee',
|
||||
labelStyle:
|
||||
TextStyle(fontSize: 16,),
|
||||
labelStyle: TextStyle(
|
||||
fontSize: 16,
|
||||
),
|
||||
filled: true,
|
||||
icon: Icon(
|
||||
FontAwesomeIcons.moneyBill,
|
||||
@@ -388,8 +397,9 @@ class _InvoiceEditorState extends State<InvoiceEditor> {
|
||||
decoration: InputDecoration(
|
||||
fillColor: Colors.white,
|
||||
labelText: 'Customs Fee Description',
|
||||
labelStyle:
|
||||
TextStyle(fontSize: 16,),
|
||||
labelStyle: TextStyle(
|
||||
fontSize: 16,
|
||||
),
|
||||
filled: true,
|
||||
icon: Icon(
|
||||
Icons.comment,
|
||||
|
||||
@@ -3,7 +3,7 @@ import 'dart:io';
|
||||
|
||||
import 'package:fcs/model/main_model.dart';
|
||||
import 'package:fcs/pages/invoice/payment_pdf_screen.dart';
|
||||
import 'package:fcs/theme/theme.dart';
|
||||
import 'package:fcs/fcs/common/theme.dart';
|
||||
import 'package:fcs/vo/invoice.dart';
|
||||
import 'package:fcs/widget/bottom_up_page_route.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
@@ -132,29 +132,30 @@ class _InvoiceListRowState extends State<InvoiceListRow> {
|
||||
// padding: const EdgeInsets.all(0),
|
||||
// child: getStatus(_invoice.status),
|
||||
// ),
|
||||
_invoice.status=="Pending"?
|
||||
Padding(
|
||||
padding: const EdgeInsets.only(left: 10.0),
|
||||
child: InkWell(
|
||||
child: RaisedButton(
|
||||
child: Row(
|
||||
children: <Widget>[
|
||||
Icon(
|
||||
Icons.payment,
|
||||
color: primaryColor,
|
||||
),
|
||||
Padding(
|
||||
padding: const EdgeInsets.only(left:8.0),
|
||||
child: Text("Payment"),
|
||||
)
|
||||
],
|
||||
),
|
||||
onPressed: () {
|
||||
Navigator.of(context)
|
||||
.push(BottomUpPageRoute(PaymentPage(invoice: _invoice)));
|
||||
},
|
||||
)),
|
||||
):Container(),
|
||||
_invoice.status == "Pending"
|
||||
? Padding(
|
||||
padding: const EdgeInsets.only(left: 10.0),
|
||||
child: InkWell(
|
||||
child: RaisedButton(
|
||||
child: Row(
|
||||
children: <Widget>[
|
||||
Icon(
|
||||
Icons.payment,
|
||||
color: primaryColor,
|
||||
),
|
||||
Padding(
|
||||
padding: const EdgeInsets.only(left: 8.0),
|
||||
child: Text("Payment"),
|
||||
)
|
||||
],
|
||||
),
|
||||
onPressed: () {
|
||||
Navigator.of(context).push(
|
||||
BottomUpPageRoute(PaymentPage(invoice: _invoice)));
|
||||
},
|
||||
)),
|
||||
)
|
||||
: Container(),
|
||||
Padding(
|
||||
padding: const EdgeInsets.only(left: 8.0),
|
||||
child: InkWell(
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import 'package:fcs/model_fcs/package_model.dart';
|
||||
import 'package:fcs/theme/theme.dart';
|
||||
import 'package:fcs/fcs/common/theme.dart';
|
||||
import 'package:fcs/vo/package.dart';
|
||||
import 'package:fcs/widget/localization/app_translations.dart';
|
||||
import 'package:fcs/widget/progress.dart';
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import 'package:fcs/model/main_model.dart';
|
||||
import 'package:fcs/model/pickup_model.dart';
|
||||
import 'package:fcs/theme/theme.dart';
|
||||
import 'package:fcs/fcs/common/theme.dart';
|
||||
import 'package:fcs/vo/package.dart';
|
||||
import 'package:fcs/widget/label_widgets.dart';
|
||||
import 'package:fcs/widget/localization/app_translations.dart';
|
||||
@@ -61,7 +61,9 @@ class _PackageInfoState extends State<PackageInfo> {
|
||||
padding: EdgeInsets.only(top: 10),
|
||||
child: Row(
|
||||
children: <Widget>[
|
||||
Icon(Icons.calendar_today,),
|
||||
Icon(
|
||||
Icons.calendar_today,
|
||||
),
|
||||
Padding(
|
||||
padding: const EdgeInsets.only(right: 8.0, left: 15),
|
||||
child: labeledText(
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import 'package:fcs/model/main_model.dart';
|
||||
import 'package:fcs/pages/util.dart';
|
||||
import 'package:fcs/theme/theme.dart';
|
||||
import 'package:fcs/fcs/common/theme.dart';
|
||||
import 'package:fcs/vo/invoice.dart';
|
||||
import 'package:fcs/vo/package.dart';
|
||||
import 'package:fcs/widget/local_text.dart';
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import 'dart:async';
|
||||
|
||||
import 'package:fcs/theme/theme.dart';
|
||||
import 'package:fcs/fcs/common/theme.dart';
|
||||
import 'package:fcs/widget/local_text.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
@@ -30,7 +30,7 @@ class _PaymentPDFScreenState extends State<PaymentPDFScreen>
|
||||
return Scaffold(
|
||||
appBar: AppBar(
|
||||
backgroundColor: primaryColor,
|
||||
title:Text("Invoice File"),
|
||||
title: Text("Invoice File"),
|
||||
actions: <Widget>[
|
||||
IconButton(
|
||||
icon: Icon(Icons.share),
|
||||
|
||||
@@ -6,7 +6,7 @@ import 'package:fcs/widget/local_text.dart';
|
||||
import 'package:fcs/widget/localization/app_translations.dart';
|
||||
import 'package:fcs/widget/progress.dart';
|
||||
|
||||
import '../theme/theme.dart';
|
||||
import '../fcs/common/theme.dart';
|
||||
|
||||
class LogList extends StatefulWidget {
|
||||
@override
|
||||
|
||||
@@ -10,7 +10,7 @@ import 'package:fcs/widget/bubble_indication_painter.dart';
|
||||
import 'package:fcs/widget/localization/app_translations.dart';
|
||||
import 'package:fcs/widget/progress.dart';
|
||||
|
||||
import '../theme/theme.dart' as Theme;
|
||||
import '../fcs/common/theme.dart' as Theme;
|
||||
import 'forget_password.dart';
|
||||
import 'sms_page.dart';
|
||||
import 'util.dart';
|
||||
@@ -82,7 +82,7 @@ class _LoginPageState extends State<LoginPage>
|
||||
: 580.0,
|
||||
child: Column(
|
||||
mainAxisSize: MainAxisSize.max,
|
||||
children: <Widget>[
|
||||
children: <Widget>[
|
||||
Padding(
|
||||
padding: EdgeInsets.only(top: 50.0),
|
||||
child: _buildMenuBar(context),
|
||||
@@ -662,14 +662,13 @@ class _LoginPageState extends State<LoginPage>
|
||||
var phoneNumber = signupPhoneNumberController.text;
|
||||
try {
|
||||
await authModel.signup(name, password, confirmPassword, phoneNumber);
|
||||
Navigator.push(
|
||||
Navigator.push(
|
||||
context,
|
||||
MaterialPageRoute(
|
||||
builder: (context) =>
|
||||
SmsCodePage(id: phoneNumber, password: password),
|
||||
),
|
||||
);
|
||||
|
||||
} catch (e) {
|
||||
showMsgDialog(context, "Error", e.toString());
|
||||
} finally {
|
||||
|
||||
@@ -7,7 +7,7 @@ import 'package:fcs/model/language_model.dart';
|
||||
import 'package:fcs/model/main_model.dart';
|
||||
import 'package:fcs/model/manual_model.dart';
|
||||
import 'package:fcs/pages/manual/moveable_stack_item.dart';
|
||||
import 'package:fcs/theme/theme.dart';
|
||||
import 'package:fcs/fcs/common/theme.dart';
|
||||
import 'package:fcs/vo/manual.dart';
|
||||
import 'package:path/path.dart' as Path;
|
||||
import 'package:fcs/widget/progress.dart';
|
||||
|
||||
@@ -9,7 +9,7 @@ import 'package:fcs/vo/manual.dart';
|
||||
import 'package:fcs/widget/local_text.dart';
|
||||
import 'package:fcs/widget/progress.dart';
|
||||
|
||||
import '../../theme/theme.dart';
|
||||
import '../../fcs/common/theme.dart';
|
||||
import 'slide_page.dart';
|
||||
|
||||
class ManualPage extends StatefulWidget {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import 'package:fcs/model_fcs/message_model.dart';
|
||||
import 'package:fcs/theme/theme.dart';
|
||||
import 'package:fcs/fcs/common/theme.dart';
|
||||
import 'package:fcs/vo/message.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:intl/intl.dart';
|
||||
@@ -82,7 +82,7 @@ class MessageDetail extends StatelessWidget {
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
DateFormat dateFormat=DateFormat("HH:mm");
|
||||
DateFormat dateFormat = DateFormat("HH:mm");
|
||||
MessageModel messageModel = Provider.of<MessageModel>(context);
|
||||
List<Message> messages = messageModel.getMessage(msg.receiverName);
|
||||
List<Bubble> bubbles = messages
|
||||
|
||||
@@ -10,7 +10,7 @@ import 'package:fcs/widget/local_text.dart';
|
||||
import 'package:fcs/widget/my_data_table.dart';
|
||||
import 'package:fcs/widget/progress.dart';
|
||||
|
||||
import '../theme/theme.dart';
|
||||
import '../fcs/common/theme.dart';
|
||||
import '../widget/localization/app_translations.dart';
|
||||
import 'my_registeration_item.dart';
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@ import 'package:fcs/model/reg_model.dart';
|
||||
import 'package:fcs/widget/label_widgets.dart';
|
||||
import 'package:fcs/widget/progress.dart';
|
||||
|
||||
import '../theme/theme.dart';
|
||||
import '../fcs/common/theme.dart';
|
||||
import '../util.dart';
|
||||
import '../widget/localization/app_translations.dart';
|
||||
import 'my_registeration.dart';
|
||||
@@ -50,13 +50,17 @@ class _MyRegisterationInfoState extends State<MyRegisterationInfo> {
|
||||
labeledText(context, regModel.reg.bizType, "buyer.type_biz");
|
||||
final statusBox = labeledText(context, regModel.reg.status, "reg.status");
|
||||
final dailyQuotaBox = labeledText(
|
||||
context, formatNumber(regModel.reg.dailyQuota), "reg.quota",number: true);
|
||||
context, formatNumber(regModel.reg.dailyQuota), "reg.quota",
|
||||
number: true);
|
||||
final dailyQuotaUsedBox = labeledText(
|
||||
context, formatNumber(regModel.reg.dailyQuotaUsed), "reg.quota.used",number: true);
|
||||
context, formatNumber(regModel.reg.dailyQuotaUsed), "reg.quota.used",
|
||||
number: true);
|
||||
final maxQuotaBox = labeledText(
|
||||
context, formatNumber(regModel.reg.maxQuota), "reg.max_quota",number: true);
|
||||
context, formatNumber(regModel.reg.maxQuota), "reg.max_quota",
|
||||
number: true);
|
||||
final maxQuotaUsedBox = labeledText(
|
||||
context, formatNumber(regModel.reg.maxQuotaUsed), "reg.max_quota.used",number: true);
|
||||
context, formatNumber(regModel.reg.maxQuotaUsed), "reg.max_quota.used",
|
||||
number: true);
|
||||
final nricFrontBox =
|
||||
labeledImg(context, regModel.reg.nricFrontUrl, "reg_info.nric_front");
|
||||
final nricBackBox =
|
||||
|
||||
@@ -2,7 +2,7 @@ import 'package:flutter/material.dart';
|
||||
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:fcs/model/product_model.dart';
|
||||
import 'package:fcs/theme/theme.dart';
|
||||
import 'package:fcs/fcs/common/theme.dart';
|
||||
import 'package:fcs/vo/buyer.dart';
|
||||
import 'package:fcs/vo/product.dart';
|
||||
import 'package:fcs/widget/progress.dart';
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user