Merge branch 'fix_design' into 'development'

Fix design

See merge request Cloud_Solution/diplomatic-quarter!250
merge-update-with-lab-changes
Mohammad Aljammal 5 years ago
commit bd5e1ecd50

@ -379,6 +379,8 @@ const GET_PATIENT_ALL_PRES_ORD =
const PATIENT_ER_INSERT_PRES_ORDER =
'Services/Patients.svc/REST/PatientER_InsertPresOrder';
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';
//Pharmacy wishlist
const GET_WISHLIST = "shopping_cart_items/";

@ -503,6 +503,7 @@ const Map localizedValues = {
"SelectPatientName": {"en": "Select Patient Name", "ar": "اختر اسم المريض"},
"SelectFamilyPatientName": {"en": "Family Members", "ar": "أفراد الأسرة"},
"SelectHospital": {"en": "Select Hospital", "ar": "اختر المستشفى"},
"selectCity": {"en": "Select City", "ar": "اختر المدينة"},
"MyAccount": {"en": "My Account", "ar": "حسابي"},
"OtherAccount": {"en": "Other Account", "ar": "حساب آخر"},
"SelectBeneficiary": {"en": "Select Beneficiary", "ar": "حدد المستفيد"},
@ -1564,4 +1565,7 @@ const Map localizedValues = {
"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": "لعرض الشروط والأحكام"},
// "visit": {"en" : "Visit", "ar": "الزيارة"},
};

@ -2,6 +2,7 @@ import 'dart:convert';
import 'package:diplomaticquarterapp/config/config.dart';
import 'package:diplomaticquarterapp/config/shared_pref_kay.dart';
import 'package:diplomaticquarterapp/core/model/blooddonation/blood_groub_details.dart';
import 'package:diplomaticquarterapp/core/model/my_balance/AdvanceModel.dart';
import 'package:diplomaticquarterapp/core/model/my_balance/patient_advance_balance_amount.dart';
import 'package:diplomaticquarterapp/core/model/my_balance/patient_info.dart';
@ -23,11 +24,11 @@ class MyBalanceService extends BaseService {
PatientInfoAndMobileNumber patientInfoAndMobileNumber;
String logInTokenID;
String verificationCode;
String updatedRegisterBloodMessage = "";
AuthenticatedUserObject authenticatedUserObject =
locator<AuthenticatedUserObject>();
MyBalanceService(){
MyBalanceService() {
getFamilyFiles();
}
@ -156,4 +157,49 @@ class MyBalanceService extends BaseService {
return await getSharedRecordByStatus();
}
}
Future updateBloodGroup(List_BloodGroupDetailsModel detailsModel) async {
hasError = false;
await getUser();
var languageID =
await sharedPref.getStringWithDefaultValue(APP_LANGUAGE, 'ar');
Map<String, dynamic> body = Map();
body['City'] = detailsModel.city;
body['cityCode'] = detailsModel.cityCode;
body['Gender'] = detailsModel.gender;
body['BloodGroup'] = detailsModel.bloodGroup;
body['CellNumber'] = user.mobileNumber;
body['LanguageID'] = languageID;
body['NationalID'] = user.nationalityID;
body['ZipCode'] = user.zipCode ?? "+966";
body['isDentalAllowedBackend'] = false;
await baseAppClient.post(BLOOD_DONATION_REGISTER_BLOOD_TYPE,
onSuccess: (dynamic response, int statusCode) {
updatedRegisterBloodMessage = response['ErrorEndUserMessage'];
}, onFailure: (String error, int statusCode) {
hasError = true;
super.error = error;
if(error == null){
super.error = "Something went wrong";
}
}, body: body);
}
Future addUserAgreementForBloodDonation() async {
hasError = false;
var languageID =
await sharedPref.getStringWithDefaultValue(APP_LANGUAGE, 'ar');
Map<String, dynamic> body = Map();
body['IsAgreed'] = true;
body['LanguageID'] = languageID;
body['isDentalAllowedBackend'] = false;
await baseAppClient.post(ADD_USER_AGREEMENT_FOR_BLOOD_DONATION,
onSuccess: (dynamic response, int statusCode) {
}, onFailure: (String error, int statusCode) {
hasError = true;
super.error = error;
}, body: body);
}
}

