Dubai registration fixed

Dev_3.3_MedicalReportCR
Sultan khan 3 years ago
parent af90ab3aa3
commit c48f393f95

@ -19,9 +19,9 @@ var PACKAGES_SHOPPING_CART = '/api/shopping_cart_items';
var PACKAGES_ORDERS = '/api/orders';
var PACKAGES_ORDER_HISTORY = '/api/orders/items';
var PACKAGES_TAMARA_OPT = '/api/orders/paymentoptions/tamara';
// var BASE_URL = 'http://10.50.100.198:3334/';
// var BASE_URL = 'http://10.50.100.198:2018/';
var BASE_URL = 'https://uat.hmgwebservices.com/';
// var BASE_URL = 'https://hmgwebservices.com/';
//var BASE_URL = 'https://hmgwebservices.com/';
// var BASE_URL = 'https://orash.cloudsolutions.com.sa/';
// var BASE_URL = 'https://vidauat.cloudsolutions.com.sa/';
@ -591,6 +591,8 @@ var CANCEL_PHARMA_LIVECARE_REQUEST = 'https://vcallapi.hmg.com/api/PharmaLiveCar
var INSERT_FREE_SLOTS_LOGS = 'Services/Doctors.svc/Rest/InsertDoctorFreeSlotsLogs';
var GET_NATIONALITY ='Services/Lists.svc/REST/GetNationality';
class AppGlobal {
static var context;

@ -42,3 +42,4 @@ const APPOINTMENT_HISTORY_MEDICAL = 'APPOINTMENT_HISTORY_MEDICAL';
const CLINICS_LIST = 'CLINICS_LIST';
const COVID_QA_LIST = 'COVID_QA_LIST';
const IS_COVID_CONSENT_SHOWN = 'IS_COVID_CONSENT_SHOWN';
const REGISTER_INFO_DUBAI ='register-info-dubai';

@ -8,6 +8,7 @@ import 'package:diplomaticquarterapp/core/model/privilege/PrivilegeModel.dart';
import 'package:diplomaticquarterapp/core/viewModels/base_view_model.dart';
import 'package:diplomaticquarterapp/locator.dart';
import 'package:diplomaticquarterapp/models/Appointments/laser_body_parts.dart';
import 'package:diplomaticquarterapp/models/Authentication/register_info_response.dart';
import 'package:diplomaticquarterapp/uitl/PlatformBridge.dart';
import 'package:diplomaticquarterapp/uitl/app_shared_preferences.dart';
import 'package:flutter/cupertino.dart';
@ -38,9 +39,10 @@ class ProjectViewModel extends BaseViewModel {
double _latitude;
double _longitude;
RegisterInfoResponse _registerInfo =RegisterInfoResponse();
double get latitude => _latitude;
double get longitude => _longitude;
RegisterInfoResponse get registerInfo=> _registerInfo;
dynamic get searchValue => searchvalue;
Locale get appLocal => _appLocale;
@ -164,4 +166,8 @@ class ProjectViewModel extends BaseViewModel {
searchvalue = data;
notifyListeners();
}
setRegisterData(RegisterInfoResponse data){
_registerInfo =data;
notifyListeners();
}
}

@ -15,7 +15,9 @@ class CheckPatientAuthenticationReq {
Null sessionID;
bool isDentalAllowedBackend;
int deviceTypeID;
String dob;
int isHijri;
String healthId;
CheckPatientAuthenticationReq(
{this.patientMobileNumber,
this.zipCode,
@ -32,7 +34,11 @@ class CheckPatientAuthenticationReq {
this.patientOutSA,
this.sessionID,
this.isDentalAllowedBackend,
this.deviceTypeID});
this.deviceTypeID,
this.dob,
this.isHijri,
this.healthId
});
CheckPatientAuthenticationReq.fromJson(Map<String, dynamic> json) {
patientMobileNumber = json['PatientMobileNumber'];
@ -51,6 +57,9 @@ class CheckPatientAuthenticationReq {
sessionID = json['SessionID'];
isDentalAllowedBackend = json['isDentalAllowedBackend'];
deviceTypeID = json['DeviceTypeID'];
dob = json['dob'];
isHijri = json['isHijri'];
healthId = json['HealthId'];
}
Map<String, dynamic> toJson() {
@ -71,6 +80,9 @@ class CheckPatientAuthenticationReq {
data['SessionID'] = this.sessionID;
data['isDentalAllowedBackend'] = this.isDentalAllowedBackend;
data['DeviceTypeID'] = this.deviceTypeID;
data['dob'] =this.dob;
data['isHijri'] = this.isHijri;
data['HealthId'] = healthId;
return data;
}
}

@ -0,0 +1,21 @@
class CountriesLists {
String iD;
String name;
dynamic nameN;
CountriesLists({this.iD, this.name, this.nameN});
CountriesLists.fromJson(Map<String, dynamic> json) {
iD = json['ID'];
name = json['Name'];
nameN = json['NameN'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['ID'] = this.iD;
data['Name'] = this.name;
data['NameN'] = this.nameN;
return data;
}
}

@ -42,8 +42,8 @@ import 'package:provider/provider.dart';
class ConfirmLogin extends StatefulWidget {
final Function changePageViewIndex;
final fromRegistration;
const ConfirmLogin({Key key, this.changePageViewIndex, this.fromRegistration = false}) : super(key: key);
final bool isDubai;
const ConfirmLogin({Key key, this.changePageViewIndex, this.fromRegistration = false, this.isDubai =false}) : super(key: key);
@override
_ConfirmLogin createState() => _ConfirmLogin();
@ -385,8 +385,10 @@ class _ConfirmLogin extends State<ConfirmLogin> {
var request = this.getCommonRequest(type: type);
request.sMSSignature = await SMSOTP.getSignature();
GifLoaderDialogUtils.showMyDialog(context);
if (healthId != null) {
if (healthId != null || widget.isDubai) {
if(!widget.isDubai){
request.dob = dob; //isHijri == 1 ? dob : dateFormat2.format(dateFormat.parse(dob));
}
request.healthId = healthId;
request.isHijri = isHijri;
await this.authService.sendActivationCodeRegister(request).then((result) {
@ -547,7 +549,7 @@ class _ConfirmLogin extends State<ConfirmLogin> {
request.searchType = this.registerd_data.searchType != null ? this.registerd_data.searchType : 1;
request.patientID = this.registerd_data.patientID != null ? this.registerd_data.patientID : 0;
request.patientIdentificationID = request.nationalID = this.registerd_data.patientIdentificationID != null ? this.registerd_data.patientIdentificationID : '0';
request.dob = this.registerd_data.dob;
request.isRegister = this.registerd_data.isRegister;
} else {
request.searchType = request.searchType != null ? request.searchType : 2;
@ -565,8 +567,10 @@ class _ConfirmLogin extends State<ConfirmLogin> {
GifLoaderDialogUtils.showMyDialog(context);
var request = this.getCommonRequest().toJson();
dynamic res;
if (healthId != null) {
if (healthId != null || widget.isDubai) {
if(!widget.isDubai) {
request['DOB'] = dob;
}
request['HealthId'] = healthId;
request['IsHijri'] = isHijri;
@ -579,6 +583,7 @@ class _ConfirmLogin extends State<ConfirmLogin> {
result = CheckActivationCode.fromJson(result),
if (this.registerd_data != null && this.registerd_data.isRegister == true)
{
// if(widget.isDubai ==false){
widget.changePageViewIndex(1),
Navigator.popUntil(context, (route) => Utils.route(route, equalsTo: RegisterNew)),
}

@ -6,8 +6,10 @@ import 'package:diplomaticquarterapp/core/viewModels/appointment_rate_view_model
import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
import 'package:diplomaticquarterapp/locator.dart';
import 'package:diplomaticquarterapp/models/Appointments/toDoCountProviderModel.dart';
import 'package:diplomaticquarterapp/models/Authentication/check_activation_code_response.dart' as checkActivation;
import 'package:diplomaticquarterapp/models/Authentication/check_activation_code_response.dart'
as checkActivation;
import 'package:diplomaticquarterapp/models/Authentication/check_paitent_authentication_req.dart';
import 'package:diplomaticquarterapp/models/Authentication/countries_list.dart';
import 'package:diplomaticquarterapp/models/Authentication/register_info_response.dart';
import 'package:diplomaticquarterapp/pages/landing/landing_page.dart';
import 'package:diplomaticquarterapp/pages/rateAppointment/rate_appointment_doctor.dart';
@ -36,7 +38,8 @@ class RegisterInfo extends StatefulWidget {
final Function changePageViewIndex;
final int page;
const RegisterInfo({Key key, this.changePageViewIndex, this.page = 1}) : super(key: key);
const RegisterInfo({Key key, this.changePageViewIndex, this.page = 1})
: super(key: key);
@override
_RegisterInfo createState() => _RegisterInfo();
@ -45,7 +48,7 @@ class RegisterInfo extends StatefulWidget {
class _RegisterInfo extends State<RegisterInfo> {
final authService = new AuthProvider();
final sharedPref = new AppSharedPreferences();
RegisterInfoResponse registerInfo;
RegisterInfoResponse registerInfo =RegisterInfoResponse();
bool isLoading;
int page;
final List<Location> locationList = [
@ -53,30 +56,48 @@ class _RegisterInfo extends State<RegisterInfo> {
new Location(name: 'Dubai', value: '2'),
];
String language = '1';
var registerd_data;
CheckPatientAuthenticationReq registerd_data;
final List<Language> languageList = [
new Language(name: 'English', value: '2'),
new Language(name: 'Arabic', value: '1'),
];
final List<Language> genderList = [
new Language(name: 'Male', value: 'M'),
new Language(name: 'Female', value: 'F'),
];
final List<Language> maritalList = [
new Language(name: 'Married', value: 'M'),
new Language(name: 'Single', value: 'S'),
new Language(name: 'Divorce', value: 'D'),
];
String email = '';
List<CountriesLists> countriesList = [];
ToDoCountProviderModel toDoProvider;
String location = '1';
AuthenticatedUserObject authenticatedUserObject = locator<AuthenticatedUserObject>();
AuthenticatedUserObject authenticatedUserObject =
locator<AuthenticatedUserObject>();
ProjectViewModel projectViewModel;
AppointmentRateViewModel appointmentRateViewModel = locator<AppointmentRateViewModel>();
AppointmentRateViewModel appointmentRateViewModel =
locator<AppointmentRateViewModel>();
bool isDubai =false;
RegisterInfoResponse data = RegisterInfoResponse();
CheckPatientAuthenticationReq data2;
String gender = 'M';
String maritalStatus = 'M';
String nationality = 'SAU';
@override
void initState() {
if(widget.page ==1) {
getCountries();
}
WidgetsBinding.instance.addPostFrameCallback((timeStamp) {
getRegisterInfo();
});
setState(() {
page = widget.page;
});
super.initState();
}
@ -85,17 +106,23 @@ class _RegisterInfo extends State<RegisterInfo> {
projectViewModel = Provider.of(context);
toDoProvider = Provider.of<ToDoCountProviderModel>(context);
return AppScaffold(
appBarTitle: TranslationBase.of(context).register,
appBarTitle: TranslationBase
.of(context)
.register,
isShowAppBar: false,
isShowDecPage: false,
body: SingleChildScrollView(
padding: EdgeInsets.all(30),
child: Column(crossAxisAlignment: CrossAxisAlignment.start, children: <Widget>[
child:
Column(crossAxisAlignment: CrossAxisAlignment.start, children: <
Widget>[
Row(
children: [
Expanded(
child: AppText(
TranslationBase.of(context).personalInfo,
TranslationBase
.of(context)
.personalInfo,
fontSize: 16,
textAlign: TextAlign.left,
fontWeight: FontWeight.bold,
@ -105,45 +132,225 @@ class _RegisterInfo extends State<RegisterInfo> {
],
),
SizedBox(height: 20),
registerInfo != null && page == 1
(isDubai && page == 1)
? Column(
children: [
SizedBox(height: 20),
getnameField(
TranslationBase
.of(context)
.identificationNumber,
registerd_data.patientIdentificationID,
TranslationBase
.of(context)
.mobileNumber,
registerd_data.patientMobileNumber.toString()),
// SizedBox(height: 20),
getnameField(
'',
inputWidget( TranslationBase
.of(context)
.firstName, TranslationBase
.of(context)
.firstName,'fName'),
'',
inputWidget( TranslationBase
.of(context)
.middleName, TranslationBase
.of(context)
.middleName,'sName'),
),
getnameField(
'',
inputWidget( TranslationBase
.of(context)
.lastName, TranslationBase
.of(context)
.lastName, 'lName'),
TranslationBase
.of(context)
.gender,
Container(
height: 20,
child: DropdownButtonHideUnderline(
child: DropdownButton(
isExpanded: true,
value: gender,
hint: Text(TranslationBase
.of(context)
.gender),
iconSize: 40,
elevation: 16,
onChanged: (value) =>
{
setState(() {
gender = value;
registerInfo.gender = value;
})
},
items: genderList
.map<DropdownMenuItem<String>>(
(Language value) {
return DropdownMenuItem<String>(
value: value.value,
child: Text(value.name),
);
}).toList()))),
),
SizedBox(height: 20),
getnameField(
TranslationBase
.of(context)
.maritalStatus,
Container(
height: 18,
child: DropdownButtonHideUnderline(
child: DropdownButton(
isExpanded: true,
value: maritalStatus,
hint: Text(TranslationBase
.of(context)
.maritalStatus),
iconSize: 40,
elevation: 16,
onChanged: (value) =>
{
setState(() {
maritalStatus = value;
registerInfo.maritalStatusCode = value;
})
},
items: maritalList
.map<DropdownMenuItem<String>>(
(Language value) {
return DropdownMenuItem<String>(
value: value.value,
child: Text(value.name),
);
}).toList()))),
TranslationBase
.of(context)
.nationality,
Container(
height: 22,
child: DropdownButtonHideUnderline(
child: DropdownButton(
isExpanded: true,
value: nationality,
hint: Text(TranslationBase
.of(context)
.nationality),
iconSize: 40,
elevation: 16,
onChanged: (value) =>
{
setState(() {
nationality = value;
registerInfo.nationalityCode = value;
})
},
items: countriesList
.map<DropdownMenuItem<String>>(
(CountriesLists value) {
return DropdownMenuItem<String>(
value: value.iD,
child: Text(value.name),
);
}).toList())))),
SizedBox(height: 20),
getnameField(
TranslationBase
.of(context)
.dateOfBirth,
registerd_data.dob,
"", ""),
SizedBox(height: 20),
],
)
: (registerInfo.healthId != null && page == 1)
? Column(
children: [
SizedBox(height: 20),
getnameField(TranslationBase.of(context).identificationNumber, registerInfo.idNumber, TranslationBase.of(context).firstName,
registerInfo.firstNameEn == '-' ? registerInfo.firstNameAr : registerInfo.firstNameEn),
getnameField(
TranslationBase
.of(context)
.identificationNumber,
registerInfo.idNumber,
TranslationBase
.of(context)
.firstName,
registerInfo.firstNameEn == '-'
? registerInfo.firstNameAr
: registerInfo.firstNameEn),
SizedBox(height: 20),
getnameField(TranslationBase.of(context).middleName, registerInfo.secondNameEn == '-' ? registerInfo.secondNameEn : registerInfo.secondNameEn,
TranslationBase.of(context).lastName, registerInfo.lastNameEn == '-' ? registerInfo.lastNameEn : registerInfo.lastNameEn),
getnameField(
TranslationBase
.of(context)
.middleName,
registerInfo.secondNameEn == '-'
? registerInfo.secondNameEn
: registerInfo.secondNameEn,
TranslationBase
.of(context)
.lastName,
registerInfo.lastNameEn == '-'
? registerInfo.lastNameEn
: registerInfo.lastNameEn),
SizedBox(height: 20),
getnameField(
TranslationBase.of(context).gender,
TranslationBase
.of(context)
.gender,
registerInfo.maritalStatusCode == 'U'
? 'Unknown'
: registerInfo.maritalStatusCode == 'M'
? 'Male'
: 'Female',
TranslationBase.of(context).maritalStatus,
TranslationBase
.of(context)
.maritalStatus,
registerInfo.maritalStatus),
SizedBox(height: 20),
getnameField(TranslationBase.of(context).nationality, registerInfo.nationality, TranslationBase.of(context).mobileNumber, registerd_data.patientMobileNumber.toString()),
getnameField(
TranslationBase
.of(context)
.nationality,
registerInfo.nationality,
TranslationBase
.of(context)
.mobileNumber,
registerd_data.patientMobileNumber.toString()),
SizedBox(height: 20),
getnameField(TranslationBase.of(context).dateOfBirth, registerInfo.dateOfBirth, "", ""),
getnameField(TranslationBase
.of(context)
.dateOfBirth,
registerInfo.dateOfBirth, "", ""),
SizedBox(height: 20),
],
)
: registerInfo != null && widget.page == 2
: widget.page == 2
? Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Container(
width: double.infinity,
decoration: containerRadius(Colors.white, 12),
padding: EdgeInsets.only(left: 10, right: 10, top: 5, bottom: 25),
padding: EdgeInsets.only(
left: 10, right: 10, top: 5, bottom: 25),
child: Row(children: [
Flexible(
child: Column(crossAxisAlignment: CrossAxisAlignment.start, children: [
child: Column(
crossAxisAlignment:
CrossAxisAlignment.start,
children: [
Text(
TranslationBase.of(context).prefferedLanguage,
TranslationBase
.of(context)
.prefferedLanguage,
style: TextStyle(
fontSize: 11,
letterSpacing: -0.44,
@ -152,22 +359,33 @@ class _RegisterInfo extends State<RegisterInfo> {
),
Container(
height: 18,
child: DropdownButtonHideUnderline(
child:
DropdownButtonHideUnderline(
child: DropdownButton(
isExpanded: true,
value: language,
hint: Text(TranslationBase.of(context).prefferedLanguage),
hint: Text(TranslationBase
.of(context)
.prefferedLanguage),
iconSize: 40,
elevation: 16,
onChanged: (value) => {
onChanged: (value) =>
{
setState(() {
language = value;
language =
value;
})
},
items: languageList.map<DropdownMenuItem<String>>((Language value) {
return DropdownMenuItem<String>(
value: value.value,
child: Text(value.name),
items: languageList.map<
DropdownMenuItem<
String>>(
(Language value) {
return DropdownMenuItem<
String>(
value:
value.value,
child: Text(
value.name),
);
}).toList())))
]))
@ -178,12 +396,18 @@ class _RegisterInfo extends State<RegisterInfo> {
Container(
width: double.infinity,
decoration: containerRadius(Colors.white, 12),
padding: EdgeInsets.only(left: 10, right: 10, top: 5, bottom: 25),
padding: EdgeInsets.only(
left: 10, right: 10, top: 5, bottom: 25),
child: Row(children: [
Flexible(
child: Column(crossAxisAlignment: CrossAxisAlignment.start, children: [
child: Column(
crossAxisAlignment:
CrossAxisAlignment.start,
children: [
Text(
TranslationBase.of(context).selectLocation,
TranslationBase
.of(context)
.selectLocation,
style: TextStyle(
fontSize: 11,
letterSpacing: -0.44,
@ -192,21 +416,33 @@ class _RegisterInfo extends State<RegisterInfo> {
),
Container(
height: 18,
child: DropdownButtonHideUnderline(
child:
DropdownButtonHideUnderline(
child: DropdownButton(
isExpanded: true,
value: location,
hint: Text(TranslationBase.of(context).selectLocation),
hint: Text(
TranslationBase
.of(
context)
.selectLocation),
iconSize: 40,
elevation: 16,
onChanged: (value) => {
onChanged: (value) =>
{
setState(() {
location = value;
location =
value;
})
},
items: locationList.map<DropdownMenuItem<String>>((Location value) {
return DropdownMenuItem<String>(
value: value.value,
items: locationList.map<
DropdownMenuItem<
String>>(
(Location value) {
return DropdownMenuItem<
String>(
value:
value.value,
child: Text(
value.name,
),
@ -220,13 +456,19 @@ class _RegisterInfo extends State<RegisterInfo> {
Container(
width: double.infinity,
decoration: containerRadius(Colors.white, 12),
padding: EdgeInsets.only(left: 10, right: 10, top: 5, bottom: 12),
padding: EdgeInsets.only(
left: 10, right: 10, top: 5, bottom: 12),
margin: EdgeInsets.only(bottom: 0),
child: Row(children: [
Flexible(
child: Column(crossAxisAlignment: CrossAxisAlignment.start, children: [
child: Column(
crossAxisAlignment:
CrossAxisAlignment.start,
children: [
Text(
TranslationBase.of(context).email,
TranslationBase
.of(context)
.email,
style: TextStyle(
fontSize: 11,
letterSpacing: -0.44,
@ -256,7 +498,8 @@ class _RegisterInfo extends State<RegisterInfo> {
color: Color(0xff575757),
letterSpacing: -0.56,
),
prefixIconConstraints: BoxConstraints(minWidth: 50),
prefixIconConstraints:
BoxConstraints(minWidth: 50),
contentPadding: EdgeInsets.zero,
border: InputBorder.none,
focusedBorder: InputBorder.none,
@ -278,51 +521,101 @@ class _RegisterInfo extends State<RegisterInfo> {
Expanded(
child: Padding(
padding: EdgeInsets.all(10),
child: DefaultButton(TranslationBase.of(context).cancel, () {
child:
DefaultButton(TranslationBase
.of(context)
.cancel, () {
Navigator.of(context).pop();
locator<GAnalytics>().loginRegistration.registration_cancel(step: page == 1 ? 'personal info' : 'other details');
locator<GAnalytics>()
.loginRegistration
.registration_cancel(
step: page == 1
? 'personal info'
: 'other details');
}, textColor: Colors.white, color: Color(0xffD02127))),
),
Expanded(
child: Padding(
padding: EdgeInsets.all(10),
child: DefaultButton(page == 1 ? TranslationBase.of(context).next : TranslationBase.of(context).register, () {
child: DefaultButton(
page == 1
? TranslationBase
.of(context)
.next
: TranslationBase
.of(context)
.register, () {
nextPage();
page == 1 ? locator<GAnalytics>().loginRegistration.registration_personal_info() : locator<GAnalytics>().loginRegistration.registration_patient_info();
}, textColor: Colors.white, color: isValid() == true && page == 2 || page == 1 ? Color(0xff359846) : Colors.grey)),
page == 1
? locator<GAnalytics>()
.loginRegistration
.registration_personal_info()
: locator<GAnalytics>()
.loginRegistration
.registration_patient_info();
},
textColor: Colors.white,
color: isValid() == true
? Color(0xff359846)
: Colors.grey)),
),
],
)));
}
nextPage() {
nextPage() async{
if (page == 1) {
setState(() {
if(isDubai) {
await setRegisterData();
widget.changePageViewIndex(2);
});
}
else{
widget.changePageViewIndex(2);
}
} else {
registerNow();
}
}
setRegisterData() async{
registerInfo.gender = gender;
registerInfo.maritalStatusCode =maritalStatus;
registerInfo.nationalityCode =nationality;
projectViewModel.setRegisterData(registerInfo);
// await sharedPref.setObject(REGISTER_INFO_DUBAI, registerInfo);
}
registerNow() {
dynamic request = getTempUserRequest();
dynamic request;
if(isDubai)
request = getTempUserRequestDubai();
else
request = getTempUserRequest();
GifLoaderDialogUtils.showMyDialog(context);
dynamic res;
this
.authService
.registerUser(request)
.then((result) => {
.then((result) =>
{
GifLoaderDialogUtils.hideDialog(context),
if (result is String)
{
new ConfirmDialog(
context: context,
confirmMessage: result,
okText: TranslationBase.of(context).ok,
cancelText: TranslationBase.of(context).cancel_nocaps,
okFunction: () => {ConfirmDialog.closeAlertDialog(context)},
cancelFunction: () => {ConfirmDialog.closeAlertDialog(context)}).showAlertDialog(context)
okText: TranslationBase
.of(context)
.ok,
cancelText: TranslationBase
.of(context)
.cancel_nocaps,
okFunction: () =>
{ConfirmDialog.closeAlertDialog(context)},
cancelFunction: () =>
{
ConfirmDialog.closeAlertDialog(context)
}).showAlertDialog(context)
}
else
{
@ -345,9 +638,13 @@ class _RegisterInfo extends State<RegisterInfo> {
sharedPref.setObject(LOGIN_TOKEN_ID, result.logInTokenID),
sharedPref.setString(TOKEN, result.authenticationTokenID),
AppToast.showSuccessToast(message: TranslationBase.of(context).successRegister),
AppToast.showSuccessToast(
message: TranslationBase
.of(context)
.successRegister),
checkIfUserAgreedBefore(result),
projectViewModel.analytics.loginRegistration.registration_confirmation()
projectViewModel.analytics.loginRegistration
.registration_confirmation()
}
})
.catchError((err) {
@ -355,12 +652,17 @@ class _RegisterInfo extends State<RegisterInfo> {
ConfirmDialog dialog = new ConfirmDialog(
context: context,
confirmMessage: err,
okText: TranslationBase.of(context).confirm,
cancelText: TranslationBase.of(context).cancel_nocaps,
okText: TranslationBase
.of(context)
.confirm,
cancelText: TranslationBase
.of(context)
.cancel_nocaps,
okFunction: () => {ConfirmDialog.closeAlertDialog(context)},
cancelFunction: () => {ConfirmDialog.closeAlertDialog(context)});
dialog.showAlertDialog(context);
projectViewModel.analytics.loginRegistration.registration_fail(errorType: err);
projectViewModel.analytics.loginRegistration
.registration_fail(errorType: err);
});
}
@ -374,30 +676,44 @@ class _RegisterInfo extends State<RegisterInfo> {
}
getRegisterInfo() async {
var data = RegisterInfoResponse.fromJson(await sharedPref.getObject(NHIC_DATA));
if (await sharedPref.getObject(NHIC_DATA) != null) {
data =
RegisterInfoResponse.fromJson(await sharedPref.getObject(NHIC_DATA));
this.registerInfo = data;
}
if (await sharedPref.getObject(REGISTER_DATA_FOR_LOGIIN) != null) {
var data2 = CheckPatientAuthenticationReq.fromJson(await sharedPref.getObject(REGISTER_DATA_FOR_LOGIIN));
data2 = CheckPatientAuthenticationReq.fromJson(
await sharedPref.getObject(REGISTER_DATA_FOR_LOGIIN));
setState(() {
this.registerInfo = data;
this.registerd_data = data2;
isDubai = data2.patientOutSA == 1 ? true : false;
});
}
}
getTempUserRequest() {
DateFormat dateFormat = DateFormat("mm/dd/yyyy");
print(dateFormat.parse(registerInfo.dateOfBirth));
var hDate = new HijriCalendar.fromDate(dateFormat.parse(registerInfo.dateOfBirth));
var hDate =
new HijriCalendar.fromDate(dateFormat.parse(registerInfo.dateOfBirth));
var date = hDate.toString();
return {
"Patientobject": {
"TempValue": true,
"PatientIdentificationType": registerInfo.idNumber.substring(0, 1) == "1" ? 1 : 2,
"PatientIdentificationType":
registerInfo.idNumber.substring(0, 1) == "1" ? 1 : 2,
"PatientIdentificationNo": registerInfo.idNumber,
"MobileNumber": registerd_data.patientMobileNumber,
"PatientOutSA": (registerd_data.zipCode == '966' || registerd_data.zipCode == '+966') ? 0 : 1,
"PatientOutSA": (registerd_data.zipCode == '966' ||
registerd_data.zipCode == '+966')
? 0
: 1,
"FirstNameN": registerInfo.firstNameAr,
"FirstName": registerInfo.firstNameEn,
"MiddleNameN": registerInfo.secondNameAr,
@ -405,8 +721,9 @@ class _RegisterInfo extends State<RegisterInfo> {
"LastNameN": registerInfo.lastNameAr,
"LastName": registerInfo.lastNameEn,
"StrDateofBirth": registerInfo.dateOfBirth,
"DateofBirth": DateUtil.convertISODateToJsonDate(registerInfo.dateOfBirth.replaceAll('/', '-')),
"Gender": registerInfo.gender == 'M' ? 1 : 2,
"DateofBirth": DateUtil.convertISODateToJsonDate(
registerInfo.dateOfBirth.replaceAll('/', '-')),
"Gender": registerInfo.gender== 'M' ? 1 : 2,
"NationalityID": registerInfo.nationalityCode,
"eHealthIDField": registerInfo.healthId,
"DateofBirthN": date,
@ -420,12 +737,72 @@ class _RegisterInfo extends State<RegisterInfo> {
: '2',
},
"PatientIdentificationID": registerInfo.idNumber,
"PatientMobileNumber": registerd_data.patientMobileNumber.toString()[0] == '0' ? registerd_data.patientMobileNumber : '0' + registerd_data.patientMobileNumber.toString(),
"PatientMobileNumber":
registerd_data.patientMobileNumber.toString()[0] == '0'
? registerd_data.patientMobileNumber
: '0' + registerd_data.patientMobileNumber.toString(),
};
}
getTempUserRequestDubai(){
DateFormat dateFormat = DateFormat("mm/dd/yyyy");
registerInfo= projectViewModel.registerInfo;
print(dateFormat.parse(registerd_data.dob));
var hDate =
new HijriCalendar.fromDate(dateFormat.parse(registerd_data.dob));
var date = hDate.toString();
final DateFormat dateFormat1 = DateFormat('MM/dd/yyyy');
final DateFormat dateFormat2 = DateFormat('dd/MM/yyyy');
return {
"Patientobject": {
"TempValue": true,
"PatientIdentificationType":
registerd_data.patientIdentificationID.substring(0, 1) == "1" ? 1 : 2,
"PatientIdentificationNo": registerd_data.patientIdentificationID,
"MobileNumber": registerd_data.patientMobileNumber,
"PatientOutSA": (registerd_data.zipCode == '966' ||
registerd_data.zipCode == '+966')
? 0
: 1,
"FirstNameN": registerInfo.firstNameAr ??"",
"FirstName": registerInfo.firstNameEn??"",
"MiddleNameN": registerInfo.secondNameAr?? "",
"MiddleName": registerInfo.secondNameEn ??"",
"LastNameN": registerInfo.lastNameAr ??"",
"LastName":registerInfo.lastNameEn ??"",
"StrDateofBirth": dateFormat1.format(
dateFormat2.parse(registerd_data.dob)),
"DateofBirth": DateUtil.convertISODateToJsonDate(
registerd_data.dob.replaceAll('/', '-')),
"Gender": registerInfo.gender== 'M' ? 1 : 2,
"NationalityID": registerInfo.nationalityCode,
"eHealthIDField":null,
"DateofBirthN": date,
"EmailAddress": email,
"SourceType": location,
"PreferredLanguage": registerd_data.languageID.toString(),
"Marital": registerInfo.maritalStatusCode == 'U'
? '0'
: registerInfo.maritalStatusCode == 'M'
? '1'
: '2',
},
"PatientIdentificationID": registerd_data.patientIdentificationID,
"PatientMobileNumber":
registerd_data.patientMobileNumber.toString()[0] == '0'
? registerd_data.patientMobileNumber
: '0' + registerd_data.patientMobileNumber.toString(),
"DOB":registerd_data.dob,
"IsHijri":registerd_data.isHijri
};
}
bool isValid() {
if (location != null && language != null && Utils.validEmail(email) == true) {
if ((location != null &&
language != null &&
Utils.validEmail(email) == true) || (registerInfo.firstNameEn !=null && registerInfo.secondNameEn !=null && registerInfo.lastNameEn !=null)) {
return true;
} else {
return false;
@ -436,6 +813,8 @@ class _RegisterInfo extends State<RegisterInfo> {
return Row(
children: [
Expanded(
child: Padding(
padding: EdgeInsets.only(left: 5, right: 5),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
@ -447,17 +826,21 @@ class _RegisterInfo extends State<RegisterInfo> {
letterSpacing: -0.44,
),
),
Text(
value1 is String
? Text(
value1,
style: TextStyle(
fontSize: 12,
fontWeight: FontWeight.w600,
letterSpacing: -0.44,
),
),
)
: value1,
],
)),
))),
Expanded(
child: Padding(
padding: EdgeInsets.only(left: 5, right: 5),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
@ -469,16 +852,18 @@ class _RegisterInfo extends State<RegisterInfo> {
letterSpacing: -0.44,
),
),
Text(
value2 is String
? Text(
value2,
style: TextStyle(
fontSize: 12,
fontWeight: FontWeight.w600,
letterSpacing: -0.44,
),
),
)
: value2,
],
))
)))
],
);
}
@ -494,7 +879,10 @@ class _RegisterInfo extends State<RegisterInfo> {
insertIMEI() async {
var selectedOption = await sharedPref.getInt(LAST_LOGIN);
authService.insertDeviceImei(selectedOption).then((value) => {goToHome()}).catchError((err) {
authService
.insertDeviceImei(selectedOption)
.then((value) => {goToHome()})
.catchError((err) {
print(err);
});
}
@ -507,7 +895,8 @@ class _RegisterInfo extends State<RegisterInfo> {
await authenticatedUserObject.getUser(getUser: true);
appointmentRateViewModel
.getIsLastAppointmentRatedList()
.then((value) => {
.then((value) =>
{
getToDoCount(),
GifLoaderDialogUtils.hideDialog(AppGlobal.context),
if (appointmentRateViewModel.isHaveAppointmentNotRate)
@ -547,8 +936,114 @@ class _RegisterInfo extends State<RegisterInfo> {
print(err);
});
}
getCountries() {
ClinicListService service = new ClinicListService();
service.getCountries().then((res) {
if (res['MessageStatus'] == 1) {
res['ListNationality'].forEach((items) => {
countriesList.add(CountriesLists.fromJson(items))
});
setState(() {});
}
}).catchError((err) {
print(err);
});
}
Widget inputWidget(String _labelText, String _hintText, String name, {String prefix, bool isEnable = true, bool hasSelection = false}) {
return Container(
padding: EdgeInsets.only(left: 10, right: 10, bottom: 5, top: 5),
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: TextInputType.number,
// controller: _controller,
onChanged: (value) => {
setState((){
switch(name) {
case 'fName':
registerInfo.firstNameEn = registerInfo.firstNameAr = value;
break;
case 'sName':
registerInfo.secondNameEn = registerInfo.secondNameAr = value;
break;
case 'lName':
registerInfo.lastNameEn = registerInfo.lastNameAr = value;
break;
}
})
//_controller.text =value
},
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,
),
prefixIconConstraints: BoxConstraints(minWidth: 50),
contentPadding: EdgeInsets.zero,
border: InputBorder.none,
focusedBorder: InputBorder.none,
enabledBorder: InputBorder.none,
),
),
],
),
),
if (hasSelection) Icon(Icons.keyboard_arrow_down_outlined),
],
),
),
);
}
}
class Language {
final String name;
final String value;

@ -349,12 +349,19 @@ class _Register extends State<Register> {
cancelFunction: () {})
.showAlertDialog(context);
} else {
final intl.DateFormat dateFormat = intl.DateFormat('dd/MM/yyyy');
nRequest['forRegister'] = true;
nRequest['isRegister'] = true;
nRequest["PatientIdentificationID"] = nRequest["PatientIdentificationID"].toString();
nRequest['dob'] = isHijri == 1 ? dob.text : dateFormat.format(selectedDate);
nRequest['isHijri'] = isHijri;
sharedPref.setObject(REGISTER_DATA_FOR_LOGIIN, nRequest);
sharedPref.setString(LOGIN_TOKEN_ID, response['LogInTokenID']);
if(request.patientOutSA ==0 ) {
this.chekUserData(response['LogInTokenID']);
}else{
Navigator.of(context).push(FadePage(page: ConfirmLogin(changePageViewIndex: widget.changePageViewIndex, fromRegistration: true, isDubai:true)));
}
}
} else {
// if (response['ErrorCode'] == '-986') {

@ -376,10 +376,16 @@ class AuthProvider with ChangeNotifier {
requestN.patientOutSA = requestN.patientobject.patientOutSA;
final DateFormat dateFormat = DateFormat('MM/dd/yyyy');
final DateFormat dateFormat2 = DateFormat('dd/MM/yyyy');
requestN.dob = nhic['IsHijri'] ? nhic['DateOfBirth'] : dateFormat2.format(dateFormat.parse(nhic['DateOfBirth']));
requestN.zipCode = requestN.patientOutSA == 1 ? '971' : '966';
requestN.healthId = requestN.patientobject.eHealthIDField;
if(nhic !=null) {
requestN.dob = nhic['IsHijri'] ? nhic['DateOfBirth'] : dateFormat2.format(
dateFormat.parse(nhic['DateOfBirth']));
requestN.isHijri = nhic['IsHijri'] ? 1 : 0;
requestN.healthId = requestN.patientobject.eHealthIDField;
}
requestN.zipCode = requestN.patientOutSA == 1 ? '971' : '966';
await sharedPref.remove(USER_PROFILE);
dynamic localRes;

@ -177,4 +177,14 @@ class ClinicListService extends BaseService {
}, body: request);
return Future.value(localRes);
}
Future<Map> getCountries() async {
Map<String, dynamic> request ={};
dynamic localRes;
await baseAppClient.post(GET_NATIONALITY, onSuccess: (response, statusCode) async {
localRes = response;
}, onFailure: (String error, int statusCode) {
throw error;
}, body: request);
return Future.value(localRes);
}
}

Loading…
Cancel
Save