From e42f953bd15d2ebfc352a8ead0c9d1972eb9611e Mon Sep 17 00:00:00 2001 From: Mohammad Aljmma Date: Wed, 4 Nov 2020 16:40:30 +0200 Subject: [PATCH 1/5] fix prescription report issues --- lib/config/localized_values.dart | 2 +- lib/core/service/AuthenticatedUserObject.dart | 1 + lib/core/service/insurance_service.dart | 44 ++----------------- .../medical/prescriptions_service.dart | 6 ++- .../medical/prescriptions_view_model.dart | 4 +- .../insurance/insurance_update_screen.dart | 7 +-- lib/pages/landing/home_page.dart | 11 +++-- lib/pages/login/login.dart | 24 +++++----- .../medical/patient_sick_leave_page.dart | 4 +- .../prescription_details_page.dart | 10 +++-- .../prescription_items_page.dart | 10 +++-- .../prescriptions/prescriptions_page.dart | 3 +- .../data_display/medical/doctor_card.dart | 9 ++-- lib/widgets/others/StarRating.dart | 2 +- 14 files changed, 55 insertions(+), 82 deletions(-) diff --git a/lib/config/localized_values.dart b/lib/config/localized_values.dart index 8a934bf6..1cc87c20 100644 --- a/lib/config/localized_values.dart +++ b/lib/config/localized_values.dart @@ -341,7 +341,7 @@ const Map> localizedValues = { "MyMedicalFile": {"en": "My Medical File", 'ar': 'ملف الطبي الالكتروني'}, "myMedicalFileSubTitle": { "en": "All your medical records", - 'ar': 'جميع سجلاتك البية' + 'ar': 'جميع سجلاتك الطبية' }, "viewMore": {"en": "View More", 'ar': 'عرض المزيد'}, "homeHealthCareService": { diff --git a/lib/core/service/AuthenticatedUserObject.dart b/lib/core/service/AuthenticatedUserObject.dart index 600e17e1..25005b3a 100644 --- a/lib/core/service/AuthenticatedUserObject.dart +++ b/lib/core/service/AuthenticatedUserObject.dart @@ -23,5 +23,6 @@ class AuthenticatedUserObject { logout() async { isLogin = false; + var asd =""; } } diff --git a/lib/core/service/insurance_service.dart b/lib/core/service/insurance_service.dart index 7fee6615..02061612 100644 --- a/lib/core/service/insurance_service.dart +++ b/lib/core/service/insurance_service.dart @@ -31,48 +31,9 @@ class InsuranceCardService extends BaseService { _cardUpdated.clear(); } - InsuranceCardModel _insuranceCardModel = InsuranceCardModel( - channel: 3, - deviceTypeID: 2, - generalid: "Cs2020@2016\$2958", - iPAdress: "10.20.10.20", - isDentalAllowedBackend: false, - languageID: 1, - patientID: 1231755, - patientOutSA: 0, - patientType: 1, - patientTypeID: 1, - sessionID: "uoKFXSLUwEaHYPwKZNA", - tokenID: "@dm!n", - versionID: 5.5, - ); - - InsuranceUpdateModel _insuranceUpdateModel = InsuranceUpdateModel( - channel: 3, - deviceTypeID: 2, - generalid: "Cs2020@2016\$2958", - iPAdress: "10.20.10.20", - isDentalAllowedBackend: false, - patientID: 1231755, - patientType: 1, - versionID: 5.5, - languageID: 2, - patientOutSA: 0, - sessionID: "ENRSJBKXnzCuuVQ", - ); InsuranceApprovalModel _insuranceApprovalModel = InsuranceApprovalModel( - versionID: 5.5, - channel: 3, - languageID: LANGUAGE_ID, - iPAdress: "10.20.10.20", - generalid: "Cs2020@2016\$2958", - patientOutSA: 0, - sessionID: "DypNmtMkivzURHjeYg", isDentalAllowedBackend: false, - deviceTypeID: 2, - patientID: 1231755, - tokenID: "@dm!n", patientTypeID: 1, patientType: 1, eXuldAPPNO: 0, @@ -89,7 +50,7 @@ class InsuranceCardService extends BaseService { }, onFailure: (String error, int statusCode) { hasError = true; super.error = error; - }, body: _insuranceCardModel.toJson()); + }, body: Map()); } Future getInsuranceUpdate() async { @@ -97,13 +58,14 @@ class InsuranceCardService extends BaseService { // _cardList.clear(); await baseAppClient.post(GET_PAtIENTS_INSURANCE_UPDATED, onSuccess: (dynamic response, int statusCode) { + _cardUpdated.clear(); response['List_PatientInsuranceCardHistory'].forEach((item) { _cardUpdated.add(InsuranceUpdateModel.fromJson(item)); }); }, onFailure: (String error, int statusCode) { hasError = true; super.error = error; - }, body: _insuranceUpdateModel.toJson()); + }, body: Map()); } Future getInsuranceApproval({int appointmentNo}) async { diff --git a/lib/core/service/medical/prescriptions_service.dart b/lib/core/service/medical/prescriptions_service.dart index 294ef897..f4a6c766 100644 --- a/lib/core/service/medical/prescriptions_service.dart +++ b/lib/core/service/medical/prescriptions_service.dart @@ -95,9 +95,13 @@ class PrescriptionsService extends BaseService { isDentalAllowedBackend: false); List prescriptionReportList = List(); - Future getPrescriptionReport({int dischargeNo}) async { + Future getPrescriptionReport({int dischargeNo,int projectId,int clinicID,String setupID}) async { hasError = false; _requestPrescriptionReport.dischargeNo = dischargeNo; + _requestPrescriptionReport.projectID = projectId; + _requestPrescriptionReport.clinicID = clinicID; + _requestPrescriptionReport.setupID = setupID; + await baseAppClient.post(GET_PRESCRIPTION_REPORT, onSuccess: (dynamic response, int statusCode) { prescriptionReportList.clear(); diff --git a/lib/core/viewModels/medical/prescriptions_view_model.dart b/lib/core/viewModels/medical/prescriptions_view_model.dart index 27b954d4..9d74fd88 100644 --- a/lib/core/viewModels/medical/prescriptions_view_model.dart +++ b/lib/core/viewModels/medical/prescriptions_view_model.dart @@ -102,9 +102,9 @@ class PrescriptionsViewModel extends BaseViewModel { notifyListeners(); } - getPrescriptionReport({int dischargeNo}) async { + getPrescriptionReport({int dischargeNo,int projectId,int clinicID,String setupID}) async { setState(ViewState.Busy); - await _prescriptionsService.getPrescriptionReport(dischargeNo: dischargeNo); + await _prescriptionsService.getPrescriptionReport(dischargeNo: dischargeNo,projectId: projectId,clinicID: clinicID,setupID: setupID); if (_prescriptionsService.hasError) { error = _prescriptionsService.error; setState(ViewState.ErrorLocal); diff --git a/lib/pages/insurance/insurance_update_screen.dart b/lib/pages/insurance/insurance_update_screen.dart index 2fa291df..1e616108 100644 --- a/lib/pages/insurance/insurance_update_screen.dart +++ b/lib/pages/insurance/insurance_update_screen.dart @@ -98,12 +98,7 @@ class _InsuranceUpdateState extends State children: [ Container( child: ListView.builder( - itemCount: model.getAllSharedRecordsByStatusResponse - .getAllSharedRecordsByStatusList == - null - ? 0 - : model.getAllSharedRecordsByStatusResponse - .getAllSharedRecordsByStatusList.length, + itemCount: model.getAllSharedRecordsByStatusResponse.getAllSharedRecordsByStatusList.length, itemBuilder: (BuildContext context, int index) { return Container( margin: EdgeInsets.all(10.0), diff --git a/lib/pages/landing/home_page.dart b/lib/pages/landing/home_page.dart index 34aa2fe2..82fd6d22 100644 --- a/lib/pages/landing/home_page.dart +++ b/lib/pages/landing/home_page.dart @@ -1,4 +1,5 @@ import 'package:diplomaticquarterapp/config/size_config.dart'; +import 'package:diplomaticquarterapp/core/service/AuthenticatedUserObject.dart'; import 'package:diplomaticquarterapp/core/viewModels/dashboard_view_model.dart'; import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart'; import 'package:diplomaticquarterapp/models/Appointments/toDoCountProviderModel.dart'; @@ -27,6 +28,8 @@ import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; +import '../../locator.dart'; + class HomePage extends StatefulWidget { final Function goToMyProfile; @@ -46,6 +49,8 @@ class _HomePageState extends State { }); super.initState(); } + AuthenticatedUserObject authenticatedUserObject = locator(); + @override Widget build(BuildContext context) { @@ -105,7 +110,7 @@ class _HomePageState extends State { Orientation.landscape ? 0.02 : 0.03), - child: (!model.isLogin && projectViewModel.user == null) + child: (!authenticatedUserObject.isLogin && projectViewModel.user == null) ? Container( width: double.infinity, height: 160, @@ -145,8 +150,8 @@ class _HomePageState extends State { ), Align( alignment: projectViewModel.isArabic - ? Alignment.bottomRight - : Alignment.bottomLeft, + ? Alignment.bottomLeft + : Alignment.bottomRight, child: InkWell( onTap: () { widget.goToMyProfile(); diff --git a/lib/pages/login/login.dart b/lib/pages/login/login.dart index 91d356de..458924e3 100644 --- a/lib/pages/login/login.dart +++ b/lib/pages/login/login.dart @@ -228,21 +228,21 @@ class _Login extends State { GifLoaderDialogUtils.hideDialog(context), if (appointmentRateViewModel.isHaveAppointmentNotRate) { - Navigator.pushReplacement( - context, - FadePage( - page: RateAppointmentDoctor(), - ), - ) + Navigator.pushAndRemoveUntil( + context, + FadePage( + page: RateAppointmentDoctor(), + ), + (r) => false) } else { - Navigator.pushReplacement( - context, - FadePage( - page: LandingPage(), - ), - ) + Navigator.pushAndRemoveUntil( + context, + FadePage( + page: LandingPage(), + ), + (r) => false) } }) .catchError((err) { diff --git a/lib/pages/medical/patient_sick_leave_page.dart b/lib/pages/medical/patient_sick_leave_page.dart index dab3d6cf..d12573f0 100644 --- a/lib/pages/medical/patient_sick_leave_page.dart +++ b/lib/pages/medical/patient_sick_leave_page.dart @@ -31,8 +31,8 @@ class _PatientSickLeavePageState extends State { profileUrl: model.sickLeaveList[index].doctorImageURL, rat: model.sickLeaveList[index].actualDoctorRate.toDouble(), subName: model.sickLeaveList[index].projectName, - isInOutPatientDescription: - model.sickLeaveList[index].isInOutPatientDescription, + isInOutPatient: + model.sickLeaveList[index].isInOutPatient, onEmailTap: () { model.sendSickLeaveEmail( message: TranslationBase.of(context).emailSentSuccessfully, diff --git a/lib/pages/medical/prescriptions/prescription_details_page.dart b/lib/pages/medical/prescriptions/prescription_details_page.dart index 72c82c55..43dc398b 100644 --- a/lib/pages/medical/prescriptions/prescription_details_page.dart +++ b/lib/pages/medical/prescriptions/prescription_details_page.dart @@ -46,9 +46,13 @@ class PrescriptionDetailsPage extends StatelessWidget { child: Padding( padding: const EdgeInsets.all(8.0), child: Center( - child: Texts(prescriptionReport.itemDescription)), + child: Texts( + prescriptionReport.itemDescription.isNotEmpty + ? prescriptionReport.itemDescription + : prescriptionReport.itemDescriptionN), + ), ), - ), + ) ], ), ), @@ -169,7 +173,7 @@ class PrescriptionDetailsPage extends StatelessWidget { SizedBox( height: 5, ), - Texts(' '), + Texts(prescriptionReport.remarks), ], ), ), diff --git a/lib/pages/medical/prescriptions/prescription_items_page.dart b/lib/pages/medical/prescriptions/prescription_items_page.dart index c84be7bd..297d8333 100644 --- a/lib/pages/medical/prescriptions/prescription_items_page.dart +++ b/lib/pages/medical/prescriptions/prescription_items_page.dart @@ -3,6 +3,7 @@ import 'package:diplomaticquarterapp/core/model/prescriptions/Prescriptions.dart import 'package:diplomaticquarterapp/core/viewModels/medical/prescriptions_view_model.dart'; import 'package:diplomaticquarterapp/pages/base/base_view.dart'; import 'package:diplomaticquarterapp/pages/medical/prescriptions/prescription_details_page.dart'; +import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; import 'package:diplomaticquarterapp/widgets/buttons/button.dart'; import 'package:diplomaticquarterapp/widgets/data_display/text.dart'; import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; @@ -19,10 +20,10 @@ class PrescriptionItemsPage extends StatelessWidget { Widget build(BuildContext context) { return BaseView( onModelReady: (model) => - model.getPrescriptionReport(dischargeNo: prescriptions.dischargeNo), + model.getPrescriptionReport(dischargeNo: prescriptions.dischargeNo,setupID:prescriptions.setupID,clinicID: prescriptions.clinicID,projectId: prescriptions.projectID), builder: (_, model, widget) => AppScaffold( isShowAppBar: true, - appBarTitle: 'Items', + appBarTitle: TranslationBase.of(context).prescriptions, baseViewModel: model, body: Container( height: MediaQuery.of(context).size.height * 0.8, @@ -62,8 +63,9 @@ class PrescriptionItemsPage extends StatelessWidget { child: Padding( padding: const EdgeInsets.all(8.0), child: Center( - child: Texts(model - .prescriptionReportList[index].itemDescription)), + child: Texts(model.prescriptionReportList[index].itemDescription.isNotEmpty? + model.prescriptionReportList[index].itemDescription :model + .prescriptionReportList[index].itemDescriptionN)), )), Icon( Icons.arrow_forward_ios, diff --git a/lib/pages/medical/prescriptions/prescriptions_page.dart b/lib/pages/medical/prescriptions/prescriptions_page.dart index e6e90d9e..6b852db9 100644 --- a/lib/pages/medical/prescriptions/prescriptions_page.dart +++ b/lib/pages/medical/prescriptions/prescriptions_page.dart @@ -86,8 +86,9 @@ class PrescriptionsPage extends StatelessWidget { child: DoctorCard( name: prescriptions.doctorName, profileUrl: prescriptions.doctorImageURL, - rat: prescriptions.doctorRate.toDouble(), + rat: prescriptions.actualDoctorRate.toDouble(), subName: prescriptions.name, + isInOutPatient: prescriptions.isInOutPatient, date: DateUtil.getMonthDayYearDateFormatted( prescriptions.dischargeDate), ), diff --git a/lib/widgets/data_display/medical/doctor_card.dart b/lib/widgets/data_display/medical/doctor_card.dart index b9143682..4fdaa1ab 100644 --- a/lib/widgets/data_display/medical/doctor_card.dart +++ b/lib/widgets/data_display/medical/doctor_card.dart @@ -15,8 +15,7 @@ class DoctorCard extends StatelessWidget { final String billNo; final Function onTap; final Function onEmailTap; - - final String isInOutPatientDescription; + final bool isInOutPatient; DoctorCard( {this.name, @@ -27,7 +26,7 @@ class DoctorCard extends StatelessWidget { this.billNo, this.onTap, this.onEmailTap, - this.isInOutPatientDescription}); + this.isInOutPatient}); @override Widget build(BuildContext context) { @@ -54,7 +53,7 @@ class DoctorCard extends StatelessWidget { width: 20, height: date == null ? 100 : 130, decoration: BoxDecoration( - color: Colors.red[900], + color: !isInOutPatient? Colors.red[900]: Theme.of(context).primaryColor, borderRadius: BorderRadius.only( topLeft: Radius.circular(8), bottomLeft: Radius.circular(8))), @@ -62,7 +61,7 @@ class DoctorCard extends StatelessWidget { quarterTurns: 3, child: Center( child: Text( - isInOutPatientDescription ?? "Calendar", + !isInOutPatient? 'In Patient'.toUpperCase():'OutPatient'.toUpperCase(), style: TextStyle(color: Colors.white), ), )), diff --git a/lib/widgets/others/StarRating.dart b/lib/widgets/others/StarRating.dart index f33ced32..2eaa7f91 100644 --- a/lib/widgets/others/StarRating.dart +++ b/lib/widgets/others/StarRating.dart @@ -9,7 +9,7 @@ class StarRating extends StatelessWidget { final int totalCount; final bool forceStars; - StarRating({Key key, this.totalAverage: 0.0, this.size: 16.0, this.totalCount, this.forceStars = false}) : super(key: key); + StarRating({Key key, this.totalAverage: 0.0, this.size: 16.0, this.totalCount=5, this.forceStars = false}) : super(key: key); @override Widget build(BuildContext context) { From 747cffacfc1bfe0c2d882b0b10b0172ce907dba0 Mon Sep 17 00:00:00 2001 From: Mohammad Aljmma Date: Thu, 5 Nov 2020 14:40:32 +0200 Subject: [PATCH 2/5] fix lab result --- lib/core/service/medical/prescriptions_service.dart | 3 +++ lib/pages/medical/labs/labs_home_page.dart | 2 +- lib/widgets/others/app_scaffold_widget.dart | 11 ++++++++++- 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/lib/core/service/medical/prescriptions_service.dart b/lib/core/service/medical/prescriptions_service.dart index f4a6c766..3359e994 100644 --- a/lib/core/service/medical/prescriptions_service.dart +++ b/lib/core/service/medical/prescriptions_service.dart @@ -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; diff --git a/lib/pages/medical/labs/labs_home_page.dart b/lib/pages/medical/labs/labs_home_page.dart index 995365d9..68dc180e 100644 --- a/lib/pages/medical/labs/labs_home_page.dart +++ b/lib/pages/medical/labs/labs_home_page.dart @@ -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}', diff --git a/lib/widgets/others/app_scaffold_widget.dart b/lib/widgets/others/app_scaffold_widget.dart index 5eb76c9f..616b0d9b 100644 --- a/lib/widgets/others/app_scaffold_widget.dart +++ b/lib/widgets/others/app_scaffold_widget.dart @@ -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: [ 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()), From f8e05fc447d7769caa8fd14d5b8e60b62139f309 Mon Sep 17 00:00:00 2001 From: Sultan Khan Date: Thu, 5 Nov 2020 15:46:01 +0300 Subject: [PATCH 3/5] regiter issue --- lib/config/localized_values.dart | 1 + .../components/DocAvailableAppointments.dart | 2 +- .../Covid-DriveThru/Covid-TimeSlots.dart | 7 +- lib/pages/login/register-info.dart | 205 ++++++++++++++++-- lib/uitl/translations_delegate_base.dart | 1 + lib/uitl/utils.dart | 6 + 6 files changed, 206 insertions(+), 16 deletions(-) diff --git a/lib/config/localized_values.dart b/lib/config/localized_values.dart index fbdf2ab5..e2ce3de5 100644 --- a/lib/config/localized_values.dart +++ b/lib/config/localized_values.dart @@ -668,4 +668,5 @@ const Map> localizedValues = { "en": "Drag point to change your age", "ar": "اسحب لتغيير عمرك" }, + "email": {"en": "Email", "ar": "البريد الالكتروني"} }; diff --git a/lib/pages/BookAppointment/components/DocAvailableAppointments.dart b/lib/pages/BookAppointment/components/DocAvailableAppointments.dart index 3e9ae0cd..aca0884f 100644 --- a/lib/pages/BookAppointment/components/DocAvailableAppointments.dart +++ b/lib/pages/BookAppointment/components/DocAvailableAppointments.dart @@ -235,7 +235,7 @@ class _DocAvailableAppointmentsState extends State return children; }, ), - onDaySelected: (date, events,format) { + onDaySelected: (date, events) { _onDaySelected(date, events); _animationController.forward(from: 0.0); }, diff --git a/lib/pages/Covid-DriveThru/Covid-TimeSlots.dart b/lib/pages/Covid-DriveThru/Covid-TimeSlots.dart index 9f2418fd..939198c3 100644 --- a/lib/pages/Covid-DriveThru/Covid-TimeSlots.dart +++ b/lib/pages/Covid-DriveThru/Covid-TimeSlots.dart @@ -348,8 +348,11 @@ class _CovidTimeSlotsState extends State return children; }, ), - onDaySelected: (date, event,formats) { - _onDaySelected(date, event,); + onDaySelected: (date, event) { + _onDaySelected( + date, + event, + ); _animationController.forward(from: 0.0); }, onVisibleDaysChanged: _onVisibleDaysChanged, diff --git a/lib/pages/login/register-info.dart b/lib/pages/login/register-info.dart index e94c1af6..2bbd1007 100644 --- a/lib/pages/login/register-info.dart +++ b/lib/pages/login/register-info.dart @@ -1,6 +1,8 @@ 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'; @@ -28,6 +30,19 @@ class _RegisterInfo extends State { RegisterInfoResponse registerInfo; bool isLoading; int page = 1; + final List locationList = [ + new Location(name: 'KSA', value: '1'), + new Location(name: 'Dubai', value: '2'), + ]; + var language; + var registerd_data; + final List languageList = [ + new Language(name: 'English', value: '2'), + new Language(name: 'Arabic', value: '1'), + ]; + var email =''; + + var location; @override void initState() { getRegisterInfo(); @@ -58,7 +73,7 @@ class _RegisterInfo extends State { crossAxisAlignment: CrossAxisAlignment.start, mainAxisAlignment: MainAxisAlignment.spaceEvenly, children: [ - AppText('National ID'), + AppText(TranslationBase.of(context).nationalID), Container( margin: EdgeInsets.only(bottom: 10), child: TextFields( @@ -69,7 +84,7 @@ class _RegisterInfo extends State { top: 20, bottom: 20, left: 10, right: 10), readOnly: true, )), - AppText('Name'), + AppText(TranslationBase.of(context).name), Container( margin: EdgeInsets.only(bottom: 10), child: TextFields( @@ -80,7 +95,7 @@ class _RegisterInfo extends State { top: 20, bottom: 20, left: 10, right: 10), readOnly: true, )), - AppText('Gender'), + AppText(TranslationBase.of(context).gender), Container( margin: EdgeInsets.only(bottom: 10), child: TextFields( @@ -93,7 +108,7 @@ class _RegisterInfo extends State { top: 20, bottom: 20, left: 10, right: 10), readOnly: true, )), - AppText('Nationality'), + AppText(TranslationBase.of(context).nationality), Container( margin: EdgeInsets.only(bottom: 10), child: TextFields( @@ -102,7 +117,7 @@ class _RegisterInfo extends State { top: 20, bottom: 20, left: 10, right: 10), readOnly: true, )), - AppText('Date of Birth'), + AppText(TranslationBase.of(context).dob), Container( margin: EdgeInsets.only(bottom: 10), child: TextFields( @@ -115,7 +130,72 @@ class _RegisterInfo extends State { ) : registerInfo != null && page == 2 ? Column( - children: [], + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + 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>( + (Language value) { + return DropdownMenuItem( + 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>( + (Location value) { + return DropdownMenuItem( + 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; + }, + padding: EdgeInsets.only( + top: 20, bottom: 20, left: 10, right: 10), + )), + ], ) : SizedBox(), Expanded( @@ -127,9 +207,14 @@ class _RegisterInfo extends State { children: [ 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 + ? Colors.grey + : Colors.black, )) ], ), @@ -140,16 +225,110 @@ class _RegisterInfo extends State { } nextPage() { - setState(() { - page++; - }); + if (page == 1) { + setState(() { + page++; + }); + } else { + registerNow(); + } + } + + registerNow() { + dynamic request = getTempUserRequest(); + request = RegisterUserRequest.fromJson(request); + this.authService.registerUser(request); } - registerNow() {} getRegisterInfo() async { - registerInfo = + var data = RegisterInfoResponse.fromJson(await sharedPref.getObject(NHIC_DATA)); - print(await sharedPref.getObject(NHIC_DATA)); + if (await sharedPref.getObject(REGISTER_DATA_FOR_LOGIIN) != null) { + var data2 = CheckPatientAuthenticationReq.fromJson( + await sharedPref.getObject(REGISTER_DATA_FOR_LOGIIN)); + + 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": "/Date(1522098000000)/", + "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}); +} diff --git a/lib/uitl/translations_delegate_base.dart b/lib/uitl/translations_delegate_base.dart index 3e0e67e0..1b9f6e22 100644 --- a/lib/uitl/translations_delegate_base.dart +++ b/lib/uitl/translations_delegate_base.dart @@ -722,6 +722,7 @@ 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]; } class TranslationBaseDelegate extends LocalizationsDelegate { diff --git a/lib/uitl/utils.dart b/lib/uitl/utils.dart index 33a1d072..0a7d6026 100644 --- a/lib/uitl/utils.dart +++ b/lib/uitl/utils.dart @@ -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); + } } From b9b5797cbc85fbe3bee137ba6673ac663262bf59 Mon Sep 17 00:00:00 2001 From: Sultan Khan Date: Thu, 5 Nov 2020 19:15:53 +0300 Subject: [PATCH 4/5] login issue fixed --- lib/pages/landing/landing_page.dart | 45 +++++++++++-------- lib/pages/login/confirm-login.dart | 2 +- .../authentication/auth_provider.dart | 2 +- 3 files changed, 29 insertions(+), 20 deletions(-) diff --git a/lib/pages/landing/landing_page.dart b/lib/pages/landing/landing_page.dart index bb3589d9..031ccdc3 100644 --- a/lib/pages/landing/landing_page.dart +++ b/lib/pages/landing/landing_page.dart @@ -52,7 +52,8 @@ class _LandingPageState extends State with WidgetsBindingObserver { ProjectViewModel projectProvider; ///inject the user data - AuthenticatedUserObject authenticatedUserObject = locator(); + AuthenticatedUserObject authenticatedUserObject = + locator(); final FirebaseMessaging _firebaseMessaging = FirebaseMessaging(); final authService = new AuthProvider(); @@ -134,21 +135,21 @@ class _LandingPageState extends State with WidgetsBindingObserver { }); _requestIOSPermissions(); pageController = PageController(keepPage: true); - // _firebaseMessaging.setAutoInitEnabled(true); - // - // if (Platform.isIOS) { - // _firebaseMessaging.requestNotificationPermissions(); - // } - // - // _firebaseMessaging.getToken().then((String token) { - // sharedPref.setString(PUSH_TOKEN, token); - // if (token != null) { - // checkUserStatus(token); - // } - // requestPermissions(); - // }).catchError((err) { - // print(err); - // }); + _firebaseMessaging.setAutoInitEnabled(true); + + if (Platform.isIOS) { + _firebaseMessaging.requestNotificationPermissions(); + } + + _firebaseMessaging.getToken().then((String token) { + sharedPref.setString(PUSH_TOKEN, token); + if (token != null) { + checkUserStatus(token); + } + requestPermissions(); + }).catchError((err) { + print(err); + }); //_firebase Background message handler // _firebaseMessaging.configure( @@ -345,7 +346,11 @@ class _LandingPageState extends State with WidgetsBindingObserver { headline6: TextStyle(color: Colors.white, fontWeight: FontWeight.bold), ), - title: Texts(getText(currentTab).toUpperCase(),bold: true,color: Colors.white,), + title: Texts( + getText(currentTab).toUpperCase(), + bold: true, + color: Colors.white, + ), leading: Builder( builder: (BuildContext context) { return IconButton( @@ -373,7 +378,11 @@ class _LandingPageState extends State with WidgetsBindingObserver { physics: NeverScrollableScrollPhysics(), controller: pageController, children: [ - HomePage(goToMyProfile: () {_changeCurrentTab(1);},), + HomePage( + goToMyProfile: () { + _changeCurrentTab(1); + }, + ), MedicalProfilePage(), BookingOptions(), Container(), diff --git a/lib/pages/login/confirm-login.dart b/lib/pages/login/confirm-login.dart index c06dd473..800939bb 100644 --- a/lib/pages/login/confirm-login.dart +++ b/lib/pages/login/confirm-login.dart @@ -523,7 +523,7 @@ class _ConfirmLogin extends State { checkIfUserAgreedBefore(CheckActivationCode result) { print(result); - if (result.isNeedUserAgreement) { + if (result.isNeedUserAgreement ==true) { //move to agreement page. } else { insertIMEI(); diff --git a/lib/services/authentication/auth_provider.dart b/lib/services/authentication/auth_provider.dart index 2142bc53..fcf1069c 100644 --- a/lib/services/authentication/auth_provider.dart +++ b/lib/services/authentication/auth_provider.dart @@ -111,7 +111,7 @@ class AuthProvider with ChangeNotifier { var imei = await sharedPref.getString(PUSH_TOKEN); // if (!request.) { - newRequest.iMEI = imei; + newRequest.iMEI =imei; //imei!=null ? imei : ''; newRequest.firstName = request.firstName + " " + request.lastName; newRequest.firstNameN = request.firstNameN + " " + request.lastNameN; newRequest.lastNameN = request.lastNameN ?? ""; From 0443a37886a5dc116ddf16806cf0d24e9aa81007 Mon Sep 17 00:00:00 2001 From: Sultan Khan Date: Sat, 7 Nov 2020 18:39:23 +0300 Subject: [PATCH 5/5] register page updated --- lib/config/localized_values.dart | 1 + lib/pages/login/register-info.dart | 49 +++++++++++++++++++++--- lib/uitl/translations_delegate_base.dart | 2 + 3 files changed, 46 insertions(+), 6 deletions(-) diff --git a/lib/config/localized_values.dart b/lib/config/localized_values.dart index 8bcff719..949c0629 100644 --- a/lib/config/localized_values.dart +++ b/lib/config/localized_values.dart @@ -683,4 +683,5 @@ const Map> localizedValues = { "Book": {"en": "Book", "ar": "احجز"}, "AppointmentLabel": {"en": "Appointment", "ar": "موعد"}, "BloodType": {"en": "Blood Type", "ar": "فصيلة الدم"}, + "marital-status": {"en": "Marital status", "ar": "الحالة الإجتماعية"} }; diff --git a/lib/pages/login/register-info.dart b/lib/pages/login/register-info.dart index a3240665..7aa95696 100644 --- a/lib/pages/login/register-info.dart +++ b/lib/pages/login/register-info.dart @@ -6,6 +6,7 @@ import 'package:diplomaticquarterapp/models/Authentication/register_user_requet. 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'; @@ -83,13 +84,29 @@ class _RegisterInfo extends State { top: 20, bottom: 20, left: 10, right: 10), readOnly: true, )), - AppText(TranslationBase.of(context).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(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, @@ -107,6 +124,15 @@ class _RegisterInfo extends State { top: 20, bottom: 20, left: 10, right: 10), readOnly: true, )), + 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), @@ -116,6 +142,15 @@ class _RegisterInfo extends State { top: 20, bottom: 20, left: 10, right: 10), readOnly: true, )), + 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), @@ -190,6 +225,7 @@ class _RegisterInfo extends State { child: TextFields( onChanged: (value) { this.email = value; + this.isValid(); }, padding: EdgeInsets.only( top: 20, bottom: 20, left: 10, right: 10), @@ -211,7 +247,7 @@ class _RegisterInfo extends State { : TranslationBase.of(context).register, () => {nextPage()}, textColor: Colors.white, - color: this.isValid() == false + color: this.isValid() == false && page == 2 ? Colors.grey : Colors.black, )) @@ -266,7 +302,8 @@ class _RegisterInfo extends State { "MiddleName": registerInfo.secondNameEn, "LastName": registerInfo.lastNameEn, "StrDateofBirth": registerInfo.dateOfBirth, - "DateofBirth": "/Date(1522098000000)/", + "DateofBirth": + DateUtil.convertISODateToJsonDate(registerInfo.dateOfBirth), "Gender": registerInfo.gender, "NationalityID": registerInfo.nationality, "DateofBirthN": registerInfo.dateOfBirth, diff --git a/lib/uitl/translations_delegate_base.dart b/lib/uitl/translations_delegate_base.dart index d763ed04..551cd8ff 100644 --- a/lib/uitl/translations_delegate_base.dart +++ b/lib/uitl/translations_delegate_base.dart @@ -736,6 +736,8 @@ class TranslationBase { String get loginToUseService => localizedValues['loginToUseService'][locale.languageCode]; + String get maritalStatus => + localizedValues['marital-status'][locale.languageCode]; } class TranslationBaseDelegate extends LocalizationsDelegate {