@ -0,0 +1,18 @@
import 'package:diplomaticquarterapp/config/config.dart';
import 'package:diplomaticquarterapp/core/service/base_service.dart';
class TermsConditionsService extends BaseService {
String userAgreementContent = "";
Future getUserTermsAndConditions() async {
hasError = false;
await baseAppClient.post(GET_USER_TERMS,
onSuccess: (dynamic response, int statusCode) {
userAgreementContent = response['UserAgreementContent'];
}, onFailure: (String error, int statusCode) {
hasError = true;
super.error = error;
}, body: Map<String, dynamic>());
}
}

@ -0,0 +1,29 @@
import 'package:diplomaticquarterapp/core/enum/viewstate.dart';
import 'package:diplomaticquarterapp/core/service/termsConditionsService.dart';
import 'package:diplomaticquarterapp/core/viewModels/base_view_model.dart';
import '../../locator.dart';
class TermsConditionsViewModel extends BaseViewModel{
TermsConditionsService _service = locator<TermsConditionsService>();
String get userAgreementContent => _service.userAgreementContent;
getUserTermsAndConditions() async {
setState(ViewState.Busy);
await _service.getUserTermsAndConditions();
if (_service.hasError) {
error = _service.error;
setState(ViewState.Error);
} else {
setState(ViewState.Idle);
}
}
@override
void dispose() {
super.dispose();
}
}

@ -41,6 +41,9 @@ class MyBalanceViewModel extends BaseViewModel {
double get totalAdvanceBalanceAmount =>
_myBalanceService.totalAdvanceBalanceAmount;
String get updatedRegisterBloodMessage =>
_myBalanceService.updatedRegisterBloodMessage;
GetAllSharedRecordsByStatusResponse get getAllSharedRecordsByStatusResponse =>
_myBalanceService.getAllSharedRecordsByStatusResponse;
@ -74,7 +77,6 @@ class MyBalanceViewModel extends BaseViewModel {
setState(ViewState.Idle);
}
Future getCities() async {
setState(ViewState.Busy);
await _bloodDonationService.getAllCitiesOrders();
@ -159,4 +161,17 @@ class MyBalanceViewModel extends BaseViewModel {
setState(ViewState.Idle);
}
}
Future updateBloodGroup(List_BloodGroupDetailsModel detailsModel) async {
setState(ViewState.Busy);
await _myBalanceService.updateBloodGroup(detailsModel);
if (_myBalanceService.hasError) {
error = _myBalanceService.error;
setState(ViewState.ErrorLocal);
} else {
await _myBalanceService.addUserAgreementForBloodDonation();
setState(ViewState.Idle);
}
}
}

@ -60,12 +60,14 @@ import 'core/service/parmacyModule/order-preview-service.dart';
import 'core/service/notifications_service.dart';
import 'core/service/parmacyModule/terms-condition-service.dart';
import 'core/service/privilege_service.dart';
import 'core/service/termsConditionsService.dart';
import 'core/service/weather_service.dart';
import 'core/viewModels/AlHabibMedicalService/cmc_view_model.dart';
import 'core/service/parmacyModule/parmacy_module_service.dart';
import 'core/service/offers_service.dart';
import 'core/service/pharmacy_categorise_service.dart';
import 'core/viewModels/TermsConditionsViewModel.dart';
import 'core/viewModels/all_habib_medical_services/e_referral_view_model.dart';
import 'core/viewModels/appointment_rate_view_model.dart';
import 'core/viewModels/blooddonation/blood_details_view_model.dart';
@ -207,6 +209,7 @@ void setupLocator() {
locator.registerLazySingleton(() => PrivilegeService());
locator.registerLazySingleton(() => WeatherService());
locator.registerLazySingleton(() => TermsConditionsService());
/// View Model
locator.registerFactory(() => HospitalViewModel());
@ -284,4 +287,5 @@ void setupLocator() {
// ---------------------
locator.registerLazySingleton(
() => GeofencingServices()); // Geofencing Services
locator.registerFactory(() => TermsConditionsViewModel());
}

@ -1,14 +1,15 @@
import 'package:diplomaticquarterapp/config/shared_pref_kay.dart';
import 'package:diplomaticquarterapp/core/enum/viewstate.dart';
import 'package:diplomaticquarterapp/core/model/blooddonation/blood_groub_details.dart';
import 'package:diplomaticquarterapp/core/model/blooddonation/get_all_cities.dart';
//import 'package:diplomaticquarterapp/core/model/hospitals/hospitals_model.dart';
import 'package:diplomaticquarterapp/core/model/my_balance/AdvanceModel.dart';
import 'package:diplomaticquarterapp/core/model/my_balance/patient_info.dart';
import 'package:diplomaticquarterapp/core/service/blood/blood_details_servies.dart';
import 'package:diplomaticquarterapp/core/viewModels/blooddonation/blood_details_view_model.dart';
import 'package:diplomaticquarterapp/core/viewModels/medical/my_balance_view_model.dart';
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/Blood/user_agreement_page.dart';
@ -27,6 +28,7 @@ import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:giffy_dialog/giffy_dialog.dart';
import 'package:provider/provider.dart';
import 'package:smart_progress_bar/smart_progress_bar.dart';
//import '../../../core/model/my_balance/AdvanceModel.dart';
@ -39,8 +41,8 @@ import 'dialogs/SelectPatientInfoDialog.dart';
import 'new_text_Field.dart';
enum BeneficiaryType { MyAccount, MyFamilyFiles, OtherAccount, NON }
enum Gender{Male,Female,NON}
enum Blood{Oplus,Ominus,Aplus,Aminus,Bplus,Bminus,ABplus,ABminus,NON}
enum Gender { Male, Female, NON }
enum Blood { Oplus, Ominus, Aplus, Aminus, Bplus, Bminus, ABplus, ABminus, NON }
class BloodDonationPage extends StatefulWidget {
@override
@ -51,8 +53,8 @@ class _BloodDonationPageState extends State<BloodDonationPage> {
TextEditingController _fileTextController = TextEditingController();
TextEditingController _notesTextController = TextEditingController();
BeneficiaryType beneficiaryType = BeneficiaryType.NON;
Gender gender = Gender.Male;//Gender.NON;
Blood blood = Blood.Aminus;//Blood.NON;
Gender gender = Gender.Male; //Gender.NON;
Blood blood = Blood.Aminus; //Blood.NON;
//HospitalsModel _selectedHospital;
CitiesModel _selectedHospital;
@ -62,22 +64,27 @@ class _BloodDonationPageState extends State<BloodDonationPage> {
AuthenticatedUser authenticatedUser;
GetAllSharedRecordsByStatusList selectedPatientFamily;
AdvanceModel advanceModel = AdvanceModel();
List_BloodGroupDetailsModel bloodDetails=List_BloodGroupDetailsModel();
List_BloodGroupDetailsModel bloodDetails = List_BloodGroupDetailsModel(bloodGroup: "A-");
AppSharedPreferences sharedPref = AppSharedPreferences();
AuthenticatedUser authUser;
var checkedValue = false;
var checkedValue = false;
@override
void initState() {
super.initState();
getAuthUser();
}
@override
Widget build(BuildContext context) {
ProjectViewModel projectProvider = Provider.of(context);
return BaseView<MyBalanceViewModel>(
onModelReady: (model) => model.getCities(),//model.getHospitals(),
onModelReady: (model) => model.getCities(), //model.getHospitals(),
builder: (_, model, w) => AppScaffold(
isShowAppBar: true,
appBarTitle: "Blood Donation",//TranslationBase.of(context).advancePayment,
baseViewModel: model,
appBarTitle: TranslationBase.of(context).bloodD,
body: SingleChildScrollView(
physics: ScrollPhysics(),
child: Container(
@ -86,15 +93,16 @@ class _BloodDonationPageState extends State<BloodDonationPage> {
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Texts(
// TranslationBase.of(context).advancePaymentLabel,
"Enter the required information, In order to register for Blood Donation Service",//+model.user.firstName,
TranslationBase.of(context).bloodDEnterDesc,
textAlign: TextAlign.center,
),
SizedBox(
height: 12,
),
InkWell(
onTap: () => confirmSelectHospitalDialog(model.CitiesModelList),//model.hospitals
onTap: () =>
confirmSelectHospitalDialog(model.CitiesModelList),
//model.hospitals
child: Container(
padding: EdgeInsets.all(12),
width: double.infinity,
@ -105,7 +113,7 @@ class _BloodDonationPageState extends State<BloodDonationPage> {
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Texts(getHospitalName()),
Texts(getHospitalName(projectProvider, context)),
Icon(Icons.arrow_drop_down)
],
),
@ -116,7 +124,8 @@ class _BloodDonationPageState extends State<BloodDonationPage> {
),
InkWell(
//======Gender========
onTap: () => confirmSelectGenderDialog(),//confirmSelectBeneficiaryDialog(model),
onTap: () => confirmSelectGenderDialog(),
//confirmSelectBeneficiaryDialog(model),
child: Container(
padding: EdgeInsets.all(12),
width: double.infinity,
@ -128,49 +137,19 @@ class _BloodDonationPageState extends State<BloodDonationPage> {
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
//Texts(getBeneficiaryType()),
Texts(getGender()),
Texts(getGender(context)),
Icon(Icons.arrow_drop_down)
],
),
),
),
// if (beneficiaryType == BeneficiaryType.MyFamilyFiles)
// SizedBox(
// height: 12,
// ),
// if (beneficiaryType == BeneficiaryType.MyFamilyFiles)
// InkWell(
// onTap: () {
// model.getFamilyFiles().then((value) {
// confirmSelectFamilyDialog(model
// .getAllSharedRecordsByStatusResponse
// .getAllSharedRecordsByStatusList);
// }).showProgressBar(
// text: "Loading",
// backgroundColor: Colors.blue.withOpacity(0.6));
// },
// 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(getFamilyMembersName()),
// Icon(Icons.arrow_drop_down)
// ],
// ),
// ),
// ),
SizedBox(
height: 12,
),
InkWell(
//======Gender========
onTap: () => confirmSelectBloodDialog(),//confirmSelectBeneficiaryDialog(model),
onTap: () => confirmSelectBloodDialog(),
//confirmSelectBeneficiaryDialog(model),
child: Container(
padding: EdgeInsets.all(12),
width: double.infinity,
@ -188,44 +167,14 @@ class _BloodDonationPageState extends State<BloodDonationPage> {
),
),
),
// if (beneficiaryType == BeneficiaryType.MyFamilyFiles)
// SizedBox(
// height: 12,
// ),
// if (beneficiaryType == BeneficiaryType.MyFamilyFiles)
// InkWell(
// onTap: () {
// model.getFamilyFiles().then((value) {
// confirmSelectFamilyDialog(model
// .getAllSharedRecordsByStatusResponse
// .getAllSharedRecordsByStatusList);
// }).showProgressBar(
// text: "Loading",
// backgroundColor: Colors.blue.withOpacity(0.6));
// },
// 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(getFamilyMembersName()),
// Icon(Icons.arrow_drop_down)
// ],
// ),
// ),
// ),
SizedBox(
height: 12,
),
Row(
children: [
Container(
child: Text(" To view the terms and conditions "),
child: Text(
TranslationBase.of(context).viewTermsConditions),
),
SizedBox(
width: MediaQuery.of(context).size.height * 0.10,
@ -233,10 +182,14 @@ class _BloodDonationPageState extends State<BloodDonationPage> {
InkWell(
onTap: () {
Navigator.of(context).push(MaterialPageRoute(
builder: (BuildContext context) => UserAgreementPage()));
builder: (BuildContext context) =>
UserAgreementPage()));
},
child: Container(
child: Texts(" Click here ",color: Colors.blue,),
child: Texts(
TranslationBase.of(context).clickHere,
color: Colors.blue,
),
),
)
],
@ -247,99 +200,34 @@ class _BloodDonationPageState extends State<BloodDonationPage> {
Row(
children: [
Checkbox(
onChanged: (bool value) {
onChanged: (bool value) {
setState(() {
checkedValue = value;
});
},
// tristate: checkedValue==true,//i == 1,
// tristate: checkedValue==true,//i == 1,
value: checkedValue,
activeColor: Colors.red,//Color(0xFF6200EE),
activeColor: Color(0xFFc5272d), //Color(0xFF6200EE),
),
SizedBox(
height: 10,
),
Row(
children: [],
),
SizedBox(height: 10,),
Row(children: [
],),
SizedBox(
width: 10,
),
Text(
'I agree to the terms and conditions ',
style: Theme.of(context).textTheme.subtitle1.copyWith(color: checkedValue? Colors.red : Colors.black),
TranslationBase.of(context)
.iAgreeToTheTermsAndConditions,
style: Theme.of(context).textTheme.subtitle1.copyWith(
color: checkedValue
? Color(0xFFc5272d)
: Colors.black),
),
],
),
// NewTextFields(
// hintText: TranslationBase.of(context).fileNumber,
// controller: _fileTextController,
// ),
// if (beneficiaryType == BeneficiaryType.OtherAccount)
// SizedBox(
// height: 12,
// ),
// if (beneficiaryType == BeneficiaryType.OtherAccount)
// InkWell(
// onTap: () {
// if (_fileTextController.text.isNotEmpty)
// model
// .getPatientInfoByPatientID(
// id: _fileTextController.text)
// .then((value) {
// confirmSelectPatientDialog(model.patientInfoList);
// }).showProgressBar(
// text: "Loading",
// backgroundColor:
// Colors.blue.withOpacity(0.6));
// else
// AppToast.showErrorToast(
// message: 'Please Enter The File Number');
// },
// 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(getPatientName()),
// Icon(Icons.arrow_drop_down)
// ],
// ),
// ),
// ),
// SizedBox(
// height: 12,
// ),
// NewTextFields(
// hintText: TranslationBase.of(context).amount,
// keyboardType: TextInputType.number,
// onChanged: (value) {
// setState(() {
// amount = value;
// });
// },
// ),
// SizedBox(
// height: 12,
// ),
// NewTextFields(
// hintText: TranslationBase.of(context).depositorEmail,
// initialValue: model.user.emailAddress,
// onChanged: (value) {
// email = value;
// },
// ),
// SizedBox(
// height: 12,
// ),
// NewTextFields(
// hintText: TranslationBase.of(context).notes,
// controller: _notesTextController,
// ),
SizedBox(
height: 10,
),
@ -355,29 +243,25 @@ class _BloodDonationPageState extends State<BloodDonationPage> {
onTap: () {
showDialog(
context: context,
builder: (_) =>
AssetGiffyDialog(
builder: (_) => AssetGiffyDialog(
title: Text(
"",
style: TextStyle(
fontSize: 22.0,
fontWeight:
FontWeight
.w600),
fontWeight: FontWeight.w600),
),
image: Image.asset(
'assets/images/BloodChrt_EN.png'),
buttonCancelText:
Text('cancel'),
buttonCancelColor:
Colors.grey,
buttonCancelText: Text(
TranslationBase.of(context).cancel),
buttonCancelColor: Colors.grey,
onlyCancelButton: true,
));
},
child: Container(
width: 250,
height: 200,
child:Image.asset(
child: Image.asset(
'assets/images/BloodChrt_EN.png')),
),
),
@ -395,25 +279,41 @@ class _BloodDonationPageState extends State<BloodDonationPage> {
bottomSheet: Container(
height: MediaQuery.of(context).size.height * 0.12,
width: double.infinity,
padding: EdgeInsets.all(12),
child: SecondaryButton(
textColor: Colors.white,
color: checkedValue== false ?Colors.white24:Color.fromRGBO(63, 72, 74, 1,),
label: "Save",
//
onTap: (){
bloodDetails.city=_selectedHospital.toString();
// bloodDetails.
color: checkedValue == false
? Color(0xFFa0a4a6)
: Color.fromRGBO(
63,
72,
74,
1,
),
label: TranslationBase.of(context).save,
onTap: () async {
if(_selectedHospital == null){
AppToast.showErrorToast(message: TranslationBase.of(context).selectCity);
return;
}
bloodDetails.city = projectProvider.isArabic
? _selectedHospital.descriptionN
: _selectedHospital.description;
bloodDetails.cityCode = _selectedHospital.iD.toString();
bloodDetails.gender = gender == Gender.Male ? 1 : 2;
await model.updateBloodGroup(bloodDetails);
if (model.state == ViewState.Idle) {
AppToast.showSuccessToast(
message: model.updatedRegisterBloodMessage);
} else {
AppToast.showErrorToast(message: model.error);
}
},
),
)),
);
}
//==============
void confirmSelectBeneficiaryDialog(MyBalanceViewModel model) {
showDialog(
@ -435,94 +335,85 @@ class _BloodDonationPageState extends State<BloodDonationPage> {
),
);
}
void confirmSelectBloodDialog(){
void confirmSelectBloodDialog() {
showDialog(
context: context,
child: SelectBloodDialog(bloodType: blood,
child: SelectBloodDialog(
bloodType: blood,
onValueSelected: (value) {
setState(() {
if (value == Blood.Oplus) {
bloodDetails.bloodGroup="O+";
bloodDetails.bloodGroup = "O+";
// _fileTextController.text = model.user.patientID.toString();
// advanceModel.depositorName =
// model.user.firstName + " " + model.user.lastName;
}else
if (value == Blood.Ominus) {
} else if (value == Blood.Ominus) {
// _fileTextController.text = model.user.patientID.toString();
bloodDetails.bloodGroup="O-";
bloodDetails.bloodGroup = "O-";
// advanceModel.depositorName =
// model.user.firstName + " " + model.user.lastName;
}else
if (value == Blood.ABplus) {
bloodDetails.bloodGroup="AB+";
} else if (value == Blood.ABplus) {
bloodDetails.bloodGroup = "AB+";
// _fileTextController.text = model.user.patientID.toString();
// advanceModel.depositorName =
// model.user.firstName + " " + model.user.lastName;
}else
if (value == Blood.ABminus) {
bloodDetails.bloodGroup="AB-";
} else if (value == Blood.ABminus) {
bloodDetails.bloodGroup = "AB-";
// _fileTextController.text = model.user.patientID.toString();
// advanceModel.depositorName =
// model.user.firstName + " " + model.user.lastName;
}else
if (value == Blood.Aplus) {
bloodDetails.bloodGroup="A+";
} else if (value == Blood.Aplus) {
bloodDetails.bloodGroup = "A+";
// _fileTextController.text = model.user.patientID.toString();
// advanceModel.depositorName =
// model.user.firstName + " " + model.user.lastName;
}else
if (value == Blood.Aminus) {
bloodDetails.bloodGroup="A-";
} else if (value == Blood.Aminus) {
bloodDetails.bloodGroup = "A-";
// _fileTextController.text = model.user.patientID.toString();
// advanceModel.depositorName =
// model.user.firstName + " " + model.user.lastName;
}else
if (value == Blood.Bplus) {
bloodDetails.bloodGroup="B+";
} else if (value == Blood.Bplus) {
bloodDetails.bloodGroup = "B+";
// _fileTextController.text = model.user.patientID.toString();
// advanceModel.depositorName =
// model.user.firstName + " " + model.user.lastName;
}else
if (value == Blood.Bminus) {
bloodDetails.bloodGroup="B-";
} else if (value == Blood.Bminus) {
bloodDetails.bloodGroup = "B-";
// _fileTextController.text = model.user.patientID.toString();
// advanceModel.depositorName =
// model.user.firstName + " " + model.user.lastName;
}
else
} else
_fileTextController.text = "";
// beneficiaryType = value;
blood=value;
}
);
blood = value;
});
},
),
);
}
void confirmSelectGenderDialog(){
void confirmSelectGenderDialog() {
showDialog(
context: context,
child: SelectGenderDialog(beneficiaryType: gender,
child: SelectGenderDialog(
beneficiaryType: gender,
onValueSelected: (value) {
setState(() {
if (value == Gender.Male) {
// _fileTextController.text = model.user.patientID.toString();
bloodDetails.patientType=1;
bloodDetails.patientType = 1;
// advanceModel.depositorName =
// model.user.firstName + " " + model.user.lastName;
} else
// _fileTextController.text = "";
{bloodDetails.gender=2;}
// _fileTextController.text = "";
{
bloodDetails.gender = 2;
}
// beneficiaryType = value;
gender=value;
// beneficiaryType = value;
gender = value;
});
},
),
@ -591,23 +482,25 @@ class _BloodDonationPageState extends State<BloodDonationPage> {
return TranslationBase.of(context).otherAccount;
break;
case BeneficiaryType.NON:
return "Select Gender";//TranslationBase.of(context).selectBeneficiary;
return TranslationBase.of(context).selectBeneficiary;
}
return "Select Gender";//TranslationBase.of(context).selectBeneficiary;
return TranslationBase.of(context).selectBeneficiary;
}
String getGender() {
String getGender(BuildContext context) {
switch (gender) {
case Gender.Male:
return "Male";
return TranslationBase.of(context).male;
case Gender.Female:
return "Female";
return TranslationBase.of(context).female;
break;
case Gender.NON:
return "Select Gender";//TranslationBase.of(context).selectBeneficiary;
return TranslationBase.of(context).selectGender;
}
return "Select Gender";//TranslationBase.of(context).selectBeneficiary;
return TranslationBase.of(context).selectGender;
}
String getBlood() {
switch (blood) {
case Blood.Oplus:
@ -639,18 +532,19 @@ class _BloodDonationPageState extends State<BloodDonationPage> {
break;
case Blood.NON:
return "Select Blood Type";//TranslationBase.of(context).selectBeneficiary;
return "Select Blood Type"; //TranslationBase.of(context).selectBeneficiary;
}
return "Select Blood Type";//TranslationBase.of(context).selectBeneficiary;
return "Select Blood Type"; //TranslationBase.of(context).selectBeneficiary;
}
String getHospitalName() {
String getHospitalName(ProjectViewModel projectProvider, BuildContext context) {
if (_selectedHospital != null)
return _selectedHospital.description;
return projectProvider.isArabic
? _selectedHospital.descriptionN
: _selectedHospital.description;
else
return
"Riyadh";
// return List_BloodGroupDetailsModel.fromJson(0).city.toString();//"Select City";//TranslationBase.of(context).selectHospital;
return TranslationBase.of(context).selectCity;
// return List_BloodGroupDetailsModel.fromJson(0).city.toString();//"Select City";//TranslationBase.of(context).selectHospital;
}
String getPatientName() {
@ -677,8 +571,6 @@ class _BloodDonationPageState extends State<BloodDonationPage> {
return TranslationBase.of(context).selectFamilyPatientName;
}
//================
//================
}

@ -38,7 +38,7 @@ class _SelectGenderDialogState extends State<SelectGenderDialog> {
});
},
child: ListTile(
title: Text("Male"),
title: Text(TranslationBase.of(context).male),
leading: Radio(
value: Gender.Male,
groupValue: beneficiaryType,
@ -68,7 +68,7 @@ class _SelectGenderDialogState extends State<SelectGenderDialog> {
});
},
child: ListTile(
title: Text("Female"),
title: Text(TranslationBase.of(context).female),
leading: Radio(
value: Gender.Female,
groupValue: beneficiaryType,

@ -1,55 +1,23 @@
import 'package:diplomaticquarterapp/core/viewModels/TermsConditionsViewModel.dart';
import 'package:diplomaticquarterapp/pages/base/base_view.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter_html/flutter_html.dart';
class UserAgreementPage extends StatelessWidget {
@override
Widget build(BuildContext context) {
return AppScaffold(
isShowAppBar: true,
appBarTitle: "User Agreement",
body:
Container(
child:ListView(
scrollDirection: Axis.vertical,
children: <Widget>[
///////////
Column(
children: [
SizedBox(
height: 20,
),
Container(
child:Text("Communication via email, text messages and phone calls",textAlign: TextAlign.center,style: TextStyle(fontWeight: FontWeight.bold,fontSize: 16)),
),
SizedBox(
height: 20,
),
Container(
child:
Text("I understand that the contact number or Email that \n I have provided on registration will be used for communication by HMG.\n I hereby agree to be notified by HMG through SMS, Email or any other method for appointments notifications, current HMGs medical services, and any services introduced by the HMG in the future or any modifications made to the services offered by the HMG. And these messages may be submitted as evidence where the HMG has the right to use at any time whatsoever and as it sees fit.",textAlign: TextAlign.center,style: TextStyle(fontWeight: FontWeight.bold,fontSize: 16)),
),
SizedBox(
height: 20,
),
Container(
child:
Text("I understand the risks of communicating by email and text messages, in particular the privacy risks. \nI understand that HMG cannot guarantee the security and confidentiality of email or text communication. HMG will not be responsible for messages that are not received or delivered due to technical failure, or for disclosure of confidential information unless caused by intentional misconduct.",textAlign: TextAlign.center,style: TextStyle(fontWeight: FontWeight.bold,fontSize: 16)),
),
SizedBox(
height: 20,
),
Container(
child:
Text("\b I hereby agree to receive emails, text messages, phone calls for appointments notifications, special promotions and new features or products introduced by HMG or any third party.",textAlign: TextAlign.center,style: TextStyle(fontWeight: FontWeight.bold,fontSize: 16)),
),
],
)
///////////
])
));
return BaseView<TermsConditionsViewModel>(
onModelReady: (model) => model.getUserTermsAndConditions(),
builder: (_, model, w) => AppScaffold(
isShowAppBar: true,
appBarTitle: TranslationBase.of(context).userAgreement,
body: SingleChildScrollView(
child: Html(
data: model.userAgreementContent,
),
)),
);
}
}

@ -1,9 +1,11 @@
//import 'package:diplomaticquarterapp/core/model/hospitals/hospitals_model.dart';
import 'package:diplomaticquarterapp/core/model/blooddonation/get_all_cities.dart';
import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
class SelectCiteisDialog extends StatefulWidget {
final List<CitiesModel> hospitals;
@ -12,6 +14,7 @@ class SelectCiteisDialog extends StatefulWidget {
SelectCiteisDialog(
{Key key, this.hospitals, this.onValueSelected, this.selectedHospital});
@override
_SelectCiteisDialogState createState() => _SelectCiteisDialogState();
}
@ -24,9 +27,10 @@ class _SelectCiteisDialogState extends State<SelectCiteisDialog> {
widget.selectedHospital = widget.selectedHospital ?? widget.hospitals[0];
}
@override
Widget build(BuildContext context) {
ProjectViewModel projectProvider = Provider.of(context);
return SimpleDialog(
children: [
Column(
@ -34,7 +38,7 @@ class _SelectCiteisDialogState extends State<SelectCiteisDialog> {
Divider(),
...List.generate(
widget.hospitals.length,
(index) => Column(
(index) => Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
SizedBox(
@ -53,7 +57,9 @@ class _SelectCiteisDialogState extends State<SelectCiteisDialog> {
child: ListTile(
// title: Text(widget.hospitals[index].description +
// ' ${widget.hospitals[index].distanceInKilometers} KM'),
title: Text(widget.hospitals[index].description),
title: Text(projectProvider.isArabic
? widget.hospitals[index].descriptionN
: widget.hospitals[index].description),
leading: Radio(
value: widget.hospitals[index],
groupValue: widget.selectedHospital,
@ -116,9 +122,9 @@ class _SelectCiteisDialogState extends State<SelectCiteisDialog> {
padding: const EdgeInsets.all(8.0),
child: Center(
child: Texts(
TranslationBase.of(context).ok,
fontWeight: FontWeight.w400,
)),
TranslationBase.of(context).ok,
fontWeight: FontWeight.w400,
)),
),
),
),

@ -617,6 +617,8 @@ class TranslationBase {
localizedValues['SelectFamilyPatientName'][locale.languageCode];
String get selectHospital =>
localizedValues['SelectHospital'][locale.languageCode];
String get selectCity =>
localizedValues['selectCity'][locale.languageCode];
String get myAccount => localizedValues['MyAccount'][locale.languageCode];
String get otherAccount =>
localizedValues['OtherAccount'][locale.languageCode];
@ -1278,6 +1280,8 @@ class TranslationBase {
String get sendChildEmailMsg => localizedValues["send-child-email-msg"][locale.languageCode];
String get vaccinationAddChildMsg => localizedValues["vaccination-add-child-msg"][locale.languageCode];
String get childAddedSuccessfully => localizedValues["child_added_successfully"][locale.languageCode];
String get bloodDEnterDesc => localizedValues["bloodD-enter-desc"][locale.languageCode];
String get viewTermsConditions => localizedValues["viewTermsConditions"][locale.languageCode];
}

Loading…
Cancel
Save