Merge branch 'diplomatic-quarter-live' of https://gitlab.com/Cloud_Solution/diplomatic-quarter into diplomatic-quarter-haroon

# Conflicts:
#	lib/pages/landing/landing_page.dart
#	lib/pages/login/confirm-login.dart
#	lib/services/authentication/auth_provider.dart
fix_issues
haroon amjad 4 years ago
commit 5020c24e8b

@ -130,9 +130,12 @@ const Map<String, Map<String, String>> localizedValues = {
"nationalID": {"en": "National ID", "ar": "رقم الهوية"},
"fileNo": {"en": "File Number", "ar": "رقم الملف"},
"forgotFileNo": {"en": "Forgot file Number?", "ar": "نسيت رقم الملف الطبي؟"},
"forgotFileNoTitle": {"en": "Forgot medical file Number", "ar": "نسيت رقم الملف"},
"forgotFileNoTitle": {
"en": "Forgot medical file Number",
"ar": "نسيت رقم الملف"
},
"enter-national-id": {
"enter-national-id": {
"en": "Please enter mobile number and national ID / Iqama",
"ar": "الرجاء إدخال رقم الجوال والهوية الوطنية / الاقامة"
},
@ -662,7 +665,10 @@ const Map<String, Map<String, String>> localizedValues = {
"ar": "الفحص ليس تشخيص."
},
"remeberthat": {"en": "Remember that", "ar": "تذكر ذلك:"},
"loginToUseService": {"en": "You need to login to use this service", "ar": "هذة الخدمة تتطلب تسجيل الدخول"},
"loginToUseService": {
"en": "You need to login to use this service",
"ar": "هذة الخدمة تتطلب تسجيل الدخول"
},
"select-gender": {"en": "Select Gender", "ar": "اختر الجنس"},
"i-am-a": {"en": "I am a ...", "ar": "أنا ..."},
@ -673,8 +679,9 @@ const Map<String, Map<String, String>> localizedValues = {
"en": "Drag point to change your age",
"ar": "اسحب لتغيير عمرك"
},
"email": {"en": "Email", "ar": "البريد الالكتروني"},
"Book": {"en": "Book", "ar": "احجز"},
"AppointmentLabel": {"en": "Appointment", "ar": "موعد"},
"BloodType": {"en": "Blood Type", "ar": "فصيلة الدم"},
"marital-status": {"en": "Marital status", "ar": "الحالة الإجتماعية"}
};

@ -145,6 +145,9 @@ class PrescriptionsService extends BaseService {
_requestSendPrescriptionEmail.projectID = projectID;
hasError = false;
await baseAppClient.post(SEND_PRESCRIPTION_EMAIL,
onSuccess: (response,statusCode){
},
onFailure: (String error, int statusCode) {
hasError = true;
super.error = error;

@ -235,7 +235,7 @@ class _DocAvailableAppointmentsState extends State<DocAvailableAppointments>
return children;
},
),
onDaySelected: (date, events,holidays) {
onDaySelected: (date, events) {
_onDaySelected(date, events);
_animationController.forward(from: 0.0);
},

@ -348,8 +348,11 @@ class _CovidTimeSlotsState extends State<CovidTimeSlots>
return children;
},
),
onDaySelected: (date, event,holidays) {
_onDaySelected(date, event,);
onDaySelected: (date, event) {
_onDaySelected(
date,
event,
);
_animationController.forward(from: 0.0);
},
onVisibleDaysChanged: _onVisibleDaysChanged,

@ -131,12 +131,11 @@ class _LandingPageState extends State<LandingPage> with WidgetsBindingObserver {
pageController = PageController(keepPage: true);
_firebaseMessaging.setAutoInitEnabled(true);
if (Platform.isIOS) {
_firebaseMessaging.requestNotificationPermissions();
}
if (Platform.isIOS) {
_firebaseMessaging.requestNotificationPermissions();
}
_firebaseMessaging.getToken().then((String token) {
print(token);
sharedPref.setString(PUSH_TOKEN, token);
if (token != null) {
checkUserStatus(token);

@ -317,6 +317,7 @@ class _ConfirmLogin extends State<ConfirmLogin> {
.catchError((err) {
print(err);
GifLoaderDialogUtils.hideDialog(context);
});
}
@ -519,7 +520,7 @@ class _ConfirmLogin extends State<ConfirmLogin> {
checkIfUserAgreedBefore(CheckActivationCode result) {
print(result);
if (result.isNeedUserAgreement == true) {
if (result.isNeedUserAgreement ==true) {
//move to agreement page.
} else {
insertIMEI();

@ -1,9 +1,14 @@
import 'package:diplomaticquarterapp/config/shared_pref_kay.dart';
import 'package:diplomaticquarterapp/config/size_config.dart';
import 'package:diplomaticquarterapp/models/Authentication/check_paitent_authentication_req.dart';
import 'package:diplomaticquarterapp/models/Authentication/register_info_response.dart';
import 'package:diplomaticquarterapp/models/Authentication/register_user_requet.dart';
import 'package:diplomaticquarterapp/pages/login/login-type.dart';
import 'package:diplomaticquarterapp/services/authentication/auth_provider.dart';
import 'package:diplomaticquarterapp/uitl/app_shared_preferences.dart';
import 'package:diplomaticquarterapp/uitl/date_uitl.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/uitl/utils.dart';
import 'package:diplomaticquarterapp/widgets/buttons/defaultButton.dart';
import 'package:diplomaticquarterapp/widgets/input/text_field.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
@ -22,6 +27,19 @@ class _RegisterInfo extends State<RegisterInfo> {
RegisterInfoResponse registerInfo;
bool isLoading;
int page = 1;
final List<Location> locationList = [
new Location(name: 'KSA', value: '1'),
new Location(name: 'Dubai', value: '2'),
];
var language;
var registerd_data;
final List<Language> languageList = [
new Language(name: 'English', value: '2'),
new Language(name: 'Arabic', value: '1'),
];
var email = '';
var location;
@override
void initState() {
@ -55,7 +73,7 @@ class _RegisterInfo extends State<RegisterInfo> {
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: <Widget>[
AppText('National ID'),
AppText(TranslationBase.of(context).nationalID),
Container(
margin: EdgeInsets.only(bottom: 10),
child: TextFields(
@ -66,18 +84,34 @@ class _RegisterInfo extends State<RegisterInfo> {
top: 20, bottom: 20, left: 10, right: 10),
readOnly: true,
)),
AppText('Name'),
AppText(TranslationBase.of(context).firstName),
Container(
margin: EdgeInsets.only(bottom: 10),
child: TextFields(
hintText: registerInfo.firstNameEn +
' ' +
registerInfo.lastNameEn,
hintText: registerInfo.firstNameEn,
padding: EdgeInsets.only(
top: 20, bottom: 20, left: 10, right: 10),
readOnly: true,
)),
AppText('Gender'),
AppText(TranslationBase.of(context).middleName),
Container(
margin: EdgeInsets.only(bottom: 10),
child: TextFields(
hintText: registerInfo.secondNameEn,
padding: EdgeInsets.only(
top: 20, bottom: 20, left: 10, right: 10),
readOnly: true,
)),
AppText(TranslationBase.of(context).lastName),
Container(
margin: EdgeInsets.only(bottom: 10),
child: TextFields(
hintText: registerInfo.lastNameEn,
padding: EdgeInsets.only(
top: 20, bottom: 20, left: 10, right: 10),
readOnly: true,
)),
AppText(TranslationBase.of(context).gender),
Container(
margin: EdgeInsets.only(bottom: 10),
child: TextFields(
@ -90,7 +124,16 @@ class _RegisterInfo extends State<RegisterInfo> {
top: 20, bottom: 20, left: 10, right: 10),
readOnly: true,
)),
AppText('Nationality'),
AppText(TranslationBase.of(context).maritalStatus),
Container(
margin: EdgeInsets.only(bottom: 10),
child: TextFields(
hintText: registerInfo.maritalStatus,
padding: EdgeInsets.only(
top: 20, bottom: 20, left: 10, right: 10),
readOnly: true,
)),
AppText(TranslationBase.of(context).nationality),
Container(
margin: EdgeInsets.only(bottom: 10),
child: TextFields(
@ -99,7 +142,16 @@ class _RegisterInfo extends State<RegisterInfo> {
top: 20, bottom: 20, left: 10, right: 10),
readOnly: true,
)),
AppText('Date of Birth'),
AppText(TranslationBase.of(context).mobileNumber),
Container(
margin: EdgeInsets.only(bottom: 10),
child: TextFields(
hintText:registerd_data.patientMobileNumber,
padding: EdgeInsets.only(
top: 20, bottom: 20, left: 10, right: 10),
readOnly: true,
)),
AppText(TranslationBase.of(context).dob),
Container(
margin: EdgeInsets.only(bottom: 10),
child: TextFields(
@ -112,7 +164,73 @@ class _RegisterInfo extends State<RegisterInfo> {
)
: registerInfo != null && page == 2
? Column(
children: <Widget>[],
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
AppText(TranslationBase.of(context).language,
textAlign: TextAlign.start),
Container(
padding: EdgeInsets.all(10),
decoration: BoxDecoration(
color: Colors.white,
border: Border.all(color: Colors.grey),
borderRadius: BorderRadius.circular(10)),
child: DropdownButtonHideUnderline(
child: DropdownButton(
isExpanded: true,
value: language,
iconSize: 40,
elevation: 16,
onChanged: (value) => {
setState(() {
language = value;
})
},
items: languageList
.map<DropdownMenuItem<String>>(
(Language value) {
return DropdownMenuItem<String>(
value: value.value,
child: Text(value.name),
);
}).toList()))),
AppText(TranslationBase.of(context).location),
Container(
padding: EdgeInsets.all(10),
decoration: BoxDecoration(
color: Colors.white,
border: Border.all(color: Colors.grey),
borderRadius: BorderRadius.circular(10)),
child: DropdownButtonHideUnderline(
child: DropdownButton(
isExpanded: true,
value: language,
iconSize: 40,
elevation: 16,
onChanged: (value) => {
setState(() {
location = value;
})
},
items: locationList
.map<DropdownMenuItem<String>>(
(Location value) {
return DropdownMenuItem<String>(
value: value.value,
child: Text(value.name),
);
}).toList()))),
AppText(TranslationBase.of(context).email),
Container(
margin: EdgeInsets.only(bottom: 10),
child: TextFields(
onChanged: (value) {
this.email = value;
this.isValid();
},
padding: EdgeInsets.only(
top: 20, bottom: 20, left: 10, right: 10),
)),
],
)
: SizedBox(),
Expanded(
@ -124,9 +242,14 @@ class _RegisterInfo extends State<RegisterInfo> {
children: <Widget>[
Expanded(
child: DefaultButton(
TranslationBase.of(context).next,
page == 1
? TranslationBase.of(context).next
: TranslationBase.of(context).register,
() => {nextPage()},
textColor: Colors.white,
color: this.isValid() == false && page == 2
? Colors.grey
: Colors.black,
))
],
),
@ -137,21 +260,110 @@ class _RegisterInfo extends State<RegisterInfo> {
}
nextPage() {
setState(() {
page++;
});
if (page == 1) {
setState(() {
page++;
});
} else {
registerNow();
}
}
registerNow() {}
registerNow() {
dynamic request = getTempUserRequest();
request = RegisterUserRequest.fromJson(request);
this.authService.registerUser(request);
}
getRegisterInfo() async {
RegisterInfoResponse registerInfo;
registerInfo =
var data =
RegisterInfoResponse.fromJson(await sharedPref.getObject(NHIC_DATA));
setState(() {
this.registerInfo = registerInfo;
});
if (await sharedPref.getObject(REGISTER_DATA_FOR_LOGIIN) != null) {
var data2 = CheckPatientAuthenticationReq.fromJson(
await sharedPref.getObject(REGISTER_DATA_FOR_LOGIIN));
print(this.registerInfo);
setState(() {
this.registerInfo = data;
this.registerd_data = data2;
});
}
}
getTempUserRequest() {
return {
"Patientobject": {
"TempValue": true,
"PatientIdentificationType": 1,
"PatientIdentificationNo": registerInfo.idNumber,
"MobileNumber": registerd_data['patientMobileNumber'],
"PatientOutSA": registerd_data['zipCode'] == '966' ? '0' : '1',
"FirstName": registerInfo.firstNameEn,
"MiddleName": registerInfo.secondNameEn,
"LastName": registerInfo.lastNameEn,
"StrDateofBirth": registerInfo.dateOfBirth,
"DateofBirth":
DateUtil.convertISODateToJsonDate(registerInfo.dateOfBirth),
"Gender": registerInfo.gender,
"NationalityID": registerInfo.nationality,
"DateofBirthN": registerInfo.dateOfBirth,
"EmailAddress": email,
"SourceType": location,
"PreferredLanguage": registerd_data['languageID'],
"Marital": registerInfo.maritalStatusCode == 'U'
? '0'
: registerInfo.maritalStatusCode == 'M'
? '1'
: '2',
},
"PatientIdentificationID": registerInfo.idNumber,
"PatientMobileNumber": registerd_data['PatientMobileNumber'],
};
// var patientObject ={};
// var request ={};
// patientObject['PatientIdentificationType'] = this.identificationType;
// patientObject['PatientIdentificationNo'] = this.id;
// request['PatientIdentificationID'] = this.id;
// request['PatientMobileNumber'] = this.registerInfo.MobileNumber;
// patientObject['MobileNumber'] = this.registerInfo.MobileNumber;
// patientObject['PatientOutSA'] = this.registerInfo.PatientOutSA;
// request['LogInTokenID'] = this.registerInfo.LogInTokenID;
// request['activationCode'] = this.registerInfo.activationCode;
// request['ProjectID'] = this.selectedProjectID;
// patientObject['ProjectID'] = this.selectedProjectID;
// request
// request.setBirthDate(this.dateOfBirth, this.cs.convertISODateToJsonDate(this.dateOfBirth));
// request.setGender(this.gender);
// request.Patientobject.NationalityID = this.selectedNationalityID;
// request.Patientobject.StrDateofBirth = this.dateOfBirth;
// request.Patientobject.DateofBirthN = this.dateHijri;
// request.Patientobject.EmailAddress = this.eMail;
// request.Patientobject.SourceType = this.iSOCountryID
// request.Patientobject.PreferredLanguage = this.preferredLanguage
// request.Patientobject.Marital = this.maritalStatus;
//return request;
}
bool isValid() {
if (location != null ||
language != null ||
Utils.validEmail(email) == true) {
return true;
} else {
return false;
}
}
}
class Language {
final String name;
final String value;
Language({this.name, this.value});
}
class Location {
final String name;
final String value;
Location({this.name, this.value});
}

@ -84,7 +84,7 @@ class LabsHomePage extends StatelessWidget {
patientLabOrders: labOrder,
),
),
),
),isInOutPatient: labOrder.isInOutPatient,
name: labOrder.doctorName,
profileUrl: labOrder.doctorImageURL,
subName: TranslationBase.of(context).billNo+' ${labOrder.invoiceNo}',

@ -111,7 +111,7 @@ class AuthProvider with ChangeNotifier {
var imei = await sharedPref.getString(PUSH_TOKEN);
// if (!request.) {
newRequest.iMEI = imei; //imei!=null ? imei : '';
newRequest.iMEI =imei; //imei!=null ? imei : '';
newRequest.firstName = request.firstName + " " + request.lastName;
newRequest.firstNameN = request.firstNameN + " " + request.lastNameN;
newRequest.lastNameN = request.lastNameN ?? "";

@ -122,8 +122,7 @@ class TranslationBase {
String get loginregister =>
localizedValues['loginregister'][locale.languageCode];
String get poweredBy =>
localizedValues['poweredBy'][locale.languageCode];
String get poweredBy => localizedValues['poweredBy'][locale.languageCode];
String get welcome => localizedValues['welcome'][locale.languageCode];
@ -373,7 +372,8 @@ class TranslationBase {
String get family => localizedValues['family'][locale.languageCode];
String get myFamilyFiles => localizedValues['family-title'][locale.languageCode];
String get myFamilyFiles =>
localizedValues['family-title'][locale.languageCode];
String get myFamily => localizedValues['myFamily'][locale.languageCode];
String get oxygenation => localizedValues['oxygenation'][locale.languageCode];
@ -728,11 +728,16 @@ class TranslationBase {
String get selectAge => localizedValues['select-age'][locale.languageCode];
String get iAm => localizedValues['i-am'][locale.languageCode];
String get yearOld => localizedValues['years-old'][locale.languageCode];
String get email => localizedValues['email'][locale.languageCode];
String get book => localizedValues['Book'][locale.languageCode];
String get appointmentLabel => localizedValues['AppointmentLabel'][locale.languageCode];
String get appointmentLabel =>
localizedValues['AppointmentLabel'][locale.languageCode];
String get bloodType => localizedValues['BloodType'][locale.languageCode];
String get loginToUseService => localizedValues['loginToUseService'][locale.languageCode];
String get loginToUseService =>
localizedValues['loginToUseService'][locale.languageCode];
String get maritalStatus =>
localizedValues['marital-status'][locale.languageCode];
}
class TranslationBaseDelegate extends LocalizationsDelegate<TranslationBase> {

@ -152,4 +152,10 @@ class Utils {
static Uint8List dataFromBase64String(String base64String) {
return base64Decode(base64String);
}
static validEmail(email) {
return RegExp(
r"^[a-zA-Z0-9.a-zA-Z0-9.!#$%&'*+-/=?^_`{|}~]+@[a-zA-Z0-9]+\.[a-zA-Z]+")
.hasMatch(email);
}
}

@ -3,6 +3,7 @@ import 'package:diplomaticquarterapp/config/size_config.dart';
import 'package:diplomaticquarterapp/core/service/AuthenticatedUserObject.dart';
import 'package:diplomaticquarterapp/core/viewModels/base_view_model.dart';
import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
import 'package:diplomaticquarterapp/pages/insurance/insurance_update_screen.dart';
import 'package:diplomaticquarterapp/pages/landing/landing_page.dart';
import 'package:diplomaticquarterapp/routes.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
@ -81,7 +82,13 @@ class AppScaffold extends StatelessWidget {
centerTitle: true,
actions: <Widget>[
image!=null? InkWell(
onTap: ()=> Navigator.pop(context),
onTap: ()=>
Navigator.push(
context,
FadePage(
page: InsuranceUpdate(),
),
),
child: Padding(
padding: const EdgeInsets.all(8.0),
child: Image.asset(
@ -94,6 +101,8 @@ class AppScaffold extends StatelessWidget {
icon: Icon(FontAwesomeIcons.home),
color: Colors.white,
onPressed: () {
Navigator.pushAndRemoveUntil(
context,
MaterialPageRoute(builder: (context) => LandingPage()),

Loading…
Cancel
Save