diff --git a/assets/images/new-design/ic_schedule.svg b/assets/images/new-design/ic_schedule.svg
new file mode 100644
index 00000000..c6fe44a1
--- /dev/null
+++ b/assets/images/new-design/ic_schedule.svg
@@ -0,0 +1,12 @@
+
diff --git a/assets/images/pharmacy/offers_banner.png b/assets/images/pharmacy/offers_banner.png
new file mode 100644
index 00000000..6eab63fb
Binary files /dev/null and b/assets/images/pharmacy/offers_banner.png differ
diff --git a/assets/images/pharmacy/offers_banner_ar.png b/assets/images/pharmacy/offers_banner_ar.png
new file mode 100644
index 00000000..d987d3c6
Binary files /dev/null and b/assets/images/pharmacy/offers_banner_ar.png differ
diff --git a/assets/images/pharmacy_module/offers_banner.png b/assets/images/pharmacy_module/offers_banner.png
new file mode 100644
index 00000000..6eab63fb
Binary files /dev/null and b/assets/images/pharmacy_module/offers_banner.png differ
diff --git a/assets/images/pharmacy_module/offers_banner_ar.png b/assets/images/pharmacy_module/offers_banner_ar.png
new file mode 100644
index 00000000..d987d3c6
Binary files /dev/null and b/assets/images/pharmacy_module/offers_banner_ar.png differ
diff --git a/lib/config/config.dart b/lib/config/config.dart
index 27d60972..6f05a414 100644
--- a/lib/config/config.dart
+++ b/lib/config/config.dart
@@ -15,8 +15,8 @@ const PACKAGES_CUSTOMER = '/api/customers';
const PACKAGES_SHOPPING_CART = '/api/shopping_cart_items';
const PACKAGES_ORDERS = '/api/orders';
const PACKAGES_TAMARA_OPT = '/api/orders/paymentoptions/tamara';
-const BASE_URL = 'https://uat.hmgwebservices.com/';
-// const BASE_URL = 'https://hmgwebservices.com/';
+// const BASE_URL = 'https://uat.hmgwebservices.com/';
+const BASE_URL = 'https://hmgwebservices.com/';
// Pharmacy UAT URLs
// const BASE_PHARMACY_URL = 'https://uat.hmgwebservices.com/epharmacy/api/';
@@ -298,8 +298,8 @@ const UPLOAD_INSURANCE_CARD = 'Services/Patients.svc/REST/PatientER_PatientInfoF
const GET_VACCINES = "Services/Patients.svc/REST/GetDoneVaccinesByPatientID";
const GET_VACCINES_EMAIL = "Services/Notifications.svc/REST/SendVaccinesEmail";
-// const GET_PAtIENTS_INSURANCE_APPROVALS = "Services/Patients.svc/REST/GetApprovalStatus_DWH";
-const GET_PAtIENTS_INSURANCE_APPROVALS = "Services/Patients.svc/REST/GetApprovalStatus";
+const GET_PAtIENTS_INSURANCE_APPROVALS = "Services/Patients.svc/REST/GetApprovalStatus_Async";
+// const GET_PAtIENTS_INSURANCE_APPROVALS = "Services/Patients.svc/REST/GetApprovalStatus";
const SEARCH_BOT = 'HabibiChatBotApi/BotInterface/GetVoiceCommandResponse';
const GET_VACCINATIONS_ITEMS = "/Services/ERP.svc/REST/GET_VACCINATIONS_ITEMS";
@@ -458,6 +458,11 @@ const ADD_RRT_ORDER_RC = "rc/api/rrt/add";
const GET_ALL_RRT_ORDERS_RC = "rc/api/rrt/list";
const UPDATE_RRT_ORDER_RC = 'rc/api/rrt/update';
+// PRESCRIPTION RC SERVICES
+const ADD_PRESCRIPTION_ORDER_RC = "rc/api/prescription/add";
+const GET_ALL_PRESCRIPTION_ORDERS_RC = "rc/api/prescription/list";
+const UPDATE_PRESCRIPTION_ORDER_RC = 'rc/api/prescription/update';
+
//Pharmacy wishlist
const GET_WISHLIST = "shopping_cart_items/";
diff --git a/lib/config/localized_values.dart b/lib/config/localized_values.dart
index 334d9646..3dd8eb35 100644
--- a/lib/config/localized_values.dart
+++ b/lib/config/localized_values.dart
@@ -396,8 +396,9 @@ const Map localizedValues = {
"PaymentOnline": {"en": "Service", "ar": "الالكتروني"},
"OnlineCheckIn": {"en": "Online Check-In", "ar": "مدفوعات معلقة"},
"MyBalances": {"en": "My Balances", "ar": "رصيدي"},
+ "MyWallet": {"en": "My Wallet", "ar": "محفظتى"},
"BalanceAmount": {"en": "Wallet Amount", "ar": "مبلغ المحفظة"},
- "TotalBalance": {"en": "Total Amount", "ar": "المبلغ الإجمالي"},
+ "TotalBalance": {"en": "Total Balance", "ar": "إجمالي الرصيد"},
"CreateAdvancedPayment": {"en": "Recharge Wallet", "ar": "شحن المحفظة"},
"AdvancePayment": {"en": "Advance Payment", "ar": "الدفع مقدما"},
"AdvancePaymentLabel": {"en": "You can create and add an Advanced Payment for your account or other accounts.", "ar": "يمكنك تحويل مبلغ لحسابك لدى المجموعة أو لحساب احد المراجعين"},
@@ -1144,7 +1145,7 @@ const Map localizedValues = {
"ar": "تحويل مستوى السكر في الدم من مليمول/ لتر (مقياس المملكة المتحدة) الى ملغ/ ديسيلتر (مقياس الولايات المتحدة) والعكس"
},
"convertCholesterolStatement": {
- "en": "Convert blood cholesterol from\n mmol/l to mg/dlt and vice versa.",
+ "en": "Convert blood cholesterol from mmol/l to mg/dlt and vice versa.",
"ar": "تحويل مستوى الكولسترول في الدم من مليمول/ لتر (مقياس المملكة المتحدة) الى ملغ/ ديسيلتر (مقياس الولايات المتحدة) والعكس"
},
"triglyceridesConvertStatement": {
@@ -1494,7 +1495,7 @@ const Map localizedValues = {
"RRTRequestSuccess": {"en": "Request has been sent successfully, you will be contacted soon.", "ar": "تم إرسال الطلب بنجاح ، وسيتم الاتصال بك باسرع وقت ممكن"},
"rateDoctorAppo": {"en": "Rate DR & Appointment", "ar": "تقييم الطبيب والموعد"},
"invoice": {"en": "Invoice", "ar": "الفاتورة"},
- "requestedDate": {"en": "Reqeusted Date", "ar": "التاريخ "},
+ "requestedDate": {"en": "Req Date", "ar": "التاريخ "},
"callDuration": {"en": "Call Duration", "ar": "مدة الاتصال"},
"alreadyRated": {"en": "This appointment has been previously evaluated.", "ar": "تم تقييم هذا الموعد مسبقاً"},
"insuranceCompany": {"en": "Insurance Company", "ar": "شركة تأمين"},
@@ -1596,7 +1597,7 @@ const Map localizedValues = {
"ios-instructions-2": { "en": "Make sure that your Apple Watch is connected with the Watch & Health Apps.", "ar": "تأكد من اتصال Apple Watch بتطبيقات Watch & Health." },
"ios-instructions-3": { "en": "Make sure that data like heart rate, steps, distance etc. are being shown on your health app.", "ar": "تأكد من عرض بيانات مثل معدل ضربات القلب والخطوات والمسافة وما إلى ذلك على تطبيق صحتك." },
"supportedWatches": { "en": "Supported SmartWatches", "ar": "الساعات الذكية المدعومة" },
- "watchInstructions": { "en": "Watch Instructions:", "ar": "تعليمات الساعة:" },
+ "watchInstructions": { "en": "View watch instructions", "ar": "عرض تعليمات الساعة" },
"monthlyTab": {"en": "Monthly", "ar": "شهري"},
"moreSupportedWatches": {"en": "More Supported Smartwatches...", "ar": "المزيد من الساعات الذكية المدعومة..."},
"android-instructions-1": { "en": "Make sure that you have installed 'WearOS' & 'Google Fit' apps from Google PlayStore.", "ar": "تأكد من تثبيت تطبيقات 'WearOS' و 'Google Fit' من متجر Google PlayStore." },
@@ -1604,4 +1605,9 @@ const Map localizedValues = {
"android-instructions-3": { "en": "Make sure that your Smart Watch is connected with the WearOS app & your watch apps.", "ar": "تأكد من أن ساعتك الذكية متصلة بتطبيق WearOS وتطبيقات ساعتك." },
"android-instructions-4": { "en": "Make sure that your smart watch apps are linked/associated with Google Fit App.", "ar": "تأكد من أن تطبيقات ساعتك الذكية مرتبطة / مرتبطة بتطبيق Google Fit." }, "android-instructions-5": { "en": "Make sure that data like heart rate, steps, distance etc. are being shown on your watch app & on Google Fit app & both are in sync.", "ar": "تأكد من عرض بيانات مثل معدل ضربات القلب والخطوات والمسافة وما إلى ذلك على تطبيق الساعة وعلى تطبيق Google Fit وكلاهما في حالة مزامنة." },
"tamaraInstPlan" : { "en": "Select the tamara installment plan", "ar": "حدد خطة تقسيط تمارة" },
+ "onlineTag": {"en": "Online", "ar": "متصل"},
+ "offlineTag": {"en": "Offline", "ar": "غير متصل"},
+ "viewDocList": {"en": "View List of Doctors", "ar": "عرض قائمة الأطباء"},
+ "bodyFatTitle": {"en": "Body Fat", "ar": " الدهون في الجسم"},
+ "cholesTitle": {"en": "Blood Cholesterol", "ar": " الكولسترول في الدم"},
};
diff --git a/lib/core/service/AlHabibMedicalService/health-calculator/bariatrics-service.dart b/lib/core/service/AlHabibMedicalService/health-calculator/bariatrics-service.dart
index c952a88f..139c251b 100644
--- a/lib/core/service/AlHabibMedicalService/health-calculator/bariatrics-service.dart
+++ b/lib/core/service/AlHabibMedicalService/health-calculator/bariatrics-service.dart
@@ -13,6 +13,9 @@ class BariatricsService extends BaseService {
List doctorList = [];
List doctorListByTime = [];
+ double lat;
+ double long;
+
Future getClinicCategory() async {
hasError = false;
Map body = Map();
@@ -104,12 +107,20 @@ class BariatricsService extends BaseService {
}
Future getCalculationDoctors({@required int calculationID}) async {
+
+ if (await this.sharedPref.getDouble(USER_LAT) != null && await this.sharedPref.getDouble(USER_LONG) != null) {
+ lat = await this.sharedPref.getDouble(USER_LAT);
+ long = await this.sharedPref.getDouble(USER_LONG);
+ }
+
hasError = false;
var languageID = await sharedPref.getStringWithDefaultValue(APP_LANGUAGE, 'ar');
Map body = Map();
body['CalculationID'] = calculationID; // hint: it is static depend on IONIC project
body['LanguageID'] = languageID == 'ar' ? 1 : 2;
+ body['Latitude'] = lat != null ? lat.toString() : 0;
+ body['Longitude'] = long != null ? long.toString() : 0;
dynamic localRes;
diff --git a/lib/core/service/PrescriptionDeliveryService.dart b/lib/core/service/PrescriptionDeliveryService.dart
index c36efe89..104b390d 100644
--- a/lib/core/service/PrescriptionDeliveryService.dart
+++ b/lib/core/service/PrescriptionDeliveryService.dart
@@ -2,13 +2,7 @@ import 'package:diplomaticquarterapp/config/config.dart';
import 'package:diplomaticquarterapp/core/service/base_service.dart';
class PrescriptionDeliveryService extends BaseService {
- Future insertDeliveryOrder(
- {int lineItemNo,
- double latitude,
- double longitude,
- int appointmentNo,
- int createdBy,
- int dischargeID}) async {
+ Future insertDeliveryOrder({int lineItemNo, double latitude, double longitude, int appointmentNo, int createdBy, int dischargeID}) async {
hasError = false;
Map body = Map();
body['LineItemNo'] = lineItemNo;
@@ -17,11 +11,26 @@ class PrescriptionDeliveryService extends BaseService {
body['AppointmentNo'] = appointmentNo;
body['CreatedBy'] = createdBy;
body['DischargeID'] = dischargeID;
- await baseAppClient.post(INSERT_ER_INERT_PRES_ORDER,
- onSuccess: (dynamic response, int statusCode) {
- var asd="";
- },
- onFailure: (String error, int statusCode) {
+ await baseAppClient.post(INSERT_ER_INERT_PRES_ORDER, onSuccess: (dynamic response, int statusCode) {
+ var asd = "";
+ }, onFailure: (String error, int statusCode) {
+ hasError = true;
+ print(error);
+ super.error = error;
+ }, body: body);
+ }
+
+ Future insertDeliveryOrderRC({double latitude, double longitude, int appointmentNo, int createdBy, int dischargeID}) async {
+ hasError = false;
+ Map body = Map();
+ body['latitude'] = latitude;
+ body['longitude'] = longitude;
+ body['AppointmentNo'] = appointmentNo;
+ body['CreatedBy'] = createdBy;
+ body['DischargeID'] = dischargeID;
+ await baseAppClient.post(ADD_PRESCRIPTION_ORDER_RC, onSuccess: (dynamic response, int statusCode) {
+ var asd = "";
+ }, onFailure: (String error, int statusCode) {
hasError = true;
print(error);
super.error = error;
diff --git a/lib/core/service/client/base_app_client.dart b/lib/core/service/client/base_app_client.dart
index dbed0212..584ed67d 100644
--- a/lib/core/service/client/base_app_client.dart
+++ b/lib/core/service/client/base_app_client.dart
@@ -10,7 +10,6 @@ import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
import 'package:diplomaticquarterapp/models/Appointments/toDoCountProviderModel.dart';
import 'package:diplomaticquarterapp/pages/appUpdatePage/app_update_page.dart';
import 'package:diplomaticquarterapp/uitl/app_shared_preferences.dart';
-import 'package:diplomaticquarterapp/uitl/app_toast.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/uitl/utils.dart';
import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
@@ -31,8 +30,7 @@ AppSharedPreferences sharedPref = new AppSharedPreferences();
/// onFailure: (String error, int statusCode) {},
/// body: Map();
///
-AuthenticatedUserObject authenticatedUserObject =
- locator();
+AuthenticatedUserObject authenticatedUserObject = locator();
VitalSignService _vitalSignService = locator();
class BaseAppClient {
@@ -102,7 +100,7 @@ class BaseAppClient {
? body['PatientOutSA']
: PATIENT_OUT_SA
: PATIENT_OUT_SA;
- body['SessionID'] = SESSION_ID; //getSe
+ body['SessionID'] = getSessionId(body['TokenID']); //getSe
headers = {
'Content-Type': 'application/json',
@@ -162,8 +160,8 @@ class BaseAppClient {
// if (parsed != null) {
// onSuccess(parsed, statusCode);
// } else {
- onFailure(parsed['ErrorEndUserMessage'] ?? parsed['ErrorMessage'], statusCode);
- // logout();
+ onFailure(parsed['ErrorEndUserMessage'] ?? parsed['ErrorMessage'], statusCode);
+ // logout();
// }
}
} else if (parsed['MessageStatus'] == 1 || parsed['SMSLoginRequired'] == true) {
@@ -466,7 +464,8 @@ class BaseAppClient {
simplePost(
String fullUrl, {
- Map body, Map headers,
+ Map body,
+ Map headers,
Function(dynamic response, int statusCode) onSuccess,
Function(String error, int statusCode) onFailure,
}) async {
@@ -483,8 +482,7 @@ class BaseAppClient {
final int statusCode = response.statusCode;
print("statusCode :$statusCode");
- if(await handleUnauthorized(statusCode, forUrl: fullUrl))
- simplePost(fullUrl, onFailure: onFailure, onSuccess: onSuccess, body: body, headers: headers);
+ if (await handleUnauthorized(statusCode, forUrl: fullUrl)) simplePost(fullUrl, onFailure: onFailure, onSuccess: onSuccess, body: body, headers: headers);
if (statusCode < 200 || statusCode >= 400 || json == null) {
onFailure('Error While Fetching data', statusCode);
@@ -496,7 +494,8 @@ class BaseAppClient {
}
}
- simpleGet(String fullUrl, {Function(dynamic response, int statusCode) onSuccess, Function(String error, int statusCode) onFailure, Map queryParams, Map headers}) async {
+ simpleGet(String fullUrl,
+ {Function(dynamic response, int statusCode) onSuccess, Function(String error, int statusCode) onFailure, Map queryParams, Map headers}) async {
String url = fullUrl;
print("URL Query String: $url");
@@ -516,8 +515,7 @@ class BaseAppClient {
final int statusCode = response.statusCode;
print("statusCode :$statusCode");
- if(await handleUnauthorized(statusCode, forUrl: fullUrl))
- simpleGet(fullUrl, onFailure: onFailure, onSuccess: onSuccess, headers: headers, queryParams: queryParams);
+ if (await handleUnauthorized(statusCode, forUrl: fullUrl)) simpleGet(fullUrl, onFailure: onFailure, onSuccess: onSuccess, headers: headers, queryParams: queryParams);
if (statusCode < 200 || statusCode >= 400 || json == null) {
onFailure('Error While Fetching data', statusCode);
@@ -543,8 +541,7 @@ class BaseAppClient {
final int statusCode = response.statusCode;
print("statusCode :$statusCode");
- if(await handleUnauthorized(statusCode, forUrl: fullUrl))
- simplePut(fullUrl, onFailure: onFailure, onSuccess: onSuccess, headers: headers, body: body);
+ if (await handleUnauthorized(statusCode, forUrl: fullUrl)) simplePut(fullUrl, onFailure: onFailure, onSuccess: onSuccess, headers: headers, body: body);
if (statusCode < 200 || statusCode >= 400 || json == null) {
onFailure('Error While Fetching data', statusCode);
@@ -556,7 +553,8 @@ class BaseAppClient {
}
}
- simpleDelete(String fullUrl, {Function(dynamic response, int statusCode) onSuccess, Function(String error, int statusCode) onFailure, Map queryParams, Map headers}) async {
+ simpleDelete(String fullUrl,
+ {Function(dynamic response, int statusCode) onSuccess, Function(String error, int statusCode) onFailure, Map queryParams, Map headers}) async {
String url = fullUrl;
print("URL Query String: $url");
@@ -576,8 +574,7 @@ class BaseAppClient {
final int statusCode = response.statusCode;
print("statusCode :$statusCode");
- if(await handleUnauthorized(statusCode, forUrl: fullUrl))
- simpleDelete(fullUrl, onFailure: onFailure, onSuccess: onSuccess, queryParams: queryParams, headers: headers);
+ if (await handleUnauthorized(statusCode, forUrl: fullUrl)) simpleDelete(fullUrl, onFailure: onFailure, onSuccess: onSuccess, queryParams: queryParams, headers: headers);
if (statusCode < 200 || statusCode >= 400 || json == null) {
onFailure('Error While Fetching data', statusCode);
@@ -589,13 +586,13 @@ class BaseAppClient {
}
}
- Future handleUnauthorized(int statusCode, {String forUrl}) async{
- if(forUrl.startsWith(EXA_CART_API_BASE_URL) && statusCode == 401) {
- final token = await generatePackagesToken();
- packagesAuthHeader['Authorization'] = 'Bearer $token';
- return token != null && (token is String);
- }
- return false;
+ Future handleUnauthorized(int statusCode, {String forUrl}) async {
+ if (forUrl.startsWith(EXA_CART_API_BASE_URL) && statusCode == 401) {
+ final token = await generatePackagesToken();
+ packagesAuthHeader['Authorization'] = 'Bearer $token';
+ return token != null && (token is String);
+ }
+ return false;
}
logout() async {
@@ -726,7 +723,7 @@ class BaseAppClient {
print("statusCode :$statusCode");
if (statusCode < 200 || statusCode >= 400 || json == null) {
var parsed = json.decode(utf8.decode(response.bodyBytes));
- onFailure(parsed['error']['ErrorEndUserMsg'] ??'Error While Fetching data', statusCode);
+ onFailure(parsed['error']['ErrorEndUserMsg'] ?? 'Error While Fetching data', statusCode);
} else {
// var parsed = json.decode(response.body.toString());
var parsed = json.decode(utf8.decode(response.bodyBytes));
@@ -791,15 +788,10 @@ class BaseAppClient {
}
}
-
-
Future generatePackagesToken() async {
var url = EXA_CART_API_BASE_URL + PACKAGES_TOKEN;
var body = {
- "api_client": {
- "client_id": "a4ab6be4-424f-4836-b032-46caed88e184",
- "client_secret": "3c1a3e07-4a40-4510-9fb0-ee5f0a72752c"
- }
+ "api_client": {"client_id": "a4ab6be4-424f-4836-b032-46caed88e184", "client_secret": "3c1a3e07-4a40-4510-9fb0-ee5f0a72752c"}
};
String token;
final completer = Completer();
diff --git a/lib/core/viewModels/medical/PrescriptionDeliveryViewModel.dart b/lib/core/viewModels/medical/PrescriptionDeliveryViewModel.dart
index 424a4b20..ada4da78 100644
--- a/lib/core/viewModels/medical/PrescriptionDeliveryViewModel.dart
+++ b/lib/core/viewModels/medical/PrescriptionDeliveryViewModel.dart
@@ -7,15 +7,11 @@ import 'package:diplomaticquarterapp/core/viewModels/base_view_model.dart';
import '../../../locator.dart';
class PrescriptionDeliveryViewModel extends BaseViewModel {
- CustomerAddressesService _customerAddressesService =
- locator();
- PharmacyModuleService _pharmacyModuleService =
- locator();
- PrescriptionDeliveryService _prescriptionDeliveryService =
- locator();
+ CustomerAddressesService _customerAddressesService = locator();
+ PharmacyModuleService _pharmacyModuleService = locator();
+ PrescriptionDeliveryService _prescriptionDeliveryService = locator();
- List get addressesList =>
- _customerAddressesService.addressesList;
+ List get addressesList => _customerAddressesService.addressesList;
Future getCustomerInfo() async {
setState(ViewState.Busy);
@@ -27,28 +23,16 @@ class PrescriptionDeliveryViewModel extends BaseViewModel {
if (_customerAddressesService.hasError) {
error = _customerAddressesService.error;
setState(ViewState.ErrorLocal);
- } else {
- }
+ } else {}
await getCustomerAddresses();
}
- Future insertDeliveryOrder(
- {int lineItemNo,
- double latitude,
- double longitude,
- int appointmentNo,
- int createdBy,
- int dischargeID}) async {
-
+ Future insertDeliveryOrder({int lineItemNo, double latitude, double longitude, int appointmentNo, int createdBy, int dischargeID}) async {
setState(ViewState.BusyLocal);
- await _prescriptionDeliveryService.insertDeliveryOrder(
- lineItemNo: lineItemNo,
- latitude: latitude,
- longitude: longitude,
- appointmentNo: appointmentNo,
- createdBy: createdBy,
- dischargeID: dischargeID
- );
+ // await _prescriptionDeliveryService.insertDeliveryOrder(
+ // lineItemNo: lineItemNo, latitude: latitude, longitude: longitude, appointmentNo: appointmentNo, createdBy: createdBy, dischargeID: dischargeID);
+ await _prescriptionDeliveryService.insertDeliveryOrderRC(
+ latitude: latitude, longitude: longitude, appointmentNo: appointmentNo, createdBy: createdBy, dischargeID: dischargeID);
if (_prescriptionDeliveryService.hasError) {
error = _prescriptionDeliveryService.error;
setState(ViewState.ErrorLocal);
diff --git a/lib/core/viewModels/medical/prescriptions_view_model.dart b/lib/core/viewModels/medical/prescriptions_view_model.dart
index 0c1fafdf..03018878 100644
--- a/lib/core/viewModels/medical/prescriptions_view_model.dart
+++ b/lib/core/viewModels/medical/prescriptions_view_model.dart
@@ -77,7 +77,6 @@ class PrescriptionsViewModel extends BaseViewModel {
}
getPrescriptionsOrders({bool showLoading = false}) async {
- // print(showLoading);
setState(ViewState.Busy);
Future.delayed(new Duration(milliseconds: 300)).then((value) async {
await _prescriptionsService.getPrescriptionsOrders();
diff --git a/lib/core/viewModels/pharmacyModule/pharmacy_module_view_model.dart b/lib/core/viewModels/pharmacyModule/pharmacy_module_view_model.dart
index facccf1e..27fe3234 100644
--- a/lib/core/viewModels/pharmacyModule/pharmacy_module_view_model.dart
+++ b/lib/core/viewModels/pharmacyModule/pharmacy_module_view_model.dart
@@ -1,16 +1,12 @@
import 'package:diplomaticquarterapp/config/shared_pref_kay.dart';
import 'package:diplomaticquarterapp/core/enum/viewstate.dart';
-import 'package:diplomaticquarterapp/core/model/pharmacies/Manufacturer.dart';
import 'package:diplomaticquarterapp/core/model/pharmacies/PharmacyImageObject.dart';
-import 'package:diplomaticquarterapp/core/model/pharmacies/PharmacyProduct.dart';
-import 'package:diplomaticquarterapp/core/model/pharmacies/Prescriptions.dart';
import 'package:diplomaticquarterapp/core/model/pharmacies/recommendedProduct_model.dart';
-import 'package:diplomaticquarterapp/core/service/medical/prescriptions_service.dart';
//import 'package:diplomaticquarterapp/core/model/prescriptions/perscription_pharmacy.dart';
import 'package:diplomaticquarterapp/core/service/parmacyModule/parmacy_module_service.dart';
-import 'package:diplomaticquarterapp/core/service/parmacyModule/prescription_service.dart';
import 'package:diplomaticquarterapp/core/viewModels/base_view_model.dart';
+import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
import 'package:diplomaticquarterapp/services/pharmacy_services/recommendedProduct_service.dart';
import 'package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.dart';
import 'package:diplomaticquarterapp/uitl/navigation_service.dart';
@@ -20,13 +16,11 @@ import '../../../locator.dart';
class PharmacyModuleViewModel extends BaseViewModel {
PharmacyModuleService _pharmacyService = locator();
- RecommendedProductService _recommendedProductService =
- locator();
+ RecommendedProductService _recommendedProductService = locator();
List get bannerList => _pharmacyService.bannerItems;
- List get recommendedProductList =>
- _recommendedProductService.recommendedList;
+ List get recommendedProductList => _recommendedProductService.recommendedList;
Future generatePharmacyToken() async {
setState(ViewState.Busy);
@@ -40,8 +34,6 @@ class PharmacyModuleViewModel extends BaseViewModel {
}
Future verifyCustomer() async {
- // if (authenticatedUserObject.isLogin) await generatePharmacyToken();
-
var data = await sharedPref.getObject(USER_PROFILE);
var customerId = await sharedPref.getString(PHARMACY_CUSTOMER_ID);
@@ -70,11 +62,9 @@ class PharmacyModuleViewModel extends BaseViewModel {
Future getBannerList() async {
if (bannerList.isEmpty) {
- GifLoaderDialogUtils.showMyDialog(
- locator().navigatorKey.currentContext);
+ GifLoaderDialogUtils.showMyDialog(locator().navigatorKey.currentContext);
await _pharmacyService.getBannerListList();
- GifLoaderDialogUtils.hideDialog(
- locator().navigatorKey.currentContext);
+ GifLoaderDialogUtils.hideDialog(locator().navigatorKey.currentContext);
if (_pharmacyService.hasError) {
error = _pharmacyService.error;
setState(ViewState.Error);
@@ -83,9 +73,15 @@ class PharmacyModuleViewModel extends BaseViewModel {
}
}
- List getBannerImagesUrl() {
+ List getBannerImagesUrl(ProjectViewModel projectViewModel) {
List images = List();
images.add('assets/images/pharmacy_module/pharmacy_logo_green.png');
+
+ if (projectViewModel.isArabic)
+ images.add('assets/images/pharmacy_module/offers_banner_ar.png');
+ else
+ images.add('assets/images/pharmacy_module/offers_banner.png');
+
_pharmacyService.bannerItems.forEach((element) {
images.add(element.src);
});
diff --git a/lib/pages/AlHabibMedicalService/E-Referral/dialogs/select_country_ingo_Dialog.dart b/lib/pages/AlHabibMedicalService/E-Referral/dialogs/select_country_ingo_Dialog.dart
index d58fd29f..8046346f 100644
--- a/lib/pages/AlHabibMedicalService/E-Referral/dialogs/select_country_ingo_Dialog.dart
+++ b/lib/pages/AlHabibMedicalService/E-Referral/dialogs/select_country_ingo_Dialog.dart
@@ -4,6 +4,8 @@ import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
// ignore: must_be_immutable
+
+// todo 'sikander' remove this file when usage known
class SelectCountryDialog extends StatefulWidget {
final Function(dynamic) onValueSelected;
dynamic selectedCountry;
diff --git a/lib/pages/AlHabibMedicalService/E-Referral/dialogs/select_search_criteria_dialog.dart b/lib/pages/AlHabibMedicalService/E-Referral/dialogs/select_search_criteria_dialog.dart
deleted file mode 100644
index e970f208..00000000
--- a/lib/pages/AlHabibMedicalService/E-Referral/dialogs/select_search_criteria_dialog.dart
+++ /dev/null
@@ -1,139 +0,0 @@
-import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/EReferral/search_criteria_model.dart';
-import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
-import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
-import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
-import 'package:flutter/cupertino.dart';
-import 'package:flutter/material.dart';
-
-// ignore: must_be_immutable
-class SelectSearchCriteriaDialog extends StatefulWidget {
- List searchCriteria = [
- SearchCriteriaModel(name: "Identification Number",nameAr:"رقم الهوية",value: 1),
- SearchCriteriaModel(name: "Referral Number",nameAr:"رقم الإحالة",value: 2),
- ];
- final Function(SearchCriteriaModel) onValueSelected;
- SearchCriteriaModel selectedCriteria;
- ProjectViewModel projectViewModel;
-
- SelectSearchCriteriaDialog(
- {Key key, this.onValueSelected, this.selectedCriteria, this.projectViewModel});
-
- @override
- _SelectSearchCriteriaDialogState createState() => _SelectSearchCriteriaDialogState();
-}
-
-class _SelectSearchCriteriaDialogState extends State {
- @override
- void initState() {
- super.initState();
- widget.selectedCriteria = widget.selectedCriteria ?? widget.searchCriteria[0];
- }
-
- @override
- Widget build(BuildContext context) {
- return SimpleDialog(
- children: [
- Column(
- children: [
- Text(TranslationBase.of(context).searchCriteria),
- Divider(),
- ...List.generate(
- widget.searchCriteria.length,
- (index) => Column(
- crossAxisAlignment: CrossAxisAlignment.start,
- children: [
- SizedBox(
- height: 2,
- ),
- Row(
- children: [
- Expanded(
- flex: 1,
- child: InkWell(
- onTap: () {
- setState(() {
- widget.selectedCriteria = widget.searchCriteria[index];
- });
- },
- child: ListTile(
- title: Text(widget.projectViewModel.isArabic ? widget.searchCriteria[index].nameAr : widget.searchCriteria[index].name),
- leading: Radio(
- value: widget.searchCriteria[index],
- groupValue: widget.selectedCriteria,
- activeColor: Colors.red[800],
- onChanged: (value) {
- setState(() {
- widget.selectedCriteria = value;
- });
- },
- ),
- ),
- ),
- )
- ],
- ),
- SizedBox(
- height: 5.0,
- ),
- ],
- ),
- ),
- SizedBox(
- height: 5.0,
- ),
- Row(
- // mainAxisAlignment: MainAxisAlignment.spaceBetween,
- children: [
- Expanded(
- flex: 1,
- child: InkWell(
- onTap: () {
- Navigator.pop(context);
- },
- child: Padding(
- padding: const EdgeInsets.all(8.0),
- child: Container(
- child: Center(
- child: Texts(
- TranslationBase.of(context).cancel.toUpperCase(),
- color: Colors.red,
- ),
- ),
- ),
- ),
- ),
- ),
- Container(
- width: 1,
- height: 30,
- color: Colors.grey[500],
- ),
- Expanded(
- flex: 1,
- child: InkWell(
- onTap: () {
- widget.onValueSelected(widget.selectedCriteria);
- Navigator.pop(context);
- },
- child: Padding(
- padding: const EdgeInsets.all(8.0),
- child: Center(
- child: Texts(
- TranslationBase.of(context).ok,
- fontWeight: FontWeight.w400,
- )),
- ),
- ),
- ),
- ],
- )
- ],
- )
- ],
- );
- }
-}
-
-
-
-
diff --git a/lib/pages/AlHabibMedicalService/E-Referral/search_for_referrals_page.dart b/lib/pages/AlHabibMedicalService/E-Referral/search_for_referrals_page.dart
index b3fffa4b..5751dcfe 100644
--- a/lib/pages/AlHabibMedicalService/E-Referral/search_for_referrals_page.dart
+++ b/lib/pages/AlHabibMedicalService/E-Referral/search_for_referrals_page.dart
@@ -4,17 +4,17 @@ import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/EReferral/
import 'package:diplomaticquarterapp/core/viewModels/all_habib_medical_services/e_referral_view_model.dart';
import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/E-Referral/referral_details.dart';
+import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/h2o/h20_setting.dart';
import 'package:diplomaticquarterapp/pages/base/base_view.dart';
import 'package:diplomaticquarterapp/uitl/date_uitl.dart';
import 'package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/uitl/utils_new.dart';
import 'package:diplomaticquarterapp/widgets/buttons/defaultButton.dart';
-import 'package:diplomaticquarterapp/widgets/data_display/medical/doctor_card.dart';
+import 'package:diplomaticquarterapp/widgets/dialogs/radio_selection_dialog.dart';
import 'package:diplomaticquarterapp/widgets/errors/app_embedded_error.dart';
-import 'package:diplomaticquarterapp/widgets/my_rich_text.dart';
-import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
import 'package:diplomaticquarterapp/widgets/mobile-no/mobile_no.dart';
+import 'package:diplomaticquarterapp/widgets/my_rich_text.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:diplomaticquarterapp/widgets/others/network_base_view.dart';
import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
@@ -23,7 +23,6 @@ import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'dialogs/select_country_ingo_Dialog.dart';
-import 'dialogs/select_search_criteria_dialog.dart';
class SearchForReferralsPage extends StatefulWidget {
SearchForReferralsPage({Key key});
@@ -79,74 +78,31 @@ class _SearchForReferralsPageState extends State {
SizedBox(
height: 10,
),
- // InkWell(
- // onTap: () => selectSearchCriteriaDialog(),
- // child: Container(
- // padding: EdgeInsets.all(12),
- // width: double.infinity,
- // height: 65,
- // decoration: BoxDecoration(borderRadius: BorderRadius.circular(12), color: Colors.white),
- // child: Row(
- // mainAxisAlignment: MainAxisAlignment.spaceBetween,
- // children: [Texts(getSearchCriteriaName()), Icon(Icons.arrow_drop_down)],
- // ),
- // ),
- // ),
- Container(
- padding: EdgeInsets.only(left: 16, right: 16, bottom: 15, top: 15),
- alignment: Alignment.center,
- decoration: BoxDecoration(
- borderRadius: BorderRadius.circular(15),
- color: Colors.white,
- border: Border.all(
- color: Color(0xffefefef),
- width: 1,
- ),
- ),
- child: InkWell(
- onTap: () => selectSearchCriteriaDialog(projectViewModel),
- child: Row(
- children: [
- Expanded(
- child: Column(
- crossAxisAlignment: CrossAxisAlignment.start,
- children: [
- Text(
- TranslationBase.of(context).selectSearchCriteria,
- style: TextStyle(
- fontSize: 11,
- fontWeight: FontWeight.w600,
- color: Color(0xff2B353E),
- letterSpacing: -0.44,
- ),
- ),
- Text(
- getSearchCriteriaName(projectViewModel),
- style: TextStyle(
- fontSize: 14,
- height: 21 / 14,
- fontWeight: FontWeight.w400,
- color: Color(0xff2B353E),
- letterSpacing: -0.44,
- ),
- ),
- ],
- ),
- ),
- Icon(Icons.arrow_drop_down),
- ],
+ CommonDropDownView(TranslationBase.of(context).selectSearchCriteria, getSearchCriteriaName(projectViewModel), () {
+ List searchCriteria = [
+ SearchCriteriaModel(name: "Identification Number", nameAr: "رقم الهوية", value: 1),
+ SearchCriteriaModel(name: "Referral Number", nameAr: "رقم الإحالة", value: 2),
+ ];
+ List list = [];
+ for (int i = 0; i < searchCriteria.length; i++) {
+ list.add(RadioSelectionDialogModel(projectViewModel.isArabic ? searchCriteria[i].nameAr : searchCriteria[i].name, searchCriteria[i].value));
+ }
+ showDialog(
+ context: context,
+ child: RadioSelectionDialog(
+ listData: list,
+ selectedIndex: selectedCriteria.value,
+ onValueSelected: (index) {
+ selectedCriteria = searchCriteria[index - 1];
+ setState(() {});
+ },
),
- ),
- ),
- SizedBox(
- height: 12,
- ),
-
- inputWidget(selectedCriteria.value == 1 ? TranslationBase.of(context).enterIdentificationNumber : TranslationBase.of(context).referralNumber, "", _searchTextController, isInputTypeNum: true),
-
- SizedBox(
- height: 12,
- ),
+ );
+ }).withBorderedContainer,
+ SizedBox(height: 12),
+ inputWidget(selectedCriteria.value == 1 ? TranslationBase.of(context).enterIdentificationNumber : TranslationBase.of(context).referralNumber, "", _searchTextController,
+ isInputTypeNum: true),
+ SizedBox(height: 12),
PhoneNumberSelectorWidget(onNumberChange: (value) {
setState(() {
mobileNo = value;
@@ -179,9 +135,7 @@ class _SearchForReferralsPageState extends State {
// },
// code: _selectedCountry == null ? "11" : _selectedCountry["code"],
// ),
- SizedBox(
- height: 12,
- ),
+ SizedBox(height: 12),
if ((model.state == ViewState.Idle && model.allReferral.length == 0)) Center(child: Text(TranslationBase.of(context).noSearchResult)),
if ((model.state == ViewState.ErrorLocal)) AppEmbeddedError(error: model.error),
model.allReferral.length > 0
@@ -293,92 +247,65 @@ class _SearchForReferralsPageState extends State {
return "Country";
}
- void selectSearchCriteriaDialog(ProjectViewModel projectViewModel) {
- showDialog(
- context: context,
- child: SelectSearchCriteriaDialog(
- selectedCriteria: selectedCriteria,
- projectViewModel: projectViewModel,
- onValueSelected: (value) {
- setState(() {
- selectedCriteria = value;
- });
- },
- ),
- );
- }
-
Widget inputWidget(String _labelText, String _hintText, TextEditingController _controller,
{VoidCallback suffixTap, bool isEnable = true, bool hasSelection = false, int lines, bool isInputTypeNum = false}) {
- return Container(
- padding: EdgeInsets.only(left: 16, right: 16, bottom: 15, top: 15),
- alignment: Alignment.center,
- decoration: BoxDecoration(
- borderRadius: BorderRadius.circular(15),
- color: Colors.white,
- border: Border.all(
- color: Color(0xffefefef),
- width: 1,
- ),
- ),
- child: InkWell(
- onTap: hasSelection ? () {} : null,
- child: Row(
- children: [
- Expanded(
- child: Column(
- mainAxisSize: MainAxisSize.min,
- crossAxisAlignment: CrossAxisAlignment.start,
- children: [
- Text(
- _labelText,
- style: TextStyle(
- fontSize: 11,
- fontWeight: FontWeight.w600,
- color: Color(0xff2B353E),
- letterSpacing: -0.44,
- ),
+ return InkWell(
+ onTap: hasSelection ? () {} : null,
+ child: Row(
+ children: [
+ Expanded(
+ child: Column(
+ mainAxisSize: MainAxisSize.min,
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: [
+ Text(
+ _labelText,
+ style: TextStyle(
+ fontSize: 11,
+ fontWeight: FontWeight.w600,
+ color: Color(0xff2B353E),
+ letterSpacing: -0.44,
+ ),
+ ),
+ TextField(
+ enabled: isEnable,
+ scrollPadding: EdgeInsets.zero,
+ keyboardType: isInputTypeNum ? TextInputType.number : TextInputType.text,
+ controller: _controller,
+ maxLines: lines,
+ onChanged: (value) => {setState(() {})},
+ style: TextStyle(
+ fontSize: 14,
+ height: 21 / 14,
+ fontWeight: FontWeight.w400,
+ color: Color(0xff2B353E),
+ letterSpacing: -0.44,
),
- TextField(
- enabled: isEnable,
- scrollPadding: EdgeInsets.zero,
- keyboardType: isInputTypeNum ? TextInputType.number : TextInputType.text,
- controller: _controller,
- maxLines: lines,
- onChanged: (value) => {setState(() {})},
- style: TextStyle(
+ decoration: InputDecoration(
+ isDense: true,
+ hintText: _hintText,
+ hintStyle: TextStyle(
fontSize: 14,
height: 21 / 14,
fontWeight: FontWeight.w400,
- color: Color(0xff2B353E),
- letterSpacing: -0.44,
- ),
- decoration: InputDecoration(
- isDense: true,
- hintText: _hintText,
- hintStyle: TextStyle(
- fontSize: 14,
- height: 21 / 14,
- fontWeight: FontWeight.w400,
- color: Color(0xff575757),
- letterSpacing: -0.56,
- ),
- suffixIconConstraints: BoxConstraints(minWidth: 50),
- suffixIcon: suffixTap == null ? null : IconButton(icon: Icon(Icons.mic, color: Color(0xff2E303A)), onPressed: suffixTap),
- contentPadding: EdgeInsets.zero,
- border: InputBorder.none,
- focusedBorder: InputBorder.none,
- enabledBorder: InputBorder.none,
+ color: Color(0xff575757),
+ letterSpacing: -0.56,
),
+ suffixIconConstraints: BoxConstraints(minWidth: 50),
+ suffixIcon: suffixTap == null ? null : IconButton(icon: Icon(Icons.mic, color: Color(0xff2E303A)), onPressed: suffixTap),
+ contentPadding: EdgeInsets.zero,
+ border: InputBorder.none,
+ focusedBorder: InputBorder.none,
+ enabledBorder: InputBorder.none,
),
- ],
- ),
+ ),
+ ],
),
- if (hasSelection) Icon(Icons.keyboard_arrow_down_outlined),
- ],
- ),
+ ),
+ if (hasSelection) Icon(Icons.keyboard_arrow_down_outlined),
+ ],
),
- );
+ ).withBorderedContainer;
}
String getSearchCriteriaName(ProjectViewModel projectViewModel) {
diff --git a/lib/pages/AlHabibMedicalService/health_calculator/bmi_calculator/bariatrics-screen.dart b/lib/pages/AlHabibMedicalService/health_calculator/bmi_calculator/bariatrics-screen.dart
index ae7a35a7..13de0140 100644
--- a/lib/pages/AlHabibMedicalService/health_calculator/bmi_calculator/bariatrics-screen.dart
+++ b/lib/pages/AlHabibMedicalService/health_calculator/bmi_calculator/bariatrics-screen.dart
@@ -1,9 +1,15 @@
+import 'dart:collection';
+
import 'package:diplomaticquarterapp/config/size_config.dart';
import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/HealthCalculator/DiseasesByClinic.dart';
import 'package:diplomaticquarterapp/core/viewModels/AlHabibMedicalService/health-calculator/Bariatrics-viewmodel.dart';
import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
-import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/health_calculator/doctor_list.dart';
+import 'package:diplomaticquarterapp/models/Appointments/DoctorListResponse.dart';
+import 'package:diplomaticquarterapp/pages/BookAppointment/SearchResults.dart';
import 'package:diplomaticquarterapp/pages/base/base_view.dart';
+import 'package:diplomaticquarterapp/services/appointment_services/GetDoctorsList.dart';
+import 'package:diplomaticquarterapp/uitl/app_toast.dart';
+import 'package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/widgets/buttons/borderedButton.dart';
import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
@@ -61,9 +67,7 @@ class _BariatricsPageState extends State {
activeColor: Colors.blue.shade700,
value: item.diseasesID,
groupValue: _selectedDisease != null ? _selectedDisease.diseasesID : -1,
- selected: _selectedDisease != null
- ? item.diseasesID == _selectedDisease.diseasesID
- : false,
+ selected: _selectedDisease != null ? item.diseasesID == _selectedDisease.diseasesID : false,
onChanged: (val) {
setState(() {
_selectedDisease = item;
@@ -95,10 +99,14 @@ class _BariatricsPageState extends State {
radius: 8,
fontWeight: FontWeight.bold,
handler: () async {
- Navigator.push(
- context,
- FadePage(page: DoctorList(diseaseByClinic: _selectedDisease,)),
- );
+ callDoctorsSearchAPI();
+ // Navigator.push(
+ // context,
+ // FadePage(
+ // page: DoctorList(
+ // diseaseByClinic: _selectedDisease,
+ // )),
+ // );
},
),
),
@@ -116,10 +124,11 @@ class _BariatricsPageState extends State {
borderColor: Color(0x00000000),
fontWeight: FontWeight.bold,
handler: () async {
- Navigator.push(
- context,
- FadePage(page: DoctorList()),
- );
+ callDoctorsSearchAPI();
+ // Navigator.push(
+ // context,
+ // FadePage(page: DoctorList()),
+ // );
},
),
),
@@ -129,6 +138,65 @@ class _BariatricsPageState extends State {
);
}
+ callDoctorsSearchAPI() {
+ GifLoaderDialogUtils.showMyDialog(context);
+ List doctorsList = [];
+ List arr = [];
+ List arrDistance = [];
+ List result;
+ int numAll;
+ List _patientDoctorAppointmentListHospital = List();
+
+ DoctorsListService service = new DoctorsListService();
+ service.getDoctorsList(108, 0, false, context).then((res) {
+ GifLoaderDialogUtils.hideDialog(context);
+ if (res['MessageStatus'] == 1) {
+ setState(() {
+ if (res['DoctorList'].length != 0) {
+ doctorsList.clear();
+ res['DoctorList'].forEach((v) {
+ doctorsList.add(new DoctorList.fromJson(v));
+ });
+ doctorsList.forEach((element) {
+ List doctorByHospital = _patientDoctorAppointmentListHospital
+ .where(
+ (elementClinic) => elementClinic.filterName == element.projectName,
+ )
+ .toList();
+
+ if (doctorByHospital.length != 0) {
+ _patientDoctorAppointmentListHospital[_patientDoctorAppointmentListHospital.indexOf(doctorByHospital[0])].patientDoctorAppointmentList.add(element);
+ } else {
+ _patientDoctorAppointmentListHospital
+ .add(PatientDoctorAppointmentList(filterName: element.projectName, distanceInKMs: element.projectDistanceInKiloMeters.toString(), patientDoctorAppointment: element));
+ }
+ });
+ } else {}
+ });
+
+ result = LinkedHashSet.from(arr).toList();
+ numAll = result.length;
+ navigateToSearchResults(context, doctorsList, _patientDoctorAppointmentListHospital);
+ } else {
+ AppToast.showErrorToast(message: res['ErrorEndUserMessage']);
+ }
+ }).catchError((err) {
+ GifLoaderDialogUtils.hideDialog(context);
+ print(err);
+ AppToast.showErrorToast(message: err);
+ });
+ }
+
+ Future navigateToSearchResults(context, List docList, List patientDoctorAppointmentListHospital) async {
+ Navigator.push(context, FadePage(page: SearchResults(isLiveCareAppointment: false, doctorsList: docList, patientDoctorAppointmentListHospital: patientDoctorAppointmentListHospital)))
+ .then((value) {
+ setState(() {
+ // dropdownValue = null;
+ });
+ // getProjectsList();
+ });
+ }
+
_getImageName(int gender, double obeseResult, bool isArabic) {
String path = "assets/images/BMI/";
double result = obeseResult;
diff --git a/lib/pages/AlHabibMedicalService/health_calculator/bmr_calculator/bmr_calculator.dart b/lib/pages/AlHabibMedicalService/health_calculator/bmr_calculator/bmr_calculator.dart
index 0e22c7ae..ad35c61d 100644
--- a/lib/pages/AlHabibMedicalService/health_calculator/bmr_calculator/bmr_calculator.dart
+++ b/lib/pages/AlHabibMedicalService/health_calculator/bmr_calculator/bmr_calculator.dart
@@ -1,4 +1,5 @@
+import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/widgets/buttons/secondary_button.dart';
import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
@@ -123,7 +124,9 @@ class _BmrCalculatorState extends State {
return AppScaffold(
isShowAppBar: true,
isShowDecPage: false,
- appBarTitle: 'Bmr Calculator',
+ showNewAppBarTitle: true,
+ showNewAppBar: true,
+ appBarTitle: TranslationBase.of(context).bmr,
showHomeAppBarIcon: false,
appBarIcons: [
Padding(
diff --git a/lib/pages/AlHabibMedicalService/health_calculator/bmr_calculator/bmr_result_page.dart b/lib/pages/AlHabibMedicalService/health_calculator/bmr_calculator/bmr_result_page.dart
index 6e7d6279..e1409ee5 100644
--- a/lib/pages/AlHabibMedicalService/health_calculator/bmr_calculator/bmr_result_page.dart
+++ b/lib/pages/AlHabibMedicalService/health_calculator/bmr_calculator/bmr_result_page.dart
@@ -1,4 +1,8 @@
-import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/health_calculator/doctor_list.dart';
+import 'package:diplomaticquarterapp/core/service/AlHabibMedicalService/health-calculator/bariatrics-service.dart';
+import 'package:diplomaticquarterapp/models/Appointments/DoctorListResponse.dart';
+import 'package:diplomaticquarterapp/pages/BookAppointment/SearchResults.dart';
+import 'package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.dart';
+import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/widgets/buttons/button.dart';
import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
@@ -9,13 +13,17 @@ import 'package:percent_indicator/circular_percent_indicator.dart';
class BmrResultPage extends StatelessWidget {
final double bmrResult;
final double calories;
+
BmrResultPage({this.bmrResult, this.calories});
+
@override
Widget build(BuildContext context) {
return AppScaffold(
isShowAppBar: true,
isShowDecPage: false,
- appBarTitle: 'BMR Calculator',
+ showNewAppBarTitle: true,
+ showNewAppBar: true,
+ appBarTitle: TranslationBase.of(context).bmr,
body: Column(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: [
@@ -58,16 +66,66 @@ class BmrResultPage extends StatelessWidget {
Container(
width: 350,
child: Button(
- label: 'See List Of Doctors',
+ label: TranslationBase.of(context).viewDocList,
onTap: () {
- Navigator.push(
- context,
- FadePage(page: DoctorList()),
- );
+ getDoctorsList(context);
}),
),
],
),
);
}
+
+ getDoctorsList(BuildContext context) {
+ GifLoaderDialogUtils.showMyDialog(context);
+ BariatricsService service = new BariatricsService();
+
+ List doctorsList = [];
+ List _patientDoctorAppointmentListHospital = List();
+
+ service.getCalculationDoctors(calculationID: 3).then((res) {
+ GifLoaderDialogUtils.hideDialog(context);
+ print(res['List_CalculationTable'].length);
+ if (res['MessageStatus'] == 1) {
+ if (res['List_CalculationTable'].length != 0) {
+ res['List_CalculationTable'].forEach((item) {
+ DoctorList docList = new DoctorList();
+ docList.clinicID = item['ClinicID'];
+ docList.clinicName = item['ClinicName'];
+ docList.doctorID = item['DoctorID'];
+ docList.doctorImageURL = item['DoctorImageURL'];
+ docList.name = item['DoctorName'];
+ docList.doctorTitle = item['DoctorTitle'];
+ docList.gender = item['Gender'];
+ docList.genderDescription = item['GenderDescription'];
+ docList.nationalityName = item['Nationality'];
+ docList.nationalityFlagURL = item['NationalityFlagURL'];
+ docList.projectID = item['ProjectID'];
+ docList.projectName = item['ProjectName'];
+ docList.actualDoctorRate = 0;
+ doctorsList.add(docList);
+ });
+
+ doctorsList.forEach((element) {
+ List doctorByHospital = _patientDoctorAppointmentListHospital
+ .where(
+ (elementClinic) => elementClinic.filterName == element.projectName,
+ )
+ .toList();
+
+ if (doctorByHospital.length != 0) {
+ _patientDoctorAppointmentListHospital[_patientDoctorAppointmentListHospital.indexOf(doctorByHospital[0])].patientDoctorAppointmentList.add(element);
+ } else {
+ _patientDoctorAppointmentListHospital.add(PatientDoctorAppointmentList(filterName: element.projectName, distanceInKMs: "0", patientDoctorAppointment: element));
+ }
+ });
+
+ Navigator.push(context, FadePage(page: SearchResults(isLiveCareAppointment: false, doctorsList: doctorsList, patientDoctorAppointmentListHospital: _patientDoctorAppointmentListHospital)));
+ }
+ }
+ }).catchError((err) {
+ GifLoaderDialogUtils.hideDialog(context);
+ print(err);
+ });
+ }
}
diff --git a/lib/pages/AlHabibMedicalService/health_calculator/body_fat/body_fat.dart b/lib/pages/AlHabibMedicalService/health_calculator/body_fat/body_fat.dart
index afbc9f1c..7b32c840 100644
--- a/lib/pages/AlHabibMedicalService/health_calculator/body_fat/body_fat.dart
+++ b/lib/pages/AlHabibMedicalService/health_calculator/body_fat/body_fat.dart
@@ -1,5 +1,6 @@
import 'dart:math';
+import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/widgets/buttons/secondary_button.dart';
import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
@@ -210,8 +211,10 @@ class _BodyFatState extends State {
Widget build(BuildContext context) {
return AppScaffold(
isShowAppBar: true,
- appBarTitle: 'Body Fat',
- showHomeAppBarIcon: false,
+ isShowDecPage: false,
+ showNewAppBarTitle: true,
+ showNewAppBar: true,
+ appBarTitle: TranslationBase.of(context).bodyFatTitle,
appBarIcons: [
Padding(
padding: const EdgeInsets.symmetric(horizontal: 10.0, vertical: 7.0),
diff --git a/lib/pages/AlHabibMedicalService/health_calculator/body_fat/body_fat_result_page.dart b/lib/pages/AlHabibMedicalService/health_calculator/body_fat/body_fat_result_page.dart
index f41f9598..9ba23a1e 100644
--- a/lib/pages/AlHabibMedicalService/health_calculator/body_fat/body_fat_result_page.dart
+++ b/lib/pages/AlHabibMedicalService/health_calculator/body_fat/body_fat_result_page.dart
@@ -1,4 +1,8 @@
-import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/health_calculator/doctor_list.dart';
+import 'package:diplomaticquarterapp/core/service/AlHabibMedicalService/health-calculator/bariatrics-service.dart';
+import 'package:diplomaticquarterapp/models/Appointments/DoctorListResponse.dart';
+import 'package:diplomaticquarterapp/pages/BookAppointment/SearchResults.dart';
+import 'package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.dart';
+import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/widgets/buttons/button.dart';
import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
@@ -12,7 +16,9 @@ class FatResult extends StatelessWidget {
final String textResult;
FatResult({this.bodyFat, this.fat, this.textResult = ''});
+
Color inductorColor;
+
Color colorInductor() {
if (bodyFat >= 17) {
inductorColor = Color(0xffC70D00);
@@ -30,7 +36,10 @@ class FatResult extends StatelessWidget {
Widget build(BuildContext context) {
return AppScaffold(
isShowAppBar: true,
- appBarTitle: 'Body Fat',
+ isShowDecPage: false,
+ showNewAppBarTitle: true,
+ showNewAppBar: true,
+ appBarTitle: TranslationBase.of(context).bodyFatTitle,
body: Column(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: [
@@ -69,12 +78,9 @@ class FatResult extends StatelessWidget {
Container(
width: 350,
child: Button(
- label: 'See List Of Doctors',
+ label: TranslationBase.of(context).viewDocList,
onTap: () {
- Navigator.push(
- context,
- FadePage(page: DoctorList()),
- );
+ getDoctorsList(context);
},
),
),
@@ -82,4 +88,57 @@ class FatResult extends StatelessWidget {
),
);
}
+
+ getDoctorsList(BuildContext context) {
+ GifLoaderDialogUtils.showMyDialog(context);
+ BariatricsService service = new BariatricsService();
+
+ List doctorsList = [];
+ List _patientDoctorAppointmentListHospital = List();
+
+ service.getCalculationDoctors(calculationID: 5).then((res) {
+ GifLoaderDialogUtils.hideDialog(context);
+ print(res['List_CalculationTable'].length);
+ if (res['MessageStatus'] == 1) {
+ if (res['List_CalculationTable'].length != 0) {
+ res['List_CalculationTable'].forEach((item) {
+ DoctorList docList = new DoctorList();
+ docList.clinicID = item['ClinicID'];
+ docList.clinicName = item['ClinicName'];
+ docList.doctorID = item['DoctorID'];
+ docList.doctorImageURL = item['DoctorImageURL'];
+ docList.name = item['DoctorName'];
+ docList.doctorTitle = item['DoctorTitle'];
+ docList.gender = item['Gender'];
+ docList.genderDescription = item['GenderDescription'];
+ docList.nationalityName = item['Nationality'];
+ docList.nationalityFlagURL = item['NationalityFlagURL'];
+ docList.projectID = item['ProjectID'];
+ docList.projectName = item['ProjectName'];
+ docList.actualDoctorRate = 0;
+ doctorsList.add(docList);
+ });
+
+ doctorsList.forEach((element) {
+ List doctorByHospital = _patientDoctorAppointmentListHospital
+ .where(
+ (elementClinic) => elementClinic.filterName == element.projectName,
+ )
+ .toList();
+
+ if (doctorByHospital.length != 0) {
+ _patientDoctorAppointmentListHospital[_patientDoctorAppointmentListHospital.indexOf(doctorByHospital[0])].patientDoctorAppointmentList.add(element);
+ } else {
+ _patientDoctorAppointmentListHospital.add(PatientDoctorAppointmentList(filterName: element.projectName, distanceInKMs: "0", patientDoctorAppointment: element));
+ }
+ });
+
+ Navigator.push(context, FadePage(page: SearchResults(isLiveCareAppointment: false, doctorsList: doctorsList, patientDoctorAppointmentListHospital: _patientDoctorAppointmentListHospital)));
+ }
+ }
+ }).catchError((err) {
+ GifLoaderDialogUtils.hideDialog(context);
+ print(err);
+ });
+ }
}
diff --git a/lib/pages/AlHabibMedicalService/health_calculator/calorie_calculator/calorie_result_page.dart b/lib/pages/AlHabibMedicalService/health_calculator/calorie_calculator/calorie_result_page.dart
index ed3dd8f8..749bf241 100644
--- a/lib/pages/AlHabibMedicalService/health_calculator/calorie_calculator/calorie_result_page.dart
+++ b/lib/pages/AlHabibMedicalService/health_calculator/calorie_calculator/calorie_result_page.dart
@@ -1,4 +1,7 @@
-import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/health_calculator/doctor_list.dart';
+import 'package:diplomaticquarterapp/core/service/AlHabibMedicalService/health-calculator/bariatrics-service.dart';
+import 'package:diplomaticquarterapp/models/Appointments/DoctorListResponse.dart';
+import 'package:diplomaticquarterapp/pages/BookAppointment/SearchResults.dart';
+import 'package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/widgets/buttons/button.dart';
import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
@@ -15,9 +18,11 @@ class CalorieResultPage extends StatelessWidget {
@override
Widget build(BuildContext context) {
return AppScaffold(
- isShowDecPage: false,
appBarTitle: "${TranslationBase.of(context).calories} ${TranslationBase.of(context).calculators}",
isShowAppBar: true,
+ isShowDecPage: false,
+ showNewAppBarTitle: true,
+ showNewAppBar: true,
body: Column(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: [
@@ -52,12 +57,9 @@ class CalorieResultPage extends StatelessWidget {
Container(
width: 350,
child: Button(
- label: 'See List Of Doctors',
+ label: TranslationBase.of(context).viewDocList,
onTap: () {
- Navigator.push(
- context,
- FadePage(page: DoctorList()),
- );
+ getDoctorsList(context);
},
),
),
@@ -65,4 +67,57 @@ class CalorieResultPage extends StatelessWidget {
),
);
}
+
+ getDoctorsList(BuildContext context) {
+ GifLoaderDialogUtils.showMyDialog(context);
+ BariatricsService service = new BariatricsService();
+
+ List doctorsList = [];
+ List _patientDoctorAppointmentListHospital = List();
+
+ service.getCalculationDoctors(calculationID: 2).then((res) {
+ GifLoaderDialogUtils.hideDialog(context);
+ print(res['List_CalculationTable'].length);
+ if (res['MessageStatus'] == 1) {
+ if (res['List_CalculationTable'].length != 0) {
+ res['List_CalculationTable'].forEach((item) {
+ DoctorList docList = new DoctorList();
+ docList.clinicID = item['ClinicID'];
+ docList.clinicName = item['ClinicName'];
+ docList.doctorID = item['DoctorID'];
+ docList.doctorImageURL = item['DoctorImageURL'];
+ docList.name = item['DoctorName'];
+ docList.doctorTitle = item['DoctorTitle'];
+ docList.gender = item['Gender'];
+ docList.genderDescription = item['GenderDescription'];
+ docList.nationalityName = item['Nationality'];
+ docList.nationalityFlagURL = item['NationalityFlagURL'];
+ docList.projectID = item['ProjectID'];
+ docList.projectName = item['ProjectName'];
+ docList.actualDoctorRate = 0;
+ doctorsList.add(docList);
+ });
+
+ doctorsList.forEach((element) {
+ List doctorByHospital = _patientDoctorAppointmentListHospital
+ .where(
+ (elementClinic) => elementClinic.filterName == element.projectName,
+ )
+ .toList();
+
+ if (doctorByHospital.length != 0) {
+ _patientDoctorAppointmentListHospital[_patientDoctorAppointmentListHospital.indexOf(doctorByHospital[0])].patientDoctorAppointmentList.add(element);
+ } else {
+ _patientDoctorAppointmentListHospital.add(PatientDoctorAppointmentList(filterName: element.projectName, distanceInKMs: "0", patientDoctorAppointment: element));
+ }
+ });
+
+ Navigator.push(context, FadePage(page: SearchResults(isLiveCareAppointment: false, doctorsList: doctorsList, patientDoctorAppointmentListHospital: _patientDoctorAppointmentListHospital)));
+ }
+ }
+ }).catchError((err) {
+ GifLoaderDialogUtils.hideDialog(context);
+ print(err);
+ });
+ }
}
diff --git a/lib/pages/AlHabibMedicalService/health_calculator/carbs/carbs.dart b/lib/pages/AlHabibMedicalService/health_calculator/carbs/carbs.dart
index 7d8f4655..4b68687a 100644
--- a/lib/pages/AlHabibMedicalService/health_calculator/carbs/carbs.dart
+++ b/lib/pages/AlHabibMedicalService/health_calculator/carbs/carbs.dart
@@ -1,4 +1,5 @@
import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/health_calculator/calorie_calculator/calorie_calculator.dart';
+import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/widgets/buttons/button.dart';
import 'package:diplomaticquarterapp/widgets/buttons/secondary_button.dart';
import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
@@ -81,8 +82,10 @@ class _CarbsState extends State {
Widget build(BuildContext context) {
return AppScaffold(
isShowAppBar: true,
- appBarTitle: 'Carb Protein Fat',
- showHomeAppBarIcon: false,
+ isShowDecPage: false,
+ showNewAppBarTitle: true,
+ showNewAppBar: true,
+ appBarTitle: TranslationBase.of(context).carbohydrate,
appBarIcons: [
Padding(
padding: const EdgeInsets.symmetric(horizontal: 10.0, vertical: 7.0),
diff --git a/lib/pages/AlHabibMedicalService/health_calculator/carbs/carbs_result_page.dart b/lib/pages/AlHabibMedicalService/health_calculator/carbs/carbs_result_page.dart
index 71055d7b..46c14ee0 100644
--- a/lib/pages/AlHabibMedicalService/health_calculator/carbs/carbs_result_page.dart
+++ b/lib/pages/AlHabibMedicalService/health_calculator/carbs/carbs_result_page.dart
@@ -1,5 +1,9 @@
-import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/health_calculator/doctor_list.dart';
+import 'package:diplomaticquarterapp/core/service/AlHabibMedicalService/health-calculator/bariatrics-service.dart';
+import 'package:diplomaticquarterapp/models/Appointments/DoctorListResponse.dart';
+import 'package:diplomaticquarterapp/pages/BookAppointment/SearchResults.dart';
+import 'package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.dart';
+import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/widgets/buttons/button.dart';
import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
@@ -32,7 +36,10 @@ class CarbsResult extends StatelessWidget {
Widget build(BuildContext context) {
return AppScaffold(
isShowAppBar: true,
- appBarTitle: 'Carb Protein Fat',
+ isShowDecPage: false,
+ showNewAppBarTitle: true,
+ showNewAppBar: true,
+ appBarTitle: TranslationBase.of(context).carbohydrate,
body: Column(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
@@ -156,27 +163,68 @@ class CarbsResult extends StatelessWidget {
Container(
width: 350,
child: Button(
- label: 'See List Of Doctors',
+ label: TranslationBase.of(context).viewDocList,
onTap: () {
- Navigator.push(
- context,
- FadePage(page: DoctorList()),
- );
+ getDoctorsList(context);
},
),
),
],
),
-
- // Texts(pCal.ceil().toString()),
- // Texts(cCal.ceil().toString()),
- // Texts(fCal.ceil().toString()),
- // Texts(pCalGram.ceil().toString()),
- // Texts(cCalGram.ceil().toString()),
- // Texts(fCalGram.ceil().toString()),
- // Texts(pCalMeal.ceil().toString()),
- // Texts(cCalMeal.ceil().toString()),
- // Texts(fCalMeal.ceil().toString()),
);
}
+
+ getDoctorsList(BuildContext context) {
+ GifLoaderDialogUtils.showMyDialog(context);
+ BariatricsService service = new BariatricsService();
+
+ List doctorsList = [];
+ List _patientDoctorAppointmentListHospital = List();
+
+ service.getCalculationDoctors(calculationID: 11).then((res) {
+ GifLoaderDialogUtils.hideDialog(context);
+ print(res['List_CalculationTable'].length);
+ if (res['MessageStatus'] == 1) {
+ if (res['List_CalculationTable'].length != 0) {
+ res['List_CalculationTable'].forEach((item) {
+ DoctorList docList = new DoctorList();
+ docList.clinicID = item['ClinicID'];
+ docList.clinicName = item['ClinicName'];
+ docList.doctorID = item['DoctorID'];
+ docList.doctorImageURL = item['DoctorImageURL'];
+ docList.name = item['DoctorName'];
+ docList.doctorTitle = item['DoctorTitle'];
+ docList.gender = item['Gender'];
+ docList.genderDescription = item['GenderDescription'];
+ docList.nationalityName = item['Nationality'];
+ docList.nationalityFlagURL = item['NationalityFlagURL'];
+ docList.projectID = item['ProjectID'];
+ docList.projectName = item['ProjectName'];
+ docList.actualDoctorRate = 0;
+ doctorsList.add(docList);
+ });
+
+ doctorsList.forEach((element) {
+ List doctorByHospital = _patientDoctorAppointmentListHospital
+ .where(
+ (elementClinic) => elementClinic.filterName == element.projectName,
+ )
+ .toList();
+
+ if (doctorByHospital.length != 0) {
+ _patientDoctorAppointmentListHospital[_patientDoctorAppointmentListHospital.indexOf(doctorByHospital[0])].patientDoctorAppointmentList.add(element);
+ } else {
+ _patientDoctorAppointmentListHospital.add(PatientDoctorAppointmentList(filterName: element.projectName, distanceInKMs: "0", patientDoctorAppointment: element));
+ }
+ });
+
+ Navigator.push(context, FadePage(page: SearchResults(isLiveCareAppointment: false, doctorsList: doctorsList, patientDoctorAppointmentListHospital: _patientDoctorAppointmentListHospital)));
+ }
+ }
+ }).catchError((err) {
+ GifLoaderDialogUtils.hideDialog(context);
+ print(err);
+ });
+ }
+
}
diff --git a/lib/pages/AlHabibMedicalService/health_calculator/ideal_body/ideal_body.dart b/lib/pages/AlHabibMedicalService/health_calculator/ideal_body/ideal_body.dart
index 84f76153..e8d89b13 100644
--- a/lib/pages/AlHabibMedicalService/health_calculator/ideal_body/ideal_body.dart
+++ b/lib/pages/AlHabibMedicalService/health_calculator/ideal_body/ideal_body.dart
@@ -1,4 +1,5 @@
+import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/widgets/buttons/secondary_button.dart';
import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
@@ -100,7 +101,10 @@ class _IdealBodyState extends State {
Widget build(BuildContext context) {
return AppScaffold(
isShowAppBar: true,
- appBarTitle: 'Ideal Body Weight',
+ isShowDecPage: false,
+ showNewAppBarTitle: true,
+ showNewAppBar: true,
+ appBarTitle: TranslationBase.of(context).idealBody,
showHomeAppBarIcon: false,
appBarIcons: [
Padding(
diff --git a/lib/pages/AlHabibMedicalService/health_calculator/ideal_body/ideal_body_result_page.dart b/lib/pages/AlHabibMedicalService/health_calculator/ideal_body/ideal_body_result_page.dart
index 311b423a..6a40bee7 100644
--- a/lib/pages/AlHabibMedicalService/health_calculator/ideal_body/ideal_body_result_page.dart
+++ b/lib/pages/AlHabibMedicalService/health_calculator/ideal_body/ideal_body_result_page.dart
@@ -1,5 +1,8 @@
-
-import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/health_calculator/doctor_list.dart';
+import 'package:diplomaticquarterapp/core/service/AlHabibMedicalService/health-calculator/bariatrics-service.dart';
+import 'package:diplomaticquarterapp/models/Appointments/DoctorListResponse.dart';
+import 'package:diplomaticquarterapp/pages/BookAppointment/SearchResults.dart';
+import 'package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.dart';
+import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/widgets/buttons/button.dart';
import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
@@ -14,11 +17,15 @@ class IdealBodyResult extends StatelessWidget {
final String textResult;
IdealBodyResult({this.idealBodyWeight, this.minRange, this.mixRange, this.overWeightBy, this.textResult});
+
@override
Widget build(BuildContext context) {
return AppScaffold(
isShowAppBar: true,
- appBarTitle: 'Ideal Body Weight',
+ isShowDecPage: false,
+ showNewAppBarTitle: true,
+ showNewAppBar: true,
+ appBarTitle: TranslationBase.of(context).idealBody,
body: Column(
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
@@ -81,8 +88,7 @@ class IdealBodyResult extends StatelessWidget {
children: [
Texts('This means that the weight is a little bit more than ideal weight by'),
Texts(overWeightBy.toStringAsFixed(1)),
- Texts(
- 'May wish to consult with the doctor for medical help. Click to view our list of Doctors'),
+ Texts('May wish to consult with the doctor for medical help. Click to view our list of Doctors'),
],
)
: overWeightBy >= 18
@@ -104,8 +110,7 @@ class IdealBodyResult extends StatelessWidget {
SizedBox(
height: 25.0,
),
- Texts(
- 'May wish to consult with the doctor for\n medical help. Click to view our list of\n Doctors'),
+ Texts('May wish to consult with the doctor for\n medical help. Click to view our list of\n Doctors'),
],
),
)
@@ -148,20 +153,16 @@ class IdealBodyResult extends StatelessWidget {
SizedBox(
height: 25.0,
),
- Texts(
- 'May wish to consult with the doctor for\n medical help. Click to view our list of\n Doctors'),
+ Texts('May wish to consult with the doctor for\n medical help. Click to view our list of\n Doctors'),
],
),
),
Container(
width: 350,
child: Button(
- label: 'See List Of Doctors',
+ label: TranslationBase.of(context).viewDocList,
onTap: () {
- Navigator.push(
- context,
- FadePage(page: DoctorList()),
- );
+ getDoctorsList(context);
},
),
),
@@ -169,4 +170,57 @@ class IdealBodyResult extends StatelessWidget {
),
);
}
+
+ getDoctorsList(BuildContext context) {
+ GifLoaderDialogUtils.showMyDialog(context);
+ BariatricsService service = new BariatricsService();
+
+ List doctorsList = [];
+ List _patientDoctorAppointmentListHospital = List();
+
+ service.getCalculationDoctors(calculationID: 4).then((res) {
+ GifLoaderDialogUtils.hideDialog(context);
+ print(res['List_CalculationTable'].length);
+ if (res['MessageStatus'] == 1) {
+ if (res['List_CalculationTable'].length != 0) {
+ res['List_CalculationTable'].forEach((item) {
+ DoctorList docList = new DoctorList();
+ docList.clinicID = item['ClinicID'];
+ docList.clinicName = item['ClinicName'];
+ docList.doctorID = item['DoctorID'];
+ docList.doctorImageURL = item['DoctorImageURL'];
+ docList.name = item['DoctorName'];
+ docList.doctorTitle = item['DoctorTitle'];
+ docList.gender = item['Gender'];
+ docList.genderDescription = item['GenderDescription'];
+ docList.nationalityName = item['Nationality'];
+ docList.nationalityFlagURL = item['NationalityFlagURL'];
+ docList.projectID = item['ProjectID'];
+ docList.projectName = item['ProjectName'];
+ docList.actualDoctorRate = 0;
+ doctorsList.add(docList);
+ });
+
+ doctorsList.forEach((element) {
+ List doctorByHospital = _patientDoctorAppointmentListHospital
+ .where(
+ (elementClinic) => elementClinic.filterName == element.projectName,
+ )
+ .toList();
+
+ if (doctorByHospital.length != 0) {
+ _patientDoctorAppointmentListHospital[_patientDoctorAppointmentListHospital.indexOf(doctorByHospital[0])].patientDoctorAppointmentList.add(element);
+ } else {
+ _patientDoctorAppointmentListHospital.add(PatientDoctorAppointmentList(filterName: element.projectName, distanceInKMs: "0", patientDoctorAppointment: element));
+ }
+ });
+
+ Navigator.push(context, FadePage(page: SearchResults(isLiveCareAppointment: false, doctorsList: doctorsList, patientDoctorAppointmentListHospital: _patientDoctorAppointmentListHospital)));
+ }
+ }
+ }).catchError((err) {
+ GifLoaderDialogUtils.hideDialog(context);
+ print(err);
+ });
+ }
}
diff --git a/lib/pages/AlHabibMedicalService/health_converter.dart b/lib/pages/AlHabibMedicalService/health_converter.dart
index 27c2a05c..c4ad7760 100644
--- a/lib/pages/AlHabibMedicalService/health_converter.dart
+++ b/lib/pages/AlHabibMedicalService/health_converter.dart
@@ -26,12 +26,8 @@ class _HealthConverterState extends State {
appBarTitle: TranslationBase.of(context).converters,
body: Column(
children: [
- Container(
- width: double.infinity,
- height: 30,
- ),
Padding(
- padding: EdgeInsets.only(left: 12, right: 12),
+ padding: EdgeInsets.only(left: 12, right: 12, top: 20.0),
child: GridView.builder(
shrinkWrap: true,
primary: false,
@@ -59,9 +55,9 @@ class _HealthConverterState extends State {
),
child: MedicalProfileItem(
title: TranslationBase.of(context).bloodSugar,
- imagePath: 'assets/images/new-design/blood_sugar_icon.png',
+ imagePath: 'sugar-blood-level.svg',
subTitle: TranslationBase.of(context).sugar,
- isPngImage: true,
+ isPngImage: false,
),
));
@@ -72,9 +68,9 @@ class _HealthConverterState extends State {
),
child: MedicalProfileItem(
title: TranslationBase.of(context).bloodCholesterol,
- imagePath: 'assets/images/new-design/blood_cholesterol_icon.png',
+ imagePath: 'cholesterol.svg',
subTitle: TranslationBase.of(context).cholesterol,
- isPngImage: true,
+ isPngImage: false,
),
));
@@ -85,9 +81,9 @@ class _HealthConverterState extends State {
),
child: MedicalProfileItem(
title: TranslationBase.of(context).triglycerides,
- imagePath: 'assets/images/new-design/triglycerides_blood_icon.png',
+ imagePath: 'fat.svg',
subTitle: TranslationBase.of(context).fatInBlood,
- isPngImage: true,
+ isPngImage: false,
),
));
return medical;
diff --git a/lib/pages/AlHabibMedicalService/health_converter/blood_cholesterol.dart b/lib/pages/AlHabibMedicalService/health_converter/blood_cholesterol.dart
index 5e584602..af93afa4 100644
--- a/lib/pages/AlHabibMedicalService/health_converter/blood_cholesterol.dart
+++ b/lib/pages/AlHabibMedicalService/health_converter/blood_cholesterol.dart
@@ -1,12 +1,13 @@
+import 'package:diplomaticquarterapp/theme/colors.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
+import 'package:diplomaticquarterapp/widgets/buttons/defaultButton.dart';
import 'package:diplomaticquarterapp/widgets/buttons/secondary_button.dart';
-import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
-const activeCardColor = Color(0xffD02127);
-const inactiveCardColor = Color(0xffFAFAFd);
+const activeCardColor = CustomColors.green;
+const inactiveCardColor = CustomColors.white;
class BloodCholesterol extends StatefulWidget {
@override
@@ -18,7 +19,6 @@ class _BloodCholesterolState extends State {
Color cardMMOLColor = inactiveCardColor;
void updateColor(int type) {
- //MG/DLT card
if (type == 1) {
if (cardMGColor == inactiveCardColor) {
cardMGColor = activeCardColor;
@@ -51,225 +51,246 @@ class _BloodCholesterolState extends State {
bool _visible = false;
TextEditingController textController = new TextEditingController();
+ TextEditingController resultTextController = new TextEditingController();
String finalValue;
double inputValue = 0.0;
String unit;
double conversionConst = 38.67;
+ @override
+ void initState() {
+ updateColor(1);
+ unit = 'mmol/l';
+ super.initState();
+ }
+
@override
Widget build(BuildContext context) {
return AppScaffold(
isShowAppBar: true,
- appBarTitle: TranslationBase.of(context).bloodCholesterol,
+ appBarTitle: TranslationBase.of(context).cholesTitle,
isShowDecPage: false,
showNewAppBar: true,
showNewAppBarTitle: true,
body: Padding(
padding: const EdgeInsets.all(16.0),
- child: SingleChildScrollView(
- child: Container(
- height: MediaQuery.of(context).size.height * 0.7,
- child: Column(
- //crossAxisAlignment: CrossAxisAlignment.start,
- children: [
- Container(
- width: 350.0,
- child: Text(
- TranslationBase.of(context).convertCholesterolStatement,
- style: TextStyle(fontSize: 20.0),
- ),
- ),
- SizedBox(
- height: 15.0,
- ),
- Container(
- color: Colors.white,
- height: 120.0,
- child: Padding(
- padding: const EdgeInsets.all(8.0),
- child: Column(
+ child: Container(
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: [
+ Container(child: Text(TranslationBase.of(context).cholesTitle, style: TextStyle(fontWeight: FontWeight.bold, fontSize: 20.0, letterSpacing: -0.64, color: CustomColors.darkGrey))),
+ Container(
+ margin: EdgeInsets.only(top: 10.0),
+ child: Text(TranslationBase.of(context).convertCholesterolStatement, style: TextStyle(fontWeight: FontWeight.w600, fontSize: 14.0, letterSpacing: -0.64, color: CustomColors.darkGrey)),
+ ),
+ SizedBox(
+ height: 13.0,
+ ),
+ Container(
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: [
+ Padding(
+ padding: const EdgeInsets.only(top: 12.0),
+ child: Text(TranslationBase.of(context).convertFrom, style: TextStyle(fontWeight: FontWeight.w600, fontSize: 16.0, letterSpacing: -0.64, color: CustomColors.darkGrey)),
+ ),
+ SizedBox(
+ height: 9.0,
+ ),
+ Row(
+ mainAxisAlignment: MainAxisAlignment.spaceEvenly,
+ crossAxisAlignment: CrossAxisAlignment.center,
children: [
- Padding(
- padding: const EdgeInsets.symmetric(horizontal: 15.0),
- child: Row(
- children: [
- Texts(
- TranslationBase.of(context).convertFrom,
+ Expanded(
+ child: GestureDetector(
+ onTap: () {
+ setState(() {
+ updateColor(1);
+ inputValue = double.parse(textController.text);
+ inputValue = inputValue / conversionConst;
+ unit = 'mmol/l';
+ });
+ },
+ child: Container(
+ clipBehavior: Clip.antiAlias,
+ decoration: BoxDecoration(
+ borderRadius: BorderRadius.all(
+ Radius.circular(6.0),
+ ),
+ border: Border.all(width: 2, color: cardMGColor),
+ boxShadow: [
+ BoxShadow(
+ color: Color(0xff000000).withOpacity(.05),
+ blurRadius: 27,
+ offset: Offset(0, -3),
+ ),
+ ],
+ color: Colors.white,
),
- ],
+ child: Padding(
+ padding: const EdgeInsets.all(8.0),
+ child: Text('MG/DLt to MMOL/L',
+ textAlign: TextAlign.center, style: TextStyle(fontWeight: FontWeight.w600, fontSize: 13.0, letterSpacing: -0.64, color: CustomColors.darkGrey)),
+ ),
+ ),
),
),
SizedBox(
- height: 9.0,
+ width: 12.0,
),
- Row(
- mainAxisAlignment: MainAxisAlignment.spaceEvenly,
- children: [
- GestureDetector(
- onTap: () {
- setState(() {
- updateColor(1);
- inputValue =
- double.parse(textController.text);
- inputValue = inputValue / conversionConst;
- unit = 'mmol/l';
- });
- },
- child: Container(
- height: 65.0,
- width: 150.0,
- decoration: BoxDecoration(
- boxShadow: [
- BoxShadow(
- color: Colors.grey.withOpacity(0.5),
- spreadRadius: 3,
- blurRadius: 7,
- offset: Offset(
- 0, 3), // changes position of shadow
- ),
- ],
- color: cardMGColor,
- borderRadius: BorderRadius.circular(3.0),
- ),
- child: Padding(
- padding: const EdgeInsets.symmetric(
- vertical: 0.0, horizontal: 18.0),
- child: Texts('MG/DLt TO \nMMOL/L'),
+ Expanded(
+ child: GestureDetector(
+ onTap: () {
+ setState(() {
+ updateColor(2);
+ inputValue = double.parse(textController.text);
+ inputValue = inputValue * conversionConst;
+ unit = 'mg/dlt';
+ });
+ },
+ child: Container(
+ clipBehavior: Clip.antiAlias,
+ decoration: BoxDecoration(
+ borderRadius: BorderRadius.all(
+ Radius.circular(6.0),
),
+ border: Border.all(width: 2, color: cardMMOLColor),
+ boxShadow: [
+ BoxShadow(
+ color: Color(0xff000000).withOpacity(.05),
+ blurRadius: 27,
+ offset: Offset(0, -3),
+ ),
+ ],
+ color: Colors.white,
),
- ),
- GestureDetector(
- onTap: () {
- setState(() {
- updateColor(2);
- inputValue =
- double.parse(textController.text);
- inputValue = inputValue * conversionConst;
- unit = 'mg/dlt';
- });
- },
- child: Container(
- height: 65.0,
- width: 150.0,
- decoration: BoxDecoration(
- color: cardMMOLColor,
- borderRadius: BorderRadius.circular(3.0),
- boxShadow: [
- BoxShadow(
- color: Colors.grey.withOpacity(0.5),
- spreadRadius: 3,
- blurRadius: 7,
- offset: Offset(
- 0, 3), // changes position of shadow
- ),
- ],
- ),
- child: Padding(
- padding: const EdgeInsets.symmetric(
- horizontal: 16.0),
- child: Texts('MG/DLt TO\n MMOL/L'),
- ),
+ child: Padding(
+ padding: const EdgeInsets.all(8.0),
+ child: Text('MMOL/L to MG/DLt',
+ textAlign: TextAlign.center, style: TextStyle(fontWeight: FontWeight.w600, fontSize: 13.0, letterSpacing: -0.64, color: CustomColors.darkGrey)),
),
),
- ],
+ ),
),
],
),
- ),
+ ],
),
- SizedBox(
- height: 25.0,
- ),
- Container(
- height: 65.0,
- decoration: BoxDecoration(
- borderRadius: BorderRadius.circular(6.0),
- color: Colors.white,
+ ),
+ SizedBox(
+ height: 12.0,
+ ),
+ inputWidget(TranslationBase.of(context).enterReadingValue, '0.0', textController),
+ SizedBox(
+ height: 12.0,
+ ),
+ Visibility(
+ visible: _visible,
+ child: inputWidget(TranslationBase.of(context).result, inputValue.toStringAsFixed(2) + " " + unit.toString(), resultTextController, isEnable: false),
+ ),
+ SizedBox(
+ height: 15.0,
+ ),
+ ],
+ ),
+ ),
+ ),
+ bottomSheet: Container(
+ color: CustomColors.white,
+ padding: EdgeInsets.fromLTRB(12.0, 1.0, 12.0, 25.0),
+ child: DefaultButton(
+ TranslationBase.of(context).calculate,
+ () {
+ setState(() {
+ _visible == false ? _visible = !_visible : _visible = _visible;
+ calculateBloodCholesterol();
+ });
+ },
+ color: CustomColors.green,
+ ),
+ ),
+ );
+ }
+
+ Widget inputWidget(String _labelText, String _hintText, TextEditingController _controller, {String prefix, bool isEnable = true, bool hasSelection = false}) {
+ return Container(
+ padding: EdgeInsets.only(left: 16, right: 16, bottom: 15, top: 15),
+ alignment: Alignment.center,
+ decoration: BoxDecoration(
+ borderRadius: BorderRadius.circular(10),
+ color: isEnable ? Colors.white : CustomColors.grey2.withOpacity(0.4),
+ border: Border.all(
+ color: Color(0xffefefef),
+ width: 1,
+ ),
+ ),
+ child: InkWell(
+ onTap: hasSelection ? () {} : null,
+ child: Row(
+ children: [
+ Expanded(
+ child: Column(
+ mainAxisSize: MainAxisSize.min,
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: [
+ Text(
+ _labelText,
+ style: TextStyle(
+ fontSize: 11,
+ fontWeight: FontWeight.w600,
+ color: Color(0xff2B353E),
+ letterSpacing: -0.44,
+ ),
),
- child: TextFormField(
- controller: textController,
- inputFormatters: [
-// FilteringTextInputFormatter.digitsOnly
- ],
+ TextField(
+ enabled: isEnable,
+ scrollPadding: EdgeInsets.zero,
keyboardType: TextInputType.number,
+ controller: _controller,
+ onChanged: (value) => {},
+ style: TextStyle(
+ fontSize: 14,
+ height: 21 / 14,
+ fontWeight: FontWeight.w400,
+ color: Color(0xff2B353E),
+ letterSpacing: -0.44,
+ ),
decoration: InputDecoration(
- border: OutlineInputBorder(
- borderSide: BorderSide(color: Colors.black45)),
- labelText: TranslationBase.of(context).enterReadingValue,
- labelStyle: TextStyle(
- color: Colors.black87,
+ isDense: true,
+ hintText: _hintText,
+ fillColor: CustomColors.accentColor,
+ hintStyle: TextStyle(
+ fontSize: isEnable ? 14 : 24,
+ height: 21 / 14,
+ fontWeight: FontWeight.w400,
+ color: isEnable ? Color(0xff575757) : CustomColors.black,
+ letterSpacing: -0.56,
),
- ),
- ),
- ),
- SizedBox(
- height: 25.0,
- ),
- Visibility(
- visible: _visible,
- child: Container(
- height: 115.0,
- width: 350.0,
- decoration: BoxDecoration(
- color: Colors.white,
- border: Border.all(color: Colors.black),
- borderRadius: BorderRadius.circular(15.0),
- ),
- child: Padding(
- padding: const EdgeInsets.all(8.0),
- child: Column(
- crossAxisAlignment: CrossAxisAlignment.start,
- mainAxisAlignment: MainAxisAlignment.center,
- children: [
- Texts(TranslationBase.of(context).result + ":"),
- Row(
- children: [
- Text(
- inputValue.toStringAsFixed(3).toString(),
- style: TextStyle(fontSize: 35.0),
+ prefixIconConstraints: BoxConstraints(minWidth: 50),
+ prefixIcon: prefix == null
+ ? null
+ : Text(
+ "+" + prefix,
+ style: TextStyle(
+ fontSize: 14,
+ height: 21 / 14,
+ fontWeight: FontWeight.w500,
+ color: Color(0xff2E303A),
+ letterSpacing: -0.56,
),
- Padding(
- padding: EdgeInsets.only(left: 4.0, top: 10.0),
- child: Text(
- unit.toString(),
- style: TextStyle(
- color: Color(0xffC5273A),
- fontSize: 15.0,
- fontWeight: FontWeight.w500,
- ),
- ),
- ),
- ],
- ),
- ],
- ),
- ),
- ),
- ),
- SizedBox(
- height: 15.0,
- ),
- Flexible(
- child: Container(
- height: 60.0,
- width: 150.0,
- child: SecondaryButton(
- label: TranslationBase.of(context).calculate,
- onTap: () {
- setState(() {
- _visible == false
- ? _visible = !_visible
- : _visible = _visible;
- calculateBloodCholesterol();
- });
- },
+ ),
+ contentPadding: EdgeInsets.zero,
+ border: InputBorder.none,
+ focusedBorder: InputBorder.none,
+ enabledBorder: InputBorder.none,
),
),
- ),
- ],
+ ],
+ ),
),
- ),
+ if (hasSelection) Icon(Icons.keyboard_arrow_down_outlined),
+ ],
),
),
);
diff --git a/lib/pages/AlHabibMedicalService/health_converter/blood_sugar.dart b/lib/pages/AlHabibMedicalService/health_converter/blood_sugar.dart
index ebc41150..4604c3df 100644
--- a/lib/pages/AlHabibMedicalService/health_converter/blood_sugar.dart
+++ b/lib/pages/AlHabibMedicalService/health_converter/blood_sugar.dart
@@ -1,15 +1,15 @@
+import 'package:diplomaticquarterapp/theme/colors.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/widgets/buttons/defaultButton.dart';
-import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
-const activeCardColor = Color(0xffD02127);
-const activeTextColor = Color(0xffFAFAFA);
-const inactiveCardColor = Color(0xffFAFAFA);
-const inactiveTextColor = Color(0xff60686B);
+const activeCardColor = CustomColors.green;
+const activeTextColor = CustomColors.black;
+const inactiveCardColor = CustomColors.white;
+const inactiveTextColor = CustomColors.black;
class BloodSugar extends StatefulWidget {
@override
@@ -25,7 +25,6 @@ class _BloodSugarState extends State {
Color textMMOLColor = inactiveTextColor;
void updateColor(int type) {
- //MG/DLT card
if (type == 1) {
if (cardMGColor == inactiveCardColor) {
cardMGColor = activeCardColor;
@@ -59,10 +58,12 @@ class _BloodSugarState extends State {
inputValue = inputValue * 18;
unit = 'mg/dlt';
}
+ setState(() {});
}
bool _visible = false;
TextEditingController textController = new TextEditingController();
+ TextEditingController resultTextController = new TextEditingController();
String finalValue;
double inputValue = 0;
@@ -90,210 +91,222 @@ class _BloodSugarState extends State {
Expanded(
child: SingleChildScrollView(
child: Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
children: [
+ Container(child: Text(TranslationBase.of(context).bloodSugar, style: TextStyle(fontWeight: FontWeight.bold, fontSize: 20.0, letterSpacing: -0.64, color: CustomColors.darkGrey))),
Container(
- margin: EdgeInsets.symmetric(horizontal: 8),
- child: Text(
- TranslationBase.of(context).convertBloodSugarStatement,
- style: TextStyle(fontSize: 20.0),
- ),
+ margin: EdgeInsets.only(top: 10.0),
+ child: Text(TranslationBase.of(context).convertBloodSugarStatement,
+ style: TextStyle(fontWeight: FontWeight.w600, fontSize: 14.0, letterSpacing: -0.64, color: CustomColors.darkGrey)),
),
SizedBox(
height: 12.0,
),
Container(
- color: Colors.white,
- child: Padding(
- padding: const EdgeInsets.symmetric(vertical: 16.0, horizontal: 8),
- child: Column(
- children: [
- Padding(
- padding: const EdgeInsets.symmetric(horizontal: 16.0),
- child: Row(
- children: [
- Texts(
- TranslationBase.of(context).convertFrom,
- )
- ],
- ),
- ),
- SizedBox(
- height: 8.0,
- ),
- Row(
- mainAxisAlignment: MainAxisAlignment.spaceEvenly,
- crossAxisAlignment: CrossAxisAlignment.center,
- children: [
- SizedBox(
- width: 16.0,
- ),
- Expanded(
- child: GestureDetector(
- onTap: () {
- setState(() {
- updateColor(1);
- calculateBloodSugar();
- });
- },
- child: Container(
- height: 65.0,
- decoration: BoxDecoration(
- boxShadow: [
- BoxShadow(
- color: Colors.grey.withOpacity(0.5),
- spreadRadius: 1,
- blurRadius: 7,
- offset: Offset(0, 3), // changes position of shadow
- ),
- ],
- color: cardMGColor,
- borderRadius: BorderRadius.circular(3.0),
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: [
+ Padding(
+ padding: const EdgeInsets.only(top: 12.0),
+ child: Text(TranslationBase.of(context).convertFrom, style: TextStyle(fontWeight: FontWeight.w600, fontSize: 16.0, letterSpacing: -0.64, color: CustomColors.darkGrey)),
+ ),
+ SizedBox(
+ height: 8.0,
+ ),
+ Row(
+ mainAxisAlignment: MainAxisAlignment.spaceEvenly,
+ crossAxisAlignment: CrossAxisAlignment.center,
+ children: [
+ Expanded(
+ child: GestureDetector(
+ onTap: () {
+ setState(() {
+ updateColor(1);
+ calculateBloodSugar();
+ });
+ },
+ child: Container(
+ clipBehavior: Clip.antiAlias,
+ decoration: BoxDecoration(
+ borderRadius: BorderRadius.all(
+ Radius.circular(6.0),
),
- child: Padding(
- padding: const EdgeInsets.symmetric(vertical: 0.0, horizontal: 18.0),
- child: Texts(
- 'MG/DLt TO \nMMOL/L',
- color: textMGColor,
+ border: Border.all(width: 2, color: cardMGColor),
+ boxShadow: [
+ BoxShadow(
+ color: Color(0xff000000).withOpacity(.05),
+ blurRadius: 27,
+ offset: Offset(0, -3),
),
+ ],
+ color: Colors.white,
+ ),
+ child: Padding(
+ padding: const EdgeInsets.all(8.0),
+ child: Text(
+ 'MG/DLt to MMOL/L',
+ textAlign: TextAlign.center,
+ style: TextStyle(fontWeight: FontWeight.w600, fontSize: 13.0, letterSpacing: -0.64, color: CustomColors.darkGrey),
),
),
),
),
- SizedBox(
- width: 12.0,
- ),
- Expanded(
- child: GestureDetector(
- onTap: () {
- setState(() {
- updateColor(2);
- calculateBloodSugar();
- });
- },
- child: Container(
- height: 65.0,
- decoration: BoxDecoration(
- color: cardMMOLColor,
- borderRadius: BorderRadius.circular(3.0),
- boxShadow: [
- BoxShadow(
- color: Colors.grey.withOpacity(0.5),
- spreadRadius: 3,
- blurRadius: 7,
- offset: Offset(0, 3), // changes position of shadow
- ),
- ],
+ ),
+ SizedBox(
+ width: 12.0,
+ ),
+ Expanded(
+ child: GestureDetector(
+ onTap: () {
+ setState(() {
+ updateColor(2);
+ calculateBloodSugar();
+ });
+ },
+ child: Container(
+ clipBehavior: Clip.antiAlias,
+ decoration: BoxDecoration(
+ borderRadius: BorderRadius.all(
+ Radius.circular(6.0),
),
- child: Padding(
- padding: const EdgeInsets.symmetric(horizontal: 16.0),
- child: Texts(
- 'MMOL/L TO MG/DLt ',
- color: textMMOLColor,
+ border: Border.all(width: 2, color: cardMMOLColor),
+ boxShadow: [
+ BoxShadow(
+ color: Color(0xff000000).withOpacity(.05),
+ blurRadius: 27,
+ offset: Offset(0, -3),
),
+ ],
+ color: Colors.white,
+ ),
+ child: Padding(
+ padding: const EdgeInsets.all(8.0),
+ child: Text(
+ 'MMOL/L to MG/DLt',
+ textAlign: TextAlign.center,
+ style: TextStyle(fontWeight: FontWeight.w600, fontSize: 13.0, letterSpacing: -0.64, color: CustomColors.darkGrey),
),
),
),
),
- SizedBox(
- width: 16.0,
- ),
- ],
- ),
- ],
- ),
+ ),
+ ],
+ ),
+ ],
),
),
SizedBox(
- height: 24.0,
- ),
- Container(
- height: 65.0,
- padding: EdgeInsets.symmetric(horizontal: 8),
- decoration: BoxDecoration(
- borderRadius: BorderRadius.circular(6.0),
- color: Colors.white,
- ),
- child: TextFormField(
- controller: textController,
- inputFormatters: [
-// FilteringTextInputFormatter.digitsOnly
- ],
- keyboardType: TextInputType.number,
- decoration: InputDecoration(
- labelText: TranslationBase.of(context).enterReadingValue,
- enabledBorder: UnderlineInputBorder(
- borderSide: BorderSide(color: Colors.white),
- ),
- disabledBorder: UnderlineInputBorder(
- borderSide: BorderSide(color: Colors.white),
- ),
- focusedBorder: UnderlineInputBorder(
- borderSide: BorderSide(color: Colors.white),
- ),
- border: UnderlineInputBorder(borderSide: BorderSide(color: Colors.white)),
- labelStyle: TextStyle(
- color: Colors.black87,
- ),
- ),
- ),
+ height: 12.0,
),
+ inputWidget(TranslationBase.of(context).enterReadingValue, '0.0', textController),
SizedBox(
- height: 24.0,
+ height: 12.0,
),
Visibility(
visible: _visible,
- child: Container(
- height: 115.0,
- width: 350.0,
- decoration: BoxDecoration(
- color: Colors.white,
- border: Border.all(color: Colors.black),
- borderRadius: BorderRadius.circular(15.0),
- ),
- child: Padding(
- padding: const EdgeInsets.all(8.0),
- child: Column(
- crossAxisAlignment: CrossAxisAlignment.start,
- mainAxisAlignment: MainAxisAlignment.center,
- children: [
- Texts(TranslationBase.of(context).result + ": "),
- Row(
- children: [
- Text(
- inputValue.toStringAsFixed(2),
- style: TextStyle(fontSize: 35.0),
- ),
- Padding(
- padding: EdgeInsets.only(left: 4.0, top: 10.0),
- child: Text(
- unit.toString(),
- style: TextStyle(
- color: Color(0xffC5273A),
- fontSize: 15.0,
- fontWeight: FontWeight.w500,
- ),
- ),
- ),
- ],
- ),
- ],
- ),
- ),
- ),
+ child: inputWidget(TranslationBase.of(context).result, inputValue.toStringAsFixed(2) + " " + unit.toString(), resultTextController, isEnable: false),
),
],
),
),
),
- Container(
- margin: EdgeInsets.symmetric(horizontal: 16),
- child: DefaultButton(TranslationBase.of(context).calculate, () {
- setState(() {
- _visible == false ? _visible = !_visible : _visible = _visible;
- calculateBloodSugar();
- });
- }),
+ ],
+ ),
+ ),
+ bottomSheet: Container(
+ color: CustomColors.white,
+ padding: EdgeInsets.fromLTRB(12.0, 1.0, 12.0, 25.0),
+ child: DefaultButton(
+ TranslationBase.of(context).calculate,
+ () {
+ setState(() {
+ _visible == false ? _visible = !_visible : _visible = _visible;
+ calculateBloodSugar();
+ });
+ },
+ color: CustomColors.green,
+ ),
+ ),
+ );
+ }
+
+ Widget inputWidget(String _labelText, String _hintText, TextEditingController _controller, {String prefix, bool isEnable = true, bool hasSelection = false}) {
+ return Container(
+ padding: EdgeInsets.only(left: 16, right: 16, bottom: 15, top: 15),
+ alignment: Alignment.center,
+ decoration: BoxDecoration(
+ borderRadius: BorderRadius.circular(10),
+ color: isEnable ? Colors.white : CustomColors.grey2.withOpacity(0.4),
+ border: Border.all(
+ color: Color(0xffefefef),
+ width: 1,
+ ),
+ ),
+ child: InkWell(
+ onTap: hasSelection ? () {} : null,
+ child: Row(
+ children: [
+ Expanded(
+ child: Column(
+ mainAxisSize: MainAxisSize.min,
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: [
+ Text(
+ _labelText,
+ style: TextStyle(
+ fontSize: 11,
+ fontWeight: FontWeight.w600,
+ color: Color(0xff2B353E),
+ letterSpacing: -0.44,
+ ),
+ ),
+ TextField(
+ enabled: isEnable,
+ scrollPadding: EdgeInsets.zero,
+ keyboardType: TextInputType.number,
+ controller: _controller,
+ onChanged: (value) => {},
+ style: TextStyle(
+ fontSize: 14,
+ height: 21 / 14,
+ fontWeight: FontWeight.w400,
+ color: Color(0xff2B353E),
+ letterSpacing: -0.44,
+ ),
+ decoration: InputDecoration(
+ isDense: true,
+ hintText: _hintText,
+ fillColor: CustomColors.accentColor,
+ hintStyle: TextStyle(
+ fontSize: isEnable ? 14 : 24,
+ height: 21 / 14,
+ fontWeight: FontWeight.w400,
+ color: isEnable ? Color(0xff575757) : CustomColors.black,
+ letterSpacing: -0.56,
+ ),
+ prefixIconConstraints: BoxConstraints(minWidth: 50),
+ prefixIcon: prefix == null
+ ? null
+ : Text(
+ "+" + prefix,
+ style: TextStyle(
+ fontSize: 14,
+ height: 21 / 14,
+ fontWeight: FontWeight.w500,
+ color: Color(0xff2E303A),
+ letterSpacing: -0.56,
+ ),
+ ),
+ contentPadding: EdgeInsets.zero,
+ border: InputBorder.none,
+ focusedBorder: InputBorder.none,
+ enabledBorder: InputBorder.none,
+ ),
+ ),
+ ],
+ ),
),
+ if (hasSelection) Icon(Icons.keyboard_arrow_down_outlined),
],
),
),
diff --git a/lib/pages/AlHabibMedicalService/health_converter/triglycerides.dart b/lib/pages/AlHabibMedicalService/health_converter/triglycerides.dart
index b9571d2b..e441d935 100644
--- a/lib/pages/AlHabibMedicalService/health_converter/triglycerides.dart
+++ b/lib/pages/AlHabibMedicalService/health_converter/triglycerides.dart
@@ -1,13 +1,13 @@
+import 'package:diplomaticquarterapp/theme/colors.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
-import 'package:diplomaticquarterapp/widgets/buttons/secondary_button.dart';
-import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
+import 'package:diplomaticquarterapp/widgets/buttons/defaultButton.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
-const activeCardColor = Color(0xff70777A);
-const inactiveCardColor = Color(0xffFAFAFd);
+const activeCardColor = CustomColors.green;
+const inactiveCardColor = CustomColors.white;
class Triglycerides extends StatefulWidget {
@override
@@ -18,6 +18,7 @@ class _TriglyceridesState extends State {
Color cardMGColor = inactiveCardColor;
Color cardMMOLColor = inactiveCardColor;
int type;
+
void updateColor(type) {
//MG/DLT card
if (type == 1) {
@@ -52,12 +53,20 @@ class _TriglyceridesState extends State {
bool _visible = false;
TextEditingController textController = new TextEditingController();
+ TextEditingController resultTextController = new TextEditingController();
String finalValue;
double inputValue = 0.0;
String unit;
double conversionConst = 88.57;
+ @override
+ void initState() {
+ updateColor(1);
+ unit = 'mmol/l';
+ super.initState();
+ }
+
@override
Widget build(BuildContext context) {
return AppScaffold(
@@ -68,210 +77,226 @@ class _TriglyceridesState extends State {
showNewAppBarTitle: true,
body: Padding(
padding: const EdgeInsets.all(16.0),
- child: SingleChildScrollView(
- child: Container(
- height: MediaQuery.of(context).size.height * 0.7,
- child: Column(
- //crossAxisAlignment: CrossAxisAlignment.start,
- children: [
- Container(
- width: 350.0,
- child: Text(
- TranslationBase.of(context).triglyceridesConvertStatement,
- //textAlign: TextAlign.center,
- style: TextStyle(fontSize: 20.0),
- ),
- ),
- SizedBox(
- height: 15.0,
- ),
- Container(
- color: Colors.white,
- height: 120.0,
- child: Padding(
- padding: const EdgeInsets.all(8.0),
- child: Column(
- //crossAxisAlignment: CrossAxisAlignment.end,
+ child: Container(
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: [
+ Container(child: Text(TranslationBase.of(context).triglycerides, style: TextStyle(fontWeight: FontWeight.bold, fontSize: 20.0, letterSpacing: -0.64, color: CustomColors.darkGrey))),
+ Container(
+ margin: EdgeInsets.only(top: 10.0),
+ child:
+ Text(TranslationBase.of(context).triglyceridesConvertStatement, style: TextStyle(fontWeight: FontWeight.w600, fontSize: 14.0, letterSpacing: -0.64, color: CustomColors.darkGrey)),
+ ),
+ SizedBox(
+ height: 12.0,
+ ),
+ Container(
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: [
+ Padding(
+ padding: const EdgeInsets.only(top: 12.0),
+ child: Text(TranslationBase.of(context).convertFrom, style: TextStyle(fontWeight: FontWeight.w600, fontSize: 16.0, letterSpacing: -0.64, color: CustomColors.darkGrey)),
+ ),
+ SizedBox(
+ height: 9.0,
+ ),
+ Row(
+ mainAxisAlignment: MainAxisAlignment.spaceEvenly,
+ crossAxisAlignment: CrossAxisAlignment.center,
children: [
- Padding(
- padding: const EdgeInsets.symmetric(horizontal: 15.0),
- child: Row(
- children: [
- Texts(TranslationBase.of(context).convertFrom)
- ],
+ Expanded(
+ child: GestureDetector(
+ onTap: () {
+ setState(() {
+ updateColor(1);
+ inputValue = double.parse(textController.text);
+ inputValue = inputValue / conversionConst;
+ unit = 'mmol/l';
+ });
+ },
+ child: Container(
+ clipBehavior: Clip.antiAlias,
+ decoration: BoxDecoration(
+ borderRadius: BorderRadius.all(
+ Radius.circular(6.0),
+ ),
+ border: Border.all(width: 2, color: cardMGColor),
+ boxShadow: [
+ BoxShadow(
+ color: Color(0xff000000).withOpacity(.05),
+ blurRadius: 27,
+ offset: Offset(0, -3),
+ ),
+ ],
+ color: Colors.white,
+ ),
+ child: Padding(
+ padding: const EdgeInsets.all(8.0),
+ child: Text(
+ 'MG/DLt to MMOL/L',
+ textAlign: TextAlign.center,
+ style: TextStyle(fontWeight: FontWeight.w600, fontSize: 13.0, letterSpacing: -0.64, color: CustomColors.darkGrey),
+ ),
+ ),
+ ),
),
),
SizedBox(
- height: 9.0,
+ width: 12.0,
),
- Row(
- mainAxisAlignment: MainAxisAlignment.spaceEvenly,
- children: [
- GestureDetector(
- onTap: () {
- setState(() {
- updateColor(1);
- inputValue =
- double.parse(textController.text);
- inputValue = inputValue / conversionConst;
- unit = 'mmol/l';
- });
- },
- child: Container(
- height: 65.0,
- width: 150.0,
- decoration: BoxDecoration(
- boxShadow: [
- BoxShadow(
- color: Colors.grey.withOpacity(0.5),
- spreadRadius: 3,
- blurRadius: 7,
- offset: Offset(
- 0, 3), // changes position of shadow
- ),
- ],
- color: cardMGColor,
- borderRadius: BorderRadius.circular(3.0),
- ),
- child: Padding(
- padding: const EdgeInsets.symmetric(
- vertical: 0.0, horizontal: 18.0),
- child: Texts('MG/DLt TO \nMMOL/L'),
+ Expanded(
+ child: GestureDetector(
+ onTap: () {
+ setState(() {
+ updateColor(2);
+ inputValue = double.parse(textController.text);
+ inputValue = inputValue * conversionConst;
+ unit = 'mg/dlt';
+ });
+ },
+ child: Container(
+ clipBehavior: Clip.antiAlias,
+ decoration: BoxDecoration(
+ borderRadius: BorderRadius.all(
+ Radius.circular(6.0),
),
+ border: Border.all(width: 2, color: cardMMOLColor),
+ boxShadow: [
+ BoxShadow(
+ color: Color(0xff000000).withOpacity(.05),
+ blurRadius: 27,
+ offset: Offset(0, -3),
+ ),
+ ],
+ color: Colors.white,
),
- ),
- GestureDetector(
- onTap: () {
- setState(() {
- updateColor(2);
- inputValue =
- double.parse(textController.text);
- inputValue = inputValue * conversionConst;
- unit = 'mg/dlt';
- });
- },
- child: Container(
- height: 65.0,
- width: 150.0,
- decoration: BoxDecoration(
- color: cardMMOLColor,
- borderRadius: BorderRadius.circular(3.0),
- boxShadow: [
- BoxShadow(
- color: Colors.grey.withOpacity(0.5),
- spreadRadius: 3,
- blurRadius: 7,
- offset: Offset(
- 0, 3), // changes position of shadow
- ),
- ],
- ),
- child: Padding(
- padding: const EdgeInsets.symmetric(
- horizontal: 16.0),
- child: Texts('MG/DLt TO\n MMOL/L'),
+ child: Padding(
+ padding: const EdgeInsets.all(8.0),
+ child: Text(
+ 'MMOL/L to MG/DLt',
+ textAlign: TextAlign.center,
+ style: TextStyle(fontWeight: FontWeight.w600, fontSize: 13.0, letterSpacing: -0.64, color: CustomColors.darkGrey),
),
),
),
- ],
+ ),
),
],
),
- ),
- ),
- SizedBox(
- height: 25.0,
+ ],
),
- Container(
- height: 65.0,
- decoration: BoxDecoration(
- borderRadius: BorderRadius.circular(6.0),
- color: Colors.white,
+ ),
+ SizedBox(
+ height: 12.0,
+ ),
+ inputWidget(TranslationBase.of(context).enterReadingValue, "0.0", textController),
+ SizedBox(
+ height: 12.0,
+ ),
+ Visibility(
+ visible: _visible,
+ child: inputWidget(TranslationBase.of(context).result, inputValue.toStringAsFixed(2) + " " + unit.toString(), resultTextController, isEnable: false),
+ ),
+ ],
+ ),
+ ),
+ ),
+ bottomSheet: Container(
+ color: CustomColors.white,
+ padding: EdgeInsets.fromLTRB(12.0, 1.0, 12.0, 25.0),
+ child: DefaultButton(
+ TranslationBase.of(context).calculate.toUpperCase(),
+ () {
+ setState(() {
+ _visible == false ? _visible = !_visible : _visible = _visible;
+ calculateTriglycerides();
+ });
+ },
+ color: CustomColors.green,
+ ),
+ ),
+ );
+ }
+
+ Widget inputWidget(String _labelText, String _hintText, TextEditingController _controller, {String prefix, bool isEnable = true, bool hasSelection = false}) {
+ return Container(
+ padding: EdgeInsets.only(left: 16, right: 16, bottom: 15, top: 15),
+ alignment: Alignment.center,
+ decoration: BoxDecoration(
+ borderRadius: BorderRadius.circular(10),
+ color: isEnable ? Colors.white : CustomColors.grey2.withOpacity(0.4),
+ border: Border.all(
+ color: Color(0xffefefef),
+ width: 1,
+ ),
+ ),
+ child: InkWell(
+ onTap: hasSelection ? () {} : null,
+ child: Row(
+ children: [
+ Expanded(
+ child: Column(
+ mainAxisSize: MainAxisSize.min,
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: [
+ Text(
+ _labelText,
+ style: TextStyle(
+ fontSize: 11,
+ fontWeight: FontWeight.w600,
+ color: Color(0xff2B353E),
+ letterSpacing: -0.44,
+ ),
),
- child: TextFormField(
- controller: textController,
- inputFormatters: [
-// FilteringTextInputFormatter.digitsOnly
- ],
+ TextField(
+ enabled: isEnable,
+ scrollPadding: EdgeInsets.zero,
keyboardType: TextInputType.number,
+ controller: _controller,
+ onChanged: (value) => {},
+ style: TextStyle(
+ fontSize: 14,
+ height: 21 / 14,
+ fontWeight: FontWeight.w400,
+ color: Color(0xff2B353E),
+ letterSpacing: -0.44,
+ ),
decoration: InputDecoration(
- border: OutlineInputBorder(
- borderSide: BorderSide(color: Colors.black45)),
- labelText: TranslationBase.of(context).enterReadingValue,
- labelStyle: TextStyle(
- color: Colors.black87,
+ isDense: true,
+ hintText: _hintText,
+ fillColor: CustomColors.accentColor,
+ hintStyle: TextStyle(
+ fontSize: isEnable ? 14 : 24,
+ height: 21 / 14,
+ fontWeight: FontWeight.w400,
+ color: isEnable ? Color(0xff575757) : CustomColors.black,
+ letterSpacing: -0.56,
),
- ),
- ),
- ),
- SizedBox(
- height: 25.0,
- ),
- Visibility(
- visible: _visible,
- child: Container(
- height: 115.0,
- width: 350.0,
- decoration: BoxDecoration(
- color: Colors.white,
- border: Border.all(color: Colors.black),
- borderRadius: BorderRadius.circular(15.0),
- ),
- child: Padding(
- padding: const EdgeInsets.all(8.0),
- child: Column(
- crossAxisAlignment: CrossAxisAlignment.start,
- mainAxisAlignment: MainAxisAlignment.center,
- children: [
- Texts(TranslationBase.of(context).result + ":"),
- Row(
- children: [
- Text(
- inputValue.toStringAsFixed(2),
- style: TextStyle(fontSize: 35.0),
+ prefixIconConstraints: BoxConstraints(minWidth: 50),
+ prefixIcon: prefix == null
+ ? null
+ : Text(
+ "+" + prefix,
+ style: TextStyle(
+ fontSize: 14,
+ height: 21 / 14,
+ fontWeight: FontWeight.w500,
+ color: Color(0xff2E303A),
+ letterSpacing: -0.56,
),
- Padding(
- padding: EdgeInsets.only(left: 4.0, top: 10.0),
- child: Text(
- unit.toString(),
- style: TextStyle(
- color: Color(0xffC5273A),
- fontSize: 15.0,
- fontWeight: FontWeight.w500,
- ),
- ),
- ),
- ],
- ),
- ],
- ),
- ),
- ),
- ),
- SizedBox(
- height: 10.0,
- ),
- Flexible(
- child: Container(
- height: 60.0,
- width: 250.0,
- child: SecondaryButton(
- label:
- TranslationBase.of(context).calculate.toUpperCase(),
- onTap: () {
- setState(() {
- _visible == false
- ? _visible = !_visible
- : _visible = _visible;
- calculateTriglycerides();
- });
- },
+ ),
+ contentPadding: EdgeInsets.zero,
+ border: InputBorder.none,
+ focusedBorder: InputBorder.none,
+ enabledBorder: InputBorder.none,
),
),
- ),
- ],
+ ],
+ ),
),
- ),
+ if (hasSelection) Icon(Icons.keyboard_arrow_down_outlined),
+ ],
),
),
);
diff --git a/lib/pages/AlHabibMedicalService/ health_calculators.dart b/lib/pages/AlHabibMedicalService/ health_calculators.dart
index de4e3a48..341a298d 100644
--- a/lib/pages/AlHabibMedicalService/ health_calculators.dart
+++ b/lib/pages/AlHabibMedicalService/ health_calculators.dart
@@ -88,11 +88,11 @@ class _HealthCalculatorsState extends State with SingleTicker
controller: _tabController,
children: [
Container(
- margin: EdgeInsets.all(20.0),
+ // margin: EdgeInsets.all(20.0),
child: Column(
children: [
Padding(
- padding: EdgeInsets.only(left: 12, right: 12),
+ padding: EdgeInsets.only(left: 12, right: 12, top: 20.0),
child: GridView.builder(
shrinkWrap: true,
primary: false,
diff --git a/lib/pages/Blood/blood_donation.dart b/lib/pages/Blood/blood_donation.dart
index be58b644..8fb12f33 100644
--- a/lib/pages/Blood/blood_donation.dart
+++ b/lib/pages/Blood/blood_donation.dart
@@ -227,17 +227,18 @@ class _BloodDonationPageState extends State {
child: InkWell(
onTap: () {
showDialog(
- context: context,
- builder: (_) => AssetGiffyDialog(
- title: Text(
- "",
- style: TextStyle(fontSize: 22.0, fontWeight: FontWeight.w600),
- ),
- image: Image.asset('assets/images/BloodChrt_EN.png'),
- buttonCancelText: Text(TranslationBase.of(context).cancel),
- buttonCancelColor: Colors.grey,
- onlyCancelButton: true,
- ));
+ context: context,
+ builder: (_) => AssetGiffyDialog(
+ title: Text(
+ "",
+ style: TextStyle(fontSize: 22.0, fontWeight: FontWeight.w600),
+ ),
+ image: Image.asset('assets/images/BloodChrt_EN.png'),
+ buttonCancelText: Text(TranslationBase.of(context).cancel),
+ buttonCancelColor: Colors.grey,
+ onlyCancelButton: true,
+ ),
+ );
},
child: Container(width: 250, height: 200, child: Image.asset('assets/images/BloodChrt_EN.png'), color: Colors.white),
),
diff --git a/lib/pages/Blood/dialogs/SelectBloodDialog.dart b/lib/pages/Blood/dialogs/SelectBloodDialog.dart
deleted file mode 100644
index 23e9e753..00000000
--- a/lib/pages/Blood/dialogs/SelectBloodDialog.dart
+++ /dev/null
@@ -1,328 +0,0 @@
-import 'package:diplomaticquarterapp/pages/Blood/blood_donation.dart';
-import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
-import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
-import 'package:flutter/cupertino.dart';
-import 'package:flutter/material.dart';
-
-
-class SelectBloodDialog extends StatefulWidget {
-
- final Blood bloodType;
- final Function(Blood) onValueSelected;
-
- SelectBloodDialog({Key key, this.bloodType, this.onValueSelected});
-
-
-
- @override
- _SelectBloodDialogState createState() => _SelectBloodDialogState(this.bloodType);
-}
-
-class _SelectBloodDialogState extends State {
- _SelectBloodDialogState(this.bloodType);
- Blood bloodType;
- @override
- Widget build(BuildContext context) {
- return SimpleDialog(
- children: [
- Container(
- child: Column(
- children: [
- Divider(),
- Row(
- children: [
- Expanded(
- flex: 1,
- child: InkWell(
- onTap: () {
- setState(() {
- bloodType = Blood.Oplus;
- });
- },
- child: ListTile(
- title: Text("O+"),
- leading: Radio(
- value: Blood.Oplus,
- groupValue: bloodType,
- activeColor: Colors.red[800],
- onChanged: (Blood value) {
- setState(() {
- bloodType = value;
- });
- },
- ),
- ),
- ),
- )
- ],
- ),
- SizedBox(
- height: 5.0,
- ),
- Row(
- children: [
- Expanded(
- flex: 1,
- child: InkWell(
- onTap: () {
- setState(() {
- bloodType = Blood.Ominus;
- });
- },
- child: ListTile(
- title: Text("O-"),
- leading: Radio(
- value: Blood.Ominus,
- groupValue: bloodType,
- activeColor: Colors.red[800],
- onChanged: (Blood value) {
- setState(() {
- bloodType = value;
- });
- },
- ),
- ),
- ),
- )
- ],
- ),
- SizedBox(
- height: 5.0,
- ),
- Row(
- children: [
- Expanded(
- flex: 1,
- child: InkWell(
- onTap: () {
- setState(() {
- bloodType = Blood.ABminus;
- });
- },
- child: ListTile(
- title: Text("AB-"),
- leading: Radio(
- value: Blood.ABminus,
- groupValue: bloodType,
- activeColor: Colors.red[800],
- onChanged: (Blood value) {
- setState(() {
- bloodType = value;
- });
- },
- ),
- ),
- ),
- )
- ],
- ),
- SizedBox(
- height: 5.0,
- ),
- Row(
- children: [
- Expanded(
- flex: 1,
- child: InkWell(
- onTap: () {
- setState(() {
- bloodType = Blood.ABplus;
- });
- },
- child: ListTile(
- title: Text("AB+"),
- leading: Radio(
- value: Blood.ABplus,
- groupValue: bloodType,
- activeColor: Colors.red[800],
- onChanged: (Blood value) {
- setState(() {
- bloodType = value;
- });
- },
- ),
- ),
- ),
- )
- ],
- ),
- SizedBox(
- height: 5.0,
- ),
- Row(
- children: [
- Expanded(
- flex: 1,
- child: InkWell(
- onTap: () {
- setState(() {
- bloodType = Blood.Aplus;
- });
- },
- child: ListTile(
- title: Text("A+"),
- leading: Radio(
- value: Blood.Aplus,
- groupValue: bloodType,
- activeColor: Colors.red[800],
- onChanged: (Blood value) {
- setState(() {
- bloodType = value;
- });
- },
- ),
- ),
- ),
- )
- ],
- ),
- SizedBox(
- height: 5.0,
- ),
- Row(
- children: [
- Expanded(
- flex: 1,
- child: InkWell(
- onTap: () {
- setState(() {
- bloodType = Blood.Aminus;
- });
- },
- child: ListTile(
- title: Text("A-"),
- leading: Radio(
- value: Blood.Aminus,
- groupValue: bloodType,
- activeColor: Colors.red[800],
- onChanged: (Blood value) {
- setState(() {
- bloodType = value;
- });
- },
- ),
- ),
- ),
- )
- ],
- ),
- SizedBox(
- height: 5.0,
- ),
- Row(
- children: [
- Expanded(
- flex: 1,
- child: InkWell(
- onTap: () {
- setState(() {
- bloodType = Blood.Bplus;
- });
- },
- child: ListTile(
- title: Text("B+"),
- leading: Radio(
- value: Blood.Bplus,
- groupValue: bloodType,
- activeColor: Colors.red[800],
- onChanged: (Blood value) {
- setState(() {
- bloodType = value;
- });
- },
- ),
- ),
- ),
- )
- ],
- ),
- SizedBox(
- height: 5.0,
- ),
- Row(
- children: [
- Expanded(
- flex: 1,
- child: InkWell(
- onTap: () {
- setState(() {
- bloodType = Blood.Bminus;
- });
- },
- child: ListTile(
- title: Text("B-"),
- leading: Radio(
- value: Blood.Bminus,
- groupValue: bloodType,
- activeColor: Colors.red[800],
- onChanged: (Blood value) {
- setState(() {
- bloodType = value;
- });
- },
- ),
- ),
- ),
- )
- ],
- ),
- SizedBox(
- height: 5.0,
- ),
- SizedBox(
- height: 5.0,
- ),
- Row(
- // mainAxisAlignment: MainAxisAlignment.spaceBetween,
- children: [
- Expanded(
- flex: 1,
- child: InkWell(
- onTap: () {
- Navigator.pop(context);
- },
- child: Padding(
- padding: const EdgeInsets.all(8.0),
- child: Container(
- child: Center(
- child: Texts(
- TranslationBase.of(context).cancel.toUpperCase(),
- color: Colors.red,
- ),
- ),
- ),
- ),
- ),
- ),
- Container(
- width: 1,
- height: 30,
- color: Colors.grey[500],
- ),
- Expanded(
- flex: 1,
- child: InkWell(
- onTap: () {
- widget.onValueSelected(bloodType);
- Navigator.pop(context);
- },
- child: Padding(
- padding: const EdgeInsets.all(8.0),
- child: Center(
- child: Texts(
- TranslationBase.of(context).ok,
- fontWeight: FontWeight.w400,
- ),
- ),
- ),
- ),
- ),
- ],
- )
- ],
- ),
- )
- ],
- );
- }
-}
diff --git a/lib/pages/BookAppointment/components/SearchByDoctor.dart b/lib/pages/BookAppointment/components/SearchByDoctor.dart
index 829ac0e2..6bfac9a7 100644
--- a/lib/pages/BookAppointment/components/SearchByDoctor.dart
+++ b/lib/pages/BookAppointment/components/SearchByDoctor.dart
@@ -46,17 +46,7 @@ class _SearchByDoctorState extends State {
),
),
),
- // Container(
- // decoration: BoxDecoration(color: Colors.white),
- // child: TextField(
- // controller: doctorNameController,
- // onChanged: (content) {
- // _onDocTextChanged(content);
- // },
- // decoration: InputDecoration(labelText: TranslationBase.of(context).enterDocName, fillColor: Colors.white, prefixIcon: Icon(Icons.search), border: OutlineInputBorder())),
- // ),
inputWidget(TranslationBase.of(context).enterDocName, '', doctorNameController),
-
],
),
),
diff --git a/lib/pages/DrawerPages/family/my-family.dart b/lib/pages/DrawerPages/family/my-family.dart
index 18450954..1d2b470b 100644
--- a/lib/pages/DrawerPages/family/my-family.dart
+++ b/lib/pages/DrawerPages/family/my-family.dart
@@ -26,6 +26,7 @@ import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/uitl/utils_new.dart';
import 'package:diplomaticquarterapp/widgets/buttons/defaultButton.dart';
import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
+import 'package:diplomaticquarterapp/widgets/dialogs/ConfirmWithMessageDialog.dart';
import 'package:diplomaticquarterapp/widgets/dialogs/confirm_dialog.dart';
import 'package:diplomaticquarterapp/widgets/others/app_expandable_notifier.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
@@ -666,14 +667,15 @@ class _MyFamily extends State with TickerProviderStateMixin {
}
deleteFamily(family, context) {
- ConfirmDialog dialog = new ConfirmDialog(
- context: context,
- confirmMessage: TranslationBase.of(context).removeFamilyMember,
- okText: TranslationBase.of(context).confirm,
- cancelText: TranslationBase.of(context).cancel_nocaps,
- okFunction: () => {ConfirmDialog.closeAlertDialog(context), removeFamily(family, context)},
- cancelFunction: () => {});
- dialog.showAlertDialog(context);
+ showDialog(
+ context: context,
+ child: ConfirmWithMessageDialog(
+ message: TranslationBase.of(context).removeFamilyMember,
+ onTap: () {
+ removeFamily(family, context);
+ },
+ ),
+ );
}
removeFamily(GetAllSharedRecordsByStatusList family, context) {
diff --git a/lib/pages/livecare/clinic_timings_page.dart b/lib/pages/livecare/clinic_timings_page.dart
new file mode 100644
index 00000000..7e92a3c4
--- /dev/null
+++ b/lib/pages/livecare/clinic_timings_page.dart
@@ -0,0 +1,118 @@
+import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
+import 'package:diplomaticquarterapp/models/LiveCare/ClinicsServiceTimingsResponse.dart';
+import 'package:diplomaticquarterapp/models/LiveCare/ERAppointmentFeesResponse.dart';
+import 'package:diplomaticquarterapp/theme/colors.dart';
+import 'package:diplomaticquarterapp/uitl/app_toast.dart';
+import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
+import 'package:diplomaticquarterapp/uitl/utils_new.dart';
+import 'package:diplomaticquarterapp/widgets/buttons/defaultButton.dart';
+import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
+import 'package:flutter/material.dart';
+import 'package:flutter_svg/flutter_svg.dart';
+import 'package:provider/provider.dart';
+
+class ClinicTimingsPage extends StatefulWidget {
+ final clinicName;
+ final List patientERGetClinicsServiceTimingsList;
+
+ ClinicTimingsPage({@required this.clinicName, @required this.patientERGetClinicsServiceTimingsList});
+
+ @override
+ _LiveCarePatmentPageState createState() => _LiveCarePatmentPageState();
+}
+
+class _LiveCarePatmentPageState extends State {
+ ProjectViewModel projectViewModel;
+
+ @override
+ Widget build(BuildContext context) {
+ projectViewModel = Provider.of(context);
+ return AppScaffold(
+ appBarTitle: TranslationBase.of(context).clinicSchedule,
+ isShowAppBar: true,
+ showNewAppBarTitle: true,
+ showNewAppBar: true,
+ description: TranslationBase.of(context).erConsultation,
+ body: Container(
+ width: double.infinity,
+ height: double.infinity,
+ child: Column(
+ children: [
+ Expanded(
+ child: ListView.separated(
+ itemBuilder: (context, index) {
+ return Padding(
+ padding: EdgeInsets.only(top: index == 0 ? 12 : 0, bottom: (index == widget.patientERGetClinicsServiceTimingsList.length - 1) ? 12 : 0),
+ child: showItem(widget.patientERGetClinicsServiceTimingsList[index]),
+ );
+ },
+ separatorBuilder: (context, index) {
+ return mHeight(12);
+ },
+ itemCount: widget.patientERGetClinicsServiceTimingsList.length,
+ ),
+ ),
+ Container(
+ width: double.infinity,
+ padding: EdgeInsets.all(12),
+ color: Colors.white,
+ child: DefaultButton(
+ TranslationBase.of(context).back,
+ () {
+ Navigator.pop(context);
+ },
+ ),
+ ),
+ ],
+ ),
+ ),
+ );
+ }
+
+ Widget showItem(PatientERGetClinicsServiceTimingsList item) {
+ return Container(
+ width: double.infinity,
+ padding: EdgeInsets.only(left: 12, right: 12),
+ child: Row(
+ mainAxisAlignment: MainAxisAlignment.center,
+ crossAxisAlignment: CrossAxisAlignment.center,
+ children: [
+ Expanded(
+ flex: 1,
+ child: Text(
+ item.dayOfWeekStr,
+ style: TextStyle(
+ fontSize: 13,
+ letterSpacing: -0.42,
+ fontWeight: FontWeight.w600,
+ ),
+ ),
+ ),
+ Expanded(
+ flex: 3,
+ child: Container(
+ width: double.infinity,
+ decoration: cardRadius(12),
+ padding: EdgeInsets.all(12),
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ mainAxisAlignment: MainAxisAlignment.start,
+ children: [
+ for (int i = 0; i < item.shiftTimings.length; i++)
+ Text(
+ TranslationBase.of(context).from + " " + item.shiftTimings[i].startTime + " " + TranslationBase.of(context).to + " " + item.shiftTimings[i].endTime,
+ style: TextStyle(
+ fontSize: 13,
+ letterSpacing: -0.42,
+ fontWeight: FontWeight.w600,
+ ),
+ )
+ ],
+ ),
+ ),
+ ),
+ ],
+ ),
+ );
+ }
+}
diff --git a/lib/pages/livecare/live_care_payment_page.dart b/lib/pages/livecare/live_care_payment_page.dart
new file mode 100644
index 00000000..3980c5a7
--- /dev/null
+++ b/lib/pages/livecare/live_care_payment_page.dart
@@ -0,0 +1,316 @@
+import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
+import 'package:diplomaticquarterapp/models/LiveCare/ERAppointmentFeesResponse.dart';
+import 'package:diplomaticquarterapp/theme/colors.dart';
+import 'package:diplomaticquarterapp/uitl/app_toast.dart';
+import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
+import 'package:diplomaticquarterapp/uitl/utils_new.dart';
+import 'package:diplomaticquarterapp/widgets/buttons/defaultButton.dart';
+import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
+import 'package:flutter/material.dart';
+import 'package:flutter_svg/flutter_svg.dart';
+import 'package:provider/provider.dart';
+
+class LiveCarePatmentPage extends StatefulWidget {
+ GetERAppointmentFeesList getERAppointmentFeesList;
+ int waitingTime;
+ String clinicName;
+
+ LiveCarePatmentPage({@required this.getERAppointmentFeesList, @required this.waitingTime, @required this.clinicName});
+
+ @override
+ _LiveCarePatmentPageState createState() => _LiveCarePatmentPageState();
+}
+
+class _LiveCarePatmentPageState extends State {
+ int _selected = 0;
+
+ ProjectViewModel projectViewModel;
+
+ @override
+ Widget build(BuildContext context) {
+ var size = MediaQuery.of(context).size;
+ final double itemHeight = ((size.height - kToolbarHeight - 24) * 0.42) / 2;
+ final double itemWidth = size.width / 2;
+ projectViewModel = Provider.of(context);
+ return AppScaffold(
+ appBarTitle: TranslationBase.of(context).livecare,
+ isShowAppBar: true,
+ showNewAppBarTitle: true,
+ showNewAppBar: true,
+ description: TranslationBase.of(context).erConsultation,
+ body: Container(
+ width: double.infinity,
+
+ height: double.infinity,
+ child: Column(
+ children: [
+ Expanded(
+ child: Padding(
+ padding: EdgeInsets.all(21),
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ mainAxisSize: MainAxisSize.max,
+ children: [
+ Text(
+ widget.clinicName,
+ style: TextStyle(
+ fontSize: 19.0,
+ fontWeight: FontWeight.bold,
+ letterSpacing: -1.44,
+ ),
+ ),
+ mHeight(8),
+ Text(
+ TranslationBase.of(context).expectedWaiting,
+ textAlign: TextAlign.end,
+ style: TextStyle(
+ fontSize: 14.0,
+ fontWeight: FontWeight.w600,
+ letterSpacing: -0.56,
+ color: CustomColors.textColor,
+ ),
+ ),
+ Text(
+ widget.waitingTime.toString() + " " + TranslationBase.of(context).minute,
+ textAlign: TextAlign.start,
+ style: TextStyle(
+ fontSize: 16.0,
+ fontWeight: FontWeight.bold,
+ color: CustomColors.accentColor,
+ letterSpacing: -0.66,
+ ),
+ ),
+ mHeight(16),
+ Container(
+ decoration: cardRadius(12),
+ padding: EdgeInsets.all(12),
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: [
+ Text(
+ TranslationBase.of(context).erConsultFee,
+ textAlign: TextAlign.center,
+ style: TextStyle(
+ fontSize: 16.0,
+ fontWeight: FontWeight.w600,
+ letterSpacing: -0.64,
+ ),
+ ),
+ mHeight(10),
+ Row(
+ children: [
+ Expanded(
+ child: Text(
+ TranslationBase.of(context).patientShareToDo,
+ style: TextStyle(
+ fontSize: 10,
+ letterSpacing: -0.4,
+ color: CustomColors.textColor,
+ fontWeight: FontWeight.w600,
+ ),
+ ),
+ ),
+ Expanded(
+ child: Text(
+ widget.getERAppointmentFeesList.amount + " " + widget.getERAppointmentFeesList.currency,
+ style: TextStyle(
+ fontSize: 12,
+ letterSpacing: -0.48,
+ fontWeight: FontWeight.w600,
+ ),
+ ),
+ ),
+ ],
+ ),
+ mHeight(4),
+ mDivider(CustomColors.lightGreyColor),
+ mHeight(4),
+ Row(
+ children: [
+ Expanded(
+ child: Text(
+ TranslationBase.of(context).patientTaxToDo,
+ style: TextStyle(
+ fontSize: 10,
+ letterSpacing: -0.4,
+ color: CustomColors.textColor,
+ fontWeight: FontWeight.w600,
+ ),
+ ),
+ ),
+ Expanded(
+ child: Text(
+ widget.getERAppointmentFeesList.tax + " " + widget.getERAppointmentFeesList.currency,
+ style: TextStyle(
+ fontSize: 12,
+ letterSpacing: -0.48,
+ fontWeight: FontWeight.w600,
+ ),
+ ),
+ ),
+ ],
+ ),
+ mHeight(4),
+ mDivider(CustomColors.lightGreyColor),
+ mHeight(4),
+ Row(
+ children: [
+ Expanded(
+ child: Text(
+ TranslationBase.of(context).patientShareTotalToDo,
+ style: TextStyle(
+ fontSize: 10,
+ letterSpacing: -0.4,
+ color: CustomColors.textColor,
+ fontWeight: FontWeight.w600,
+ ),
+ ),
+ ),
+ Expanded(
+ child: Text(
+ widget.getERAppointmentFeesList.total + " " + widget.getERAppointmentFeesList.currency,
+ style: TextStyle(
+ fontSize: 12,
+ letterSpacing: -0.48,
+ fontWeight: FontWeight.w600,
+ ),
+ ),
+ ),
+ ],
+ ),
+ ],
+ ),
+ ),
+ mHeight(12),
+ Container(
+ padding: EdgeInsets.all(12),
+ decoration: cardRadius(12),
+ child: Row(
+ children: [
+ SvgPicture.asset(
+ "assets/images/new/services/raise_comp.svg",
+ color: CustomColors.green,
+ width: 18,
+ height: 18,
+ ),
+ mWidth(10),
+ Expanded(
+ child: Text(
+ TranslationBase.of(context).insuredPatient,
+ style: TextStyle(
+ fontSize: 10.0,
+ letterSpacing: -0.4,
+ fontWeight: FontWeight.w600,
+ ),
+ ),
+ ),
+ ],
+ ),
+ ),
+ Container(
+ margin: EdgeInsets.only(top: 10.0),
+ child: Row(
+ children: [
+ Radio(
+ value: 1,
+ groupValue: _selected,
+ onChanged: onRadioChanged,
+ ),
+ Text(
+ TranslationBase.of(context).agreeTo,
+ style: new TextStyle(
+ fontSize: 12.0,
+ fontWeight: FontWeight.w600,
+ letterSpacing: -0.48,
+ color: CustomColors.textColor,
+ ),
+ ),
+ mWidth(4),
+ Text(
+ TranslationBase.of(context).termsConditoins,
+ style: new TextStyle(
+ fontSize: 12.0,
+ fontWeight: FontWeight.w600,
+ letterSpacing: -0.48,
+ color: CustomColors.accentColor,
+ ),
+ ),
+ ],
+ ),
+ ),
+ mFlex(1),
+ Text(
+ TranslationBase.of(context).upComingPayOption,
+ style: new TextStyle(
+ fontSize: 12.0,
+ letterSpacing: -0.36,
+ fontWeight: FontWeight.w600,
+ ),
+ ),
+ Container(
+ margin: EdgeInsets.fromLTRB(10.0, 5.0, 10.0, 5.0),
+ child: getPaymentMethods(),
+ ),
+
+
+ ],
+ ),
+ ),
+ ),
+ Container(
+ padding: EdgeInsets.all(12),
+ color: Colors.white,
+ child: Flex(
+ direction: Axis.horizontal,
+ children: [
+ Expanded(
+ child: DefaultButton(
+ TranslationBase.of(context).cancel,
+ () {
+ Navigator.pop(context, false);
+ },
+ ),
+ ),
+ mWidth(12),
+ Expanded(
+ child: DefaultButton(
+ TranslationBase.of(context).next,
+ () {
+ if (_selected == 0) {
+ AppToast.showErrorToast(message: TranslationBase.of(context).pleaseAcceptTerms);
+ } else {
+ Navigator.pop(context, true);
+ }
+ },
+ color: CustomColors.green,
+ ),
+ ),
+ ],
+ ),
+ ),
+ ],
+ ),
+ ),
+ );
+ }
+
+ void onRadioChanged(int value) {
+ setState(() {
+ _selected = value;
+ });
+ }
+
+ _getNormalText(text) {
+ return Container(
+ margin: EdgeInsets.only(top: 10.0, right: 10.0),
+ child: Text(text, textAlign: TextAlign.start, style: TextStyle(fontSize: 14, letterSpacing: 0.5, color: Colors.black)),
+ );
+ }
+
+ _getMarginText(text) {
+ return Container(
+ margin: EdgeInsets.only(top: 10.0, right: 10.0, bottom: 10.0),
+ child: Text(text, textAlign: TextAlign.start, style: TextStyle(fontSize: 14, letterSpacing: 0.5, fontWeight: FontWeight.bold, color: Colors.black)),
+ );
+ }
+}
diff --git a/lib/pages/livecare/livecare_scheduling/schedule_clinic_card.dart b/lib/pages/livecare/livecare_scheduling/schedule_clinic_card.dart
index 72ca4ce9..7884b37e 100644
--- a/lib/pages/livecare/livecare_scheduling/schedule_clinic_card.dart
+++ b/lib/pages/livecare/livecare_scheduling/schedule_clinic_card.dart
@@ -1,15 +1,15 @@
+import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
import 'package:diplomaticquarterapp/models/LiveCare/LiveCareScheduleClinicsListResponse.dart';
+import 'package:diplomaticquarterapp/theme/colors.dart';
import 'package:flutter/material.dart';
+import 'package:provider/provider.dart';
class ScheduleClinicCard extends StatefulWidget {
bool isSelected;
final ClinicsHaveScheduleList clinicsHaveScheduleList;
var languageID;
- ScheduleClinicCard(
- {this.isSelected,
- this.languageID,
- @required this.clinicsHaveScheduleList});
+ ScheduleClinicCard({this.isSelected, this.languageID, @required this.clinicsHaveScheduleList});
@override
_ScheduleClinicCardState createState() => _ScheduleClinicCardState();
@@ -18,29 +18,68 @@ class ScheduleClinicCard extends StatefulWidget {
class _ScheduleClinicCardState extends State {
@override
Widget build(BuildContext context) {
+ ProjectViewModel projectViewModel = Provider.of(context);
return Container(
- child: Card(
- margin: EdgeInsets.fromLTRB(15.0, 10.0, 15.0, 8.0),
- color: widget.isSelected ? Color(0xff06b806) : Colors.white,
- shape: RoundedRectangleBorder(
- borderRadius: BorderRadius.circular(10),
+ width: double.infinity,
+ margin: EdgeInsets.fromLTRB(15.0, 0.0, 15.0, 8.0),
+ clipBehavior: Clip.antiAlias,
+ decoration: BoxDecoration(
+ borderRadius: BorderRadius.all(
+ Radius.circular(10.0),
+ ),
+ border: Border.all(width: widget.isSelected ? 3 : 0, color: widget.isSelected ? CustomColors.green : Colors.transparent),
+ boxShadow: [
+ BoxShadow(
+ color: Color(0xff000000).withOpacity(.05),
+ blurRadius: 27,
+ offset: Offset(0, -3),
+ ),
+ ],
+ color: Colors.transparent,
+ ),
+ child: Container(
+ decoration: BoxDecoration(
+ color: CustomColors.green,
+ borderRadius: BorderRadius.all(
+ Radius.circular(6.0),
+ ),
),
child: Container(
- width: MediaQuery.of(context).size.width * 0.8,
- padding: EdgeInsets.all(12.0),
+ margin: EdgeInsets.only(
+ left: projectViewModel.isArabic
+ ? 0
+ : widget.isSelected
+ ? 4
+ : 6,
+ right: projectViewModel.isArabic
+ ? widget.isSelected
+ ? 4
+ : 6
+ : 0),
+ padding: EdgeInsets.symmetric(vertical: 10, horizontal: 12),
+ decoration: BoxDecoration(
+ color: Colors.white,
+ border: Border.all(color: Colors.white, width: 1),
+ borderRadius: BorderRadius.only(
+ bottomRight: projectViewModel.isArabic ? Radius.circular(0) : Radius.circular(10.0),
+ topRight: projectViewModel.isArabic ? Radius.circular(0) : Radius.circular(10.0),
+ bottomLeft: projectViewModel.isArabic ? Radius.circular(10.0) : Radius.circular(0),
+ topLeft: projectViewModel.isArabic ? Radius.circular(10.0) : Radius.circular(0),
+ ),
+ ),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisSize: MainAxisSize.max,
children: [
Container(
child: Text(
- widget.languageID == 'ar'
- ? widget.clinicsHaveScheduleList.clinicDescN != null ? widget.clinicsHaveScheduleList.clinicDescN: ""
- : widget.clinicsHaveScheduleList.clinicDesc != null ? widget.clinicsHaveScheduleList.clinicDesc: "Test Clinic",
- style: TextStyle(
- fontSize: 16.0,
- color:
- widget.isSelected ? Colors.white : Colors.black)),
+ widget.clinicsHaveScheduleList.clinicDesc,
+ style: TextStyle(
+ fontSize: 16.0,
+ color: Colors.black,
+ fontWeight: FontWeight.w600,
+ ),
+ ),
),
],
),
diff --git a/lib/pages/livecare/widgets/LiveCareHistoryCard.dart b/lib/pages/livecare/widgets/LiveCareHistoryCard.dart
index d3029f86..91659278 100644
--- a/lib/pages/livecare/widgets/LiveCareHistoryCard.dart
+++ b/lib/pages/livecare/widgets/LiveCareHistoryCard.dart
@@ -1,24 +1,29 @@
+import 'package:auto_size_text/auto_size_text.dart';
import 'package:diplomaticquarterapp/config/shared_pref_kay.dart';
import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
import 'package:diplomaticquarterapp/models/Authentication/authenticated_user.dart';
import 'package:diplomaticquarterapp/models/FamilyFiles/PatientERVirtualHistoryResponse.dart';
import 'package:diplomaticquarterapp/pages/feedback/feedback_home_page.dart';
import 'package:diplomaticquarterapp/services/livecare_services/livecare_provider.dart';
+import 'package:diplomaticquarterapp/theme/colors.dart';
import 'package:diplomaticquarterapp/uitl/app_shared_preferences.dart';
import 'package:diplomaticquarterapp/uitl/app_toast.dart';
import 'package:diplomaticquarterapp/uitl/date_uitl.dart';
import 'package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
+import 'package:diplomaticquarterapp/uitl/utils_new.dart';
import 'package:diplomaticquarterapp/widgets/dialogs/confirm_dialog.dart';
import 'package:diplomaticquarterapp/widgets/dialogs/confirm_send_email_dialog.dart';
import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
import 'package:flutter/material.dart';
+import 'package:flutter_svg/flutter_svg.dart';
import 'package:provider/provider.dart';
class LiveCareHistoryCard extends StatefulWidget {
ErRequestHistoryList erRequestHistoryList;
+ int isFirstOrLast;
- LiveCareHistoryCard({this.erRequestHistoryList});
+ LiveCareHistoryCard({this.erRequestHistoryList, this.isFirstOrLast});
@override
_LiveCareHistoryCardState createState() => _LiveCareHistoryCardState();
@@ -40,122 +45,179 @@ class _LiveCareHistoryCardState extends State {
Widget build(BuildContext context) {
projectViewModel = Provider.of(context);
return Container(
- margin: EdgeInsets.all(10.0),
- child: Card(
- margin: EdgeInsets.fromLTRB(8.0, 0.0, 8.0, 8.0),
- color: Colors.white,
- shape: RoundedRectangleBorder(
- borderRadius: BorderRadius.circular(10),
+ margin: EdgeInsets.only(left: 12, right: 12, top: widget.isFirstOrLast == 0 ? 12 : 6, bottom: widget.isFirstOrLast == 1 ? 12 : 6),
+ decoration: BoxDecoration(
+ color: CustomColors.accentColor,
+ borderRadius: BorderRadius.all(
+ Radius.circular(10.0),
),
- child: Container(
- width: MediaQuery.of(context).size.width,
- // height: MediaQuery.of(context).size.height * 0.22,
- padding: EdgeInsets.all(10.0),
- child: Column(
- crossAxisAlignment: CrossAxisAlignment.start,
- mainAxisSize: MainAxisSize.min,
- children: [
- Text(TranslationBase.of(context).requestedDate, style: TextStyle(fontSize: 16.0, fontWeight: FontWeight.bold)),
- Container(
- margin: EdgeInsets.only(top: 0.0),
- child: Row(
- mainAxisAlignment: MainAxisAlignment.spaceBetween,
- children: [
- Text(DateUtil.getDayMonthYearHourMinuteDateFormatted(DateUtil.convertStringToDate(widget.erRequestHistoryList.arrivalTime)), style: TextStyle(fontSize: 14.0)),
- Text(TranslationBase.of(context).callDuration + "\n" + getCallTime(widget.erRequestHistoryList.callDuration), textAlign: TextAlign.center, style: TextStyle(fontSize: 14.0, color: Colors.grey[600])),
- ],
- ),
- ),
- Container(
- padding: EdgeInsets.all(7.0),
- decoration: BoxDecoration(
- shape: BoxShape.rectangle,
- borderRadius: BorderRadius.all(Radius.circular(5)),
- color: Colors.green,
- ),
- margin: EdgeInsets.only(top: 5.0, bottom: 5.0),
- child: Text(widget.erRequestHistoryList.stringCallStatus, style: TextStyle(fontSize: 14.0, color: Colors.white)),
+ boxShadow: [
+ BoxShadow(
+ color: Color(0xff000000).withOpacity(.05),
+ blurRadius: 27,
+ offset: Offset(0, -3),
+ ),
+ ],
+ ),
+ child: Container(
+ margin: EdgeInsets.only(left: projectViewModel.isArabic ? 0 : 0, right: projectViewModel.isArabic ? 0 : 0),
+ padding: EdgeInsets.symmetric(vertical: 10, horizontal: 12),
+ decoration: BoxDecoration(
+ color: Colors.white,
+ border: Border.all(color: Colors.white, width: 1),
+ borderRadius: BorderRadius.only(
+ bottomRight: projectViewModel.isArabic ? Radius.circular(10) : Radius.circular(10.0),
+ topRight: projectViewModel.isArabic ? Radius.circular(10) : Radius.circular(10.0),
+ bottomLeft: projectViewModel.isArabic ? Radius.circular(10.0) : Radius.circular(10),
+ topLeft: projectViewModel.isArabic ? Radius.circular(10.0) : Radius.circular(10),
+ ),
+ ),
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ mainAxisSize: MainAxisSize.min,
+ children: [
+ Text(
+ widget.erRequestHistoryList.stringCallStatus ,
+ style: TextStyle(
+ fontSize: 10.0,
+ fontWeight: FontWeight.w600,
+ letterSpacing: -0.4,
+ color: CustomColors.green,
+ //color: widget.erRequestHistoryList.stringCallStatus == "Completed" ? CustomColors.green : CustomColors.orange,
),
- Divider(
- color: Colors.grey[500],
+ ),
+ mHeight(12),
+ Text(
+ TranslationBase.of(context).requestedDate + ": " + DateUtil.getDayMonthYearHourMinuteDateFormatted(DateUtil.convertStringToDate(widget.erRequestHistoryList.arrivalTime)),
+ style: TextStyle(
+ fontSize: 16.0,
+ fontWeight: FontWeight.w600,
+ letterSpacing: -0.64,
),
- Container(
- margin: EdgeInsets.all(5.0),
- child: Flex(
- direction: Axis.horizontal,
- children: [
- Expanded(
- child: InkWell(
- onTap: () {
- openInvoice();
- },
- child: Container(
- child: Row(
- children: [
- Icon(Icons.content_paste, color: Colors.red),
- Container(
- margin: EdgeInsets.only(left: 10.0),
- child: Text(TranslationBase.of(context).invoice, textAlign: TextAlign.center, style: TextStyle(fontSize: 12.0)),
+ ),
+ mHeight(4),
+ Row(
+ children: [
+ Text(
+ TranslationBase.of(context).callDuration + ": ",
+ style: TextStyle(fontSize: 10.0, fontWeight: FontWeight.w600, letterSpacing: -0.4, color: CustomColors.textColor),
+ ),
+ Text(
+ getCallTime(widget.erRequestHistoryList.callDuration),
+ textAlign: TextAlign.center,
+ style: TextStyle(
+ fontSize: 12.0,
+ letterSpacing: -0.4,
+ fontWeight: FontWeight.w600,
+ ),
+ ),
+ ],
+ ),mHeight(12),
+ Container(
+ width: double.infinity,
+ child: Row(
+ mainAxisAlignment: MainAxisAlignment.spaceEvenly,
+ children: [
+ Expanded(
+ flex: 1,
+ child: InkWell(
+ onTap: () {
+ openInvoice();
+ },
+ child: Container(
+ padding: EdgeInsets.only(left: 12, right: 12, top: 6, bottom: 6),
+ decoration: containerRadius(CustomColors.devider, 100),
+ child: Row(
+ children: [
+ SvgPicture.asset("assets/images/new/services/invoice_list.svg",width: 18,height: 18,),
+ mWidth(10),
+ Text(
+ TranslationBase.of(context).invoice,
+ textAlign: TextAlign.center,
+ style: TextStyle(
+ fontSize: 11.0,
+ letterSpacing: -0.46,
+ fontWeight: FontWeight.w600,
),
- ],
- ),
+ ),
+ ],
),
),
),
- Expanded(
- child: InkWell(
- onTap: () {
- openComplaint();
- },
- child: Container(
- child: Row(
- children: [
- Icon(Icons.add, size: 24.0, color: Colors.red),
- Container(
- margin: EdgeInsets.only(left: 10.0),
- child: Text(TranslationBase.of(context).complaint, textAlign: TextAlign.center, style: TextStyle(fontSize: 12.0)),
+ ),
+ mWidth(12),
+ Expanded(
+ flex: 1,
+ child: InkWell(
+ onTap: () {
+ openComplaint();
+ },
+ child: Container(
+ padding: EdgeInsets.only(left: 12, right: 12, top: 7, bottom: 7),
+ decoration: containerRadius(CustomColors.devider, 100),
+ child: Row(
+ children: [
+ SvgPicture.asset("assets/images/new/services/raise_comp.svg",width: 16,height: 16,),
+ mWidth(10),
+ Expanded(
+ child: AutoSizeText(
+ TranslationBase.of(context).complaint,
+ textAlign: TextAlign.center,
+ maxLines: 1,minFontSize: 8,
+ style: TextStyle(
+ fontSize: 11.0,
+ letterSpacing: -0.46,
+ fontWeight: FontWeight.w600,
+ ),
),
- ],
- ),
+ ),
+ ],
),
),
),
- Expanded(
- child: InkWell(
- onTap: () {
- rateLiveCareAppo();
- },
- child: Container(
- child: Row(
- children: [
- Icon(Icons.star, size: 24.0, color: Colors.yellow[700]),
- Container(
- width: MediaQuery.of(context).size.width * 0.2,
- margin: EdgeInsets.only(left: 9.0),
- child: Text(TranslationBase.of(context).rateDoctorAppo, overflow: TextOverflow.clip, textAlign: TextAlign.center, style: TextStyle(fontSize: 11.0)),
+ ),
+ mWidth(12),
+ Expanded(
+ flex: 1,
+ child: InkWell(
+ onTap: () {
+ rateLiveCareAppo();
+ },
+ child: Container(
+ padding: EdgeInsets.only(left: 12, right: 12, top: 6, bottom: 6),
+ decoration: containerRadius(CustomColors.devider, 100),
+ child: Row(
+ children: [
+ Icon( Icons.star,size: 18,),
+ mWidth(10),
+ Text(
+ TranslationBase.of(context).rate,
+ overflow: TextOverflow.clip,
+ textAlign: TextAlign.center,
+ style: TextStyle(
+ fontSize: 11.0,
+ letterSpacing: -0.46,
+ fontWeight: FontWeight.w600,
),
- ],
- ),
+ ),
+ ],
),
),
),
- ],
- ),
+ ),
+ ],
),
- ],
- ),
+ ),
+ ],
),
),
);
}
-
rateLiveCareAppo() {
- if(widget.erRequestHistoryList.isAppointmentHaveRating) {
+ if (widget.erRequestHistoryList.isAppointmentHaveRating) {
AppToast.showErrorToast(message: TranslationBase.of(context).alreadyRated);
- } else {
-
- }
+ } else {}
}
openInvoice() {
diff --git a/lib/pages/livecare/widgets/LiveCarePaymentDialog.dart b/lib/pages/livecare/widgets/LiveCarePaymentDialog.dart
index a8950e5d..1e2eaa1b 100644
--- a/lib/pages/livecare/widgets/LiveCarePaymentDialog.dart
+++ b/lib/pages/livecare/widgets/LiveCarePaymentDialog.dart
@@ -40,6 +40,7 @@ class _LiveCarePaymentDialogState extends State {
height: 600.0,
margin: EdgeInsets.all(20.0),
width: 500.0,
+ color: Colors.red,
child: SingleChildScrollView(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
diff --git a/lib/pages/livecare/widgets/clinic_card.dart b/lib/pages/livecare/widgets/clinic_card.dart
index 49337ee4..0f534d98 100644
--- a/lib/pages/livecare/widgets/clinic_card.dart
+++ b/lib/pages/livecare/widgets/clinic_card.dart
@@ -1,11 +1,17 @@
+import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
import 'package:diplomaticquarterapp/models/LiveCare/ClinicsServiceTimingsResponse.dart';
import 'package:diplomaticquarterapp/models/LiveCare/LiveCareClinicsListResponse.dart';
import 'package:diplomaticquarterapp/services/livecare_services/livecare_provider.dart';
import 'package:diplomaticquarterapp/theme/colors.dart';
import 'package:diplomaticquarterapp/uitl/app_toast.dart';
import 'package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.dart';
+import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
+import 'package:diplomaticquarterapp/uitl/utils_new.dart';
import 'package:flutter/material.dart';
+import 'package:flutter_svg/svg.dart';
+import 'package:provider/provider.dart';
+import '../clinic_timings_page.dart';
import 'ClinicTimingsDialog.dart';
// ignore: must_be_immutable
@@ -32,43 +38,121 @@ class _State extends State {
@override
Widget build(BuildContext context) {
+ ProjectViewModel projectViewModel = Provider.of(context);
return Container(
width: double.infinity,
margin: EdgeInsets.fromLTRB(15.0, 0.0, 15.0, 8.0),
+ clipBehavior: Clip.antiAlias,
decoration: BoxDecoration(
- borderRadius: BorderRadius.all(
- Radius.circular(10.0),
+ borderRadius: BorderRadius.all(
+ Radius.circular(10.0),
+ ),
+ border: Border.all(width: widget.isSelected ? 3 : 0, color: widget.isSelected ? CustomColors.green : Colors.transparent),
+ boxShadow: [
+ BoxShadow(
+ color: Color(0xff000000).withOpacity(.05),
+ blurRadius: 27,
+ offset: Offset(0, -3),
),
- border: Border.all(width: 2, color: widget.isSelected ? CustomColors.green : Color(0xffEFEFEF)),
- boxShadow: [
- BoxShadow(
- color: Color(0xff000000).withOpacity(.05),
- blurRadius: 27,
- offset: Offset(0, -3),
- ),
- ],
- color: Colors.white),
+ ],
+ color: Colors.transparent,
+ ),
child: Container(
- padding: EdgeInsets.fromLTRB(12.0, 25.0, 12.0, 25.0),
- child: Column(
- crossAxisAlignment: CrossAxisAlignment.start,
- mainAxisSize: MainAxisSize.max,
- children: [
- Container(
- child: Text(widget.languageID == 'ar' ? widget.patientERGetClinicsList.serviceNameN : widget.patientERGetClinicsList.serviceName,
- style: TextStyle(fontSize: 16, fontWeight: FontWeight.w600, color: Color(0xff2B353E), letterSpacing: -0.48, height: 20 / 16)),
+ decoration: BoxDecoration(
+ color: widget.patientERGetClinicsList.isOnline == 1 ? CustomColors.green : CustomColors.accentColor,
+ borderRadius: BorderRadius.all(
+ Radius.circular(6.0),
+ ),
+ ),
+ child: Container(
+ margin: EdgeInsets.only(
+ left: projectViewModel.isArabic
+ ? 0
+ : widget.isSelected
+ ? 4
+ : 6,
+ right: projectViewModel.isArabic ? widget.isSelected
+ ? 4
+ : 6: 0),
+ padding: EdgeInsets.symmetric(vertical: 10, horizontal: 12),
+ decoration: BoxDecoration(
+ color: Colors.white,
+ border: Border.all(color: Colors.white, width: 1),
+ borderRadius: BorderRadius.only(
+ bottomRight: projectViewModel.isArabic ? Radius.circular(0) : Radius.circular(10.0),
+ topRight: projectViewModel.isArabic ? Radius.circular(0) : Radius.circular(10.0),
+ bottomLeft: projectViewModel.isArabic ? Radius.circular(10.0) : Radius.circular(0),
+ topLeft: projectViewModel.isArabic ? Radius.circular(10.0) : Radius.circular(0),
),
- Row(
- children: [
- Container(
- child: Text(".", style: TextStyle(fontSize: 30.0)),
+ ),
+ child: Row(
+ children: [
+ Expanded(
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: [
+ Text(
+ widget.languageID == 'ar' ? widget.patientERGetClinicsList.serviceNameN : widget.patientERGetClinicsList.serviceName,
+ style: TextStyle(
+ fontSize: 16,
+ fontWeight: FontWeight.w600,
+ color: Color(0xff2B353E),
+ letterSpacing: -0.48,
+ ),
+ ),
+ Row(
+ children: [
+ Container(
+ width: 4,
+ height: 4,
+ decoration: containerRadius(
+ widget.patientERGetClinicsList.isOnline == 1 ? CustomColors.green : CustomColors.accentColor,
+ 100,
+ ),
+ ),
+ mWidth(4),
+ Text(
+ widget.patientERGetClinicsList.isOnline == 1 ? TranslationBase.of(context).onlineTag : TranslationBase.of(context).offlineTag,
+ style: TextStyle(
+ fontSize: 10,
+ fontWeight: FontWeight.w600,
+ color: widget.patientERGetClinicsList.isOnline == 1 ? CustomColors.green : CustomColors.accentColor,
+ letterSpacing: -0.48,
+ ),
+ ),
+ ],
+ ),
+ ],
),
- Container(
- child: Text("Online"),
+ ),
+ InkWell(
+ onTap: (){ getClinicTimings(widget.patientERGetClinicsList);},
+ child: Container(
+ padding: EdgeInsets.only(left: 8,right: 8,top: 4,bottom: 4),
+ decoration: containerRadius(CustomColors.devider, 100),
+ child: Row(
+ children: [
+ SvgPicture.asset(
+ "assets/images/new-design/ic_schedule.svg",
+ width: 16,
+ height: 16,
+ color: Colors.black,
+ ),
+ mWidth(4),
+ Text(
+ TranslationBase.of(context).schedule,
+ style: TextStyle(
+ fontSize: 11,
+ letterSpacing: -0.44,
+ fontWeight: FontWeight.w600,
+ ),
+ )
+ ],
+ ),
),
- ],
- ),
- ],
+ ),
+ ],
+ ),
),
),
);
@@ -84,26 +168,30 @@ class _State extends State {
clinicsServiceTimingsResponse = ClinicsServiceTimingsResponse.fromJson(res);
print(clinicsServiceTimingsResponse.patientERGetClinicsServiceTimingsList.length);
- showGeneralDialog(
- barrierColor: Colors.black.withOpacity(0.5),
- transitionBuilder: (context, a1, a2, widget) {
- final curvedValue = Curves.easeInOutBack.transform(a1.value) - 1.0;
- return Transform(
- transform: Matrix4.translationValues(0.0, curvedValue * 200, 0.0),
- child: Opacity(
- opacity: a1.value,
- child: ClinicTimingsDialog(
- clinicName: patientERGetClinicsList.serviceName,
- patientERGetClinicsServiceTimingsList: clinicsServiceTimingsResponse.patientERGetClinicsServiceTimingsList,
- ),
- ),
- );
- },
- transitionDuration: Duration(milliseconds: 500),
- barrierDismissible: true,
- barrierLabel: '',
- context: context,
- pageBuilder: (context, animation1, animation2) {});
+ navigateTo(context, ClinicTimingsPage(
+ clinicName: patientERGetClinicsList.serviceName,
+ patientERGetClinicsServiceTimingsList: clinicsServiceTimingsResponse.patientERGetClinicsServiceTimingsList,
+ ));
+ // showGeneralDialog(
+ // barrierColor: Colors.black.withOpacity(0.5),
+ // transitionBuilder: (context, a1, a2, widget) {
+ // final curvedValue = Curves.easeInOutBack.transform(a1.value) - 1.0;
+ // return Transform(
+ // transform: Matrix4.translationValues(0.0, curvedValue * 200, 0.0),
+ // child: Opacity(
+ // opacity: a1.value,
+ // child: ClinicTimingsDialog(
+ // clinicName: patientERGetClinicsList.serviceName,
+ // patientERGetClinicsServiceTimingsList: clinicsServiceTimingsResponse.patientERGetClinicsServiceTimingsList,
+ // ),
+ // ),
+ // );
+ // },
+ // transitionDuration: Duration(milliseconds: 500),
+ // barrierDismissible: true,
+ // barrierLabel: '',
+ // context: context,
+ // pageBuilder: (context, animation1, animation2) {});
});
} else {
AppToast.showErrorToast(message: res['ErrorEndUserMessage']);
diff --git a/lib/pages/livecare/widgets/clinic_list.dart b/lib/pages/livecare/widgets/clinic_list.dart
index 9a463150..988d102c 100644
--- a/lib/pages/livecare/widgets/clinic_list.dart
+++ b/lib/pages/livecare/widgets/clinic_list.dart
@@ -16,6 +16,7 @@ import 'package:diplomaticquarterapp/pages/livecare/widgets/clinic_card.dart';
import 'package:diplomaticquarterapp/services/appointment_services/GetDoctorsList.dart';
import 'package:diplomaticquarterapp/services/authentication/auth_provider.dart';
import 'package:diplomaticquarterapp/services/livecare_services/livecare_provider.dart';
+import 'package:diplomaticquarterapp/theme/colors.dart';
import 'package:diplomaticquarterapp/uitl/app_shared_preferences.dart';
import 'package:diplomaticquarterapp/uitl/app_toast.dart';
import 'package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.dart';
@@ -29,6 +30,8 @@ import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
+import '../live_care_payment_page.dart';
+
class ClinicList extends StatefulWidget {
final Function getLiveCareHistory;
@@ -89,7 +92,9 @@ class _clinic_listState extends State {
@override
Widget build(BuildContext context) {
- return SingleChildScrollView(child: currentSelectedLiveCareType == "immediate" ? getLiveCareImmediateClinicList() : getLiveCareScheduleClinicList());
+ return Container(
+ child: currentSelectedLiveCareType == "immediate" ? getLiveCareImmediateClinicList() : getLiveCareScheduleClinicList(),
+ );
}
void startLiveCare() {
@@ -172,32 +177,43 @@ class _clinic_listState extends State {
}
showLiveCarePaymentDialog(GetERAppointmentFeesList getERAppointmentFeesList, int waitingTime) {
- showGeneralDialog(
- barrierColor: Colors.black.withOpacity(0.5),
- transitionBuilder: (context, a1, a2, widget) {
- final curvedValue = Curves.easeInOutBack.transform(a1.value) - 1.0;
- return Transform(
- transform: Matrix4.translationValues(0.0, curvedValue * 200, 0.0),
- child: Opacity(
- opacity: a1.value,
- child: LiveCarePaymentDialog(getERAppointmentFeesList: getERAppointmentFeesList, waitingTime: waitingTime, clinicName: selectedClinicName),
- ),
- );
- },
- transitionDuration: Duration(milliseconds: 500),
- barrierDismissible: true,
- barrierLabel: '',
- context: context,
- pageBuilder: (context, animation1, animation2) {})
- .then((value) {
- if (value) {
- if (getERAppointmentFeesList.total == "0" || getERAppointmentFeesList.total == "0.0") {
- showLiveCareInfoDialog(getERAppointmentFeesList);
- } else {
- navigateToPaymentMethod(getERAppointmentFeesList, context);
+ navigateTo(context, LiveCarePatmentPage(getERAppointmentFeesList: getERAppointmentFeesList, waitingTime: waitingTime, clinicName: selectedClinicName)).then(
+ (value) {
+ if (value) {
+ if (getERAppointmentFeesList.total == "0" || getERAppointmentFeesList.total == "0.0") {
+ showLiveCareInfoDialog(getERAppointmentFeesList);
+ } else {
+ navigateToPaymentMethod(getERAppointmentFeesList, context);
+ }
}
- }
- });
+ },
+ );
+ // showGeneralDialog(
+ // barrierColor: Colors.black.withOpacity(0.5),
+ // transitionBuilder: (context, a1, a2, widget) {
+ // final curvedValue = Curves.easeInOutBack.transform(a1.value) - 1.0;
+ // return Transform(
+ // transform: Matrix4.translationValues(0.0, curvedValue * 200, 0.0),
+ // child: Opacity(
+ // opacity: a1.value,
+ // child: LiveCarePaymentDialog(getERAppointmentFeesList: getERAppointmentFeesList, waitingTime: waitingTime, clinicName: selectedClinicName),
+ // ),
+ // );
+ // },
+ // transitionDuration: Duration(milliseconds: 500),
+ // barrierDismissible: true,
+ // barrierLabel: '',
+ // context: context,
+ // pageBuilder: (context, animation1, animation2) {})
+ // .then((value) {
+ // if (value) {
+ // if (getERAppointmentFeesList.total == "0" || getERAppointmentFeesList.total == "0.0") {
+ // showLiveCareInfoDialog(getERAppointmentFeesList);
+ // } else {
+ // navigateToPaymentMethod(getERAppointmentFeesList, context);
+ // }
+ // }
+ // });
}
showLiveCareInfoDialog(GetERAppointmentFeesList getERAppointmentFeesList) async {
@@ -435,64 +451,63 @@ class _clinic_listState extends State {
return Column(
children: [
isDataLoaded
- ? Container(
- height: MediaQuery.of(context).size.height * 0.7,
- child: liveCareScheduleClinicsListResponse.clinicsHaveScheduleList.length > 0
- ? Column(
- crossAxisAlignment: CrossAxisAlignment.start,
- children: [
- ListView.builder(
- scrollDirection: Axis.vertical,
- shrinkWrap: true,
- physics: ScrollPhysics(),
- padding: EdgeInsets.all(0.0),
- itemCount: liveCareScheduleClinicsListResponse.clinicsHaveScheduleList.length,
- itemBuilder: (context, index) {
- return InkWell(
- onTap: () {
- updateSelectedScheduleIndex(liveCareScheduleClinicsListResponse.clinicsHaveScheduleList[index]);
- },
- child: ScheduleClinicCard(
- isSelected: selectedClinicID == liveCareScheduleClinicsListResponse.clinicsHaveScheduleList[index].serviceID ? true : false,
- clinicsHaveScheduleList: liveCareScheduleClinicsListResponse.clinicsHaveScheduleList[index],
- languageID: languageID,
- ),
- );
- },
- ),
- Container(
- height: 10.0,
- ),
- ],
- )
- : getNoDataWidget(context),
- )
+ ? Expanded(
+ child: Container(
+ child: liveCareScheduleClinicsListResponse.clinicsHaveScheduleList.length > 0
+ ? Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: [
+ mHeight(10),
+ ListView.builder(
+ scrollDirection: Axis.vertical,
+ shrinkWrap: true,
+ physics: ScrollPhysics(),
+ padding: EdgeInsets.all(0.0),
+ itemCount: liveCareScheduleClinicsListResponse.clinicsHaveScheduleList.length,
+ itemBuilder: (context, index) {
+ return InkWell(
+ onTap: () {
+ updateSelectedScheduleIndex(liveCareScheduleClinicsListResponse.clinicsHaveScheduleList[index]);
+ },
+ child: ScheduleClinicCard(
+ isSelected: selectedClinicID == liveCareScheduleClinicsListResponse.clinicsHaveScheduleList[index].serviceID ? true : false,
+ clinicsHaveScheduleList: liveCareScheduleClinicsListResponse.clinicsHaveScheduleList[index],
+ languageID: languageID,
+ ),
+ );
+ },
+ ),
+ Container(
+ height: 10.0,
+ ),
+ ],
+ )
+ : getNoDataWidget(context),
+ ),
+ )
: Container(),
isDataLoaded
- ? Align(
- alignment: FractionalOffset.bottomCenter,
- child: Container(
- width: MediaQuery.of(context).size.width,
- height: 50.0,
- margin: EdgeInsets.fromLTRB(20.0, 10.0, 20.0, 0.0),
- child: ButtonTheme(
- shape: RoundedRectangleBorder(
- borderRadius: BorderRadius.circular(10.0),
- ),
- minWidth: MediaQuery.of(context).size.width * 0.7,
- height: 45.0,
- child: RaisedButton(
- color: new Color(0xFF60686b),
- textColor: Colors.white,
- elevation: 0,
- disabledTextColor: Colors.white,
- disabledColor: new Color(0xFFbcc2c4),
- onPressed: startScheduleLiveCare,
- child: Text(TranslationBase.of(context).start, style: TextStyle(fontSize: 18.0)),
- ),
- ),
+ ? Container(
+ width: double.infinity,
+ color: Colors.white,
+ padding: EdgeInsets.all(12),
+ child: ButtonTheme(
+ shape: RoundedRectangleBorder(
+ borderRadius: BorderRadius.circular(10.0),
),
- )
+ minWidth: MediaQuery.of(context).size.width * 0.7,
+ height: 45.0,
+ child: RaisedButton(
+ color: CustomColors.accentColor,
+ textColor: Colors.white,
+ elevation: 0,
+ disabledTextColor: Colors.white,
+ disabledColor: new Color(0xFFbcc2c4),
+ onPressed: startScheduleLiveCare,
+ child: Text(TranslationBase.of(context).start, style: TextStyle(fontSize: 18.0)),
+ ),
+ ),
+ )
: Container(),
],
);
@@ -502,67 +517,67 @@ class _clinic_listState extends State {
return Column(
children: [
isDataLoaded
- ? Container(
- height: MediaQuery.of(context).size.height * 0.75,
- child: SingleChildScrollView(
- child: Column(
- crossAxisAlignment: CrossAxisAlignment.start,
- children: [
- ListView.builder(
- scrollDirection: Axis.vertical,
- shrinkWrap: true,
- physics: ScrollPhysics(),
- padding: const EdgeInsets.only(top: 16.0),
- itemCount: liveCareOnlineClinicsListResponse.length,
- itemBuilder: (context, index) {
- return InkWell(
- onTap: () {
- updateSelectedIndex(liveCareOnlineClinicsListResponse[index]);
- },
- child: ClinicCard(
- isSelected: selectedClinicID == liveCareOnlineClinicsListResponse[index].serviceID ? true : false,
- patientERGetClinicsList: liveCareOnlineClinicsListResponse[index],
+ ? Expanded(
+ child: Container(
+ child: SingleChildScrollView(
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: [
+ ListView.builder(
+ scrollDirection: Axis.vertical,
+ shrinkWrap: true,
+ physics: ScrollPhysics(),
+ padding: const EdgeInsets.only(top: 16.0),
+ itemCount: liveCareOnlineClinicsListResponse.length,
+ itemBuilder: (context, index) {
+ return InkWell(
+ onTap: () {
+ updateSelectedIndex(liveCareOnlineClinicsListResponse[index]);
+ },
+ child: ClinicCard(
+ isSelected: selectedClinicID == liveCareOnlineClinicsListResponse[index].serviceID ? true : false,
+ patientERGetClinicsList: liveCareOnlineClinicsListResponse[index],
+ languageID: languageID,
+ ),
+ );
+ },
+ ),
+ // Container(
+ // margin: EdgeInsets.all(15.0),
+ // child: Text(TranslationBase.of(context).offlineClinics, style: TextStyle(fontSize: 20.0, fontWeight: FontWeight.bold)),
+ // ),
+ ListView.builder(
+ scrollDirection: Axis.vertical,
+ shrinkWrap: true,
+ physics: ScrollPhysics(),
+ padding: EdgeInsets.all(0.0),
+ itemCount: liveCareOfflineClinicsListResponse.length,
+ itemBuilder: (context, index) {
+ return ClinicCard(
+ isSelected: selectedClinicID == liveCareOfflineClinicsListResponse[index].serviceID ? true : false,
+ patientERGetClinicsList: liveCareOfflineClinicsListResponse[index],
languageID: languageID,
- ),
- );
- },
- ),
- // Container(
- // margin: EdgeInsets.all(15.0),
- // child: Text(TranslationBase.of(context).offlineClinics, style: TextStyle(fontSize: 20.0, fontWeight: FontWeight.bold)),
- // ),
- ListView.builder(
- scrollDirection: Axis.vertical,
- shrinkWrap: true,
- physics: ScrollPhysics(),
- padding: EdgeInsets.all(0.0),
- itemCount: liveCareOfflineClinicsListResponse.length,
- itemBuilder: (context, index) {
- return ClinicCard(
- isSelected: selectedClinicID == liveCareOfflineClinicsListResponse[index].serviceID ? true : false,
- patientERGetClinicsList: liveCareOfflineClinicsListResponse[index],
- languageID: languageID,
- );
- },
- ),
- Container(
- height: 50.0,
- ),
- ],
- )),
+ );
+ },
+ ),
+ Container(
+ height: 10.0,
+ ),
+ ],
+ )),
+ ),
)
: Container(),
isDataLoaded
- ? Align(
- alignment: FractionalOffset.bottomCenter,
- child: Container(
- margin: EdgeInsets.fromLTRB(20.0, 0.0, 20.0, 0.0),
- color: Colors.grey[100],
- width: MediaQuery.of(context).size.width,
- height: 50.0,
- child: DefaultButton(TranslationBase.of(context).start, () {
+ ? Container(
+ color: Colors.white,
+ width: double.infinity,
+ padding: EdgeInsets.all(16),
+ child: DefaultButton(
+ TranslationBase.of(context).start,
+ () {
startLiveCare();
- }),
+ },
),
)
: Container(),
diff --git a/lib/pages/livecare/widgets/livecare_logs.dart b/lib/pages/livecare/widgets/livecare_logs.dart
index 7b85afc2..8898faa6 100644
--- a/lib/pages/livecare/widgets/livecare_logs.dart
+++ b/lib/pages/livecare/widgets/livecare_logs.dart
@@ -30,7 +30,12 @@ class _LiveCareLogsState extends State {
padding: EdgeInsets.all(0.0),
itemCount: widget.erRequestHistoryList.length,
itemBuilder: (context, index) {
- return widget.erRequestHistoryList[index].callStatus < 4 ? Container() : LiveCareHistoryCard(erRequestHistoryList: widget.erRequestHistoryList[index]);
+ return widget.erRequestHistoryList[index].callStatus < 4
+ ? Container()
+ : LiveCareHistoryCard(
+ erRequestHistoryList: widget.erRequestHistoryList[index],
+ isFirstOrLast: index==0?0:(index==widget.erRequestHistoryList.length-1)?1:2,
+ );
},
),
)
diff --git a/lib/pages/medical/balance/advance_payment_page.dart b/lib/pages/medical/balance/advance_payment_page.dart
index 338aff23..6ade52bd 100644
--- a/lib/pages/medical/balance/advance_payment_page.dart
+++ b/lib/pages/medical/balance/advance_payment_page.dart
@@ -8,7 +8,6 @@ import 'package:diplomaticquarterapp/models/Authentication/authenticated_user.da
import 'package:diplomaticquarterapp/models/FamilyFiles/GetAllSharedRecordByStatusResponse.dart';
import 'package:diplomaticquarterapp/pages/ToDoList/payment_method_select.dart';
import 'package:diplomaticquarterapp/pages/base/base_view.dart';
-import 'package:diplomaticquarterapp/pages/medical/balance/dialogs/SelectHospitalDialog.dart';
import 'package:diplomaticquarterapp/theme/colors.dart';
import 'package:diplomaticquarterapp/uitl/app_shared_preferences.dart';
import 'package:diplomaticquarterapp/uitl/app_toast.dart';
@@ -16,7 +15,7 @@ import 'package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/uitl/utils.dart';
import 'package:diplomaticquarterapp/widgets/buttons/defaultButton.dart';
-import 'package:diplomaticquarterapp/widgets/buttons/secondary_button.dart';
+import 'package:diplomaticquarterapp/widgets/dialogs/radio_selection_dialog.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
import 'package:flutter/cupertino.dart';
@@ -24,9 +23,6 @@ import 'package:flutter/material.dart';
import '../../../core/model/my_balance/AdvanceModel.dart';
import 'confirm_payment_page.dart';
-import 'dialogs/SelectBeneficiaryDialog.dart';
-import 'dialogs/SelectPatientFamilyDialog.dart';
-import 'dialogs/SelectPatientInfoDialog.dart';
import 'new_text_Field.dart';
enum BeneficiaryType { MyAccount, MyFamilyFiles, OtherAccount, NON }
@@ -87,16 +83,48 @@ class _AdvancePaymentPageState extends State {
Text(
TranslationBase.of(context).advancePaymentLabel,
style: TextStyle(
- fontSize: 14,
+ fontSize: 16,
fontWeight: FontWeight.w600,
- letterSpacing: -0.46,
+ letterSpacing: -0.64,
),
),
- SizedBox(
- height: 12,
- ),
+ SizedBox(height: 12),
InkWell(
- onTap: () => confirmSelectBeneficiaryDialog(model),
+ onTap: () {
+ List list = [
+ RadioSelectionDialogModel(TranslationBase.of(context).myAccount, 0),
+ RadioSelectionDialogModel(TranslationBase.of(context).myFamilyFiles, 1),
+ RadioSelectionDialogModel(TranslationBase.of(context).otherAccount, 2),
+ ];
+ showDialog(
+ context: context,
+ child: RadioSelectionDialog(
+ listData: list,
+ selectedIndex:
+ beneficiaryType == BeneficiaryType.MyAccount ? 0 : (beneficiaryType == BeneficiaryType.MyFamilyFiles ? 1 : (beneficiaryType == BeneficiaryType.OtherAccount ? 2 : -1)),
+ onValueSelected: (index) {
+ var type;
+ if (index == 0) {
+ type = BeneficiaryType.MyAccount;
+ } else if (index == 1) {
+ type = BeneficiaryType.MyFamilyFiles;
+ } else {
+ type = BeneficiaryType.OtherAccount;
+ }
+
+ setState(() {
+ if (type == BeneficiaryType.MyAccount) {
+ _fileTextController.text = model.user.patientID.toString();
+ advanceModel.depositorName = model.user.firstName + " " + model.user.lastName;
+ } else
+ _fileTextController.text = "";
+
+ beneficiaryType = type;
+ });
+ },
+ ),
+ );
+ },
child: Container(
padding: EdgeInsets.all(8),
width: double.infinity,
@@ -118,10 +146,7 @@ class _AdvancePaymentPageState extends State {
),
),
),
- if (beneficiaryType == BeneficiaryType.MyFamilyFiles)
- SizedBox(
- height: 12,
- ),
+ if (beneficiaryType == BeneficiaryType.MyFamilyFiles) SizedBox(height: 12),
if (beneficiaryType == BeneficiaryType.MyFamilyFiles)
InkWell(
onTap: () {
@@ -152,18 +177,13 @@ class _AdvancePaymentPageState extends State {
),
),
),
- SizedBox(
- height: 12,
- ),
+ SizedBox(height: 12),
NewTextFields(
hintText: TranslationBase.of(context).fileNumber,
controller: _fileTextController,
readOnly: beneficiaryType == BeneficiaryType.OtherAccount ? false : true,
),
- if (beneficiaryType == BeneficiaryType.OtherAccount)
- SizedBox(
- height: 12,
- ),
+ if (beneficiaryType == BeneficiaryType.OtherAccount) SizedBox(height: 12),
if (beneficiaryType == BeneficiaryType.OtherAccount)
InkWell(
onTap: () {
@@ -197,9 +217,7 @@ class _AdvancePaymentPageState extends State {
),
),
),
- SizedBox(
- height: 12,
- ),
+ SizedBox(height: 12),
InkWell(
onTap: () => confirmSelectHospitalDialog(model.hospitals),
child: Container(
@@ -223,9 +241,7 @@ class _AdvancePaymentPageState extends State {
),
),
),
- SizedBox(
- height: 12,
- ),
+ SizedBox(height: 12),
NewTextFields(
hintText: TranslationBase.of(context).amount,
keyboardType: TextInputType.numberWithOptions(signed: false, decimal: true),
@@ -235,9 +251,7 @@ class _AdvancePaymentPageState extends State {
});
},
),
- SizedBox(
- height: 12,
- ),
+ SizedBox(height: 12),
if (model.user != null)
NewTextFields(
hintText: TranslationBase.of(context).depositorEmail,
@@ -246,9 +260,7 @@ class _AdvancePaymentPageState extends State {
email = value;
},
),
- SizedBox(
- height: 12,
- ),
+ SizedBox(height: 12),
NewTextFields(
hintText: TranslationBase.of(context).notes,
controller: _notesTextController,
@@ -334,73 +346,70 @@ class _AdvancePaymentPageState extends State {
);
}
- void confirmSelectBeneficiaryDialog(MyBalanceViewModel model) {
- showDialog(
- context: context,
- child: SelectBeneficiaryDialog(
- beneficiaryType: beneficiaryType,
- onValueSelected: (value) {
- setState(() {
- if (value == BeneficiaryType.MyAccount) {
- _fileTextController.text = model.user.patientID.toString();
- advanceModel.depositorName = model.user.firstName + " " + model.user.lastName;
- } else
- _fileTextController.text = "";
-
- beneficiaryType = value;
- });
- },
- ),
- );
- }
+ int _selectedHospitalIndex = -1;
void confirmSelectHospitalDialog(List hospitals) {
+ List list = [
+ for (int i = 0; i < hospitals.length; i++) RadioSelectionDialogModel(hospitals[i].name + ' ${hospitals[i].distanceInKilometers} ' + TranslationBase.of(context).km, i),
+ ];
showDialog(
context: context,
- child: SelectHospitalDialog(
- hospitals: hospitals,
- selectedHospital: _selectedHospital,
- onValueSelected: (value) {
- setState(() {
- _selectedHospital = value;
- });
+ child: RadioSelectionDialog(
+ listData: list,
+ selectedIndex: _selectedHospitalIndex,
+ isScrollable: true,
+ onValueSelected: (index) {
+ _selectedHospitalIndex = index;
+ _selectedHospital = hospitals[index];
+ setState(() {});
},
),
);
}
+ int _selectedPatientIndex = -1;
+
void confirmSelectPatientDialog(List patientInfoList) {
+ List list = [
+ for (int i = 0; i < patientInfoList.length; i++) RadioSelectionDialogModel(patientInfoList[i].fullName, i),
+ ];
showDialog(
context: context,
- child: SelectPatientInfoDialog(
- patientInfoList: patientInfoList,
- selectedPatientInfo: _selectedPatientInfo,
- onValueSelected: (value) {
- setState(() {
- advanceModel.depositorName = value.fullName;
- _selectedPatientInfo = value;
- });
+ child: RadioSelectionDialog(
+ listData: list,
+ isScrollable: true,
+ selectedIndex: _selectedPatientIndex,
+ onValueSelected: (index) {
+ _selectedPatientIndex = index;
+ _selectedPatientInfo = patientInfoList[index];
+ advanceModel.depositorName = _selectedPatientInfo.fullName;
+ setState(() {});
},
),
);
}
+ int _selectedFamilyMemberIndex = -1;
+
void confirmSelectFamilyDialog(List getAllSharedRecordsByStatusList) {
- if (getAllSharedRecordsByStatusList.isNotEmpty)
+ if (getAllSharedRecordsByStatusList.isNotEmpty) {
+ List list = [
+ for (int i = 0; i < getAllSharedRecordsByStatusList.length; i++) RadioSelectionDialogModel(getAllSharedRecordsByStatusList[i].patientName, i),
+ ];
showDialog(
context: context,
- child: SelectPatientFamilyDialog(
- getAllSharedRecordsByStatusList: getAllSharedRecordsByStatusList,
- selectedPatientFamily: selectedPatientFamily,
- onValueSelected: (value) {
- setState(() {
- selectedPatientFamily = value;
- _fileTextController.text = selectedPatientFamily.responseID.toString();
- advanceModel.depositorName = value.patientName;
- });
+ child: RadioSelectionDialog(
+ listData: list,
+ isScrollable: true,
+ selectedIndex: _selectedFamilyMemberIndex,
+ onValueSelected: (index) {
+ _selectedFamilyMemberIndex = index;
+ selectedPatientFamily = getAllSharedRecordsByStatusList[index];
+ setState(() {});
},
),
);
+ }
}
String getBeneficiaryType() {
diff --git a/lib/pages/medical/balance/dialogs/SelectBeneficiaryDialog.dart b/lib/pages/medical/balance/dialogs/SelectBeneficiaryDialog.dart
deleted file mode 100644
index 526ffaf6..00000000
--- a/lib/pages/medical/balance/dialogs/SelectBeneficiaryDialog.dart
+++ /dev/null
@@ -1,204 +0,0 @@
-import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
-import 'package:flutter/cupertino.dart';
-import 'package:flutter/material.dart';
-
-import '../../../../Constants.dart';
-import '../advance_payment_page.dart';
-
-class SelectBeneficiaryDialog extends StatefulWidget {
- final BeneficiaryType beneficiaryType;
- final Function(BeneficiaryType) onValueSelected;
-
- SelectBeneficiaryDialog({Key key, this.beneficiaryType, this.onValueSelected});
-
- @override
- _SelectBeneficiaryDialogState createState() => _SelectBeneficiaryDialogState(this.beneficiaryType);
-}
-
-class _SelectBeneficiaryDialogState extends State {
- _SelectBeneficiaryDialogState(this.beneficiaryType);
-
- BeneficiaryType beneficiaryType;
-
- @override
- Widget build(BuildContext context) {
- return SimpleDialog(
- children: [
- Container(
- child: Column(
- children: [
- Divider(),
- Row(
- children: [
- Expanded(
- flex: 1,
- child: InkWell(
- onTap: () {
- setState(() {
- beneficiaryType = BeneficiaryType.MyAccount;
- });
- },
- child: ListTile(
- title: Text(
- TranslationBase.of(context).myAccount,
- style: TextStyle(
- fontSize: 14,
- fontWeight: FontWeight.w600,
- letterSpacing: -0.46,
- ),
- ),
- leading: Radio(
- value: BeneficiaryType.MyAccount,
- groupValue: beneficiaryType,
- activeColor: secondaryColor,
- onChanged: (BeneficiaryType value) {
- setState(() {
- beneficiaryType = value;
- });
- },
- ),
- ),
- ),
- )
- ],
- ),
- SizedBox(
- height: 5.0,
- ),
- Row(
- children: [
- Expanded(
- flex: 1,
- child: InkWell(
- onTap: () {
- setState(() {
- beneficiaryType = BeneficiaryType.MyFamilyFiles;
- });
- },
- child: ListTile(
- title: Text(
- TranslationBase.of(context).myFamilyFiles,
- style: TextStyle(
- fontSize: 14,
- fontWeight: FontWeight.w600,
- letterSpacing: -0.46,
- ),
- ),
- leading: Radio(
- value: BeneficiaryType.MyFamilyFiles,
- groupValue: beneficiaryType,
- activeColor: Color(0xffC5272D),
- onChanged: (BeneficiaryType value) {
- setState(() {
- beneficiaryType = value;
- });
- },
- ),
- ),
- ),
- )
- ],
- ),
- SizedBox(
- height: 5.0,
- ),
- Row(
- children: [
- Expanded(
- flex: 1,
- child: InkWell(
- onTap: () {
- setState(() {
- beneficiaryType = BeneficiaryType.OtherAccount;
- });
- },
- child: ListTile(
- title: Text(
- TranslationBase.of(context).otherAccount,
- style: TextStyle(
- fontSize: 14,
- fontWeight: FontWeight.w600,
- letterSpacing: -0.46,
- ),
- ),
- leading: Radio(
- value: BeneficiaryType.OtherAccount,
- groupValue: beneficiaryType,
- activeColor: Color(0xffC5272D),
- onChanged: (BeneficiaryType value) {
- setState(() {
- beneficiaryType = value;
- });
- },
- ),
- ),
- ),
- )
- ],
- ),
- SizedBox(
- height: 5.0,
- ),
- Row(
- // mainAxisAlignment: MainAxisAlignment.spaceBetween,
- children: [
- Expanded(
- flex: 1,
- child: InkWell(
- onTap: () {
- Navigator.pop(context);
- },
- child: Padding(
- padding: const EdgeInsets.all(8.0),
- child: Container(
- child: Center(
- child: Text(
- TranslationBase.of(context).cancel.toUpperCase(),
- style: TextStyle(
- fontSize: 14,
- fontWeight: FontWeight.w600,
- letterSpacing: -0.46,
- color: Color(0xffC5272D),
- ),
- ),
- ),
- ),
- ),
- ),
- ),
- Container(
- width: 1,
- height: 30,
- color: Colors.grey[500],
- ),
- Expanded(
- flex: 1,
- child: InkWell(
- onTap: () {
- widget.onValueSelected(beneficiaryType);
- Navigator.pop(context);
- },
- child: Padding(
- padding: const EdgeInsets.all(8.0),
- child: Center(
- child: Text(
- TranslationBase.of(context).ok.toUpperCase(),
- style: TextStyle(
- fontSize: 14,
- fontWeight: FontWeight.w600,
- letterSpacing: -0.46,
- ),
- ),
- ),
- ),
- ),
- ),
- ],
- )
- ],
- ),
- )
- ],
- );
- }
-}
diff --git a/lib/pages/medical/balance/dialogs/SelectCiteisDialog.dart b/lib/pages/medical/balance/dialogs/SelectCiteisDialog.dart
index 19e4fea4..d0f991ac 100644
--- a/lib/pages/medical/balance/dialogs/SelectCiteisDialog.dart
+++ b/lib/pages/medical/balance/dialogs/SelectCiteisDialog.dart
@@ -7,6 +7,7 @@ import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
+// todo 'sikander' remove this file when usage known
class SelectCiteisDialog extends StatefulWidget {
final List hospitals;
final Function(CitiesModel) onValueSelected;
diff --git a/lib/pages/medical/balance/dialogs/SelectHospitalDialog.dart b/lib/pages/medical/balance/dialogs/SelectHospitalDialog.dart
deleted file mode 100644
index fd47ea1b..00000000
--- a/lib/pages/medical/balance/dialogs/SelectHospitalDialog.dart
+++ /dev/null
@@ -1,145 +0,0 @@
-import 'package:diplomaticquarterapp/core/model/hospitals/hospitals_model.dart';
-import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
-import 'package:flutter/cupertino.dart';
-import 'package:flutter/material.dart';
-
-import '../../../../Constants.dart';
-
-class SelectHospitalDialog extends StatefulWidget {
- final List hospitals;
- final Function(HospitalsModel) onValueSelected;
- HospitalsModel selectedHospital;
-
- SelectHospitalDialog({Key key, this.hospitals, this.onValueSelected, this.selectedHospital});
-
- @override
- _SelectHospitalDialogState createState() => _SelectHospitalDialogState();
-}
-
-class _SelectHospitalDialogState extends State {
- @override
- void initState() {
- super.initState();
- widget.selectedHospital = widget.selectedHospital ?? widget.hospitals[0];
- }
-
- @override
- Widget build(BuildContext context) {
- return SimpleDialog(
- children: [
- Column(
- children: [
- Divider(),
- ...List.generate(
- widget.hospitals.length,
- (index) => Column(
- crossAxisAlignment: CrossAxisAlignment.start,
- children: [
- SizedBox(
- height: 2,
- ),
- Row(
- children: [
- Expanded(
- flex: 1,
- child: InkWell(
- onTap: () {
- setState(() {
- widget.selectedHospital = widget.hospitals[index];
- });
- },
- child: ListTile(
- title: Text(
- widget.hospitals[index].name + ' ${widget.hospitals[index].distanceInKilometers} ' + TranslationBase.of(context).km,
- style: TextStyle(
- fontSize: 14,
- fontWeight: FontWeight.w600,
- letterSpacing: -0.46,
- ),
- ),
- leading: Radio(
- value: widget.hospitals[index],
- groupValue: widget.selectedHospital,
- activeColor: secondaryColor,
- onChanged: (value) {
- setState(() {
- widget.selectedHospital = value;
- });
- },
- ),
- ),
- ),
- )
- ],
- ),
- SizedBox(
- height: 5.0,
- ),
- ],
- ),
- ),
- SizedBox(
- height: 5.0,
- ),
- Row(
- // mainAxisAlignment: MainAxisAlignment.spaceBetween,
- children: [
- Expanded(
- flex: 1,
- child: InkWell(
- onTap: () {
- Navigator.pop(context);
- },
- child: Padding(
- padding: const EdgeInsets.all(8.0),
- child: Container(
- child: Center(
- child: Text(
- TranslationBase.of(context).cancel.toUpperCase(),
- style: TextStyle(
- fontSize: 14,
- fontWeight: FontWeight.w600,
- letterSpacing: -0.46,
- color: Colors.red
- ),
- ),
- ),
- ),
- ),
- ),
- ),
- Container(
- width: 1,
- height: 30,
- color: Colors.grey[500],
- ),
- Expanded(
- flex: 1,
- child: InkWell(
- onTap: () {
- widget.onValueSelected(widget.selectedHospital);
- Navigator.pop(context);
- },
- child: Padding(
- padding: const EdgeInsets.all(8.0),
- child: Center(
- child: Text(
- TranslationBase.of(context).ok,
- style: TextStyle(
- fontSize: 14,
- fontWeight: FontWeight.w600,
- letterSpacing: -0.46,
- ),
- ),
- ),
- ),
- ),
- ),
- ],
- )
- ],
- )
- ],
- );
- }
-}
diff --git a/lib/pages/medical/balance/dialogs/SelectPatientFamilyDialog.dart b/lib/pages/medical/balance/dialogs/SelectPatientFamilyDialog.dart
deleted file mode 100644
index d4b2e8fb..00000000
--- a/lib/pages/medical/balance/dialogs/SelectPatientFamilyDialog.dart
+++ /dev/null
@@ -1,152 +0,0 @@
-import 'package:diplomaticquarterapp/models/FamilyFiles/GetAllSharedRecordByStatusResponse.dart';
-import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
-import 'package:flutter/cupertino.dart';
-import 'package:flutter/material.dart';
-
-import '../../../../Constants.dart';
-
-class SelectPatientFamilyDialog extends StatefulWidget {
- final List getAllSharedRecordsByStatusList;
- final Function(GetAllSharedRecordsByStatusList) onValueSelected;
- GetAllSharedRecordsByStatusList selectedPatientFamily;
-
- List getAllSharedRecordsByStatusApprovedList = new List();
-
- SelectPatientFamilyDialog({Key key, this.getAllSharedRecordsByStatusList, this.onValueSelected, this.selectedPatientFamily});
-
- @override
- _SelectPatientFamilyDialogState createState() => _SelectPatientFamilyDialogState();
-}
-
-class _SelectPatientFamilyDialogState extends State {
- @override
- void initState() {
- super.initState();
- widget.selectedPatientFamily = widget.selectedPatientFamily ?? widget.getAllSharedRecordsByStatusList[0];
-
- if (widget.getAllSharedRecordsByStatusList.isNotEmpty)
- widget.getAllSharedRecordsByStatusList.forEach((element) {
- if (element.status == 3) widget.getAllSharedRecordsByStatusApprovedList.add(element);
- });
- }
-
- @override
- Widget build(BuildContext context) {
- return SimpleDialog(
- children: [
- Column(
- children: [
- Divider(),
- ...List.generate(
- widget.getAllSharedRecordsByStatusApprovedList.length,
- (index) => Column(
- crossAxisAlignment: CrossAxisAlignment.start,
- children: [
- SizedBox(
- height: 2,
- ),
- Row(
- children: [
- Expanded(
- flex: 1,
- child: InkWell(
- onTap: () {
- setState(() {
- widget.selectedPatientFamily = widget.getAllSharedRecordsByStatusApprovedList[index];
- });
- },
- child: ListTile(
- title: Text(
- widget.getAllSharedRecordsByStatusApprovedList[index].patientName,
- style: TextStyle(
- fontSize: 14,
- fontWeight: FontWeight.w600,
- letterSpacing: -0.46,
- ),
- ),
- leading: Radio(
- value: widget.getAllSharedRecordsByStatusApprovedList[index],
- groupValue: widget.selectedPatientFamily,
- activeColor: secondaryColor,
- onChanged: (value) {
- setState(() {
- widget.selectedPatientFamily = value;
- });
- },
- ),
- ),
- ),
- )
- ],
- ),
- SizedBox(
- height: 5.0,
- ),
- ],
- ),
- ),
- SizedBox(
- height: 5.0,
- ),
- Row(
- // mainAxisAlignment: MainAxisAlignment.spaceBetween,
- children: [
- Expanded(
- flex: 1,
- child: InkWell(
- onTap: () {
- Navigator.pop(context);
- },
- child: Padding(
- padding: const EdgeInsets.all(8.0),
- child: Container(
- child: Center(
- child: Text(
- TranslationBase.of(context).cancel.toUpperCase(),
- style: TextStyle(
- fontSize: 14,
- fontWeight: FontWeight.w600,
- letterSpacing: -0.46,
- color: Colors.red,
- ),
- ),
- ),
- ),
- ),
- ),
- ),
- Container(
- width: 1,
- height: 30,
- color: Colors.grey[500],
- ),
- Expanded(
- flex: 1,
- child: InkWell(
- onTap: () {
- widget.onValueSelected(widget.selectedPatientFamily);
- Navigator.pop(context);
- },
- child: Padding(
- padding: const EdgeInsets.all(8.0),
- child: Center(
- child: Text(
- TranslationBase.of(context).ok,
- style: TextStyle(
- fontSize: 14,
- fontWeight: FontWeight.w600,
- letterSpacing: -0.46,
- ),
- ),
- ),
- ),
- ),
- ),
- ],
- )
- ],
- )
- ],
- );
- }
-}
diff --git a/lib/pages/medical/balance/dialogs/SelectPatientInfoDialog.dart b/lib/pages/medical/balance/dialogs/SelectPatientInfoDialog.dart
deleted file mode 100644
index 759a6874..00000000
--- a/lib/pages/medical/balance/dialogs/SelectPatientInfoDialog.dart
+++ /dev/null
@@ -1,146 +0,0 @@
-import 'package:diplomaticquarterapp/core/model/my_balance/patient_info.dart';
-import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
-import 'package:flutter/cupertino.dart';
-import 'package:flutter/material.dart';
-
-import '../../../../Constants.dart';
-
-class SelectPatientInfoDialog extends StatefulWidget {
- final List patientInfoList;
-
- final Function(PatientInfo) onValueSelected;
- PatientInfo selectedPatientInfo;
-
- SelectPatientInfoDialog({Key key, this.patientInfoList, this.onValueSelected, this.selectedPatientInfo});
-
- @override
- _SelectPatientInfoDialogState createState() => _SelectPatientInfoDialogState();
-}
-
-class _SelectPatientInfoDialogState extends State {
- @override
- void initState() {
- super.initState();
- widget.selectedPatientInfo = widget.selectedPatientInfo ?? widget.patientInfoList[0];
- }
-
- @override
- Widget build(BuildContext context) {
- return SimpleDialog(
- children: [
- Column(
- children: [
- Divider(),
- ...List.generate(
- widget.patientInfoList.length,
- (index) => Column(
- crossAxisAlignment: CrossAxisAlignment.start,
- children: [
- SizedBox(
- height: 2,
- ),
- Row(
- children: [
- Expanded(
- flex: 1,
- child: InkWell(
- onTap: () {
- setState(() {
- widget.selectedPatientInfo = widget.patientInfoList[index];
- });
- },
- child: ListTile(
- title: Text(
- widget.patientInfoList[index].fullName,
- style: TextStyle(
- fontSize: 14,
- fontWeight: FontWeight.w600,
- letterSpacing: -0.46,
- ),
- ),
- leading: Radio(
- value: widget.patientInfoList[index],
- groupValue: widget.selectedPatientInfo,
- activeColor: secondaryColor,
- onChanged: (value) {
- setState(() {
- widget.selectedPatientInfo = value;
- });
- },
- ),
- ),
- ),
- )
- ],
- ),
- SizedBox(
- height: 5.0,
- ),
- ],
- ),
- ),
- SizedBox(
- height: 5.0,
- ),
- Row(
- // mainAxisAlignment: MainAxisAlignment.spaceBetween,
- children: [
- Expanded(
- flex: 1,
- child: InkWell(
- onTap: () {
- Navigator.pop(context);
- },
- child: Padding(
- padding: const EdgeInsets.all(8.0),
- child: Container(
- child: Center(
- child: Text(
- TranslationBase.of(context).cancel.toUpperCase(),
- style: TextStyle(
- fontSize: 14,
- fontWeight: FontWeight.w600,
- letterSpacing: -0.46,
- color: Colors.red,
- ),
- ),
- ),
- ),
- ),
- ),
- ),
- Container(
- width: 1,
- height: 30,
- color: Colors.grey[500],
- ),
- Expanded(
- flex: 1,
- child: InkWell(
- onTap: () {
- widget.onValueSelected(widget.selectedPatientInfo);
- Navigator.pop(context);
- },
- child: Padding(
- padding: const EdgeInsets.all(8.0),
- child: Center(
- child: Text(
- TranslationBase.of(context).ok.toUpperCase(),
- style: TextStyle(
- fontSize: 14,
- fontWeight: FontWeight.w600,
- letterSpacing: -0.46,
- ),
- ),
- ),
- ),
- ),
- ),
- ],
- )
- ],
- )
- ],
- );
- }
-}
diff --git a/lib/pages/medical/balance/my_balance_page.dart b/lib/pages/medical/balance/my_balance_page.dart
index 8c98ebc8..e4ff9581 100644
--- a/lib/pages/medical/balance/my_balance_page.dart
+++ b/lib/pages/medical/balance/my_balance_page.dart
@@ -1,14 +1,16 @@
import 'package:diplomaticquarterapp/core/model/ImagesInfo.dart';
+import 'package:diplomaticquarterapp/core/model/my_balance/patient_advance_balance_amount.dart';
import 'package:diplomaticquarterapp/core/viewModels/medical/my_balance_view_model.dart';
import 'package:diplomaticquarterapp/pages/base/base_view.dart';
import 'package:diplomaticquarterapp/theme/colors.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/widgets/buttons/defaultButton.dart';
-import 'package:diplomaticquarterapp/widgets/buttons/secondary_button.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
+import 'package:flutter/widgets.dart';
+import 'package:flutter_svg/svg.dart';
import 'advance_payment_page.dart';
@@ -24,118 +26,156 @@ class MyBalancePage extends StatelessWidget {
builder: (_, model, w) => AppScaffold(
baseViewModel: model,
isShowAppBar: true,
- appBarTitle: TranslationBase.of(context).myBalances,
+ appBarTitle: TranslationBase.of(context).myWallet,
imagesInfo: imagesInfo,
description: TranslationBase.of(context).infoMyBalance,
showNewAppBar: true,
showNewAppBarTitle: true,
backgroundColor: CustomColors.appBackgroudGreyColor,
- body: SingleChildScrollView(
- child: Container(
- margin: EdgeInsets.all(12),
- child: Column(
- crossAxisAlignment: CrossAxisAlignment.start,
- children: [
- Text(
- TranslationBase.of(context).balanceAmount,
- style: TextStyle(
- fontSize: 16,
- fontWeight: FontWeight.w600,
- letterSpacing: -0.46,
- ),
- ),
- SizedBox(
- height: 15,
- ),
- Container(
- padding: EdgeInsets.all(8),
- width: double.infinity,
- height: 65,
- decoration: BoxDecoration(
- color: Colors.red[700],
- shape: BoxShape.rectangle,
- borderRadius: BorderRadius.circular(7),
- ),
- child: Row(
- mainAxisAlignment: MainAxisAlignment.spaceBetween,
- children: [
- Text(
- '${model.totalAdvanceBalanceAmount ?? 0} ' + TranslationBase.of(context).sar,
- style: TextStyle(
- fontSize: 14,
- fontWeight: FontWeight.w600,
- letterSpacing: -0.46,
- color: Colors.white,
- ),
- ),
- Text(
- TranslationBase.of(context).totalBalance,
- style: TextStyle(
- fontSize: 14,
- letterSpacing: -0.46,
- color: Colors.white,
+ body: Column(
+ children: [
+ Expanded(
+ child: SingleChildScrollView(
+ physics: BouncingScrollPhysics(),
+ padding: EdgeInsets.all(21),
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: [
+ Container(
+ padding: EdgeInsets.fromLTRB(14, 12, 10, 12),
+ decoration: BoxDecoration(
+ color: Color(0xff2B353E),
+ borderRadius: BorderRadius.all(
+ Radius.circular(10.0),
),
),
- ],
- ),
- ),
- SizedBox(
- height: 9,
- ),
- ...List.generate(
- model.patientAdvanceBalanceAmountList.length,
- (index) => Container(
- padding: EdgeInsets.all(8),
- height: 65,
- margin: EdgeInsets.only(top: 8),
- decoration: BoxDecoration(
- color: Colors.white,
- shape: BoxShape.rectangle,
- borderRadius: BorderRadius.circular(12),
- ),
- child: Row(
- mainAxisAlignment: MainAxisAlignment.spaceBetween,
- children: [
- Text(
- '${model.patientAdvanceBalanceAmountList[index].patientAdvanceBalanceAmount} ' + TranslationBase.of(context).sar,
- style: TextStyle(
- fontSize: 14,
- fontWeight: FontWeight.w600,
- letterSpacing: -0.46,
+ child: Row(
+ mainAxisAlignment: MainAxisAlignment.spaceBetween,
+ children: [
+ Expanded(
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ mainAxisAlignment: MainAxisAlignment.spaceBetween,
+ children: [
+ SvgPicture.asset(
+ "assets/images/new/services/balance_credit.svg",
+ height: 40,
+ width: 40,
+ color: Colors.white,
+ ),
+ SizedBox(height: 6),
+ Text(
+ TranslationBase.of(context).totalBalance,
+ style: TextStyle(
+ fontSize: 16,
+ letterSpacing: -0.96,
+ fontWeight: FontWeight.bold,
+ color: Colors.white,
+ //height: 16/22
+ ),
+ ),
+ ],
+ ),
),
- ),
- Text(
- model.patientAdvanceBalanceAmountList[index].projectDescription,
- style: TextStyle(
- fontSize: 14,
- letterSpacing: -0.46,
+ Container(
+ padding: EdgeInsets.fromLTRB(14, 10, 12, 10),
+ decoration: BoxDecoration(
+ color: Color(0xff3f4850),
+ borderRadius: BorderRadius.all(
+ Radius.circular(10.0),
+ ),
+ ),
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.end,
+ mainAxisSize: MainAxisSize.min,
+ children: [
+ Text(
+ double.parse(model.totalAdvanceBalanceAmount?.toString() ?? "0").toStringAsFixed(2),
+ style: TextStyle(
+ fontSize: 24,
+ fontWeight: FontWeight.bold,
+ letterSpacing: -1.44,
+ height: 24 / 23,
+ color: Colors.white,
+ ),
+ ),
+ Text(
+ TranslationBase.of(context).sar,
+ style: TextStyle(
+ fontSize: 16,
+ fontWeight: FontWeight.bold,
+ letterSpacing: -0.96,
+ color: Colors.white,
+ ),
+ ),
+ ],
+ ),
),
- ),
- ],
+ ],
+ ),
),
- ),
+ SizedBox(height: 12),
+ ListView.separated(
+ physics: NeverScrollableScrollPhysics(),
+ shrinkWrap: true,
+ itemBuilder: (cxt, index) {
+ PatientAdvanceBalanceAmount balanceAmount = model.patientAdvanceBalanceAmountList[index];
+ double amount = double.parse(balanceAmount.patientAdvanceBalanceAmount?.toString() ?? "0");
+ return Container(
+ padding: EdgeInsets.fromLTRB(14, 18, 14, 18),
+ decoration: BoxDecoration(
+ borderRadius: BorderRadius.all(
+ Radius.circular(10.0),
+ ),
+ boxShadow: [
+ BoxShadow(
+ color: Color(0xff000000).withOpacity(.05),
+ //spreadRadius: 5,
+ blurRadius: 27,
+ offset: Offset(0, -3),
+ ),
+ ],
+ color: Colors.white),
+ child: Row(
+ mainAxisAlignment: MainAxisAlignment.spaceBetween,
+ children: [
+ Expanded(
+ child: Text(
+ balanceAmount.projectDescription,
+ style: TextStyle(
+ fontSize: 16,
+ letterSpacing: -0.64,
+ fontWeight: amount > 0 ? FontWeight.bold : FontWeight.w500,
+ color: Color(0xff2E303A),
+ ),
+ ),
+ ),
+ Text(
+ amount.toStringAsFixed(2) + " " + TranslationBase.of(context).sar,
+ style: TextStyle(
+ fontSize: 16,
+ letterSpacing: -0.64,
+ fontWeight: amount > 0 ? FontWeight.bold : FontWeight.w500,
+ color: Color(0xff2E303A),
+ ),
+ ),
+ ],
+ ),
+ );
+ },
+ separatorBuilder: (cxt, index) => SizedBox(height: 12),
+ itemCount: model.patientAdvanceBalanceAmountList.length),
+ ],
),
- SizedBox(
- height: MediaQuery.of(context).size.height * 0.13,
- )
- ],
+ ),
),
- ),
- ),
- bottomSheet: Container(
- // height: MediaQuery.of(context).size.height * 0.12,
- height: 70.0,
- color: Colors.white,
- width: double.infinity,
- padding: EdgeInsets.all(12),
- child: DefaultButton(
- // textColor: Colors.white,
- // color: CustomColors.accentColor,
- TranslationBase.of(context).createAdvancedPayment,
- () {
- Navigator.push(context, FadePage(page: AdvancePaymentPage()));
- },
- ),
+ DefaultButton(
+ TranslationBase.of(context).createAdvancedPayment,
+ () {
+ Navigator.push(context, FadePage(page: AdvancePaymentPage()));
+ },
+ ).insideContainer,
+ ],
),
),
);
diff --git a/lib/pages/medical/my_trackers/Weight/AddWeightPage.dart b/lib/pages/medical/my_trackers/Weight/AddWeightPage.dart
index 9eb3e1a5..5ef8c69c 100644
--- a/lib/pages/medical/my_trackers/Weight/AddWeightPage.dart
+++ b/lib/pages/medical/my_trackers/Weight/AddWeightPage.dart
@@ -9,7 +9,7 @@ import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/widgets/buttons/defaultButton.dart';
import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
import 'package:diplomaticquarterapp/widgets/dialogs/ConfirmWithMessageDialog.dart';
-import 'package:diplomaticquarterapp/widgets/dialogs/RadioStringDialog.dart';
+
import 'package:diplomaticquarterapp/widgets/dialogs/confirm_dialog.dart';
import 'package:diplomaticquarterapp/widgets/dialogs/radio_selection_dialog.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
@@ -280,24 +280,6 @@ class _AddWeightPageState extends State {
return " ${timeWeightDate.hour}:${timeWeightDate.minute}";
}
- void confirmSelectMeasureTimeDialog(List list) {
- showDialog(
- context: context,
- child: RadioStringDialog(
- radioList: list,
- title: TranslationBase.of(context).measureUnit,
- selectedValue: measureTimeSelectedType,
- onValueSelected: (value) {
- setState(() {
- measureTimeSelectedType = value;
- weightUnit = list.indexOf(value);
- validateForm();
- });
- },
- ),
- );
- }
-
void validateForm() {
if (_weightValueController.text.length > 0 && measureTimeSelectedType != null) {
setState(() {
diff --git a/lib/pages/medical/my_trackers/blood_pressure/AddBloodPressurePage.dart b/lib/pages/medical/my_trackers/blood_pressure/AddBloodPressurePage.dart
index 77bb45b7..a4c0b943 100644
--- a/lib/pages/medical/my_trackers/blood_pressure/AddBloodPressurePage.dart
+++ b/lib/pages/medical/my_trackers/blood_pressure/AddBloodPressurePage.dart
@@ -6,10 +6,8 @@ import 'package:diplomaticquarterapp/uitl/app_toast.dart';
import 'package:diplomaticquarterapp/uitl/date_uitl.dart';
import 'package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
-import 'package:diplomaticquarterapp/widgets/buttons/button.dart';
import 'package:diplomaticquarterapp/widgets/buttons/defaultButton.dart';
import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
-import 'package:diplomaticquarterapp/widgets/dialogs/RadioStringDialog.dart';
import 'package:diplomaticquarterapp/widgets/dialogs/confirm_dialog.dart';
import 'package:diplomaticquarterapp/widgets/dialogs/radio_selection_dialog.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
@@ -119,9 +117,6 @@ class _AddBloodPressurePageState extends State {
},
),
);
- return;
-
- confirmSelectMeasureTimeDialog(projectViewModel.isArabic ? measureTimeArList : measureTimeEnList);
},
child: Container(
padding: EdgeInsets.all(12),
@@ -277,24 +272,6 @@ class _AddBloodPressurePageState extends State {
return " ${timeSugarDate.hour}:${timeSugarDate.minute}";
}
- void confirmSelectMeasureTimeDialog(List list) {
- showDialog(
- context: context,
- child: RadioStringDialog(
- radioList: list,
- title: TranslationBase.of(context).selectArm,
- selectedValue: measureTimeSelectedType,
- onValueSelected: (value) {
- setState(() {
- measureTimeSelectedType = value;
- measuredArm = list.indexOf(value);
- validateForm();
- });
- },
- ),
- );
- }
-
void validateForm() {
print("_bloodSystolicValueController " + _bloodSystolicValueController.text.length.toString());
if (_bloodSystolicValueController.text.length > 0 && _bloodDiastolicValueController.text.length > 0) {
diff --git a/lib/pages/medical/my_trackers/blood_suger/AddBloodSugarPage.dart b/lib/pages/medical/my_trackers/blood_suger/AddBloodSugarPage.dart
index 82375322..8e47e4e8 100644
--- a/lib/pages/medical/my_trackers/blood_suger/AddBloodSugarPage.dart
+++ b/lib/pages/medical/my_trackers/blood_suger/AddBloodSugarPage.dart
@@ -8,8 +8,8 @@ import 'package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/widgets/buttons/defaultButton.dart';
import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
-import 'package:diplomaticquarterapp/widgets/dialogs/RadioStringDialog.dart';
-import 'package:diplomaticquarterapp/widgets/dialogs/confirm_dialog.dart';
+import 'package:diplomaticquarterapp/widgets/dialogs/ConfirmWithMessageDialog.dart';
+import 'package:diplomaticquarterapp/widgets/dialogs/radio_selection_dialog.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
@@ -41,6 +41,8 @@ class _AddBloodSugarPageState extends State {
String measureUnitSelectedType = 'mg/dlt';
int measuredTime = 1;
bool isButtonDisabled = true;
+
+ int _selectedMeasureUnitIndex = 0;
final List measureUnitList = ['mg/dlt', 'mol/L'];
final List measureTimeEnList = [
'Before Breakfast',
@@ -66,6 +68,7 @@ class _AddBloodSugarPageState extends State {
"صائم",
"آخر",
];
+ int _selectedMeasureTimeIndex;
String measureTimeSelectedType;
@override
@@ -88,212 +91,198 @@ class _AddBloodSugarPageState extends State {
Widget build(BuildContext context) {
ProjectViewModel projectViewModel = Provider.of(context);
return AppScaffold(
- isShowAppBar: true,
- showNewAppBar: true,
- showNewAppBarTitle: true,
- appBarTitle: widget.isUpdate ? TranslationBase.of(context).update : TranslationBase.of(context).add,
- body: SingleChildScrollView(
- physics: BouncingScrollPhysics(),
- child: Container(
- margin: EdgeInsets.all(15),
- child: Column(
- children: [
- SizedBox(
- height: 15,
- ),
- NewTextFields(
- hintText: TranslationBase.of(context).sugarAdd,
- controller: _bloodSugarValueController,
- keyboardType: TextInputType.number,
- onChanged: (value) => validateForm(),
- fontWeight: FontWeight.normal,
- fontSize: 14,
- ),
- SizedBox(
- height: 8,
- ),
- InkWell(
- onTap: () {
- confirmSelectMeasureUnitDialog();
- },
- child: Container(
- padding: EdgeInsets.all(12),
- width: double.infinity,
- height: 65,
- decoration: BoxDecoration(borderRadius: BorderRadius.circular(12), color: Colors.white),
- child: Row(
- mainAxisAlignment: MainAxisAlignment.spaceBetween,
- children: [
- Texts(measureUnitSelectedType),
- Icon(
- Icons.arrow_drop_down,
- color: Colors.grey,
- )
- ],
+ isShowAppBar: true,
+ showNewAppBar: true,
+ showNewAppBarTitle: true,
+ appBarTitle: widget.isUpdate ? TranslationBase.of(context).update : TranslationBase.of(context).add,
+ body: Column(
+ children: [
+ Expanded(
+ child: SingleChildScrollView(
+ physics: BouncingScrollPhysics(),
+ padding: EdgeInsets.all(21),
+ child: Column(
+ children: [
+ NewTextFields(
+ hintText: TranslationBase.of(context).sugarAdd,
+ controller: _bloodSugarValueController,
+ keyboardType: TextInputType.number,
+ onChanged: (value) => validateForm(),
+ fontWeight: FontWeight.normal,
+ fontSize: 14,
+ ),
+ SizedBox(height: 12),
+ InkWell(
+ onTap: () {
+ confirmSelectMeasureUnitDialog();
+ },
+ child: Container(
+ padding: EdgeInsets.all(12),
+ width: double.infinity,
+ height: 65,
+ decoration: BoxDecoration(borderRadius: BorderRadius.circular(12), color: Colors.white),
+ child: Row(
+ mainAxisAlignment: MainAxisAlignment.spaceBetween,
+ children: [
+ Texts(measureUnitSelectedType),
+ Icon(
+ Icons.arrow_drop_down,
+ color: Colors.grey,
+ )
+ ],
+ ),
),
),
- ),
- SizedBox(
- height: 8,
- ),
- InkWell(
- onTap: () {
- DatePicker.showDatePicker(context, showTitleActions: true, minTime: DateTime(DateTime.now().year - 1, 1, 1), maxTime: DateTime.now(), onConfirm: (date) {
- setState(() {
- bloodSugarDate = date;
- });
- }, currentTime: bloodSugarDate, locale: projectViewModel.localeType);
- },
- child: Container(
- padding: EdgeInsets.all(12),
- width: double.infinity,
- height: 65,
- decoration: BoxDecoration(borderRadius: BorderRadius.circular(12), color: Colors.white),
- child: Row(
- mainAxisAlignment: MainAxisAlignment.spaceBetween,
- children: [
- Texts(TranslationBase.of(context).date),
- Texts(getDate()),
- ],
+ SizedBox(height: 12),
+ InkWell(
+ onTap: () {
+ DatePicker.showDatePicker(context, showTitleActions: true, minTime: DateTime(DateTime.now().year - 1, 1, 1), maxTime: DateTime.now(), onConfirm: (date) {
+ setState(() {
+ bloodSugarDate = date;
+ });
+ }, currentTime: bloodSugarDate, locale: projectViewModel.localeType);
+ },
+ child: Container(
+ padding: EdgeInsets.all(12),
+ width: double.infinity,
+ height: 65,
+ decoration: BoxDecoration(borderRadius: BorderRadius.circular(12), color: Colors.white),
+ child: Row(
+ mainAxisAlignment: MainAxisAlignment.spaceBetween,
+ children: [
+ Texts(TranslationBase.of(context).date),
+ Texts(getDate()),
+ ],
+ ),
),
),
- ),
- SizedBox(
- height: 8,
- ),
- InkWell(
- onTap: () {
- DatePicker.showTimePicker(context, showTitleActions: true, onConfirm: (date) {
- setState(() {
- timeSugarDate = date;
- });
- }, currentTime: timeSugarDate, locale: projectViewModel.localeType);
- },
- child: Container(
- padding: EdgeInsets.all(12),
- width: double.infinity,
- height: 65,
- decoration: BoxDecoration(borderRadius: BorderRadius.circular(12), color: Colors.white),
- child: Row(
- mainAxisAlignment: MainAxisAlignment.spaceBetween,
- children: [Texts(TranslationBase.of(context).time), Texts(getTime())],
+ SizedBox(height: 12),
+ InkWell(
+ onTap: () {
+ DatePicker.showTimePicker(context, showTitleActions: true, onConfirm: (date) {
+ setState(() {
+ timeSugarDate = date;
+ });
+ }, currentTime: timeSugarDate, locale: projectViewModel.localeType);
+ },
+ child: Container(
+ padding: EdgeInsets.all(12),
+ width: double.infinity,
+ height: 65,
+ decoration: BoxDecoration(borderRadius: BorderRadius.circular(12), color: Colors.white),
+ child: Row(
+ mainAxisAlignment: MainAxisAlignment.spaceBetween,
+ children: [Texts(TranslationBase.of(context).time), Texts(getTime())],
+ ),
),
),
- ),
- SizedBox(
- height: 8,
- ),
- InkWell(
- onTap: () {
- confirmSelectMeasureTimeDialog(projectViewModel.isArabic ? measureTimeArList : measureTimeEnList);
- },
- child: Container(
- padding: EdgeInsets.all(12),
- width: double.infinity,
- height: 65,
- decoration: BoxDecoration(borderRadius: BorderRadius.circular(12), color: Colors.white),
- child: Row(
- mainAxisAlignment: MainAxisAlignment.spaceBetween,
- children: [
- Texts(measureTimeSelectedType ?? TranslationBase.of(context).other),
- Icon(
- Icons.arrow_drop_down,
- color: Colors.grey,
- )
- ],
+ SizedBox(height: 12),
+ InkWell(
+ onTap: () {
+ confirmSelectMeasureTimeDialog(projectViewModel.isArabic ? measureTimeArList : measureTimeEnList);
+ },
+ child: Container(
+ padding: EdgeInsets.all(12),
+ width: double.infinity,
+ height: 65,
+ decoration: BoxDecoration(borderRadius: BorderRadius.circular(12), color: Colors.white),
+ child: Row(
+ mainAxisAlignment: MainAxisAlignment.spaceBetween,
+ children: [
+ Texts(measureTimeSelectedType ?? TranslationBase.of(context).other),
+ Icon(
+ Icons.arrow_drop_down,
+ color: Colors.grey,
+ )
+ ],
+ ),
),
),
- ),
- widget.isUpdate
- ? Container(
- padding: EdgeInsets.all(10),
- child: Row(
- mainAxisAlignment: MainAxisAlignment.end,
- children: [
- InkWell(
- child: Texts(
- TranslationBase.of(context).delete,
- decoration: TextDecoration.underline,
- fontWeight: FontWeight.bold,
- color: Colors.red[900],
- ),
- onTap: () {
- ConfirmDialog dialog = new ConfirmDialog(
+ widget.isUpdate
+ ? Container(
+ padding: EdgeInsets.all(10),
+ child: Row(
+ mainAxisAlignment: MainAxisAlignment.end,
+ children: [
+ InkWell(
+ child: Texts(
+ TranslationBase.of(context).delete,
+ decoration: TextDecoration.underline,
+ fontWeight: FontWeight.bold,
+ color: Colors.red[900],
+ ),
+ onTap: () {
+ showDialog(
context: context,
- confirmMessage: TranslationBase.of(context).removeMeasure,
- okText: TranslationBase.of(context).ok,
- cancelText: TranslationBase.of(context).cancel,
- okFunction: () async {
- ConfirmDialog.closeAlertDialog(context);
-
- GifLoaderDialogUtils.showMyDialog(context);
- widget.bloodSugarViewMode.deactivateDiabeticStatus(lineItemNo: widget.lineItemNo).then((value) {
- GifLoaderDialogUtils.hideDialog(context);
- if (widget.bloodSugarViewMode.state == ViewState.ErrorLocal)
+ child: ConfirmWithMessageDialog(
+ message: TranslationBase.of(context).removeMeasure,
+ onTap: () async {
+ GifLoaderDialogUtils.showMyDialog(context);
+ widget.bloodSugarViewMode.deactivateDiabeticStatus(lineItemNo: widget.lineItemNo).then((value) {
+ GifLoaderDialogUtils.hideDialog(context);
+ if (widget.bloodSugarViewMode.state == ViewState.ErrorLocal)
+ AppToast.showErrorToast(message: widget.bloodSugarViewMode.error);
+ else
+ Navigator.pop(context);
+ }).catchError((e) {
+ GifLoaderDialogUtils.hideDialog(context);
AppToast.showErrorToast(message: widget.bloodSugarViewMode.error);
- else
- Navigator.pop(context);
- }).catchError((e) {
- GifLoaderDialogUtils.hideDialog(context);
- AppToast.showErrorToast(message: widget.bloodSugarViewMode.error);
- });
- },
- cancelFunction: () => {});
- dialog.showAlertDialog(context);
- },
- )
- ],
- ))
- : Container()
- ],
+ });
+ },
+ ),
+ );
+ },
+ )
+ ],
+ ),
+ )
+ : Container()
+ ],
+ ),
),
),
- ),
- bottomSheet: Container(
- color: Theme.of(context).scaffoldBackgroundColor,
- child: Padding(
- padding: const EdgeInsets.all(20.0),
- child: DefaultButton(
- TranslationBase.of(context).save.toUpperCase(),
- isButtonDisabled
- ? null
- : () async {
- if (_bloodSugarValueController.text.isNotEmpty) {
- GifLoaderDialogUtils.showMyDialog(context);
- if (widget.isUpdate) {
- await widget.bloodSugarViewMode.updateDiabtecResult(
- month: bloodSugarDate,
- hour: timeSugarDate,
- diabtecUnit: measureUnitSelectedType,
- measuredTime: measuredTime,
- lineItemNo: widget.lineItemNo,
- bloodSugerResult: _bloodSugarValueController.text.toString());
-
- GifLoaderDialogUtils.hideDialog(context);
- if (widget.bloodSugarViewMode.state == ViewState.ErrorLocal)
- AppToast.showErrorToast(message: widget.bloodSugarViewMode.error);
- else
- Navigator.pop(context);
- } else {
- await widget.bloodSugarViewMode.addDiabtecResult(
+ DefaultButton(
+ TranslationBase.of(context).save,
+ isButtonDisabled
+ ? null
+ : () async {
+ if (_bloodSugarValueController.text.isNotEmpty) {
+ GifLoaderDialogUtils.showMyDialog(context);
+ if (widget.isUpdate) {
+ await widget.bloodSugarViewMode.updateDiabtecResult(
+ month: bloodSugarDate,
+ hour: timeSugarDate,
diabtecUnit: measureUnitSelectedType,
measuredTime: measuredTime,
- bloodSugerResult: _bloodSugarValueController.text.toString(),
- bloodSugerDateChart: '${bloodSugarDate.year}-${bloodSugarDate.month}-${bloodSugarDate.day} ${timeSugarDate.hour}:${timeSugarDate.minute}:00',
- );
+ lineItemNo: widget.lineItemNo,
+ bloodSugerResult: _bloodSugarValueController.text.toString());
- GifLoaderDialogUtils.hideDialog(context);
- if (widget.bloodSugarViewMode.state == ViewState.Error)
- AppToast.showErrorToast(message: widget.bloodSugarViewMode.error);
- else
- Navigator.pop(context);
- }
+ GifLoaderDialogUtils.hideDialog(context);
+ if (widget.bloodSugarViewMode.state == ViewState.ErrorLocal)
+ AppToast.showErrorToast(message: widget.bloodSugarViewMode.error);
+ else
+ Navigator.pop(context);
+ } else {
+ await widget.bloodSugarViewMode.addDiabtecResult(
+ diabtecUnit: measureUnitSelectedType,
+ measuredTime: measuredTime,
+ bloodSugerResult: _bloodSugarValueController.text.toString(),
+ bloodSugerDateChart: '${bloodSugarDate.year}-${bloodSugarDate.month}-${bloodSugarDate.day} ${timeSugarDate.hour}:${timeSugarDate.minute}:00',
+ );
+
+ GifLoaderDialogUtils.hideDialog(context);
+ if (widget.bloodSugarViewMode.state == ViewState.Error)
+ AppToast.showErrorToast(message: widget.bloodSugarViewMode.error);
+ else
+ Navigator.pop(context);
}
- },
- disabledColor: Colors.grey,
- ),
- ),
- ));
+ }
+ },
+ disabledColor: Colors.grey,
+ ).insideContainer,
+ ],
+ ),
+ );
}
String getDate() {
@@ -305,33 +294,41 @@ class _AddBloodSugarPageState extends State {
}
void confirmSelectMeasureUnitDialog() {
+ List list = [
+ RadioSelectionDialogModel("mg/dlt", 0),
+ RadioSelectionDialogModel("mol/L", 1),
+ ];
+
showDialog(
context: context,
- child: RadioStringDialog(
- radioList: measureUnitList,
- title: TranslationBase.of(context).measureUnit,
- selectedValue: measureUnitSelectedType,
- onValueSelected: (value) {
- setState(() {
- measureUnitSelectedType = value;
- });
+ child: RadioSelectionDialog(
+ listData: list,
+ selectedIndex: _selectedMeasureUnitIndex,
+ onValueSelected: (index) {
+ _selectedMeasureUnitIndex = index;
+ measureUnitSelectedType = list[index].title;
+ setState(() {});
},
),
);
}
- void confirmSelectMeasureTimeDialog(List list) {
+ void confirmSelectMeasureTimeDialog(List dataList) {
+ List list = [
+ for (int i = 0; i < dataList.length; i++) RadioSelectionDialogModel(dataList[i], i),
+ ];
+
showDialog(
context: context,
- child: RadioStringDialog(
- radioList: list,
- title: TranslationBase.of(context).measureTime,
- selectedValue: measureTimeSelectedType,
- onValueSelected: (value) {
- setState(() {
- measureTimeSelectedType = value;
- measuredTime = list.indexOf(value);
- });
+ child: RadioSelectionDialog(
+ listData: list,
+ selectedIndex: _selectedMeasureTimeIndex,
+ isScrollable: true,
+ onValueSelected: (index) {
+ _selectedMeasureTimeIndex = index;
+ measureTimeSelectedType = list[index].title;
+ measuredTime = index;
+ setState(() {});
},
),
);
diff --git a/lib/pages/medical/prescriptions/PrescriptionOrderOverveiw.dart b/lib/pages/medical/prescriptions/PrescriptionOrderOverveiw.dart
index d4dd6efe..986fb848 100644
--- a/lib/pages/medical/prescriptions/PrescriptionOrderOverveiw.dart
+++ b/lib/pages/medical/prescriptions/PrescriptionOrderOverveiw.dart
@@ -171,7 +171,7 @@ class PrescriptionOrderOverview extends StatelessWidget {
GifLoaderDialogUtils.showMyDialog(context);
await model
.insertDeliveryOrder(
- lineItemNo: 0,
+ lineItemNo: 1,
longitude: longitude,
latitude: latitude,
appointmentNo: prescriptions.appointmentNo,
diff --git a/lib/pages/medical/smart_watch_health_data/heartrate/heartrateTracker.dart b/lib/pages/medical/smart_watch_health_data/heartrate/heartrateTracker.dart
index da82d540..077ed4bf 100644
--- a/lib/pages/medical/smart_watch_health_data/heartrate/heartrateTracker.dart
+++ b/lib/pages/medical/smart_watch_health_data/heartrate/heartrateTracker.dart
@@ -107,7 +107,11 @@ class _HeartRateTrackerState extends State with SingleTickerPr
child: new TabBarView(
physics: NeverScrollableScrollPhysics(),
children: [
- isWeeklyDataLoaded ? getWeeklyHeartRateDetails() : Container(),
+ isWeeklyDataLoaded
+ ? avgWeeklyHearRateValue != 0
+ ? getWeeklyHeartRateDetails()
+ : getNoDataWidget(context)
+ : Container(),
isMonthlyDataLoaded ? getMonthlyHeartRateDetails() : Container(),
isYearlyDataLoaded ? getYearlyHeartRateDetails() : Container()
],
@@ -135,9 +139,11 @@ class _HeartRateTrackerState extends State with SingleTickerPr
weeklyDataLength++;
}
});
- generateWeekData();
+ if (weekyHearRateList.isNotEmpty) generateWeekData();
setState(() {
- weeklyStatsAvgValue = avgWeeklyHearRateValue ~/ weeklyDataLength;
+ if (avgWeeklyHearRateValue != 0) {
+ weeklyStatsAvgValue = avgWeeklyHearRateValue ~/ weeklyDataLength;
+ }
isWeeklyDataLoaded = true;
});
}).catchError((err) {
diff --git a/lib/pages/medical/smart_watch_health_data/smart_watch_instructions.dart b/lib/pages/medical/smart_watch_health_data/smart_watch_instructions.dart
index 4fc233db..17d9d8a8 100644
--- a/lib/pages/medical/smart_watch_health_data/smart_watch_instructions.dart
+++ b/lib/pages/medical/smart_watch_health_data/smart_watch_instructions.dart
@@ -9,7 +9,6 @@ import 'package:diplomaticquarterapp/services/smartwatch_integration/SmartWatchI
import 'package:diplomaticquarterapp/theme/colors.dart';
import 'package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
-import 'package:diplomaticquarterapp/uitl/utils_new.dart';
import 'package:diplomaticquarterapp/widgets/buttons/defaultButton.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
@@ -40,19 +39,31 @@ class _SmartWatchInstructionsState extends State {
@override
Widget build(BuildContext context) {
return AppScaffold(
- appBarTitle: TranslationBase.of(context).smartWatches,
- isShowAppBar: true,
- isShowDecPage: true,
- showNewAppBar: true,
- showNewAppBarTitle: true,
- description: TranslationBase.of(context).infoHealthData,
- imagesInfo: [
- ImagesInfo(imageEn: 'https://hmgwebservices.com/Images/MobileApp/imges-info/health-data/en/0.png', imageAr: 'https://hmgwebservices.com/Images/MobileApp/imges-info/health-data/ar/0.png'),
- ImagesInfo(imageEn: 'https://hmgwebservices.com/Images/MobileApp/imges-info/health-data/en/1.png', imageAr: 'https://hmgwebservices.com/Images/MobileApp/imges-info/health-data/ar/1.png')
- ],
- body: Container(
- child: Platform.isIOS ? _getAppleWatchInstructions() : _getGoogleWatchInstructions(),
- ));
+ appBarTitle: TranslationBase.of(context).smartWatches,
+ isShowAppBar: true,
+ isShowDecPage: true,
+ showNewAppBar: true,
+ showNewAppBarTitle: true,
+ description: TranslationBase.of(context).infoHealthData,
+ imagesInfo: [
+ ImagesInfo(imageEn: 'https://hmgwebservices.com/Images/MobileApp/imges-info/health-data/en/0.png', imageAr: 'https://hmgwebservices.com/Images/MobileApp/imges-info/health-data/ar/0.png'),
+ ImagesInfo(imageEn: 'https://hmgwebservices.com/Images/MobileApp/imges-info/health-data/en/1.png', imageAr: 'https://hmgwebservices.com/Images/MobileApp/imges-info/health-data/ar/1.png')
+ ],
+ body: Container(
+ child: Platform.isIOS ? _getAppleWatchInstructions() : _getGoogleWatchInstructions(),
+ ),
+ bottomSheet: Container(
+ color: Theme.of(context).scaffoldBackgroundColor,
+ padding: EdgeInsets.fromLTRB(15.0, 0.0, 15.0, 30.0),
+ child: DefaultButton(
+ TranslationBase.of(context).continues,
+ () {
+ _openHealthDataList();
+ },
+ color: Color(0xff359846),
+ ),
+ ),
+ );
}
_getAppleWatchInstructions() {
@@ -61,250 +72,200 @@ class _SmartWatchInstructionsState extends State {
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisSize: MainAxisSize.min,
children: [
- Flexible(
- child: CarouselSlider(
- carouselController: buttonCarouselController,
- options: CarouselOptions(enableInfiniteScroll: false, viewportFraction: 0.95, height: MediaQuery.of(context).size.height * 0.9),
- items: [1, 2].map((i) {
- return Builder(
- builder: (BuildContext context) {
- return Container(
- width: MediaQuery.of(context).size.width,
- margin: EdgeInsets.symmetric(horizontal: 5.0),
- child: Card(
- margin: EdgeInsets.fromLTRB(8.0, 16.0, 8.0, 8.0),
- color: Colors.white.withOpacity(1.0),
- shape: RoundedRectangleBorder(
- borderRadius: BorderRadius.circular(10),
+ Container(
+ width: double.infinity,
+ margin: EdgeInsets.only(left: 16, top: 16, right: 16, bottom: 8),
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: [
+ Container(
+ margin: EdgeInsets.only(top: 10.0, bottom: 10.0),
+ child: Text(TranslationBase.of(context).supportedWatches, style: TextStyle(fontSize: 22.0, fontWeight: FontWeight.w600)),
+ ),
+ Container(
+ child: Row(
+ children: [
+ Expanded(
+ child: Container(
+ margin: EdgeInsets.only(top: 10.0),
+ child: Row(
+ children: [
+ Image.asset("assets/images/SmartWatches/apple-watch-1.jpeg", width: 70.0, height: 70.0),
+ Padding(
+ padding: const EdgeInsets.only(left: 8.0, right: 8.0),
+ child: Container(
+ width: MediaQuery.of(context).size.width * 0.22,
+ child: Text("Apple Watch Series 1", overflow: TextOverflow.clip, style: TextStyle(fontSize: 12.0)),
+ ),
+ )
+ ],
),
- child: i == 1
- ? Column(
- crossAxisAlignment: CrossAxisAlignment.start,
- children: [
- Container(
- margin: EdgeInsets.only(top: 10.0, left: 15.0, right: 15.0),
- child: Text(TranslationBase.of(context).supportedWatches, style: TextStyle(fontSize: 22.0, fontWeight: FontWeight.bold)),
- ),
- Container(
- child: Row(
- children: [
- Expanded(
- child: Container(
- margin: EdgeInsets.only(top: 10.0),
- child: Row(
- children: [
- Image.asset("assets/images/SmartWatches/apple-watch-1.jpeg", width: 70.0, height: 70.0),
- Container(
- width: MediaQuery.of(context).size.width * 0.22,
- child: Text("Apple Watch Series 1", overflow: TextOverflow.clip, style: TextStyle(fontSize: 12.0)),
- )
- ],
- ),
- ),
- ),
- Expanded(
- child: Container(
- margin: EdgeInsets.only(top: 10.0),
- child: Row(
- children: [
- Image.asset("assets/images/SmartWatches/apple-watch-2.jpg", width: 70.0, height: 70.0),
- Container(
- width: MediaQuery.of(context).size.width * 0.22,
- child: Text("Apple Watch Series 2", overflow: TextOverflow.clip, style: TextStyle(fontSize: 12.0)),
- )
- ],
- ),
- ),
- ),
- ],
- ),
- ),
- Container(
- margin: EdgeInsets.only(top: 10.0),
- child: Row(
- children: [
- Expanded(
- child: Container(
- margin: EdgeInsets.only(top: 15.0),
- child: Row(
- children: [
- Image.asset("assets/images/SmartWatches/apple-watch-3.jpg", width: 70.0, height: 70.0),
- Container(
- width: MediaQuery.of(context).size.width * 0.22,
- child: Text("Apple Watch Series 3", overflow: TextOverflow.clip, style: TextStyle(fontSize: 12.0)),
- )
- ],
- ),
- ),
- ),
- Expanded(
- child: Container(
- margin: EdgeInsets.only(top: 15.0),
- child: Row(
- children: [
- Image.asset("assets/images/SmartWatches/apple-watch-4.jpg", width: 70.0, height: 70.0),
- Container(
- width: MediaQuery.of(context).size.width * 0.22,
- child: Text("Apple Watch Series 4", overflow: TextOverflow.clip, style: TextStyle(fontSize: 12.0)),
- )
- ],
- ),
- ),
- ),
- ],
- ),
- ),
- Container(
- margin: EdgeInsets.only(top: 10.0),
- child: Row(
- children: [
- Expanded(
- child: Container(
- margin: EdgeInsets.only(top: 15.0),
- child: Row(
- children: [
- Image.asset("assets/images/SmartWatches/apple-watch-5.jpg", width: 70.0, height: 70.0),
- Container(
- width: MediaQuery.of(context).size.width * 0.22,
- child: Text("Apple Watch Series 5", overflow: TextOverflow.clip, style: TextStyle(fontSize: 12.0)),
- )
- ],
- ),
- ),
- ),
- Expanded(
- child: Container(
- margin: EdgeInsets.only(top: 15.0),
- child: Row(
- children: [
- Image.asset("assets/images/SmartWatches/Apple-Watch-6.png", width: 70.0, height: 70.0),
- Container(
- width: MediaQuery.of(context).size.width * 0.22,
- child: Text("Apple Watch Series 6", overflow: TextOverflow.clip, style: TextStyle(fontSize: 12.0)),
- )
- ],
- ),
- ),
- ),
- ],
- ),
- ),
- Container(
- margin: EdgeInsets.only(top: 10.0),
- child: Row(
- children: [
- Expanded(
- child: Container(
- margin: EdgeInsets.only(top: 15.0),
- child: Row(
- children: [
- Image.asset("assets/images/SmartWatches/miBand3.jpg", width: 70.0, height: 70.0),
- Container(
- width: MediaQuery.of(context).size.width * 0.22,
- child: Text("Mi Band 3", overflow: TextOverflow.clip, style: TextStyle(fontSize: 12.0)),
- )
- ],
- ),
- ),
- ),
- Expanded(
- child: Container(
- margin: EdgeInsets.only(top: 15.0),
- child: Row(
- children: [
- Image.asset("assets/images/SmartWatches/miBand4.jpg", width: 70.0, height: 70.0),
- Container(
- width: MediaQuery.of(context).size.width * 0.22,
- child: Text("Mi Band 4", overflow: TextOverflow.clip, style: TextStyle(fontSize: 12.0)),
- )
- ],
- ),
- ),
- ),
- ],
- ),
- ),
- Container(
- margin: EdgeInsets.fromLTRB(10.0, 30.0, 10.0, 10.0),
- child: Text(TranslationBase.of(context).syncInstructionsIntro1, style: TextStyle(fontSize: 14.0, letterSpacing: -0.36)),
- ),
- Container(
- margin: EdgeInsets.all(10.0),
- child: Text(TranslationBase.of(context).syncInstructionsIntro2, style: TextStyle(fontSize: 14.0, letterSpacing: -0.36)),
- ),
- Container(
- margin: EdgeInsets.fromLTRB(15.0, 40.0, 15.0, 0.0),
- child: DefaultButton(
- TranslationBase.of(context).continues,
- () {
- buttonCarouselController.nextPage();
- },
- color: Color(0xff359846),
- ),
- ),
- ],
- )
- : Column(
- crossAxisAlignment: CrossAxisAlignment.start,
- children: [
- Container(
- margin: EdgeInsets.fromLTRB(10.0, 20.0, 10.0, 10.0),
- child: Text(TranslationBase.of(context).watchInstructions, style: TextStyle(fontSize: 22.0, fontWeight: FontWeight.bold)),
- ),
- Container(
- margin: EdgeInsets.fromLTRB(10.0, 20.0, 10.0, 10.0),
- child: Text(TranslationBase.of(context).syncInstructionsIntro1, style: TextStyle(fontSize: 14.0, letterSpacing: -0.36)),
- ),
- Container(
- margin: EdgeInsets.fromLTRB(10.0, 20.0, 10.0, 10.0),
- child: Text(TranslationBase.of(context).syncInstructionsIntro3, style: TextStyle(fontSize: 14.0, letterSpacing: -0.36)),
- ),
- Container(
- margin: EdgeInsets.fromLTRB(10.0, 20.0, 10.0, 10.0),
- child: Text(TranslationBase.of(context).iosInstructions1, style: TextStyle(fontSize: 14.0, letterSpacing: -0.36)),
- ),
- Container(
- margin: EdgeInsets.fromLTRB(10.0, 20.0, 10.0, 10.0),
- child: Text(TranslationBase.of(context).iosInstructions2, style: TextStyle(fontSize: 14.0, letterSpacing: -0.36)),
- ),
- Container(
- margin: EdgeInsets.fromLTRB(10.0, 20.0, 10.0, 10.0),
- child: Text(TranslationBase.of(context).iosInstructions3, style: TextStyle(fontSize: 14.0, letterSpacing: -0.36)),
- ),
- Padding(
- padding: const EdgeInsets.fromLTRB(12.0, 50.0, 12.0, 20.0),
- child: Row(
- children: [
- Expanded(
- child: DefaultButton(
- TranslationBase.of(context).syncHealthData,
- () {},
- color: Color(0xFFD02127),
- disabledColor: Color(0xff28323A).withOpacity(0.3),
- ),
- ),
- mWidth(12),
- if (hasAlreadySynced)
- Expanded(
- child: DefaultButton(
- TranslationBase.of(context).alreadySynced,
- () {
- _openHealthDataList();
- },
- color: Color(0xff359846),
- ),
- ),
- ],
- ),
- ),
- ],
+ ),
+ ),
+ Expanded(
+ child: Container(
+ margin: EdgeInsets.only(top: 10.0),
+ child: Row(
+ children: [
+ Image.asset("assets/images/SmartWatches/apple-watch-2.jpg", width: 70.0, height: 70.0),
+ Padding(
+ padding: const EdgeInsets.only(left: 8.0, right: 8.0),
+ child: Container(
+ width: MediaQuery.of(context).size.width * 0.22,
+ child: Text("Apple Watch Series 2", overflow: TextOverflow.clip, style: TextStyle(fontSize: 12.0)),
+ ),
+ )
+ ],
+ ),
+ ),
+ ),
+ ],
+ ),
+ ),
+ Container(
+ margin: EdgeInsets.only(top: 10.0),
+ child: Row(
+ children: [
+ Expanded(
+ child: Container(
+ margin: EdgeInsets.only(top: 15.0),
+ child: Row(
+ children: [
+ Image.asset("assets/images/SmartWatches/apple-watch-3.jpg", width: 70.0, height: 70.0),
+ Padding(
+ padding: const EdgeInsets.only(left: 8.0, right: 8.0),
+ child: Container(
+ width: MediaQuery.of(context).size.width * 0.22,
+ child: Text("Apple Watch Series 3", overflow: TextOverflow.clip, style: TextStyle(fontSize: 12.0)),
+ ),
+ )
+ ],
+ ),
+ ),
+ ),
+ Expanded(
+ child: Container(
+ margin: EdgeInsets.only(top: 15.0),
+ child: Row(
+ children: [
+ Image.asset("assets/images/SmartWatches/apple-watch-4.jpg", width: 70.0, height: 70.0),
+ Padding(
+ padding: const EdgeInsets.only(left: 8.0, right: 8.0),
+ child: Container(
+ width: MediaQuery.of(context).size.width * 0.22,
+ child: Text("Apple Watch Series 4", overflow: TextOverflow.clip, style: TextStyle(fontSize: 12.0)),
+ ),
+ )
+ ],
+ ),
+ ),
+ ),
+ ],
+ ),
+ ),
+ Container(
+ margin: EdgeInsets.only(top: 10.0),
+ child: Row(
+ children: [
+ Expanded(
+ child: Container(
+ margin: EdgeInsets.only(top: 15.0),
+ child: Row(
+ children: [
+ Image.asset("assets/images/SmartWatches/apple-watch-5.jpg", width: 70.0, height: 70.0),
+ Padding(
+ padding: const EdgeInsets.only(left: 8.0, right: 8.0),
+ child: Container(
+ width: MediaQuery.of(context).size.width * 0.22,
+ child: Text("Apple Watch Series 5", overflow: TextOverflow.clip, style: TextStyle(fontSize: 12.0)),
+ ),
+ )
+ ],
+ ),
+ ),
+ ),
+ Expanded(
+ child: Container(
+ margin: EdgeInsets.only(top: 15.0),
+ child: Row(
+ children: [
+ Image.asset("assets/images/SmartWatches/Apple-Watch-6.png", width: 70.0, height: 70.0),
+ Padding(
+ padding: const EdgeInsets.only(left: 8.0, right: 8.0),
+ child: Container(
+ width: MediaQuery.of(context).size.width * 0.22,
+ child: Text("Apple Watch Series 6", overflow: TextOverflow.clip, style: TextStyle(fontSize: 12.0)),
+ ),
+ )
+ ],
+ ),
+ ),
+ ),
+ ],
+ ),
+ ),
+ Container(
+ margin: EdgeInsets.only(top: 10.0),
+ child: Row(
+ children: [
+ Expanded(
+ child: Container(
+ margin: EdgeInsets.only(top: 15.0),
+ child: Row(
+ children: [
+ Image.asset("assets/images/SmartWatches/miBand3.jpg", width: 70.0, height: 70.0),
+ Padding(
+ padding: const EdgeInsets.only(left: 8.0, right: 8.0),
+ child: Container(
+ width: MediaQuery.of(context).size.width * 0.22,
+ child: Text("Mi Band 3", overflow: TextOverflow.clip, style: TextStyle(fontSize: 12.0)),
+ ),
+ )
+ ],
+ ),
+ ),
+ ),
+ Expanded(
+ child: Container(
+ margin: EdgeInsets.only(top: 15.0),
+ child: Row(
+ children: [
+ Image.asset("assets/images/SmartWatches/miBand4.jpg", width: 70.0, height: 70.0),
+ Padding(
+ padding: const EdgeInsets.only(left: 8.0, right: 8.0),
+ child: Container(
+ width: MediaQuery.of(context).size.width * 0.22,
+ child: Text("Mi Band 4", overflow: TextOverflow.clip, style: TextStyle(fontSize: 12.0)),
),
- ));
+ )
+ ],
+ ),
+ ),
+ ),
+ ],
+ ),
+ ),
+ Container(
+ margin: EdgeInsets.fromLTRB(10.0, 30.0, 10.0, 10.0),
+ child: Text(TranslationBase.of(context).syncInstructionsIntro1, style: TextStyle(fontSize: 14.0, letterSpacing: -0.36)),
+ ),
+ Container(
+ margin: EdgeInsets.all(10.0),
+ child: Text(TranslationBase.of(context).syncInstructionsIntro2, style: TextStyle(fontSize: 14.0, letterSpacing: -0.36)),
+ ),
+ InkWell(
+ onTap: () {
+ showInstructionsDialog();
},
- );
- }).toList(),
+ child: Padding(
+ padding: const EdgeInsets.only(left: 10.0, right: 10.0),
+ child: Text(TranslationBase.of(context).watchInstructions,
+ style: TextStyle(color: CustomColors.accentColor, fontWeight: FontWeight.w600, letterSpacing: -0.64, decoration: TextDecoration.underline)),
+ ),
+ ),
+ ],
),
- )
+ ),
],
),
);
@@ -312,204 +273,245 @@ class _SmartWatchInstructionsState extends State {
_getGoogleWatchInstructions() {
return SingleChildScrollView(
- child: Column(
- crossAxisAlignment: CrossAxisAlignment.start,
- children: [
- Container(
- margin: EdgeInsets.only(top: 10.0),
- child: CarouselSlider(
- carouselController: buttonCarouselController,
- options: CarouselOptions(
- // enableInfiniteScroll: true,
- viewportFraction: 0.99,
- height: MediaQuery.of(context).size.height * 0.9),
- items: [1, 2].map((i) {
- return Builder(
- builder: (BuildContext context) {
- return Container(
- width: MediaQuery.of(context).size.width,
- margin: EdgeInsets.symmetric(horizontal: 5.0),
- child: Card(
- margin: EdgeInsets.only(top: 16.0, bottom: 8.0),
- // fromLTRB(8.0, 16.0, 8.0, 8.0),
- color: Colors.white.withOpacity(1.0),
- shape: RoundedRectangleBorder(
- borderRadius: BorderRadius.circular(10),
+ child: Container(
+ width: double.infinity,
+ margin: EdgeInsets.only(left: 16, top: 16, right: 16, bottom: 8),
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: [
+ Container(
+ child: Text(TranslationBase.of(context).supportedWatches, style: TextStyle(fontSize: 22.0, fontWeight: FontWeight.w600)),
+ ),
+ Container(
+ child: Row(
+ children: [
+ Expanded(
+ child: Container(
+ margin: EdgeInsets.only(top: 10.0),
+ child: Row(
+ children: [
+ Image.asset("assets/images/SmartWatches/huawei-watch-2.png", width: 70.0, height: 70.0),
+ Container(
+ width: MediaQuery.of(context).size.width * 0.22,
+ child: Text("Huawei Watch 2", overflow: TextOverflow.clip, style: TextStyle(fontSize: 12.0)),
+ )
+ ],
+ ),
+ ),
+ ),
+ Expanded(
+ child: Container(
+ margin: EdgeInsets.only(top: 10.0),
+ child: Row(
+ children: [
+ Image.asset("assets/images/SmartWatches/ticwatche2.png", width: 70.0, height: 70.0),
+ Container(
+ width: MediaQuery.of(context).size.width * 0.22,
+ child: Text("Mobovi TicWatch E2", overflow: TextOverflow.clip, style: TextStyle(fontSize: 12.0)),
+ )
+ ],
+ ),
+ ),
+ ),
+ ],
+ ),
+ ),
+ Container(
+ margin: EdgeInsets.only(top: 10.0),
+ child: Row(
+ children: [
+ Expanded(
+ child: Container(
+ margin: EdgeInsets.only(top: 15.0),
+ child: Row(
+ children: [
+ Image.asset("assets/images/SmartWatches/huawei-watch-2-classic.png", width: 70.0, height: 70.0),
+ Container(
+ width: MediaQuery.of(context).size.width * 0.22,
+ child: Text("Huawei Watch", overflow: TextOverflow.clip, style: TextStyle(fontSize: 12.0)),
+ )
+ ],
+ ),
+ ),
+ ),
+ Expanded(
+ child: Container(
+ margin: EdgeInsets.only(top: 15.0),
+ child: Row(
+ children: [
+ Image.asset("assets/images/SmartWatches/ticwatche2.png", width: 70.0, height: 70.0),
+ Container(
+ width: MediaQuery.of(context).size.width * 0.22,
+ child: Text("Fossil Sport", overflow: TextOverflow.clip, style: TextStyle(fontSize: 12.0)),
+ )
+ ],
+ ),
+ ),
+ ),
+ ],
+ ),
+ ),
+ Container(
+ margin: EdgeInsets.only(top: 10.0),
+ child: Row(
+ children: [
+ Expanded(
+ child: Container(
+ margin: EdgeInsets.only(top: 15.0),
+ child: Row(
+ children: [
+ Image.asset("assets/images/SmartWatches/misfit-vapor-2.jpg", width: 70.0, height: 70.0),
+ Container(
+ width: MediaQuery.of(context).size.width * 0.22,
+ child: Text("MisFit Vapor 2", overflow: TextOverflow.clip, style: TextStyle(fontSize: 12.0)),
+ )
+ ],
+ ),
+ ),
+ ),
+ Expanded(
+ child: Container(
+ margin: EdgeInsets.only(top: 15.0),
+ child: Row(
+ children: [
+ Image.asset("assets/images/SmartWatches/lg-watch-sport.jpg", width: 70.0, height: 70.0),
+ Container(
+ width: MediaQuery.of(context).size.width * 0.22,
+ child: Text("LG Watch Sport", overflow: TextOverflow.clip, style: TextStyle(fontSize: 12.0)),
+ )
+ ],
+ ),
+ ),
+ ),
+ ],
+ ),
+ ),
+ Container(
+ margin: EdgeInsets.only(top: 10.0),
+ child: Row(
+ children: [
+ Expanded(
+ child: Container(
+ margin: EdgeInsets.only(top: 15.0),
+ child: Row(
+ children: [
+ Image.asset("assets/images/SmartWatches/miBand3.jpg", width: 70.0, height: 70.0),
+ Container(
+ width: MediaQuery.of(context).size.width * 0.22,
+ child: Text("Mi Band 3", overflow: TextOverflow.clip, style: TextStyle(fontSize: 12.0)),
+ )
+ ],
+ ),
+ ),
+ ),
+ Expanded(
+ child: Container(
+ margin: EdgeInsets.only(top: 15.0),
+ child: Row(
+ children: [
+ Image.asset("assets/images/SmartWatches/miBand4.jpg", width: 70.0, height: 70.0),
+ Container(
+ width: MediaQuery.of(context).size.width * 0.22,
+ child: Text("Mi Band 4", overflow: TextOverflow.clip, style: TextStyle(fontSize: 12.0)),
+ )
+ ],
+ ),
+ ),
+ ),
+ ],
+ ),
+ ),
+ InkWell(
+ onTap: () {
+ launch("https://wearos.google.com/#find-your-watch");
+ },
+ child: Container(
+ margin: EdgeInsets.only(top: 20.0),
+ child: Text(TranslationBase.of(context).moreSupportedWatches, style: TextStyle(fontSize: 14.0, color: Colors.blue, decoration: TextDecoration.underline, letterSpacing: -0.36)),
+ ),
+ ),
+ Container(
+ margin: EdgeInsets.only(top: 10.0, bottom: 10.0),
+ child: Text(TranslationBase.of(context).syncInstructionsIntro1, style: TextStyle(fontSize: 14.0, letterSpacing: -0.36)),
+ ),
+ Container(
+ margin: EdgeInsets.only(top: 10.0, bottom: 10.0),
+ child: Text(TranslationBase.of(context).syncInstructionsIntro2, style: TextStyle(fontSize: 14.0, letterSpacing: -0.36)),
+ ),
+ InkWell(
+ onTap: () {
+ showInstructionsDialog();
+ },
+ child: Padding(
+ padding: const EdgeInsets.only(top: 10.0, bottom: 10.0),
+ child: Text(TranslationBase.of(context).watchInstructions,
+ style: TextStyle(color: CustomColors.accentColor, fontWeight: FontWeight.w600, letterSpacing: -0.64, decoration: TextDecoration.underline)),
+ ),
+ ),
+ ],
+ ),
+ ),
+ );
+ }
+
+ showInstructionsDialog() {
+ showGeneralDialog(
+ barrierColor: Colors.black.withOpacity(0.5),
+ transitionBuilder: (context, a1, a2, widget) {
+ final curvedValue = Curves.easeInOutBack.transform(a1.value) - 1.0;
+ return Transform(
+ transform: Matrix4.translationValues(0.0, curvedValue * 200, 0.0),
+ child: Opacity(
+ opacity: a1.value,
+ child: Dialog(
+ child: Column(
+ mainAxisSize: MainAxisSize.min,
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: [
+ Container(
+ width: 350.0,
+ color: Colors.white,
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: [
+ Container(
+ width: MediaQuery.of(context).size.width,
+ padding: EdgeInsets.all(20.0),
+ child: Row(
+ mainAxisAlignment: MainAxisAlignment.spaceBetween,
+ children: [
+ Text(TranslationBase.of(context).smartWatches, style: TextStyle(fontSize: 22.0, color: Colors.black, fontWeight: FontWeight.w600, letterSpacing: -0.64)),
+ IconButton(
+ icon: Icon(
+ Icons.close,
+ color: Colors.black,
+ ),
+ onPressed: () {
+ Navigator.pop(context);
+ },
+ ),
+ ],
+ ),
),
- child: i == 1
+ Container(
+ margin: EdgeInsets.fromLTRB(20.0, 0.0, 20.0, 10.0),
+ child: Text(TranslationBase.of(context).syncInstructionsIntro3, style: TextStyle(fontSize: 14.0, letterSpacing: -0.36)),
+ ),
+ Platform.isIOS
? Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Container(
- margin: EdgeInsets.only(top: 10.0, left: 15.0, right: 15.0),
- child: Text(TranslationBase.of(context).supportedWatches, style: TextStyle(fontSize: 22.0, fontWeight: FontWeight.bold)),
- ),
- Container(
- child: Row(
- children: [
- Expanded(
- child: Container(
- margin: EdgeInsets.only(top: 10.0),
- child: Row(
- children: [
- Image.asset("assets/images/SmartWatches/huawei-watch-2.png", width: 70.0, height: 70.0),
- Container(
- width: MediaQuery.of(context).size.width * 0.22,
- child: Text("Huawei Watch 2", overflow: TextOverflow.clip, style: TextStyle(fontSize: 12.0)),
- )
- ],
- ),
- ),
- ),
- Expanded(
- child: Container(
- margin: EdgeInsets.only(top: 10.0),
- child: Row(
- children: [
- Image.asset("assets/images/SmartWatches/ticwatche2.png", width: 70.0, height: 70.0),
- Container(
- width: MediaQuery.of(context).size.width * 0.22,
- child: Text("Mobovi TicWatch E2", overflow: TextOverflow.clip, style: TextStyle(fontSize: 12.0)),
- )
- ],
- ),
- ),
- ),
- ],
- ),
- ),
- Container(
- margin: EdgeInsets.only(top: 10.0),
- child: Row(
- children: [
- Expanded(
- child: Container(
- margin: EdgeInsets.only(top: 15.0),
- child: Row(
- children: [
- Image.asset("assets/images/SmartWatches/huawei-watch-2-classic.png", width: 70.0, height: 70.0),
- Container(
- width: MediaQuery.of(context).size.width * 0.22,
- child: Text("Huawei Watch", overflow: TextOverflow.clip, style: TextStyle(fontSize: 12.0)),
- )
- ],
- ),
- ),
- ),
- Expanded(
- child: Container(
- margin: EdgeInsets.only(top: 15.0),
- child: Row(
- children: [
- Image.asset("assets/images/SmartWatches/ticwatche2.png", width: 70.0, height: 70.0),
- Container(
- width: MediaQuery.of(context).size.width * 0.22,
- child: Text("Fossil Sport", overflow: TextOverflow.clip, style: TextStyle(fontSize: 12.0)),
- )
- ],
- ),
- ),
- ),
- ],
- ),
- ),
- Container(
- margin: EdgeInsets.only(top: 10.0),
- child: Row(
- children: [
- Expanded(
- child: Container(
- margin: EdgeInsets.only(top: 15.0),
- child: Row(
- children: [
- Image.asset("assets/images/SmartWatches/misfit-vapor-2.jpg", width: 70.0, height: 70.0),
- Container(
- width: MediaQuery.of(context).size.width * 0.22,
- child: Text("MisFit Vapor 2", overflow: TextOverflow.clip, style: TextStyle(fontSize: 12.0)),
- )
- ],
- ),
- ),
- ),
- Expanded(
- child: Container(
- margin: EdgeInsets.only(top: 15.0),
- child: Row(
- children: [
- Image.asset("assets/images/SmartWatches/lg-watch-sport.jpg", width: 70.0, height: 70.0),
- Container(
- width: MediaQuery.of(context).size.width * 0.22,
- child: Text("LG Watch Sport", overflow: TextOverflow.clip, style: TextStyle(fontSize: 12.0)),
- )
- ],
- ),
- ),
- ),
- ],
- ),
- ),
- Container(
- margin: EdgeInsets.only(top: 10.0),
- child: Row(
- children: [
- Expanded(
- child: Container(
- margin: EdgeInsets.only(top: 15.0),
- child: Row(
- children: [
- Image.asset("assets/images/SmartWatches/miBand3.jpg", width: 70.0, height: 70.0),
- Container(
- width: MediaQuery.of(context).size.width * 0.22,
- child: Text("Mi Band 3", overflow: TextOverflow.clip, style: TextStyle(fontSize: 12.0)),
- )
- ],
- ),
- ),
- ),
- Expanded(
- child: Container(
- margin: EdgeInsets.only(top: 15.0),
- child: Row(
- children: [
- Image.asset("assets/images/SmartWatches/miBand4.jpg", width: 70.0, height: 70.0),
- Container(
- width: MediaQuery.of(context).size.width * 0.22,
- child: Text("Mi Band 4", overflow: TextOverflow.clip, style: TextStyle(fontSize: 12.0)),
- )
- ],
- ),
- ),
- ),
- ],
- ),
- ),
- InkWell(
- onTap: () {
- launch("https://wearos.google.com/#find-your-watch");
- },
- child: Container(
- margin: EdgeInsets.only(top: 20.0, left: 15.0, right: 15.0),
- child: Text(TranslationBase.of(context).moreSupportedWatches,
- textAlign: TextAlign.center, style: TextStyle(fontSize: 14.0, color: Colors.blue, decoration: TextDecoration.underline, letterSpacing: -0.36)),
- ),
- ),
- Container(
- margin: EdgeInsets.all(10.0),
- child: Text(TranslationBase.of(context).syncInstructionsIntro1, style: TextStyle(fontSize: 14.0, letterSpacing: -0.36)),
+ margin: EdgeInsets.fromLTRB(20.0, 20.0, 20.0, 10.0),
+ child: Text(TranslationBase.of(context).iosInstructions1, style: TextStyle(fontSize: 14.0, letterSpacing: -0.36)),
),
Container(
- margin: EdgeInsets.all(10.0),
- child: Text(TranslationBase.of(context).syncInstructionsIntro2, style: TextStyle(fontSize: 14.0, letterSpacing: -0.36)),
+ margin: EdgeInsets.fromLTRB(20.0, 20.0, 20.0, 10.0),
+ child: Text(TranslationBase.of(context).iosInstructions2, style: TextStyle(fontSize: 14.0, letterSpacing: -0.36)),
),
Container(
- margin: EdgeInsets.all(15.0),
- child: DefaultButton(
- TranslationBase.of(context).continues,
- () {
- buttonCarouselController.nextPage();
- },
- color: CustomColors.green,
- ),
+ margin: EdgeInsets.fromLTRB(20.0, 20.0, 20.0, 21.0),
+ child: Text(TranslationBase.of(context).iosInstructions3, style: TextStyle(fontSize: 14.0, letterSpacing: -0.36)),
),
],
)
@@ -517,114 +519,37 @@ class _SmartWatchInstructionsState extends State {
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Container(
- margin: EdgeInsets.only(top: 10.0, left: 15.0, right: 15.0),
- child: Text(TranslationBase.of(context).watchInstructions, style: TextStyle(fontSize: 22.0, fontWeight: FontWeight.bold)),
- ),
- Container(
- margin: EdgeInsets.all(10.0),
- child: Text(TranslationBase.of(context).syncInstructionsIntro1, style: TextStyle(fontSize: 14.0, letterSpacing: -0.34)),
+ margin: EdgeInsets.fromLTRB(20.0, 20.0, 20.0, 10.0),
+ child: Text(TranslationBase.of(context).androidInstructions1, style: TextStyle(fontSize: 14.0, letterSpacing: -0.36)),
),
Container(
- margin: EdgeInsets.all(10.0),
- child: Text(TranslationBase.of(context).syncInstructionsIntro3, style: TextStyle(fontSize: 14.0, letterSpacing: -0.34)),
+ margin: EdgeInsets.fromLTRB(20.0, 20.0, 20.0, 10.0),
+ child: Text(TranslationBase.of(context).androidInstructions2, style: TextStyle(fontSize: 14.0, letterSpacing: -0.36)),
),
Container(
- margin: EdgeInsets.all(10.0),
- child: Text(TranslationBase.of(context).androidInstructions1, style: TextStyle(fontSize: 14.0, letterSpacing: -0.34)),
+ margin: EdgeInsets.fromLTRB(20.0, 20.0, 20.0, 10.0),
+ child: Text(TranslationBase.of(context).androidInstructions3, style: TextStyle(fontSize: 14.0, letterSpacing: -0.36)),
),
Container(
- margin: EdgeInsets.all(10.0),
- child: Text(TranslationBase.of(context).androidInstructions2, style: TextStyle(fontSize: 14.0, letterSpacing: -0.34)),
+ margin: EdgeInsets.fromLTRB(20.0, 20.0, 20.0, 10.0),
+ child: Text(TranslationBase.of(context).androidInstructions4, style: TextStyle(fontSize: 14.0, letterSpacing: -0.36)),
),
- Container(
- margin: EdgeInsets.all(10.0),
- child: Text(TranslationBase.of(context).androidInstructions3, style: TextStyle(fontSize: 14.0, letterSpacing: -0.34)),
- ),
- Container(
- margin: EdgeInsets.all(10.0),
- child: Text(TranslationBase.of(context).androidInstructions4, style: TextStyle(fontSize: 14.0, letterSpacing: -0.34)),
- ),
- Padding(
- padding: const EdgeInsets.fromLTRB(12.0, 50.0, 12.0, 20.0),
- child: Row(
- children: [
- Expanded(
- child: DefaultButton(
- TranslationBase.of(context).syncHealthData,
- () {},
- color: Color(0xFFD02127),
- disabledColor: Color(0xff28323A).withOpacity(0.3),
- ),
- ),
- mWidth(12),
- if (hasAlreadySynced)
- Expanded(
- child: DefaultButton(
- TranslationBase.of(context).alreadySynced,
- () {
- _openHealthDataList();
- },
- color: Color(0xff359846),
- ),
- ),
- ],
- ),
- ),
- // Container(
- // margin: EdgeInsets.fromLTRB(15.0, 75.0, 15.0, 15.0),
- // child: ButtonTheme(
- // shape: RoundedRectangleBorder(
- // borderRadius: BorderRadius.circular(10.0),
- // ),
- // minWidth: MediaQuery.of(context).size.width,
- // height: 45.0,
- // child: RaisedButton(
- // color: new Color(0xFF60686b),
- // textColor: Colors.white,
- // elevation: 0,
- // disabledTextColor: Colors.white,
- // disabledColor: new Color(0xFFbcc2c4),
- // onPressed: () {
- // buttonCarouselController.nextPage();
- // },
- // child: Text("SYNC HEALTH DATA", style: TextStyle(fontSize: 18.0)),
- // ),
- // ),
- // ),
- // hasAlreadySynced
- // ? Container(
- // margin: EdgeInsets.fromLTRB(15.0, 0.0, 15.0, 15.0),
- // child: ButtonTheme(
- // shape: RoundedRectangleBorder(
- // borderRadius: BorderRadius.circular(10.0),
- // ),
- // minWidth: MediaQuery.of(context).size.width,
- // height: 45.0,
- // child: RaisedButton(
- // color: new Color(0xFF60686b),
- // textColor: Colors.white,
- // elevation: 0,
- // disabledTextColor: Colors.white,
- // disabledColor: new Color(0xFFbcc2c4),
- // onPressed: () {
- // _openHealthDataList();
- // },
- // child: Text("ALREADY SYNCED", style: TextStyle(fontSize: 18.0)),
- // ),
- // ),
- // )
- // : Container(),
],
),
- ));
- },
- );
- }).toList(),
+ ],
+ ),
+ ),
+ ],
+ ),
+ ),
),
- )
- ],
- ),
- );
+ );
+ },
+ transitionDuration: Duration(milliseconds: 500),
+ barrierDismissible: true,
+ barrierLabel: '',
+ context: context,
+ pageBuilder: (context, animation1, animation2) {});
}
getLastPatientRecord(BuildContext context) {
diff --git a/lib/pages/pharmacies/product_detail.dart b/lib/pages/pharmacies/product_detail.dart
deleted file mode 100644
index e69de29b..00000000
diff --git a/lib/pages/pharmacies/screens/pharmacy_module_page.dart b/lib/pages/pharmacies/screens/pharmacy_module_page.dart
index 454b391c..c805144c 100644
--- a/lib/pages/pharmacies/screens/pharmacy_module_page.dart
+++ b/lib/pages/pharmacies/screens/pharmacy_module_page.dart
@@ -50,10 +50,8 @@ class _PharmacyPageState extends State {
width: double.infinity,
child: SingleChildScrollView(
child: Column(
- //crossAxisAlignment: CrossAxisAlignment.start,
children: [
BannerPager(model),
- GridViewButtons(model),
PrescriptionsWidget(),
ShopByBrandWidget(),
RecentlyViewedWidget(),
diff --git a/lib/pages/pharmacies/screens/product-details/shared/product_details_app_bar.dart b/lib/pages/pharmacies/screens/product-details/shared/product_details_app_bar.dart
index a9e2a66c..3d9ad51b 100644
--- a/lib/pages/pharmacies/screens/product-details/shared/product_details_app_bar.dart
+++ b/lib/pages/pharmacies/screens/product-details/shared/product_details_app_bar.dart
@@ -31,6 +31,7 @@ class ProductAppBar extends StatelessWidget with PreferredSizeWidget {
@override
Widget build(BuildContext context) {
+ OrderPreviewViewModel orderPreviewViewModel = Provider.of(context);
return Container(
color: Colors.white,
child: FractionallySizedBox(
@@ -81,7 +82,7 @@ class ProductAppBar extends StatelessWidget with PreferredSizeWidget {
height: 18,
child: Center(
child: Texts(
- Provider.of(context, listen: false).cartResponse.quantityCount.toString(),
+ orderPreviewViewModel.cartResponse.quantityCount.toString(),
style: "caption",
medium: true,
color: Colors.white,
diff --git a/lib/pages/pharmacies/widgets/ProductTileItem.dart b/lib/pages/pharmacies/widgets/ProductTileItem.dart
index 92ad8d1a..b2cd614b 100644
--- a/lib/pages/pharmacies/widgets/ProductTileItem.dart
+++ b/lib/pages/pharmacies/widgets/ProductTileItem.dart
@@ -2,8 +2,6 @@ import 'package:diplomaticquarterapp/config/shared_pref_kay.dart';
import 'package:diplomaticquarterapp/core/model/pharmacies/PharmacyProduct.dart';
import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
import 'package:diplomaticquarterapp/pages/pharmacies/screens/product-details/product-detail.dart';
-import 'package:diplomaticquarterapp/pages/pharmacies/screens/phramacy-product-detail-page.dart';
-import 'package:diplomaticquarterapp/pages/pharmacies/product_detail.dart';
import 'package:diplomaticquarterapp/uitl/app_shared_preferences.dart';
import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
import 'package:diplomaticquarterapp/widgets/others/StarRating.dart';
diff --git a/lib/pages/pharmacies/widgets/home/BannerPager.dart b/lib/pages/pharmacies/widgets/home/BannerPager.dart
index 6f1155dd..6302f263 100644
--- a/lib/pages/pharmacies/widgets/home/BannerPager.dart
+++ b/lib/pages/pharmacies/widgets/home/BannerPager.dart
@@ -1,10 +1,15 @@
import 'package:cached_network_image/cached_network_image.dart';
import 'package:carousel_slider/carousel_slider.dart';
import 'package:diplomaticquarterapp/core/viewModels/pharmacyModule/pharmacy_module_view_model.dart';
+import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
+import 'package:diplomaticquarterapp/pages/landing/home_page.dart';
import 'package:diplomaticquarterapp/pages/offers_categorise_page.dart';
+import 'package:diplomaticquarterapp/pages/pharmacies/widgets/home/GridViewCard.dart';
+import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/uitl/utils.dart';
import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
import 'package:flutter/material.dart';
+import 'package:provider/provider.dart';
class BannerPager extends StatefulWidget {
final PharmacyModuleViewModel _model;
@@ -20,14 +25,16 @@ class _BannerPagerState extends State {
@override
Widget build(BuildContext context) {
+ ProjectViewModel projectViewModel = Provider.of(context);
return Container(
child: Column(
children: [
CarouselSlider(
options: CarouselOptions(
- aspectRatio: 7 / 2,
+ aspectRatio: 5 / 2,
enlargeCenterPage: true,
enableInfiniteScroll: false,
+ viewportFraction: 1.0,
initialPage: 0,
autoPlay: true,
autoPlayInterval: Duration(seconds: 3),
@@ -39,53 +46,44 @@ class _BannerPagerState extends State {
});
},
),
- items: widget._model
- .getBannerImagesUrl()
- .mapIndexed(
- (item, index) => InkWell(
- onTap: () {
- Navigator.push(
- context, FadePage(page: OffersCategorisePage()));
- },
- child: Container(
- margin: EdgeInsets.symmetric(horizontal: 1.0),
- child: ClipRRect(
- borderRadius: BorderRadius.all(Radius.circular(5.0)),
- child: Center(
- child: index == 0
- ? Image.asset(
- item,
- fit: BoxFit.cover,
- )
- : CachedNetworkImage(
- imageUrl: item,
- fit: BoxFit.fitWidth,
- errorWidget: (context, url, error) =>
- SizedBox()),
- ),
+ items: widget._model.getBannerImagesUrl(projectViewModel).mapIndexed(
+ (item, index) {
+ return InkWell(
+ onTap: () {
+ Navigator.push(context, FadePage(page: OffersCategorisePage()));
+ },
+ child: Container(
+ margin: EdgeInsets.symmetric(horizontal: 1.0),
+ child: ClipRRect(
+ borderRadius: BorderRadius.all(Radius.circular(5.0)),
+ child: Center(
+ child: index == 0 || index == 1
+ ? Image.asset(
+ item,
+ fit: BoxFit.cover,
+ )
+ : CachedNetworkImage(imageUrl: item, fit: BoxFit.fitWidth, errorWidget: (context, url, error) => SizedBox()),
),
),
),
- )
- .toList(),
+ );
+ },
+ ).toList(),
),
Padding(
padding: const EdgeInsets.all(8.0),
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: widget._model
- .getBannerImagesUrl()
+ .getBannerImagesUrl(projectViewModel)
.mapIndexed(
(item, index) => Container(
width: 12.0,
height: 4.0,
- margin:
- EdgeInsets.symmetric(vertical: 0.0, horizontal: 2.0),
+ margin: EdgeInsets.symmetric(vertical: 0.0, horizontal: 2.0),
decoration: BoxDecoration(
shape: BoxShape.rectangle,
- color: _current == index
- ? Color.fromRGBO(0, 250, 0, 0.9)
- : Color.fromRGBO(0, 0, 0, 0.4),
+ color: _current == index ? Color.fromRGBO(0, 250, 0, 0.9) : Color.fromRGBO(0, 0, 0, 0.4),
),
),
)
diff --git a/lib/pages/pharmacies/widgets/home/GridViewButtons.dart b/lib/pages/pharmacies/widgets/home/GridViewButtons.dart
index 1a33ce74..8a549b48 100644
--- a/lib/pages/pharmacies/widgets/home/GridViewButtons.dart
+++ b/lib/pages/pharmacies/widgets/home/GridViewButtons.dart
@@ -39,44 +39,44 @@ class GridViewButtons extends StatelessWidget {
Navigator.push(context, FadePage(page: OffersCategorisePage()));
}),
),
- DashboardItem(
- imageName: 'pharmacy_module/bg_2.png',
- opacity: 0,
- hasColorFilter: false,
- child: GridViewCard(TranslationBase.of(context).medicationRefill,
- 'assets/images/pharmacy_module/medication_icon.png', () {
- Navigator.push(
- context, FadePage(page: HomePrescriptionsPage()));
-
- // model.checkUserIsActivated().then((isActivated) {
- // if (isActivated) {
- // Navigator.push(context, FadePage(page: LakumMainPage()));
- // } else {
- // Navigator.push(
- // context, FadePage(page: LakumActivationVidaPage()));
- // }
- // });
- }),
- ),
- DashboardItem(
- imageName: 'pharmacy_module/bg_3.png',
- opacity: 0,
- hasColorFilter: false,
- child: GridViewCard(TranslationBase.of(context).myPrescriptions,
- 'assets/images/pharmacy_module/prescription_icon.png', () {
- Navigator.push(
- context, FadePage(page: HomePrescriptionsPage()));
- }),
- ),
- DashboardItem(
- imageName: 'pharmacy_module/bg_4.png',
- opacity: 0,
- hasColorFilter: false,
- child: GridViewCard(
- TranslationBase.of(context).searchAndScanMedication,
- 'assets/images/pharmacy_module/search_scan_icon.png',
- () {Navigator.push(context, FadePage(page: SearchProductsPage()));}),
- ),
+ // DashboardItem(
+ // imageName: 'pharmacy_module/bg_2.png',
+ // opacity: 0,
+ // hasColorFilter: false,
+ // child: GridViewCard(TranslationBase.of(context).medicationRefill,
+ // 'assets/images/pharmacy_module/medication_icon.png', () {
+ // Navigator.push(
+ // context, FadePage(page: HomePrescriptionsPage()));
+ //
+ // // model.checkUserIsActivated().then((isActivated) {
+ // // if (isActivated) {
+ // // Navigator.push(context, FadePage(page: LakumMainPage()));
+ // // } else {
+ // // Navigator.push(
+ // // context, FadePage(page: LakumActivationVidaPage()));
+ // // }
+ // // });
+ // }),
+ // ),
+ // DashboardItem(
+ // imageName: 'pharmacy_module/bg_3.png',
+ // opacity: 0,
+ // hasColorFilter: false,
+ // child: GridViewCard(TranslationBase.of(context).myPrescriptions,
+ // 'assets/images/pharmacy_module/prescription_icon.png', () {
+ // Navigator.push(
+ // context, FadePage(page: HomePrescriptionsPage()));
+ // }),
+ // ),
+ // DashboardItem(
+ // imageName: 'pharmacy_module/bg_4.png',
+ // opacity: 0,
+ // hasColorFilter: false,
+ // child: GridViewCard(
+ // TranslationBase.of(context).searchAndScanMedication,
+ // 'assets/images/pharmacy_module/search_scan_icon.png',
+ // () {Navigator.push(context, FadePage(page: SearchProductsPage()));}),
+ // ),
],
),
),
diff --git a/lib/pages/search_products_page.dart b/lib/pages/search_products_page.dart
index 0aac68a0..7be0a4cc 100644
--- a/lib/pages/search_products_page.dart
+++ b/lib/pages/search_products_page.dart
@@ -1,8 +1,6 @@
import 'package:diplomaticquarterapp/config/size_config.dart';
import 'package:diplomaticquarterapp/core/viewModels/pharmacy_categorise_view_model.dart';
-import 'package:diplomaticquarterapp/pages/pharmacies/product-brands.dart';
import 'package:diplomaticquarterapp/pages/pharmacies/screens/product-details/product-detail.dart';
-import 'package:diplomaticquarterapp/pages/pharmacies/product_detail.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/uitl/utils.dart';
import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
diff --git a/lib/services/livecare_services/livecare_provider.dart b/lib/services/livecare_services/livecare_provider.dart
index a71bd5c9..6553da40 100644
--- a/lib/services/livecare_services/livecare_provider.dart
+++ b/lib/services/livecare_services/livecare_provider.dart
@@ -25,18 +25,7 @@ class LiveCareService extends BaseService {
authUser = data;
}
- var languageID = await sharedPref.getStringWithDefaultValue(APP_LANGUAGE, 'ar');
- Request req = appGlobal.getPublicRequest();
request = {
- "LanguageID": languageID == 'ar' ? 1 : 2,
- "IPAdress": "10.20.10.20",
- "VersionID": req.VersionID,
- "Channel": req.Channel,
- "generalid": 'Cs2020@2016\$2958',
- "PatientOutSA": 0,
- "TokenID": "",
- "DeviceTypeID": req.DeviceTypeID,
- "SessionID": "YckwoXhUmWBsnHKEKig",
"Age": authUser.age != null ? authUser.age : 0,
"PatientID": authUser.patientID != null ? authUser.patientID : 0,
"Gender": authUser.gender != null ? authUser.gender : 0
@@ -60,18 +49,7 @@ class LiveCareService extends BaseService {
authUser = data;
}
- var languageID = await sharedPref.getStringWithDefaultValue(APP_LANGUAGE, 'ar');
- Request req = appGlobal.getPublicRequest();
request = {
- "LanguageID": languageID == 'ar' ? 1 : 2,
- "IPAdress": "10.20.10.20",
- "VersionID": req.VersionID,
- "Channel": req.Channel,
- "generalid": 'Cs2020@2016\$2958',
- "PatientOutSA": 0,
- "TokenID": "",
- "DeviceTypeID": req.DeviceTypeID,
- "SessionID": "YckwoXhUmWBsnHKEKig",
"Age": authUser.age != null ? authUser.age : 0,
"PatientID": authUser.patientID != null ? authUser.patientID : 0,
"Gender": authUser.gender != null ? authUser.gender : 0
@@ -95,19 +73,8 @@ class LiveCareService extends BaseService {
authUser = data;
}
- var languageID = await sharedPref.getStringWithDefaultValue(APP_LANGUAGE, 'ar');
- Request req = appGlobal.getPublicRequest();
request = {
- "LanguageID": languageID == 'ar' ? 1 : 2,
- "IPAdress": "10.20.10.20",
- "VersionID": req.VersionID,
- "Channel": req.Channel,
- "generalid": 'Cs2020@2016\$2958',
- "PatientOutSA": 0,
- "TokenID": "",
- "DeviceTypeID": req.DeviceTypeID,
"ServiceID": serviceID,
- "SessionID": "YckwoXhUmWBsnHKEKig",
"Age": authUser.age != null ? authUser.age : 0,
"PatientID": authUser.patientID != null ? authUser.patientID : 0,
"Gender": authUser.gender != null ? authUser.gender : 0
@@ -154,18 +121,8 @@ class LiveCareService extends BaseService {
authUser = data;
}
- var languageID = await sharedPref.getStringWithDefaultValue(APP_LANGUAGE, 'ar');
- Request req = appGlobal.getPublicRequest();
request = {
- "LanguageID": languageID == 'ar' ? 1 : 2,
- "IPAdress": "10.20.10.20",
- "VersionID": req.VersionID,
- "Channel": req.Channel,
- "generalid": 'Cs2020@2016\$2958',
- "PatientOutSA": 0,
"ServiceID": serviceID,
- "DeviceTypeID": req.DeviceTypeID,
- "SessionID": "YckwoXhUmWBsnHKEKig",
"Age": authUser.age != null ? authUser.age : 0,
"PatientID": authUser.patientID != null ? authUser.patientID : 0,
"Gender": authUser.gender != null ? authUser.gender : 0
@@ -189,21 +146,9 @@ class LiveCareService extends BaseService {
authUser = data;
}
- var languageID = await sharedPref.getStringWithDefaultValue(APP_LANGUAGE, 'ar');
- Request req = appGlobal.getPublicRequest();
request = {
- "LanguageID": languageID == 'ar' ? 1 : 2,
- "IPAdress": "10.20.10.20",
- "VersionID": req.VersionID,
- "Channel": req.Channel,
- "generalid": 'Cs2020@2016\$2958',
- "PatientOutSA": 0,
"ServiceID": serviceID,
"ProjectID": 15,
- "DeviceTypeID": req.DeviceTypeID,
- "PatientType": authUser.patientType != null ? authUser.patientType : 0,
- "PatientTypeID": authUser.patientType != null ? authUser.patientType : 0,
- "SessionID": "YckwoXhUmWBsnHKEKig",
"Age": authUser.age != null ? authUser.age : 0,
"PatientID": authUser.patientID != null ? authUser.patientID : 0,
"Gender": authUser.gender != null ? authUser.gender : 0
@@ -227,21 +172,9 @@ class LiveCareService extends BaseService {
authUser = data;
}
- var languageID = await sharedPref.getStringWithDefaultValue(APP_LANGUAGE, 'ar');
- Request req = appGlobal.getPublicRequest();
request = {
- "LanguageID": languageID == 'ar' ? 1 : 2,
- "IPAdress": "10.20.10.20",
- "VersionID": req.VersionID,
- "Channel": req.Channel,
- "generalid": 'Cs2020@2016\$2958',
- "PatientOutSA": 0,
"ServiceID": serviceID,
"ProjectID": 15,
- "DeviceTypeID": req.DeviceTypeID,
- "PatientType": authUser.patientType != null ? authUser.patientType : 0,
- "PatientTypeID": authUser.patientType != null ? authUser.patientType : 0,
- "SessionID": "YckwoXhUmWBsnHKEKig",
"Age": authUser.age != null ? authUser.age : 0,
"PatientID": authUser.patientID != null ? authUser.patientID : 0,
"Gender": authUser.gender != null ? authUser.gender : 0
@@ -271,15 +204,7 @@ class LiveCareService extends BaseService {
authUser = data;
}
- var languageID = await sharedPref.getStringWithDefaultValue(APP_LANGUAGE, 'ar');
- Request req = appGlobal.getPublicRequest();
request = {
- "LanguageID": languageID == 'ar' ? 1 : 2,
- "IPAdress": "10.20.10.20",
- "VersionID": req.VersionID,
- "Channel": req.Channel,
- "generalid": 'Cs2020@2016\$2958',
- "PatientOutSA": 0,
"ErServiceID": serviceID,
"ClientRequestID": clientRequestID,
"DeviceToken": deviceToken,
@@ -287,9 +212,6 @@ class LiveCareService extends BaseService {
"Latitude": "24.708488",
"Longitude": "46.665925",
"DeviceType": Platform.isIOS ? 'iOS' : 'Android',
- "PatientType": authUser.patientType != null ? authUser.patientType : 0,
- "PatientTypeID": authUser.patientType != null ? authUser.patientType : 0,
- "SessionID": "YckwoXhUmWBsnHKEKig",
"Age": authUser.age != null ? authUser.age : 0,
"PatientID": authUser.patientID != null ? authUser.patientID : 0,
"Gender": authUser.gender != null ? authUser.gender : 0
diff --git a/lib/uitl/translations_delegate_base.dart b/lib/uitl/translations_delegate_base.dart
index aac73d71..ea124a30 100644
--- a/lib/uitl/translations_delegate_base.dart
+++ b/lib/uitl/translations_delegate_base.dart
@@ -795,6 +795,8 @@ class TranslationBase {
String get myBalances => localizedValues['MyBalances'][locale.languageCode];
+ String get myWallet => localizedValues['MyWallet'][locale.languageCode];
+
String get balanceAmount => localizedValues['BalanceAmount'][locale.languageCode];
String get totalBalance => localizedValues['TotalBalance'][locale.languageCode];
@@ -2565,6 +2567,17 @@ class TranslationBase {
String get androidInstructions4 => localizedValues["android-instructions-4"][locale.languageCode];
String get tamaraInstPlan => localizedValues["tamaraInstPlan"][locale.languageCode];
+
+ String get onlineTag => localizedValues["onlineTag"][locale.languageCode];
+
+ String get offlineTag => localizedValues["offlineTag"][locale.languageCode];
+
+ String get viewDocList => localizedValues["viewDocList"][locale.languageCode];
+
+ String get bodyFatTitle => localizedValues["bodyFatTitle"][locale.languageCode];
+
+ String get cholesTitle => localizedValues["cholesTitle"][locale.languageCode];
+
}
class TranslationBaseDelegate extends LocalizationsDelegate {
diff --git a/lib/widgets/dialogs/RadioStringDialog.dart b/lib/widgets/dialogs/RadioStringDialog.dart
deleted file mode 100644
index 49a16142..00000000
--- a/lib/widgets/dialogs/RadioStringDialog.dart
+++ /dev/null
@@ -1,139 +0,0 @@
-import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
-import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
-import 'package:flutter/cupertino.dart';
-import 'package:flutter/material.dart';
-
-class RadioStringDialog extends StatefulWidget {
- final List radioList;
- final Function(String) onValueSelected;
- final String title;
- String selectedValue;
-
- RadioStringDialog({Key key, this.radioList, this.onValueSelected, this.selectedValue, this.title});
-
- @override
- _RadioStringDialogState createState() => _RadioStringDialogState();
-}
-
-class _RadioStringDialogState extends State {
- @override
- void initState() {
- super.initState();
- widget.selectedValue = widget.selectedValue ?? widget.radioList[0];
- }
-
- @override
- Widget build(BuildContext context) {
- return SimpleDialog(
- title: Container(
- width: double.infinity,
- child: Center(
- child: Texts(
- widget.title,
- textAlign: TextAlign.center,
- ))),
- children: [
- Container(
- height: widget.radioList.length > 3 ? MediaQuery.of(context).size.height * 0.6 : null,
- child: SingleChildScrollView(
- child: Column(
- children: [
- Divider(),
- ...List.generate(
- widget.radioList.length,
- (index) => Column(
- crossAxisAlignment: CrossAxisAlignment.start,
- children: [
- // SizedBox(
- // height: 2,
- // ),
- Row(
- children: [
- Expanded(
- flex: 1,
- child: InkWell(
- onTap: () {
- setState(() {
- widget.selectedValue = widget.radioList[index];
- });
- },
- child: ListTile(
- title: Texts(
- widget.radioList[index],
- fontSize: 14,
- ),
- leading: Radio(
- value: widget.radioList[index],
- groupValue: widget.selectedValue,
- activeColor: Colors.red[800],
- onChanged: (value) {
- setState(() {
- widget.selectedValue = value;
- });
- },
- ),
- ),
- ),
- )
- ],
- ),
- ],
- ),
- ),
- SizedBox(
- height: 5.0,
- ),
- ],
- ),
- ),
- ),
- Row(
- children: [
- Expanded(
- flex: 1,
- child: InkWell(
- onTap: () {
- Navigator.pop(context);
- },
- child: Padding(
- padding: const EdgeInsets.all(8.0),
- child: Container(
- child: Center(
- child: Texts(
- TranslationBase.of(context).cancel.toUpperCase(),
- color: Colors.red,
- ),
- ),
- ),
- ),
- ),
- ),
- Container(
- width: 1,
- height: 30,
- color: Colors.grey[500],
- ),
- Expanded(
- flex: 1,
- child: InkWell(
- onTap: () {
- widget.onValueSelected(widget.selectedValue);
- Navigator.pop(context);
- },
- child: Padding(
- padding: const EdgeInsets.all(8.0),
- child: Center(
- child: Texts(
- TranslationBase.of(context).ok,
- fontWeight: FontWeight.w400,
- ),
- ),
- ),
- ),
- ),
- ],
- )
- ],
- );
- }
-}
diff --git a/lib/widgets/others/app_scaffold_widget.dart b/lib/widgets/others/app_scaffold_widget.dart
index 11879f20..c93ac267 100644
--- a/lib/widgets/others/app_scaffold_widget.dart
+++ b/lib/widgets/others/app_scaffold_widget.dart
@@ -346,7 +346,7 @@ class AppBarWidgetState extends State {
actions: [
(widget.isPharmacy && widget.showPharmacyCart)
? IconButton(
- icon: Badge(badgeContent: Text(_badgeText), child: Icon(Icons.shopping_cart)),
+ icon: Badge(badgeContent: Text(orderPreviewViewModel.cartResponse.quantityCount.toString()), child: Icon(Icons.shopping_cart)),
color: Colors.white,
onPressed: () {
Navigator.of(context).popUntil(ModalRoute.withName('/'));