diff --git a/assets/images/new-design/allow.svg b/assets/images/new-design/allow.svg
new file mode 100644
index 00000000..a38817f2
--- /dev/null
+++ b/assets/images/new-design/allow.svg
@@ -0,0 +1,6 @@
+
diff --git a/assets/images/new-design/delete.svg b/assets/images/new-design/delete.svg
new file mode 100644
index 00000000..49b4d9d9
--- /dev/null
+++ b/assets/images/new-design/delete.svg
@@ -0,0 +1,6 @@
+
diff --git a/assets/images/new-design/reject.svg b/assets/images/new-design/reject.svg
new file mode 100644
index 00000000..d2e9b868
--- /dev/null
+++ b/assets/images/new-design/reject.svg
@@ -0,0 +1,6 @@
+
diff --git a/assets/images/new-design/switch.svg b/assets/images/new-design/switch.svg
new file mode 100644
index 00000000..2283d4a2
--- /dev/null
+++ b/assets/images/new-design/switch.svg
@@ -0,0 +1,10 @@
+
diff --git a/assets/images/new/payment/Apple_Pay.png b/assets/images/new/payment/Apple_Pay.png
new file mode 100644
index 00000000..1dc75042
Binary files /dev/null and b/assets/images/new/payment/Apple_Pay.png differ
diff --git a/assets/images/new/payment/Mada.png b/assets/images/new/payment/Mada.png
new file mode 100644
index 00000000..905a5ba8
Binary files /dev/null and b/assets/images/new/payment/Mada.png differ
diff --git a/assets/images/new/payment/Mastercard.png b/assets/images/new/payment/Mastercard.png
new file mode 100644
index 00000000..5d8b1fa5
Binary files /dev/null and b/assets/images/new/payment/Mastercard.png differ
diff --git a/assets/images/new/payment/installments.png b/assets/images/new/payment/installments.png
new file mode 100644
index 00000000..b2b231bf
Binary files /dev/null and b/assets/images/new/payment/installments.png differ
diff --git a/assets/images/new/payment/visa.png b/assets/images/new/payment/visa.png
new file mode 100644
index 00000000..3a6d90dd
Binary files /dev/null and b/assets/images/new/payment/visa.png differ
diff --git a/assets/images/new/visa.png b/assets/images/new/paymentMethods.png
similarity index 100%
rename from assets/images/new/visa.png
rename to assets/images/new/paymentMethods.png
diff --git a/lib/config/config.dart b/lib/config/config.dart
index d7ffabcd..acb8d80a 100644
--- a/lib/config/config.dart
+++ b/lib/config/config.dart
@@ -438,6 +438,10 @@ const PHARMACY_MAKE_REVIEW = 'epharmacy/api/insertreviews';
const BLOOD_DONATION_REGISTER_BLOOD_TYPE = 'Services/PatientVarification.svc/REST/BloodDonation_RegisterBloodType';
const ADD_USER_AGREEMENT_FOR_BLOOD_DONATION = 'Services/PatientVarification.svc/REST/AddUserAgreementForBloodDonation';
+// CMC RC SERVICES
+const GET_ALL_CMC_SERVICES_RC = 'rc/api/cmc/getallcmc';
+const ADD_CMC_ORDER_RC = 'rc/api/cmc/add';
+
//Pharmacy wishlist
const GET_WISHLIST = "shopping_cart_items/";
const DELETE_WISHLIST = "delete_shopping_cart_item_by_product?customer_id=";
diff --git a/lib/config/localized_values.dart b/lib/config/localized_values.dart
index 608c67f0..c7a60f96 100644
--- a/lib/config/localized_values.dart
+++ b/lib/config/localized_values.dart
@@ -92,7 +92,7 @@ const Map localizedValues = {
'changePayment': {'en': 'Change Payment Method', 'ar': 'تغيير آلية الدفع'},
'upcoming-noAction': {'en': 'No Action Required', 'ar': 'لا يلزم اتخاذ أي إجراء'},
'upcoming-confirm': {'en': 'Please confirm the appointment to avoid cancellation', 'ar': 'يرجى تأكيد الموعد لتفادي الإلغاء'},
- "book-success-confirm-more-24-1-2": {"en": "The online payment process will be available 24 hours before the appointment.", "ar": "- عملية الدفع الالكتروني ستكون متاحة قبل الموعد ب 24 ساعة."},
+ "book-success-confirm-more-24-1-2": {"en": "The online payment process will be available 24 hours before the appointment.", "ar": "عملية الدفع الالكتروني ستكون متاحة قبل الموعد ب 24 ساعة."},
'upcoming-payment-pending': {'en': 'Online Payment will be Activated before 24 Hours of Appointment Time', 'ar': 'سيتم تفعيل خدمة الدفع الالكتروني قبل 24 ساعة من موعد الحجز'},
'upcoming-payment-now': {'en': 'Pay Online now to avoid long waiting queue', 'ar': 'ادفع الآن لتفادي طابور الانتظار'},
'upcoming-QR': {'en': 'Use the QR Code to Check-In in hospital', 'ar': 'استخدم الرمز لتسجيل الحضور بشكل آلي في المستشفى'},
@@ -231,7 +231,7 @@ const Map localizedValues = {
"unit": {"en": "Unit", "ar": "وحدة"},
"request": {"en": "Request", "ar": "طلبات الاضافة"},
"member-name": {"en": "Member Name", "ar": "اسم العضو"},
- "switch-login": {"en": "Switch User", "ar": "تغير المستخدم"},
+ "switch-login": {"en": "Switch", "ar": "تغير "},
"remove-member": {"en": "Remove", "ar": "حذف"},
"allow-view": {"en": "Allow", "ar": "قبول"},
"reject-view": {"en": "Reject", "ar": "رفض"},
@@ -258,7 +258,7 @@ const Map localizedValues = {
"requestType": {"en": "Request Type", "ar": "نوع الاستفسار"},
"register-info-family": {"en": "How would like to add the new member?", "ar": "كيف ترغب باضافة العضو الجديد؟"},
"remove-family-member": {"en": "Remove this member?", "ar": "إزالة ملف العضو؟"},
- "MyMedicalFile": {"en": "My Medical File", 'ar': 'ملف الطبي الالكتروني'},
+ "MyMedicalFile": {"en": "My Medical File", 'ar': 'الملف الطبي الالكتروني'},
"myMedicalFileSubTitle": {"en": "All your medical records", 'ar': 'جميع سجلاتك الطبية'},
"viewMore": {"en": "View More", 'ar': 'عرض المزيد'},
"homeHealthCareService": {"en": "Home Health Care Service", 'ar': 'الرعاية الصحية المنزلية'},
@@ -316,7 +316,7 @@ const Map localizedValues = {
"NoBookedAppointments": {"en": "No Booked Appointments", "ar": "لا توجد مواعيد محجوزة"},
"NoConfirmedAppointments": {"en": "No Confirmed Appointments", "ar": "لا توجد مواعيد مؤكدة"},
"noArrivedAppointments": {"en": "No Arrived Appointments", "ar": "لم يتم حضورها"},
- "MyAppointmentsList": {"en": "Appointments", "ar": "قائمة بمواعدي"},
+ "MyAppointmentsList": {"en": "Appointments", "ar": "قائمة بمواعيدي"},
"Radiology": {"en": "Radiology", "ar": "الأشعة"},
"RadiologySubtitle": {"en": "Result", "ar": "صور وتقارير"},
"Lab": {"en": "Lab", "ar": "تحليل المختبر"},
@@ -331,7 +331,7 @@ const Map localizedValues = {
"MyDoctorSubtitle": {"en": "List", "ar": "قمت بزيارتهم"},
"Eye": {"en": "Eye", "ar": "قياسات"},
"EyeSubtitle": {"en": "Measurement", "ar": "النظر"},
- "Insurance": {"en": "Insurance", "ar": "بطاقة"},
+ "Insurance": {"en": "Insurance", "ar": "بطاقات"},
"InsuranceSubtitle": {"en": "Card", "ar": "التأمين"},
"UpdateInsurance": {"en": "Update Insurance", "ar": "تحديث التأمين"},
"UpdateInsuranceSubtitle": {"en": "Card", "ar": "التأمين"},
@@ -399,7 +399,7 @@ const Map localizedValues = {
"AdvancePayment": {"en": "Advance Payment", "ar": "الدفع مقدما"},
"AdvancePaymentLabel": {"en": "You can create and add an Advanced Payment for your account or other accounts.", "ar": "يمكنك تحويل مبلغ لحسابك لدى المجموعة أو لحساب احد المراجعين"},
"FileNumber": {"en": "File Number", "ar": "رقم الملف"},
- "Amount": {"en": "Amount *", "ar": "المبلغ *"},
+ "Amount": {"en": "Amount *", "ar": "الكمية *"},
"DepositorEmail": {"en": "Depositor Email *", "ar": "البريد الإلكتروني للمودع *"},
"Notes": {"en": "Notes", "ar": "ملاحظات"},
"SelectPatientName": {"en": "Select Patient Name", "ar": "اختر اسم المريض"},
@@ -511,9 +511,9 @@ const Map localizedValues = {
"medicalFile": {"en": "Medical File", "ar": "ملف طبي"},
"verified": {"en": "Verified", "ar": "تم التحقق"},
"checkup": {"en": "Checkup", "ar": "فحص"},
- "hhcHome": {"en": "HHC Home", "ar": "الصفحة الرئيسية HHC"},
+ "hhcHome": {"en": "Home", "ar": "الرعاية"},
"refferal": {"en": "E-Refferal", "ar": "الإحالة الإلكترونية"},
- "healthCare": {"en": "Health Care", "ar": "الرعاية الصحية"},
+ "healthCare": {"en": "Health Care", "ar": "الصحية المزلية"},
"emergency": {"en": "Emergency", "ar": "طارئ"},
"cantSeeProfile": {"en": "Can’t see your medical File?", "ar": "لا تستطيع رؤية ملفك الطبي؟"},
"loginRegisterNow": {"en": "Login or Register Now", "ar": "تسجيل الدخول أو التسجيل الآن"},
@@ -521,7 +521,7 @@ const Map localizedValues = {
"ecommerceSolution": {"en": "Ecommerce Solution", "ar": "حل التجارة الإلكترونية"},
"services2": {"en": "Services", "ar": "خدمات"},
"comprehensive": {"en": "Comprehensive", "ar": "شامل"},
- "onlineConsulting": {"en": "Online Consulting", "ar": "استشارات عبر الإنترنت"},
+ "onlineConsulting": {"en": "Online Consulting", "ar": "استشارات فورية"},
"pendingOrder": {"en": " PENDING", "ar": " معلقة"},
"deliveredOrder": {"en": " DELIVERED", "ar": "تم التوصيل"},
"processingOrder": {"en": " PROCESSING", "ar": "قيد التنفيذ"},
@@ -606,6 +606,7 @@ const Map localizedValues = {
"select-gender": {"en": "Select Gender", "ar": "اختر الجنس"},
"i-am-a": {"en": "I am a ...", "ar": "أنا ..."},
"select-age": {"en": "Select Your Age", "ar": "حدد العمر"},
+ "select": {"en": "Select", "ar": "يختار"},
"i-am": {"en": "I am", "ar": "أنا"},
"years-old": {"en": "years old", "ar": "سنة"},
"drag-point": {"en": "Drag point to change your age", "ar": "اسحب لتغيير عمرك"},
@@ -894,7 +895,7 @@ const Map localizedValues = {
"somethingWentWrongTryLater": {"en": "Sorry something went wrong please try again later", "ar": "نعتذر عن خدمتك يرجى المحاولة لاحقا"},
"TotalAmountPayable": {"en": "Total Amount Payable:", "ar": " إجمالي المبلغ المستحق:"},
"iAcceptTermsConditions": {"en": "I Accept the Terms and Conditions", "ar": "أوافق على الشروط والأحكام"},
- "YouCanPayByTheFollowingOptions": {"en": "You can pay by the following Options:", "ar": "يمكنك الدفع عن طريق الخيارات التالية:"},
+ "YouCanPayByTheFollowingOptions": {"en": "You can pay by the following options:", "ar": "يمكنك الدفع عن طريق الخيارات التالية:"},
"RRTDDetails": {
"en":
"The RRT service provides medical service for urgent and stable cases, not life-threatening situations or extremities, and the service includes providing medical care from a complete medical team at home.",
@@ -1070,8 +1071,8 @@ const Map localizedValues = {
"added-child": {"en": "The request was successful. You have added a child to the vaccination schedule subscription service.", "ar": "تمت الاضافة بنجاح."},
"appUpdate": {"en": "UPDATE THE APP", "ar": "تحديث التطبيق"},
"ereferralSaveSuccess": {
- "en": "The referral request has been submitted successfully, you will be contacted ASAP to complete the process. Referral request no is ",
- "ar": " تم إرسال طلب الإحالة بنجاح ، وسيتم الاتصال بك في أسرع وقت ممكن لإكمال العملية. رقم طلب الإحالة"
+ "en": "The referral request has been submitted successfully, you will be contacted ASAP to complete the process.",
+ "ar": " تم إرسال طلب الإحالة بنجاح ، وسيتم الاتصال بك في أسرع وقت ممكن لإكمال العملية."
},
"help": {"en": "Help", "ar": "مساعدة"},
"habibRobotText": {
@@ -1146,7 +1147,7 @@ const Map localizedValues = {
"other": {"en": "Other", "ar": "آخر"},
"measure-unit": {"en": "Measure unit", "ar": "وحدة القياس"},
"measure-time": {"en": "Measure time", "ar": "وقت القياس"},
- "update": {"en": "Update", "ar": "تعديل"},
+ "update": {"en": "Update", "ar": "تحديث"},
"bloodD-enter-desc": {"en": "Enter the required information, in order to register for Blood Donation Service", "ar": "أدخل المعلومات المطلوبة ، للتسجيل في خدمة التبرع بالدم"},
"viewTermsConditions": {"en": "To view the terms and conditions", "ar": "لعرض الشروط والأحكام"},
"WalkinAppo": {"en": "Hospital Visit Appointment", "ar": "موعد زيارة للمستشفى"},
@@ -1236,7 +1237,7 @@ const Map localizedValues = {
"undo": {"en": "Undo", "ar": "تراجع"},
"drinking": {"en": "Drinkning", "ar": "الشرب"},
"remaining": {"en": "Remaining", "ar": "المتبقي"},
- "addCustomAmount": {"en": "Add Custom Amount", "ar": "إضافة مبلغ مخصص"},
+ "addCustomAmount": {"en": "Add Custom Amount", "ar": "إضافة كمية محددة"},
"left": {"en": "Left", "ar": "المتبقي"},
"taken": {"en": "Taken", "ar": " مأخوذ"},
"ml": {"en": "ML", "ar": "مل"},
@@ -1298,7 +1299,9 @@ const Map localizedValues = {
"try-saying": {"en": "Try saying something", "ar": 'حاول قول شيء ما'},
"app-update": {"en": "UPDATE THE APP", "ar": "تحديث التطبيق"},
"covid-alert": {"en": "Alert", "ar": "تنبيه"},
- "enterIdentificationNumber": {"en": "Enter Identification Number", "ar": "أدخل رقم التعريف"},
+ "enterIdentificationNumber": {"en": "Enter Identification Number", "ar": "أدخل رقم الهوية"},
+ "identificationNumber": {"en": "Identification Number", "ar": "رقم الهوية"},
+ "complaintNumber": {"en": "Complaint Number", "ar": "رقم الشكوى"},
"accountActivationDesc": {
"en": " This service allows you to activate your LAKUM account after registering completed.",
"ar": " تتيح لك هذه الخدمة تفعيل حساب برنامج الولاء لكم بعد اكتمال التسجيل. "
@@ -1489,12 +1492,34 @@ const Map localizedValues = {
"medicalReport": {"en": "Medical Report", "ar": "تقرير طبي"},
"insuredPatient": {"en": "Insured Patient", "ar": "هل لدى المريض تامين؟"},
"rateDoctor": {"en": "Rate Doctor", "ar": "تقييم الطبيب"},
- "rateAppointment": {"en": "Rate Appointment", "ar": "سعر التعيين"},
+ "rateAppointment": {"en": "Rate Appointment", "ar": "تقييم الموعد"},
"noInsuranceCardAttached": {"en": "Please attach your insurance card image to continue", "ar": "يرجى إرفاق صورة بطاقة التأمين الخاصة بك للمتابعة"},
"bodyMassIndex": {"en": "Body Mass Index is: ", "ar": "مؤشر كتلة الجسم هو:"},
"noSlotsError": {"en": "No appointments available for selected date", "ar": "لا توجد مواعيد متاحة للتاريخ المحدد"},
"selectSlot": {"en": "Please select Time Slot to continue", "ar": "الرجاء تحديد فترة زمنية للمتابعة"},
"years": {"en": "Years", "ar": "سنوات"},
- "respirationBPM": { "en": "bpm", "ar": "نفس" },
+ "respirationBPM": {"en": "bpm", "ar": "نفس"},
"extremeObese": {"en": "Extreme Obese", "ar": "السمنة المفرطة"},
+ "invoiceDetails": {"en": "Invoice Details", "ar": "تفاصيل الفاتورة"},
+ "appoDetails": {"en": "Appointment Details", "ar": "تفاصيل الموعد"},
+ "appoPaymentConfirm": {"en": "Are you sure you Want to make payment for this appointment?", "ar": "هل أنت متأكد من أنك تريد سداد هذا الموعد؟"},
+ "selectSearchCriteria": {"en": "Select the search criteria", "ar": "حدد معايير البحث"},
+ "enterComplainNumber": {"en": "Enter the Complain Number", "ar": "أدخل رقم الشكوى"},
+ "enterfileNumber": {"en": "Enter File Number", "ar": "أدخل رقم الملف"},
+ "please_select_from_below_options": {"en": "Please select from below options:", "ar": "الرجاء التحديد من الخيارات أدناه:"},
+ "selectLanguage": {"en": "Please select any language:", "ar": ":الرجاء تحديد أي لغة"},
+ "recAlert": {"en": "How do you want to receive alerts?", "ar": "كيف تريد تلقي التنبيهات؟"},
+ "modesBelow": {"en": "Please select the modes below:", "ar": ":الرجاء تحديد الأوضاع أدناه"},
+ "prefferedMode": {"en": "Please select the preferred mode below:", "ar": ":الرجاء تحديد الوضع المفضل أدناه"},
+ "permissionsBellow": {"en": "Please allow the permissions below:", "ar": ":الرجاء السماح الأذونات أدناه"},
+ "appointmentReminder": { "en": "Would you like to set a reminder for this appointment in your calendar?", "ar": "هل ترغب في اضافة تذكير لهذا الموعد في التقويم؟" },
+ "cancelAppointment": { "en": "Cancel Appt.", "ar": "الغاء الموعد" },
+ "updateInsurCards": {"en": "Update Insurance Cards", "ar": "تحديث بطاقات التأمين"},
+ "patientAge": {"en": "y", "ar": "سنة"},
+ "searchCriteria": { "en": "Select Search Criteria", "ar": "حدد معايير البحث" },
+ "RequesterInfo": {"en": "Requester Info", "ar": "معلومات مقدم الطلب"},
+ "PatientInfo": {"en": "Patient Info", "ar": "معلومات المريض"},
+ "OtherInfo": {"en": "Other Info", "ar": "معلومات اخرى"},
+ "inPrgress": {"en": "In Progress", "ar": "في تقدم"},
+ "locked": {"en": "Locked", "ar": "مقفل"},
};
diff --git a/lib/core/model/AlHabibMedicalService/ComprehensiveMedicalCheckup/cmc_insert_pres_order_request_model.dart b/lib/core/model/AlHabibMedicalService/ComprehensiveMedicalCheckup/cmc_insert_pres_order_request_model.dart
index 534988a7..8cece1f5 100644
--- a/lib/core/model/AlHabibMedicalService/ComprehensiveMedicalCheckup/cmc_insert_pres_order_request_model.dart
+++ b/lib/core/model/AlHabibMedicalService/ComprehensiveMedicalCheckup/cmc_insert_pres_order_request_model.dart
@@ -73,20 +73,21 @@ class CMCInsertPresOrderRequestModel {
data['LanguageID'] = this.languageID;
data['IPAdress'] = this.iPAdress;
data['generalid'] = this.generalid;
- data['PatientOutSA'] = this.patientOutSA;
+ data['patientOutSa'] = this.patientOutSA;
+ data['isOutPatient'] = this.patientOutSA == 0 ? false : true;
data['SessionID'] = this.sessionID;
data['isDentalAllowedBackend'] = this.isDentalAllowedBackend;
data['DeviceTypeID'] = this.deviceTypeID;
- data['PatientID'] = this.patientID;
+ data['patientId'] = this.patientID.toString();
data['TokenID'] = this.tokenID;
data['PatientTypeID'] = this.patientTypeID;
data['PatientType'] = this.patientType;
- data['Latitude'] = this.latitude;
- data['Longitude'] = this.longitude;
- data['CreatedBy'] = this.createdBy;
+ data['latitude'] = this.latitude;
+ data['longitude'] = this.longitude;
+ // data['CreatedBy'] = this.createdBy;
data['OrderServiceID'] = this.orderServiceID;
if (this.patientERCMCInsertServicesList != null) {
- data['PatientER_CMC_InsertServicesList'] =
+ data['procedures'] =
this.patientERCMCInsertServicesList.map((v) => v.toJson()).toList();
}
return data;
diff --git a/lib/core/model/AlHabibMedicalService/ComprehensiveMedicalCheckup/get_cmc_service_response_model.dart b/lib/core/model/AlHabibMedicalService/ComprehensiveMedicalCheckup/get_cmc_service_response_model.dart
index 5f356e2b..42d2fb99 100644
--- a/lib/core/model/AlHabibMedicalService/ComprehensiveMedicalCheckup/get_cmc_service_response_model.dart
+++ b/lib/core/model/AlHabibMedicalService/ComprehensiveMedicalCheckup/get_cmc_service_response_model.dart
@@ -1,44 +1,56 @@
class GetCMCServicesResponseModel {
- String description;
- String descriptionN;
- int iD;
- bool isActive;
+ int id;
+ String serviceID;
+ int orderServiceID;
+ String text;
+ String textN;
dynamic price;
- int serviceID;
- dynamic totalPrice;
- dynamic vAT;
+ dynamic priceVAT;
+ dynamic priceTotal;
+ bool isEnabled;
+ int orderId;
+ int quantity;
GetCMCServicesResponseModel(
- {this.description,
- this.descriptionN,
- this.iD,
- this.isActive,
- this.price,
+ {this.id,
this.serviceID,
- this.totalPrice,
- this.vAT});
+ this.orderServiceID,
+ this.text,
+ this.textN,
+ this.price,
+ this.priceVAT,
+ this.priceTotal,
+ this.isEnabled,
+ this.orderId,
+ this.quantity});
GetCMCServicesResponseModel.fromJson(Map json) {
- description = json['Description'];
- descriptionN = json['DescriptionN'];
- iD = json['ID'];
- isActive = json['IsActive'];
- price = json['Price'];
- serviceID = json['ServiceID'];
- totalPrice = json['TotalPrice'];
- vAT = json['VAT'];
+ id = json['id'];
+ serviceID = json['serviceID'];
+ orderServiceID = json['orderServiceID'];
+ text = json['text'];
+ textN = json['textN'];
+ price = json['price'];
+ priceVAT = json['priceVAT'];
+ priceTotal = json['priceTotal'];
+ isEnabled = json['isEnabled'];
+ orderId = json['orderId'];
+ quantity = json['quantity'];
}
Map toJson() {
final Map data = new Map();
- data['Description'] = this.description;
- data['DescriptionN'] = this.descriptionN;
- data['ID'] = this.iD;
- data['IsActive'] = this.isActive;
- data['Price'] = this.price;
- data['ServiceID'] = this.serviceID;
- data['TotalPrice'] = this.totalPrice;
- data['VAT'] = this.vAT;
+ data['id'] = this.id;
+ data['serviceID'] = this.serviceID;
+ data['orderServiceID'] = this.orderServiceID;
+ data['text'] = this.text;
+ data['textN'] = this.textN;
+ data['price'] = this.price;
+ data['priceVAT'] = this.priceVAT;
+ data['priceTotal'] = this.priceTotal;
+ data['isEnabled'] = this.isEnabled;
+ data['orderId'] = this.orderId;
+ data['quantity'] = this.quantity;
return data;
}
}
diff --git a/lib/core/service/AlHabibMedicalService/cmc_service.dart b/lib/core/service/AlHabibMedicalService/cmc_service.dart
index 012e4d90..b79b6fdb 100644
--- a/lib/core/service/AlHabibMedicalService/cmc_service.dart
+++ b/lib/core/service/AlHabibMedicalService/cmc_service.dart
@@ -23,17 +23,30 @@ class CMCService extends BaseService {
bool isOrderUpdated;
Future getCMCAllServices() async {
- GetCMCServicesRequestModel getCMCServicesRequestModel = new GetCMCServicesRequestModel(genderID: authenticatedUserObject.user.gender, identificationNo: authenticatedUserObject.user.patientIdentificationNo);
+ GetCMCServicesRequestModel getCMCServicesRequestModel =
+ new GetCMCServicesRequestModel(genderID: authenticatedUserObject.user.gender, identificationNo: authenticatedUserObject.user.patientIdentificationNo);
hasError = false;
- await baseAppClient.post(HHC_GET_ALL_CMC_SERVICES, onSuccess: (dynamic response, int statusCode) {
+
+ // RC IMPLEMENTATION
+ await baseAppClient.post(GET_ALL_CMC_SERVICES_RC + "?patientID=" + user.patientID.toString(), isAllowAny: true, onSuccess: (dynamic response, int statusCode) {
cmcAllServicesList.clear();
- response['PatientER_CMC_GetAllServicesList'].forEach((data) {
+ response.forEach((data) {
cmcAllServicesList.add(GetCMCServicesResponseModel.fromJson(data));
});
}, onFailure: (String error, int statusCode) {
hasError = true;
super.error = error;
- }, body: getCMCServicesRequestModel.toJson());
+ }, body: {});
+
+ // await baseAppClient.post(HHC_GET_ALL_CMC_SERVICES, onSuccess: (dynamic response, int statusCode) {
+ // cmcAllServicesList.clear();
+ // response['PatientER_CMC_GetAllServicesList'].forEach((data) {
+ // cmcAllServicesList.add(GetCMCServicesResponseModel.fromJson(data));
+ // });
+ // }, onFailure: (String error, int statusCode) {
+ // hasError = true;
+ // super.error = error;
+ // }, body: getCMCServicesRequestModel.toJson());
}
Future getCmcAllPresOrders() async {
@@ -87,12 +100,25 @@ class CMCService extends BaseService {
}, body: updatePresOrderRequestModel.toJson());
}
+ Future insertCMCOrderRC({CMCInsertPresOrderRequestModel order}) async {
+ hasError = false;
+ String reqId = "";
+ await baseAppClient.post(ADD_CMC_ORDER_RC, onSuccess: (dynamic response, int statusCode) {
+ isOrderUpdated = true;
+ reqId = response['RequestNo'].toString();
+ }, onFailure: (String error, int statusCode) {
+ hasError = true;
+ super.error = error;
+ }, body: order.toJson());
+ return reqId;
+ }
+
Future insertPresPresOrder({CMCInsertPresOrderRequestModel order}) async {
hasError = false;
- String reqId="";
+ String reqId = "";
await baseAppClient.post(PATIENT_ER_INSERT_PRES_ORDER, onSuccess: (dynamic response, int statusCode) {
isOrderUpdated = true;
- reqId=response['RequestNo'].toString();
+ reqId = response['RequestNo'].toString();
}, onFailure: (String error, int statusCode) {
hasError = true;
super.error = error;
diff --git a/lib/core/service/AlHabibMedicalService/e_referral_service.dart b/lib/core/service/AlHabibMedicalService/e_referral_service.dart
index f00d72ec..7fcc5f19 100644
--- a/lib/core/service/AlHabibMedicalService/e_referral_service.dart
+++ b/lib/core/service/AlHabibMedicalService/e_referral_service.dart
@@ -116,6 +116,7 @@ class EReferralService extends BaseService {
SearchEReferralRequestModel searchEReferralRequestModel) async {
_allReferral.clear();
hasError = false;
+
// TODO return this code when the fix the server
await baseAppClient.post(GET_E_REFERRALS,
onSuccess: (dynamic response, int statusCode) {
diff --git a/lib/core/service/client/base_app_client.dart b/lib/core/service/client/base_app_client.dart
index b0c0925f..ac96e35e 100644
--- a/lib/core/service/client/base_app_client.dart
+++ b/lib/core/service/client/base_app_client.dart
@@ -113,6 +113,19 @@ class BaseAppClient {
}
}
+ // For RC Services
+ // if(body.containsKey("patientId"))
+ // body.remove("PatientID");
+ //
+ // if(body.containsKey("patientOutSa"))
+ // body.remove("PatientOutSA");
+ //
+ // body['PatientID'] = 1018977;
+ // body['TokenID'] = "@dm!n";
+ // body['IdentificationNo'] = "1009199553";
+ // body['MobileNo'] = "966545156035";
+ // body['PatientMobileNumber'] = "966545156035";
+
print("URL : $url");
final jsonBody = json.encode(body);
print(jsonBody);
@@ -126,60 +139,65 @@ class BaseAppClient {
} else {
var decoded = utf8.decode(response.bodyBytes);
var parsed = json.decode(utf8.decode(response.bodyBytes));
- if (parsed['Response_Message'] != null) {
+
+ if (isAllowAny) {
onSuccess(parsed, statusCode);
} else {
- if (parsed['ErrorType'] == 4) {
- navigateToAppUpdate(AppGlobal.context, parsed['ErrorEndUserMessage']);
- }
- if (parsed['ErrorType'] == 2) {
- await logout();
- }
- if (isAllowAny) {
+ if (parsed['Response_Message'] != null) {
onSuccess(parsed, statusCode);
- } else if (parsed['IsAuthenticated'] == null) {
- if (parsed['isSMSSent'] == true) {
- onSuccess(parsed, statusCode);
- } else if (parsed['MessageStatus'] == 1) {
- onSuccess(parsed, statusCode);
- } else if (parsed['Result'] == 'OK') {
+ } else {
+ if (parsed['ErrorType'] == 4) {
+ navigateToAppUpdate(AppGlobal.context, parsed['ErrorEndUserMessage']);
+ }
+ if (parsed['ErrorType'] == 2) {
+ await logout();
+ }
+ if (isAllowAny) {
onSuccess(parsed, statusCode);
- } else {
- if (parsed != null) {
+ } else if (parsed['IsAuthenticated'] == null) {
+ if (parsed['isSMSSent'] == true) {
+ onSuccess(parsed, statusCode);
+ } else if (parsed['MessageStatus'] == 1) {
+ onSuccess(parsed, statusCode);
+ } else if (parsed['Result'] == 'OK') {
onSuccess(parsed, statusCode);
} else {
- onFailure(parsed['ErrorEndUserMessage'] ?? parsed['ErrorMessage'], statusCode);
- logout();
+ if (parsed != null) {
+ onSuccess(parsed, statusCode);
+ } else {
+ onFailure(parsed['ErrorEndUserMessage'] ?? parsed['ErrorMessage'], statusCode);
+ logout();
+ }
}
- }
- } else if (parsed['MessageStatus'] == 1 || parsed['SMSLoginRequired'] == true) {
- onSuccess(parsed, statusCode);
- } else if (parsed['MessageStatus'] == 2 && parsed['IsAuthenticated']) {
- if (parsed['SameClinicApptList'] != null) {
+ } else if (parsed['MessageStatus'] == 1 || parsed['SMSLoginRequired'] == true) {
onSuccess(parsed, statusCode);
- } else {
- if (parsed['message'] == null && parsed['ErrorEndUserMessage'] == null) {
- if (parsed['ErrorSearchMsg'] == null) {
- onFailure("Server Error found with no available message", statusCode);
+ } else if (parsed['MessageStatus'] == 2 && parsed['IsAuthenticated']) {
+ if (parsed['SameClinicApptList'] != null) {
+ onSuccess(parsed, statusCode);
+ } else {
+ if (parsed['message'] == null && parsed['ErrorEndUserMessage'] == null) {
+ if (parsed['ErrorSearchMsg'] == null) {
+ onFailure("Server Error found with no available message", statusCode);
+ } else {
+ onFailure(parsed['ErrorSearchMsg'], statusCode);
+ }
} else {
- onFailure(parsed['ErrorSearchMsg'], statusCode);
+ onFailure(parsed['message'] ?? parsed['ErrorEndUserMessage'] ?? parsed['ErrorMessage'], statusCode);
}
- } else {
- onFailure(parsed['message'] ?? parsed['ErrorEndUserMessage'] ?? parsed['ErrorMessage'], statusCode);
}
}
- }
- // else if (!parsed['IsAuthenticated']) {
- // await logout();
- // }
- else {
- if (parsed['SameClinicApptList'] != null) {
- onSuccess(parsed, statusCode);
- } else {
- if (parsed['message'] != null) {
- onFailure(parsed['message'] ?? parsed['message'], statusCode);
+ // else if (!parsed['IsAuthenticated']) {
+ // await logout();
+ // }
+ else {
+ if (parsed['SameClinicApptList'] != null) {
+ onSuccess(parsed, statusCode);
} else {
- onFailure(parsed['ErrorEndUserMessage'] ?? parsed['ErrorMessage'], statusCode);
+ if (parsed['message'] != null) {
+ onFailure(parsed['message'] ?? parsed['message'], statusCode);
+ } else {
+ onFailure(parsed['ErrorEndUserMessage'] ?? parsed['ErrorMessage'], statusCode);
+ }
}
}
}
diff --git a/lib/core/service/feedback/feedback_service.dart b/lib/core/service/feedback/feedback_service.dart
index 57bb9c51..37c0c7be 100644
--- a/lib/core/service/feedback/feedback_service.dart
+++ b/lib/core/service/feedback/feedback_service.dart
@@ -13,37 +13,28 @@ class FeedbackService extends BaseService {
RequestInsertCOCItem _requestInsertCOCItem = RequestInsertCOCItem();
List appointHistoryList = List();
- Future sendCOCItem(
- {String title,
- String details,
- String cOCTypeName,
- String attachment,
- AppoitmentAllHistoryResultList appointHistory}) async {
+ Future sendCOCItem({String title, String details, String cOCTypeName, String attachment, AppoitmentAllHistoryResultList appointHistory}) async {
hasError = false;
- var languageID =
- await sharedPref.getStringWithDefaultValue(APP_LANGUAGE, 'ar');
+ var languageID = await sharedPref.getStringWithDefaultValue(APP_LANGUAGE, 'ar');
_requestInsertCOCItem.attachment = attachment;
_requestInsertCOCItem.title = title;
_requestInsertCOCItem.details = details;
_requestInsertCOCItem.cOCTypeName = cOCTypeName;
_requestInsertCOCItem.formTypeID = cOCTypeName;
- _requestInsertCOCItem.mobileNo =
- "966" + Utils.getPhoneNumberWithoutZero(user.mobileNumber);
+ _requestInsertCOCItem.mobileNo = "966" + Utils.getPhoneNumberWithoutZero(user.mobileNumber);
_requestInsertCOCItem.isUserLoggedIn = true;
_requestInsertCOCItem.projectID = user.projectID;
_requestInsertCOCItem.patientName = user.firstName + " " + user.lastName;
_requestInsertCOCItem.fileName = "";
_requestInsertCOCItem.appVersion = VERSION_ID;
- _requestInsertCOCItem.uILanguage =
- languageID; //TODO Change it to be dynamic
+ _requestInsertCOCItem.uILanguage = languageID; //TODO Change it to be dynamic
_requestInsertCOCItem.browserInfo = Platform.localHostname;
_requestInsertCOCItem.deviceInfo = Platform.localHostname;
_requestInsertCOCItem.resolution = "400x847";
_requestInsertCOCItem.projectID = 0;
_requestInsertCOCItem.tokenID = "C0c@@dm!n?T&A&A@Barcha202029582948";
- _requestInsertCOCItem.identificationNo =
- int.parse(user.patientIdentificationNo);
+ _requestInsertCOCItem.identificationNo = int.parse(user.patientIdentificationNo);
if (BASE_URL.contains('uat')) {
_requestInsertCOCItem.forDemo = true;
} else {
@@ -61,9 +52,7 @@ class FeedbackService extends BaseService {
body['ProjectName'] = appointHistory.projectName;
}
- await baseAppClient
- .post(SEND_FEEDBACK, onSuccess: (dynamic response, int statusCode) {},
- onFailure: (String error, int statusCode) {
+ await baseAppClient.post(SEND_FEEDBACK, onSuccess: (dynamic response, int statusCode) {}, onFailure: (String error, int statusCode) {
hasError = true;
super.error = error;
}, body: body);
@@ -73,15 +62,34 @@ class FeedbackService extends BaseService {
hasError = false;
Map body = new Map();
body['IdentificationNo'] = user.patientIdentificationNo;
- body['MobileNo'] =
- "966" + Utils.getPhoneNumberWithoutZero(user.mobileNumber);
- body['Searching_type'] = '1';
+ body['MobileNo'] = "966" + Utils.getPhoneNumberWithoutZero(user.mobileNumber);
+ body['Searching_type'] = 1;
if (BASE_URL.contains('uat')) {
body['ForDemo'] = true;
}
- await baseAppClient.post(GET_STATUS_FOR_COCO,
- onSuccess: (dynamic response, int statusCode) {
+ await baseAppClient.post(GET_STATUS_FOR_COCO, onSuccess: (dynamic response, int statusCode) {
+ cOCItemList = [];
+ response['ListCOCItems'].forEach((cOC) {
+ cOCItemList.add(COCItem.fromJson(cOC));
+ });
+ cOCItemList = cOCItemList.reversed.toList(); // Sort list in desc order
+ }, onFailure: (String error, int statusCode) {
+ hasError = true;
+ super.error = error;
+ }, body: body);
+ }
+
+ Future searchFeedback(String countryCode, String phoneNumber, int type, String idNumber) async {
+ hasError = false;
+ Map body = new Map();
+ body['IdentificationNo'] = idNumber;
+ body['MobileNo'] = countryCode + Utils.getPhoneNumberWithoutZero(phoneNumber);
+ body['Searching_type'] = "$type";
+ if (BASE_URL.contains('uat')) {
+ body['ForDemo'] = true;
+ }
+ await baseAppClient.post(GET_STATUS_FOR_COCO, onSuccess: (dynamic response, int statusCode) {
cOCItemList = [];
response['ListCOCItems'].forEach((cOC) {
cOCItemList.add(COCItem.fromJson(cOC));
@@ -97,12 +105,10 @@ class FeedbackService extends BaseService {
hasError = false;
Map body = new Map();
body['IsComingFromCOC'] = true;
- baseAppClient.post(GET_PATIENT_AppointmentHistory,
- onSuccess: (dynamic response, int statusCode) {
+ baseAppClient.post(GET_PATIENT_AppointmentHistory, onSuccess: (dynamic response, int statusCode) {
appointHistoryList = [];
response['AppoimentAllHistoryResultList'].forEach((appoint) {
- appointHistoryList
- .add(AppoitmentAllHistoryResultList.fromJson(appoint));
+ appointHistoryList.add(AppoitmentAllHistoryResultList.fromJson(appoint));
});
}, onFailure: (String error, int statusCode) {
hasError = true;
diff --git a/lib/core/service/medical/BloodPressureService.dart b/lib/core/service/medical/BloodPressureService.dart
index 7a849808..08ca9027 100644
--- a/lib/core/service/medical/BloodPressureService.dart
+++ b/lib/core/service/medical/BloodPressureService.dart
@@ -24,6 +24,7 @@ class BloodPressureService extends BaseService {
monthDiabtectResultAverageList.clear();
weekDiabtectResultAverageList.clear();
yearDiabtecResultAverageList.clear();
+
response['List_MonthBloodPressureResultAverage'].forEach((item) {
monthDiabtectResultAverageList
.add(MonthBloodPressureResultAverage.fromJson(item));
@@ -111,6 +112,7 @@ class BloodPressureService extends BaseService {
{String bloodPressureDate,
String diastolicPressure,
String systolicePressure,
+ int lineItemNo,
int measuredArm}) async {
hasError = false;
super.error = "";
@@ -120,6 +122,7 @@ class BloodPressureService extends BaseService {
body['DiastolicPressure'] = diastolicPressure;
body['SystolicePressure'] = systolicePressure;
body['MeasuredArm'] ='$measuredArm';
+ body['LineItemNo'] = lineItemNo;
body['isDentalAllowedBackend'] = false;
await baseAppClient.post(UPDATE_BLOOD_PRESSURE_RESULT,
diff --git a/lib/core/service/medical/WeightPressureService.dart b/lib/core/service/medical/WeightPressureService.dart
index 6d150c28..5cfcc35c 100644
--- a/lib/core/service/medical/WeightPressureService.dart
+++ b/lib/core/service/medical/WeightPressureService.dart
@@ -20,10 +20,10 @@ class WeightService extends BaseService {
hasError = false;
Map body = Map();
body['isDentalAllowedBackend'] = false;
+ monthWeightMeasurementResultAverage.clear();
+ weekWeightMeasurementResultAverage.clear();
+ yearWeightMeasurementResultAverage.clear();
await baseAppClient.post(GET_WEIGHT_PRESSURE_RESULT_AVERAGE, onSuccess: (dynamic response, int statusCode) {
- monthWeightMeasurementResultAverage.clear();
- weekWeightMeasurementResultAverage.clear();
- yearWeightMeasurementResultAverage.clear();
response['List_MonthWeightMeasurementResultAverage'].forEach((item) {
monthWeightMeasurementResultAverage.add(MonthWeightMeasurementResultAverage.fromJson(item));
});
@@ -43,10 +43,10 @@ class WeightService extends BaseService {
Future getWeightMeasurementResult() async {
hasError = false;
+ monthWeightMeasurementResult.clear();
+ weekWeightMeasurementResult.clear();
+ yearWeightMeasurementResult.clear();
await baseAppClient.post(GET_WEIGHT_PRESSURE_RESULT, onSuccess: (dynamic response, int statusCode) {
- monthWeightMeasurementResult.clear();
- weekWeightMeasurementResult.clear();
- yearWeightMeasurementResult.clear();
response['List_WeekWeightMeasurementResult'].forEach((item) {
weekWeightMeasurementResult.add(WeightMeasurementResult.fromJson(item));
diff --git a/lib/core/service/medical/prescriptions_service.dart b/lib/core/service/medical/prescriptions_service.dart
index ce91be53..fa2a24c6 100644
--- a/lib/core/service/medical/prescriptions_service.dart
+++ b/lib/core/service/medical/prescriptions_service.dart
@@ -34,10 +34,10 @@ class PrescriptionsService extends BaseService {
}
Future getPrescriptionsOrders() async {
+ prescriptionsOrderList.clear();
Map body = Map();
body['isDentalAllowedBackend'] = false;
await baseAppClient.post(GET_PRESCRIPTIONS_ALL_ORDERS, onSuccess: (dynamic response, int statusCode) {
- prescriptionsOrderList.clear();
response['PatientER_GetPatientAllPresOrdersList'].forEach((prescriptionsOrder) {
prescriptionsOrderList.add(PrescriptionsOrder.fromJson(prescriptionsOrder));
});
diff --git a/lib/core/viewModels/AlHabibMedicalService/H2O_view_model.dart b/lib/core/viewModels/AlHabibMedicalService/H2O_view_model.dart
index 219103da..3e980071 100644
--- a/lib/core/viewModels/AlHabibMedicalService/H2O_view_model.dart
+++ b/lib/core/viewModels/AlHabibMedicalService/H2O_view_model.dart
@@ -9,14 +9,19 @@ import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/H2O/user_p
import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/H2O/user_progress_for_week_data_model.dart';
import 'package:diplomaticquarterapp/core/service/AlHabibMedicalService/H2O_service.dart';
import 'package:diplomaticquarterapp/core/viewModels/base_view_model.dart';
+import 'package:diplomaticquarterapp/widgets/charts/custom_line_chart.dart';
import '../../../locator.dart';
class H2OViewModel extends BaseViewModel {
H2OService _h2OService = locator();
- List userProgressForWeekDataSeries;
- List userProgressForMonthDataSeries;
+ //
+ // List userProgressForWeekDataSeries;
+ List userProgressForWeekDataSeries;
+ List userProgressForMonthDataSeries;
+
+ // List userProgressForMonthDataSeries;
UserDetailModel get userDetail => _h2OService.userDetailModel;
@@ -71,7 +76,8 @@ class H2OViewModel extends BaseViewModel {
error = _h2OService.error;
setState(ViewState.Error);
} else {
- userProgressForWeekDataSeries = createUserProgressForWeekDataSeries();
+ // userProgressForWeekDataSeries = createUserProgressForWeekDataSeries();
+ userProgressForWeekDataSeries = createUserProgressForWeekDataSeriesNew();
setState(ViewState.Idle);
}
}
@@ -83,7 +89,7 @@ class H2OViewModel extends BaseViewModel {
error = _h2OService.error;
setState(ViewState.Error);
} else {
- userProgressForMonthDataSeries = createUserProgressForMonthDataSeries();
+ userProgressForMonthDataSeries = createUserProgressForMonthDataSeriesNew();
setState(ViewState.Idle);
}
}
@@ -113,6 +119,23 @@ class H2OViewModel extends BaseViewModel {
];
}
+ List createUserProgressForWeekDataSeriesNew() {
+ List list = [];
+
+ _h2OService.userProgressForWeekDataList.forEach((UserProgressForWeekDataModel data) {
+ list.add(new LineChartModel(data.dayName, data.percentageConsumed));
+ });
+ return list;
+ }
+
+ List createUserProgressForMonthDataSeriesNew() {
+ List list = [];
+ _h2OService.userProgressForMonthDataList.forEach((UserProgressForMonthDataModel data) {
+ list.add(new LineChartModel(data.monthName, data.percentageConsumed));
+ });
+ return list;
+ }
+
List> createUserProgressForMonthDataSeries() {
List globalData = [];
_h2OService.userProgressForMonthDataList.forEach((UserProgressForMonthDataModel data) {
diff --git a/lib/core/viewModels/AlHabibMedicalService/cmc_view_model.dart b/lib/core/viewModels/AlHabibMedicalService/cmc_view_model.dart
index de007d67..8080ddec 100644
--- a/lib/core/viewModels/AlHabibMedicalService/cmc_view_model.dart
+++ b/lib/core/viewModels/AlHabibMedicalService/cmc_view_model.dart
@@ -38,9 +38,6 @@ class CMCViewModel extends BaseViewModel {
Future getCMCAllServices() async {
await _cMCService.getCMCAllServices();
- CMCGetItemsRequestModel cMCGetItemsRequestModel = new CMCGetItemsRequestModel(checkupType: cmcAllServicesList[0].iD);
-
- await getCheckupItems(cMCGetItemsRequestModel: cMCGetItemsRequestModel, isFirst: true);
if (_cMCService.hasError) {
error = _cMCService.error;
setState(ViewState.Error);
@@ -92,7 +89,6 @@ class CMCViewModel extends BaseViewModel {
await _cMCService.getOrderDetailByOrderID(getOrderDetailByOrderIDRequestModel);
}
- //TODO check it in uat
Future insertPresPresOrder({CMCInsertPresOrderRequestModel order}) async {
setState(ViewState.Busy);
order.createdBy = user.patientID;
@@ -104,7 +100,20 @@ class CMCViewModel extends BaseViewModel {
} else {
getCmcAllPresOrders();
}
+ return requestId;
+ }
+ Future insertCMCOrderRC({CMCInsertPresOrderRequestModel order}) async {
+ setState(ViewState.Busy);
+ order.createdBy = user.patientID;
+ order.orderServiceID = OrderService.Comprehensive_Medical_Checkup.getIdOrderService();
+ String requestId = await _cMCService.insertCMCOrderRC(order: order);
+ if (_cMCService.hasError) {
+ error = _cMCService.error;
+ setState(ViewState.ErrorLocal);
+ } else {
+ getCmcAllPresOrders();
+ }
return requestId;
}
diff --git a/lib/core/viewModels/dashboard_view_model.dart b/lib/core/viewModels/dashboard_view_model.dart
index c2211993..fca76cbf 100644
--- a/lib/core/viewModels/dashboard_view_model.dart
+++ b/lib/core/viewModels/dashboard_view_model.dart
@@ -21,6 +21,7 @@ class DashboardViewModel extends BaseViewModel {
if (isLogin && _vitalSignService.weightKg.isEmpty) {
setState(ViewState.Busy);
await _vitalSignService.getPatientRadOrders();
+
if (_vitalSignService.hasError) {
error = _vitalSignService.error;
setState(ViewState.ErrorLocal);
diff --git a/lib/core/viewModels/feedback/feedback_view_model.dart b/lib/core/viewModels/feedback/feedback_view_model.dart
index 6cea3085..0aac283a 100644
--- a/lib/core/viewModels/feedback/feedback_view_model.dart
+++ b/lib/core/viewModels/feedback/feedback_view_model.dart
@@ -6,37 +6,18 @@ import 'package:diplomaticquarterapp/models/Appointments/AppoimentAllHistoryResu
import '../../../locator.dart';
-enum MessageType {
- ComplaintOnAnAppointment,
- ComplaintWithoutAppointment,
- Question,
- Compliment,
- Suggestion,
- NON
-}
+enum MessageType { ComplaintOnAnAppointment, ComplaintWithoutAppointment, Question, Compliment, Suggestion, NON }
class FeedbackViewModel extends BaseViewModel {
FeedbackService _feedbackService = locator();
List get cOCItemList => _feedbackService.cOCItemList;
+ List get appointHistoryList => _feedbackService.appointHistoryList;
- List get appointHistoryList =>
- _feedbackService.appointHistoryList;
-
- Future sendCOCItem(
- {String title,
- String details,
- String cOCTypeName,
- String attachment,
- AppoitmentAllHistoryResultList appointHistory}) async {
+ Future sendCOCItem({String title, String details, String cOCTypeName, String attachment, AppoitmentAllHistoryResultList appointHistory}) async {
setState(ViewState.BusyLocal);
- await _feedbackService.sendCOCItem(
- title: title,
- details: details,
- cOCTypeName: cOCTypeName,
- attachment: attachment,
- appointHistory: appointHistory);
+ await _feedbackService.sendCOCItem(title: title, details: details, cOCTypeName: cOCTypeName, attachment: attachment, appointHistory: appointHistory);
if (_feedbackService.hasError) {
error = _feedbackService.error;
setState(ViewState.ErrorLocal);
@@ -58,7 +39,18 @@ class FeedbackViewModel extends BaseViewModel {
}
}
- Future getPatentAppointmentHistory() async {
+ searchFeedback(String countryCode, String phoneNumber, int type, String idNumber) async {
+ setState(ViewState.Busy);
+ await _feedbackService.searchFeedback(countryCode, phoneNumber, type, idNumber);
+ if (_feedbackService.hasError) {
+ error = _feedbackService.error;
+ setState(ViewState.Error);
+ } else {
+ setState(ViewState.Idle);
+ }
+ }
+
+ Future getPatentAppointmentHistory() async {
setState(ViewState.Busy);
await _feedbackService.getPatentAppointmentHistory();
if (_feedbackService.hasError) {
diff --git a/lib/core/viewModels/medical/blood_pressure_view_model.dart b/lib/core/viewModels/medical/blood_pressure_view_model.dart
index 596a9c1e..3d772095 100644
--- a/lib/core/viewModels/medical/blood_pressure_view_model.dart
+++ b/lib/core/viewModels/medical/blood_pressure_view_model.dart
@@ -75,17 +75,17 @@ class BloodPressureViewMode extends BaseViewModel {
}
}
- Future addORUpdateDiabtecResult({String bloodPressureDate, String diastolicPressure, String systolicePressure, int measuredArm, bool isUpdate = false}) async {
+ Future addORUpdateDiabtecResult({String bloodPressureDate, String diastolicPressure, String systolicePressure, int measuredArm, int lineItemNo, bool isUpdate = false}) async {
setState(ViewState.BusyLocal);
if (!isUpdate)
await bloodPressureService.addDiabtecResult(bloodPressureDate: bloodPressureDate, diastolicPressure: diastolicPressure, systolicePressure: systolicePressure, measuredArm: measuredArm);
else
- await bloodPressureService.updateDiabtecResult(bloodPressureDate: bloodPressureDate, diastolicPressure: diastolicPressure, systolicePressure: systolicePressure, measuredArm: measuredArm);
+ await bloodPressureService.updateDiabtecResult(bloodPressureDate: bloodPressureDate, diastolicPressure: diastolicPressure, systolicePressure: systolicePressure, measuredArm: measuredArm, lineItemNo: lineItemNo);
if (bloodPressureService.hasError) {
error = bloodPressureService.error;
setState(ViewState.ErrorLocal);
} else {
- await getBloodPressure();
+ // await getBloodPressure();
setState(ViewState.Idle);
}
}
diff --git a/lib/core/viewModels/medical/prescriptions_view_model.dart b/lib/core/viewModels/medical/prescriptions_view_model.dart
index 38009f45..0c1fafdf 100644
--- a/lib/core/viewModels/medical/prescriptions_view_model.dart
+++ b/lib/core/viewModels/medical/prescriptions_view_model.dart
@@ -77,14 +77,17 @@ class PrescriptionsViewModel extends BaseViewModel {
}
getPrescriptionsOrders({bool showLoading = false}) async {
- if (showLoading) setState(ViewState.Busy);
- await _prescriptionsService.getPrescriptionsOrders();
- if (_prescriptionsService.hasError) {
- error = _prescriptionsService.error;
- setState(ViewState.ErrorLocal);
- } else {
- setState(ViewState.Idle);
- }
+ // print(showLoading);
+ setState(ViewState.Busy);
+ Future.delayed(new Duration(milliseconds: 300)).then((value) async {
+ await _prescriptionsService.getPrescriptionsOrders();
+ if (_prescriptionsService.hasError) {
+ error = _prescriptionsService.error;
+ setState(ViewState.ErrorLocal);
+ } else {
+ setState(ViewState.Idle);
+ }
+ });
}
setFilterType(FilterType filterType) {
diff --git a/lib/models/Appointments/AppoimentAllHistoryResultList.dart b/lib/models/Appointments/AppoimentAllHistoryResultList.dart
index 045f759e..a79767c5 100644
--- a/lib/models/Appointments/AppoimentAllHistoryResultList.dart
+++ b/lib/models/Appointments/AppoimentAllHistoryResultList.dart
@@ -39,6 +39,7 @@ class AppoitmentAllHistoryResultList {
String doctorImageURL;
String doctorNameObj;
int doctorRate;
+ dynamic decimalDoctorRate;
List doctorSpeciality;
String doctorTitle;
int gender;
@@ -108,6 +109,7 @@ class AppoitmentAllHistoryResultList {
this.doctorImageURL,
this.doctorNameObj,
this.doctorRate,
+ this.decimalDoctorRate,
this.doctorSpeciality,
this.doctorTitle,
this.gender,
@@ -176,6 +178,7 @@ class AppoitmentAllHistoryResultList {
doctorImageURL = json['DoctorImageURL'];
doctorNameObj = json['DoctorNameObj'];
doctorRate = json['DoctorRate'];
+ decimalDoctorRate = json['DecimalDoctorRate'];
doctorSpeciality = json['DoctorSpeciality'] != null
? json['DoctorSpeciality'].cast()
: ["null"];
@@ -250,6 +253,7 @@ class AppoitmentAllHistoryResultList {
data['DoctorImageURL'] = this.doctorImageURL;
data['DoctorNameObj'] = this.doctorNameObj;
data['DoctorRate'] = this.doctorRate;
+ data['DecimalDoctorRate'] = this.decimalDoctorRate;
data['DoctorSpeciality'] = this.doctorSpeciality;
data['DoctorTitle'] = this.doctorTitle;
data['Gender'] = this.gender;
diff --git a/lib/models/Appointments/DoctorListResponse.dart b/lib/models/Appointments/DoctorListResponse.dart
index 651165e4..0da1a273 100644
--- a/lib/models/Appointments/DoctorListResponse.dart
+++ b/lib/models/Appointments/DoctorListResponse.dart
@@ -40,6 +40,7 @@ class DoctorList {
String setupID;
List speciality;
dynamic workingHours;
+ dynamic decimalDoctorRate;
DoctorList(
{this.clinicID,
@@ -82,7 +83,8 @@ class DoctorList {
this.serviceID,
this.setupID,
this.speciality,
- this.workingHours});
+ this.workingHours,
+ this.decimalDoctorRate});
DoctorList.fromJson(Map json) {
clinicID = json['ClinicID'];
@@ -127,6 +129,7 @@ class DoctorList {
if (json.containsKey('Speciality') && json['Speciality']!=null)
speciality = json['Speciality'].cast();
workingHours = json['WorkingHours'];
+ decimalDoctorRate = json['DecimalDoctorRate'];
}
Map toJson() {
@@ -172,6 +175,7 @@ class DoctorList {
data['SetupID'] = this.setupID;
data['Speciality'] = this.speciality;
data['WorkingHours'] = this.workingHours;
+ data['DecimalDoctorRate'] = this.decimalDoctorRate;
return data;
}
}
diff --git a/lib/models/Appointments/DoctorProfile.dart b/lib/models/Appointments/DoctorProfile.dart
index 9b2bc8e9..df6031a7 100644
--- a/lib/models/Appointments/DoctorProfile.dart
+++ b/lib/models/Appointments/DoctorProfile.dart
@@ -35,6 +35,7 @@ class DoctorProfileList {
int actualDoctorRate;
String doctorImageURL;
int doctorRate;
+ double decimalDoctorRate;
String doctorTitleForProfile;
bool isAppointmentAllowed;
String nationalityFlagURL;
@@ -79,6 +80,7 @@ class DoctorProfileList {
this.actualDoctorRate,
this.doctorImageURL,
this.doctorRate,
+ this.decimalDoctorRate,
this.doctorTitleForProfile,
this.isAppointmentAllowed,
this.nationalityFlagURL,
@@ -123,6 +125,7 @@ class DoctorProfileList {
actualDoctorRate = json['ActualDoctorRate'];
doctorImageURL = json['DoctorImageURL'];
doctorRate = json['DoctorRate'];
+ decimalDoctorRate = json['DecimalDoctorRate'];
doctorTitleForProfile = json['DoctorTitleForProfile'];
isAppointmentAllowed = json['IsAppointmentAllowed'];
nationalityFlagURL = json['NationalityFlagURL'];
@@ -169,6 +172,7 @@ class DoctorProfileList {
data['ActualDoctorRate'] = this.actualDoctorRate;
data['DoctorImageURL'] = this.doctorImageURL;
data['DoctorRate'] = this.doctorRate;
+ data['DecimalDoctorRate'] = this.decimalDoctorRate;
data['DoctorTitleForProfile'] = this.doctorTitleForProfile;
data['IsAppointmentAllowed'] = this.isAppointmentAllowed;
data['NationalityFlagURL'] = this.nationalityFlagURL;
diff --git a/lib/models/Appointments/DoctorRateDetails.dart b/lib/models/Appointments/DoctorRateDetails.dart
index b29a5db9..58668856 100644
--- a/lib/models/Appointments/DoctorRateDetails.dart
+++ b/lib/models/Appointments/DoctorRateDetails.dart
@@ -4,13 +4,15 @@ class DoctorRateDetails {
dynamic clinicID;
dynamic rate;
dynamic patientNumber;
+ dynamic ratio;
DoctorRateDetails(
{this.doctorID,
this.projectID,
this.clinicID,
this.rate,
- this.patientNumber});
+ this.patientNumber,
+ this.ratio});
DoctorRateDetails.fromJson(Map json) {
doctorID = json['DoctorID'];
@@ -18,6 +20,7 @@ class DoctorRateDetails {
clinicID = json['ClinicID'];
rate = json['Rate'];
patientNumber = json['PatientNumber'];
+ ratio = json['Ratio'];
}
Map toJson() {
@@ -27,6 +30,7 @@ class DoctorRateDetails {
data['ClinicID'] = this.clinicID;
data['Rate'] = this.rate;
data['PatientNumber'] = this.patientNumber;
+ data['Ratio'] = this.ratio;
return data;
}
}
diff --git a/lib/models/Authentication/checkpatient_for_registration.dart b/lib/models/Authentication/checkpatient_for_registration.dart
index 420b4adb..def8925f 100644
--- a/lib/models/Authentication/checkpatient_for_registration.dart
+++ b/lib/models/Authentication/checkpatient_for_registration.dart
@@ -14,6 +14,8 @@ class CheckPatientForRegistration {
String tokenID;
int patientID;
bool isRegister;
+ String dob;
+ int isHijri;
CheckPatientForRegistration(
{this.patientIdentificationID,
@@ -30,7 +32,9 @@ class CheckPatientForRegistration {
this.deviceTypeID,
this.tokenID,
this.patientID,
- this.isRegister});
+ this.isRegister,
+ this.dob,
+ this.isHijri});
CheckPatientForRegistration.fromJson(Map json) {
patientIdentificationID = json['PatientIdentificationID'];
@@ -48,6 +52,8 @@ class CheckPatientForRegistration {
tokenID = json['TokenID'];
patientID = json['PatientID'];
isRegister = json['isRegister'];
+ dob = json['DOB'];
+ isHijri = json['IsHijri'];
}
Map toJson() {
@@ -67,6 +73,8 @@ class CheckPatientForRegistration {
data['TokenID'] = this.tokenID;
data['PatientID'] = this.patientID;
data['isRegister'] = this.isRegister;
+ data['DOB'] = dob;
+ data['IsHijri'] = isHijri;
return data;
}
}
diff --git a/lib/models/MyInvoices/GetDentalAppointmentsResponse.dart b/lib/models/MyInvoices/GetDentalAppointmentsResponse.dart
index a5a43cef..f7294f3c 100644
--- a/lib/models/MyInvoices/GetDentalAppointmentsResponse.dart
+++ b/lib/models/MyInvoices/GetDentalAppointmentsResponse.dart
@@ -34,10 +34,13 @@ class ListDentalAppointments {
int invoiceNo;
int status;
String arrivedOn;
- String doctorName;
- dynamic doctorNameN;
+ dynamic doctorName;
+ String doctorNameN;
String clinicName;
+ dynamic decimalDoctorRate;
String doctorImageURL;
+ dynamic doctorRate;
+ int patientNumber;
String projectName;
ListDentalAppointments(
@@ -55,7 +58,10 @@ class ListDentalAppointments {
this.doctorName,
this.doctorNameN,
this.clinicName,
+ this.decimalDoctorRate,
this.doctorImageURL,
+ this.doctorRate,
+ this.patientNumber,
this.projectName});
ListDentalAppointments.fromJson(Map json) {
@@ -73,7 +79,10 @@ class ListDentalAppointments {
doctorName = json['DoctorName'];
doctorNameN = json['DoctorNameN'];
clinicName = json['ClinicName'];
+ decimalDoctorRate = json['DecimalDoctorRate'];
doctorImageURL = json['DoctorImageURL'];
+ doctorRate = json['DoctorRate'];
+ patientNumber = json['PatientNumber'];
projectName = json['ProjectName'];
}
@@ -93,8 +102,12 @@ class ListDentalAppointments {
data['DoctorName'] = this.doctorName;
data['DoctorNameN'] = this.doctorNameN;
data['ClinicName'] = this.clinicName;
+ data['DecimalDoctorRate'] = this.decimalDoctorRate;
data['DoctorImageURL'] = this.doctorImageURL;
+ data['DoctorRate'] = this.doctorRate;
+ data['PatientNumber'] = this.patientNumber;
data['ProjectName'] = this.projectName;
return data;
}
}
+
diff --git a/lib/models/header_model.dart b/lib/models/header_model.dart
index b1da8b17..1f4d14fc 100644
--- a/lib/models/header_model.dart
+++ b/lib/models/header_model.dart
@@ -11,8 +11,9 @@ class HeaderModel {
int doctorRate;
int actualDoctorRate;
int totalReviews;
+ String decimalDoctorRate;
String email;
HeaderModel(this.doctorName, this.doctorId, this.doctorImageURL, this.speciality, this.invoiceNo, this.projectName, this.date, this.time, this.nationalityFlagURL, this.doctorRate,
- this.actualDoctorRate, this.totalReviews, this.email);
+ this.actualDoctorRate, this.totalReviews, this.email, {this.decimalDoctorRate = null});
}
diff --git a/lib/pages/AlHabibMedicalService/ComprehensiveMedicalCheckup/NewCMC/new_cmc_page.dart b/lib/pages/AlHabibMedicalService/ComprehensiveMedicalCheckup/NewCMC/new_cmc_page.dart
index 859580ef..5093729c 100644
--- a/lib/pages/AlHabibMedicalService/ComprehensiveMedicalCheckup/NewCMC/new_cmc_page.dart
+++ b/lib/pages/AlHabibMedicalService/ComprehensiveMedicalCheckup/NewCMC/new_cmc_page.dart
@@ -46,11 +46,11 @@ class _NewCMCPageState extends State with TickerProviderStateMixin {
patientERCMCInsertServicesList = new PatientERCMCInsertServicesList(
price: widget.model.cmcAllServicesList[0].price,
serviceID: widget.model.cmcAllServicesList[0].serviceID.toString(),
- selectedServiceName: widget.model.cmcAllServicesList[0].description,
- selectedServiceNameAR: widget.model.cmcAllServicesList[0].descriptionN,
+ selectedServiceName: widget.model.cmcAllServicesList[0].text,
+ selectedServiceNameAR: widget.model.cmcAllServicesList[0].textN,
recordID: 1,
- totalPrice: widget.model.cmcAllServicesList[0].totalPrice,
- vAT: widget.model.cmcAllServicesList[0].vAT);
+ totalPrice: widget.model.cmcAllServicesList[0].priceTotal,
+ vAT: widget.model.cmcAllServicesList[0].priceVAT);
cMCInsertPresOrderRequestModel = new CMCInsertPresOrderRequestModel(patientERCMCInsertServicesList: [patientERCMCInsertServicesList]);
}
diff --git a/lib/pages/AlHabibMedicalService/ComprehensiveMedicalCheckup/NewCMC/new_cmc_step_one_page.dart b/lib/pages/AlHabibMedicalService/ComprehensiveMedicalCheckup/NewCMC/new_cmc_step_one_page.dart
index 32aaa898..5e2b0498 100644
--- a/lib/pages/AlHabibMedicalService/ComprehensiveMedicalCheckup/NewCMC/new_cmc_step_one_page.dart
+++ b/lib/pages/AlHabibMedicalService/ComprehensiveMedicalCheckup/NewCMC/new_cmc_step_one_page.dart
@@ -63,18 +63,18 @@ class _NewCMCStepOnePageState extends State {
return Row(
children: [
Radio(
- value: widget.model.cmcAllServicesList[index].serviceID,
+ value: num.tryParse(widget.model.cmcAllServicesList[index].serviceID),
activeColor: Colors.red[800],
onChanged: (newValue) async {
selectedItem = index;
PatientERCMCInsertServicesList patientERCMCInsertServicesList = new PatientERCMCInsertServicesList(
price: widget.model.cmcAllServicesList[index].price,
- serviceID: widget.model.cmcAllServicesList[index].serviceID.toString(),
- selectedServiceName: widget.model.cmcAllServicesList[index].description,
- selectedServiceNameAR: widget.model.cmcAllServicesList[index].descriptionN,
+ serviceID: widget.model.cmcAllServicesList[index].serviceID,
+ selectedServiceName: widget.model.cmcAllServicesList[index].text,
+ selectedServiceNameAR: widget.model.cmcAllServicesList[index].textN,
recordID: 1,
- totalPrice: widget.model.cmcAllServicesList[index].totalPrice,
- vAT: widget.model.cmcAllServicesList[index].vAT);
+ totalPrice: widget.model.cmcAllServicesList[index].priceTotal,
+ vAT: widget.model.cmcAllServicesList[index].priceVAT);
setState(() {
widget.cMCInsertPresOrderRequestModel.patientERCMCInsertServicesList = [patientERCMCInsertServicesList];
});
@@ -93,7 +93,7 @@ class _NewCMCStepOnePageState extends State {
bottom: 20,
),
child: Text(
- projectViewModel.isArabic ? widget.model.cmcAllServicesList[index].descriptionN : widget.model.cmcAllServicesList[index].description,
+ projectViewModel.isArabic ? widget.model.cmcAllServicesList[index].textN : widget.model.cmcAllServicesList[index].text,
style: TextStyle(
fontSize: 14,
fontWeight: FontWeight.w600,
@@ -135,50 +135,6 @@ class _NewCMCStepOnePageState extends State {
),
],
),
- // Card(
- // shape: cardRadius(12),
- // elevation: 4,
- // child: Container(
- // width: double.infinity,
- // child: Column(
- // crossAxisAlignment: CrossAxisAlignment.start,
- // children: [
- // Padding(
- // padding: const EdgeInsets.only(left: 12, right: 12, top: 12),
- // child: Text(
- // TranslationBase.of(context).coveredService,
- // style: TextStyle(
- // fontSize: 14,
- // fontWeight: FontWeight.w600,
- // letterSpacing: -0.45,
- // ),
- // ),
- // ),
- // ListView.separated(
- // itemBuilder: (context, index) {
- // return Padding(
- // padding: const EdgeInsets.all(12.0),
- // child: Text(
- // widget.model.checkupItems[index].itemName,
- // style: TextStyle(
- // fontSize: 12,
- // fontWeight: FontWeight.w600,
- // letterSpacing: -0.45,
- // ),
- // ),
- // );
- // },
- // separatorBuilder: (context, index) {
- // return mDivider(Colors.grey);
- // },
- // physics: NeverScrollableScrollPhysics(),
- // shrinkWrap: true,
- // itemCount: widget.model.checkupItems.length,
- // ),
- // ],
- // ),
- // ),
- // ),
],
),
),
@@ -194,13 +150,16 @@ class _NewCMCStepOnePageState extends State {
PatientERCMCInsertServicesList patientERCMCInsertServicesList = new PatientERCMCInsertServicesList(
price: widget.model.cmcAllServicesList[selectedItem].price,
serviceID: widget.model.cmcAllServicesList[selectedItem].serviceID.toString(),
- selectedServiceName: widget.model.cmcAllServicesList[selectedItem].description,
- selectedServiceNameAR: widget.model.cmcAllServicesList[selectedItem].descriptionN,
+ selectedServiceName: widget.model.cmcAllServicesList[selectedItem].text,
+ selectedServiceNameAR: widget.model.cmcAllServicesList[selectedItem].textN,
recordID: 1,
- totalPrice: widget.model.cmcAllServicesList[selectedItem].totalPrice,
- vAT: widget.model.cmcAllServicesList[selectedItem].vAT,
+ totalPrice: widget.model.cmcAllServicesList[selectedItem].priceTotal,
+ vAT: widget.model.cmcAllServicesList[selectedItem].priceVAT,
);
+ widget.cMCInsertPresOrderRequestModel.patientID = projectViewModel.user.patientID;
+ widget.cMCInsertPresOrderRequestModel.patientOutSA = projectViewModel.user.outSA;
+
widget.cMCInsertPresOrderRequestModel.patientERCMCInsertServicesList = [patientERCMCInsertServicesList];
await widget.model.getCustomerInfo();
// if (widget.model.state == ViewState.ErrorLocal) {
diff --git a/lib/pages/AlHabibMedicalService/ComprehensiveMedicalCheckup/NewCMC/new_cmc_step_three_page.dart b/lib/pages/AlHabibMedicalService/ComprehensiveMedicalCheckup/NewCMC/new_cmc_step_three_page.dart
index c314812c..a1b7ccee 100644
--- a/lib/pages/AlHabibMedicalService/ComprehensiveMedicalCheckup/NewCMC/new_cmc_step_three_page.dart
+++ b/lib/pages/AlHabibMedicalService/ComprehensiveMedicalCheckup/NewCMC/new_cmc_step_three_page.dart
@@ -202,7 +202,7 @@ class _NewCMCStepThreePageState extends State {
color: CustomColors.green,
onTap: () async {
GifLoaderDialogUtils.showMyDialog(context);
- String requestId = await widget.model.insertPresPresOrder(order: widget.cmcInsertPresOrderRequestModel);
+ String requestId = await widget.model.insertCMCOrderRC(order: widget.cmcInsertPresOrderRequestModel);
GifLoaderDialogUtils.hideDialog(context);
if (widget.model.state != ViewState.ErrorLocal) {
//show scuccess dialog
diff --git a/lib/pages/AlHabibMedicalService/ComprehensiveMedicalCheckup/orders_log_details_page.dart b/lib/pages/AlHabibMedicalService/ComprehensiveMedicalCheckup/orders_log_details_page.dart
index 4de0e61d..ac0a8599 100644
--- a/lib/pages/AlHabibMedicalService/ComprehensiveMedicalCheckup/orders_log_details_page.dart
+++ b/lib/pages/AlHabibMedicalService/ComprehensiveMedicalCheckup/orders_log_details_page.dart
@@ -12,6 +12,7 @@ import 'package:diplomaticquarterapp/uitl/utils_new.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/dialogs/ConfirmWithMessageDialog.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
@@ -28,6 +29,29 @@ class OrdersLogDetailsPage extends StatelessWidget {
ProjectViewModel projectViewModel = Provider.of(context);
void showConfirmMessage(CMCViewModel model, GetHHCAllPresOrdersResponseModel order) {
+ showDialog(
+ context: context,
+ child: ConfirmWithMessageDialog(
+ message: TranslationBase.of(context).cancelOrderMsg,
+ onTap: () {
+ UpdatePresOrderRequestModel updatePresOrderRequestModel = UpdatePresOrderRequestModel(presOrderID: order.iD, rejectionReason: "", presOrderStatus: 4, editedBy: 3);
+ Future.delayed(new Duration(milliseconds: 300)).then((value) async {
+ GifLoaderDialogUtils.showMyDialog(context);
+ await model.updateCmcPresOrder(updatePresOrderRequestModel);
+ if (model.state == ViewState.ErrorLocal) {
+ Utils.showErrorToast(model.error);
+ GifLoaderDialogUtils.hideDialog(context);
+ } else {
+ AppToast.showSuccessToast(message: TranslationBase.of(context).processDoneSuccessfully);
+ await model.getCmcAllPresOrders();
+ GifLoaderDialogUtils.hideDialog(context);
+ }
+ });
+ },
+ ));
+ return;
+
+ // todo 'sikander' remove useless code
showDialog(
context: context,
child: ConfirmCancelOrderDialog(
diff --git a/lib/pages/AlHabibMedicalService/E-Referral/New_E_Referral/new_e_referral_index_page.dart b/lib/pages/AlHabibMedicalService/E-Referral/New_E_Referral/new_e_referral_index_page.dart
index 45d34e24..5d1d5210 100644
--- a/lib/pages/AlHabibMedicalService/E-Referral/New_E_Referral/new_e_referral_index_page.dart
+++ b/lib/pages/AlHabibMedicalService/E-Referral/New_E_Referral/new_e_referral_index_page.dart
@@ -1,5 +1,8 @@
import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/EReferral/create_e_referral_request_model.dart';
import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/E-Referral/New_E_Referral/new_e_referral_step_one_page.dart';
+import 'package:diplomaticquarterapp/theme/colors.dart';
+import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
+import 'package:diplomaticquarterapp/uitl/utils_new.dart';
import 'package:flutter/material.dart';
import 'new_e_referral_step_three_page.dart';
@@ -9,18 +12,15 @@ class StartIndexForNewEReferral extends StatefulWidget {
StartIndexForNewEReferral();
@override
- _StartIndexForNewEReferralState createState() =>
- _StartIndexForNewEReferralState();
+ _StartIndexForNewEReferralState createState() => _StartIndexForNewEReferralState();
}
-class _StartIndexForNewEReferralState extends State
- with TickerProviderStateMixin {
+class _StartIndexForNewEReferralState extends State with TickerProviderStateMixin {
PageController _controller;
- int _currentIndex = 1;
+ int _currentIndex = 0;
int pageSelected = 2;
- CreateEReferralRequestModel createEReferralRequestModel =
- new CreateEReferralRequestModel();
+ CreateEReferralRequestModel createEReferralRequestModel = new CreateEReferralRequestModel();
@override
void initState() {
@@ -40,37 +40,139 @@ class _StartIndexForNewEReferralState extends State
@override
Widget build(BuildContext context) {
return Scaffold(
- body: SafeArea(
- child: SingleChildScrollView(
- child: Container(
- height: MediaQuery.of(context).size.height * 0.78,
- child: PageView(
- physics: NeverScrollableScrollPhysics(),
- controller: _controller,
- onPageChanged: (index) {
- setState(() {
- _currentIndex = index;
- });
- },
- scrollDirection: Axis.horizontal,
- children: [
- NewEReferralStepOnePage(
- changePageViewIndex: changePageViewIndex,
- createEReferralRequestModel: createEReferralRequestModel,
- ),
- NewEReferralStepTowPage(
- changePageViewIndex: changePageViewIndex,
- createEReferralRequestModel: createEReferralRequestModel,
- ),
- NewEReferralStepThreePage(
- changePageViewIndex: changePageViewIndex,
- createEReferralRequestModel: createEReferralRequestModel,
- ),
- ],
+ body: Container(
+ height: double.infinity,
+ child: Column(
+ children: [
+ Container(
+ width: double.infinity,
+ padding: EdgeInsets.only(left: 12,right: 12,top: 12),
+ child: Row(
+ children: [
+ Expanded(
+ child: showProgress(
+ title: TranslationBase.of(context).RequesterInfo,
+ status: _currentIndex == 0
+ ? TranslationBase.of(context).inPrgress
+ : _currentIndex > 0
+ ? TranslationBase.of(context).completed
+ : TranslationBase.of(context).locked,
+ color: _currentIndex == 0 ? CustomColors.orange : CustomColors.green,
+ ),
+ ),
+ Expanded(
+ child: showProgress(
+ title: TranslationBase.of(context).patientInfo,
+ status: _currentIndex == 1
+ ? TranslationBase.of(context).inPrgress
+ : _currentIndex > 1
+ ? TranslationBase.of(context).completed
+ : TranslationBase.of(context).locked,
+ color: _currentIndex == 1
+ ? CustomColors.orange
+ : _currentIndex > 1
+ ? CustomColors.green
+ : CustomColors.grey2,
+ ),
+ ),
+ showProgress(
+ title: TranslationBase.of(context).otherInfo,
+ status: _currentIndex == 2 ? TranslationBase.of(context).inPrgress : TranslationBase.of(context).locked,
+ color: _currentIndex == 2
+ ? CustomColors.orange
+ : _currentIndex > 3
+ ? CustomColors.green
+ : CustomColors.grey2,
+ isNeedBorder: false,
+ ),
+ ],
+ ),
),
- ),
+ Expanded(
+ child: PageView(
+ physics: NeverScrollableScrollPhysics(),
+ controller: _controller,
+ onPageChanged: (index) {
+ setState(() {
+ _currentIndex = index;
+ });
+ },
+ scrollDirection: Axis.horizontal,
+ children: [
+ NewEReferralStepOnePage(
+ changePageViewIndex: changePageViewIndex,
+ createEReferralRequestModel: createEReferralRequestModel,
+ ),
+ NewEReferralStepTowPage(
+ changePageViewIndex: changePageViewIndex,
+ createEReferralRequestModel: createEReferralRequestModel,
+ ),
+ NewEReferralStepThreePage(
+ changePageViewIndex: changePageViewIndex,
+ createEReferralRequestModel: createEReferralRequestModel,
+ ),
+ ],
+ ),
+ ),
+ ],
),
),
);
}
+
+ Widget showProgress({String title, String status, Color color, bool isNeedBorder = true}) {
+ return Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: [
+ Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: [
+ Row(
+ children: [
+ Container(
+ width: 26,
+ height: 26,
+ decoration: containerRadius(color, 200),
+ child: Icon(
+ Icons.done,
+ color: Colors.white,
+ size: 16,
+ ),
+ ),
+ if (isNeedBorder)
+ Expanded(
+ child: Padding(
+ padding: const EdgeInsets.all(8.0),
+ child: mDivider(Colors.grey),
+ )),
+ ],
+ ),
+ mHeight(8),
+ Text(
+ title,
+ style: TextStyle(
+ fontSize: 11,
+ fontWeight: FontWeight.w600,
+ letterSpacing: -0.44,
+ ),
+ ),
+ mHeight(2),
+ Container(
+ padding: EdgeInsets.all(5),
+ decoration: containerRadius(color.withOpacity(0.2), 4),
+ child: Text(
+ status,
+ style: TextStyle(
+ fontSize: 8,
+ fontWeight: FontWeight.w600,
+ letterSpacing: -0.32,
+ color: color,
+ ),
+ ),
+ ),
+ ],
+ )
+ ],
+ );
+ }
}
diff --git a/lib/pages/AlHabibMedicalService/E-Referral/New_E_Referral/new_e_referral_step_one_page.dart b/lib/pages/AlHabibMedicalService/E-Referral/New_E_Referral/new_e_referral_step_one_page.dart
index d653cdc3..0ae7c202 100644
--- a/lib/pages/AlHabibMedicalService/E-Referral/New_E_Referral/new_e_referral_step_one_page.dart
+++ b/lib/pages/AlHabibMedicalService/E-Referral/New_E_Referral/new_e_referral_step_one_page.dart
@@ -8,15 +8,16 @@ import 'package:diplomaticquarterapp/core/viewModels/all_habib_medical_services/
import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
import 'package:diplomaticquarterapp/models/Authentication/authenticated_user.dart';
import 'package:diplomaticquarterapp/models/FamilyFiles/GetAllSharedRecordByStatusResponse.dart';
-import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/E-Referral/dialogs/select_country_ingo_Dialog.dart';
import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/E-Referral/dialogs/select_relation_type_dialog.dart';
import 'package:diplomaticquarterapp/pages/base/base_view.dart';
-import 'package:diplomaticquarterapp/pages/medical/balance/new_text_Field.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';
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/mobile-no/mobile_no.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:diplomaticquarterapp/widgets/otp/sms-popup.dart';
import 'package:flutter/cupertino.dart';
@@ -35,13 +36,14 @@ class NewEReferralStepOnePage extends StatefulWidget {
class _NewEReferralStepOnePageState extends State {
TextEditingController _nameTextController = TextEditingController();
- TextEditingController _mobileTextController = TextEditingController();
+
GetAllRelationshipTypeResponseModel _selectedRelation;
String email;
AuthenticatedUser authenticatedUser;
GetAllSharedRecordsByStatusList selectedPatientFamily;
AdvanceModel advanceModel = AdvanceModel();
ProjectViewModel projectViewModel;
+ String mobileNo = "";
// todo create a model for Country
// todo use country from the json
@@ -54,147 +56,154 @@ class _NewEReferralStepOnePageState extends State {
super.initState();
}
+ void showSMSDialog(EReferralViewModel model) {
+ SMSOTP(
+ context,
+ 1,
+ _selectedCountry['code'] + mobileNo,
+ (value) {
+ submit(model, value);
+ },
+ () => {
+ Navigator.pop(context),
+ },
+ ).displayDialog(context);
+ }
+
@override
Widget build(BuildContext context) {
projectViewModel = Provider.of(context);
- void showSMSDialog(EReferralViewModel model) {
- SMSOTP(
- context,
- 1,
- _selectedCountry['code'] + _mobileTextController.text,
- (value) {
- submit(model, value);
- },
- () => {
- Navigator.pop(context),
- },
- ).displayDialog(context);
- // showDialog(
- // context: context,
- // barrierDismissible: false,
- // child: EReferralConfirmSMSDialog(
- // phoneNumber: _selectedCountry['code'] + _mobileTextController.text,
- // onSucces: () {
- // Navigator.of(context).pop();
- // widget.changePageViewIndex(1);
- // widget.createEReferralRequestModel.requesterName =
- // _nameTextController.text;
- // widget.createEReferralRequestModel.requesterContactNo =
- // _selectedCountry['code'].toString().substring(1) +
- // _mobileTextController.text;
- // widget.createEReferralRequestModel.requesterRelationship =
- // _selectedRelation.iD;
- // }),
- // ).then((value) {
- // print("dialog dismissed");
- // print(value);
- // if (value != null && value) {}
- // });
- }
return BaseView(
- onModelReady: (model) => model.getRelationTypes(),
- builder: (_, model, widget) => AppScaffold(
- isShowAppBar: false,
- body: SingleChildScrollView(
- physics: ScrollPhysics(),
- child: Container(
- margin: EdgeInsets.all(12),
- child: Center(
- child: Column(
- crossAxisAlignment: CrossAxisAlignment.start,
- children: [
- SizedBox(
- height: 20,
- ),
- Center(
- child: Texts(
- TranslationBase.of(context).referralRequesterInformation,
+ onModelReady: (model) => model.getRelationTypes(),
+ builder: (_, model, widget) => AppScaffold(
+ isShowAppBar: false,
+ backgroundColor: CustomColors.appBackgroudGrey2Color,
+ body: Container(
+ child: Column(
+ children: [
+ Expanded(
+ child: SingleChildScrollView(
+ physics: ScrollPhysics(),
+ child: Container(
+ margin: EdgeInsets.all(12),
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: [
+ SizedBox(
+ height: 20,
),
- ),
- SizedBox(
- height: 12,
- ),
- NewTextFields(
- hintText: TranslationBase.of(context).enterReferralRequesterName,
- controller: _nameTextController,
- ),
- SizedBox(
- height: 12,
- ),
- InkWell(
- onTap: () => confirmSelectCountryTypeDialog(),
- 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(getCountryName()), Icon(Icons.arrow_drop_down)],
+ Text(
+ TranslationBase.of(context).referralRequesterInformation,
+ style: TextStyle(
+ fontSize: 16,
+ fontWeight: FontWeight.w600,
+ letterSpacing: -0.64,
),
),
- ),
- SizedBox(
- height: 12,
- ),
- MobileNumberTextFiled(
- controller: _mobileTextController,
- code: _selectedCountry == null ? "11" : _selectedCountry["code"],
- ),
- SizedBox(
- height: 12,
- ),
- Center(
- child: Texts(
- TranslationBase.of(context).requesterRelationship,
- textAlign: TextAlign.center,
+ SizedBox(
+ height: 12,
),
- ),
- SizedBox(
- height: 12,
- ),
- InkWell(
- onTap: () => confirmSelectRelationTypeDialog(model.relationTypes),
- 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(getRelationName()), Icon(Icons.arrow_drop_down)],
+ inputWidget(TranslationBase.of(context).enterReferralRequesterName, "", _nameTextController, isInputTypeNum: false),
+ SizedBox(
+ height: 12,
+ ),
+ PhoneNumberSelectorWidget(onNumberChange: (value) {
+ setState(() {
+ mobileNo = value;
+ });
+ }, onCountryChange: (value) {
+ setState(() {
+ _selectedCountry = value;
+ });
+ }),
+ SizedBox(
+ height: 12,
+ ),
+ 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: () => confirmSelectRelationTypeDialog(model.relationTypes),
+ child: Row(
+ children: [
+ Expanded(
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: [
+ Text(
+ TranslationBase.of(context).selectRelationship,
+ style: TextStyle(
+ fontSize: 11,
+ fontWeight: FontWeight.w600,
+ color: Color(0xff2B353E),
+ letterSpacing: -0.44,
+ ),
+ ),
+ Text(
+ getRelationName(),
+ style: TextStyle(
+ fontSize: 14,
+ height: 21 / 14,
+ fontWeight: FontWeight.w400,
+ color: Color(0xff2B353E),
+ letterSpacing: -0.44,
+ ),
+ ),
+ ],
+ ),
+ ),
+ Icon(Icons.arrow_drop_down),
+ ],
+ ),
),
),
- ),
- ],
+ ],
+ ),
),
),
),
- ),
- bottomSheet: Container(
- color: Theme.of(context).scaffoldBackgroundColor,
- width: double.infinity,
- padding: EdgeInsets.all(9),
- child: DefaultButton(
- TranslationBase.of(context).next,
- (_nameTextController.text.isEmpty || _selectedRelation == null || _mobileTextController.text.isEmpty)
- ? null
- : () async {
- Future.delayed(new Duration(milliseconds: 300)).then((value) async {
- GifLoaderDialogUtils.showMyDialog(context);
- SendActivationCodeForEReferralRequestModel sendActivationCodeForEReferralRequestModel = SendActivationCodeForEReferralRequestModel(
- zipCode: _selectedCountry['code'],
- patientMobileNumber: int.parse(_mobileTextController.text),
- );
- await model.sendActivationCodeForEReferral(sendActivationCodeForEReferralRequestModel);
- GifLoaderDialogUtils.hideDialog(context);
- showSMSDialog(model);
- });
- },
- disabledColor: Colors.grey,
+ Card(
+ margin: EdgeInsets.zero,
+ shape: cardRadius(0),
+ elevation: 20,
+ child: Container(
+ // color: Theme.of(context).scaffoldBackgroundColor,
+ padding: EdgeInsets.all(12),
+ width: double.infinity,
+ child: DefaultButton(
+ TranslationBase.of(context).next,
+ (_nameTextController.text.isEmpty || _selectedRelation == null || mobileNo.isEmpty)
+ ? null
+ : () async {
+ Future.delayed(new Duration(milliseconds: 300)).then((value) async {
+ GifLoaderDialogUtils.showMyDialog(context);
+ SendActivationCodeForEReferralRequestModel sendActivationCodeForEReferralRequestModel = SendActivationCodeForEReferralRequestModel(
+ zipCode: _selectedCountry['code'],
+ patientMobileNumber: int.parse(mobileNo),
+ );
+ await model.sendActivationCodeForEReferral(sendActivationCodeForEReferralRequestModel);
+ GifLoaderDialogUtils.hideDialog(context);
+ showSMSDialog(model);
+ });
+ },
+ disabledColor: Colors.grey,
+ ),
+ ),
),
- )));
+ ],
+ ),
+ ),
+ ),
+ );
}
void submit(EReferralViewModel model, code) async {
@@ -205,12 +214,16 @@ class _NewEReferralStepOnePageState extends State {
await model.checkActivationCodeForEReferral(checkActivationCodeForEReferralRequestModel);
if (model.state == ViewState.ErrorLocal) {
GifLoaderDialogUtils.hideDialog(context);
+ Future.delayed(Duration(seconds: 1), () {
+ AppToast.showErrorToast(message: model.error);
+ showSMSDialog(model);
+ });
} else {
GifLoaderDialogUtils.hideDialog(context);
Navigator.of(context).pop();
widget.changePageViewIndex(1);
widget.createEReferralRequestModel.requesterName = _nameTextController.text;
- widget.createEReferralRequestModel.requesterContactNo = _selectedCountry['code'].toString().substring(1) + _mobileTextController.text;
+ widget.createEReferralRequestModel.requesterContactNo = _selectedCountry['code'].toString().substring(1) + mobileNo;
widget.createEReferralRequestModel.requesterRelationship = _selectedRelation.iD;
}
});
@@ -231,20 +244,93 @@ class _NewEReferralStepOnePageState extends State {
);
}
- void confirmSelectCountryTypeDialog() {
- showDialog(
- context: context,
- child: SelectCountryDialog(
- selectedCountry: _selectedCountry,
- onValueSelected: (value) {
- setState(() {
- _selectedCountry = 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,
+ ),
+ ),
+ 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,
+ ),
+ 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,
+ ),
+ ),
+ ],
+ ),
+ ),
+ if (hasSelection) Icon(Icons.keyboard_arrow_down_outlined),
+ ],
+ ),
),
);
}
+ // void confirmSelectCountryTypeDialog() {
+ // showDialog(
+ // context: context,
+ // child: SelectCountryDialog(
+ // selectedCountry: _selectedCountry,
+ // onValueSelected: (value) {
+ // setState(() {
+ // _selectedCountry = value;
+ // });
+ // },
+ // ),
+ // );
+ // }
+
String getRelationName() {
if (_selectedRelation != null) {
if (projectViewModel.isArabic) {
@@ -252,7 +338,7 @@ class _NewEReferralStepOnePageState extends State {
}
return _selectedRelation.textEn;
} else
- return TranslationBase.of(context).selectRelationship;
+ return "";
}
String getCountryName() {
diff --git a/lib/pages/AlHabibMedicalService/E-Referral/New_E_Referral/new_e_referral_step_three_page.dart b/lib/pages/AlHabibMedicalService/E-Referral/New_E_Referral/new_e_referral_step_three_page.dart
index 7a1a954b..164d7b50 100644
--- a/lib/pages/AlHabibMedicalService/E-Referral/New_E_Referral/new_e_referral_step_three_page.dart
+++ b/lib/pages/AlHabibMedicalService/E-Referral/New_E_Referral/new_e_referral_step_three_page.dart
@@ -9,6 +9,7 @@ import 'package:diplomaticquarterapp/models/Authentication/authenticated_user.da
import 'package:diplomaticquarterapp/models/FamilyFiles/GetAllSharedRecordByStatusResponse.dart';
import 'package:diplomaticquarterapp/pages/base/base_view.dart';
import 'package:diplomaticquarterapp/services/clinic_services/get_clinic_service.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';
@@ -66,316 +67,299 @@ class _NewEReferralStepThreePageState extends State {
},
builder: (_, model, widget) => AppScaffold(
isShowAppBar: false,
+ backgroundColor: CustomColors.appBackgroudGrey2Color,
body: SingleChildScrollView(
physics: ScrollPhysics(),
child: Container(
margin: EdgeInsets.all(12),
- child: Center(
- child: FractionallySizedBox(
- widthFactor: 0.94,
- child: Column(
- mainAxisAlignment: MainAxisAlignment.start,
- crossAxisAlignment: CrossAxisAlignment.start,
- children: [
- SizedBox(
- height: 20,
- ),
- Center(
- child: Texts(
- TranslationBase.of(context).otherInfo,
- textAlign: TextAlign.center,
- ),
- ),
- SizedBox(
- height: 12,
- ),
- Container(
- padding: EdgeInsets.only(top: 10),
- decoration: BoxDecoration(
- borderRadius: BorderRadius.circular(12),
- color: Colors.white,
- ),
- child: Column(
- children: [
- Row(
- mainAxisAlignment: MainAxisAlignment.start,
- children: [
- Padding(
- padding: const EdgeInsets.symmetric(horizontal: 9),
- child: Texts(
- TranslationBase.of(context).medicalReport,
- color: Colors.grey,
- fontSize: 17,
- ),
- ),
- ],
- ),
- InkWell(
- onTap: () {
- ImageOptions.showImageOptions(
- context,
- (String image, File file) {
- setState(() {
- EReferralAttachment eReferralAttachment = new EReferralAttachment(fileName: 'image ${medicalReportImages.length + 1}.png', base64String: image);
- medicalReportImages.add(eReferralAttachment);
- });
- },
- );
- },
- child: Container(
- margin: EdgeInsets.only(left: 10, right: 10, top: 15),
- height: 50,
- decoration: BoxDecoration(
- border: Border.all(color: Colors.grey),
- borderRadius: BorderRadius.circular(7),
- color: Colors.white,
- shape: BoxShape.rectangle,
- ),
- child: Center(
- child: Row(
- crossAxisAlignment: CrossAxisAlignment.center,
- mainAxisAlignment: MainAxisAlignment.center,
- children: [
- Icon(Icons.attach_file),
- Texts(
- TranslationBase.of(context).selectAttachment,
- variant: 'bodyText',
- textAlign: TextAlign.center,
- ),
- ],
- ),
+ child: Column(
+ mainAxisAlignment: MainAxisAlignment.start,
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: [
+ SizedBox(
+ height: 20,
+ ),
+ Text(
+ TranslationBase.of(context).otherInfo,
+ style: TextStyle(
+ fontSize: 16,
+ fontWeight: FontWeight.w600,
+ letterSpacing: -0.64,
+ ),
+ ),
+ SizedBox(
+ height: 12,
+ ),
+ Container(
+ padding: EdgeInsets.all(12),
+ decoration: BoxDecoration(
+ borderRadius: BorderRadius.circular(12),
+ color: Colors.white,
+ ),
+ child: Row(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: [
+ Expanded(
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: [
+ Text(
+ TranslationBase.of(context).medicalReport,
+ style: TextStyle(
+ fontSize: 12,
+ letterSpacing: -0.48,
+ fontWeight: FontWeight.w600,
),
),
- ),
- SizedBox(
- height: 12,
- ),
- ...List.generate(
+
+ ...List.generate(
medicalReportImages.length,
(index) => Container(
- margin: EdgeInsets.all(10),
- padding: EdgeInsets.all(8.0),
- child: Row(
- mainAxisAlignment: MainAxisAlignment.spaceBetween,
+ padding: EdgeInsets.only(top: 6,bottom: 6),
+ child: Row(
+ mainAxisAlignment: MainAxisAlignment.spaceBetween,
+ children: [
+ Row(
+ crossAxisAlignment: CrossAxisAlignment.start,
children: [
- Row(
- crossAxisAlignment: CrossAxisAlignment.start,
- children: [
- Icon(FontAwesomeIcons.paperclip),
- SizedBox(
- width: 8,
- ),
- Texts(
- medicalReportImages[index].fileName,
- ),
- ],
+ Texts(
+ medicalReportImages[index].fileName,
),
- InkWell(
- onTap: () {
- setState(() {
- medicalReportImages.remove(medicalReportImages[index]);
- });
- },
- child: Icon(
- FontAwesomeIcons.trashAlt,
- color: Colors.red[300],
- ))
],
),
- )),
- ],
+ InkWell(
+ onTap: () {
+ setState(() {
+ medicalReportImages.remove(medicalReportImages[index]);
+ });
+ },
+ child: Icon(
+ Icons.close,
+ color: Colors.red[300],
+ ))
+ ],
+ ),
+ ),
+ ),
+ InkWell(
+ onTap: () {
+ ImageOptions.showImageOptions(
+ context,
+ (String image, File file) {
+ setState(() {
+ EReferralAttachment eReferralAttachment = new EReferralAttachment(fileName: 'image ${medicalReportImages.length + 1}.png', base64String: image);
+ medicalReportImages.add(eReferralAttachment);
+ });
+ },
+ );
+ },
+ child: Padding(
+ padding: EdgeInsets.only(top: 12,bottom: 12),
+ child: Text(
+ TranslationBase.of(context).selectAttachment,
+ style: TextStyle(
+ fontSize: 14,
+ letterSpacing: -0.56,
+ decoration: TextDecoration.underline,
+ color: CustomColors.accentColor,
+ ),
+ ),
+ ),
+ ),
+ ],
+ ),
),
- ),
- SizedBox(
- height: 12,
- ),
- Container(
- padding: EdgeInsets.only(top: 10),
- decoration: BoxDecoration(borderRadius: BorderRadius.circular(12), color: Colors.white),
- child: Column(
- children: [
- Container(
- width: double.infinity,
- decoration: containerRadius(Colors.white, 12),
- margin: EdgeInsets.only(left: 20, right: 20),
- padding: EdgeInsets.only(left: 10, right: 10, top: 12, bottom: 12),
- child: Row(
- children: [
- Flexible(
- child: Column(
- crossAxisAlignment: CrossAxisAlignment.start,
- children: [
- Text(
- TranslationBase.of(context).preferredBranch,
- style: TextStyle(
- fontSize: 11,
- letterSpacing: -0.44,
- fontWeight: FontWeight.w600,
- ),
- ),
- Container(
- height: 18,
- child: DropdownButtonHideUnderline(
- child: DropdownButton(
- key: projectDropdownKey,
- hint: Text(TranslationBase.of(context).selectPreferredBranch),
- value: projectDropdownValue,
- iconSize: 0,
- isExpanded: true,
- style: TextStyle(fontSize: 14, letterSpacing: -0.56, color: Colors.black),
- items: projectsList.map((item) {
- return new DropdownMenuItem(
- value: item.mainProjectID.toString() + "," + item.name.toString(),
- child: new Text(item.name),
- );
- }).toList(),
- onChanged: (newValue) {
- setState(() {
- projectDropdownValue = newValue;
- print(projectDropdownValue);
- });
- },
- ),
- ),
+ Icon(Icons.attach_file),
+ ],
+ ),
+ ),
+ SizedBox(
+ height: 12,
+ ),
+ Container(
+ padding: EdgeInsets.only(top: 10),
+ decoration: BoxDecoration(borderRadius: BorderRadius.circular(12), color: Colors.white),
+ child: Column(
+ children: [
+ Container(
+ width: double.infinity,
+ decoration: containerRadius(Colors.white, 12),
+ margin: EdgeInsets.only(left: 20, right: 20),
+ padding: EdgeInsets.only(left: 10, right: 10, top: 12, bottom: 12),
+ child: Row(
+ children: [
+ Flexible(
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: [
+ Text(
+ TranslationBase.of(context).preferredBranch,
+ style: TextStyle(
+ fontSize: 11,
+ letterSpacing: -0.44,
+ fontWeight: FontWeight.w600,
+ ),
+ ),
+ Container(
+ height: 18,
+ child: DropdownButtonHideUnderline(
+ child: DropdownButton(
+ key: projectDropdownKey,
+ hint: Text(TranslationBase.of(context).selectPreferredBranch),
+ value: projectDropdownValue,
+ iconSize: 0,
+ isExpanded: true,
+ style: TextStyle(fontSize: 14, letterSpacing: -0.56, color: Colors.black),
+ items: projectsList.map((item) {
+ return new DropdownMenuItem(
+ value: item.mainProjectID.toString() + "," + item.name.toString(),
+ child: new Text(item.name),
+ );
+ }).toList(),
+ onChanged: (newValue) {
+ setState(() {
+ projectDropdownValue = newValue;
+ print(projectDropdownValue);
+ });
+ },
),
- ],
+ ),
),
- ),
- Icon(Icons.keyboard_arrow_down),
- ],
- )),
- ],
- ),
- ),
- SizedBox(
- height: 12,
- ),
- Container(
- decoration: BoxDecoration(borderRadius: BorderRadius.circular(12), color: Colors.white),
- child: Column(
+ ],
+ ),
+ ),
+ Icon(Icons.keyboard_arrow_down),
+ ],
+ )),
+ ],
+ ),
+ ),
+ SizedBox(
+ height: 12,
+ ),
+ Container(
+ // decoration: BoxDecoration(borderRadius: BorderRadius.circular(12), color: Colors.white),
+ child: Column(
+ children: [
+ Row(
+ mainAxisAlignment: MainAxisAlignment.start,
children: [
Row(
- mainAxisAlignment: MainAxisAlignment.start,
children: [
- Row(
- children: [
- Checkbox(
- value: isPatientInsured,
- activeColor: Colors.black38,
- onChanged: (bool newValue) {
- setState(() {
- isPatientInsured = newValue;
- });
- }),
- Padding(
- padding: const EdgeInsets.all(20.0),
- child: Texts(
- TranslationBase.of(context).insuredPatientReferral,
- fontSize: 17,
- ),
- ),
- ],
+ Checkbox(
+ value: isPatientInsured,
+ activeColor: CustomColors.accentColor,
+ onChanged: (bool newValue) {
+ setState(() {
+ isPatientInsured = newValue;
+ });
+ }),
+ Padding(
+ padding: const EdgeInsets.all(5.0),
+ child: Text(
+ TranslationBase.of(context).insuredPatientReferral, style: TextStyle(
+ fontSize: 14,
+ fontWeight: FontWeight.w600
+ ),
+ ),
),
],
),
],
),
+ ],
+ ),
+ ),
+ if (isPatientInsured)
+ SizedBox(
+ height: 12,
+ ),
+ Opacity(
+ opacity: isPatientInsured ? 1 : 0,
+ child: Container(
+ padding: EdgeInsets.all(10),
+ decoration: BoxDecoration(
+ borderRadius: BorderRadius.circular(12),
+ color: Colors.white,
),
- if (isPatientInsured)
- SizedBox(
- height: 12,
- ),
- Opacity(
- opacity: isPatientInsured ? 1 : 0,
- child: Container(
- padding: EdgeInsets.only(top: 10),
- decoration: BoxDecoration(
- borderRadius: BorderRadius.circular(12),
- color: Colors.white,
- ),
- child: Column(
- children: [
- InkWell(
- onTap: () {
- ImageOptions.showImageOptions(context, (String image, File file) {
- setState(() {
- EReferralAttachment eReferralAttachment = new EReferralAttachment(fileName: 'image ${medicalReportImages.length + 1}.png', base64String: image);
-
- insuredPatientImages = [eReferralAttachment];
- });
- });
- },
- child: Container(
- margin: EdgeInsets.only(left: 10, right: 10, top: 15),
- height: 50,
- decoration: BoxDecoration(
- border: Border.all(color: Colors.grey),
- borderRadius: BorderRadius.circular(7),
- color: Colors.white,
- shape: BoxShape.rectangle,
- ),
- child: Center(
- child: Row(
- crossAxisAlignment: CrossAxisAlignment.center,
- mainAxisAlignment: MainAxisAlignment.center,
- children: [
- Icon(Icons.attach_file),
- Texts(
- 'selected attachment',
- variant: 'bodyText',
- textAlign: TextAlign.center,
- ),
- ],
- ),
+ child: Row(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: [
+ Expanded(
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: [
+ Text(
+ TranslationBase.of(context).medicalReport,
+ style: TextStyle(
+ fontSize: 12,
+ letterSpacing: -0.48,
+ fontWeight: FontWeight.w600,
),
),
- ),
- SizedBox(
- height: 12,
- ),
- ...List.generate(
+
+ ...List.generate(
insuredPatientImages.length,
(index) => Container(
- margin: EdgeInsets.all(10),
- padding: EdgeInsets.all(8.0),
- child: Row(
- mainAxisAlignment: MainAxisAlignment.spaceBetween,
+ padding: EdgeInsets.only(top: 6,bottom: 6),
+ child: Row(
+ mainAxisAlignment: MainAxisAlignment.spaceBetween,
+ children: [
+ Row(
+ crossAxisAlignment: CrossAxisAlignment.start,
children: [
- Row(
- crossAxisAlignment: CrossAxisAlignment.start,
- children: [
- Icon(FontAwesomeIcons.paperclip),
- SizedBox(
- width: 8,
- ),
- Texts(
- 'image ${index + 1}.png',
- ),
- ],
+ Texts(
+ 'image ${index + 1}.png',
),
- InkWell(
- onTap: () {
- setState(() {
- insuredPatientImages.remove(insuredPatientImages[index]);
- });
- },
- child: Icon(
- FontAwesomeIcons.trashAlt,
- color: Colors.red[300],
- ))
],
),
- )),
- ],
+ InkWell(
+ onTap: () {
+ setState(() {
+ insuredPatientImages.remove(insuredPatientImages[index]);
+ });
+ },
+ child: Icon(
+ Icons.close,
+ color: Colors.red[300],
+ ),
+ )
+ ],
+ ),
+ ),
+ ),
+ InkWell(
+ onTap: () {
+ ImageOptions.showImageOptions(context, (String image, File file) {
+ setState(() {
+ EReferralAttachment eReferralAttachment = new EReferralAttachment(fileName: 'image ${medicalReportImages.length + 1}.png', base64String: image);
+
+ insuredPatientImages = [eReferralAttachment];
+ });
+ });
+ },
+ child: Padding(
+ padding: const EdgeInsets.only(top: 12,bottom: 12),
+ child: Text(
+ TranslationBase.of(context).selectAttachment,
+ style: TextStyle(
+ fontSize: 14,
+ letterSpacing: -0.56,
+ decoration: TextDecoration.underline,
+ color: CustomColors.accentColor,
+ ),
+ ),
+ ),
+ ),
+ ],
+ ),
),
- ),
- ),
- SizedBox(
- height: 12,
+ Icon(Icons.attach_file),
+ ],
),
- ],
+ ),
),
- ),
+ ],
),
),
),
@@ -403,7 +387,7 @@ class _NewEReferralStepThreePageState extends State {
Utils.showErrorToast(model.error);
} else {
GifLoaderDialogUtils.hideDialog(context);
- AppToast.showSuccessToast(message: "Referral sent successfully");
+ AppToast.showSuccessToast(message: TranslationBase.of(context).ereferralSaveSuccess);
}
});
},
@@ -485,6 +469,7 @@ class _NewEReferralStepThreePageState extends State {
);
}
+
String getRelationName() {
if (_selectedCity != null)
return _selectedCity.description;
diff --git a/lib/pages/AlHabibMedicalService/E-Referral/New_E_Referral/new_e_referral_step_two_page.dart b/lib/pages/AlHabibMedicalService/E-Referral/New_E_Referral/new_e_referral_step_two_page.dart
index 734c5f28..5bf031fe 100644
--- a/lib/pages/AlHabibMedicalService/E-Referral/New_E_Referral/new_e_referral_step_two_page.dart
+++ b/lib/pages/AlHabibMedicalService/E-Referral/New_E_Referral/new_e_referral_step_two_page.dart
@@ -7,18 +7,20 @@ import 'package:diplomaticquarterapp/models/FamilyFiles/GetAllSharedRecordByStat
import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/E-Referral/dialogs/select_country_ingo_Dialog.dart';
import 'package:diplomaticquarterapp/pages/base/base_view.dart';
import 'package:diplomaticquarterapp/pages/medical/balance/new_text_Field.dart';
+import 'package:diplomaticquarterapp/theme/colors.dart';
import 'package:diplomaticquarterapp/uitl/app_shared_preferences.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/buttons/secondary_button.dart';
import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
+import 'package:diplomaticquarterapp/widgets/mobile-no/mobile_no.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import '../dialogs/select_city_dialog.dart';
-
class NewEReferralStepTowPage extends StatefulWidget {
final CreateEReferralRequestModel createEReferralRequestModel;
final Function changePageViewIndex;
@@ -32,20 +34,14 @@ class NewEReferralStepTowPage extends StatefulWidget {
class _NewEReferralStepTowPageState extends State {
TextEditingController _patientNameTextController = TextEditingController();
TextEditingController _patientIdentificationTextController = TextEditingController();
- TextEditingController _mobileTextController = TextEditingController();
- GetAllCitiesResponseModel _selectedCity ;
+ String mobileNo = "";
+ GetAllCitiesResponseModel _selectedCity;
+
GetAllSharedRecordsByStatusList selectedPatientFamily;
// todo create a model for Country
// todo use country from the json
- dynamic _selectedCountry = {
- "name": "Saudi Arabia",
- "name_ar": "المملكة العربية السعودية",
- "code": "+966",
- "countryCode": "SA",
- "pattern": "5xxxxxxxx",
- "maxLength": 9
- };
+ dynamic _selectedCountry = {"name": "Saudi Arabia", "name_ar": "المملكة العربية السعودية", "code": "966", "countryCode": "SA", "pattern": "5xxxxxxxx", "maxLength": 9};
AppSharedPreferences sharedPref = AppSharedPreferences();
AuthenticatedUser authUser;
@@ -57,143 +53,222 @@ class _NewEReferralStepTowPageState extends State {
@override
Widget build(BuildContext context) {
return BaseView(
- onModelReady: (model) => model.getAllCities(),
- builder: (_, model, widget) => AppScaffold(
- isShowAppBar: false,
- body: SingleChildScrollView(
- physics: ScrollPhysics(),
- child: Container(
- margin: EdgeInsets.all(12),
- child: Center(
- child: FractionallySizedBox(
- widthFactor: 0.94,
- child: Column(
- crossAxisAlignment: CrossAxisAlignment.start,
- children: [
- SizedBox(
- height: 30,
- ),
- Center(
- child: Texts(
- TranslationBase.of(context).patientInfo,
-// "Patient information",
- textAlign: TextAlign.center,
- ),
- ),
- SizedBox(
- height: 12,
- ),
- NewTextFields(
- hintText: TranslationBase.of(context).enterIdentificationNumber,
- controller: _patientIdentificationTextController,
- keyboardType:TextInputType.number ,
- ),
- SizedBox(
- height: 12,
- ),
- NewTextFields(
- hintText: TranslationBase.of(context).patientName,
- controller: _patientNameTextController,
- ),
- SizedBox(
- height: 12,
+ onModelReady: (model) => model.getAllCities(),
+ builder: (_, model, widget) => AppScaffold(
+ isShowAppBar: false,
+ backgroundColor: CustomColors.appBackgroudGrey2Color,
+ body: Column(
+ children: [
+ Expanded(
+ child: SingleChildScrollView(
+ physics: ScrollPhysics(),
+ child: Container(
+ margin: EdgeInsets.all(12),
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: [
+ SizedBox(
+ height: 20,
+ ),
+ Text(
+ TranslationBase.of(context).patientInfo,
+ style: TextStyle(
+ fontSize: 16,
+ fontWeight: FontWeight.w600,
+ letterSpacing: -0.64,
),
- InkWell(
- onTap: () => confirmSelectCountryTypeDialog(),
- 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(getCountryName()),
- Icon(Icons.arrow_drop_down)
- ],
- ),
- ),
- ),
- SizedBox(
- height: 12,
- ),
- MobileNumberTextFiled(
- controller: _mobileTextController,
- code: _selectedCountry == null
- ? "11"
- : _selectedCountry["code"],
+ ),
+ SizedBox(
+ height: 12,
+ ),
+ inputWidget(TranslationBase.of(context).enterIdentificationNumber, "", _patientIdentificationTextController, isInputTypeNum: true),
+ SizedBox(
+ height: 12,
+ ),
+ inputWidget(TranslationBase.of(context).patientName, "", _patientNameTextController, isInputTypeNum: false),
+ SizedBox(
+ height: 12,
+ ),
+ PhoneNumberSelectorWidget(onNumberChange: (value) {
+ setState(() {
+ mobileNo = value;
+ });
+ }, onCountryChange: (value) {
+ setState(() {
+ _selectedCountry = value;
+ });
+ }),
+ SizedBox(
+ height: 12,
+ ),
+ Text(
+ TranslationBase.of(context).patientLocated,
+ style: TextStyle(
+ fontSize: 16,
+ fontWeight: FontWeight.w600,
+ letterSpacing: -0.64,
),
- SizedBox(
- height: 12,
- ),
- Center(
- child: Texts(
- TranslationBase.of(context).patientLocated,
- textAlign: TextAlign.center,
+ ),
+ SizedBox(
+ height: 12,
+ ),
+ 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,
),
),
- SizedBox(
- height: 12,
- ),
- InkWell(
- onTap: () => confirmSelectCityDialog(
- model.allCities),
- 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(getRelationName()),
- Icon(Icons.arrow_drop_down)
- ],
- ),
+ child: InkWell(
+ onTap: () => confirmSelectCityDialog(model.allCities),
+ child: Row(
+ children: [
+ Expanded(
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: [
+ Text(
+ TranslationBase.of(context).selectCity,
+ style: TextStyle(
+ fontSize: 11,
+ fontWeight: FontWeight.w600,
+ color: Color(0xff2B353E),
+ letterSpacing: -0.44,
+ ),
+ ),
+ Text(
+ getRelationName(),
+ style: TextStyle(
+ fontSize: 14,
+ height: 21 / 14,
+ fontWeight: FontWeight.w400,
+ color: Color(0xff2B353E),
+ letterSpacing: -0.44,
+ ),
+ ),
+ ],
+ ),
+ ),
+ Icon(Icons.arrow_drop_down),
+ ],
),
),
- SizedBox(
- height: 12,
- ),
-
- SizedBox(
- height: 12,
- ),
- ],
- ),
+ ),
+ SizedBox(
+ height: 12,
+ ),
+ ],
),
),
),
),
- bottomSheet: Container(
- color: Theme.of(context).scaffoldBackgroundColor,
- width: double.infinity,
- padding: EdgeInsets.all(9),
- child: DefaultButton(
- TranslationBase.of(context).next,
- (_patientNameTextController.text.isEmpty || _patientIdentificationTextController.text.isEmpty||
- _selectedCity == null ||
- _mobileTextController.text.isEmpty) ? null : () {
- this.widget.changePageViewIndex(2);
- this.widget.createEReferralRequestModel.identificationNo = int.parse( _patientIdentificationTextController.text);
- this.widget.createEReferralRequestModel.fullName = _patientNameTextController.text;
- this.widget.createEReferralRequestModel.patientMobileNumber = _selectedCountry['code'].toString().substring(1)+_mobileTextController.text;
- this.widget.createEReferralRequestModel.cityCode = _selectedCity.iD.toString();
- this.widget.createEReferralRequestModel.cityName = _selectedCity.description;
- },
- disabledColor: Colors.grey,
+ Card(
+ margin: EdgeInsets.zero,
+ shape: cardRadius(0),
+ elevation: 20,
+ child: Container(
+ width: double.infinity,
+ padding: EdgeInsets.all(12),
+ child: DefaultButton(
+ TranslationBase.of(context).next,
+ (_patientNameTextController.text.isEmpty || _patientIdentificationTextController.text.isEmpty || _selectedCity == null || mobileNo.isEmpty)
+ ? null
+ : () {
+ this.widget.changePageViewIndex(2);
+ this.widget.createEReferralRequestModel.identificationNo = int.parse(_patientIdentificationTextController.text);
+ this.widget.createEReferralRequestModel.fullName = _patientNameTextController.text;
+ this.widget.createEReferralRequestModel.patientMobileNumber = _selectedCountry['code'].toString().substring(1) + mobileNo;
+ this.widget.createEReferralRequestModel.cityCode = _selectedCity.iD.toString();
+ this.widget.createEReferralRequestModel.cityName = _selectedCity.description;
+ },
+ disabledColor: Colors.grey,
+ ),
),
- )));
-
+ )
+ ],
+ ),
+ ),
+ );
+ }
+ 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,
+ ),
+ ),
+ 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,
+ ),
+ 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,
+ ),
+ ),
+ ],
+ ),
+ ),
+ if (hasSelection) Icon(Icons.keyboard_arrow_down_outlined),
+ ],
+ ),
+ ),
+ );
}
- void confirmSelectCityDialog(
- List cities) {
+ void confirmSelectCityDialog(List cities) {
showDialog(
context: context,
child: SelectCityDialog(
@@ -238,12 +313,7 @@ class _NewEReferralStepTowPageState extends State {
}
class MobileNumberTextFiled extends StatelessWidget {
- const MobileNumberTextFiled({
- Key key,
- this.controller,
- this.code
- }) : super(key: key);
-
+ const MobileNumberTextFiled({Key key, this.controller, this.code}) : super(key: key);
final TextEditingController controller;
final String code;
@@ -252,8 +322,7 @@ class MobileNumberTextFiled extends StatelessWidget {
Widget build(BuildContext context) {
return Container(
padding: EdgeInsets.all(5),
- decoration: BoxDecoration(
- borderRadius: BorderRadius.circular(15), color: Colors.white),
+ decoration: BoxDecoration(borderRadius: BorderRadius.circular(15), color: Colors.white),
child: Row(children: [
Expanded(
flex: 1,
@@ -274,8 +343,7 @@ class MobileNumberTextFiled extends StatelessWidget {
child: TextField(
controller: controller,
keyboardType: TextInputType.phone,
- decoration: InputDecoration(
- border: InputBorder.none, hintText: TranslationBase.of(context).mobileNumber),
+ decoration: InputDecoration(border: InputBorder.none, hintText: TranslationBase.of(context).mobileNumber),
),
),
)
diff --git a/lib/pages/AlHabibMedicalService/E-Referral/dialogs/select_city_dialog.dart b/lib/pages/AlHabibMedicalService/E-Referral/dialogs/select_city_dialog.dart
index 2fb7e41a..52338edd 100644
--- a/lib/pages/AlHabibMedicalService/E-Referral/dialogs/select_city_dialog.dart
+++ b/lib/pages/AlHabibMedicalService/E-Referral/dialogs/select_city_dialog.dart
@@ -10,8 +10,7 @@ class SelectCityDialog extends StatefulWidget {
final Function(GetAllCitiesResponseModel) onValueSelected;
GetAllCitiesResponseModel selectedCity;
- SelectCityDialog(
- {Key key, this.cities, this.onValueSelected, this.selectedCity});
+ SelectCityDialog({Key key, this.cities, this.onValueSelected, this.selectedCity});
@override
_SelectCityDialogState createState() => _SelectCityDialogState();
@@ -26,104 +25,109 @@ class _SelectCityDialogState extends State {
@override
Widget build(BuildContext context) {
- return SimpleDialog(
- children: [
- Column(
- children: [
- Divider(),
- ...List.generate(
- widget.cities.length,
- (index) => Column(
- crossAxisAlignment: CrossAxisAlignment.start,
+ return Dialog(
+ child: Column(
+ children: [
+ Expanded(
+ child: SingleChildScrollView(
+ child: Column(
children: [
- SizedBox(
- height: 2,
- ),
- Row(
- children: [
- Expanded(
- flex: 1,
- child: InkWell(
- onTap: () {
- setState(() {
- widget.selectedCity = widget.cities[index];
- });
- },
- child: ListTile(
- title: Text(widget.cities[index].description),
- leading: Radio(
- value: widget.cities[index],
- groupValue: widget.selectedCity,
- activeColor: Colors.red[800],
- onChanged: (value) {
- setState(() {
- widget.selectedCity = value;
- });
- },
- ),
- ),
+ ...List.generate(
+ widget.cities.length,
+ (index) => Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: [
+ SizedBox(
+ height: 2,
),
- )
- ],
- ),
- SizedBox(
- height: 5.0,
+ Row(
+ children: [
+ Expanded(
+ flex: 1,
+ child: InkWell(
+ onTap: () {
+ setState(() {
+ widget.selectedCity = widget.cities[index];
+ });
+ },
+ child: ListTile(
+ title: Text(widget.cities[index].description),
+ leading: Radio(
+ value: widget.cities[index],
+ groupValue: widget.selectedCity,
+ activeColor: Colors.red[800],
+ onChanged: (value) {
+ setState(() {
+ widget.selectedCity = 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,
- ),
+ ),
+ 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.selectedCity);
- Navigator.pop(context);
- },
- child: Padding(
- padding: const EdgeInsets.all(8.0),
- child: Center(
- child: Texts(
- TranslationBase.of(context).ok,
- fontWeight: FontWeight.w400,
- )),
- ),
+ ),
+ Container(
+ width: 1,
+ height: 30,
+ color: Colors.grey[500],
+ ),
+ Expanded(
+ flex: 1,
+ child: InkWell(
+ onTap: () {
+ widget.onValueSelected(widget.selectedCity);
+ 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/dialogs/select_search_criteria_dialog.dart b/lib/pages/AlHabibMedicalService/E-Referral/dialogs/select_search_criteria_dialog.dart
index f4c8d989..e970f208 100644
--- a/lib/pages/AlHabibMedicalService/E-Referral/dialogs/select_search_criteria_dialog.dart
+++ b/lib/pages/AlHabibMedicalService/E-Referral/dialogs/select_search_criteria_dialog.dart
@@ -1,4 +1,5 @@
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';
@@ -7,14 +8,15 @@ 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),
+ 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});
+ {Key key, this.onValueSelected, this.selectedCriteria, this.projectViewModel});
@override
_SelectSearchCriteriaDialogState createState() => _SelectSearchCriteriaDialogState();
@@ -33,7 +35,7 @@ class _SelectSearchCriteriaDialogState extends State
children: [
Column(
children: [
- Texts(" Select Search Criteria", fontSize: 20,),
+ Text(TranslationBase.of(context).searchCriteria),
Divider(),
...List.generate(
widget.searchCriteria.length,
@@ -54,7 +56,7 @@ class _SelectSearchCriteriaDialogState extends State
});
},
child: ListTile(
- title: Text(widget.searchCriteria[index].name),
+ title: Text(widget.projectViewModel.isArabic ? widget.searchCriteria[index].nameAr : widget.searchCriteria[index].name),
leading: Radio(
value: widget.searchCriteria[index],
groupValue: widget.selectedCriteria,
diff --git a/lib/pages/AlHabibMedicalService/E-Referral/e_referral_page.dart b/lib/pages/AlHabibMedicalService/E-Referral/e_referral_page.dart
index 1308532f..78d3bca3 100644
--- a/lib/pages/AlHabibMedicalService/E-Referral/e_referral_page.dart
+++ b/lib/pages/AlHabibMedicalService/E-Referral/e_referral_page.dart
@@ -84,6 +84,7 @@ class _EReferralPageState extends State
Expanded(
child: TabBarView(
physics: BouncingScrollPhysics(),
+
controller: _tabController,
children: [
StartIndexForNewEReferral(),
diff --git a/lib/pages/AlHabibMedicalService/E-Referral/referral_details.dart b/lib/pages/AlHabibMedicalService/E-Referral/referral_details.dart
index 85ea80e6..a519e720 100644
--- a/lib/pages/AlHabibMedicalService/E-Referral/referral_details.dart
+++ b/lib/pages/AlHabibMedicalService/E-Referral/referral_details.dart
@@ -30,7 +30,7 @@ class _ReferralDetailsState extends State {
Container(
width: double.infinity,
child: Card(
- elevation: 3.0,
+ elevation: 0.0,
shape: cardRadius(12),
margin:
EdgeInsets.only(left: 16, top: 8, right: 16, bottom: 16),
@@ -42,7 +42,7 @@ class _ReferralDetailsState extends State {
Container(
margin: EdgeInsets.only(bottom: 10.0),
child: Text(
- TranslationBase.of(context).referralDetails,
+ TranslationBase.of(context).ereferral,
style: TextStyle(
letterSpacing: -0.64,
color: Colors.black,
@@ -116,7 +116,7 @@ class _ReferralDetailsState extends State {
),
Expanded(
child: _getNormalText(
- DateUtil.getMonthDayYearDateFormatted(
+ DateUtil.getDayMonthYearDateFormatted(
DateUtil.convertStringToDateNoTimeZone(
widget.referral.referralDate)),
isBold: true),
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 513eb3b2..78b5455d 100644
--- a/lib/pages/AlHabibMedicalService/E-Referral/search_for_referrals_page.dart
+++ b/lib/pages/AlHabibMedicalService/E-Referral/search_for_referrals_page.dart
@@ -5,16 +5,14 @@ import 'package:diplomaticquarterapp/core/viewModels/all_habib_medical_services/
import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/E-Referral/referral_details.dart';
import 'package:diplomaticquarterapp/pages/base/base_view.dart';
-import 'package:diplomaticquarterapp/pages/medical/balance/new_text_Field.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/buttons/secondary_button.dart';
import 'package:diplomaticquarterapp/widgets/data_display/medical/doctor_card.dart';
-import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
import 'package:diplomaticquarterapp/widgets/errors/app_embedded_error.dart';
+import 'package:diplomaticquarterapp/widgets/mobile-no/mobile_no.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';
@@ -22,7 +20,6 @@ import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
-import 'New_E_Referral/new_e_referral_step_one_page.dart';
import 'dialogs/select_country_ingo_Dialog.dart';
import 'dialogs/select_search_criteria_dialog.dart';
@@ -36,12 +33,12 @@ class SearchForReferralsPage extends StatefulWidget {
class _SearchForReferralsPageState extends State {
TextEditingController _searchTextController = TextEditingController();
- TextEditingController _mobileTextController = TextEditingController();
+ String mobileNo = "";
bool _isSubmitted = false;
- dynamic _selectedCountry = {"name": "Saudi Arabia", "name_ar": "المملكة العربية السعودية", "code": "+966", "countryCode": "SA", "pattern": "5xxxxxxxx", "maxLength": 9};
+ dynamic _selectedCountry = {"name": "Saudi Arabia", "name_ar": "المملكة العربية السعودية", "code": "966", "countryCode": "SA", "pattern": "5xxxxxxxx", "maxLength": 9};
- SearchCriteriaModel selectedCriteria = SearchCriteriaModel(name: "Identification Number", nameAr: "رقم المحول", value: 1);
+ SearchCriteriaModel selectedCriteria = SearchCriteriaModel(name: "Identification Number", nameAr: "رقم الهوية", value: 1);
@override
Widget build(BuildContext context) {
@@ -80,55 +77,106 @@ 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)],
+ // 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,
),
),
- ),
- SizedBox(
- height: 12,
- ),
- NewTextFields(
- hintText: selectedCriteria.value == 1 ? "Enter Patient Identification No" : "Enter Referral Number",
- controller: _searchTextController,
- onChanged: (_) {
- setState(() {});
- },
- ),
- SizedBox(
- height: 12,
- ),
- InkWell(
- onTap: () => confirmSelectCountryTypeDialog(),
- child: Container(
- padding: EdgeInsets.all(12),
- width: double.infinity,
- height: 65,
- decoration: BoxDecoration(borderRadius: BorderRadius.circular(12), color: Colors.white),
+ child: InkWell(
+ onTap: () => selectSearchCriteriaDialog(projectViewModel),
child: Row(
- mainAxisAlignment: MainAxisAlignment.spaceBetween,
- children: [Texts(getCountryName()), Icon(Icons.arrow_drop_down)],
+ 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),
+ ],
),
),
),
SizedBox(
height: 12,
),
- MobileNumberTextFiled(
- controller: _mobileTextController,
- onChange: (_) {
- setState(() {});
- },
- code: _selectedCountry == null ? "11" : _selectedCountry["code"],
+
+ inputWidget(selectedCriteria.value == 1 ? TranslationBase.of(context).enterIdentificationNumber : TranslationBase.of(context).referralNumber, "", _searchTextController, isInputTypeNum: true),
+
+ SizedBox(
+ height: 12,
),
+ PhoneNumberSelectorWidget(onNumberChange: (value) {
+ setState(() {
+ mobileNo = value;
+ });
+ }, onCountryChange: (value) {
+ setState(() {
+ _selectedCountry = value;
+ });
+ }),
+ // InkWell(
+ // onTap: () => confirmSelectCountryTypeDialog(),
+ // 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(getCountryName()), Icon(Icons.arrow_drop_down)],
+ // ),
+ // ),
+ // ),
+ // SizedBox(
+ // height: 12,
+ // ),
+ // MobileNumberTextFiled(
+ // controller: _mobileTextController,
+ // onChange: (_) {
+ // setState(() {});
+ // },
+ // code: _selectedCountry == null ? "11" : _selectedCountry["code"],
+ // ),
SizedBox(
height: 12,
),
@@ -155,8 +203,8 @@ class _SearchForReferralsPageState extends State {
);
},
child: Card(
+ elevation: 0.0,
shape: cardRadius(12),
- margin: EdgeInsets.all(10),
child: Padding(
padding: const EdgeInsets.all(12.0),
child: Row(
@@ -172,7 +220,7 @@ class _SearchForReferralsPageState extends State {
child: myRichText(TranslationBase.of(context).patientName + ": ", model.allReferral[index].patientName, projectViewModel.isArabic)),
myRichText(TranslationBase.of(context).hospital + ": ", model.allReferral[index].preferredBranchName, projectViewModel.isArabic),
myRichText(TranslationBase.of(context).referralDate + ": ",
- DateUtil.getMonthDayYearDateFormatted(DateUtil.convertStringToDateNoTimeZone(model.allReferral[index].referralDate)), projectViewModel.isArabic),
+ DateUtil.getDayMonthYearDateFormatted(DateUtil.convertStringToDateNoTimeZone(model.allReferral[index].referralDate)), projectViewModel.isArabic),
],
),
Icon(projectViewModel.isArabic ? Icons.arrow_back_ios_outlined : Icons.arrow_forward_outlined),
@@ -200,11 +248,11 @@ class _SearchForReferralsPageState extends State {
padding: EdgeInsets.all(14),
child: DefaultButton(
TranslationBase.of(context).search,
- (_searchTextController.text.isEmpty || _mobileTextController.text.isEmpty)
+ (_searchTextController.text.isEmpty || mobileNo.isEmpty)
? null
: () async {
SearchEReferralRequestModel searchEReferralRequestModel = new SearchEReferralRequestModel(
- patientMobileNumber: _selectedCountry['code'] + _mobileTextController.text,
+ patientMobileNumber: _selectedCountry['code'] + mobileNo,
);
if (selectedCriteria.value == 1) {
searchEReferralRequestModel.identificationNo = _searchTextController.text;
@@ -244,11 +292,12 @@ class _SearchForReferralsPageState extends State {
return "Country";
}
- void selectSearchCriteriaDialog() {
+ void selectSearchCriteriaDialog(ProjectViewModel projectViewModel) {
showDialog(
context: context,
child: SelectSearchCriteriaDialog(
selectedCriteria: selectedCriteria,
+ projectViewModel: projectViewModel,
onValueSelected: (value) {
setState(() {
selectedCriteria = value;
@@ -258,7 +307,80 @@ class _SearchForReferralsPageState extends State {
);
}
- String getSearchCriteriaName() {
- return selectedCriteria.name;
+ 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,
+ ),
+ ),
+ 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,
+ ),
+ 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,
+ ),
+ ),
+ ],
+ ),
+ ),
+ if (hasSelection) Icon(Icons.keyboard_arrow_down_outlined),
+ ],
+ ),
+ ),
+ );
+ }
+
+ String getSearchCriteriaName(ProjectViewModel projectViewModel) {
+ return projectViewModel.isArabic ? selectedCriteria.nameAr : selectedCriteria.name;
}
}
diff --git a/lib/pages/AlHabibMedicalService/HomeHealthCare/orders_log_details_page.dart b/lib/pages/AlHabibMedicalService/HomeHealthCare/orders_log_details_page.dart
index b64c5d7d..948ee8d6 100644
--- a/lib/pages/AlHabibMedicalService/HomeHealthCare/orders_log_details_page.dart
+++ b/lib/pages/AlHabibMedicalService/HomeHealthCare/orders_log_details_page.dart
@@ -8,8 +8,7 @@ import 'package:diplomaticquarterapp/uitl/date_uitl.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/uitl/utils.dart';
import 'package:diplomaticquarterapp/uitl/utils_new.dart';
-import 'package:diplomaticquarterapp/widgets/buttons/secondary_button.dart';
-import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
+import 'package:diplomaticquarterapp/widgets/dialogs/ConfirmWithMessageDialog.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
@@ -26,6 +25,28 @@ class OrdersLogDetailsPage extends StatelessWidget {
ProjectViewModel projectViewModel = Provider.of(context);
void showConfirmMessage(HomeHealthCareViewModel model, GetHHCAllPresOrdersResponseModel order) {
+ showDialog(
+ context: context,
+ child: ConfirmWithMessageDialog(
+ message: TranslationBase.of(context).cancelOrderMsg,
+ onTap: () async {
+ UpdatePresOrderRequestModel updatePresOrderRequestModel = UpdatePresOrderRequestModel(presOrderID: order.iD, rejectionReason: "", presOrderStatus: 4, editedBy: 3);
+ model.setState(ViewState.Busy);
+ await model.updateHHCPresOrder(updatePresOrderRequestModel);
+ if (model.state == ViewState.ErrorLocal) {
+ Utils.showErrorToast(model.error);
+ } else {
+ AppToast.showSuccessToast(message: TranslationBase.of(context).processDoneSuccessfully);
+ await model.getHHCAllPresOrders();
+ // await model.getHHCAllServices();
+ }
+ },
+ ),
+ );
+ return;
+
+ // todo 'sikander' remove useless code
+
showDialog(
context: context,
child: ConfirmCancelOrderDialog(
@@ -49,128 +70,130 @@ class OrdersLogDetailsPage extends StatelessWidget {
return AppScaffold(
isShowAppBar: false,
baseViewModel: model,
- body: ListView.separated(
- padding: EdgeInsets.all(21),
- physics: BouncingScrollPhysics(),
- itemBuilder: (context, index) {
- GetHHCAllPresOrdersResponseModel order = model.hhcAllPresOrders[index];
+ body: model.hhcAllPresOrders.length > 0
+ ? ListView.separated(
+ padding: EdgeInsets.all(21),
+ physics: BouncingScrollPhysics(),
+ itemBuilder: (context, index) {
+ GetHHCAllPresOrdersResponseModel order = model.hhcAllPresOrders[index];
- int status = order.status;
- String _statusDisp = projectViewModel.isArabic ? order.descriptionN : order.description;
- Color _color;
- if (status == 1) {
- //pending
- _color = Color(0xffCC9B14);
- } else if (status == 2) {
- //processing
- _color = Color(0xff2E303A);
- } else if (status == 3) {
- //completed
- _color = Color(0xff359846);
- } else if (status == 4) {
- //cancel // Rejected
- _color = Color(0xffD02127);
- }
- return Container(
- decoration: BoxDecoration(
- color: _color,
- borderRadius: BorderRadius.all(
- Radius.circular(10.0),
- ),
- boxShadow: [
- BoxShadow(
- color: Color(0xff000000).withOpacity(.05),
- blurRadius: 27,
- offset: Offset(0, -3),
- ),
- ],
- ),
- child: Container(
- // decoration: containerColorRadiusLeft(Colors.white, 12),
- margin: EdgeInsets.only(left: projectViewModel.isArabic ? 0 : 6, right: projectViewModel.isArabic ? 6 : 0),
- padding: EdgeInsets.symmetric(vertical: 14, 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),
+ int status = order.status;
+ String _statusDisp = projectViewModel.isArabic ? order.descriptionN : order.description;
+ Color _color;
+ if (status == 1) {
+ //pending
+ _color = Color(0xffCC9B14);
+ } else if (status == 2) {
+ //processing
+ _color = Color(0xff2E303A);
+ } else if (status == 3) {
+ //completed
+ _color = Color(0xff359846);
+ } else if (status == 4) {
+ //cancel // Rejected
+ _color = Color(0xffD02127);
+ }
+ return Container(
+ decoration: BoxDecoration(
+ color: _color,
+ borderRadius: BorderRadius.all(
+ Radius.circular(10.0),
+ ),
+ boxShadow: [
+ BoxShadow(
+ color: Color(0xff000000).withOpacity(.05),
+ blurRadius: 27,
+ offset: Offset(0, -3),
+ ),
+ ],
),
- ),
- // clipBehavior: Clip.antiAlias,
- child: Row(
- crossAxisAlignment: CrossAxisAlignment.start,
- children: [
- Expanded(
- child: Column(
- mainAxisAlignment: MainAxisAlignment.start,
- crossAxisAlignment: CrossAxisAlignment.start,
- children: [
- Text(
- _statusDisp,
- style: TextStyle(fontSize: 12, fontWeight: FontWeight.w600, color: _color, letterSpacing: -0.4, height: 16 / 10),
- ),
- SizedBox(height: 6),
- Text(
- '${TranslationBase.of(context).requestID}: ${order.iD}',
- style: TextStyle(fontSize: 16, fontWeight: FontWeight.w600, color: Color(0xff2E303A), letterSpacing: -0.64, height: 25 / 16),
- ),
- Row(
+ child: Container(
+ // decoration: containerColorRadiusLeft(Colors.white, 12),
+ margin: EdgeInsets.only(left: projectViewModel.isArabic ? 0 : 6, right: projectViewModel.isArabic ? 6 : 0),
+ padding: EdgeInsets.symmetric(vertical: 14, 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),
+ ),
+ ),
+ // clipBehavior: Clip.antiAlias,
+ child: Row(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: [
+ Expanded(
+ child: Column(
+ mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
- TranslationBase.of(context).hospital + ": ",
- style: TextStyle(fontSize: 12, fontWeight: FontWeight.w600, color: Color(0xff575757), letterSpacing: -0.4, height: 16 / 10),
+ _statusDisp,
+ style: TextStyle(fontSize: 12, fontWeight: FontWeight.w600, color: _color, letterSpacing: -0.4, height: 16 / 10),
),
- Expanded(
- child: Text(
- !projectViewModel.isArabic ? order.nearestProjectDescription.trim().toString() : order.nearestProjectDescriptionN.toString(),
- style: TextStyle(fontSize: 14, fontWeight: FontWeight.w600, color: Color(0xff2B353E), letterSpacing: -0.56),
- ),
+ SizedBox(height: 6),
+ Text(
+ '${TranslationBase.of(context).requestID}: ${order.iD}',
+ style: TextStyle(fontSize: 16, fontWeight: FontWeight.w600, color: Color(0xff2E303A), letterSpacing: -0.64, height: 25 / 16),
),
+ Row(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: [
+ Text(
+ TranslationBase.of(context).hospital + ": ",
+ style: TextStyle(fontSize: 12, fontWeight: FontWeight.w600, color: Color(0xff575757), letterSpacing: -0.4, height: 16 / 10),
+ ),
+ Expanded(
+ child: Text(
+ !projectViewModel.isArabic ? order.nearestProjectDescription.trim().toString() : order.nearestProjectDescriptionN.toString(),
+ style: TextStyle(fontSize: 14, fontWeight: FontWeight.w600, color: Color(0xff2B353E), letterSpacing: -0.56),
+ ),
+ ),
+ ],
+ )
],
- )
- ],
- ),
- ),
- Column(
- mainAxisAlignment: MainAxisAlignment.spaceBetween,
- crossAxisAlignment: CrossAxisAlignment.end,
- children: [
- Text(
- DateUtil.formatDateToDate(DateUtil.convertStringToDate(order.createdOn), projectViewModel.isArabic),
- style: TextStyle(fontSize: 12, fontWeight: FontWeight.w600, color: Color(0xff2B353E), letterSpacing: -0.4, height: 16 / 10),
+ ),
),
- SizedBox(height: 12),
- if (order.status == 1 || order.status == 2)
- InkWell(
- onTap: () {
- showConfirmMessage(model, order);
- },
- child: Container(
- padding: EdgeInsets.symmetric(vertical: 8, horizontal: 14),
- decoration: BoxDecoration(
- color: Color(0xffD02127),
- border: Border.all(color: Colors.white, width: 1),
- borderRadius: BorderRadius.circular(10),
- ),
- child: Text(
- TranslationBase.of(context).cancel_nocaps,
- style: TextStyle(fontSize: 12, fontWeight: FontWeight.w600, color: Colors.white, letterSpacing: -0.4),
- ),
+ Column(
+ mainAxisAlignment: MainAxisAlignment.spaceBetween,
+ crossAxisAlignment: CrossAxisAlignment.end,
+ children: [
+ Text(
+ DateUtil.getDayMonthYearDateFormatted(DateUtil.convertStringToDate(order.createdOn)),
+ style: TextStyle(fontSize: 12, fontWeight: FontWeight.w600, color: Color(0xff2B353E), letterSpacing: -0.4, height: 16 / 10),
),
- ),
+ SizedBox(height: 12),
+ if (order.status == 1 || order.status == 2)
+ InkWell(
+ onTap: () {
+ showConfirmMessage(model, order);
+ },
+ child: Container(
+ padding: EdgeInsets.symmetric(vertical: 8, horizontal: 14),
+ decoration: BoxDecoration(
+ color: Color(0xffD02127),
+ border: Border.all(color: Colors.white, width: 1),
+ borderRadius: BorderRadius.circular(10),
+ ),
+ child: Text(
+ TranslationBase.of(context).cancel_nocaps,
+ style: TextStyle(fontSize: 12, fontWeight: FontWeight.w600, color: Colors.white, letterSpacing: -0.4),
+ ),
+ ),
+ ),
+ ],
+ ),
],
),
- ],
- ),
- ),
- );
- },
- separatorBuilder: (context, index) => SizedBox(height: 12),
- itemCount: model.hhcAllPresOrders.length),
+ ),
+ );
+ },
+ separatorBuilder: (context, index) => SizedBox(height: 12),
+ itemCount: model.hhcAllPresOrders.length)
+ : getNoDataWidget(context),
);
}
}
diff --git a/lib/pages/AlHabibMedicalService/all_habib_medical_service_page.dart b/lib/pages/AlHabibMedicalService/all_habib_medical_service_page.dart
index b0b14f1d..ce3bde14 100644
--- a/lib/pages/AlHabibMedicalService/all_habib_medical_service_page.dart
+++ b/lib/pages/AlHabibMedicalService/all_habib_medical_service_page.dart
@@ -244,10 +244,7 @@ class _AllHabibMedicalServiceState extends State {
imageLocation: 'assets/images/emergency_service_image.png',
title: TranslationBase.of(context).emergencyService,
),
- ServicesContainer(
- onTap: () => getPharmacyToken(),
- imageLocation: 'assets/images/pharmacy_logo.png',
- title: TranslationBase.of(context).pharmacy),
+ ServicesContainer(onTap: () => getPharmacyToken(), imageLocation: 'assets/images/pharmacy_logo.png', title: TranslationBase.of(context).pharmacy),
ServicesContainer(
onTap: () => Navigator.push(
context,
@@ -332,9 +329,7 @@ class _AllHabibMedicalServiceState extends State {
ServicesContainer(
onTap: () => Navigator.push(
context,
- FadePage(
- page: SmartWatchInstructions()
- ),
+ FadePage(page: SmartWatchInstructions()),
),
imageLocation: 'assets/images/new-design/smartwatch_icon.png',
title: TranslationBase.of(context).smartWatches,
diff --git a/lib/pages/AlHabibMedicalService/h2o/Dialog/confirm_add_amount_dialog.dart b/lib/pages/AlHabibMedicalService/h2o/Dialog/confirm_add_amount_dialog.dart
index 33e874db..0197873b 100644
--- a/lib/pages/AlHabibMedicalService/h2o/Dialog/confirm_add_amount_dialog.dart
+++ b/lib/pages/AlHabibMedicalService/h2o/Dialog/confirm_add_amount_dialog.dart
@@ -4,101 +4,101 @@ 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';
-
+// todo 'sikander' remove useless code
// ignore: must_be_immutable
-class ConfirmAddAmountDialog extends StatefulWidget {
- final int amount;
- final String unit;
- final H2OViewModel model;
-
- ConfirmAddAmountDialog({Key key, this.model, this.amount, this.unit = "ml"});
-
- @override
- _ConfirmAddAmountDialogState createState() => _ConfirmAddAmountDialogState();
-}
-
-class _ConfirmAddAmountDialogState extends State {
- @override
- void initState() {
- super.initState();
- }
-
- @override
- Widget build(BuildContext context) {
- return SimpleDialog(
- contentPadding: EdgeInsets.fromLTRB(24.0, 0.0, 24.0, 8.0),
- titlePadding: EdgeInsets.fromLTRB(24.0, 16.0, 24.0, 8.0),
- title: Center(
- child: Texts(
- TranslationBase.of(context).confirm,
- textAlign: TextAlign.center,
- color: Colors.black,
- ),
- ),
- children: [
- Column(
- children: [
- Divider(),
- Center(
- child: Texts(
- "${TranslationBase.of(context).areyousure} ${widget.amount} ${widget.unit} ?",
- textAlign: TextAlign.center,
- color: Colors.grey,
- ),
- ),
- SizedBox(
- height: 16.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: () async {
- InsertUserActivityRequestModel insertUserActivityRequestModel = InsertUserActivityRequestModel(quantityIntake: widget.amount);
- await widget.model.insertUserActivity(insertUserActivityRequestModel);
- Navigator.pop(context);
- },
- child: Padding(
- padding: const EdgeInsets.all(8.0),
- child: Center(
- child: Texts(
- TranslationBase.of(context).ok.toUpperCase(),
- fontWeight: FontWeight.w400,
- )),
- ),
- ),
- ),
- ],
- ),
- ],
- )
- ],
- );
- }
-}
+// class ConfirmAddAmountDialog extends StatefulWidget {
+// final int amount;
+// final String unit;
+// final H2OViewModel model;
+//
+// ConfirmAddAmountDialog({Key key, this.model, this.amount, this.unit = "ml"});
+//
+// @override
+// _ConfirmAddAmountDialogState createState() => _ConfirmAddAmountDialogState();
+// }
+//
+// class _ConfirmAddAmountDialogState extends State {
+// @override
+// void initState() {
+// super.initState();
+// }
+//
+// @override
+// Widget build(BuildContext context) {
+// return SimpleDialog(
+// contentPadding: EdgeInsets.fromLTRB(24.0, 0.0, 24.0, 8.0),
+// titlePadding: EdgeInsets.fromLTRB(24.0, 16.0, 24.0, 8.0),
+// title: Center(
+// child: Texts(
+// TranslationBase.of(context).confirm,
+// textAlign: TextAlign.center,
+// color: Colors.black,
+// ),
+// ),
+// children: [
+// Column(
+// children: [
+// Divider(),
+// Center(
+// child: Texts(
+// "${TranslationBase.of(context).areyousure} ${widget.amount} ${widget.unit} ?",
+// textAlign: TextAlign.center,
+// color: Colors.grey,
+// ),
+// ),
+// SizedBox(
+// height: 16.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: () async {
+// InsertUserActivityRequestModel insertUserActivityRequestModel = InsertUserActivityRequestModel(quantityIntake: widget.amount);
+// await widget.model.insertUserActivity(insertUserActivityRequestModel);
+// Navigator.pop(context);
+// },
+// child: Padding(
+// padding: const EdgeInsets.all(8.0),
+// child: Center(
+// child: Texts(
+// TranslationBase.of(context).ok.toUpperCase(),
+// fontWeight: FontWeight.w400,
+// )),
+// ),
+// ),
+// ),
+// ],
+// ),
+// ],
+// )
+// ],
+// );
+// }
+// }
diff --git a/lib/pages/AlHabibMedicalService/h2o/Dialog/select_amount_dialog.dart b/lib/pages/AlHabibMedicalService/h2o/Dialog/select_amount_dialog.dart
index 2df90419..4d02c27b 100644
--- a/lib/pages/AlHabibMedicalService/h2o/Dialog/select_amount_dialog.dart
+++ b/lib/pages/AlHabibMedicalService/h2o/Dialog/select_amount_dialog.dart
@@ -4,163 +4,163 @@ 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';
-
+// todo 'sikander' remove useless code
// ignore: must_be_immutable
-class SelectAmountDialog extends StatefulWidget {
- final Function(AmountModel) onValueSelected;
- AmountModel selectedAmount;
-
- SelectAmountDialog({Key key, this.onValueSelected, this.selectedAmount});
-
- @override
- _SelectAmountDialogState createState() => _SelectAmountDialogState();
-}
-
-class _SelectAmountDialogState extends State {
- List searchAmount = [
- AmountModel(name: "l", nameAr: "لتر", value: 1),
- AmountModel(name: "ml", nameAr: "مم لتر", value: 2),
- ];
- @override
- void initState() {
- super.initState();
- widget.selectedAmount = widget.selectedAmount ?? searchAmount[0];
- getLanguage();
- }
-
- String languageID = "en";
-
- void getLanguage() async {
- languageID = await sharedPref.getString(APP_LANGUAGE);
- setState(() {});
- }
-
- @override
- Widget build(BuildContext context) {
- return SimpleDialog(
- children: [
- Column(
- children: [
- Texts(
- TranslationBase.of(context).preferredunit,
- fontSize: 20,
- ),
- Divider(),
- ...List.generate(
- searchAmount.length,
- (index) => Column(
- crossAxisAlignment: CrossAxisAlignment.start,
- children: [
- SizedBox(
- height: 2,
- ),
- Row(
- children: [
- Expanded(
- flex: 1,
- child: InkWell(
- onTap: () {
- setState(() {
- widget.selectedAmount = searchAmount[index];
- });
- },
- child: ListTile(
- title: Text(languageID == "ar" ? searchAmount[index].nameAr : searchAmount[index].name),
- leading: Radio(
- value: searchAmount[index],
- groupValue: widget.selectedAmount,
- activeColor: Colors.red[800],
- onChanged: (value) {
- setState(() {
- widget.selectedAmount = 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.selectedAmount);
- Navigator.pop(context);
- },
- child: Padding(
- padding: const EdgeInsets.all(8.0),
- child: Center(
- child: Texts(
- TranslationBase.of(context).ok,
- fontWeight: FontWeight.w400,
- )),
- ),
- ),
- ),
- ],
- )
- ],
- )
- ],
- );
- }
-}
-
-class AmountModel {
- String name;
- String nameAr;
- int value;
-
- AmountModel({this.name, this.nameAr, this.value});
-
- AmountModel.fromJson(Map json) {
- name = json['name'];
- nameAr = json['nameAr'];
- value = json['value'];
- }
-
- Map toJson() {
- final Map data = new Map();
- data['name'] = this.name;
- data['nameAr'] = this.nameAr;
- data['value'] = this.value;
- return data;
- }
-}
+// class SelectAmountDialog extends StatefulWidget {
+// final Function(AmountModel) onValueSelected;
+// AmountModel selectedAmount;
+//
+// SelectAmountDialog({Key key, this.onValueSelected, this.selectedAmount});
+//
+// @override
+// _SelectAmountDialogState createState() => _SelectAmountDialogState();
+// }
+//
+// class _SelectAmountDialogState extends State {
+// List searchAmount = [
+// AmountModel(name: "l", nameAr: "لتر", value: 1),
+// AmountModel(name: "ml", nameAr: "مم لتر", value: 2),
+// ];
+// @override
+// void initState() {
+// super.initState();
+// widget.selectedAmount = widget.selectedAmount ?? searchAmount[0];
+// getLanguage();
+// }
+//
+// String languageID = "en";
+//
+// void getLanguage() async {
+// languageID = await sharedPref.getString(APP_LANGUAGE);
+// setState(() {});
+// }
+//
+// @override
+// Widget build(BuildContext context) {
+// return SimpleDialog(
+// children: [
+// Column(
+// children: [
+// Texts(
+// TranslationBase.of(context).preferredunit,
+// fontSize: 20,
+// ),
+// Divider(),
+// ...List.generate(
+// searchAmount.length,
+// (index) => Column(
+// crossAxisAlignment: CrossAxisAlignment.start,
+// children: [
+// SizedBox(
+// height: 2,
+// ),
+// Row(
+// children: [
+// Expanded(
+// flex: 1,
+// child: InkWell(
+// onTap: () {
+// setState(() {
+// widget.selectedAmount = searchAmount[index];
+// });
+// },
+// child: ListTile(
+// title: Text(languageID == "ar" ? searchAmount[index].nameAr : searchAmount[index].name),
+// leading: Radio(
+// value: searchAmount[index],
+// groupValue: widget.selectedAmount,
+// activeColor: Colors.red[800],
+// onChanged: (value) {
+// setState(() {
+// widget.selectedAmount = 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.selectedAmount);
+// Navigator.pop(context);
+// },
+// child: Padding(
+// padding: const EdgeInsets.all(8.0),
+// child: Center(
+// child: Texts(
+// TranslationBase.of(context).ok,
+// fontWeight: FontWeight.w400,
+// )),
+// ),
+// ),
+// ),
+// ],
+// )
+// ],
+// )
+// ],
+// );
+// }
+// }
+//
+// class AmountModel {
+// String name;
+// String nameAr;
+// int value;
+//
+// AmountModel({this.name, this.nameAr, this.value});
+//
+// AmountModel.fromJson(Map json) {
+// name = json['name'];
+// nameAr = json['nameAr'];
+// value = json['value'];
+// }
+//
+// Map toJson() {
+// final Map data = new Map();
+// data['name'] = this.name;
+// data['nameAr'] = this.nameAr;
+// data['value'] = this.value;
+// return data;
+// }
+// }
diff --git a/lib/pages/AlHabibMedicalService/h2o/add_custom_amount.dart b/lib/pages/AlHabibMedicalService/h2o/add_custom_amount.dart
index 2b22a100..641f6df7 100644
--- a/lib/pages/AlHabibMedicalService/h2o/add_custom_amount.dart
+++ b/lib/pages/AlHabibMedicalService/h2o/add_custom_amount.dart
@@ -10,123 +10,124 @@ import 'package:flutter/material.dart';
import 'Dialog/select_amount_dialog.dart';
-class AddCustomAmount extends StatefulWidget {
- final H2OViewModel model;
- final Function changePageViewIndex;
-
- const AddCustomAmount({Key key, this.model, this.changePageViewIndex})
- : super(key: key);
-
- @override
- _AddCustomAmountState createState() => _AddCustomAmountState();
-}
-
-class _AddCustomAmountState extends State {
- TextEditingController _nameTextController = TextEditingController();
- AmountModel selectedAmount;
-
- @override
- void initState() {
- setState(() {
- _nameTextController.text = "0";
- });
- super.initState();
- }
-
- @override
- Widget build(BuildContext context) {
- return AppScaffold(
- isShowAppBar: true,
- appBarTitle:TranslationBase.of(context).customLabel,
- body: SingleChildScrollView(
- physics: ScrollPhysics(),
- child: Container(
- margin: EdgeInsets.all(12),
- child: Center(
- child: FractionallySizedBox(
- widthFactor: 0.94,
- child: Column(
- crossAxisAlignment: CrossAxisAlignment.start,
- children: [
- SizedBox(
- height: 12,
- ),
- NewTextFields(
- hintText: TranslationBase.of(context).h2oAmountOfWater,
- // type: "Number",
- controller: _nameTextController,
- ),
- SizedBox(
- height: 12,
- ),
- InkWell(
- onTap: () => confirmAmountTypeDialog(),
- 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(getAmountName()),
- Icon(Icons.arrow_drop_down)
- ],
- ),
- ),
- ),
- SizedBox(
- height: 12,
- ),
- SecondaryButton(
- textColor: Colors.white,
- label: TranslationBase.of(context).ok,
- onTap: () async {
- Navigator.of(context).pop();
- showConfirmMessage (int.parse(_nameTextController.text), widget.model);
- },
- // loading: model.state == ViewState.BusyLocal,
- disabled: _nameTextController.text.isEmpty || selectedAmount == null),
- SizedBox(
- height: 12,
- ),
- ],
- ),
- ),
- ),
- ),
- ),
- );
- }
-
-
-void confirmAmountTypeDialog() {
- showDialog(
- context: context,
- child: SelectAmountDialog(
- selectedAmount: selectedAmount,
- onValueSelected: (value) {
- setState(() {
- selectedAmount = value;
- });
- },
- ),
- );
-}
-
-
- String getAmountName() {
- if (selectedAmount != null)
- return selectedAmount.name;
- else
- return TranslationBase.of(context).selectUnit;
- }
-
-
-
- void showConfirmMessage(int amount, H2OViewModel model) {
- showDialog(context: context, child: ConfirmAddAmountDialog(model: model,amount:amount,));
- }
-}
+// todo 'sikander' remove useless code
+// class AddCustomAmount extends StatefulWidget {
+// final H2OViewModel model;
+// final Function changePageViewIndex;
+//
+// const AddCustomAmount({Key key, this.model, this.changePageViewIndex})
+// : super(key: key);
+//
+// @override
+// _AddCustomAmountState createState() => _AddCustomAmountState();
+// }
+//
+// class _AddCustomAmountState extends State {
+// TextEditingController _nameTextController = TextEditingController();
+// AmountModel selectedAmount;
+//
+// @override
+// void initState() {
+// setState(() {
+// _nameTextController.text = "0";
+// });
+// super.initState();
+// }
+//
+// @override
+// Widget build(BuildContext context) {
+// return AppScaffold(
+// isShowAppBar: true,
+// appBarTitle:TranslationBase.of(context).customLabel,
+// body: SingleChildScrollView(
+// physics: ScrollPhysics(),
+// child: Container(
+// margin: EdgeInsets.all(12),
+// child: Center(
+// child: FractionallySizedBox(
+// widthFactor: 0.94,
+// child: Column(
+// crossAxisAlignment: CrossAxisAlignment.start,
+// children: [
+// SizedBox(
+// height: 12,
+// ),
+// NewTextFields(
+// hintText: TranslationBase.of(context).h2oAmountOfWater,
+// // type: "Number",
+// controller: _nameTextController,
+// ),
+// SizedBox(
+// height: 12,
+// ),
+// InkWell(
+// onTap: () => confirmAmountTypeDialog(),
+// 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(getAmountName()),
+// Icon(Icons.arrow_drop_down)
+// ],
+// ),
+// ),
+// ),
+// SizedBox(
+// height: 12,
+// ),
+// SecondaryButton(
+// textColor: Colors.white,
+// label: TranslationBase.of(context).ok,
+// onTap: () async {
+// Navigator.of(context).pop();
+// showConfirmMessage (int.parse(_nameTextController.text), widget.model);
+// },
+// // loading: model.state == ViewState.BusyLocal,
+// disabled: _nameTextController.text.isEmpty || selectedAmount == null),
+// SizedBox(
+// height: 12,
+// ),
+// ],
+// ),
+// ),
+// ),
+// ),
+// ),
+// );
+// }
+//
+//
+// void confirmAmountTypeDialog() {
+// showDialog(
+// context: context,
+// child: SelectAmountDialog(
+// selectedAmount: selectedAmount,
+// onValueSelected: (value) {
+// setState(() {
+// selectedAmount = value;
+// });
+// },
+// ),
+// );
+// }
+//
+//
+// String getAmountName() {
+// if (selectedAmount != null)
+// return selectedAmount.name;
+// else
+// return TranslationBase.of(context).selectUnit;
+// }
+//
+//
+//
+// void showConfirmMessage(int amount, H2OViewModel model) {
+// showDialog(context: context, child: ConfirmAddAmountDialog(model: model,amount:amount,));
+// }
+// }
diff --git a/lib/pages/AlHabibMedicalService/h2o/h2o_page.dart b/lib/pages/AlHabibMedicalService/h2o/h2o_page.dart
index 982b9044..d216cd21 100644
--- a/lib/pages/AlHabibMedicalService/h2o/h2o_page.dart
+++ b/lib/pages/AlHabibMedicalService/h2o/h2o_page.dart
@@ -4,6 +4,7 @@ import 'package:diplomaticquarterapp/config/config.dart';
import 'package:diplomaticquarterapp/core/model/ImagesInfo.dart';
import 'package:diplomaticquarterapp/core/viewModels/AlHabibMedicalService/H2O_view_model.dart';
import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
+import 'package:diplomaticquarterapp/extensions/string_extensions.dart';
import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/h2o/h20_setting.dart';
import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/h2o/month_page.dart';
import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/h2o/today_page.dart';
@@ -14,7 +15,6 @@ import 'package:diplomaticquarterapp/pages/medical/medical_profile_page_new.dart
import 'package:diplomaticquarterapp/routes.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/widgets/bottom_navigation/bottom_nav_bar.dart';
-import 'package:diplomaticquarterapp/extensions/string_extensions.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
import 'package:flutter/cupertino.dart';
@@ -77,132 +77,70 @@ class _H2OPageState extends State with SingleTickerProviderStateMixin {
},
),
],
- body: Scaffold(
- // extendBodyBehindAppBar: true,
- // appBar: PreferredSize(
- // preferredSize: Size.fromHeight(65.0),
- // child: Stack(
- // children: [
- // Positioned(
- // bottom: 1,
- // left: 0,
- // right: 0,
- // child: BackdropFilter(
- // filter: ImageFilter.blur(sigmaX: 10, sigmaY: 10),
- // child: Container(
- // color: Theme.of(context).scaffoldBackgroundColor.withOpacity(0.8),
- // height: 70.0,
- // ),
- // ),
- // ),
- // Center(
- // child: Container(
- // height: 60.0,
- // alignment: Alignment.center,
- // // margin: EdgeInsets.only(top: 10.0),
- // // width: MediaQuery.of(context).size.width * 0.9,
- //
- // child: TabBar(
- // isScrollable: false,
- // controller: _tabController,
- // indicatorWeight: 5.0,
- // indicatorSize: TabBarIndicatorSize.tab,
- // indicatorColor: Colors.red[800],
- // labelColor: Theme.of(context).primaryColor,
- // labelPadding: EdgeInsets.only(top: 4.0, left: 10.0, right: 13.0),
- // unselectedLabelColor: Colors.grey[800],
- // tabs: [
- // Container(
- // width: MediaQuery.of(context).size.width * 0.28,
- // child: Center(
- // child: Texts(TranslationBase.of(context).today),
- // ),
- // ),
- // Container(
- // width: MediaQuery.of(context).size.width * 0.28,
- // child: Center(
- // child: Texts(TranslationBase.of(context).week),
- // ),
- // ),
- // Container(
- // width: MediaQuery.of(context).size.width * 0.28,
- // child: Center(
- // child: Texts(TranslationBase.of(context).month),
- // ),
- // ),
- // ],
- // ),
- // ),
- // ),
- // ],
- // ),
- // ),
- // backgroundColor: Colors.white,
- body: Column(
- children: [
- TabBar(
+ body: Column(
+ children: [
+ TabBar(
+ controller: _tabController,
+ indicatorWeight: 3.0,
+ indicatorSize: TabBarIndicatorSize.tab,
+ labelColor: Color(0xff2B353E),
+ unselectedLabelColor: Color(0xff575757),
+ labelPadding: EdgeInsets.only(top: 15, bottom: 13, left: 20, right: 20),
+ labelStyle: TextStyle(
+ fontFamily: projectViewModel.isArabic ? 'Cairo' : 'Poppins',
+ fontSize: 16,
+ fontWeight: FontWeight.w600,
+ letterSpacing: -0.48,
+ ),
+ unselectedLabelStyle: TextStyle(
+ fontFamily: projectViewModel.isArabic ? 'Cairo' : 'Poppins',
+ fontSize: 16,
+ fontWeight: FontWeight.w600,
+ letterSpacing: -0.48,
+ ),
+ tabs: [Text(TranslationBase.of(context).today), Text(TranslationBase.of(context).week), Text(TranslationBase.of(context).month.toLowerCase().capitalizeFirstofEach)],
+ ),
+ Expanded(
+ child: TabBarView(
+ physics: BouncingScrollPhysics(),
controller: _tabController,
- indicatorWeight: 3.0,
- indicatorSize: TabBarIndicatorSize.tab,
- labelColor: Color(0xff2B353E),
- unselectedLabelColor: Color(0xff575757),
- labelPadding: EdgeInsets.only(top: 15, bottom: 13, left: 20, right: 20),
- labelStyle: TextStyle(
- fontFamily: projectViewModel.isArabic ? 'Cairo' : 'Poppins',
- fontSize: 16,
- fontWeight: FontWeight.w600,
- letterSpacing: -0.48,
- ),
- unselectedLabelStyle: TextStyle(
- fontFamily: projectViewModel.isArabic ? 'Cairo' : 'Poppins',
- fontSize: 16,
- fontWeight: FontWeight.w600,
- letterSpacing: -0.48,
- ),
- tabs: [Text(TranslationBase.of(context).today), Text(TranslationBase.of(context).week), Text(TranslationBase.of(context).month.toLowerCase().capitalizeFirstofEach)],
+ children: [TodayPage(), WeekPage(), MonthPage()],
),
- Expanded(
- child: TabBarView(
- physics: BouncingScrollPhysics(),
- controller: _tabController,
- children: [TodayPage(), WeekPage(), MonthPage()],
- ),
- )
- ],
- ),
- bottomNavigationBar: BottomNavBar(
- changeIndex: (index) {
- if (index == 0) {
- IS_VOICE_COMMAND_CLOSED = false;
- } else if (index == 1) {
- Navigator.push(
- context,
- FadePage(
- page: AppScaffold(
- appBarTitle: TranslationBase.of(context).medicalProfile,
- isShowAppBar: true,
- showHomeAppBarIcon: false,
- appBarIcons: [
- IconButton(
- icon: Image.asset("assets/images/new-design/setting_gear_icon.png"),
- color: Colors.white,
- onPressed: () => Navigator.of(context).pushNamed(
- SETTINGS,
- ),
+ )
+ ],
+ ),
+ bottomNavigationBar: BottomNavBar(
+ changeIndex: (index) {
+ if (index == 0) {
+ IS_VOICE_COMMAND_CLOSED = false;
+ } else if (index == 1) {
+ Navigator.push(
+ context,
+ FadePage(
+ page: AppScaffold(
+ appBarTitle: TranslationBase.of(context).medicalProfile,
+ isShowAppBar: true,
+ showHomeAppBarIcon: false,
+ appBarIcons: [
+ IconButton(
+ icon: Image.asset("assets/images/new-design/setting_gear_icon.png"),
+ color: Colors.white,
+ onPressed: () => Navigator.of(context).pushNamed(
+ SETTINGS,
),
- ],
- body: MedicalProfilePageNew())));
- } else if (index == 2) {
- Navigator.of(context).pushNamedAndRemoveUntil(HOME, (Route route) => false);
- } else if (index == 3) {
- Navigator.of(context).pushNamed(MY_FAMILIY);
- } else if (index == 4) {
- Navigator.push(context, FadePage(page: ToDo(isShowAppBar: false)));
- }
- },
- showHomeIcon: true,
- index: 0,
- ),
+ ),
+ ],
+ body: MedicalProfilePageNew())));
+ } else if (index == 2) {
+ Navigator.of(context).pushNamedAndRemoveUntil(HOME, (Route route) => false);
+ } else if (index == 3) {
+ Navigator.of(context).pushNamed(MY_FAMILIY);
+ } else if (index == 4) {
+ Navigator.push(context, FadePage(page: ToDo(isShowAppBar: false)));
+ }
+ },
+ showHomeIcon: true,
+ index: 0,
),
),
);
diff --git a/lib/pages/AlHabibMedicalService/h2o/month_page.dart b/lib/pages/AlHabibMedicalService/h2o/month_page.dart
index 8867fb77..daf91cb9 100644
--- a/lib/pages/AlHabibMedicalService/h2o/month_page.dart
+++ b/lib/pages/AlHabibMedicalService/h2o/month_page.dart
@@ -6,10 +6,11 @@ import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/widgets/charts/app_bar_chart.dart';
import 'package:diplomaticquarterapp/widgets/errors/app_embedded_error.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
-import 'package:diplomaticquarterapp/widgets/progress_indicator/app_circular_progress_Indeicator.dart';
+import 'package:diplomaticquarterapp/uitl/utils_new.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
+import 'package:diplomaticquarterapp/widgets/charts/custom_line_chart.dart';
class MonthPage extends StatelessWidget {
@override
@@ -21,37 +22,39 @@ class MonthPage extends StatelessWidget {
isShowAppBar: false,
appBarTitle: TranslationBase.of(context).h2o,
baseViewModel: model,
- body: Padding(
- padding: EdgeInsets.all(8.0),
- child: ListView(
- children: [
- Center(
- child: Text(
- TranslationBase.of(context).waterConsumedInMonth,
- textAlign: TextAlign.center,
- style: TextStyle(fontSize: 20.0, color: Colors.black87),
- ),
- ),
- SizedBox(height: 16),
- Row(
- mainAxisAlignment: MainAxisAlignment.center,
- children: [
- Container(
- height: 10,
- width: 40,
- color: Colors.blue,
+ body: SingleChildScrollView(
+ padding: EdgeInsets.all(21),
+ physics: BouncingScrollPhysics(),
+ child: (model.userProgressForMonthDataSeries ?? []).isEmpty
+ ? getNoDataWidget(context)
+ : Container(
+ padding: EdgeInsets.fromLTRB(16, 14, 16, 14),
+ decoration: BoxDecoration(
+ color: Colors.white,
+ borderRadius: BorderRadius.all(
+ Radius.circular(10.0),
+ ),
+ boxShadow: [
+ BoxShadow(
+ color: Color(0xff000000).withOpacity(.05),
+ blurRadius: 27,
+ offset: Offset(0, -3),
+ ),
+ ],
),
- SizedBox(width: 8),
- Text(
- TranslationBase.of(context).waterConsumedInMonth,
- style: TextStyle(fontSize: 12.0),
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ mainAxisSize: MainAxisSize.min,
+ children: [
+ Text(
+ TranslationBase.of(context).waterConsumedInMonth,
+ style: TextStyle(fontSize: 16.0, color: Color(0xff2E303A), fontWeight: FontWeight.w600, letterSpacing: -0.64),
+ ),
+ SizedBox(height: 24),
+ CustomLineChart(model.userProgressForMonthDataSeries, projectViewModel.isArabic),
+ ],
),
- ],
- ),
- // SizedBox(height: 8),
- AppBarChart(seriesList: model.userProgressForMonthDataSeries, isArabic: projectViewModel.isArabic),
- ],
- ),
+ ),
),
),
);
diff --git a/lib/pages/AlHabibMedicalService/h2o/today_page.dart b/lib/pages/AlHabibMedicalService/h2o/today_page.dart
index 85c3544c..583dabbf 100644
--- a/lib/pages/AlHabibMedicalService/h2o/today_page.dart
+++ b/lib/pages/AlHabibMedicalService/h2o/today_page.dart
@@ -302,25 +302,11 @@ class _TodayPageState extends State {
);
}
- Widget _circularButton(context, int value, model, {bool isCustom = false}) {
+ Widget _circularButton(context, int value, model) {
String _text = "$value${TranslationBase.of(context).ml}";
- if (isCustom) {
- _text = TranslationBase.of(context).custom;
- }
return InkWell(
onTap: () {
- if (isCustom) {
- Navigator.push(
- context,
- FadePage(
- page: AddCustomAmount(
- model: model,
- ),
- ),
- );
- } else {
- showConfirmMessage(context, value, model);
- }
+ showConfirmMessage(context, value, model);
},
child: Container(
padding: EdgeInsets.all(21),
diff --git a/lib/pages/AlHabibMedicalService/h2o/week_page.dart b/lib/pages/AlHabibMedicalService/h2o/week_page.dart
index 6f4423b2..83529afd 100644
--- a/lib/pages/AlHabibMedicalService/h2o/week_page.dart
+++ b/lib/pages/AlHabibMedicalService/h2o/week_page.dart
@@ -1,12 +1,10 @@
-import 'package:diplomaticquarterapp/core/enum/viewstate.dart';
import 'package:diplomaticquarterapp/core/viewModels/AlHabibMedicalService/H2O_view_model.dart';
import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
import 'package:diplomaticquarterapp/pages/base/base_view.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
-import 'package:diplomaticquarterapp/widgets/charts/app_bar_chart.dart';
-import 'package:diplomaticquarterapp/widgets/errors/app_embedded_error.dart';
+import 'package:diplomaticquarterapp/uitl/utils_new.dart';
+import 'package:diplomaticquarterapp/widgets/charts/custom_line_chart.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
-import 'package:diplomaticquarterapp/widgets/progress_indicator/app_circular_progress_Indeicator.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
@@ -21,37 +19,39 @@ class WeekPage extends StatelessWidget {
isShowAppBar: false,
appBarTitle: TranslationBase.of(context).h2o,
baseViewModel: model,
- body: Padding(
- padding: EdgeInsets.all(8.0),
- child: ListView(
- children: [
- Center(
- child: Text(
- TranslationBase.of(context).waterConsumedInWeek,
- textAlign: TextAlign.center,
- style: TextStyle(fontSize: 20.0, color: Colors.black87),
- ),
- ),
- SizedBox(height: 16),
- Row(
- mainAxisAlignment: MainAxisAlignment.center,
- children: [
- Container(
- height: 10,
- width: 40,
- color: Colors.blue,
+ body: SingleChildScrollView(
+ padding: EdgeInsets.all(21),
+ physics: BouncingScrollPhysics(),
+ child: (model.userProgressForWeekDataSeries ?? []).isEmpty
+ ? getNoDataWidget(context)
+ : Container(
+ padding: EdgeInsets.fromLTRB(16, 14, 16, 14),
+ decoration: BoxDecoration(
+ color: Colors.white,
+ borderRadius: BorderRadius.all(
+ Radius.circular(10.0),
+ ),
+ boxShadow: [
+ BoxShadow(
+ color: Color(0xff000000).withOpacity(.05),
+ blurRadius: 27,
+ offset: Offset(0, -3),
+ ),
+ ],
),
- SizedBox(width: 8),
- Text(
- TranslationBase.of(context).waterConsumedInWeek,
- style: TextStyle(fontSize: 12.0),
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ mainAxisSize: MainAxisSize.min,
+ children: [
+ Text(
+ TranslationBase.of(context).waterConsumedInWeek,
+ style: TextStyle(fontSize: 16.0, color: Color(0xff2E303A), fontWeight: FontWeight.w600, letterSpacing: -0.64),
+ ),
+ SizedBox(height: 24),
+ CustomLineChart(model.userProgressForWeekDataSeries, projectViewModel.isArabic),
+ ],
),
- ],
- ),
- // SizedBox(height: 8),
- AppBarChart(seriesList: model.userProgressForWeekDataSeries,isArabic: projectViewModel.isArabic),
- ],
- ),
+ ),
),
),
);
diff --git a/lib/pages/AlHabibMedicalService/h2o/widgets/h20_floating_action_button.dart b/lib/pages/AlHabibMedicalService/h2o/widgets/h20_floating_action_button.dart
index 59a0a386..9b876cc1 100644
--- a/lib/pages/AlHabibMedicalService/h2o/widgets/h20_floating_action_button.dart
+++ b/lib/pages/AlHabibMedicalService/h2o/widgets/h20_floating_action_button.dart
@@ -9,189 +9,193 @@ import 'package:flutter/material.dart';
import '../add_custom_amount.dart';
-class H20FloatingActionButton extends StatefulWidget {
- const H20FloatingActionButton({Key key, @required AnimationController controller, @required this.model}) : super(key: key);
- final H2OViewModel model;
+// todo 'sikander' remove useless code
- @override
- _H20FloatingActionButtonState createState() => _H20FloatingActionButtonState();
-}
-class _H20FloatingActionButtonState extends State with TickerProviderStateMixin {
- AnimationController _controller;
- @override
- void initState() {
- _controller = new AnimationController(
- vsync: this,
- duration: const Duration(milliseconds: 500),
- );
- super.initState();
- }
-
- void showConfirmMessage(int amount, H2OViewModel model) {
- showDialog(
- context: context,
- child: ConfirmAddAmountDialog(
- model: model,
- amount: amount,
- ),
- );
- }
-
- @override
- Widget build(BuildContext context) {
- return Container(
- margin: EdgeInsets.only(left: 20, right: 20),
- child: new Column(mainAxisSize: MainAxisSize.min, children: [
- Row(
- mainAxisAlignment: MainAxisAlignment.start,
- children: [
- Column(
- crossAxisAlignment: CrossAxisAlignment.end,
- children: [
- ActionButton(
- controller: _controller,
- text: "600${TranslationBase.of(context).ml}",
- onTap: () {
- showConfirmMessage(600, widget.model);
- },
- ),
- ActionButton(
- controller: _controller,
- text: "330${TranslationBase.of(context).ml}",
- onTap: () {
- showConfirmMessage(330, widget.model);
- },
- ),
- ActionButton(
- controller: _controller,
- text: "200${TranslationBase.of(context).ml}",
- onTap: () {
- showConfirmMessage(200, widget.model);
- },
- ),
- ],
- ),
- ],
- ),
- Row(
- mainAxisAlignment: MainAxisAlignment.start,
- children: [
- FloatingActionButton(
- heroTag: null,
- child: new AnimatedBuilder(
- animation: _controller,
- builder: (BuildContext context, Widget child) {
- return new Transform(
- transform: new Matrix4.rotationZ(_controller.value * 0.5 * math.pi),
- alignment: FractionalOffset.center,
- child: new Icon(_controller.isDismissed ? Icons.add : Icons.close),
- );
- },
- ),
- onPressed: () {
- if (_controller.isDismissed) {
- _controller.forward();
- } else {
- _controller.reverse();
- }
- },
- ),
- new Container(
- margin: EdgeInsets.only(left: 8, bottom: 4),
- alignment: FractionalOffset.topCenter,
- child: new ScaleTransition(
- scale: new CurvedAnimation(
- parent: _controller,
- curve: new Interval(0.0, 1.0 - 0 / 6 / 2.0, curve: Curves.easeOut),
- ),
- child: new FloatingActionButton(
- backgroundColor: Colors.white,
- heroTag: null,
- // mini: true,
- child: Text(
- TranslationBase.of(context).custom,
- textAlign: TextAlign.center,
- style: TextStyle(fontSize: 12, color: Colors.grey),
- ),
- onPressed: () {
- Navigator.push(
- context,
- FadePage(
- page: AddCustomAmount(
- model: widget.model,
- ),
- ),
- );
- },
- ),
- ),
- ),
- new Container(
- margin: EdgeInsets.only(left: 8, bottom: 4),
- alignment: FractionalOffset.topCenter,
- child: new ScaleTransition(
- scale: new CurvedAnimation(
- parent: _controller,
- curve: new Interval(0.0, 1.0 - 0 / 6 / 2.0, curve: Curves.easeOut),
- ),
- child: new FloatingActionButton(
- backgroundColor: Colors.white,
- heroTag: null,
- //mini: true,
- child: Text(
- TranslationBase.of(context).undo,
- textAlign: TextAlign.center,
- style: TextStyle(fontSize: 12.0, color: Colors.grey),
- ),
- onPressed: undoVolume,
- ),
- ),
- ),
- ],
- ),
- ]),
- );
- }
-
- void undoVolume() async {
- GifLoaderDialogUtils.showMyDialog(context);
- await widget.model.undoUserActivity();
- GifLoaderDialogUtils.hideDialog(context);
- }
-}
-
-class ActionButton extends StatelessWidget {
- const ActionButton({Key key, @required AnimationController controller, @required this.text, this.onTap})
- : _controller = controller,
- super(key: key);
-
- final AnimationController _controller;
- final String text;
- final Function onTap;
-
- @override
- Widget build(BuildContext context) {
- return Container(
- margin: EdgeInsets.only(left: 4, bottom: 8),
- alignment: FractionalOffset.topCenter,
- child: new ScaleTransition(
- scale: new CurvedAnimation(
- parent: _controller,
- curve: new Interval(0.0, 1.0 - 0 / 6 / 2.0, curve: Curves.easeOut),
- ),
- child: new FloatingActionButton(
- heroTag: null,
- backgroundColor: Colors.white,
- //mini: true,
- child: Text(
- text,
- textAlign: TextAlign.center,
- style: TextStyle(fontSize: 12.0, color: Colors.grey),
- ),
- onPressed: onTap),
- ),
- );
- }
-}
+// class H20FloatingActionButton extends StatefulWidget {
+// const H20FloatingActionButton({Key key, @required AnimationController controller, @required this.model}) : super(key: key);
+//
+// final H2OViewModel model;
+//
+// @override
+// _H20FloatingActionButtonState createState() => _H20FloatingActionButtonState();
+// }
+//
+// class _H20FloatingActionButtonState extends State with TickerProviderStateMixin {
+// AnimationController _controller;
+// @override
+// void initState() {
+// _controller = new AnimationController(
+// vsync: this,
+// duration: const Duration(milliseconds: 500),
+// );
+// super.initState();
+// }
+//
+// void showConfirmMessage(int amount, H2OViewModel model) {
+// showDialog(
+// context: context,
+// child: ConfirmAddAmountDialog(
+// model: model,
+// amount: amount,
+// ),
+// );
+// }
+//
+// @override
+// Widget build(BuildContext context) {
+// return Container(
+// margin: EdgeInsets.only(left: 20, right: 20),
+// child: new Column(mainAxisSize: MainAxisSize.min, children: [
+// Row(
+// mainAxisAlignment: MainAxisAlignment.start,
+// children: [
+// Column(
+// crossAxisAlignment: CrossAxisAlignment.end,
+// children: [
+// ActionButton(
+// controller: _controller,
+// text: "600${TranslationBase.of(context).ml}",
+// onTap: () {
+// showConfirmMessage(600, widget.model);
+// },
+// ),
+// ActionButton(
+// controller: _controller,
+// text: "330${TranslationBase.of(context).ml}",
+// onTap: () {
+// showConfirmMessage(330, widget.model);
+// },
+// ),
+// ActionButton(
+// controller: _controller,
+// text: "200${TranslationBase.of(context).ml}",
+// onTap: () {
+// showConfirmMessage(200, widget.model);
+// },
+// ),
+// ],
+// ),
+// ],
+// ),
+// Row(
+// mainAxisAlignment: MainAxisAlignment.start,
+// children: [
+// FloatingActionButton(
+// heroTag: null,
+// child: new AnimatedBuilder(
+// animation: _controller,
+// builder: (BuildContext context, Widget child) {
+// return new Transform(
+// transform: new Matrix4.rotationZ(_controller.value * 0.5 * math.pi),
+// alignment: FractionalOffset.center,
+// child: new Icon(_controller.isDismissed ? Icons.add : Icons.close),
+// );
+// },
+// ),
+// onPressed: () {
+// if (_controller.isDismissed) {
+// _controller.forward();
+// } else {
+// _controller.reverse();
+// }
+// },
+// ),
+// new Container(
+// margin: EdgeInsets.only(left: 8, bottom: 4),
+// alignment: FractionalOffset.topCenter,
+// child: new ScaleTransition(
+// scale: new CurvedAnimation(
+// parent: _controller,
+// curve: new Interval(0.0, 1.0 - 0 / 6 / 2.0, curve: Curves.easeOut),
+// ),
+// child: new FloatingActionButton(
+// backgroundColor: Colors.white,
+// heroTag: null,
+// // mini: true,
+// child: Text(
+// TranslationBase.of(context).custom,
+// textAlign: TextAlign.center,
+// style: TextStyle(fontSize: 12, color: Colors.grey),
+// ),
+// onPressed: () {
+// Navigator.push(
+// context,
+// FadePage(
+// page: AddCustomAmount(
+// model: widget.model,
+// ),
+// ),
+// );
+// },
+// ),
+// ),
+// ),
+// new Container(
+// margin: EdgeInsets.only(left: 8, bottom: 4),
+// alignment: FractionalOffset.topCenter,
+// child: new ScaleTransition(
+// scale: new CurvedAnimation(
+// parent: _controller,
+// curve: new Interval(0.0, 1.0 - 0 / 6 / 2.0, curve: Curves.easeOut),
+// ),
+// child: new FloatingActionButton(
+// backgroundColor: Colors.white,
+// heroTag: null,
+// //mini: true,
+// child: Text(
+// TranslationBase.of(context).undo,
+// textAlign: TextAlign.center,
+// style: TextStyle(fontSize: 12.0, color: Colors.grey),
+// ),
+// onPressed: undoVolume,
+// ),
+// ),
+// ),
+// ],
+// ),
+// ]),
+// );
+// }
+//
+// void undoVolume() async {
+// GifLoaderDialogUtils.showMyDialog(context);
+// await widget.model.undoUserActivity();
+// GifLoaderDialogUtils.hideDialog(context);
+// }
+// }
+//
+// class ActionButton extends StatelessWidget {
+// const ActionButton({Key key, @required AnimationController controller, @required this.text, this.onTap})
+// : _controller = controller,
+// super(key: key);
+//
+// final AnimationController _controller;
+// final String text;
+// final Function onTap;
+//
+// @override
+// Widget build(BuildContext context) {
+// return Container(
+// margin: EdgeInsets.only(left: 4, bottom: 8),
+// alignment: FractionalOffset.topCenter,
+// child: new ScaleTransition(
+// scale: new CurvedAnimation(
+// parent: _controller,
+// curve: new Interval(0.0, 1.0 - 0 / 6 / 2.0, curve: Curves.easeOut),
+// ),
+// child: new FloatingActionButton(
+// heroTag: null,
+// backgroundColor: Colors.white,
+// //mini: true,
+// child: Text(
+// text,
+// textAlign: TextAlign.center,
+// style: TextStyle(fontSize: 12.0, color: Colors.grey),
+// ),
+// onPressed: onTap),
+// ),
+// );
+// }
+// }
diff --git a/lib/pages/AlHabibMedicalService/parking_page.dart b/lib/pages/AlHabibMedicalService/parking_page.dart
index 864beb98..ac63011c 100644
--- a/lib/pages/AlHabibMedicalService/parking_page.dart
+++ b/lib/pages/AlHabibMedicalService/parking_page.dart
@@ -32,7 +32,7 @@ class ParkingPage extends StatelessWidget {
? Column(
children: [
Texts(
- TranslationBase.of(context).parkingTitle,
+ TranslationBase.of(context).parkingDescription,
fontWeight: FontWeight.normal,
fontSize: 15,
),
@@ -149,6 +149,7 @@ class ParkingPage extends StatelessWidget {
),
bottomSheet: !model.isSavePark
? Container(
+ color: Theme.of(context).scaffoldBackgroundColor,
height: MediaQuery.of(context).size.height * 0.10,
width: double.infinity,
child: Column(
diff --git a/lib/pages/Blood/blood_donation.dart b/lib/pages/Blood/blood_donation.dart
index 1c861462..e3888240 100644
--- a/lib/pages/Blood/blood_donation.dart
+++ b/lib/pages/Blood/blood_donation.dart
@@ -96,8 +96,7 @@ class _BloodDonationPageState extends State {
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Texts(
- TranslationBase.of(context).bloodDEnterDesc,
- textAlign: TextAlign.center,
+ TranslationBase.of(context).bloodDEnterDesc
),
SizedBox(
height: 12,
@@ -240,7 +239,8 @@ class _BloodDonationPageState extends State {
),
bottomSheet: Container(
width: double.infinity,
- padding: EdgeInsets.all(12),
+ color: Theme.of(context).scaffoldBackgroundColor,
+ padding: EdgeInsets.all(20),
child: DefaultButton(TranslationBase.of(context).save, () async {
if (_selectedHospital == null) {
AppToast.showErrorToast(message: TranslationBase.of(context).selectCity);
diff --git a/lib/pages/BookAppointment/BookConfirm.dart b/lib/pages/BookAppointment/BookConfirm.dart
index 2b49043e..e069eca6 100644
--- a/lib/pages/BookAppointment/BookConfirm.dart
+++ b/lib/pages/BookAppointment/BookConfirm.dart
@@ -401,7 +401,7 @@ class _BookConfirmState extends State {
widget.appoDateFormatted = DateUtil.getWeekDay(dateObj.weekday) + ", " + dateObj.day.toString() + " " + DateUtil.getMonth(dateObj.month) + " " + dateObj.year.toString();
});
- return widget.appoDateFormatted;
+ return DateUtil.getDayMonthYearDateFormatted(dateObj);
}
DateTime getDateTime() {
diff --git a/lib/pages/BookAppointment/BookSuccess.dart b/lib/pages/BookAppointment/BookSuccess.dart
index 2c278f5e..15ccf128 100644
--- a/lib/pages/BookAppointment/BookSuccess.dart
+++ b/lib/pages/BookAppointment/BookSuccess.dart
@@ -175,7 +175,7 @@ class _BookSuccessState extends State {
),
height: 45.0,
child: RaisedButton(
- color: new Color(0xFF60686b),
+ color: CustomColors.green,
textColor: Colors.white,
disabledTextColor: Colors.white,
disabledColor: new Color(0xFFbcc2c4),
@@ -214,55 +214,63 @@ class _BookSuccessState extends State {
Widget _getConfirmAppoButtons() {
return Container(
- alignment: Alignment.bottomCenter,
- margin: EdgeInsets.only(bottom: 5.0),
- height: MediaQuery.of(context).size.height * 0.15,
- child: Column(
- mainAxisAlignment: MainAxisAlignment.end,
- children: [
- 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,
- disabledTextColor: Colors.white,
- disabledColor: new Color(0xFFbcc2c4),
- onPressed: () {
- AppoitmentAllHistoryResultList appo = new AppoitmentAllHistoryResultList();
- appo.clinicID = widget.docObject.clinicID;
- appo.projectID = widget.docObject.projectID;
- appo.appointmentNo = widget.patientShareResponse.appointmentNo;
- appo.serviceID = widget.patientShareResponse.serviceID;
- appo.isLiveCareAppointment = widget.patientShareResponse.isLiveCareAppointment;
- appo.doctorID = widget.patientShareResponse.doctorID;
- confirmAppointment(appo);
- },
- child: Text(widget.patientShareResponse.isLiveCareAppointment ? TranslationBase.of(context).confirmLiveCare.toUpperCase() : TranslationBase.of(context).confirm.toUpperCase(),
- style: TextStyle(fontSize: 18.0)),
- ),
- ),
- ButtonTheme(
- shape: RoundedRectangleBorder(
- borderRadius: BorderRadius.circular(10.0),
+ color: CustomColors.appBackgroudGreyColor,
+ child: Container(
+ color: CustomColors.appBackgroudGreyColor,
+ margin: EdgeInsets.all(14),
+ height: 45.0,
+ child: Row(
+ mainAxisAlignment: MainAxisAlignment.end,
+ children: [
+ Expanded(
+ flex: 1,
+ child: ButtonTheme(
+ shape: RoundedRectangleBorder(
+ borderRadius: BorderRadius.circular(10.0),
+ ),
+ height: 45.0,
+ child: RaisedButton(
+ color: new Color(0xffc5272d),
+ textColor: Colors.white,
+ disabledTextColor: Colors.white,
+ disabledColor: new Color(0xFFbcc2c4),
+ onPressed: () {
+ navigateToHome(context);
+ },
+ child: Text(TranslationBase.of(context).confirmLater, style: TextStyle(fontSize: 18.0)),
+ ),
+ ),
),
- minWidth: MediaQuery.of(context).size.width * 0.7,
- height: 45.0,
- child: RaisedButton(
- color: new Color(0xFFc5272d),
- textColor: Colors.white,
- disabledTextColor: Colors.white,
- disabledColor: new Color(0xFFbcc2c4),
- onPressed: () {
- navigateToHome(context);
- },
- child: Text(TranslationBase.of(context).confirmLater.toUpperCase(), style: TextStyle(fontSize: 18.0)),
+ mWidth(7),
+ Expanded(
+ flex: 1,
+ child: ButtonTheme(
+ shape: RoundedRectangleBorder(
+ borderRadius: BorderRadius.circular(10.0),
+ ),
+ height: 45.0,
+ child: RaisedButton(
+ color: CustomColors.green,
+ textColor: Colors.white,
+ disabledTextColor: Colors.white,
+ disabledColor: new Color(0xFFbcc2c4),
+ onPressed: () {
+ AppoitmentAllHistoryResultList appo = new AppoitmentAllHistoryResultList();
+ appo.clinicID = widget.docObject.clinicID;
+ appo.projectID = widget.docObject.projectID;
+ appo.appointmentNo = widget.patientShareResponse.appointmentNo;
+ appo.serviceID = widget.patientShareResponse.serviceID;
+ appo.isLiveCareAppointment = widget.patientShareResponse.isLiveCareAppointment;
+ appo.doctorID = widget.patientShareResponse.doctorID;
+ confirmAppointment(appo);
+ },
+ child: Text(widget.patientShareResponse.isLiveCareAppointment ? TranslationBase.of(context).confirmLiveCare : TranslationBase.of(context).confirm,
+ style: TextStyle(fontSize: 18.0)),
+ ),
+ ),
),
- ),
- ],
+ ],
+ ),
),
);
}
@@ -365,10 +373,7 @@ class _BookSuccessState extends State {
),
],
),
- Container(
- margin: EdgeInsets.fromLTRB(50.0, 20.0, 50.0, 20.0),
- child: Image.asset("assets/images/new-design/payment-method.png"),
- ),
+ Container(margin: EdgeInsets.fromLTRB(20.0, 20.0, 20.0, 5.0), child: getPaymentMethods()),
],
);
}
@@ -447,10 +452,7 @@ class _BookSuccessState extends State {
fontSize: 12.0,
letterSpacing: -0.36,
)),
- Container(
- margin: EdgeInsets.fromLTRB(50.0, 20.0, 50.0, 20.0),
- child: Image.asset("assets/images/new-design/payment-method.png"),
- ),
+ Container(margin: EdgeInsets.fromLTRB(20.0, 5.0, 20.0, 5.0), child: getPaymentMethods()),
Text(
TranslationBase.of(context).payNowBookSuccesstext2,
overflow: TextOverflow.clip,
@@ -481,11 +483,9 @@ class _BookSuccessState extends State {
appo.clinicID = widget.patientShareResponse.clinicID;
appo.appointmentNo = widget.patientShareResponse.appointmentNo;
- Navigator.push(context, FadePage(page: PaymentMethod(
- onSelectedMethod: (String metohd) {
- setState(() {});
- }
- ))).then((value) {
+ Navigator.push(context, FadePage(page: PaymentMethod(onSelectedMethod: (String metohd) {
+ setState(() {});
+ }))).then((value) {
if (value != null) {
openPayment(value, authUser, double.parse(patientShareResponse.patientShareWithTax.toString()), patientShareResponse, appo);
}
diff --git a/lib/pages/BookAppointment/DoctorProfile.dart b/lib/pages/BookAppointment/DoctorProfile.dart
index e71fa02b..5c2cb113 100644
--- a/lib/pages/BookAppointment/DoctorProfile.dart
+++ b/lib/pages/BookAppointment/DoctorProfile.dart
@@ -115,6 +115,7 @@ class _DoctorProfileState extends State with TickerProviderStateM
widget.doctor.actualDoctorRate,
widget.docProfileList.noOfPatientsRate,
"",
+ decimalDoctorRate: widget.docProfileList.decimalDoctorRate.toString(),
),
buttonIcon: 'assets/images/new/Boo_ Appointment.svg',
showConfirmMessageDialog: false,
diff --git a/lib/pages/BookAppointment/components/SearchByClinic.dart b/lib/pages/BookAppointment/components/SearchByClinic.dart
index d1030636..ab36738e 100644
--- a/lib/pages/BookAppointment/components/SearchByClinic.dart
+++ b/lib/pages/BookAppointment/components/SearchByClinic.dart
@@ -13,6 +13,7 @@ import 'package:diplomaticquarterapp/pages/livecare/livecare_home.dart';
import 'package:diplomaticquarterapp/services/appointment_services/GetDoctorsList.dart';
import 'package:diplomaticquarterapp/services/authentication/auth_provider.dart';
import 'package:diplomaticquarterapp/services/clinic_services/get_clinic_service.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';
@@ -224,7 +225,7 @@ class _SearchByClinicState extends State {
child: Row(
children: [
Checkbox(
- activeColor: new Color(0xFF40ACC9),
+ activeColor: CustomColors.accentColor,
value: nearestAppo,
onChanged: (bool value) {
setState(() {
diff --git a/lib/pages/Covid-DriveThru/covid-dirvethru-questions.dart b/lib/pages/Covid-DriveThru/covid-dirvethru-questions.dart
index 45cab249..aa1e3ea5 100644
--- a/lib/pages/Covid-DriveThru/covid-dirvethru-questions.dart
+++ b/lib/pages/Covid-DriveThru/covid-dirvethru-questions.dart
@@ -104,7 +104,7 @@ class CovidDirveThruQuestionsState extends State {
Row(
children: [
Text(
- TranslationBase.of(context).fileNo + ":",
+ TranslationBase.of(context).nationalIdNumber + ":",
style: TextStyle(
fontWeight: FontWeight.w600,
fontSize: 10,
diff --git a/lib/pages/Covid-DriveThru/covid-payment-alert.dart b/lib/pages/Covid-DriveThru/covid-payment-alert.dart
index 9d2ac0a5..2d7d5363 100644
--- a/lib/pages/Covid-DriveThru/covid-payment-alert.dart
+++ b/lib/pages/Covid-DriveThru/covid-payment-alert.dart
@@ -2,7 +2,6 @@ import 'package:diplomaticquarterapp/config/shared_pref_kay.dart';
import 'package:diplomaticquarterapp/models/Appointments/PatientShareResposne.dart';
import 'package:diplomaticquarterapp/models/Authentication/authenticated_user.dart';
import 'package:diplomaticquarterapp/pages/Covid-DriveThru/covid-payment-summary.dart';
-import 'package:diplomaticquarterapp/pages/ToDoList/payment_method_select.dart';
import 'package:diplomaticquarterapp/theme/colors.dart';
import 'package:diplomaticquarterapp/uitl/app_shared_preferences.dart';
import 'package:diplomaticquarterapp/uitl/date_uitl.dart';
@@ -11,7 +10,6 @@ import 'package:diplomaticquarterapp/uitl/utils_new.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
import 'package:flutter/material.dart';
-import 'package:flutter_svg/flutter_svg.dart';
class CovidPaymentAlert extends StatefulWidget {
PatientShareResponse patientShareResponse;
@@ -126,7 +124,7 @@ class _CovidPaymentAlertState extends State {
),
mWidth(6),
_getNormalText(
- widget.patientShareResponse.appointmentDate != null ? getDate(widget.patientShareResponse.appointmentDate).split(" ")[0] : "NULL",
+ DateUtil.getDayMonthYearDateFormatted(DateUtil.convertStringToDate(widget.patientShareResponse.appointmentDate)),
isBold: true,
),
],
@@ -139,7 +137,7 @@ class _CovidPaymentAlertState extends State {
),
mWidth(6),
_getNormalText(
- widget.patientShareResponse.appointmentDate != null ? getDate(widget.patientShareResponse.appointmentDate).split(" ")[1] : "NULL",
+ DateUtil.formatDateToTimeLang(DateUtil.convertStringToDate(widget.patientShareResponse.appointmentDate), false),
isBold: true,
),
],
@@ -230,7 +228,6 @@ class _CovidPaymentAlertState extends State {
});
}
-
Navigator.push(
context,
FadePage(
diff --git a/lib/pages/Covid-DriveThru/covid-payment-details.dart b/lib/pages/Covid-DriveThru/covid-payment-details.dart
index 81ba1285..f31aa53e 100644
--- a/lib/pages/Covid-DriveThru/covid-payment-details.dart
+++ b/lib/pages/Covid-DriveThru/covid-payment-details.dart
@@ -262,10 +262,7 @@ class _CovidPaymentDetailsState extends State {
letterSpacing: -0.46,
),
),
- Container(
- margin: EdgeInsets.only(top: 12, bottom: 12),
- child: Image.asset("assets/images/new-design/payment_options_invoice_confirmation.png", width: 300),
- ),
+ Container(margin: EdgeInsets.fromLTRB(20.0, 5.0, 20.0, 5.0), child: getPaymentMethods()),
],
),
),
diff --git a/lib/pages/Covid-DriveThru/covid-payment-summary.dart b/lib/pages/Covid-DriveThru/covid-payment-summary.dart
index c47c8d36..c5bcb23b 100644
--- a/lib/pages/Covid-DriveThru/covid-payment-summary.dart
+++ b/lib/pages/Covid-DriveThru/covid-payment-summary.dart
@@ -13,6 +13,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/uitl/utils_new.dart';
+import 'package:diplomaticquarterapp/widgets/buttons/defaultButton.dart';
import 'package:diplomaticquarterapp/widgets/buttons/secondary_button.dart';
import 'package:diplomaticquarterapp/widgets/dragable_sheet.dart';
import 'package:diplomaticquarterapp/widgets/in_app_browser/InAppBrowser.dart';
@@ -95,9 +96,9 @@ class _CovidPaymentSummaryState extends State {
decoration: containerColorRadiusBorderWidth(CustomColors.accentColor, 200, Colors.white, 4),
),
Container(
- height: 60.0,
+ height: 100.0,
padding: EdgeInsets.all(7.0),
- child: widget.selectedPaymentMethod == "ApplePay" ? SvgPicture.asset(getImagePath(widget.selectedPaymentMethod)) : Image.asset(getImagePath(widget.selectedPaymentMethod)),
+ child: Image.asset(getImagePath(widget.selectedPaymentMethod), width: 100, height: 100),
),
mFlex(1),
InkWell(
@@ -154,17 +155,16 @@ class _CovidPaymentSummaryState extends State {
),
),
bottomSheet: Container(
- color: Colors.white,
- height: MediaQuery.of(context).size.height * 0.1,
+ color: Theme.of(context).scaffoldBackgroundColor,
+ margin: EdgeInsets.only(bottom: 5.0),
width: double.infinity,
padding: EdgeInsets.all(12),
- child: SecondaryButton(
- textColor: Colors.white,
- color: CustomColors.green,
- label: TranslationBase.of(context).confirm.toUpperCase(),
- onTap: () {
+ child: DefaultButton(
+ TranslationBase.of(context).confirm.toUpperCase(),
+ () {
startPaymentProcess(projectViewModel.user);
},
+ color: CustomColors.green,
),
),
);
@@ -335,25 +335,25 @@ class _CovidPaymentSummaryState extends State {
String getImagePath(String paymentMethod) {
switch (paymentMethod) {
case "MADA":
- return 'assets/images/new-design/mada.png';
- break;
- case "SADAD":
- return 'assets/images/new-design/sadad.png';
+ return 'assets/images/new/payment/Mada.png';
break;
+ // case "SADAD":
+ // return 'assets/images/new-design/sadad.png';
+ // break;
case "VISA":
- return 'assets/images/new-design/visa.png';
+ return 'assets/images/new/payment/visa.png';
break;
case "MASTERCARD":
- return 'assets/images/new-design/mastercard.png';
+ return 'assets/images/new/payment/Mastercard.png';
break;
case "Installment":
- return 'assets/images/new-design/installment.png';
+ return 'assets/images/new/payment/installments.png';
break;
case "ApplePay":
- return 'assets/images/new-design/applepay.svg';
+ return 'assets/images/new/payment/Apple_Pay.png';
break;
}
- return 'assets/images/new-design/mada.png';
+ return 'assets/images/new/payment/Mada.png';
}
}
diff --git a/lib/pages/DrawerPages/family/my-family.dart b/lib/pages/DrawerPages/family/my-family.dart
index 12f7d46d..ba8d971e 100644
--- a/lib/pages/DrawerPages/family/my-family.dart
+++ b/lib/pages/DrawerPages/family/my-family.dart
@@ -35,6 +35,8 @@ import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:diplomaticquarterapp/config/config.dart';
+import 'package:diplomaticquarterapp/widgets/others/app_expandable_notifier.dart';
+import 'package:flutter_svg/flutter_svg.dart';
class MyFamily extends StatefulWidget {
final bool isAppbarVisible;
@@ -123,7 +125,7 @@ class _MyFamily extends State with TickerProviderStateMixin {
controller: _tabController,
children: [myFamilyDetails(context), myFamilyRequest(context)],
)
- : Container(child: AppText('Loading..')),
+ : Container(child: AppText('')),
),
],
),
@@ -153,82 +155,108 @@ class _MyFamily extends State with TickerProviderStateMixin {
builder: (BuildContext context, AsyncSnapshot snapshot) {
switch (snapshot.connectionState) {
case ConnectionState.waiting:
- return Padding(padding: EdgeInsets.only(top: 50), child: Text('Loading....'));
+ return Padding(padding: EdgeInsets.only(top: 50), child: Text('Loading...'));
default:
if (snapshot.hasError)
return Padding(padding: EdgeInsets.all(10), child: Text(TranslationBase.of(context).noDataAvailable));
else
return ListView.separated(
itemBuilder: (context, index) {
+ snapshot.data.getAllSharedRecordsByStatusList[index].gender = 2;
if (snapshot.data.getAllSharedRecordsByStatusList[index].status == 3)
return Card(
margin: EdgeInsets.all(10),
- shape: cardRadius(15),
+ shape: cardRadius(25),
color: snapshot.data.getAllSharedRecordsByStatusList[index].gender == 1 ? Color(0xff6EA8FF) : Color(0xffFDA4B0),
elevation: 3,
child: Container(
// height: 130,
width: MediaQuery.of(context).size.width,
padding: EdgeInsets.all(10),
- child: Column(
- crossAxisAlignment: CrossAxisAlignment.start,
- children: [
- Texts(
- snapshot.data.getAllSharedRecordsByStatusList[index].patientName.toLowerCase().capitalizeFirstofEach,
- fontSize: 22,
- fontWeight: FontWeight.bold,
- color: Colors.white,
+ child: Row(
+ mainAxisAlignment: MainAxisAlignment.spaceBetween,
+ children: [
+ Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: [
+ Texts(
+ snapshot.data.getAllSharedRecordsByStatusList[index].patientName.toLowerCase().capitalizeFirstofEach,
+ fontSize: 22,
+ fontWeight: FontWeight.bold,
+ color: Colors.white,
+ ),
+ Texts(TranslationBase.of(context).fileNumber + ': ' + snapshot.data.getAllSharedRecordsByStatusList[index].responseID.toString(),
+ fontSize: 12, color: Colors.white),
+ Texts(
+ snapshot.data.getAllSharedRecordsByStatusList[index].age.toString() +
+ ' ' +
+ TranslationBase.of(context).years +
+ ', ' +
+ snapshot.data.getAllSharedRecordsByStatusList[index].genderDescription,
+ fontSize: 12,
+ color: Colors.white),
+ ],
),
- Texts(TranslationBase.of(context).fileNumber + ': ' + snapshot.data.getAllSharedRecordsByStatusList[index].responseID.toString(),
- fontSize: 12, color: Colors.white),
- Texts(
- snapshot.data.getAllSharedRecordsByStatusList[index].age.toString() +
- ' ' +
- TranslationBase.of(context).years +
- ', ' +
- snapshot.data.getAllSharedRecordsByStatusList[index].genderDescription,
- fontSize: 12,
- color: Colors.white),
- Row(
- mainAxisAlignment: MainAxisAlignment.spaceBetween,
+ Column(
children: [
- Row(
- children: [
- CupertinoSwitch(
- value: isSwitchUser,
- onChanged: (value) {
- setState(() {
- isSwitchUser = value;
- });
- if (isSwitchUser == true) switchUser(snapshot.data.getAllSharedRecordsByStatusList[index], context);
- },
- ),
- Texts(
- TranslationBase.of(context).switchUser,
- color: Colors.white,
- fontSize: 12,
- )
- ],
+ SizedBox(height: 10),
+ InkWell(
+ onTap: () {
+ switchUser(snapshot.data.getAllSharedRecordsByStatusList[index], context);
+ },
+ child: Container(
+ decoration: BoxDecoration(color: Colors.black.withOpacity(0.1), borderRadius: BorderRadius.circular(20)),
+ padding: EdgeInsets.fromLTRB(15, 10, 15, 10),
+ child: Row(
+ mainAxisAlignment: MainAxisAlignment.center,
+ children: [
+ SvgPicture.asset("assets/images/new-design/switch.svg",
+ height: 22, color: snapshot.data.getAllSharedRecordsByStatusList[index].gender == 1 ? Colors.white : Color(0Xff5A282E)),
+ SizedBox(
+ width: 5,
+ ),
+ // CupertinoSwitch(
+ // value: isSwitchUser,
+ // onChanged: (value) {
+ // setState(() {
+ // isSwitchUser = value;
+ // });
+ // if (isSwitchUser == true) switchUser(snapshot.data.getAllSharedRecordsByStatusList[index], context);
+ // },
+ // ),
+ Texts(TranslationBase.of(context).switchUser,
+ color: snapshot.data.getAllSharedRecordsByStatusList[index].gender == 1 ? Colors.white : Color(0Xff5A282E),
+ fontSize: 12,
+ fontWeight: FontWeight.bold)
+ ],
+ ))),
+ SizedBox(
+ height: 10,
),
InkWell(
onTap: () {
deleteFamily(snapshot.data.getAllSharedRecordsByStatusList[index], context);
},
- child: Row(
- children: [
- Texts(
- TranslationBase.of(context).delete,
- color: Colors.white,
- fontSize: 12,
- ),
- Icon(
- Icons.delete,
- color: Colors.white,
- ),
- ],
- ))
+ child: Container(
+ decoration: BoxDecoration(color: Colors.black.withOpacity(0.1), borderRadius: BorderRadius.circular(20)),
+ padding: EdgeInsets.fromLTRB(15, 10, 15, 10),
+ child: Row(
+ mainAxisAlignment: MainAxisAlignment.center,
+ children: [
+ SvgPicture.asset("assets/images/new-design/delete.svg",
+ height: 22, color: snapshot.data.getAllSharedRecordsByStatusList[index].gender == 1 ? Colors.white : Color(0Xff5A282E)),
+ SizedBox(
+ width: 5,
+ ),
+ Texts(TranslationBase.of(context).delete,
+ color: snapshot.data.getAllSharedRecordsByStatusList[index].gender == 1 ? Colors.white : Color(0Xff5A282E),
+ fontSize: 12,
+ fontWeight: FontWeight.bold),
+ ],
+ ))),
+ SizedBox(height: 10),
],
- )
+ ),
],
)));
else if (checkActive(snapshot.data.getAllSharedRecordsByStatusList) == 0)
@@ -261,180 +289,328 @@ class _MyFamily extends State with TickerProviderStateMixin {
margin: EdgeInsets.only(top: 10),
child: Column(
children: [
- RoundedContainer(
- child: ExpansionTile(
- title: Text(
- TranslationBase.of(context).userViewRequest,
- style: TextStyle(fontSize: 16.0, fontWeight: FontWeight.bold, color: Colors.black),
- ),
- children: [
- FutureBuilder(
+ FractionallySizedBox(
+ widthFactor: 1.0,
+ child: AppExpandableNotifier(
+ title: TranslationBase.of(context).userViewRequest,
+ bodyWidget: FutureBuilder(
future: getUserViewRequest(), // async work
builder: (BuildContext context, AsyncSnapshot snapshot) {
switch (snapshot.connectionState) {
case ConnectionState.waiting:
- return Padding(padding: EdgeInsets.only(top: 50), child: Text('Loading....'));
+ return SizedBox();
+
default:
if (snapshot.hasError)
return Padding(padding: EdgeInsets.all(10), child: Text(TranslationBase.of(context).noDataAvailable));
else
- return Container(
- padding: EdgeInsets.all(15),
- child: Card(
- elevation: 3,
- shape: cardRadius(8),
- child: Column(
- children: [
- Column(children: [
+ return ListView.separated(
+ shrinkWrap: true,
+ physics: NeverScrollableScrollPhysics(),
+ padding: EdgeInsets.only(bottom: 14, top: 14, left: 21, right: 21),
+ itemBuilder: (context, _index) {
+ return Container(
+ decoration: BoxDecoration(
+ borderRadius: BorderRadius.all(
+ Radius.circular(10.0),
+ ),
+ border: Border.all(width: 1, color: Color(0xffEFEFEF)),
+ boxShadow: [
+ BoxShadow(
+ color: Color(0xff000000).withOpacity(.05),
+ //spreadRadius: 5,
+ blurRadius: 27,
+ offset: Offset(0, -3),
+ ),
+ ],
+ color: Colors.white),
+ child: Column(
+ children: [
+ Column(children: [
+ Padding(
+ padding: EdgeInsets.all(10),
+ child: Row(children: [
+ Expanded(flex: 3, child: AppText(TranslationBase.of(context).name, fontWeight: FontWeight.w600)),
+ Expanded(flex: 1, child: AppText(TranslationBase.of(context).allow, fontWeight: FontWeight.w600)),
+ Expanded(flex: 1, child: AppText(TranslationBase.of(context).reject, fontWeight: FontWeight.w600)),
+ ])),
+ Divider(color: Colors.black, height: 1.5, thickness: 1.5),
+ Column(
+ children: familyFileProvider.allSharedRecordsByStatusResponse.getAllSharedRecordsByStatusList.map((result) {
+ return Container(
+ padding: EdgeInsets.all(10),
+ child: Row(
+ children: [
+ Expanded(
+ flex: 3,
+ child: Texts(
+ result.patientName,
+ fontWeight: FontWeight.w600,
+ fontSize: 12,
+ )),
+ Expanded(
+ flex: 1,
+ child: IconButton(
+ icon: SvgPicture.asset("assets/images/new-design/allow.svg", height: 22),
+ onPressed: () {
+ acceptRemoveRequest(result.iD, 3, context);
+ },
+ )),
+ Expanded(
+ flex: 1,
+ child: IconButton(
+ icon: SvgPicture.asset("assets/images/new-design/reject.svg", height: 22),
+ color: Colors.white,
+ onPressed: () {
+ acceptRemoveRequest(result.iD, 4, context);
+ },
+ ))
+ ],
+ ));
+ }).toList())
+ ])
+ ],
+ ));
+ },
+ separatorBuilder: (context, index) => SizedBox(height: 14),
+ itemCount: 1);
+ }
+ },
+ ))),
+
+ // RoundedContainer(
+ // child: ExpansionTile(
+ // title: Text(
+ // TranslationBase.of(context).userViewRequest,
+ // style: TextStyle(fontSize: 16.0, fontWeight: FontWeight.bold, color: Colors.black),
+ // ),
+ // children: [
+ // FutureBuilder(
+ // future: getUserViewRequest(), // async work
+ // builder: (BuildContext context, AsyncSnapshot snapshot) {
+ // switch (snapshot.connectionState) {
+ // case ConnectionState.waiting:
+ // return Padding(padding: EdgeInsets.only(top: 50), child: Text('Loading....'));
+ // default:
+ // if (snapshot.hasError)
+ // return Padding(padding: EdgeInsets.all(10), child: Text(TranslationBase.of(context).noDataAvailable));
+ // else
+ // return Container(
+ // padding: EdgeInsets.all(15),
+ // child: Card(
+ // elevation: 3,
+ // shape: cardRadius(8),
+ // child: Column(
+ // children: [
+ // Column(children: [
+ // Padding(
+ // padding: EdgeInsets.all(10),
+ // child: Row(children: [
+ // Expanded(flex: 3, child: AppText(TranslationBase.of(context).name, fontWeight: FontWeight.w600)),
+ // Expanded(flex: 1, child: AppText(TranslationBase.of(context).allow, fontWeight: FontWeight.w600)),
+ // Expanded(flex: 1, child: AppText(TranslationBase.of(context).reject, fontWeight: FontWeight.w600)),
+ // ])),
+ // Divider(color: Colors.black, height: 1.5, thickness: 1.5),
+ // Column(
+ // children: familyFileProvider.allSharedRecordsByStatusResponse.getAllSharedRecordsByStatusList.map((result) {
+ // return Container(
+ // padding: EdgeInsets.all(10),
+ // child: Row(
+ // children: [
+ // Expanded(
+ // flex: 3,
+ // child: Texts(
+ // result.patientName,
+ // fontWeight: FontWeight.w600,
+ // fontSize: 12,
+ // )),
+ // Expanded(
+ // flex: 1,
+ // child: IconButton(
+ // icon: Icon(
+ // Icons.check_circle,
+ // color: Color(0xff349745),
+ // ),
+ // onPressed: () {
+ // acceptRemoveRequest(result.iD, 3, context);
+ // },
+ // )),
+ // Expanded(
+ // flex: 1,
+ // child: IconButton(
+ // icon: Icon(
+ // Icons.close,
+ // color: Colors.red[900],
+ // ),
+ // onPressed: () {
+ // acceptRemoveRequest(result.iD, 4, context);
+ // },
+ // ))
+ // ],
+ // ));
+ // }).toList())
+ // ])
+ // ],
+ // )));
+ // }
+ // })
+ // ],
+ // ),
+ // ),
+ SizedBox(height: 15),
+ FractionallySizedBox(
+ widthFactor: 1.0,
+ child: AppExpandableNotifier(
+ title: TranslationBase.of(context).sentRequest,
+ bodyWidget: FutureBuilder(
+ future: getSentRequest(), // async work
+ builder: (BuildContext context, AsyncSnapshot snapshot) {
+ switch (snapshot.connectionState) {
+ case ConnectionState.waiting:
+ return SizedBox();
+ default:
+ if (snapshot.hasError)
+ return Padding(padding: EdgeInsets.all(10), child: Text(TranslationBase.of(context).noDataAvailable));
+ else
+ return ListView.separated(
+ shrinkWrap: true,
+ physics: NeverScrollableScrollPhysics(),
+ padding: EdgeInsets.only(bottom: 14, top: 14, left: 21, right: 21),
+ itemBuilder: (context, _index) {
+ return Container(
+ decoration: BoxDecoration(
+ borderRadius: BorderRadius.all(
+ Radius.circular(10.0),
+ ),
+ border: Border.all(width: 1, color: Color(0xffEFEFEF)),
+ boxShadow: [
+ BoxShadow(
+ color: Color(0xff000000).withOpacity(.05),
+ //spreadRadius: 5,
+ blurRadius: 27,
+ offset: Offset(0, -3),
+ ),
+ ],
+ color: Colors.white),
+ child: Column(
+ children: [
Padding(
padding: EdgeInsets.all(10),
child: Row(children: [
Expanded(flex: 3, child: AppText(TranslationBase.of(context).name, fontWeight: FontWeight.w600)),
- Expanded(flex: 1, child: AppText(TranslationBase.of(context).allow, fontWeight: FontWeight.w600)),
- Expanded(flex: 1, child: AppText(TranslationBase.of(context).reject, fontWeight: FontWeight.w600)),
+ Expanded(flex: 1, child: AppText(TranslationBase.of(context).status, fontWeight: FontWeight.w600))
])),
- Divider(color: Colors.black, height: 1),
+ Divider(color: Colors.black, height: 1.5, thickness: 1.5),
Column(
- children: familyFileProvider.allSharedRecordsByStatusResponse.getAllSharedRecordsByStatusList.map((result) {
- return Container(
- padding: EdgeInsets.all(10),
- child: Row(
- children: [
- Expanded(flex: 3, child: Text(result.patientName)),
- Expanded(
- flex: 1,
- child: IconButton(
- icon: Icon(
- Icons.check_circle,
- color: Colors.black,
- ),
- onPressed: () {
- acceptRemoveRequest(result.iD, 3, context);
- },
- )),
- Expanded(
- flex: 1,
- child: IconButton(
- icon: Icon(
- Icons.delete,
- color: Colors.black,
- ),
- onPressed: () {
- acceptRemoveRequest(result.iD, 4, context);
- },
- ))
- ],
- ));
- }).toList())
- ])
- ],
- )));
- }
- })
- ],
- ),
+ children: snapshot.data.getAllSharedRecordsByStatusList.map((result) {
+ return Padding(
+ padding: EdgeInsets.all(10),
+ child: Row(
+ children: [
+ Expanded(
+ flex: 3,
+ child: Texts(
+ result.patientName,
+ fontWeight: FontWeight.w600,
+ fontSize: 12,
+ )),
+ Expanded(
+ flex: 1,
+ child: Card(
+ shape: cardRadius(10),
+ color: result.status == 3 ? Color(0xff349745) : Color(0xffD02127),
+ child: Padding(
+ padding: EdgeInsets.all(5),
+ child: AppText(
+ result.statusDescription,
+ color: Colors.white,
+ textAlign: TextAlign.center,
+ fontSize: 12,
+ )))),
+ ],
+ ));
+ }).toList(),
+ )
+ ],
+ ));
+ },
+ separatorBuilder: (context, index) => SizedBox(height: 14),
+ itemCount: 1,
+ );
+ }
+ }))),
+ SizedBox(
+ height: 15,
),
- RoundedContainer(
- child: ExpansionTile(
- title: Text(
- TranslationBase.of(context).sentRequest,
- style: TextStyle(fontSize: 16.0, fontWeight: FontWeight.bold, color: Colors.black),
- ),
- children: [
- FutureBuilder(
- future: getSentRequest(), // async work
- builder: (BuildContext context, AsyncSnapshot snapshot) {
- switch (snapshot.connectionState) {
- case ConnectionState.waiting:
- return Padding(padding: EdgeInsets.only(top: 50), child: Text('Loading....'));
- default:
- if (snapshot.hasError)
- return Padding(padding: EdgeInsets.all(10), child: Text(TranslationBase.of(context).noDataAvailable));
- else
- return Container(
- padding: EdgeInsets.all(15),
- height: SizeConfig.screenHeight * .3,
- child: Card(
- elevation: 3,
- shape: cardRadius(8),
- child: SingleChildScrollView(
- child: Column(
- children: [
- Padding(
- padding: EdgeInsets.all(10),
- child: Row(children: [
- Expanded(flex: 3, child: AppText(TranslationBase.of(context).theName, fontWeight: FontWeight.w600)),
- Expanded(flex: 2, child: AppText(TranslationBase.of(context).status, fontWeight: FontWeight.w600))
- ])),
- Divider(color: Colors.black, height: 1),
- Column(
- children: snapshot.data.getAllSharedRecordsByStatusList.map((result) {
- return Padding(
- padding: EdgeInsets.all(10),
- child: Row(
- children: [
- Expanded(flex: 3, child: Text(result.patientName)),
- Expanded(
- flex: 2,
- child: AppText(
- result.statusDescription,
- color: result.status == 3 ? Colors.green : Colors.red,
- )),
- ],
- ));
- }).toList(),
- )
- ],
- ))));
- }
- })
- ],
- )),
- RoundedContainer(
- child: ExpansionTile(
- title: Text(
- TranslationBase.of(context).userView,
- style: TextStyle(fontSize: 16.0, fontWeight: FontWeight.bold, color: Colors.black),
- ),
- children: [
- FutureBuilder(
- future: getUserViewRequest(), // async work
- builder: (BuildContext context, AsyncSnapshot snapshot) {
- switch (snapshot.connectionState) {
- case ConnectionState.waiting:
- return Padding(padding: EdgeInsets.only(top: 50), child: Text('Loading....'));
- default:
- if (snapshot.hasError)
- return Padding(padding: EdgeInsets.all(10), child: Text(TranslationBase.of(context).noDataAvailable));
- else
- return Container(
- padding: EdgeInsets.all(15),
- child: Card(
- elevation: 3,
- shape: cardRadius(8),
+ FractionallySizedBox(
+ widthFactor: 1.0,
+ child: AppExpandableNotifier(
+ title: TranslationBase.of(context).userView,
+ bodyWidget: FutureBuilder(
+ future: getUserViewRequest(), // async work
+ builder: (BuildContext context, AsyncSnapshot snapshot) {
+ switch (snapshot.connectionState) {
+ case ConnectionState.waiting:
+ return Padding(padding: EdgeInsets.only(top: 50), child: Text(''));
+ default:
+ if (snapshot.hasError)
+ return Padding(padding: EdgeInsets.all(10), child: Text(TranslationBase.of(context).noDataAvailable));
+ else
+ return Container(
+ decoration: BoxDecoration(
+ borderRadius: BorderRadius.all(
+ Radius.circular(10.0),
+ ),
+ border: Border.all(width: 1, color: Color(0xffEFEFEF)),
+ boxShadow: [
+ BoxShadow(
+ color: Color(0xff000000).withOpacity(.05),
+ //spreadRadius: 5,
+ blurRadius: 27,
+ offset: Offset(0, -3),
+ ),
+ ],
+ color: Colors.white),
child: Column(
children: [
Column(children: [
Padding(
padding: EdgeInsets.all(10),
child: Row(children: [
- Expanded(flex: 3, child: AppText(TranslationBase.of(context).name)),
- Expanded(flex: 1, child: AppText(TranslationBase.of(context).delete)),
+ Expanded(
+ flex: 3,
+ child: AppText(
+ TranslationBase.of(context).name,
+ fontWeight: FontWeight.w600,
+ )),
+ Expanded(
+ flex: 1,
+ child: AppText(
+ TranslationBase.of(context).delete,
+ fontWeight: FontWeight.w600,
+ textAlign: TextAlign.center,
+ )),
])),
- Divider(color: Colors.black),
+ Divider(color: Colors.black, height: 1.5, thickness: 1.5),
Column(
children: familyFileProvider.allSharedRecordsByStatusResponse.getAllSharedRecordsByStatusList.map((result) {
return Padding(
padding: EdgeInsets.all(10),
child: Row(
children: [
- Expanded(flex: 3, child: AppText(result.patientName)),
+ Expanded(
+ flex: 3,
+ child: Texts(
+ result.patientName,
+ fontWeight: FontWeight.w600,
+ fontSize: 12,
+ )),
Expanded(
flex: 1,
child: IconButton(
icon: Icon(
Icons.delete,
- color: Colors.black,
+ color: Colors.red,
),
onPressed: () {
deactivateRequest(result.iD, 5, context);
@@ -445,11 +621,9 @@ class _MyFamily extends State with TickerProviderStateMixin {
}).toList())
])
],
- )));
- }
- })
- ],
- ))
+ ));
+ }
+ })))
],
),
),
@@ -531,14 +705,14 @@ class _MyFamily extends State with TickerProviderStateMixin {
result = list.CheckActivationCode.fromJson(result);
var familyFile = await sharedPref.getObject(FAMILY_FILE);
-
+ var bloodType = await sharedPref.getString(BLOOD_TYPE);
var mainUser = await sharedPref.getObject(MAIN_USER);
var loginType = await sharedPref.getInt(LAST_LOGIN);
this.sharedPref.clear();
if (mainUser["PatientID"] != result.list.patientID) {
result.list.isFamily = true;
}
-
+ this.sharedPref.setString(BLOOD_TYPE, bloodType);
this.sharedPref.setString(APP_LANGUAGE, currentLang);
this.sharedPref.setInt(LAST_LOGIN, loginType);
this.sharedPref.setObject(MAIN_USER, mainUser);
@@ -546,7 +720,8 @@ class _MyFamily extends State with TickerProviderStateMixin {
this.sharedPref.setObject(FAMILY_FILE, familyFile);
this.sharedPref.setObject(LOGIN_TOKEN_ID, result.logInTokenID);
this.sharedPref.setString(TOKEN, result.authenticationTokenID);
-
+ _vitalSignService.heightCm = "";
+ _vitalSignService.weightKg = "";
await authenticatedUserObject.getUser(getUser: true);
Provider.of(AppGlobal.context, listen: false).user = authenticatedUserObject.user;
Provider.of(AppGlobal.context, listen: false).setUser(authenticatedUserObject.user);
diff --git a/lib/pages/DrawerPages/notifications/notification_details_page.dart b/lib/pages/DrawerPages/notifications/notification_details_page.dart
index ee1398be..7633ab9c 100644
--- a/lib/pages/DrawerPages/notifications/notification_details_page.dart
+++ b/lib/pages/DrawerPages/notifications/notification_details_page.dart
@@ -51,12 +51,15 @@ class NotificationsDetailsPage extends StatelessWidget {
),
Container(
width: double.infinity,
- color: Colors.grey[400],
child: Padding(
padding: const EdgeInsets.all(8.0),
- child: Texts(
+ child: Text(
DateUtil.getDayMonthYearDateFormatted(DateUtil.convertStringToDate(notification.createdOn)) + " " + DateUtil.formatDateToTimeLang(DateUtil.convertStringToDate(notification.createdOn), false),
- fontSize: 16,
+ style: TextStyle(
+ fontSize: 18.0,
+ color: Colors.black,
+ fontWeight: FontWeight.w600
+ ),
),
),
),
@@ -88,7 +91,7 @@ class NotificationsDetailsPage extends StatelessWidget {
children: [
Expanded(
child: Center(
- child: Texts(notification.message),
+ child: Text(notification.message),
),
),
],
diff --git a/lib/pages/DrawerPages/notifications/notifications_page.dart b/lib/pages/DrawerPages/notifications/notifications_page.dart
index aba2fb13..5a859fca 100644
--- a/lib/pages/DrawerPages/notifications/notifications_page.dart
+++ b/lib/pages/DrawerPages/notifications/notifications_page.dart
@@ -1,16 +1,17 @@
import 'package:diplomaticquarterapp/core/model/notifications/get_notifications_request_model.dart';
import 'package:diplomaticquarterapp/core/viewModels/notifications_view_model.dart';
+import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
import 'package:diplomaticquarterapp/pages/DrawerPages/notifications/notification_details_page.dart';
import 'package:diplomaticquarterapp/pages/base/base_view.dart';
import 'package:diplomaticquarterapp/theme/colors.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/data_display/text.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
import 'package:flutter/material.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
+import 'package:provider/provider.dart';
// ignore: must_be_immutable
class NotificationsPage extends StatelessWidget {
@@ -18,9 +19,7 @@ class NotificationsPage extends StatelessWidget {
DateTime d = DateUtil.convertStringToDate(date);
String monthName = DateUtil.getMonth(d.month).toString();
TimeOfDay timeOfDay = TimeOfDay(hour: d.hour, minute: d.minute);
- String minute = timeOfDay.minute < 10
- ? timeOfDay.minute.toString().padLeft(2, '0')
- : timeOfDay.minute.toString();
+ String minute = timeOfDay.minute < 10 ? timeOfDay.minute.toString().padLeft(2, '0') : timeOfDay.minute.toString();
String hour = '${timeOfDay.hourOfPeriod}:$minute';
if (timeOfDay.period == DayPeriod.am) {
@@ -39,112 +38,184 @@ class NotificationsPage extends StatelessWidget {
@override
Widget build(BuildContext context) {
- var prescriptionReport;
+ ProjectViewModel projectViewModel = Provider.of(context);
return BaseView(
onModelReady: (model) {
- GetNotificationsRequestModel getNotificationsRequestModel =
- new GetNotificationsRequestModel(
- currentPage: currentIndex,
- pagingSize: 14,
- notificationStatusID: 2);
+ GetNotificationsRequestModel getNotificationsRequestModel = new GetNotificationsRequestModel(currentPage: currentIndex, pagingSize: 14, notificationStatusID: 2);
model.getNotifications(getNotificationsRequestModel, context);
},
builder: (_, model, widget) => AppScaffold(
- isShowAppBar: true,
- showNewAppBar: true,
- showNewAppBarTitle: true,
- appBarTitle: TranslationBase.of(context).notifications,
- baseViewModel: model,
- body: ListView(
- children: model.notifications
- .map(
- (notification) => InkWell(
- onTap: () async {
- if (!notification.isRead) {
- model.markAsRead(notification.id);
- }
- Navigator.push(
- context,
- FadePage(
- page: NotificationsDetailsPage(
- notification: notification,
- )));
- },
- child: Container(
- width: double.infinity,
- margin: EdgeInsets.only(
- top: 5, left: 10, right: 10, bottom: 5),
- padding: EdgeInsets.all(8.0),
- decoration: BoxDecoration(
- color: Colors.white,
- borderRadius: BorderRadius.all(
- Radius.circular(10.0),
- ),
- border: Border.all(
- color: notification.isRead
- ? Colors.grey[200]
- : CustomColors.accentColor,
- width: 0.5),
- ),
- child: Row(
- children: [
- Expanded(
- child: Padding(
- padding: const EdgeInsets.all(8.0),
- child: Column(
- crossAxisAlignment: CrossAxisAlignment.start,
- children: [
- Texts(DateUtil.getDayMonthYearDateFormatted(DateUtil.convertStringToDate(notification.createdOn)) + " " + DateUtil.formatDateToTimeLang(DateUtil.convertStringToDate(notification.createdOn), false)),
- SizedBox(
- height: 5,
- ),
- Row(
- children: [
- Expanded(
- child: Texts(notification.message)),
- if (notification.messageType == "image")
- Icon(FontAwesomeIcons.images)
- ],
- ),
- SizedBox(
- height: 5,
- ),
- ],
+ isShowAppBar: true,
+ showNewAppBar: true,
+ showNewAppBarTitle: true,
+ appBarTitle: TranslationBase.of(context).notifications,
+ baseViewModel: model,
+ body: ListView.separated(
+ itemBuilder: (context, index) {
+ return InkWell(
+ onTap: () async {
+ if (!model.notifications[index].isRead) {
+ model.markAsRead(model.notifications[index].id);
+ }
+ Navigator.push(
+ context,
+ FadePage(
+ page: NotificationsDetailsPage(
+ notification: model.notifications[index],
+ )));
+ },
+ child: Container(
+ width: double.infinity,
+ padding: EdgeInsets.all(8.0),
+ decoration: BoxDecoration(
+ color: model.notifications[index].isRead ? Theme.of(context).scaffoldBackgroundColor : CustomColors.accentColor.withOpacity(0.05),
+ border: projectViewModel.isArabic
+ ? Border(
+ right: BorderSide(
+ color: model.notifications[index].isRead ? Theme.of(context).scaffoldBackgroundColor : CustomColors.accentColor,
+ width: 5.0,
+ ),
+ )
+ : Border(
+ left: BorderSide(
+ color: model.notifications[index].isRead ? Theme.of(context).scaffoldBackgroundColor : CustomColors.accentColor,
+ width: 5.0,
),
),
+ ),
+ child: Row(
+ children: [
+ Expanded(
+ child: Padding(
+ padding: const EdgeInsets.all(8.0),
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: [
+ Texts(DateUtil.getDayMonthYearDateFormatted(DateUtil.convertStringToDate(model.notifications[index].createdOn)) +
+ " " +
+ DateUtil.formatDateToTimeLang(DateUtil.convertStringToDate(model.notifications[index].createdOn), false)),
+ SizedBox(
+ height: 5,
+ ),
+ Row(
+ children: [
+ Expanded(child: Texts(model.notifications[index].message)),
+ if (model.notifications[index].messageType == "image")
+ Icon(
+ FontAwesomeIcons.images,
+ color: CustomColors.grey,
+ )
+ ],
+ ),
+ SizedBox(
+ height: 5,
+ ),
+ ],
+ ),
),
- SizedBox(
- width: 15,
- ),
- ],
- ),
+ ),
+ ],
),
),
- )
- .toList()
- ..add(
- InkWell(
- onTap: () async {
- GifLoaderDialogUtils.showMyDialog(context);
- currentIndex++;
- GetNotificationsRequestModel
- getNotificationsRequestModel =
- new GetNotificationsRequestModel(
- currentPage: currentIndex,
- pagingSize: 14,
- notificationStatusID: 2);
-
- await model.getNotifications(
- getNotificationsRequestModel, context);
- GifLoaderDialogUtils.hideDialog(context);
- },
- child: Center(
- child: Image.asset('assets/images/notf.png'),
- ),
+ );
+ },
+ separatorBuilder: (context, index) {
+ return Column(
+ children: [
+ Divider(
+ color: Colors.grey[300],
+ thickness: 2.0,
),
- )),
- ),
+ ],
+ );
+ },
+ itemCount: model.notifications.length)),
+ // ListView(
+ // children: model.notifications
+ // .map(
+ // (notification) => InkWell(
+ // onTap: () async {
+ // if (!notification.isRead) {
+ // model.markAsRead(notification.id);
+ // }
+ // Navigator.push(
+ // context,
+ // FadePage(
+ // page: NotificationsDetailsPage(
+ // notification: notification,
+ // )));
+ // },
+ // child: Container(
+ // width: double.infinity,
+ // padding: EdgeInsets.all(8.0),
+ // decoration: BoxDecoration(
+ // color: notification.isRead ? CustomColors.white : CustomColors.accentColor.withOpacity(0.05),
+ // border: Border(
+ // left: BorderSide(
+ // color: notification.isRead ? Colors.grey[200] : CustomColors.accentColor,
+ // width: 5.0,
+ // ),
+ // ),
+ // ),
+ // child: Row(
+ // children: [
+ // Expanded(
+ // child: Padding(
+ // padding: const EdgeInsets.all(8.0),
+ // child: Column(
+ // crossAxisAlignment: CrossAxisAlignment.start,
+ // children: [
+ // Texts(DateUtil.getDayMonthYearDateFormatted(DateUtil.convertStringToDate(notification.createdOn)) + " " + DateUtil.formatDateToTimeLang(DateUtil.convertStringToDate(notification.createdOn), false)),
+ // SizedBox(
+ // height: 5,
+ // ),
+ // Row(
+ // children: [
+ // Expanded(
+ // child: Texts(notification.message)),
+ // if (notification.messageType == "image")
+ // Icon(FontAwesomeIcons.images, color: CustomColors.grey,)
+ // ],
+ // ),
+ // SizedBox(
+ // height: 5,
+ // ),
+ // Divider(
+ // height: 5.0,
+ // color: CustomColors.grey2,
+ // ),
+ // ],
+ // ),
+ // ),
+ // ),
+ // ],
+ // ),
+ // ),
+ // ),
+ // )
+ // .toList()
+ // ..add(
+ // InkWell(
+ // onTap: () async {
+ // GifLoaderDialogUtils.showMyDialog(context);
+ // currentIndex++;
+ // GetNotificationsRequestModel
+ // getNotificationsRequestModel =
+ // new GetNotificationsRequestModel(
+ // currentPage: currentIndex,
+ // pagingSize: 14,
+ // notificationStatusID: 2);
+ //
+ // await model.getNotifications(
+ // getNotificationsRequestModel, context);
+ // GifLoaderDialogUtils.hideDialog(context);
+ // },
+ // child: Center(
+ // child: Image.asset('assets/images/notf.png'),
+ // ),
+ // ),
+ // )),
);
}
}
diff --git a/lib/pages/ErService/EdOnline/ConfirmExitPageDialog.dart b/lib/pages/ErService/EdOnline/ConfirmExitPageDialog.dart
index 1144e587..b31d4a38 100644
--- a/lib/pages/ErService/EdOnline/ConfirmExitPageDialog.dart
+++ b/lib/pages/ErService/EdOnline/ConfirmExitPageDialog.dart
@@ -2,75 +2,75 @@ 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 ConfirmExitPageDialog extends StatelessWidget {
- final GestureTapCallback onTapYes;
- final GestureTapCallback onTapNo;
-
- const ConfirmExitPageDialog({Key key, this.onTapYes, this.onTapNo})
- : super(key: key);
-
- @override
- Widget build(BuildContext context) {
- return SimpleDialog(
- contentPadding: EdgeInsets.fromLTRB(28.0, 24.0, 28.0, 0.0),
- title: Center(
- child: Texts(
- TranslationBase.of(context).confirm,
- color: Colors.black,
- ),
- ),
- children: [
- Column(
- crossAxisAlignment: CrossAxisAlignment.center,
- children: [
- Texts(
- "Are you sure you want to exit this page ?",
- color: Colors.grey,
- ),
- SizedBox(
- height: 5,
- ),
- Divider(),
- SizedBox(
- height: 5.0,
- ),
- Row(
- mainAxisAlignment: MainAxisAlignment.spaceBetween,
- children: [
- InkWell(
- onTap: () {
- onTapNo();
- },
- child: Container(
- child: Center(
- child: Texts(
- TranslationBase.of(context).no,
- color: Colors.red,
- ),
- ),
- ),
- ),
-
- InkWell(
- onTap: () {
- Navigator.pop(context);
- onTapYes();
- },
- child: Container(
- child: Center(
- child: Texts(TranslationBase.of(context).yes),
- ),
- ),
- ),
- ],
- ),
- SizedBox(
- height: 20.0,
- ),
- ],
- )
- ],
- );
- }
-}
+// todo 'sikander' remove useless code
+// class ConfirmExitPageDialog extends StatelessWidget {
+// final GestureTapCallback onTapYes;
+// final GestureTapCallback onTapNo;
+//
+// const ConfirmExitPageDialog({Key key, this.onTapYes, this.onTapNo})
+// : super(key: key);
+//
+// @override
+// Widget build(BuildContext context) {
+// return SimpleDialog(
+// contentPadding: EdgeInsets.fromLTRB(28.0, 24.0, 28.0, 0.0),
+// title: Center(
+// child: Texts(
+// TranslationBase.of(context).confirm,
+// color: Colors.black,
+// ),
+// ),
+// children: [
+// Column(
+// crossAxisAlignment: CrossAxisAlignment.center,
+// children: [
+// Texts(
+// "Are you sure you want to exit this page ?",
+// color: Colors.grey,
+// ),
+// SizedBox(
+// height: 5,
+// ),
+// Divider(),
+// SizedBox(
+// height: 5.0,
+// ),
+// Row(
+// mainAxisAlignment: MainAxisAlignment.spaceBetween,
+// children: [
+// InkWell(
+// onTap: () {
+// onTapNo();
+// },
+// child: Container(
+// child: Center(
+// child: Texts(
+// TranslationBase.of(context).no,
+// color: Colors.red,
+// ),
+// ),
+// ),
+// ),
+//
+// InkWell(
+// onTap: () {
+// Navigator.pop(context);
+// onTapYes();
+// },
+// child: Container(
+// child: Center(
+// child: Texts(TranslationBase.of(context).yes),
+// ),
+// ),
+// ),
+// ],
+// ),
+// SizedBox(
+// height: 20.0,
+// ),
+// ],
+// )
+// ],
+// );
+// }
+// }
diff --git a/lib/pages/ErService/EdOnline/DdServicesPage.dart b/lib/pages/ErService/EdOnline/DdServicesPage.dart
index edab81c1..457e199c 100644
--- a/lib/pages/ErService/EdOnline/DdServicesPage.dart
+++ b/lib/pages/ErService/EdOnline/DdServicesPage.dart
@@ -30,14 +30,12 @@ class _DdServicesPageState extends State {
void initState() {
super.initState();
pageController = new PageController();
-
}
_changePageViewIndex(int tab) {
setState(() {
pageController.jumpToPage(tab);
- pageController.animateToPage(tab,
- duration: Duration(milliseconds: 800), curve: Curves.easeOutQuart);
+ pageController.animateToPage(tab, duration: Duration(milliseconds: 800), curve: Curves.easeOutQuart);
});
}
@@ -99,25 +97,28 @@ class _DdServicesPageState extends State {
selectedQuestions: selectedQuestions,
triageInformationRequest: triageInformationRequest,
),
- EdPaymentInformationPage(selectedHospital: triageInformationRequest.selectedHospital,)
+ EdPaymentInformationPage(
+ selectedHospital: triageInformationRequest.selectedHospital,
+ )
],
),
);
}
- void showConfirmMessage(
- BuildContext context,
- ) {
- showDialog(
- context: context,
- child: ConfirmExitPageDialog(
- onTapYes: () {
- Navigator.pop(context);
- },
- onTapNo: () {
- Navigator.pop(context);
- },
- ),
- );
- }
+ // todo 'sikander' remove useless code
+ // void showConfirmMessage(
+ // BuildContext context,
+ // ) {
+ // showDialog(
+ // context: context,
+ // child: ConfirmExitPageDialog(
+ // onTapYes: () {
+ // Navigator.pop(context);
+ // },
+ // onTapNo: () {
+ // Navigator.pop(context);
+ // },
+ // ),
+ // );
+ // }
}
diff --git a/lib/pages/MyAppointments/AppointmentDetails.dart b/lib/pages/MyAppointments/AppointmentDetails.dart
index be44855d..06710183 100644
--- a/lib/pages/MyAppointments/AppointmentDetails.dart
+++ b/lib/pages/MyAppointments/AppointmentDetails.dart
@@ -10,6 +10,7 @@ import 'package:diplomaticquarterapp/pages/BookAppointment/components/DocAvailab
import 'package:diplomaticquarterapp/pages/MyAppointments/SchedulePage.dart';
import 'package:diplomaticquarterapp/services/appointment_services/GetDoctorsList.dart';
import 'package:diplomaticquarterapp/services/clinic_services/get_clinic_service.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';
@@ -106,6 +107,7 @@ class _AppointmentDetailsState extends State with SingleTick
widget.appo.actualDoctorRate,
widget.appo.noOfPatientsRate,
"",
+ decimalDoctorRate: widget.appo.decimalDoctorRate.toString()
//model.user.emailAddress,
),
isNeedToShowButton: (widget.appo.clinicID == 17 || widget.appo.clinicID == 47 || widget.appo.clinicID == 23 || widget.appo.clinicID == 265 || widget.appo.isExecludeDoctor || widget.appo.isLiveCareAppointment) ? false : true,
@@ -186,7 +188,7 @@ class _AppointmentDetailsState extends State with SingleTick
list.add(
Expanded(
child: DefaultButton(
- TranslationBase.of(context).cancel,
+ TranslationBase.of(context).cancelAppointment,
() {
ConfirmDialog dialog = new ConfirmDialog(
context: context,
@@ -197,8 +199,8 @@ class _AppointmentDetailsState extends State with SingleTick
cancelFunction: () => {});
dialog.showAlertDialog(context);
},
- color: Color(0xffEAEAEA),
- textColor: Color(0xff000000),
+ color: CustomColors.accentColor,
+ textColor: CustomColors.white,
),
),
);
@@ -218,7 +220,7 @@ class _AppointmentDetailsState extends State with SingleTick
list.add(
Expanded(
child: DefaultButton(
- TranslationBase.of(context).cancel,
+ TranslationBase.of(context).cancelAppointment,
() {
ConfirmDialog dialog = new ConfirmDialog(
context: context,
@@ -229,7 +231,7 @@ class _AppointmentDetailsState extends State with SingleTick
cancelFunction: () => {});
dialog.showAlertDialog(context);
},
- // color: Color(0xffEAEAEA),
+ color: CustomColors.accentColor,
// textColor: Color(0xff000000),
),
),
@@ -326,12 +328,10 @@ class _AppointmentDetailsState extends State with SingleTick
child: Column(
children: [
Container(
- alignment: Alignment.center,
width: MediaQuery.of(context).size.width,
- color: Theme.of(context).primaryColor,
margin: EdgeInsets.only(bottom: 5.0),
padding: EdgeInsets.all(10.0),
- child: Text(TranslationBase.of(context).doctorRating, style: TextStyle(fontSize: 22.0, color: Colors.white))),
+ child: Text(TranslationBase.of(context).doctorRating, style: TextStyle(fontSize: 22.0, color: Colors.black))),
Container(margin: EdgeInsets.only(top: 0.0), child: Text(this.widget.appo.actualDoctorRate.ceilToDouble().toString(), style: TextStyle(fontSize: 32.0, color: Colors.black))),
Container(
margin: EdgeInsets.only(top: 5.0),
diff --git a/lib/pages/MyAppointments/MyAppointments.dart b/lib/pages/MyAppointments/MyAppointments.dart
index 38fbdce9..b65c5235 100644
--- a/lib/pages/MyAppointments/MyAppointments.dart
+++ b/lib/pages/MyAppointments/MyAppointments.dart
@@ -167,7 +167,6 @@ class _MyAppointmentsState extends State with SingleTickerProvid
GifLoaderDialogUtils.hideDialog(context);
print(err);
AppToast.showErrorToast(message: err);
- Navigator.of(context).pop();
});
}
diff --git a/lib/pages/MyAppointments/SchedulePage.dart b/lib/pages/MyAppointments/SchedulePage.dart
index 2287cff5..92fbeedf 100644
--- a/lib/pages/MyAppointments/SchedulePage.dart
+++ b/lib/pages/MyAppointments/SchedulePage.dart
@@ -1,33 +1,30 @@
+import 'package:diplomaticquarterapp/core/enum/viewstate.dart';
+import 'package:diplomaticquarterapp/core/viewModels/medical/medical_view_model.dart';
+import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
+import 'package:diplomaticquarterapp/models/Appointments/AppoimentAllHistoryResultList.dart';
import 'package:diplomaticquarterapp/models/Appointments/DoctorListResponse.dart';
-import 'package:diplomaticquarterapp/pages/MyAppointments/AppointmentDetails.dart';
-
import 'package:diplomaticquarterapp/pages/MyAppointments/models/DoctorScheduleResponse.dart';
import 'package:diplomaticquarterapp/pages/MyAppointments/widgets/indicator.dart';
-import 'package:diplomaticquarterapp/services/appointment_services/GetDoctorsList.dart';
-import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
-import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
-import 'package:diplomaticquarterapp/uitl/date_uitl.dart';
-import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
-import 'package:flutter/material.dart';
-import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
-import 'package:diplomaticquarterapp/core/viewModels/medical/medical_view_model.dart';
import 'package:diplomaticquarterapp/pages/base/base_view.dart';
+import 'package:diplomaticquarterapp/services/appointment_services/GetDoctorsList.dart';
import 'package:diplomaticquarterapp/uitl/app_shared_preferences.dart';
-import 'package:diplomaticquarterapp/config/shared_pref_kay.dart';
-import 'package:diplomaticquarterapp/models/Appointments/AppoimentAllHistoryResultList.dart';
import 'package:diplomaticquarterapp/uitl/app_toast.dart';
import 'package:diplomaticquarterapp/uitl/date_uitl.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:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
+import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
-import 'package:diplomaticquarterapp/core/enum/viewstate.dart';
class SchedulePage extends StatefulWidget {
DoctorList doctorList;
AppoitmentAllHistoryResultList appo;
+
SchedulePage({
this.appo,
this.doctorList,
});
+
@override
_SchedulePageState createState() => _SchedulePageState();
}
@@ -45,6 +42,7 @@ class _SchedulePageState extends State {
bool isPageChange = false;
AppSharedPreferences sharedPref = AppSharedPreferences();
+
@override
void initState() {
this.doctorList = widget.doctorList;
@@ -56,169 +54,132 @@ class _SchedulePageState extends State {
Widget build(BuildContext context) {
ProjectViewModel projectViewModel = Provider.of(context);
return BaseView(
- onModelReady: (model) => model.getDoctorSchedule(doctorList),
- allowAny: true,
- builder: (_, model, widget) => BaseView(
- onModelReady: (model2) => model2.getFreeSlots(doctorList),
- allowAny: true,
- builder: (_, model2, widget2) {
- if (model2.freeSlots.length > 0 && isPageChange == false && model2.state == ViewState.Idle) {
- this.freeSlots = model2.freeSlots;
- this.doctorScheduleResponse = model.getDoctorScheduleList;
+ onModelReady: (model) => model.getDoctorSchedule(doctorList),
+ allowAny: true,
+ builder: (_, model, widget) => BaseView(
+ onModelReady: (model2) => model2.getFreeSlots(doctorList),
+ allowAny: true,
+ builder: (_, model2, widget2) {
+ if (model2.freeSlots.length > 0 && isPageChange == false && model2.state == ViewState.Idle) {
+ this.freeSlots = model2.freeSlots;
+ this.doctorScheduleResponse = model.getDoctorScheduleList;
- this.generateWeeksSchedules();
- } else if (model2.freeSlots.length == 0 && model2.state == ViewState.Idle) {
- AppToast.showErrorToast(message: TranslationBase.of(context).emptySchedule);
- Navigator.pop(context);
- }
- return AppScaffold(
- appBarTitle: TranslationBase.of(context).schedule,
- showNewAppBar: true,
- showNewAppBarTitle: true,
- isShowAppBar: true,
- backgroundColor: Color(0xffF7F7F7),
- baseViewModel: model2,
- isShowDecPage: false,
- body: Column(
- children: [
- SizedBox(height: 21),
- PageViewIndicator(
- isActive: true,
- currentPage: this.currentPage,
- length: weeks.length,
- ),
- Expanded(
- child: PageView.builder(
- controller: _pageController,
- itemCount: weeks.length,
- onPageChanged: (index) {
- setState(() {
- isPageChange = true;
- this.currentPage = index.toDouble();
- });
- },
- itemBuilder: (context, index) {
- return ListView.separated(
- itemCount: weeks[index].length,
- padding: EdgeInsets.all(21),
- separatorBuilder: (context, index) => SizedBox(height: 12),
- itemBuilder: (context, index2) {
- bool isToday = DateUtil.convertStringToDate(weeks[index][index2]['Date']).toString().substring(0, 10) == DateTime.now().toString().substring(0, 10);
- Color toDayColor = isToday ? Color(0xff359846) : Colors.white;
-
- return InkWell(
- onTap: () {
- openBookAppointment(weeks[index][index2]);
+ this.generateWeeksSchedules();
+ } else if (model2.freeSlots.length == 0 && model2.state == ViewState.Idle) {
+ AppToast.showErrorToast(message: TranslationBase.of(context).emptySchedule);
+ Navigator.pop(context);
+ }
+ return AppScaffold(
+ appBarTitle: TranslationBase.of(context).schedule,
+ showNewAppBar: true,
+ showNewAppBarTitle: true,
+ isShowAppBar: true,
+ baseViewModel: model2,
+ isShowDecPage: false,
+ body: SizedBox(
+ height: MediaQuery.of(context).size.height,
+ child: Stack(
+ children: [
+ Container(
+ margin: EdgeInsets.only(top: 40),
+ child: PageView.builder(
+ controller: _pageController,
+ itemCount: weeks.length,
+ onPageChanged: (index) {
+ setState(() {
+ isPageChange = true;
+ this.currentPage = index.toDouble();
+ });
+ },
+ itemBuilder: (context, index) {
+ return Container(
+ child: ListView.builder(
+ itemCount: weeks[index].length,
+ itemBuilder: (context, index2) => InkWell(
+ onTap: () {
+ openBookAppointment(weeks[index][index2]);
+ },
+ child: Row(
+ children: [
+ Expanded(
+ flex: 1,
+ child: Padding(
+ padding: projectViewModel.isArabic ? EdgeInsets.only(right: 20) : EdgeInsets.only(left: 20),
+ child: Row(children: [
+ Column(
+ children: [
+ Texts(
+ weeks[index][index2]['DayName'],
+ fontSize: 13,
+ fontWeight: projectViewModel.isArabic ? FontWeight.w600 : FontWeight.w500,
+ ),
+ Texts(
+ getDayMonths(
+ DateUtil.convertStringToDate(
+ weeks[index][index2]['Date'],
+ ),
+ ),
+ fontWeight: FontWeight.bold,
+ fontSize: 18,
+ )
+ ],
+ )
+ ])),
+ ),
+ Expanded(
+ flex: 3,
+ child: ClipRRect(
+ borderRadius: const BorderRadius.all(Radius.circular(20.0)),
+ child: Container(
+ padding: EdgeInsets.only(left: 10, right: 10, top: 15, bottom: 20),
+ margin: EdgeInsets.only(left: 20, right: 20, top: 7, bottom: 7),
+ decoration: BoxDecoration(boxShadow: [
+ DateUtil.convertStringToDate(weeks[index][index2]['Date']).toString().substring(0, 10) == DateTime.now().toString().substring(0, 10)
+ ? BoxShadow(color: Colors.green, offset: Offset(projectViewModel.isArabic ? 5 : -5, 0))
+ : BoxShadow(
+ color: Colors.grey[100],
+ blurRadius: 5,
+ spreadRadius: 4,
+ offset: Offset(0, 10),
+ ),
+ ], borderRadius: const BorderRadius.all(Radius.circular(10.0)), color: Colors.white),
+ child: Column(crossAxisAlignment: CrossAxisAlignment.start, children: [
+ DateUtil.convertStringToDate(weeks[index][index2]['Date']).toString().substring(0, 10) == DateTime.now().toString().substring(0, 10)
+ ? Texts(
+ TranslationBase.of(context).today,
+ color: Colors.green,
+ fontWeight: FontWeight.w600,
+ fontSize: 12,
+ marginTop: 0,
+ )
+ : SizedBox(),
+ Row(
+ children: [
+ Expanded(
+ child: Text(
+ weeks[index][index2]['WorkingHours'],
+ style: TextStyle(
+ fontWeight: FontWeight.w600,
+ ),
+ ),
+ ),
+ Icon(Icons.arrow_forward, size: 16.0),
+ ],
+ )
+ ]))),
+ ),
+ ],
+ ))));
},
- child: Row(
- crossAxisAlignment: CrossAxisAlignment.start,
- children: [
- Expanded(
- flex: 1,
- child: Column(
- mainAxisSize: MainAxisSize.min,
- crossAxisAlignment: CrossAxisAlignment.start,
- children: [
- Text(
- weeks[index][index2]['DayName'],
- style: TextStyle(
- fontSize: 13,
- fontWeight: FontWeight.w600,
- color: Color(0xff2E303A),
- letterSpacing: -0.52,
- ),
- ),
- Text(
- getDayMonths(DateUtil.convertStringToDate(weeks[index][index2]['Date'])),
- style: TextStyle(
- fontSize: 18,
- fontWeight: FontWeight.w700,
- color: Color(0xff2E303A),
- letterSpacing: -0.72,
- ),
- ),
- ],
- ),
- ),
- Expanded(
- flex: 3,
- child: Container(
- decoration: BoxDecoration(
- color: toDayColor,
- borderRadius: BorderRadius.all(
- Radius.circular(10.0),
- ),
- boxShadow: [
- BoxShadow(
- color: Color(0xff000000).withOpacity(.05),
- blurRadius: 27,
- offset: Offset(0, -3),
- ),
- ],
- ),
- child: Container(
- margin: EdgeInsets.only(left: projectViewModel.isArabic ? 0 : 6, right: projectViewModel.isArabic ? 6 : 0),
- padding: EdgeInsets.symmetric(vertical: 14, 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: Row(
- crossAxisAlignment: CrossAxisAlignment.center,
- children: [
- Expanded(
- child: Column(crossAxisAlignment: CrossAxisAlignment.start, children: [
- if (isToday)
- Text(
- TranslationBase.of(context).today,
- style: TextStyle(
- fontSize: 12,
- fontWeight: FontWeight.w600,
- color: toDayColor,
- letterSpacing: -0.48,
- ),
- ),
- Row(
- children: [
- Expanded(
- child: Text(
- weeks[index][index2]['WorkingHours'],
- style: TextStyle(
- fontSize: 13,
- fontWeight: FontWeight.w600,
- color: Color(0xff2E303A),
- letterSpacing: -0.56,
- ),
- ),
- ),
- ],
- )
- ]),
- ),
- Icon(Icons.arrow_forward, color: Color(0xff2B353E)),
- ],
- ),
- ),
- ),
- ),
- ],
- ),
- );
- });
- },
- ),
- ),
- ],
- ),
- );
- }),
- );
+ )),
+ PageViewIndicator(
+ isActive: true,
+ currentPage: this.currentPage,
+ length: weeks.length,
+ )
+ ],
+ )));
+ }));
}
generateWeeksSchedules() {
@@ -284,3 +245,289 @@ class _SchedulePageState extends State {
// );
}
}
+
+// import 'package:diplomaticquarterapp/models/Appointments/DoctorListResponse.dart';
+// import 'package:diplomaticquarterapp/pages/MyAppointments/AppointmentDetails.dart';
+//
+// import 'package:diplomaticquarterapp/pages/MyAppointments/models/DoctorScheduleResponse.dart';
+// import 'package:diplomaticquarterapp/pages/MyAppointments/widgets/indicator.dart';
+// import 'package:diplomaticquarterapp/services/appointment_services/GetDoctorsList.dart';
+// import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
+// import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
+// import 'package:diplomaticquarterapp/uitl/date_uitl.dart';
+// import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
+// import 'package:flutter/material.dart';
+// import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
+// import 'package:diplomaticquarterapp/core/viewModels/medical/medical_view_model.dart';
+// import 'package:diplomaticquarterapp/pages/base/base_view.dart';
+// import 'package:diplomaticquarterapp/uitl/app_shared_preferences.dart';
+// import 'package:diplomaticquarterapp/config/shared_pref_kay.dart';
+// import 'package:diplomaticquarterapp/models/Appointments/AppoimentAllHistoryResultList.dart';
+// import 'package:diplomaticquarterapp/uitl/app_toast.dart';
+// import 'package:diplomaticquarterapp/uitl/date_uitl.dart';
+// import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
+// import 'package:provider/provider.dart';
+// import 'package:diplomaticquarterapp/core/enum/viewstate.dart';
+//
+// class SchedulePage extends StatefulWidget {
+// DoctorList doctorList;
+// AppoitmentAllHistoryResultList appo;
+// SchedulePage({
+// this.appo,
+// this.doctorList,
+// });
+// @override
+// _SchedulePageState createState() => _SchedulePageState();
+// }
+//
+// class _SchedulePageState extends State {
+// DoctorsListService service;
+// PageController _pageController = PageController();
+// double currentPage = 0;
+// int selectedindex = 0;
+// List weeks = [];
+// List doctorScheduleResponse = [];
+// int weekMS = 604800 * 1000;
+// DoctorList doctorList;
+// List freeSlots = [];
+// bool isPageChange = false;
+//
+// AppSharedPreferences sharedPref = AppSharedPreferences();
+// @override
+// void initState() {
+// this.doctorList = widget.doctorList;
+//
+// super.initState();
+// }
+//
+// @override
+// Widget build(BuildContext context) {
+// ProjectViewModel projectViewModel = Provider.of(context);
+// return BaseView(
+// onModelReady: (model) => model.getDoctorSchedule(doctorList),
+// allowAny: true,
+// builder: (_, model, widget) => BaseView(
+// onModelReady: (model2) => model2.getFreeSlots(doctorList),
+// allowAny: true,
+// builder: (_, model2, widget2) {
+// if (model2.freeSlots.length > 0 && isPageChange == false && model2.state == ViewState.Idle) {
+// this.freeSlots = model2.freeSlots;
+// this.doctorScheduleResponse = model.getDoctorScheduleList;
+//
+// this.generateWeeksSchedules();
+// } else if (model2.freeSlots.length == 0 && model2.state == ViewState.Idle) {
+// AppToast.showErrorToast(message: TranslationBase.of(context).emptySchedule);
+// Navigator.pop(context);
+// }
+// return AppScaffold(
+// appBarTitle: TranslationBase.of(context).schedule,
+// showNewAppBar: true,
+// showNewAppBarTitle: true,
+// isShowAppBar: true,
+// backgroundColor: Color(0xffF7F7F7),
+// baseViewModel: model2,
+// isShowDecPage: false,
+// body: Column(
+// children: [
+// SizedBox(height: 21),
+// PageViewIndicator(
+// isActive: true,
+// currentPage: this.currentPage,
+// length: weeks.length,
+// ),
+// Expanded(
+// child: PageView.builder(
+// controller: _pageController,
+// itemCount: weeks.length,
+// onPageChanged: (index) {
+// setState(() {
+// isPageChange = true;
+// this.currentPage = index.toDouble();
+// });
+// },
+// itemBuilder: (context, index) {
+// return ListView.separated(
+// itemCount: weeks[index].length,
+// padding: EdgeInsets.all(21),
+// separatorBuilder: (context, index) => SizedBox(height: 12),
+// itemBuilder: (context, index2) {
+// bool isToday = DateUtil.convertStringToDate(weeks[index][index2]['Date']).toString().substring(0, 10) == DateTime.now().toString().substring(0, 10);
+// Color toDayColor = isToday ? Color(0xff359846) : Colors.white;
+// return InkWell(
+// onTap: () {
+// openBookAppointment(weeks[index][index2]);
+// },
+// child: Row(
+// crossAxisAlignment: CrossAxisAlignment.start,
+// children: [
+// Expanded(
+// flex: 1,
+// child: Column(
+// mainAxisSize: MainAxisSize.min,
+// crossAxisAlignment: CrossAxisAlignment.start,
+// children: [
+// Text(
+// weeks[index][index2]['DayName'],
+// style: TextStyle(
+// fontSize: 13,
+// fontWeight: FontWeight.w600,
+// color: Color(0xff2E303A),
+// letterSpacing: -0.52,
+// ),
+// ),
+// Text(
+// getDayMonths(DateUtil.convertStringToDate(weeks[index][index2]['Date'])),
+// style: TextStyle(
+// fontSize: 18,
+// fontWeight: FontWeight.w700,
+// color: Color(0xff2E303A),
+// letterSpacing: -0.72,
+// ),
+// ),
+// ],
+// ),
+// ),
+// Expanded(
+// flex: 3,
+// child: Container(
+// decoration: BoxDecoration(
+// color: toDayColor,
+// borderRadius: BorderRadius.all(
+// Radius.circular(10.0),
+// ),
+// boxShadow: [
+// BoxShadow(
+// color: Color(0xff000000).withOpacity(.05),
+// blurRadius: 27,
+// offset: Offset(0, -3),
+// ),
+// ],
+// ),
+// child: Container(
+// margin: EdgeInsets.only(left: projectViewModel.isArabic ? 0 : 6, right: projectViewModel.isArabic ? 6 : 0),
+// padding: EdgeInsets.symmetric(vertical: 14, 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: Row(
+// crossAxisAlignment: CrossAxisAlignment.center,
+// children: [
+// Expanded(
+// child: Column(crossAxisAlignment: CrossAxisAlignment.start, children: [
+// if (isToday)
+// Text(
+// TranslationBase.of(context).today,
+// style: TextStyle(
+// fontSize: 12,
+// fontWeight: FontWeight.w600,
+// color: toDayColor,
+// letterSpacing: -0.48,
+// ),
+// ),
+// Row(
+// children: [
+// Expanded(
+// child: Text(
+// weeks[index][index2]['WorkingHours'],
+// style: TextStyle(
+// fontSize: 13,
+// fontWeight: FontWeight.w600,
+// color: Color(0xff2E303A),
+// letterSpacing: -0.56,
+// ),
+// ),
+// ),
+// ],
+// )
+// ]),
+// ),
+// Icon(Icons.arrow_forward, color: Color(0xff2B353E)),
+// ],
+// ),
+// ),
+// ),
+// ),
+// ],
+// ),
+// );
+// });
+// },
+// ),
+// ),
+// ],
+// ),
+// );
+// }),
+// );
+// }
+//
+// generateWeeksSchedules() {
+// this.weeks.clear();
+// for (var i = 0; i < 8; i++) {
+// var weekSchedule = generateNewWeekSchedule(i);
+// this.markWeekFreeDays(weekSchedule);
+// this.weeks.add(weekSchedule);
+// }
+// //print(this.weeks);
+// }
+//
+// markWeekFreeDays(schedule) {
+// for (var workDay in schedule) {
+// workDay['fullDay'] = !this.hasFreeSlot(workDay['Date']);
+// }
+// }
+//
+// generateNewWeekSchedule(weekIndex) {
+// var weekMSOffset = weekIndex * weekMS;
+//
+// var newWeekSchedule = [];
+// for (var workDay in this.doctorScheduleResponse) {
+// Map newWorkDay = Map();
+// newWorkDay['Date'] = DateUtil.convertDateMSToJsonDate(DateUtil.convertStringToDate(workDay.date).millisecondsSinceEpoch + weekMSOffset);
+// newWorkDay['DayName'] = workDay.dayName;
+// newWorkDay['WorkingHours'] = workDay.workingHours;
+// newWeekSchedule.add(newWorkDay);
+// }
+// return newWeekSchedule;
+// }
+//
+// hasFreeSlot(String jsonDate) {
+// var date = DateUtil.convertStringToDate(jsonDate);
+// var scheduleDay = date;
+// for (var event in this.freeSlots) {
+// var date = DateUtil.convertStringToDate(event);
+// var nDate = DateTime(date.year, date.month, date.day);
+//
+// if (nDate.millisecondsSinceEpoch == scheduleDay.millisecondsSinceEpoch) {
+// return true;
+// }
+// }
+// return false;
+// }
+//
+// String getDayMonths(DateTime dateTime) {
+// String dateFormat = '${dateTime.day} ${DateUtil.getMonth(dateTime.month).toString().substring(0, 3)}';
+// return dateFormat;
+// }
+//
+// openBookAppointment(selectedDate) {
+// //sharedPref.setObject(DOCTOR_SCHEDULE_DATE_SEL, selectedDate);
+// Navigator.of(context).pop(selectedDate);
+// // Navigator.push(
+// // context,
+// // FadePage(
+// // page: AppointmentDetails(
+// // appo: widget.appo,
+// // doctorSchedule: selectedDate,
+// // ),
+// // ),
+// // );
+// }
+// }
diff --git a/lib/pages/MyAppointments/widgets/AppointmentActions.dart b/lib/pages/MyAppointments/widgets/AppointmentActions.dart
index ee94a616..224f3db8 100644
--- a/lib/pages/MyAppointments/widgets/AppointmentActions.dart
+++ b/lib/pages/MyAppointments/widgets/AppointmentActions.dart
@@ -381,12 +381,12 @@ class _AppointmentActionsState extends State {
print(finalRadiology.reportData);
navigateToRadiologyDetails(finalRadiology);
} else {
- AppToast.showErrorToast(message: res['ErrorEndUserMessage']);
+ AppToast.showErrorToast(message: TranslationBase.of(context).noResultFound);
}
}).catchError((err) {
GifLoaderDialogUtils.hideDialog(context);
print(err);
- AppToast.showErrorToast(message: err);
+ AppToast.showErrorToast(message: TranslationBase.of(context).noResultFound);
});
}
diff --git a/lib/pages/ToDoList/ToDo.dart b/lib/pages/ToDoList/ToDo.dart
index a143fa15..1a0ec103 100644
--- a/lib/pages/ToDoList/ToDo.dart
+++ b/lib/pages/ToDoList/ToDo.dart
@@ -57,6 +57,8 @@ class _ToDoState extends State {
ToDoCountProviderModel toDoProvider;
CountdownTimerController controller;
+ ProjectViewModel projectViewModel;
+
@override
void initState() {
widget.patientShareResponse = new PatientShareResponse();
@@ -73,7 +75,7 @@ class _ToDoState extends State {
@override
Widget build(BuildContext context) {
toDoProvider = Provider.of(context);
- ProjectViewModel projectViewModel = Provider.of(context);
+ projectViewModel = Provider.of(context);
return AppScaffold(
appBarTitle: TranslationBase.of(context).todoList,
imagesInfo: imagesInfo,
@@ -169,12 +171,12 @@ class _ToDoState extends State {
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(widget.appoList[index].doctorTitle + " " + widget.appoList[index].doctorNameObj,
- style: TextStyle(fontSize: 14.0, color: Colors.black, fontWeight: FontWeight.bold, letterSpacing: 1.0)),
+ style: TextStyle(fontSize: 14.0, color: Colors.black, fontWeight: FontWeight.bold, letterSpacing: -0.64)),
if (getDoctorSpeciality(widget.appoList[index].doctorSpeciality) != "null\n")
Container(
margin: EdgeInsets.only(top: 3.0, bottom: 3.0),
child: Text(getDoctorSpeciality(widget.appoList[index].doctorSpeciality).trim(),
- style: TextStyle(fontSize: 12.0, color: Colors.grey[600], letterSpacing: 1.0)),
+ style: TextStyle(fontSize: 12.0, color: Colors.grey[600], letterSpacing: -0.64)),
),
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
@@ -267,7 +269,7 @@ class _ToDoState extends State {
color: Color(0xff20bc44),
),
height: 30.0,
- padding: EdgeInsets.only(right: 15),
+ padding: EdgeInsets.only(right: 10, left: 10),
margin: EdgeInsets.symmetric(horizontal: 20),
transform: Matrix4.translationValues(0.0, -8.0, 0.0),
child: Row(
@@ -319,11 +321,11 @@ class _ToDoState extends State {
break;
case 15:
- return widget.languageID == 'ar' ? "assets/images/new-design/pay_online_button_arabic_disabled.png" : "assets/images/new-design/pay_online_button_disabled.png";
+ return projectViewModel.isArabic ? "assets/images/new-design/pay_online_button_arabic_disabled.png" : "assets/images/new-design/pay_online_button_disabled.png";
break;
case 20:
- return widget.languageID == 'ar' ? "assets/images/new-design/pay_online_button_arabic.png" : "assets/images/new-design/pay_online_button.png";
+ return projectViewModel.isArabic ? "assets/images/new-design/pay_online_button_arabic.png" : "assets/images/new-design/pay_online_button.png";
break;
case 30:
diff --git a/lib/pages/ToDoList/payment_method_select.dart b/lib/pages/ToDoList/payment_method_select.dart
index f2a96651..3e7678cc 100644
--- a/lib/pages/ToDoList/payment_method_select.dart
+++ b/lib/pages/ToDoList/payment_method_select.dart
@@ -60,7 +60,7 @@ class _PaymentMethodState extends State {
height: 60.0,
width: 60,
padding: EdgeInsets.all(7.0),
- child: Image.asset("assets/images/new-design/mada.png"),
+ child: Image.asset("assets/images/new/payment/Mada.png"),
),
mWidth(12),
Text(
@@ -96,7 +96,7 @@ class _PaymentMethodState extends State {
height: 60.0,
padding: EdgeInsets.all(7.0),
width: 60,
- child: Image.asset("assets/images/new-design/visa.png"),
+ child: Image.asset("assets/images/new/payment/visa.png"),
),
mWidth(12),
Text(
@@ -132,7 +132,7 @@ class _PaymentMethodState extends State {
height: 60.0,
padding: EdgeInsets.all(7.0),
width: 60,
- child: Image.asset("assets/images/new-design/mastercard.png"),
+ child: Image.asset("assets/images/new/payment/Mastercard.png"),
),
mWidth(12),
Text(
@@ -168,7 +168,7 @@ class _PaymentMethodState extends State {
height: 60.0,
padding: EdgeInsets.all(7.0),
width: 60,
- child: Image.asset("assets/images/new-design/installment.png"),
+ child: Image.asset("assets/images/new/payment/installments.png"),
),
mWidth(12),
Text(
@@ -205,7 +205,7 @@ class _PaymentMethodState extends State {
height: 60.0,
padding: EdgeInsets.all(7.0),
width: 60,
- child: SvgPicture.asset("assets/images/new-design/applepay.svg"),
+ child: Image.asset("assets/images/new/payment/Apple_Pay.png"),
),
mWidth(12),
Text(
diff --git a/lib/pages/ToDoList/widgets/paymentDialog.dart b/lib/pages/ToDoList/widgets/paymentDialog.dart
index 7c461815..7c1bf6ed 100644
--- a/lib/pages/ToDoList/widgets/paymentDialog.dart
+++ b/lib/pages/ToDoList/widgets/paymentDialog.dart
@@ -1,8 +1,12 @@
import 'package:diplomaticquarterapp/models/Appointments/AppoimentAllHistoryResultList.dart';
import 'package:diplomaticquarterapp/models/Appointments/PatientShareResposne.dart';
+import 'package:diplomaticquarterapp/theme/colors.dart';
import 'package:diplomaticquarterapp/uitl/date_uitl.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:flutter/material.dart';
+import 'package:flutter_datetime_picker/flutter_datetime_picker.dart';
class PaymentDialog extends StatefulWidget {
AppoitmentAllHistoryResultList appo;
@@ -21,159 +25,91 @@ class _PaymentDialogState extends State {
Widget build(BuildContext context) {
return Container(
child: Dialog(
- shape:
- RoundedRectangleBorder(borderRadius: BorderRadius.circular(12.0)),
+ shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(12.0)),
child: Container(
height: 550.0,
width: 450.0,
- child: Column(
- crossAxisAlignment: CrossAxisAlignment.start,
- mainAxisSize: MainAxisSize.max,
- children: [
- Container(
- margin: EdgeInsets.fromLTRB(20.0, 20.0, 20.0, 5.0),
- child: Text("Invoice Detail",
- style: TextStyle(
- fontSize: 25.0,
- fontWeight: FontWeight.bold,
- fontFamily: "Open-Sans-Bold")),
- ),
- Divider(
- color: Colors.grey,
- ),
- Container(
- margin: EdgeInsets.fromLTRB(20.0, 5.0, 20.0, 5.0),
- child: Text("Appointment Details",
- style: TextStyle(
- fontSize: 15.0,
- fontWeight: FontWeight.bold,
- fontFamily: "Open-Sans-Bold")),
- ),
- Container(
- margin: EdgeInsets.fromLTRB(20.0, 5.0, 20.0, 5.0),
- child: Text(
- widget.appo.doctorTitle + " " + widget.appo.doctorNameObj,
- style: TextStyle(
- color: Colors.grey[700],
- fontSize: 15.0,
- fontWeight: FontWeight.bold,
- fontFamily: "Open-Sans-Bold")),
- ),
- Container(
- margin: EdgeInsets.fromLTRB(20.0, 5.0, 20.0, 5.0),
- child: Text(getDate(widget.appo.appointmentDate),
- style: getTextStyle()),
- ),
- Container(
- margin: EdgeInsets.fromLTRB(20.0, 5.0, 20.0, 5.0),
- child: Text(widget.appo.projectName, style: getTextStyle()),
- ),
- Divider(
- color: Colors.grey,
- ),
- Container(
- margin: EdgeInsets.fromLTRB(20.0, 0.0, 20.0, 5.0),
- child: Table(
- children: [
- TableRow(children: [
- TableCell(
- child: _getNormalText(
- TranslationBase.of(context).patientShareToDo)),
- TableCell(
- child: _getNormalText(widget
- .patientShareResponse.patientShare
- .toString())),
- ]),
- TableRow(children: [
- TableCell(
- child: _getNormalText(
- TranslationBase.of(context).patientTaxToDo)),
- TableCell(
- child: _getNormalText(widget
- .patientShareResponse.patientTaxAmount
- .toString())),
- ]),
- TableRow(children: [
- TableCell(
- child: _getNormalText(TranslationBase.of(context)
- .patientShareTotalToDo)),
- TableCell(
- child: _getNormalText(widget
- .patientShareResponse.patientShareWithTax
- .toString())),
- ]),
- ],
+ child: Column(crossAxisAlignment: CrossAxisAlignment.start, mainAxisSize: MainAxisSize.max, children: [
+ Container(
+ margin: EdgeInsets.fromLTRB(20.0, 20.0, 20.0, 5.0),
+ child: Text(TranslationBase.of(context).invoiceDetails, style: TextStyle(fontSize: 25.0, fontWeight: FontWeight.w600)),
+ ),
+ Container(
+ margin: EdgeInsets.fromLTRB(20.0, 5.0, 20.0, 0.0),
+ child: Text(widget.appo.doctorTitle + " " + widget.appo.doctorNameObj, style: TextStyle(color: Colors.black, fontSize: 15.0, fontWeight: FontWeight.w600)),
+ ),
+ Container(
+ margin: EdgeInsets.fromLTRB(20.0, 5.0, 20.0, 0.0),
+ child: Text(getDate(widget.appo.appointmentDate), style: getTextStyle()),
+ ),
+ Container(
+ margin: EdgeInsets.fromLTRB(20.0, 5.0, 20.0, 0.0),
+ child: Text(widget.appo.projectName, style: getTextStyle()),
+ ),
+ Divider(
+ color: Colors.grey,
+ ),
+ Container(
+ margin: EdgeInsets.fromLTRB(20.0, 0.0, 20.0, 5.0),
+ child: Table(
+ children: [
+ TableRow(decoration: BoxDecoration(), children: [
+ TableCell(child: _getNormalText(TranslationBase.of(context).patientShareToDo)),
+ TableCell(child: _getNormalText(widget.patientShareResponse.patientShare.toString())),
+ ]),
+ TableRow(children: [
+ TableCell(child: _getNormalText(TranslationBase.of(context).patientTaxToDo)),
+ TableCell(child: _getNormalText(widget.patientShareResponse.patientTaxAmount.toString())),
+ ]),
+ TableRow(children: [
+ TableCell(child: _getNormalText(TranslationBase.of(context).patientShareTotalToDo)),
+ TableCell(child: _getNormalText(widget.patientShareResponse.patientShareWithTax.toString())),
+ ]),
+ ],
+ ),
+ ),
+ Divider(
+ color: Colors.grey,
+ ),
+ Container(
+ margin: EdgeInsets.fromLTRB(20.0, 20.0, 20.0, 5.0),
+ child: Text(TranslationBase.of(context).YouCanPayByTheFollowingOptions, style: TextStyle(fontSize: 14.0, fontWeight: FontWeight.w600)),
+ ),
+ Container(margin: EdgeInsets.fromLTRB(20.0, 5.0, 20.0, 5.0), child: getPaymentMethods()),
+ Container(
+ margin: EdgeInsets.fromLTRB(20.0, 30.0, 20.0, 15.0),
+ child: Text(TranslationBase.of(context).appoPaymentConfirm, style: TextStyle(fontSize: 14.0, color: CustomColors.accentColor, fontWeight: FontWeight.w600)),
+ ),
+ Container(
+ alignment: Alignment.center,
+ height: 40.0,
+ margin: EdgeInsets.only(left: 20.0, right: 20.0, top: 20.0),
+ child: Flex(
+ direction: Axis.horizontal,
+ children: [
+ Expanded(
+ child: DefaultButton(
+ TranslationBase.of(context).cancel,
+ () {
+ Navigator.pop(context, null);
+ },
+ color: Color(0xffEAEAEA),
+ textColor: Colors.black,
+ ),
),
- ),
- Container(
- alignment: Alignment.center,
- margin: EdgeInsets.fromLTRB(20.0, 20.0, 20.0, 5.0),
- child: Text("You can pay by following options: ",
- textAlign: TextAlign.center,
- style: TextStyle(
- fontSize: 16.0,
- fontWeight: FontWeight.bold,
- fontFamily: "Open-Sans")),
- ),
- Container(
- alignment: Alignment.center,
- margin: EdgeInsets.fromLTRB(20.0, 10.0, 20.0, 5.0),
- child: Image.asset(
- "assets/images/new-design/payment_options_invoice_confirmation.png",
- width: 300),
- ),
- Container(
- alignment: Alignment.center,
- margin: EdgeInsets.fromLTRB(20.0, 10.0, 20.0, 15.0),
- child: Text(
- "Are You Sure You Want To Make payment for this Appointment?",
- textAlign: TextAlign.center,
- style: TextStyle(
- fontSize: 14.0,
- color: Colors.red[700],
- fontFamily: "Open-Sans")),
- ),
- Divider(
- color: Colors.grey,
- ),
- Container(
- alignment: Alignment.center,
- height: 40.0,
- child: Flex(
- direction: Axis.horizontal,
- children: [
- Expanded(
- child: InkWell(
- onTap: () {
- Navigator.pop(context, null);
- },
- child: Container(
- child: Text("Cancel",
- textAlign: TextAlign.center,
- style: TextStyle(
- fontSize: 18.0, color: Colors.red[700])),
- ),
- ),
- ),
- Expanded(
- child: InkWell(
- onTap: () {
- Navigator.pop(context, widget.patientShareResponse);
-// widget.onPaymentMethodSelected();
- },
- child: Container(
- child: Text("Ok",
- textAlign: TextAlign.center,
- style: TextStyle(
- fontSize: 18.0,
- )),
- ),
- ),
- ),
- ],
+ mWidth(10.0),
+ Expanded(
+ child: DefaultButton(
+ TranslationBase.of(context).confirm,
+ () {
+ Navigator.pop(context, widget.patientShareResponse);
+ },
+ ),
),
- ),
- ]),
+ ],
+ ),
+ ),
+ ]),
),
),
);
@@ -182,35 +118,17 @@ class _PaymentDialogState extends State {
_getNormalText(text) {
return Container(
margin: EdgeInsets.only(top: 10.0, right: 10.0),
- child: Text(text,
- textAlign: TextAlign.end,
- style: TextStyle(
- fontSize: 15,
- fontFamily: 'Open-Sans',
- letterSpacing: 0.5,
- color: Colors.grey[700])),
+ child: Text(text, style: TextStyle(fontSize: 13, letterSpacing: 0.5, color: Colors.black)),
);
}
TextStyle getTextStyle() {
- return TextStyle(
- color: Colors.grey[700], fontSize: 15.0, fontFamily: "Open-Sans-Bold");
+ return TextStyle(color: Colors.grey[700], fontSize: 13.0, fontWeight: FontWeight.w600);
}
-// Future navigateToPaymentMethod(context) async {
-// Navigator.push(
-// context, MaterialPageRoute(builder: (context) => PaymentMethod()));
-// }
-
String getDate(String date) {
DateTime dateObj = DateUtil.convertStringToDate(date);
- return DateUtil.getWeekDay(dateObj.weekday) +
- ", " +
- dateObj.day.toString() +
- " " +
- DateUtil.getMonth(dateObj.month) +
- " " +
- dateObj.year.toString() +
+ return DateUtil.getDayMonthYearDateFormatted(dateObj) +
" " +
dateObj.hour.toString() +
":" +
diff --git a/lib/pages/feedback/send_feedback_page.dart b/lib/pages/feedback/send_feedback_page.dart
index a95fb425..dc1b47f7 100644
--- a/lib/pages/feedback/send_feedback_page.dart
+++ b/lib/pages/feedback/send_feedback_page.dart
@@ -17,6 +17,7 @@ import 'package:diplomaticquarterapp/widgets/bottom_options/BottomSheet.dart';
import 'package:diplomaticquarterapp/widgets/buttons/defaultButton.dart';
import 'package:diplomaticquarterapp/widgets/data_display/medical/doctor_card.dart';
import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
+import 'package:diplomaticquarterapp/widgets/dialogs/radio_selection_dialog.dart';
import 'package:diplomaticquarterapp/widgets/others/StarRating.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:diplomaticquarterapp/widgets/others/floating_button_search.dart';
@@ -50,6 +51,7 @@ class _SendFeedbackPageState extends State {
var _currentLocaleId;
stt.SpeechToText speech = stt.SpeechToText();
var reconizedWord;
+ int selectedStatusIndex = 5;
var event = RobotProvider();
List appoList = [];
@@ -165,16 +167,16 @@ class _SendFeedbackPageState extends State {
});
},
child: DoctorCard(
- onTap: null,
- isInOutPatient: appointHistory.isInOutPatient,
- name: appointHistory.doctorTitle + " " + appointHistory.doctorNameObj,
- // billNo: _appointmentResult.invoiceNo,
- profileUrl: appointHistory.doctorImageURL,
- subName: appointHistory.projectName,
- isLiveCareAppointment: appointHistory.isLiveCareAppointment,
- date: DateUtil.convertStringToDate(appointHistory.appointmentDate),
- rating: appointHistory.actualDoctorRate + 0.0,
- appointmentTime: appointHistory.startTime.substring(0, 5),
+ onTap: null,
+ isInOutPatient: appointHistory.isInOutPatient,
+ name: appointHistory.doctorTitle + " " + appointHistory.doctorNameObj,
+ // billNo: _appointmentResult.invoiceNo,
+ profileUrl: appointHistory.doctorImageURL,
+ subName: appointHistory.projectName,
+ isLiveCareAppointment: appointHistory.isLiveCareAppointment,
+ date: DateUtil.convertStringToDate(appointHistory.appointmentDate),
+ rating: appointHistory.actualDoctorRate + 0.0,
+ appointmentTime: appointHistory.startTime.substring(0, 5),
),
),
SizedBox(height: 12),
@@ -182,8 +184,9 @@ class _SendFeedbackPageState extends State {
Container(
margin: EdgeInsets.only(bottom: 10.0),
height: appoList.length > 2 ? MediaQuery.of(context).size.height * 0.35 : MediaQuery.of(context).size.height * 0.17,
- child: ListView.builder(
+ child: ListView.separated(
itemCount: appoList.length,
+ separatorBuilder: (ctx, index) => SizedBox(height: 12),
itemBuilder: (context, index) => InkWell(
onTap: () {
setState(() {
@@ -309,6 +312,7 @@ class _SendFeedbackPageState extends State {
messageController.text = "";
images = [];
});
+ selectedStatusIndex = 5;
setMessageType(MessageType.NON);
GifLoaderDialogUtils.hideDialog(context);
AppToast.showSuccessToast(message: TranslationBase.of(context).yourFeedback);
@@ -429,42 +433,107 @@ class _SendFeedbackPageState extends State {
// Show Dialog function
void confirmBox(FeedbackViewModel model) {
DoctorsListService service = new DoctorsListService();
+
+ List list = [
+ RadioSelectionDialogModel(TranslationBase.of(context).notClassified, 5),
+ RadioSelectionDialogModel(TranslationBase.of(context).complainAppo, 1),
+ RadioSelectionDialogModel(TranslationBase.of(context).complainWithoutAppo, 2),
+ RadioSelectionDialogModel(TranslationBase.of(context).question, 3),
+ RadioSelectionDialogModel(TranslationBase.of(context).compliment, 4),
+ RadioSelectionDialogModel(TranslationBase.of(context).suggestion, 6),
+ ];
+
showDialog(
- context: context,
- child: FeedbackTypeDialog(
- messageTypeDialog: messageType,
- onValueSelected: (MessageType value) {
- if (value == MessageType.ComplaintOnAnAppointment) {
- appoList.clear();
- GifLoaderDialogUtils.showMyDialog(context);
- service.getPatientAppointmentHistory(false, context, isForCOC: true).then((res) {
- GifLoaderDialogUtils.hideDialog(context);
- setState(() {
- if (res['MessageStatus'] == 1) {
- if (res['AppoimentAllHistoryResultList'].length != 0) {
- res['AppoimentAllHistoryResultList'].forEach((v) {
- appoList.add(new AppoitmentAllHistoryResultList.fromJson(v));
- });
- setState(() {
- appointHistory = null;
- isShowListAppointHistory = true;
- });
- } else {}
- } else {
- }
- });
- }).catchError((err) {
- GifLoaderDialogUtils.hideDialog(context);
- // print(err);
- // AppToast.showErrorToast(message: err);
- // Navigator.of(context).pop();
+ context: context,
+ child: RadioSelectionDialog(
+ listData: list,
+ selectedIndex: selectedStatusIndex,
+ onValueSelected: (index) {
+ selectedStatusIndex = index;
+
+ if (index == 1) {
+ messageType = MessageType.ComplaintOnAnAppointment;
+ } else if (index == 2) {
+ messageType = MessageType.ComplaintWithoutAppointment;
+ } else if (index == 3) {
+ messageType = MessageType.Question;
+ } else if (index == 4) {
+ messageType = MessageType.Compliment;
+ } else if (index == 5) {
+ messageType = MessageType.NON;
+ } else {
+ messageType = MessageType.Suggestion;
+ }
+
+ if (messageType == MessageType.ComplaintOnAnAppointment) {
+ appoList.clear();
+ GifLoaderDialogUtils.showMyDialog(context);
+ service.getPatientAppointmentHistory(false, context, isForCOC: true).then((res) {
+ GifLoaderDialogUtils.hideDialog(context);
+ setState(() {
+ if (res['MessageStatus'] == 1) {
+ if (res['AppoimentAllHistoryResultList'].length != 0) {
+ res['AppoimentAllHistoryResultList'].forEach((v) {
+ appoList.add(new AppoitmentAllHistoryResultList.fromJson(v));
+ });
+ setState(() {
+ appointHistory = null;
+ isShowListAppointHistory = true;
+ });
+ } else {}
+ } else {}
});
- } else {
- isShowListAppointHistory = false;
- }
- setMessageType(value);
- },
- ));
+ }).catchError((err) {
+ GifLoaderDialogUtils.hideDialog(context);
+ // print(err);
+ // AppToast.showErrorToast(message: err);
+ // Navigator.of(context).pop();
+ });
+ } else {
+ isShowListAppointHistory = false;
+ }
+ setMessageType(messageType);
+ },
+ ),
+ );
+
+ return;
+ // todo 'sikander' remove useless code
+ // showDialog(
+ // context: context,
+ // child: FeedbackTypeDialog(
+ // messageTypeDialog: messageType,
+ // onValueSelected: (MessageType value) {
+ // if (value == MessageType.ComplaintOnAnAppointment) {
+ // appoList.clear();
+ // GifLoaderDialogUtils.showMyDialog(context);
+ // service.getPatientAppointmentHistory(false, context, isForCOC: true).then((res) {
+ // GifLoaderDialogUtils.hideDialog(context);
+ // setState(() {
+ // if (res['MessageStatus'] == 1) {
+ // if (res['AppoimentAllHistoryResultList'].length != 0) {
+ // res['AppoimentAllHistoryResultList'].forEach((v) {
+ // appoList.add(new AppoitmentAllHistoryResultList.fromJson(v));
+ // });
+ // setState(() {
+ // appointHistory = null;
+ // isShowListAppointHistory = true;
+ // });
+ // } else {}
+ // } else {}
+ // });
+ // }).catchError((err) {
+ // GifLoaderDialogUtils.hideDialog(context);
+ // // print(err);
+ // // AppToast.showErrorToast(message: err);
+ // // Navigator.of(context).pop();
+ // });
+ // } else {
+ // isShowListAppointHistory = false;
+ // }
+ // setMessageType(value);
+ // },
+ // ));
}
openSpeechReco() async {
@@ -518,238 +587,238 @@ class _SendFeedbackPageState extends State {
if (!mounted) return;
}
}
-
-class FeedbackTypeDialog extends StatefulWidget {
- final Function(MessageType) onValueSelected;
- final MessageType messageTypeDialog;
-
- const FeedbackTypeDialog({Key key, this.onValueSelected, this.messageTypeDialog = MessageType.NON}) : super(key: key);
-
- @override
- State createState() => new FeedbackTypeDialogState();
-}
-
-class FeedbackTypeDialogState extends State {
- MessageType messageTypeDialog = MessageType.NON;
-
- setMessageDialogType(MessageType messageType) {
- setState(() {
- messageTypeDialog = messageType;
- });
- }
-
- @override
- void initState() {
- messageTypeDialog = widget.messageTypeDialog;
-
- super.initState();
- }
-
- Widget build(BuildContext context) {
- return BaseView(
- builder: (_, model, widge) => SimpleDialog(
- title: Text(
- TranslationBase.of(context).messageType,
- textAlign: TextAlign.center,
- ),
- children: