From f582eee991db82c2f12c9bf3b8a198ee7ea2838b Mon Sep 17 00:00:00 2001 From: Elham Rababah Date: Wed, 23 Sep 2020 09:39:51 +0300 Subject: [PATCH] make index page of add new referral as page controller --- lib/config/config.dart | 1 + .../e_referral_service.dart | 25 +++ .../e_referral_view_model.dart | 25 ++- .../get_all_cities_request_model.dart | 48 ++++++ .../get_all_cities_response_model.dart | 21 +++ .../new_e_referral_index_page.dart | 69 ++++++++ .../new_e_referral_step_one_page.dart} | 22 ++- .../new_e_referral_step_two_page.dart | 153 ++++++++++++------ .../dialogs/select_city_dialog.dart | 131 +++++++++++++++ .../e_referral_confirm_sms_dialog.dart | 14 +- .../E-Referral/e_referral_page.dart | 6 +- 11 files changed, 440 insertions(+), 75 deletions(-) create mode 100644 lib/models/AlHabibMedicalServices/EReferral/get_all_cities_request_model.dart create mode 100644 lib/models/AlHabibMedicalServices/EReferral/get_all_cities_response_model.dart create mode 100644 lib/pages/AlHabibMedicalService/E-Referral/New_E_Referral/new_e_referral_index_page.dart rename lib/pages/AlHabibMedicalService/E-Referral/{new_e_referral_page.dart => New_E_Referral/new_e_referral_step_one_page.dart} (93%) rename lib/pages/AlHabibMedicalService/E-Referral/{ => New_E_Referral}/new_e_referral_step_two_page.dart (64%) create mode 100644 lib/pages/AlHabibMedicalService/E-Referral/dialogs/select_city_dialog.dart rename lib/pages/AlHabibMedicalService/E-Referral/{dialogs => }/e_referral_confirm_sms_dialog.dart (97%) diff --git a/lib/config/config.dart b/lib/config/config.dart index 138d9482..ebb1f1cd 100644 --- a/lib/config/config.dart +++ b/lib/config/config.dart @@ -206,6 +206,7 @@ const CHECK_ACTIVATION_CODE_FOR_ADVANCE_PAYMENT = 'Services/Authentication.svc/R const GET_ALL_RELATIONSHIP_TYPES = "Services/Patients.svc/REST/GetAllRelationshipTypes"; const SEND_ACTIVATION_CODE_FOR_E_REFERRAL = 'Services/Authentication.svc/REST/SendActivationCodeForEReferral'; const CHECK_ACTIVATION_CODE_FOR_E_REFERRAL = 'Services/Authentication.svc/REST/CheckActivationCodeForEReferral'; +const GET_ALL_CITIES = 'services/Lists.svc/rest/GetAllCities'; const TIMER_MIN = 10; diff --git a/lib/core/service/all_habib_medical_services/e_referral_service.dart b/lib/core/service/all_habib_medical_services/e_referral_service.dart index 2645e307..8729f9be 100644 --- a/lib/core/service/all_habib_medical_services/e_referral_service.dart +++ b/lib/core/service/all_habib_medical_services/e_referral_service.dart @@ -1,6 +1,7 @@ import 'package:diplomaticquarterapp/config/config.dart'; import 'package:diplomaticquarterapp/core/service/base_service.dart'; import 'package:diplomaticquarterapp/models/AlHabibMedicalServices/EReferral/check_activation_code_for_e_referral_request_model.dart'; +import 'package:diplomaticquarterapp/models/AlHabibMedicalServices/EReferral/get_all_cities_response_model.dart'; import 'package:diplomaticquarterapp/models/AlHabibMedicalServices/EReferral/get_all_relationship_types_response_model.dart'; import 'package:diplomaticquarterapp/models/AlHabibMedicalServices/EReferral/send_activation_code_for_e_referral_request_model.dart'; @@ -8,8 +9,11 @@ class EReferralService extends BaseService { List _relationTypes = List(); List get relationTypes => _relationTypes; + List _allCities = List(); + List get allCities => _allCities; String _activationCode; + String _logInTokenID; String get activationCode => _activationCode; @@ -31,12 +35,30 @@ class EReferralService extends BaseService { }, body: {}); } + Future getAllCities() async { + await baseAppClient.post(GET_ALL_CITIES, + onSuccess: (dynamic response, int statusCode) { + _allCities.clear(); + response['ListCities'].forEach((city) { + _allCities + .add(GetAllCitiesResponseModel.fromJson(city)); + }); + }, onFailure: (String error, int statusCode) { + hasError = true; + super.error = error; + }, body: {}); + } + Future sendActivationCodeForEReferral( + SendActivationCodeForEReferralRequestModel sendActivationCodeForEReferralRequestModel) async { + hasError = false; await baseAppClient.post(SEND_ACTIVATION_CODE_FOR_E_REFERRAL, onSuccess: (dynamic response, int statusCode) { _activationCode = response["VerificationCode"]; + _logInTokenID = response["LogInTokenID"]; + }, onFailure: (String error, int statusCode) { hasError = true; super.error = error; @@ -46,6 +68,9 @@ class EReferralService extends BaseService { Future checkActivationCodeForEReferral( CheckActivationCodeForEReferralResponseModel checkActivationCodeForEReferralRequestModel) async { + checkActivationCodeForEReferralRequestModel.isDentalAllowedBackend = false; + checkActivationCodeForEReferralRequestModel.logInTokenID= _logInTokenID; + hasError =false; await baseAppClient.post(CHECK_ACTIVATION_CODE_FOR_E_REFERRAL, onSuccess: (dynamic response, int statusCode) { _isActivationCodeValid = true; diff --git a/lib/core/viewModels/all_habib_medical_services/e_referral_view_model.dart b/lib/core/viewModels/all_habib_medical_services/e_referral_view_model.dart index c87d979a..002fa28c 100644 --- a/lib/core/viewModels/all_habib_medical_services/e_referral_view_model.dart +++ b/lib/core/viewModels/all_habib_medical_services/e_referral_view_model.dart @@ -3,6 +3,7 @@ import 'dart:core'; import 'package:diplomaticquarterapp/core/enum/viewstate.dart'; import 'package:diplomaticquarterapp/core/service/all_habib_medical_services/e_referral_service.dart'; import 'package:diplomaticquarterapp/models/AlHabibMedicalServices/EReferral/check_activation_code_for_e_referral_request_model.dart'; +import 'package:diplomaticquarterapp/models/AlHabibMedicalServices/EReferral/get_all_cities_response_model.dart'; import 'package:diplomaticquarterapp/models/AlHabibMedicalServices/EReferral/get_all_relationship_types_response_model.dart'; import 'package:diplomaticquarterapp/models/AlHabibMedicalServices/EReferral/send_activation_code_for_e_referral_request_model.dart'; import 'package:diplomaticquarterapp/models/Appointments/DoctorListResponse.dart'; @@ -15,15 +16,29 @@ class EReferralViewModel extends BaseViewModel { List get relationTypes => _eReferralService.relationTypes; - + List get allCities => _eReferralService.allCities; + + + void getRelationTypes() async { setState(ViewState.Busy); await _eReferralService.getRelationTypes(); if (_eReferralService.hasError) { error = _eReferralService.error; setState(ViewState.Error); + } else{ + setState(ViewState.Idle); + } + } + void getAllCities() async { + setState(ViewState.Busy); + await _eReferralService.getAllCities(); + if (_eReferralService.hasError) { + error = _eReferralService.error; + setState(ViewState.Error); + } else{ + setState(ViewState.Idle); } - setState(ViewState.Idle); } void sendActivationCodeForEReferral(SendActivationCodeForEReferralRequestModel sendActivationCodeForEReferralRequestModel) async { @@ -32,8 +47,9 @@ class EReferralViewModel extends BaseViewModel { if (_eReferralService.hasError) { error = _eReferralService.error; setState(ViewState.ErrorLocal); + } else{ + setState(ViewState.Idle); } - setState(ViewState.Idle); } checkActivationCodeForEReferral(CheckActivationCodeForEReferralResponseModel checkActivationCodeForEReferralRequestModel) async { @@ -42,7 +58,8 @@ class EReferralViewModel extends BaseViewModel { if (_eReferralService.hasError) { error = _eReferralService.error; setState(ViewState.ErrorLocal); + } else{ + setState(ViewState.Idle); } - setState(ViewState.Idle); } } diff --git a/lib/models/AlHabibMedicalServices/EReferral/get_all_cities_request_model.dart b/lib/models/AlHabibMedicalServices/EReferral/get_all_cities_request_model.dart new file mode 100644 index 00000000..dd46a48b --- /dev/null +++ b/lib/models/AlHabibMedicalServices/EReferral/get_all_cities_request_model.dart @@ -0,0 +1,48 @@ +class GetAllCitiesRequestModel { + double versionID; + int channel; + int languageID; + String iPAdress; + String generalid; + int patientOutSA; + Null sessionID; + bool isDentalAllowedBackend; + int deviceTypeID; + + GetAllCitiesRequestModel( + {this.versionID, + this.channel, + this.languageID, + this.iPAdress, + this.generalid, + this.patientOutSA, + this.sessionID, + this.isDentalAllowedBackend, + this.deviceTypeID}); + + GetAllCitiesRequestModel.fromJson(Map json) { + versionID = json['VersionID']; + channel = json['Channel']; + languageID = json['LanguageID']; + iPAdress = json['IPAdress']; + generalid = json['generalid']; + patientOutSA = json['PatientOutSA']; + sessionID = json['SessionID']; + isDentalAllowedBackend = json['isDentalAllowedBackend']; + deviceTypeID = json['DeviceTypeID']; + } + + Map toJson() { + final Map data = new Map(); + data['VersionID'] = this.versionID; + data['Channel'] = this.channel; + data['LanguageID'] = this.languageID; + data['IPAdress'] = this.iPAdress; + data['generalid'] = this.generalid; + data['PatientOutSA'] = this.patientOutSA; + data['SessionID'] = this.sessionID; + data['isDentalAllowedBackend'] = this.isDentalAllowedBackend; + data['DeviceTypeID'] = this.deviceTypeID; + return data; + } +} diff --git a/lib/models/AlHabibMedicalServices/EReferral/get_all_cities_response_model.dart b/lib/models/AlHabibMedicalServices/EReferral/get_all_cities_response_model.dart new file mode 100644 index 00000000..224cb84d --- /dev/null +++ b/lib/models/AlHabibMedicalServices/EReferral/get_all_cities_response_model.dart @@ -0,0 +1,21 @@ +class GetAllCitiesResponseModel { + int iD; + String description; + String descriptionN; + + GetAllCitiesResponseModel({this.iD, this.description, this.descriptionN}); + + GetAllCitiesResponseModel.fromJson(Map json) { + iD = json['ID']; + description = json['Description']; + descriptionN = json['DescriptionN']; + } + + Map toJson() { + final Map data = new Map(); + data['ID'] = this.iD; + data['Description'] = this.description; + data['DescriptionN'] = this.descriptionN; + return data; + } +} diff --git a/lib/pages/AlHabibMedicalService/E-Referral/New_E_Referral/new_e_referral_index_page.dart b/lib/pages/AlHabibMedicalService/E-Referral/New_E_Referral/new_e_referral_index_page.dart new file mode 100644 index 00000000..2863e184 --- /dev/null +++ b/lib/pages/AlHabibMedicalService/E-Referral/New_E_Referral/new_e_referral_index_page.dart @@ -0,0 +1,69 @@ + + +import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/E-Referral/New_E_Referral/new_e_referral_step_one_page.dart'; +import 'package:flutter/material.dart'; + +import 'new_e_referral_step_two_page.dart'; + +class StartIndexForNewEReferral extends StatefulWidget { + + StartIndexForNewEReferral(); + + @override + _StartIndexForNewEReferralState createState() => + _StartIndexForNewEReferralState(); +} + +class _StartIndexForNewEReferralState extends State + with TickerProviderStateMixin { + PageController _controller; + int _currentIndex = 1; + int pageSelected = 2; + List attachments; + + @override + void initState() { + super.initState(); + _controller = new PageController(); + } + + @override + void dispose() { + super.dispose(); + } + + changePageViewIndex(pageIndex) { + _controller.jumpToPage(pageIndex); + } + + @override + Widget build(BuildContext context) { + return Scaffold( + body: SafeArea( + child: SingleChildScrollView( + child: Container( + height: MediaQuery.of(context).size.height, + child: PageView( + physics: NeverScrollableScrollPhysics(), + controller: _controller, + onPageChanged: (index) { + setState(() { + _currentIndex = index; + }); + }, + scrollDirection: Axis.horizontal, + children: [ + NewEReferralStepOnePage( + changePageViewIndex: changePageViewIndex, + ), + NewEReferralStepTowPage( + changePageViewIndex: changePageViewIndex, + ), + ], + ), + ), + ), + ), + ); + } +} diff --git a/lib/pages/AlHabibMedicalService/E-Referral/new_e_referral_page.dart b/lib/pages/AlHabibMedicalService/E-Referral/New_E_Referral/new_e_referral_step_one_page.dart similarity index 93% rename from lib/pages/AlHabibMedicalService/E-Referral/new_e_referral_page.dart rename to lib/pages/AlHabibMedicalService/E-Referral/New_E_Referral/new_e_referral_step_one_page.dart index 35808776..b77228ac 100644 --- a/lib/pages/AlHabibMedicalService/E-Referral/new_e_referral_page.dart +++ b/lib/pages/AlHabibMedicalService/E-Referral/New_E_Referral/new_e_referral_step_one_page.dart @@ -5,7 +5,7 @@ import 'package:diplomaticquarterapp/models/AlHabibMedicalServices/EReferral/get import 'package:diplomaticquarterapp/models/AlHabibMedicalServices/EReferral/send_activation_code_for_e_referral_request_model.dart'; import 'package:diplomaticquarterapp/models/Authentication/authenticated_user.dart'; import 'package:diplomaticquarterapp/models/FamilyFiles/GetAllSharedRecordByStatusResponse.dart'; -import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/E-Referral/dialogs/e_referral_confirm_sms_dialog.dart'; +import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/E-Referral/e_referral_confirm_sms_dialog.dart'; import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/E-Referral/dialogs/select_country_ingo_Dialog.dart'; import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/E-Referral/dialogs/select_relation_type_dialog.dart'; import 'package:diplomaticquarterapp/pages/base/base_view.dart'; @@ -18,21 +18,20 @@ import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; -enum BeneficiaryType { MyAccount, MyFamilyFiles, OtherAccount, NON } -class NewEReferralPage extends StatefulWidget { +class NewEReferralStepOnePage extends StatefulWidget { final EReferralViewModel eReferralViewModel; + final Function changePageViewIndex; - const NewEReferralPage({Key key, this.eReferralViewModel}) : super(key: key); + const NewEReferralStepOnePage({Key key, this.eReferralViewModel, this.changePageViewIndex}) : super(key: key); @override - _NewEReferralPageState createState() => _NewEReferralPageState(); + _NewEReferralStepOnePageState createState() => _NewEReferralStepOnePageState(); } -class _NewEReferralPageState extends State { +class _NewEReferralStepOnePageState extends State { TextEditingController _nameTextController = TextEditingController(); TextEditingController _mobileTextController = TextEditingController(); - BeneficiaryType beneficiaryType = BeneficiaryType.NON; GetAllRelationshipTypeResponseModel _selectedRelation; String email; AuthenticatedUser authenticatedUser; @@ -65,16 +64,15 @@ class _NewEReferralPageState extends State { barrierDismissible: false, child: EReferralConfirmSMSDialog( phoneNumber: _selectedCountry['code']+_mobileTextController.text, + onSucces: ()=> + widget.changePageViewIndex(1) + ), ).then((value) { print("dialog dismissed"); print(value); if (value != null && value) { - // AppoitmentAllHistoryResultList appo = - // new AppoitmentAllHistoryResultList(); - // appo.projectID = patientInfoAndMobileNumber.projectID; - // openPayment(selectedPaymentMethod, authenticatedUser, - // double.parse(advanceModel.amount), appo); + } }); } diff --git a/lib/pages/AlHabibMedicalService/E-Referral/new_e_referral_step_two_page.dart b/lib/pages/AlHabibMedicalService/E-Referral/New_E_Referral/new_e_referral_step_two_page.dart similarity index 64% rename from lib/pages/AlHabibMedicalService/E-Referral/new_e_referral_step_two_page.dart rename to lib/pages/AlHabibMedicalService/E-Referral/New_E_Referral/new_e_referral_step_two_page.dart index 0cddb3ee..fe7b489c 100644 --- a/lib/pages/AlHabibMedicalService/E-Referral/new_e_referral_step_two_page.dart +++ b/lib/pages/AlHabibMedicalService/E-Referral/New_E_Referral/new_e_referral_step_two_page.dart @@ -1,29 +1,35 @@ import 'package:diplomaticquarterapp/core/enum/viewstate.dart'; import 'package:diplomaticquarterapp/core/model/my_balance/AdvanceModel.dart'; import 'package:diplomaticquarterapp/core/viewModels/all_habib_medical_services/e_referral_view_model.dart'; +import 'package:diplomaticquarterapp/models/AlHabibMedicalServices/EReferral/get_all_cities_request_model.dart'; +import 'package:diplomaticquarterapp/models/AlHabibMedicalServices/EReferral/get_all_cities_response_model.dart'; import 'package:diplomaticquarterapp/models/AlHabibMedicalServices/EReferral/get_all_relationship_types_response_model.dart'; import 'package:diplomaticquarterapp/models/AlHabibMedicalServices/EReferral/send_activation_code_for_e_referral_request_model.dart'; import 'package:diplomaticquarterapp/models/Authentication/authenticated_user.dart'; import 'package:diplomaticquarterapp/models/FamilyFiles/GetAllSharedRecordByStatusResponse.dart'; -import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/E-Referral/dialogs/e_referral_confirm_sms_dialog.dart'; +import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/E-Referral/e_referral_confirm_sms_dialog.dart'; import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/E-Referral/dialogs/select_country_ingo_Dialog.dart'; import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/E-Referral/dialogs/select_relation_type_dialog.dart'; import 'package:diplomaticquarterapp/pages/base/base_view.dart'; import 'package:diplomaticquarterapp/pages/medical/balance/new_text_Field.dart'; import 'package:diplomaticquarterapp/uitl/app_shared_preferences.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; +import 'package:diplomaticquarterapp/widgets/bottom_options/BottomSheet.dart'; import 'package:diplomaticquarterapp/widgets/buttons/secondary_button.dart'; import 'package:diplomaticquarterapp/widgets/data_display/text.dart'; import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; +import 'package:font_awesome_flutter/font_awesome_flutter.dart'; + +import '../dialogs/select_city_dialog.dart'; -enum BeneficiaryType { MyAccount, MyFamilyFiles, OtherAccount, NON } class NewEReferralStepTowPage extends StatefulWidget { final EReferralViewModel eReferralViewModel; + final Function changePageViewIndex; - const NewEReferralStepTowPage({Key key, this.eReferralViewModel}) : super(key: key); + const NewEReferralStepTowPage({Key key, this.eReferralViewModel, this.changePageViewIndex}) : super(key: key); @override _NewEReferralStepTowPageState createState() => _NewEReferralStepTowPageState(); @@ -32,12 +38,9 @@ class NewEReferralStepTowPage extends StatefulWidget { class _NewEReferralStepTowPageState extends State { TextEditingController _nameTextController = TextEditingController(); TextEditingController _mobileTextController = TextEditingController(); - BeneficiaryType beneficiaryType = BeneficiaryType.NON; - GetAllRelationshipTypeResponseModel _selectedRelation; - String email; - AuthenticatedUser authenticatedUser; + GetAllCitiesResponseModel _selectedCity ; GetAllSharedRecordsByStatusList selectedPatientFamily; - AdvanceModel advanceModel = AdvanceModel(); + List images = []; // todo create a model for Country // todo use country from the json @@ -59,27 +62,8 @@ class _NewEReferralStepTowPageState extends State { @override Widget build(BuildContext context) { - void showSMSDialog() { - showDialog( - context: context, - barrierDismissible: false, - child: EReferralConfirmSMSDialog( - phoneNumber: _selectedCountry['code']+_mobileTextController.text, - ), - ).then((value) { - print("dialog dismissed"); - print(value); - if (value != null && value) { - // AppoitmentAllHistoryResultList appo = - // new AppoitmentAllHistoryResultList(); - // appo.projectID = patientInfoAndMobileNumber.projectID; - // openPayment(selectedPaymentMethod, authenticatedUser, - // double.parse(advanceModel.amount), appo); - } - }); - } return BaseView( - onModelReady: (model) => model.getRelationTypes(), + onModelReady: (model) => model.getAllCities(), builder: (_, model, widget) => AppScaffold( isShowAppBar: false, body: SingleChildScrollView( @@ -98,7 +82,7 @@ class _NewEReferralStepTowPageState extends State { Center( child: Texts( // TranslationBase.of(context).advancePaymentLabel, - "Steeeepppppppppp 2", + "Patient information", textAlign: TextAlign.center, ), ), @@ -106,7 +90,14 @@ class _NewEReferralStepTowPageState extends State { height: 12, ), NewTextFields( - hintText: "Enter Referral Requester Name*", + hintText: "Enter Identification Number", + controller: _nameTextController, + ), + SizedBox( + height: 12, + ), + NewTextFields( + hintText: "Enter Patient Name", controller: _nameTextController, ), SizedBox( @@ -145,7 +136,7 @@ class _NewEReferralStepTowPageState extends State { Center( child: Texts( // TranslationBase.of(context).advancePaymentLabel, - "Requester Relationship", + "Where the patient located", textAlign: TextAlign.center, ), ), @@ -153,8 +144,8 @@ class _NewEReferralStepTowPageState extends State { height: 12, ), InkWell( - onTap: () => confirmSelectRelationTypeDialog( - model.relationTypes), + onTap: () => confirmSelectCityDialog( + model.allCities), child: Container( padding: EdgeInsets.all(12), width: double.infinity, @@ -174,6 +165,73 @@ class _NewEReferralStepTowPageState extends State { SizedBox( height: 12, ), + + InkWell( + onTap: () { + ImageOptions.showImageOptions(context, (String image) { + setState(() { + images.add(image); + }); + }); + }, + child: Container( + margin: EdgeInsets.only(left: 10, right: 10, top: 15), + height: 50, + decoration: BoxDecoration( + border: Border.all(color: Colors.grey), + borderRadius: BorderRadius.circular(7), + color: Colors.white, + shape: BoxShape.rectangle, + ), + child: Center( + child: Row( + crossAxisAlignment: CrossAxisAlignment.center, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Icon(Icons.attach_file), + Texts( + 'selected attachment', + variant: 'bodyText', + textAlign: TextAlign.center, + ), + ], + ), + ), + ), + ), + ...List.generate( + images.length, + (index) => Container( + margin: EdgeInsets.all(10), + padding: EdgeInsets.all(8.0), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Row( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Icon(FontAwesomeIcons.paperclip), + SizedBox( + width: 8, + ), + Texts( + 'image ${index + 1}.png', + ), + ], + ), + InkWell( + onTap: () { + setState(() { + images.remove(images[index]); + }); + }, + child: Icon( + FontAwesomeIcons.trashAlt, + color: Colors.red[300], + )) + ], + ), + )), SizedBox( height: 12, ), @@ -194,19 +252,12 @@ class _NewEReferralStepTowPageState extends State { textColor: Colors.white, label: "Next", onTap: () async { - SendActivationCodeForEReferralRequestModel sendActivationCodeForEReferralRequestModel = - SendActivationCodeForEReferralRequestModel( - zipCode: _selectedCountry['code'], - patientMobileNumber: int.parse( - _mobileTextController.text),); - await model.sendActivationCodeForEReferral(sendActivationCodeForEReferralRequestModel); - - showSMSDialog(); + print(images.toString()); }, loading: model.state == ViewState.BusyLocal, disabled: _nameTextController.text.isEmpty || - _selectedRelation == null || + _selectedCity == null || _mobileTextController.text.isEmpty, ), ))); @@ -214,16 +265,16 @@ class _NewEReferralStepTowPageState extends State { } - void confirmSelectRelationTypeDialog( - List relations) { + void confirmSelectCityDialog( + List cities) { showDialog( context: context, - child: SelectRelationTypeDialog( - relationTypes: relations, - selectedRelation: _selectedRelation, + child: SelectCityDialog( + cities: cities, + selectedCity: _selectedCity, onValueSelected: (value) { setState(() { - _selectedRelation = value; + _selectedCity = value; }); }, ), @@ -245,8 +296,8 @@ class _NewEReferralStepTowPageState extends State { } String getRelationName() { - if (_selectedRelation != null) - return _selectedRelation.text; + if (_selectedCity != null) + return _selectedCity.description; else return "Select Relationship" /*TranslationBase.of(context).selectHospital*/; } @@ -297,7 +348,7 @@ class MobileNumberTextFiled extends StatelessWidget { controller: controller, keyboardType: TextInputType.phone, decoration: InputDecoration( - border: InputBorder.none, hintText: '5xxxxxxxx'), + border: InputBorder.none, hintText: 'Mobile No'), ), ), ) diff --git a/lib/pages/AlHabibMedicalService/E-Referral/dialogs/select_city_dialog.dart b/lib/pages/AlHabibMedicalService/E-Referral/dialogs/select_city_dialog.dart new file mode 100644 index 00000000..88ed8992 --- /dev/null +++ b/lib/pages/AlHabibMedicalService/E-Referral/dialogs/select_city_dialog.dart @@ -0,0 +1,131 @@ +import 'package:diplomaticquarterapp/core/model/hospitals/hospitals_model.dart'; +import 'package:diplomaticquarterapp/models/AlHabibMedicalServices/EReferral/get_all_cities_response_model.dart'; +import 'package:diplomaticquarterapp/models/AlHabibMedicalServices/EReferral/get_all_relationship_types_response_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'; + +// ignore: must_be_immutable +class SelectCityDialog extends StatefulWidget { + final List cities; + final Function(GetAllCitiesResponseModel) onValueSelected; + GetAllCitiesResponseModel selectedCity; + + SelectCityDialog( + {Key key, this.cities, this.onValueSelected, this.selectedCity}); + + @override + _SelectCityDialogState createState() => _SelectCityDialogState(); +} + +class _SelectCityDialogState extends State { + @override + void initState() { + super.initState(); + widget.selectedCity = widget.selectedCity ?? widget.cities[0]; + } + + @override + Widget build(BuildContext context) { + return SimpleDialog( + children: [ + Column( + children: [ + Divider(), + ...List.generate( + widget.cities.length, + (index) => Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + SizedBox( + height: 2, + ), + Row( + children: [ + Expanded( + flex: 1, + child: InkWell( + onTap: () { + setState(() { + widget.selectedCity = widget.cities[index]; + }); + }, + child: ListTile( + title: Text(widget.cities[index].description), + leading: Radio( + value: widget.cities[index], + groupValue: widget.selectedCity, + activeColor: Colors.red[800], + onChanged: (value) { + setState(() { + widget.selectedCity = value; + }); + }, + ), + ), + ), + ) + ], + ), + SizedBox( + height: 5.0, + ), + ], + ), + ), + SizedBox( + height: 5.0, + ), + Row( + // mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Expanded( + flex: 1, + child: InkWell( + onTap: () { + Navigator.pop(context); + }, + child: Padding( + padding: const EdgeInsets.all(8.0), + child: Container( + child: Center( + child: Texts( + TranslationBase.of(context).cancel.toUpperCase(), + color: Colors.red, + ), + ), + ), + ), + ), + ), + Container( + width: 1, + height: 30, + color: Colors.grey[500], + ), + Expanded( + flex: 1, + child: InkWell( + onTap: () { + widget.onValueSelected(widget.selectedCity); + Navigator.pop(context); + }, + child: Padding( + padding: const EdgeInsets.all(8.0), + child: Center( + child: Texts( + TranslationBase.of(context).ok, + fontWeight: FontWeight.w400, + )), + ), + ), + ), + ], + ) + ], + ) + ], + ); + } +} diff --git a/lib/pages/AlHabibMedicalService/E-Referral/dialogs/e_referral_confirm_sms_dialog.dart b/lib/pages/AlHabibMedicalService/E-Referral/e_referral_confirm_sms_dialog.dart similarity index 97% rename from lib/pages/AlHabibMedicalService/E-Referral/dialogs/e_referral_confirm_sms_dialog.dart rename to lib/pages/AlHabibMedicalService/E-Referral/e_referral_confirm_sms_dialog.dart index 91d7f08d..b7719f8c 100644 --- a/lib/pages/AlHabibMedicalService/E-Referral/dialogs/e_referral_confirm_sms_dialog.dart +++ b/lib/pages/AlHabibMedicalService/E-Referral/e_referral_confirm_sms_dialog.dart @@ -8,7 +8,7 @@ import 'package:diplomaticquarterapp/core/model/my_balance/patient_info_and_mobi import 'package:diplomaticquarterapp/core/viewModels/all_habib_medical_services/e_referral_view_model.dart'; import 'package:diplomaticquarterapp/core/viewModels/medical/my_balance_view_model.dart'; import 'package:diplomaticquarterapp/models/AlHabibMedicalServices/EReferral/check_activation_code_for_e_referral_request_model.dart'; -import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/E-Referral/new_e_referral_step_two_page.dart'; +import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/E-Referral/New_E_Referral/new_e_referral_step_two_page.dart'; import 'package:diplomaticquarterapp/pages/base/base_view.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; import 'package:diplomaticquarterapp/uitl/utils.dart'; @@ -19,8 +19,11 @@ import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:smart_progress_bar/smart_progress_bar.dart'; +import 'New_E_Referral/new_e_referral_index_page.dart'; + class EReferralConfirmSMSDialog extends StatefulWidget { final String phoneNumber; + final Function onSucces; // final AdvanceModel advanceModel; // final PatientInfoAndMobileNumber patientInfoAndMobileNumber; // final String selectedPaymentMethod; @@ -28,6 +31,7 @@ class EReferralConfirmSMSDialog extends StatefulWidget { const EReferralConfirmSMSDialog( {Key key, this.phoneNumber, + this.onSucces // this.advanceModel, // this.selectedPaymentMethod, // this.patientInfoAndMobileNumber @@ -341,13 +345,13 @@ class _EReferralConfirmSMSDialogState extends State { // ToDo call service - CheckActivationCodeForEReferralResponseModel checkActivationCodeForEReferralRequestModel= new CheckActivationCodeForEReferralResponseModel(); + CheckActivationCodeForEReferralResponseModel checkActivationCodeForEReferralRequestModel= new CheckActivationCodeForEReferralResponseModel(activationCode: activationCode); await model.checkActivationCodeForEReferral(checkActivationCodeForEReferralRequestModel); if(model.state == ViewState.ErrorLocal) { - Utils.showErrorToast(model.error); + // Utils.showErrorToast(model.error); } else { - - Navigator.push(context, FadePage(page: NewEReferralStepTowPage())); + widget.onSucces(); + // Navigator.push(context, FadePage(page: StartIndexForAddProduct())); // Navigate to new page } } diff --git a/lib/pages/AlHabibMedicalService/E-Referral/e_referral_page.dart b/lib/pages/AlHabibMedicalService/E-Referral/e_referral_page.dart index ceeafd2c..9f836860 100644 --- a/lib/pages/AlHabibMedicalService/E-Referral/e_referral_page.dart +++ b/lib/pages/AlHabibMedicalService/E-Referral/e_referral_page.dart @@ -2,7 +2,8 @@ import 'dart:ui'; import 'package:diplomaticquarterapp/core/viewModels/all_habib_medical_services/e_referral_view_model.dart'; import 'package:diplomaticquarterapp/core/viewModels/medical/prescriptions_view_model.dart'; -import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/E-Referral/new_e_referral_page.dart'; +import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/E-Referral/New_E_Referral/new_e_referral_index_page.dart'; +import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/E-Referral/New_E_Referral/new_e_referral_step_one_page.dart'; import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/E-Referral/search_for_referrals_page.dart'; import 'package:diplomaticquarterapp/pages/base/base_view.dart'; import 'package:diplomaticquarterapp/pages/medical/prescriptions/prescriptions_history_page.dart'; @@ -111,8 +112,7 @@ class _EReferralPageState extends State physics: BouncingScrollPhysics(), controller: _tabController, children: [ - NewEReferralPage( - eReferralViewModel: model, + StartIndexForNewEReferral( ), SearchForReferralsPage( )