add contact

This commit is contained in:
2020-09-04 15:30:10 +06:30
parent acfab08198
commit 9a76a36883
187 changed files with 1257 additions and 616 deletions

View File

@@ -1,3 +1,6 @@
import 'package:fcs/fcs/common/localization/app_translations_delegate.dart';
import 'package:fcs/fcs/common/localization/transalation.dart';
import 'package:fcs/fcs/common/pages/model/language_model.dart';
import 'package:fcs/model/buyer_model.dart';
import 'package:fcs/model/delivery_model.dart';
import 'package:fcs/model/discount_model.dart';
@@ -25,7 +28,6 @@ import 'model/device_model.dart';
import 'model/do_model.dart';
import 'model/employee_model.dart';
import 'model/invoice_model.dart';
import 'model/language_model.dart';
import 'model/log_model.dart';
import 'model/main_model.dart';
import 'model/pickup_model.dart';
@@ -39,8 +41,6 @@ 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 'widget/localization/app_translations_delegate.dart';
import 'widget/localization/transalation.dart';
class App extends StatefulWidget {
@override
@@ -92,7 +92,6 @@ class _AppState extends State<App> {
mainModel
..addModel(userModel)
..addModel(employeeModel)
..addModel(lanuguageModel)
..addModel(storageModel)
..addModel(regModel)
..addModel(poSubmissionModel)

View File

@@ -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/fcs/common/theme.dart';
import 'package:fcs/fcs/common/helpers/theme.dart';
import 'package:fcs/vo/po.dart';
import 'package:fcs/widget/local_text.dart';

View File

@@ -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/fcs/common/theme.dart';
import 'package:fcs/fcs/common/helpers/theme.dart';
import 'package:fcs/vo/revenue.dart';
import 'package:fcs/widget/local_text.dart';

View File

@@ -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/fcs/common/theme.dart';
import 'package:fcs/fcs/common/helpers/theme.dart';
import 'package:fcs/vo/revenue.dart';
import 'package:fcs/widget/local_text.dart';
import 'package:fcs/widget/my_data_table.dart';

View File

@@ -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/fcs/common/theme.dart';
import 'package:fcs/fcs/common/helpers/theme.dart';
import 'package:fcs/vo/revenue.dart';
import 'package:fcs/widget/local_text.dart';

View File

@@ -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/fcs/common/theme.dart';
import 'package:fcs/fcs/common/helpers/theme.dart';
import 'package:fcs/vo/revenue.dart';
import 'package:fcs/widget/local_text.dart';
import 'package:fcs/widget/my_data_table.dart';

View File

@@ -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/fcs/common/theme.dart';
import 'package:fcs/fcs/common/helpers/theme.dart';
import 'package:fcs/vo/revenue.dart';
import 'package:fcs/widget/local_text.dart';

View File

@@ -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/fcs/common/theme.dart';
import 'package:fcs/fcs/common/helpers/theme.dart';
import 'package:fcs/vo/revenue.dart';
import 'package:fcs/widget/local_text.dart';
import 'package:fcs/widget/my_data_table.dart';

View File

@@ -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/fcs/common/theme.dart';
import 'package:fcs/fcs/common/helpers/theme.dart';
import 'package:fcs/vo/do.dart';
import 'package:fcs/widget/local_text.dart';
import 'package:fcs/widget/my_data_table.dart';

View File

@@ -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/fcs/common/theme.dart';
import 'package:fcs/fcs/common/helpers/theme.dart';
import 'package:fcs/vo/revenue.dart';
import 'package:fcs/widget/local_text.dart';
import 'delivery_summary_detail.dart';

View File

@@ -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/fcs/common/theme.dart';
import 'package:fcs/fcs/common/helpers/theme.dart';
import 'package:fcs/vo/revenue.dart';
import 'package:fcs/widget/local_text.dart';
import 'package:fcs/widget/my_data_table.dart';

View File

@@ -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/fcs/common/theme.dart';
import 'package:fcs/fcs/common/helpers/theme.dart';
import 'package:fcs/vo/po_do_count.dart';
import 'package:fcs/widget/local_text.dart';

View File

@@ -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/fcs/common/theme.dart';
import 'package:fcs/fcs/common/helpers/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';

View File

@@ -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/fcs/common/theme.dart';
import 'package:fcs/fcs/common/helpers/theme.dart';
import 'package:fcs/vo/po.dart';
import 'package:fcs/widget/local_text.dart';

View File

@@ -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/fcs/common/theme.dart';
import 'package:fcs/fcs/common/helpers/theme.dart';
import 'package:fcs/vo/po.dart';
import 'package:fcs/widget/local_text.dart';
import 'package:fcs/widget/localization/app_translations.dart';

View File

@@ -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/fcs/common/theme.dart';
import 'package:fcs/fcs/common/helpers/theme.dart';
import 'package:fcs/vo/po.dart';
import 'package:fcs/widget/local_text.dart';

View File

@@ -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/fcs/common/theme.dart';
import 'package:fcs/fcs/common/helpers/theme.dart';
import 'package:fcs/vo/po_do_count.dart';
import 'package:fcs/widget/local_text.dart';

View File

@@ -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/fcs/common/theme.dart';
import 'package:fcs/fcs/common/helpers/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';

View File

@@ -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/fcs/common/theme.dart';
import 'package:fcs/fcs/common/helpers/theme.dart';
import 'package:fcs/vo/po.dart';
import 'package:fcs/widget/local_text.dart';
import 'package:fcs/widget/localization/app_translations.dart';

View File

@@ -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/fcs/common/theme.dart';
import 'package:fcs/fcs/common/helpers/theme.dart';
import 'package:fcs/vo/revenue.dart';
import 'package:fcs/widget/local_text.dart';

View File

@@ -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/fcs/common/theme.dart';
import 'package:fcs/fcs/common/helpers/theme.dart';
import 'package:fcs/vo/revenue.dart';
import 'package:fcs/widget/local_text.dart';
import 'package:fcs/widget/my_data_table.dart';

View File

@@ -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/fcs/common/theme.dart';
import 'package:fcs/fcs/common/helpers/theme.dart';
import 'package:fcs/vo/po.dart';
import 'package:fcs/widget/local_text.dart';
import 'package:fcs/widget/my_data_table.dart';

View File

@@ -9,7 +9,7 @@ import 'package:fcs/fcs/common/domain/entities/user.dart';
import 'package:fcs/fcs/common/domain/exceiptions/signin_exception.dart';
import 'package:firebase_auth/firebase_auth.dart';
import '../../api_helper.dart';
import '../../helpers/api_helper.dart';
class AuthFb {
static final AuthFb instance = AuthFb._();

View File

@@ -14,6 +14,15 @@ List<Day> dayLists = [
class Setting {
final int supportBuildNum;
// contact page
String usaAddress;
String mmAddress;
String usaContactNumber;
String mmContactNumber;
String emailAddress;
String facebookLink;
final String okEnergyId;
final String about;
final String terms;
@@ -35,9 +44,7 @@ class Setting {
List<String> phones;
String deliveryPhone;
String address;
String email;
String website;
String facebook;
DateTime priceLastUpdate;
String bankAccountInfo;
List<BankAccount> bankAccounts;
@@ -71,6 +78,12 @@ class Setting {
Setting(
{this.supportBuildNum,
this.usaAddress,
this.mmAddress,
this.usaContactNumber,
this.mmContactNumber,
this.emailAddress,
this.facebookLink,
this.about,
this.okEnergyId,
this.terms,
@@ -89,9 +102,7 @@ class Setting {
this.helpVersion,
this.helpURL,
this.phones,
this.email,
this.website,
this.facebook,
this.priceLastUpdate,
this.bankAccountInfo,
this.bankAccounts,
@@ -110,10 +121,16 @@ class Setting {
}
return Setting(
priceLastUpdate: ts?.toDate(),
supportBuildNum: map['support_build_number'],
usaAddress: map['usa_address'],
mmAddress: map['mm_address'],
usaContactNumber: map['usa_contact_number'],
mmContactNumber: map['mm_contact_number'],
emailAddress: map['email_address'],
facebookLink: map['facebook_link'],
about: map['about'],
terms: map['terms'],
priceLastUpdate: ts?.toDate(),
okEnergyId: map['ok_energy_id'],
poExpireInHours: map['po_expire_hours'],
doExpireInHours: map['do_expire_hours'],
@@ -128,11 +145,9 @@ class Setting {
reportURL: map['report_url'],
helpVersion: map['help_version'],
helpURL: map['help_url'],
email: map['email'],
deliveryPhone: map['delivery_phone'],
address: map['address'],
website: map['website'],
facebook: map['facebook'],
bankAccountInfo: map['bank_account_info'],
bankAccounts: bankAccounts);
}

View File

@@ -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');

View File

@@ -3,7 +3,7 @@ import 'dart:io';
import 'package:connectivity/connectivity.dart';
import 'package:fcs/config.dart';
import 'package:fcs/fcs/common/api_helper.dart';
import 'package:fcs/fcs/common/helpers/api_helper.dart';
import 'package:logging/logging.dart';
class NetworkConnectivity {

View File

@@ -0,0 +1,72 @@
import 'dart:convert';
import 'package:fcs/fcs/common/domain/entities/user.dart';
import 'package:shared_preferences/shared_preferences.dart';
class SharedPref {
static final SharedPref instance = SharedPref._();
SharedPref._();
static Future<String> getLang() async {
SharedPreferences prefs = await SharedPreferences.getInstance();
return prefs.getString('language');
}
static Future<void> saveLang(String lang) async {
SharedPreferences prefs = await SharedPreferences.getInstance();
prefs.setString('language', lang);
}
static Future<void> saveUser(User user) async {
await _save("user", user.toJson());
}
static Future<User> getUser() async {
try {
return User.fromJson(await _read("user"));
} catch (e) {
return null;
}
}
static Future<User> removeUser() async {
return await _remove("user");
}
static Future<void> saveSkippedRecoverEmail(bool skipped) async {
await _save("skipped_recovery_email", skipped);
}
static Future<bool> getSkippedRecoverEmail() async {
try {
bool _skipped = await _read("skipped_recovery_email");
return _skipped;
} catch (e) {
return null;
}
}
static _read(String key) async {
try {
final prefs = await SharedPreferences.getInstance();
return json.decode(prefs.getString(key));
} catch (e) {
print("Error:$e");
}
}
static _save(String key, value) async {
try {
final prefs = await SharedPreferences.getInstance();
prefs.setString(key, json.encode(value));
} catch (e) {
print("Error:$e");
}
}
static _remove(String key) async {
final prefs = await SharedPreferences.getInstance();
prefs.remove(key);
}
}

View File

@@ -18,7 +18,7 @@ const TextStyle welcomeLabelStyle =
const TextStyle welcomeSubLabelStyle =
TextStyle(fontSize: 18, color: primaryColor, fontWeight: FontWeight.w500);
const TextStyle subMenuStyle =
TextStyle(fontSize: 11, color: Colors.white, fontWeight: FontWeight.w500);
TextStyle(fontSize: 14, color: Colors.white, fontWeight: FontWeight.w500);
const TextStyle siginButtonStyle =
TextStyle(fontSize: 16, color: Colors.white, fontWeight: FontWeight.w500);

View File

@@ -0,0 +1,42 @@
import 'dart:async';
import 'dart:convert';
import 'dart:ui';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart' show rootBundle;
class AppTranslations {
Locale locale;
static Map<dynamic, dynamic> _localisedValues;
AppTranslations(Locale locale) {
this.locale = locale;
}
static AppTranslations of(BuildContext context) {
return Localizations.of<AppTranslations>(context, AppTranslations);
}
static Future<AppTranslations> load(Locale locale) async {
AppTranslations appTranslations = AppTranslations(locale);
String jsonContent = await rootBundle
.loadString("assets/local/localization_${locale.languageCode}.json");
_localisedValues = json.decode(jsonContent);
return appTranslations;
}
get currentLanguage => locale.languageCode;
String text(String key, {List<String> translationVariables}) {
String value = _localisedValues[key];
if (value == null) {
return "$key not found";
}
if (translationVariables != null) {
translationVariables.asMap().forEach((i, s) {
value = value.replaceAll("{$i}", s);
});
}
return value;
}
}

View File

@@ -0,0 +1,25 @@
import 'dart:async';
import 'package:flutter/material.dart';
import 'app_translations.dart';
import 'transalation.dart';
class AppTranslationsDelegate extends LocalizationsDelegate<AppTranslations> {
final Locale newLocale;
const AppTranslationsDelegate({this.newLocale});
@override
bool isSupported(Locale locale) {
return Translation().supportedLanguagesCodes.contains(locale.languageCode);
}
@override
Future<AppTranslations> load(Locale locale) {
return AppTranslations.load(newLocale ?? locale);
}
@override
bool shouldReload(LocalizationsDelegate<AppTranslations> old) {
return true;
}
}

View File

@@ -0,0 +1,27 @@
import 'dart:ui';
typedef void LocaleChangeCallback(Locale locale);
class Translation {
static final Translation _translation = Translation._internal();
factory Translation() {
return _translation;
}
Translation._internal();
final List<String> supportedLanguages = [
"English",
"မြန်မာ ",
];
final List<String> supportedLanguagesCodes = ["en", "mu"];
//returns the list of supported Locales
Iterable<Locale> supportedLocales() =>
supportedLanguagesCodes.map<Locale>((language) => Locale(language, ""));
//function to be invoked when changing the language
LocaleChangeCallback onLocaleChanged;
}

View File

@@ -0,0 +1,150 @@
import 'package:fcs/fcs/common/domain/entities/setting.dart';
import 'package:fcs/fcs/common/helpers/theme.dart';
import 'package:fcs/fcs/common/pages/model/main_model.dart';
import 'package:fcs/fcs/common/pages/widgets/local_text.dart';
import 'package:fcs/fcs/common/pages/widgets/progress.dart';
import 'package:fcs/fcs/common/pages/util.dart';
import 'package:flutter/material.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
import 'package:package_info/package_info.dart';
import 'package:provider/provider.dart';
import 'package:url_launcher/url_launcher.dart';
class Contact extends StatefulWidget {
@override
_ContactState createState() => _ContactState();
}
class _ContactState extends State<Contact> {
bool _isLoading = false;
@override
Widget build(BuildContext context) {
Setting setting = Provider.of<MainModel>(context).setting;
return LocalProgress(
inAsyncCall: _isLoading,
child: Scaffold(
appBar: AppBar(
backgroundColor: primaryColor,
elevation: 0,
centerTitle: true,
leading: new IconButton(
icon: new Icon(Icons.close),
onPressed: () => Navigator.of(context).pop(),
),
title: LocalText(
context,
"contact",
fontSize: 25,
color: Colors.white,
),
),
body: ListView(
children: <Widget>[
link(setting.usaContactNumber, Icons.phone_forwarded,
onTap: () => _call(setting.usaContactNumber),
label: LocalText(
context,
"contact.usa.phone",
color: primaryColor,
)),
link(setting.mmContactNumber, Icons.phone_forwarded,
onTap: () => _call(
setting.mmContactNumber,
),
label: LocalText(
context,
"contact.mm.phone",
color: primaryColor,
)),
link(
setting.usaAddress,
Icons.location_on,
),
link(setting.mmAddress, Icons.location_on),
link(setting.emailAddress, Icons.email,
onTap: () => _email(setting.emailAddress)),
link(setting.facebookLink, FontAwesomeIcons.facebook,
onTap: () => _openLink(setting.facebookLink)),
],
),
),
);
}
Widget link(String text, IconData iconData,
{Function() onTap, Widget label}) {
return Padding(
padding: const EdgeInsets.only(left: 18.0, bottom: 5),
child: InkWell(
onTap: () => onTap != null ? onTap() : null,
child: SingleChildScrollView(
scrollDirection: Axis.horizontal,
child: Row(
children: <Widget>[
Padding(
padding: const EdgeInsets.all(8.0),
child: Icon(
iconData,
),
),
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
label == null
? Container()
: Padding(
padding: EdgeInsets.fromLTRB(10, 10, 10, 0),
child: label,
),
Padding(
padding: const EdgeInsets.all(8.0),
child: Text(
text == null ? "" : text,
overflow: TextOverflow.ellipsis,
maxLines: 5,
style: TextStyle(fontSize: 14.0),
),
),
],
),
SizedBox(
width: 5,
),
onTap == null
? Container()
: Icon(
Icons.open_in_new,
color: Colors.grey,
size: 15,
)
],
),
)),
);
}
Future<String> getVersionNumber() async {
PackageInfo packageInfo = await PackageInfo.fromPlatform();
String version = packageInfo.version + "+" + packageInfo.buildNumber;
return version;
}
_call(String phone) {
showConfirmDialog(
context, "contact.phone.confim", () => launch("tel:$phone"),
translationVariables: ["$phone"]);
}
_email(String email) {
showConfirmDialog(
context, "contact.email.configm", () => launch("mailto:$email"),
translationVariables: ["$email"]);
}
_openLink(String link) {
showConfirmDialog(context, "contact.open.confrim", () => launch("$link"),
translationVariables: ["$link"]);
}
}

View File

@@ -1,6 +1,8 @@
import 'package:fcs/fcs/common/localization/transalation.dart';
import 'package:fcs/fcs/common/pages/model/language_model.dart';
import 'package:fcs/fcs/common/pages/model/main_model.dart';
import 'package:fcs/model/language_model.dart';
import 'package:fcs/pages/contact.dart';
import 'package:fcs/fcs/common/pages/widgets/action_button.dart';
import 'package:fcs/fcs/common/pages/widgets/bottom_widgets.dart';
import 'package:fcs/pages/discount_list.dart';
import 'package:fcs/pages/notification_list.dart';
import 'package:fcs/pages/payment_method_page.dart';
@@ -11,8 +13,6 @@ import 'package:fcs/pages_fcs/delivery_list.dart';
import 'package:fcs/pages_fcs/package_list.dart';
import 'package:fcs/widget/banner.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';
@@ -30,7 +30,7 @@ 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 '../helpers/theme.dart';
import 'profile_page.dart';
import 'signin/signin_page.dart';
@@ -41,12 +41,11 @@ class HomePage extends StatefulWidget {
_HomePageState createState() => _HomePageState();
}
typedef BtnCallback();
class _HomePageState extends State<HomePage> {
final log = Logger('_HomePageState');
bool login = false;
bool customer = true;
List<bool> isSelected = [true, false];
@override
void initState() {
@@ -67,41 +66,41 @@ class _HomePageState extends State<HomePage> {
final numberFormatter = new NumberFormat("#,###");
String pin;
List<bool> isSelected = [true, false];
@override
Widget build(BuildContext context) {
login = Provider.of<MainModel>(context).isLogin();
var owner = Provider.of<MainModel>(context).isOwner();
var customer = Provider.of<MainModel>(context).isCustomer();
LanguageModel languageModel = Provider.of<LanguageModel>(context);
final packagesBtn = _buildBtn2("package.name",
final packagesBtn = _buildBtn("package.name",
icon: Octicons.package,
btnCallback: () =>
Navigator.of(context).push(BottomUpPageRoute(PackageList())));
final boxesBtn = _buildBtn2("boxes.name",
final boxesBtn = _buildBtn("boxes.name",
icon: MaterialCommunityIcons.package,
btnCallback: () =>
Navigator.of(context).push(BottomUpPageRoute(BoxList())));
final pickUpBtn = _buildBtn2("pickup",
final pickUpBtn = _buildBtn("pickup",
icon: SimpleLineIcons.direction,
btnCallback: () =>
Navigator.of(context).push(BottomUpPageRoute(PickUpList())));
final shipmentCostBtn = _buildBtn2("rate",
final shipmentCostBtn = _buildBtn("rate",
icon: FontAwesomeIcons.calculator,
btnCallback: () =>
Navigator.of(context).push(BottomUpPageRoute(ShipmentRates())));
final fcsProfileBtn = _buildBtn2("fcs.btn",
final fcsProfileBtn = _buildBtn("fcs.btn",
// imgIcon: Image.asset("assets/logo_btn.png", height: 25,color:Colors.white),
icon: MaterialCommunityIcons.home_city,
btnCallback: () =>
Navigator.of(context).push(BottomUpPageRoute(FCSProfilePage())));
final shipmentBtn = _buildBtn2("shipment.title",
final shipmentBtn = _buildBtn("shipment.title",
icon: Ionicons.ios_airplane,
imgIcon: Image.asset(
"assets/truck.png",
@@ -112,7 +111,7 @@ class _HomePageState extends State<HomePage> {
btnCallback: () =>
Navigator.of(context).push(BottomUpPageRoute(ShipmentList())));
final buyingBtn = _buildBtn2("buy_online",
final buyingBtn = _buildBtn("buy_online",
icon: MaterialCommunityIcons.cart_outline, btnCallback: () {
Navigator.push(context, BottomUpPageRoute(BuyingOnlinePage())
// MaterialPageRoute(builder: (context) => BuyingOnlinePage()),
@@ -120,43 +119,43 @@ class _HomePageState extends State<HomePage> {
});
final notiBtn =
_buildBtn2("message.btn", icon: Icons.message, btnCallback: () {
_buildBtn("message.btn", icon: Icons.message, btnCallback: () {
Navigator.push(
context,
BottomUpPageRoute(NotificationList()),
);
});
final staffBtn = _buildBtn2("staff.title",
final staffBtn = _buildBtn("staff.title",
icon: MaterialCommunityIcons.worker,
btnCallback: () =>
Navigator.of(context).push(BottomUpPageRoute(StaffList())));
final customersBtn = _buildBtn2("customers.btn",
final customersBtn = _buildBtn("customers.btn",
icon: Feather.users,
btnCallback: () =>
Navigator.of(context).push(BottomUpPageRoute(CustomerList())));
final invoicesBtn = _buildBtn2("invoices.btn",
final invoicesBtn = _buildBtn("invoices.btn",
icon: FontAwesomeIcons.fileInvoice,
btnCallback: () =>
Navigator.of(context).push(BottomUpPageRoute(InvoiceList())));
final paymentMethodBtn = _buildBtn2("payment.method.btn",
final paymentMethodBtn = _buildBtn("payment.method.btn",
icon: FontAwesomeIcons.creditCard,
btnCallback: () =>
Navigator.of(context).push(BottomUpPageRoute(PaymentMethodPage())));
final discountBtn = _buildBtn2("discount.btn",
final discountBtn = _buildBtn("discount.btn",
icon: Entypo.price_ribbon,
btnCallback: () =>
Navigator.of(context).push(BottomUpPageRoute(DiscountList())));
final termBtn = _buildBtn2("term.btn",
final termBtn = _buildBtn("term.btn",
icon: FontAwesomeIcons.info,
btnCallback: () =>
Navigator.of(context).push(BottomUpPageRoute(Term())));
final deliveryBtn = _buildBtn2("delivery.title",
final deliveryBtn = _buildBtn("delivery.title",
icon: MaterialCommunityIcons.truck_fast,
btnCallback: () =>
Navigator.of(context).push(BottomUpPageRoute(DeliverList())));
@@ -206,7 +205,7 @@ class _HomePageState extends State<HomePage> {
)
],
onPressed: _langChange,
isSelected: isSelected,
isSelected: languageModel.currentState,
),
IconButton(
onPressed: () {
@@ -234,7 +233,7 @@ class _HomePageState extends State<HomePage> {
)
],
onPressed: _langChange,
isSelected: isSelected,
isSelected: languageModel.currentState,
),
FlatButton(
onPressed: () {
@@ -288,42 +287,14 @@ class _HomePageState extends State<HomePage> {
child: Column(
children: <Widget>[
Expanded(
child: Padding(
padding: const EdgeInsets.only(top: 8.0),
child: ListView(children: [
Wrap(
alignment: WrapAlignment.center,
children: widgets,
),
]),
),
child: ListView(children: [
Wrap(
alignment: WrapAlignment.center,
children: widgets,
),
]),
),
Container(
height: 80,
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
// _buildSmallButton(
// "Policies", FontAwesomeIcons.fileContract),
InkWell(
onTap: () {
Navigator.of(context)
.push(BottomUpPageRoute(Contact()));
},
child: _buildSmallButton(
"Contact Us", SimpleLineIcons.support),
),
InkWell(
onTap: () {
Navigator.of(context)
.push(BottomUpPageRoute(Term()));
},
child: _buildSmallButton(
"Terms of service", Icons.info_outline),
),
],
),
)
BottomWidgets(),
],
))),
),
@@ -331,7 +302,7 @@ class _HomePageState extends State<HomePage> {
}
_langChange(index) {
var languageModel = Provider.of<LanguageModel>(context);
var languageModel = Provider.of<LanguageModel>(context,listen: false);
languageModel.saveLanguage(Translation().supportedLanguages[index]);
setState(() {
isSelected.asMap().forEach((i, e) {
@@ -341,143 +312,8 @@ class _HomePageState extends State<HomePage> {
});
}
Widget _buildTile(Widget child, {Function() onTap}) {
return Material(
elevation: 0,
borderRadius: BorderRadius.circular(12.0),
// shadowColor: Colors.transparent,
color: Colors.transparent,
child: InkWell(
onTap: onTap != null
? () => onTap()
: () {
log.info('Not set yet');
},
child: child));
}
Widget _buildBtn(String title,
{Image imgIcon, IconData icon, BtnCallback btnCallback}) {
var languageModel = Provider.of<LanguageModel>(context);
return _buildTile(
Padding(
padding: const EdgeInsets.all(5.0),
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: <Widget>[
icon != null
? Material(
child: Padding(
padding: EdgeInsets.only(top: 10),
child: Icon(icon, color: primaryColor, size: 35.0)))
: Container(
padding: EdgeInsets.only(top: 3),
child: imgIcon,
),
Padding(padding: EdgeInsets.only(bottom: 10.0)),
Text(AppTranslations.of(context).text(title),
style: languageModel.isEng
? TextStyle(
color: Colors.black,
fontWeight: FontWeight.w700,
fontSize: 12.0)
: TextStyle(
color: Colors.black,
fontWeight: FontWeight.w700,
fontSize: 12.0,
fontFamily: "MyanmarUnicode")),
]),
),
onTap: btnCallback,
);
}
Widget _buildBtn2(String title,
{Image imgIcon, IconData icon, BtnCallback btnCallback}) {
var languageModel = Provider.of<LanguageModel>(context);
return Container(
width: 100,
height: 100,
decoration: new BoxDecoration(
color: Colors.transparent, //new Color.fromRGBO(255, 0, 0, 0.0),
borderRadius: new BorderRadius.only(
topLeft: const Radius.circular(40.0),
topRight: const Radius.circular(40.0))),
// color: Colors.transparent,
child: Padding(
padding: const EdgeInsets.all(5.0),
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: <Widget>[
// Padding(
// padding: EdgeInsets.only(top: 10),
// child: Icon(icon, color: Colors.white, size: 35.0)),
// Padding(padding: EdgeInsets.only(bottom: 10.0)),
ClipOval(
child: Material(
color: Colors.black54, // button color
child: InkWell(
splashColor: primaryColor, // inkwell color
child: SizedBox(
width: 60,
height: 60,
child: icon == null
? Container(width: 10, height: 10, child: imgIcon)
: Icon(icon, color: Colors.white, size: 30)),
onTap: btnCallback,
),
),
),
Container(
height: 30,
child: FittedBox(
fit: BoxFit.fitWidth,
child: Text(AppTranslations.of(context).text(title),
style: languageModel.isEng
? TextStyle(
color: Colors.white,
fontWeight: FontWeight.w500,
fontSize: 14.0,
fontFamily: "Roboto")
: TextStyle(
color: Colors.white,
fontWeight: FontWeight.w700,
fontSize: 12.0,
fontFamily: "MyanmarUnicode")),
),
),
]),
),
);
}
Widget _buildSmallButton(String text, IconData iconData) {
return Padding(
padding: const EdgeInsets.all(18.0),
child: Row(
children: <Widget>[
IconButton(
icon: Icon(iconData, color: Colors.white70),
color: Colors.white70,
onPressed: null),
// RaisedButton(onPressed: ()=>{},child: Row(
// children: <Widget>[
// IconButton(
// icon: Icon(iconData, ),
// onPressed: null),
// Text(text),
// ],
// ),color: Colors.transparent,
// focusColor: Colors.transparent,),
Text(
text,
style: subMenuStyle,
)
],
),
);
return ActionButton(title: title,imgIcon: imgIcon,icon:icon,btnCallback: btnCallback);
}
}

View File

@@ -0,0 +1,35 @@
import 'package:fcs/fcs/common/domain/entities/setting.dart';
import 'package:fcs/fcs/common/domain/entities/user.dart';
import 'package:flutter/foundation.dart';
import 'package:fcs/fcs/common/helpers/api_helper.dart';
import 'main_model.dart';
abstract class BaseModel extends ChangeNotifier {
User user;
Setting setting;
MainModel mainModel;
void initUser(User user) async {
this.user = user;
}
void initSetting(Setting setting) async {
this.setting = setting;
}
void logout();
// request makes http request
// if token is null
dynamic request(
String path,
method, {
dynamic payload,
String token,
String url,
}) async {
return await requestAPI(path, method,
payload: payload, token: token, url: url);
}
}

View File

@@ -0,0 +1,46 @@
import 'package:fcs/fcs/common/localization/transalation.dart';
import 'package:fcs/fcs/common/helpers/shared_pref.dart';
import 'package:flutter/painting.dart';
import 'base_model.dart';
class LanguageModel extends BaseModel {
String language;
bool get isEng => this.language == "English";
List<bool> get currentState => isEng ? [true, false] : [false, true];
static final List<String> languageCodesList =
Translation().supportedLanguagesCodes;
static final List<String> languagesList = Translation().supportedLanguages;
final Map<dynamic, dynamic> languagesMap = {
languagesList[0]: languageCodesList[0],
languagesList[1]: languageCodesList[1],
};
LanguageModel() {
load();
}
@override
logout() async {}
Future<String> load() async {
var data = await SharedPref.getLang();
String result = languagesList[1]; // defalut to english
if (data != null) {
result = data;
}
this.language = result;
Translation().onLocaleChanged(Locale(languagesMap[this.language]));
print("lang=====$result");
notifyListeners();
return result;
}
void saveLanguage(String language) async {
Translation().onLocaleChanged(Locale(languagesMap[language]));
SharedPref.saveLang(language);
this.language = language;
notifyListeners();
}
}

View File

@@ -8,7 +8,7 @@ import 'package:fcs/fcs/common/domain/entities/auth_result.dart';
import 'package:fcs/fcs/common/domain/entities/auth_status.dart';
import 'package:fcs/fcs/common/domain/entities/setting.dart';
import 'package:fcs/fcs/common/domain/entities/user.dart';
import 'package:fcs/fcs/common/network_connectivity.dart';
import 'package:fcs/fcs/common/helpers/network_connectivity.dart';
import 'package:fcs/fcs/common/services/services.dart';
import 'package:flutter/foundation.dart';
import 'package:logging/logging.dart';

View File

@@ -1,20 +1,20 @@
import 'package:fcs/fcs/common/localization/app_translations.dart';
import 'package:fcs/fcs/common/localization/transalation.dart';
import 'package:fcs/fcs/common/pages/model/language_model.dart';
import 'package:fcs/fcs/common/pages/model/main_model.dart';
import 'package:fcs/model/language_model.dart';
import 'package:fcs/fcs/common/pages/widgets/progress.dart';
import 'package:fcs/model/shipment_model.dart';
import 'package:fcs/model/user_model.dart';
import 'package:fcs/pages/util.dart';
import 'package:fcs/fcs/common/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 '../../../pages/shipping_address_editor.dart';
import '../theme.dart';
import '../helpers/theme.dart';
typedef void ProfileCallback();

View File

@@ -4,14 +4,14 @@ import 'package:fcs/fcs/common/domain/entities/auth_result.dart';
import 'package:fcs/fcs/common/domain/entities/auth_status.dart';
import 'package:fcs/fcs/common/domain/entities/user.dart';
import 'package:fcs/fcs/common/pages/model/main_model.dart';
import 'package:fcs/pages/util.dart';
import 'package:fcs/fcs/common/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 'signup_page.dart';
import '../../theme.dart';
import '../../helpers/theme.dart';
import '../../../../widget/local_text.dart';
import '../../../../widget/progress.dart';

View File

@@ -8,11 +8,11 @@ import 'package:flutter/services.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
import 'package:provider/provider.dart';
import '../../theme.dart';
import '../../helpers/theme.dart';
import '../../../../widget/local_text.dart';
import '../../../../widget/progress.dart';
import 'code_page.dart';
import '../../../../pages/util.dart';
import '../util.dart';
class SigninPage extends StatefulWidget {
@override

View File

@@ -6,7 +6,7 @@ import 'package:provider/provider.dart';
import '../../../../widget/local_text.dart';
import '../../../../widget/progress.dart';
import '../../theme.dart';
import '../../helpers/theme.dart';
class SignupPage extends StatefulWidget {
@override

View File

@@ -1,7 +1,7 @@
import 'dart:async';
import 'package:fcs/fcs/common/pages/model/main_model.dart';
import 'package:fcs/fcs/common/theme.dart';
import 'package:fcs/fcs/common/helpers/theme.dart';
import 'package:fcs/widget/local_text.dart';
import 'package:flutter/material.dart';
import 'package:logging/logging.dart';

View File

@@ -0,0 +1,173 @@
import 'dart:convert';
import 'package:fcs/fcs/common/pages/model/main_model.dart';
import 'package:fcs/fcs/common/pages/term_edit.dart';
import 'package:fcs/fcs/common/helpers/theme.dart';
import 'package:fcs/fcs/common/pages/widgets/local_text.dart';
import 'package:fcs/fcs/common/pages/widgets/progress.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:fcs/fcs/common/pages/util.dart';
import 'package:zefyr/zefyr.dart';
typedef void ProfileCallback();
class Term extends StatefulWidget {
final bool agreePage;
const Term({Key key, this.agreePage = false}) : super(key: key);
@override
_TermState createState() => _TermState();
}
class _TermState extends State<Term> {
ZefyrController _controller;
FocusNode _focusNode;
NotusDocument document = new NotusDocument();
bool isLoading = false;
@override
void initState() {
super.initState();
_controller = ZefyrController(_loadDocument());
print("controller terms => ${_controller.document}");
_focusNode = FocusNode();
}
NotusDocument _loadDocument() {
MainModel mainModel = Provider.of<MainModel>(context, listen: false);
String term = mainModel.setting.terms;
print("terms => $term");
NotusDocument doc;
try {
doc = NotusDocument.fromJson(jsonDecode(term));
print('doc=> $doc');
} catch (e) {}
if (doc == null) {
doc = NotusDocument();
}
return doc;
}
@override
Widget build(BuildContext context) {
MainModel mainModel = Provider.of<MainModel>(context);
bool isOwnerAndAbove =
mainModel.user != null && mainModel.user.isOwnerAndAbove();
bool hasAdmin = mainModel.user != null && mainModel.user.hasAdmin();
// bool aggreed = mainModel.user.agreeTerms;
bool aggreed = true;
final agreeBtn = Padding(
padding: EdgeInsets.symmetric(vertical: 10.0),
child: Card(
elevation: 10,
child: Container(
height: 45.0,
child: ButtonTheme(
minWidth: 900.0,
height: 100.0,
child: FlatButton.icon(
onPressed: () {
showConfirmDialog(context, "term.iagree", () async {
_agree();
});
},
label: LocalText(context, "term.agree_btn"),
icon: Icon(
Icons.check,
),
),
),
),
));
return LocalProgress(
inAsyncCall: isLoading,
child: Scaffold(
appBar: AppBar(
centerTitle: true,
leading: new IconButton(
icon: new Icon(Icons.close),
onPressed: () => Navigator.of(context).pop(),
),
// automaticallyImplyLeading: !widget.agreePage,
title: LocalText(context, 'term', color: Colors.white, fontSize: 20),
backgroundColor: primaryColor,
actions: <Widget>[
// isOwnerAndAbove || hasAdmin
// ?
IconButton(
icon: Icon(Icons.edit),
onPressed: () async {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => TermEdit((data) {
setState(() {
_controller = ZefyrController(data);
});
})),
);
// print('doc=> $doc');
// setState(() {
// document = doc;
// });
// var document = await
// Navigator.push(
// context,
// MaterialPageRoute(builder: (context) => TermEdit()),
// );
},
)
// : Container()
],
),
body: Column(
children: <Widget>[
Expanded(
child: Padding(
padding: const EdgeInsets.all(8.0),
child: Card(
child: ZefyrTheme(
data: ZefyrThemeData().copyWith(),
child: ZefyrScaffold(
child: ZefyrEditor(
mode: ZefyrMode.view,
padding: EdgeInsets.all(16),
controller: _controller,
focusNode: _focusNode,
),
))),
)),
!aggreed ? agreeBtn : Container(),
],
),
),
);
}
_agree() async {
setState(() {
isLoading = true;
});
try {
// MainModel mainModel = Provider.of<MainModel>(context);
// await mainModel.agreeTerms();
// if (widget.agreePage) {
// Future.delayed(const Duration(milliseconds: 3000), () {
// Navigator.pop(context);
// });
// }
} catch (e) {
showMsgDialog(context, "Error", e.toString());
setState(() {
isLoading = false;
});
}
}
}

View File

@@ -0,0 +1,125 @@
import 'dart:convert';
import 'package:fcs/fcs/common/helpers/theme.dart';
import 'package:fcs/model/main_model.dart';
import 'package:fcs/fcs/common/pages/util.dart';
import 'package:fcs/widget/progress.dart';
import 'package:flutter/material.dart';
import 'package:flutter_markdown/flutter_markdown.dart';
import 'package:provider/provider.dart';
import 'package:zefyr/zefyr.dart';
typedef void ProfileCallback();
class TermEdit extends StatefulWidget {
final ValueChanged onChangedData;
TermEdit(this.onChangedData);
@override
_TermEditState createState() => _TermEditState();
}
class _TermEditState extends State<TermEdit> {
/// Allows to control the editor and the document.
ZefyrController _controller;
/// Zefyr editor like any other input field requires a focus node.
FocusNode _focusNode;
bool _isLoading;
@override
void initState() {
super.initState();
_isLoading = false;
// Here we must load the document and pass it to Zefyr controller.
final document = _loadDocument();
_controller = ZefyrController(document);
_focusNode = FocusNode();
}
/// Loads the document to be edited in Zefyr.
NotusDocument _loadDocument() {
MainModel mainModel = Provider.of<MainModel>(context, listen: false);
String term = mainModel.setting.terms;
NotusDocument doc;
try {
doc = NotusDocument.fromJson(jsonDecode(term));
} catch (e) {}
if (doc == null) {
doc = NotusDocument();
}
return doc;
}
@override
Widget build(BuildContext context) {
MainModel mainModel = Provider.of<MainModel>(context);
var singleChildScrollView = SingleChildScrollView(
padding: EdgeInsets.only(
left: 25.0,
right: 25.0,
),
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: <Widget>[
Container(
width: 300,
height: 300,
child: Card(child: Markdown(data: mainModel.setting.terms))),
],
),
);
return LocalProgress(
inAsyncCall: _isLoading,
child: Scaffold(
appBar: AppBar(
title: Text(
"Terms",
),
backgroundColor: primaryColor,
actions: <Widget>[
IconButton(
icon: Icon(Icons.save),
onPressed: () {
_save();
},
)
],
),
body: ZefyrScaffold(
child: ZefyrTheme(
data: ZefyrThemeData().copyWith(),
child: ZefyrEditor(
padding: EdgeInsets.all(16),
controller: _controller,
focusNode: _focusNode,
),
),
),
),
);
}
_save() {
setState(() {
_isLoading = true;
});
try {
final contents = jsonEncode(_controller.document);
print('contents => $contents');
widget.onChangedData(_controller.document);
// MainModel mainModel = Provider.of<MainModel>(context, listen: false);
// mainModel.updateTerms(contents);
} catch (e) {
showMsgDialog(context, "Error", e.toString());
} finally {
_isLoading = false;
Navigator.pop(context);
}
}
}

View File

@@ -11,20 +11,20 @@ import 'package:fcs/model/language_model.dart';
import 'package:fcs/model/notification_model.dart';
import 'package:fcs/model/po_model.dart';
import 'package:fcs/model/user_model.dart';
import 'package:fcs/fcs/common/theme.dart';
import 'package:fcs/fcs/common/helpers/theme.dart';
import 'package:fcs/vo/buyer.dart';
import 'package:fcs/widget/local_text.dart';
import 'package:fcs/widget/localization/app_translations.dart';
import 'package:fcs/vo/notification.dart' as Noti;
import 'announcement.dart';
import 'buyer_info.dart';
import 'do/do_approve.dart';
import 'log_list.dart';
import 'my_registeration_info.dart';
import 'po/po_submission_form.dart';
import 'products_list.dart';
import 'user_editor.dart';
import '../../../pages/announcement.dart';
import '../../../pages/buyer_info.dart';
import '../../../pages/do/do_approve.dart';
import '../../../pages/log_list.dart';
import '../../../pages/my_registeration_info.dart';
import '../../../pages/po/po_submission_form.dart';
import '../../../pages/products_list.dart';
import '../../../pages/user_editor.dart';
final log = Logger('Util');

View File

@@ -1,18 +1,17 @@
import 'package:fcs/fcs/common/pages/model/main_model.dart';
import 'package:fcs/fcs/common/pages/widgets/bottom_widgets.dart';
import 'package:fcs/model/language_model.dart';
import 'package:fcs/pages/contact.dart';
import 'package:fcs/widget/banner.dart';
import 'package:fcs/widget/bottom_up_page_route.dart';
import 'package:fcs/widget/localization/transalation.dart';
import 'package:fcs/widget/offline_redirect.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter_icons/flutter_icons.dart';
import 'package:intl/intl.dart' as intl;
import 'package:logging/logging.dart';
import 'package:provider/provider.dart';
import '../theme.dart';
import '../helpers/theme.dart';
import 'profile_page.dart';
import 'signin/signin_page.dart';
import '../../../pages/term.dart';
@@ -136,132 +135,58 @@ class _WelcomePageState extends State<WelcomePage> {
Color(0xfa272262),
], // whitish to gray
)),
child: ListView(
child: Column(
children: <Widget>[
Column(
children: <Widget>[
Padding(
padding: const EdgeInsets.all(80.0),
child: Text(
"Welcome!",
textAlign: TextAlign.center,
style: TextStyle(
color: Colors.white,
fontSize: 28,
fontFamily: "Roboto"),
),
),
Padding(
padding: const EdgeInsets.only(top: 0.0),
child: Text(
"Cargo Services",
textAlign: TextAlign.center,
style: TextStyle(
color: Colors.white,
fontSize: 28,
fontFamily: "Roboto"),
),
),
Padding(
padding: const EdgeInsets.all(10.0),
child: Text(
"by FCS Trading",
textAlign: TextAlign.center,
style: TextStyle(
color: Colors.white,
fontSize: 18,
fontFamily: "Roboto"),
),
),
Container(
padding: EdgeInsets.only(top: 10, bottom: 10),
child: CircleAvatar(
radius: (50),
backgroundColor: Colors.white,
child: ClipRRect(
borderRadius: BorderRadius.circular(50),
child: Image.asset("assets/logo.jpg"),
)),
),
],
),
// Row(
// children: <Widget>[
// Expanded(
// child: Container(
// height: 200,
// // child: DimensionBox(
// // dimension: Dimension(length, width, height),
// // color: secondaryColor,
// // ),
// ),
// ),
// RotatedBox(
// quarterTurns: -1,
// child: Slider(
// min: 6,
// max: 100,
// value: height,
// onChanged: (value) {
// setState(() {
// height = value;
// });
// },
// ),
// ),
// ],
// ),
// Row(
// mainAxisAlignment: MainAxisAlignment.spaceEvenly,
// children: <Widget>[
// Slider(
// label: "Length",
// min: 6,
// max: 100,
// value: length,
// onChanged: (value) {
// setState(() {
// length = value;
// });
// },
// ),
// Slider(
// label: "Width",
// min: 6,
// max: 100,
// value: width,
// onChanged: (value) {
// setState(() {
// width = value;
// });
// },
// ),
// ],
// ),
Padding(
padding: const EdgeInsets.only(top: 28.0),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
Expanded(
child: ListView(
children: <Widget>[
InkWell(
onTap: () {
Navigator.of(context).push(
MaterialPageRoute(builder: (_) => Contact()));
},
child: _buildSmallButton(
"Contact Us", SimpleLineIcons.support),
Padding(
padding: const EdgeInsets.all(80.0),
child: Text(
"Welcome!",
textAlign: TextAlign.center,
style: TextStyle(
color: Colors.white,
fontSize: 28,
fontFamily: "Roboto"),
),
),
InkWell(
onTap: () {
Navigator.of(context).push(
MaterialPageRoute(builder: (_) => Term()));
},
child: _buildSmallButton(
"Terms of service", Icons.info_outline),
Padding(
padding: const EdgeInsets.only(top: 0.0),
child: Text(
"Cargo Services",
textAlign: TextAlign.center,
style: TextStyle(
color: Colors.white,
fontSize: 28,
fontFamily: "Roboto"),
),
),
Padding(
padding: const EdgeInsets.all(10.0),
child: Text(
"by FCS Trading",
textAlign: TextAlign.center,
style: TextStyle(
color: Colors.white,
fontSize: 18,
fontFamily: "Roboto"),
),
),
Container(
padding: EdgeInsets.only(top: 10, bottom: 30),
child: CircleAvatar(
radius: (50),
backgroundColor: Colors.white,
child: ClipRRect(
borderRadius: BorderRadius.circular(50),
child: Image.asset("assets/logo.jpg"),
)),
),
],
),
)
),
BottomWidgets(),
],
))),
),
@@ -278,23 +203,4 @@ class _WelcomePageState extends State<WelcomePage> {
isSelected[index] = !isSelected[index];
});
}
Widget _buildSmallButton(String text, IconData iconData) {
return Padding(
padding: const EdgeInsets.all(18.0),
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Padding(
padding: const EdgeInsets.only(right: 5),
child: Icon(iconData, color: Colors.white70, size: 18),
),
Text(
text,
style: subMenuStyle,
)
],
),
);
}
}

View File

@@ -0,0 +1,69 @@
import 'package:fcs/fcs/common/localization/app_translations.dart';
import 'package:fcs/fcs/common/pages/model/language_model.dart';
import 'package:flutter/material.dart';
import 'package:flutter/widgets.dart';
import 'package:provider/provider.dart';
typedef BtnCallback();
class ActionButton extends StatelessWidget {
final String title;
final Image imgIcon;
final IconData icon;
final BtnCallback btnCallback;
const ActionButton(
{Key key, this.title, this.imgIcon, this.icon, this.btnCallback})
: super(key: key);
@override
Widget build(BuildContext context) {
var languageModel = Provider.of<LanguageModel>(context);
return InkWell(
onTap: btnCallback != null ? btnCallback : () => {},
child: Container(
width: 120,
height: 150,
padding: EdgeInsets.only(top:15.0),
decoration: new BoxDecoration(
color: Colors.transparent,
borderRadius: new BorderRadius.only(
topLeft: const Radius.circular(40.0),
topRight: const Radius.circular(40.0))),
child: Padding(
padding: const EdgeInsets.all(5.0),
child: Column(children: <Widget>[
ClipOval(
child: Material(
color: Colors.black54, // button color
child: SizedBox(
width: 60,
height: 60,
child: icon == null
? Container(width: 10, height: 10, child: imgIcon)
: Icon(icon, color: Colors.white, size: 30)),
),
),
Container(
height: 50,
alignment: Alignment.topCenter,
child: Text(AppTranslations.of(context).text(title),
textAlign: TextAlign.center,
style: languageModel.isEng
? TextStyle(
color: Colors.white,
fontWeight: FontWeight.w500,
fontSize: 15.0,
fontFamily: "Roboto")
: TextStyle(
color: Colors.white,
fontWeight: FontWeight.w500,
fontSize: 14.0,
fontFamily: "MyanmarUnicode")),
),
]),
),
),
);
}
}

View File

@@ -0,0 +1,49 @@
import 'package:fcs/fcs/common/pages/contact.dart';
import 'package:fcs/fcs/common/pages/term.dart';
import 'package:fcs/fcs/common/helpers/theme.dart';
import 'package:fcs/widget/bottom_up_page_route.dart';
import 'package:flutter/material.dart';
import 'package:flutter/widgets.dart';
import 'package:flutter_icons/flutter_icons.dart';
class BottomWidgets extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: <Widget>[
InkWell(
onTap: () {
Navigator.of(context).push(BottomUpPageRoute(Contact()));
},
child: _buildSmallButton("Contact Us", SimpleLineIcons.support),
),
InkWell(
onTap: () {
Navigator.of(context).push(BottomUpPageRoute(Term()));
},
child: _buildSmallButton("Terms of service", Icons.info_outline),
),
],
);
}
Widget _buildSmallButton(String text, IconData iconData) {
return Padding(
padding: const EdgeInsets.all(18.0),
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Padding(
padding: const EdgeInsets.only(right: 5),
child: Icon(iconData, color: Colors.white70, size: 20),
),
Text(
text,
style: subMenuStyle,
)
],
),
);
}
}

View File

@@ -0,0 +1,30 @@
import 'package:fcs/fcs/common/localization/app_translations.dart';
import 'package:fcs/fcs/common/pages/model/language_model.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:fcs/fcs/common/helpers/theme.dart';
class LocalText extends Text {
final BuildContext context;
LocalText(this.context, String translationKey,
{Color color,
double fontSize,
FontWeight fontWeight,
List<String> translationVariables,
bool underline = false})
: super(
AppTranslations.of(context).text(translationKey,
translationVariables: translationVariables),
style: Provider.of<LanguageModel>(context).isEng
? newLabelStyle(
color: color,
fontSize: fontSize,
fontWeight: fontWeight,
underline: underline)
: newLabelStyleMM(
color: color,
fontSize: fontSize,
fontWeight: fontWeight,
underline: underline));
}

View File

@@ -0,0 +1,45 @@
import 'package:flutter/material.dart';
import 'package:progress/progress.dart';
import 'package:provider/provider.dart';
import 'package:fcs/fcs/common/helpers/theme.dart';
class LocalProgress extends Progress {
LocalProgress({bool inAsyncCall, Widget child})
: super(
inAsyncCall: inAsyncCall,
child: child,
opacity: 0.6,
progressIndicator: Center(
child: Container(
height: 100,
width: 300,
child: Card(
color: Colors.white,
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
CircularProgressIndicator(
valueColor:
new AlwaysStoppedAnimation<Color>(primaryColor),
),
SizedBox(
height: 10,
),
Text("Loading...")
],
),
),
),
));
Widget build(BuildContext context) {
// hide keyboard
if (inAsyncCall) {
FocusScopeNode currentFocus = FocusScope.of(context);
if (!currentFocus.hasPrimaryFocus) {
currentFocus.unfocus();
}
}
return super.build(context);
}
}

View File

@@ -1,7 +1,6 @@
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,9 +8,7 @@ void main() {
Config(
flavor: Flavor.DEV,
color: Colors.blue,
apiURL: "https://localhost:7777",
reportURL: "http://petrok-dev.mokkon.com:8080",
reportProjectID: "dev",
apiURL: "http://192.168.1.155:7777",
level: Level.ALL);
runApp(App());
}

View File

@@ -1,5 +1,5 @@
import 'package:flutter/foundation.dart';
import 'package:fcs/fcs/common/api_helper.dart';
import 'package:fcs/fcs/common/helpers/api_helper.dart';
import '../vo/setting.dart';
import '../vo/user.dart';

View File

@@ -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/fcs/common/theme.dart';
import 'package:fcs/fcs/common/helpers/theme.dart';
import 'package:fcs/vo/buyer.dart';
import 'package:fcs/vo/popup_menu.dart';

View File

@@ -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/fcs/common/api_helper.dart';
import 'package:fcs/fcs/common/helpers/api_helper.dart';
import 'package:fcs/model/constants.dart';
import 'package:fcs/pages/do/do_files.dart';
import 'package:fcs/vo/do.dart';

View File

@@ -23,7 +23,7 @@ import 'package:fcs/widget/NetworkConnectivity.dart';
import '../config.dart';
import '../vo/status.dart';
import '../vo/user.dart';
import '../fcs/common/api_helper.dart';
import '../fcs/common/helpers/api_helper.dart';
import 'base_model.dart';
import 'constants.dart';
import 'firebase_helper.dart';

View File

@@ -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/fcs/common/api_helper.dart' as api;
import 'package:fcs/fcs/common/helpers/api_helper.dart' as api;
import 'package:fcs/vo/report.dart';
import '../config.dart';

View File

@@ -8,8 +8,8 @@ import 'package:fcs/widget/local_text.dart';
import 'package:fcs/widget/localization/app_translations.dart';
import 'package:fcs/widget/progress.dart';
import '../fcs/common/theme.dart' as Theme;
import 'util.dart';
import '../fcs/common/helpers/theme.dart' as Theme;
import '../fcs/common/pages/util.dart';
class AddPINEditor extends StatefulWidget {
final User user;

View File

@@ -4,7 +4,7 @@ import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:fcs/model/announcement_model.dart';
import 'package:fcs/model/main_model.dart';
import 'package:fcs/pages/util.dart';
import 'package:fcs/fcs/common/pages/util.dart';
import 'package:fcs/vo/announcement.dart';
import 'package:fcs/vo/popup_menu.dart';
import 'package:fcs/widget/local_text.dart';
@@ -12,7 +12,7 @@ import 'package:fcs/widget/popupmenu.dart';
import 'package:fcs/widget/progress.dart';
import 'package:zefyr/zefyr.dart';
import '../fcs/common/theme.dart';
import '../fcs/common/helpers/theme.dart';
import 'announcement_editor.dart';
class AnnouncementPage extends StatefulWidget {

View File

@@ -4,8 +4,8 @@ import 'package:flutter/material.dart';
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/fcs/common/theme.dart';
import 'package:fcs/fcs/common/pages/util.dart';
import 'package:fcs/fcs/common/helpers/theme.dart';
import 'package:fcs/vo/announcement.dart';
import 'package:fcs/widget/local_text.dart';
import 'package:fcs/widget/localization/app_translations.dart';

View File

@@ -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 '../fcs/common/theme.dart';
import '../fcs/common/helpers/theme.dart';
import 'announcement.dart';
import 'announcement_editor.dart';

View File

@@ -4,8 +4,8 @@ import 'package:flutter/material.dart';
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/fcs/common/theme.dart';
import 'package:fcs/fcs/common/pages/util.dart';
import 'package:fcs/fcs/common/helpers/theme.dart';
import 'package:fcs/vo/bank_account.dart';
import 'package:fcs/widget/local_text.dart';
import 'package:fcs/widget/local_text_field.dart';

View File

@@ -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/fcs/common/theme.dart';
import 'package:fcs/fcs/common/helpers/theme.dart';
import 'package:fcs/vo/bank_account.dart';
import 'package:fcs/widget/local_text.dart';
import 'package:fcs/widget/progress.dart';

View File

@@ -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/fcs/common/theme.dart';
import 'package:fcs/fcs/common/helpers/theme.dart';
import 'package:fcs/vo/buyer.dart';
import 'package:fcs/vo/product.dart';
import 'package:fcs/widget/progress.dart';

View File

@@ -1,8 +1,8 @@
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/fcs/common/theme.dart';
import 'package:fcs/fcs/common/pages/util.dart';
import 'package:fcs/fcs/common/helpers/theme.dart';
import 'package:fcs/vo/popup_menu.dart';
import 'package:fcs/vo/user.dart';
import 'package:fcs/widget/local_text.dart';

View File

@@ -5,14 +5,14 @@ import 'package:provider/provider.dart';
import 'package:fcs/model/buyer_model.dart';
import 'package:fcs/model/main_model.dart';
import 'package:fcs/pages/quota_page.dart';
import 'package:fcs/pages/util.dart';
import 'package:fcs/fcs/common/pages/util.dart';
import 'package:fcs/util.dart';
import 'package:fcs/vo/buyer.dart';
import 'package:fcs/widget/label_widgets.dart';
import 'package:fcs/widget/localization/app_translations.dart';
import 'package:fcs/widget/progress.dart';
import '../fcs/common/theme.dart';
import '../fcs/common/helpers/theme.dart';
import 'document_log_page.dart';
class BuyerInfo extends StatefulWidget {

View File

@@ -9,7 +9,7 @@ import 'package:fcs/widget/popupmenu.dart';
import 'package:flutter/material.dart';
import 'package:fcs/widget/progress.dart';
import '../fcs/common/theme.dart';
import '../fcs/common/helpers/theme.dart';
import 'buyer_list_row.dart';
class BuyerList extends StatefulWidget {

View File

@@ -1,8 +1,8 @@
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/fcs/common/theme.dart';
import 'package:fcs/fcs/common/pages/util.dart';
import 'package:fcs/fcs/common/helpers/theme.dart';
import 'package:fcs/vo/buyer.dart';
import 'buyer_info.dart';

View File

@@ -1,4 +1,4 @@
import 'package:fcs/pages/util.dart';
import 'package:fcs/fcs/common/pages/util.dart';
import 'package:fcs/vo/manual.dart';
import 'package:fcs/widget/bottom_up_page_route.dart';
import 'package:flutter/material.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 '../fcs/common/theme.dart';
import '../fcs/common/helpers/theme.dart';
import '../widget/label_widgets.dart';
import '../widget/local_text.dart';
import 'instruction.dart';

View File

@@ -6,7 +6,7 @@ import 'package:fcs/widget/localization/app_translations.dart';
import 'package:flutter/material.dart';
import 'package:fcs/widget/progress.dart';
import '../fcs/common/theme.dart';
import '../fcs/common/helpers/theme.dart';
class CalculateShipmentCostEditor extends StatefulWidget {
final PickUp pickUp;

View File

@@ -9,9 +9,9 @@ import 'package:fcs/widget/local_text.dart';
import 'package:fcs/widget/localization/app_translations.dart';
import 'package:fcs/widget/progress.dart';
import '../fcs/common/theme.dart' as Theme;
import '../fcs/common/helpers/theme.dart' as Theme;
import 'confirm_email.dart';
import 'util.dart';
import '../fcs/common/pages/util.dart';
class ChangePhoneNumber extends StatefulWidget {
final User user;

View File

@@ -9,8 +9,8 @@ import 'package:fcs/widget/local_text.dart';
import 'package:fcs/widget/localization/app_translations.dart';
import 'package:fcs/widget/progress.dart';
import '../fcs/common/theme.dart' as Theme;
import 'util.dart';
import '../fcs/common/helpers/theme.dart' as Theme;
import '../fcs/common/pages/util.dart';
class ChangePassword extends StatefulWidget {
final User user;

View File

@@ -1,11 +1,11 @@
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:fcs/model/user_model.dart';
import 'package:fcs/fcs/common/theme.dart';
import 'package:fcs/fcs/common/helpers/theme.dart';
import 'package:fcs/widget/localization/app_translations.dart';
import 'package:fcs/widget/progress.dart';
import 'util.dart';
import '../fcs/common/pages/util.dart';
class ConfirmEmail extends StatefulWidget {
final String id, email, phoneNumber;

View File

@@ -6,8 +6,8 @@ import 'package:package_info/package_info.dart';
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/fcs/common/theme.dart';
import 'package:fcs/fcs/common/pages/util.dart';
import 'package:fcs/fcs/common/helpers/theme.dart';
import 'package:fcs/widget/local_text.dart';
import 'package:fcs/widget/progress.dart';

View File

@@ -4,8 +4,8 @@ import 'package:provider/provider.dart';
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/fcs/common/theme.dart';
import 'package:fcs/fcs/common/pages/util.dart';
import 'package:fcs/fcs/common/helpers/theme.dart';
import 'package:fcs/vo/setting.dart';
import 'package:fcs/widget/local_text.dart';
import 'package:fcs/widget/local_text_field.dart';

View File

@@ -1,10 +1,10 @@
import 'package:fcs/pages/util.dart';
import 'package:fcs/fcs/common/pages/util.dart';
import 'package:fcs/vo/custom.dart';
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 '../fcs/common/theme.dart';
import '../fcs/common/helpers/theme.dart';
class CustomEditor extends StatefulWidget {
final Custom custom;

View File

@@ -4,13 +4,13 @@ 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/fcs/common/theme.dart';
import 'package:fcs/fcs/common/helpers/theme.dart';
import 'package:fcs/vo/role.dart';
import 'package:fcs/vo/user.dart';
import 'package:fcs/widget/local_text.dart';
import 'package:fcs/widget/localization/app_translations.dart';
import 'package:fcs/widget/progress.dart';
import 'util.dart';
import '../fcs/common/pages/util.dart';
typedef void FindCallBack();

View File

@@ -7,15 +7,15 @@ import 'package:flutter_icons/flutter_icons.dart';
import 'package:intl/intl.dart';
import 'package:provider/provider.dart';
import 'package:fcs/fcs/common/theme.dart';
import 'package:fcs/fcs/common/helpers/theme.dart';
import 'package:fcs/widget/progress.dart';
import '../fcs/common/theme.dart';
import '../fcs/common/helpers/theme.dart';
import '../vo/user.dart';
import '../widget/local_text.dart';
import 'customer_editor.dart';
import 'invitation_page.dart';
import 'util.dart';
import '../fcs/common/pages/util.dart';
class CustomerList extends StatefulWidget {
@override

View File

@@ -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/fcs/common/theme.dart';
import 'package:fcs/fcs/common/helpers/theme.dart';
import 'package:fcs/vo/do.dart';
import 'package:fcs/widget/img_file.dart';
import 'package:fcs/widget/local_text.dart';
@@ -21,7 +21,7 @@ import 'package:fcs/widget/my_data_table.dart';
import 'package:fcs/widget/number_cell.dart';
import 'package:fcs/widget/progress.dart';
import '../util.dart';
import '../../fcs/common/pages/util.dart';
class DeliveryItem extends StatefulWidget {
final DOSubmission doSubmission;

View File

@@ -6,8 +6,8 @@ import 'package:fcs/model/delivery_model.dart';
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/fcs/common/theme.dart';
import 'package:fcs/fcs/common/pages/util.dart';
import 'package:fcs/fcs/common/helpers/theme.dart';
import 'package:fcs/vo/popup_menu.dart';
import 'package:fcs/widget/localization/app_translations.dart';
import 'package:fcs/widget/popupmenu.dart';

View File

@@ -8,8 +8,8 @@ import 'package:fcs/widget/local_text.dart';
import 'package:fcs/widget/popupmenu.dart';
import 'package:fcs/widget/progress.dart';
import '../fcs/common/theme.dart';
import 'util.dart';
import '../fcs/common/helpers/theme.dart';
import '../fcs/common/pages/util.dart';
class PhoneDeviceList extends StatefulWidget {
@override

View File

@@ -1,11 +1,11 @@
import 'package:fcs/pages/util.dart';
import 'package:fcs/fcs/common/pages/util.dart';
import 'package:fcs/vo/custom.dart';
import 'package:fcs/vo/discount.dart';
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 '../fcs/common/theme.dart';
import '../fcs/common/helpers/theme.dart';
class DiscountByWeightEditor extends StatefulWidget {
final Discount discount;

View File

@@ -1,5 +1,5 @@
import 'package:fcs/model/discount_model.dart';
import 'package:fcs/pages/util.dart';
import 'package:fcs/fcs/common/pages/util.dart';
import 'package:fcs/vo/discount.dart';
import 'package:flutter/material.dart';
import 'package:flutter_icons/flutter_icons.dart';
@@ -8,7 +8,7 @@ import 'package:provider/provider.dart';
import 'package:fcs/widget/localization/app_translations.dart';
import 'package:fcs/widget/progress.dart';
import '../fcs/common/theme.dart';
import '../fcs/common/helpers/theme.dart';
class DiscountEditor extends StatefulWidget {
final Discount discount;

View File

@@ -1,13 +1,13 @@
import 'package:fcs/model/discount_model.dart';
import 'package:fcs/pages/discount_editor.dart';
import 'package:fcs/pages/util.dart';
import 'package:fcs/fcs/common/pages/util.dart';
import 'package:fcs/widget/bottom_up_page_route.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:fcs/widget/localization/app_translations.dart';
import 'package:fcs/widget/progress.dart';
import '../fcs/common/theme.dart';
import '../fcs/common/helpers/theme.dart';
class DiscountList extends StatefulWidget {
@override

View File

@@ -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/fcs/common/theme.dart';
import 'package:fcs/fcs/common/helpers/theme.dart';
import 'package:fcs/vo/do.dart';
import 'package:fcs/vo/po.dart';
import 'package:fcs/widget/img_file.dart';
@@ -24,7 +24,7 @@ import 'package:fcs/widget/number_cell.dart';
import 'package:fcs/widget/progress.dart';
import '../document_log_page.dart';
import '../util.dart';
import '../../fcs/common/pages/util.dart';
import 'do_files.dart';
import 'do_storage_item.dart';

View File

@@ -8,8 +8,8 @@ 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/do_product_item.dart';
import 'package:fcs/pages/util.dart';
import 'package:fcs/fcs/common/theme.dart';
import 'package:fcs/fcs/common/pages/util.dart';
import 'package:fcs/fcs/common/helpers/theme.dart';
import 'package:fcs/vo/do.dart';
import 'package:fcs/vo/po.dart';
import 'package:fcs/widget/img_file.dart';

View File

@@ -2,8 +2,8 @@ import 'package:intl/intl.dart';
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/fcs/common/theme.dart';
import 'package:fcs/fcs/common/pages/util.dart';
import 'package:fcs/fcs/common/helpers/theme.dart';
import 'package:fcs/vo/do.dart';
import 'package:fcs/vo/po.dart';
import 'package:fcs/widget/img_file.dart';

View File

@@ -5,8 +5,8 @@ import 'package:fcs/model/do_model.dart';
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/fcs/common/theme.dart';
import 'package:fcs/fcs/common/pages/util.dart';
import 'package:fcs/fcs/common/helpers/theme.dart';
import 'package:fcs/vo/popup_menu.dart';
import 'package:fcs/widget/localization/app_translations.dart';
import 'package:fcs/widget/popupmenu.dart';

View File

@@ -2,8 +2,8 @@ import 'package:flutter/material.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
import 'package:provider/provider.dart';
import 'package:fcs/model/language_model.dart';
import 'package:fcs/pages/util.dart';
import 'package:fcs/fcs/common/theme.dart';
import 'package:fcs/fcs/common/pages/util.dart';
import 'package:fcs/fcs/common/helpers/theme.dart';
import 'package:fcs/vo/do.dart';
import 'package:fcs/widget/local_text.dart';
import 'package:fcs/widget/localization/app_translations.dart';

View File

@@ -1,7 +1,7 @@
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:fcs/model/storage_model.dart';
import 'package:fcs/fcs/common/theme.dart';
import 'package:fcs/fcs/common/helpers/theme.dart';
import 'package:fcs/util.dart';
import 'package:fcs/vo/do.dart';
import 'package:fcs/vo/storage.dart';

View File

@@ -3,10 +3,10 @@ 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/fcs/common/theme.dart';
import 'package:fcs/fcs/common/helpers/theme.dart';
import 'package:fcs/widget/localization/app_translations.dart';
import '../util.dart';
import '../../fcs/common/pages/util.dart';
class PhotoPage extends StatefulWidget {
PhotoPage({Key key}) : super(key: key);

View File

@@ -1,5 +1,5 @@
import 'package:flutter/material.dart';
import 'package:fcs/fcs/common/theme.dart';
import 'package:fcs/fcs/common/helpers/theme.dart';
import 'package:fcs/vo/po.dart';
import 'package:fcs/widget/local_text.dart';

View File

@@ -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/fcs/common/theme.dart';
import 'package:fcs/fcs/common/helpers/theme.dart';
import 'package:fcs/vo/document_log.dart';
import 'package:fcs/vo/role.dart';
import 'package:fcs/widget/local_text.dart';

View File

@@ -4,14 +4,14 @@ 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/fcs/common/theme.dart';
import 'package:fcs/fcs/common/helpers/theme.dart';
import 'package:fcs/vo/user.dart';
import 'package:fcs/widget/local_text.dart';
import 'package:fcs/widget/localization/app_translations.dart';
import 'package:fcs/widget/progress.dart';
import 'confirm_email.dart';
import 'util.dart';
import '../fcs/common/pages/util.dart';
class EmailPage extends StatefulWidget {
final User user;

View File

@@ -1,5 +1,5 @@
import 'package:fcs/model/pickup_model.dart';
import 'package:fcs/pages/util.dart';
import 'package:fcs/fcs/common/pages/util.dart';
import 'package:fcs/vo/pickup.dart';
import 'package:fcs/widget/fcs_text_field.dart';
import 'package:fcs/widget/local_text.dart';
@@ -9,7 +9,7 @@ import 'package:provider/provider.dart';
import 'package:flutter/material.dart';
import 'package:fcs/widget/progress.dart';
import '../fcs/common/theme.dart';
import '../fcs/common/helpers/theme.dart';
class FCSProfilePage extends StatefulWidget {
final PickUp pickUp;

View File

@@ -4,12 +4,12 @@ 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/fcs/common/theme.dart';
import 'package:fcs/fcs/common/helpers/theme.dart';
import 'package:fcs/widget/local_text.dart';
import 'package:fcs/widget/localization/app_translations.dart';
import 'package:fcs/widget/progress.dart';
import 'util.dart';
import '../fcs/common/pages/util.dart';
class ForgetPassword extends StatefulWidget {
final phoneNumber;

View File

@@ -1,11 +1,11 @@
import 'package:fcs/fcs/common/theme.dart';
import 'package:fcs/fcs/common/helpers/theme.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:fcs/model/language_model.dart';
import 'package:fcs/model/main_model.dart';
import 'package:fcs/model/manual_model.dart';
import 'package:fcs/pages/manual/manual_item_title_dialog.dart';
import 'package:fcs/pages/util.dart';
import 'package:fcs/fcs/common/pages/util.dart';
import 'package:fcs/vo/manual.dart';
import 'package:fcs/widget/local_text.dart';
import 'package:fcs/widget/progress.dart';

View File

@@ -1,9 +1,9 @@
import 'package:fcs/pages/util.dart';
import 'package:fcs/fcs/common/pages/util.dart';
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 '../fcs/common/theme.dart';
import '../fcs/common/helpers/theme.dart';
class InvitationPage extends StatefulWidget {
@override

View File

@@ -1,6 +1,6 @@
import 'package:fcs/model_fcs/box_model.dart';
import 'package:fcs/model_fcs/package_model.dart';
import 'package:fcs/fcs/common/theme.dart';
import 'package:fcs/fcs/common/helpers/theme.dart';
import 'package:fcs/vo/box.dart';
import 'package:fcs/widget/localization/app_translations.dart';
import 'package:fcs/widget/progress.dart';

View File

@@ -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/fcs/common/theme.dart';
import 'package:fcs/fcs/common/helpers/theme.dart';
import 'package:fcs/widget/bottom_up_page_route.dart';
import 'package:fcs/widget/local_text.dart';
import 'package:provider/provider.dart';

View File

@@ -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/fcs/common/theme.dart';
import 'package:fcs/fcs/common/helpers/theme.dart';
import 'package:fcs/vo/box.dart';
import 'package:fcs/vo/cargo.dart';
import 'package:fcs/vo/invoice.dart';
@@ -20,7 +20,7 @@ import 'package:font_awesome_flutter/font_awesome_flutter.dart';
import 'package:intl/intl.dart';
import 'package:provider/provider.dart';
import '../util.dart';
import '../../fcs/common/pages/util.dart';
import 'box_addition.dart';
class InvoiceEditor extends StatefulWidget {

View File

@@ -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/fcs/common/theme.dart';
import 'package:fcs/fcs/common/helpers/theme.dart';
import 'package:fcs/vo/invoice.dart';
import 'package:fcs/widget/bottom_up_page_route.dart';
import 'package:flutter/cupertino.dart';
@@ -14,7 +14,7 @@ import 'package:intl/intl.dart';
import 'package:path_provider/path_provider.dart';
import 'package:provider/provider.dart';
import '../util.dart';
import '../../fcs/common/pages/util.dart';
import 'invoice_editor.dart';
import 'payment_page.dart';

Some files were not shown because too many files have changed in this diff Show More