diff --git a/lib/config/localized_values.dart b/lib/config/localized_values.dart index f4357743..c92f0a45 100644 --- a/lib/config/localized_values.dart +++ b/lib/config/localized_values.dart @@ -1592,4 +1592,12 @@ const Map localizedValues = { "invoice-list": {"en": "Invoices List", "ar": "فائمة الفواتير"}, "thisItemIsNotAvailable": {"en": "This item is not available", "ar": "هذا العنصر غير متوفر"}, "beforeAfterImages": {"en": "Before After Images", "ar": "قبل بعد الصور"}, + "clinic-accept-livecare": { + "en": "No need to wait or visit You can now get medical consultation via Video call (LiveCare service) in The name of the clinic clinic and the doctor will contact you immediately", + "ar": "لا داعي للانتظار او الحضور يمكنك الان الحصول على الاستشارة عن طريق مكالمة الفيديو ( خدمة لايف كير) في العيادة وسوف يقوم الطبيب بالتواصل معك فورا" + }, + "livecareModal-top": { + "en": "This Clinic is Accepting livecare services", + "ar": "هذه العيادة تقدم خدمة لايف كير" + }, }; diff --git a/lib/pages/BookAppointment/components/LiveCareBookAppointment.dart b/lib/pages/BookAppointment/components/LiveCareBookAppointment.dart new file mode 100644 index 00000000..4f64aa58 --- /dev/null +++ b/lib/pages/BookAppointment/components/LiveCareBookAppointment.dart @@ -0,0 +1,52 @@ +import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; +import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; +import 'package:flutter/material.dart'; + +class LiveCareBookAppointment extends StatefulWidget { + @override + _LiveCareBookAppointmentState createState() => + _LiveCareBookAppointmentState(); +} + +class _LiveCareBookAppointmentState extends State { + @override + Widget build(BuildContext context) { + return AppScaffold( + appBarTitle: TranslationBase.of(context).bookAppo, + isShowAppBar: true, + isShowDecPage: false, + body: SingleChildScrollView( + child: Container( + margin: EdgeInsets.all(10.0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Container( + margin: EdgeInsets.all(5.0), + child: Text(TranslationBase.of(context).clinicAcceptLivecare, + textAlign: TextAlign.center, + style: TextStyle( + color: Colors.black, + fontSize: 16.0, + letterSpacing: 0.5)), + ), + Container( + margin: EdgeInsets.all(15.0), + padding: EdgeInsets.fromLTRB(20.0, 10.0, 20.0, 10.0), + decoration: BoxDecoration( + color: Colors.green, + borderRadius: BorderRadius.all(Radius.circular(8.0))), + child: Text(TranslationBase.of(context).livecareModalTop, + textAlign: TextAlign.center, + style: TextStyle( + color: Colors.white, + fontSize: 16.0, + fontWeight: FontWeight.w600, + letterSpacing: 0.5)), + ), + ], + ), + ), + )); + } +} diff --git a/lib/pages/BookAppointment/components/SearchByClinic.dart b/lib/pages/BookAppointment/components/SearchByClinic.dart index 63c5e8e1..1b6172b0 100644 --- a/lib/pages/BookAppointment/components/SearchByClinic.dart +++ b/lib/pages/BookAppointment/components/SearchByClinic.dart @@ -3,10 +3,12 @@ import "dart:collection"; import 'package:diplomaticquarterapp/core/model/hospitals/hospitals_model.dart'; import 'package:diplomaticquarterapp/models/Appointments/DoctorListResponse.dart'; import 'package:diplomaticquarterapp/models/Appointments/SearchInfoModel.dart'; +import 'package:diplomaticquarterapp/models/Authentication/authenticated_user.dart'; import 'package:diplomaticquarterapp/models/Clinics/ClinicListResponse.dart'; import 'package:diplomaticquarterapp/pages/BookAppointment/DentalComplaints.dart'; import 'package:diplomaticquarterapp/pages/BookAppointment/SearchResults.dart'; import 'package:diplomaticquarterapp/services/appointment_services/GetDoctorsList.dart'; +import 'package:diplomaticquarterapp/services/authentication/auth_provider.dart'; import 'package:diplomaticquarterapp/services/clinic_services/get_clinic_service.dart'; import 'package:diplomaticquarterapp/uitl/app_toast.dart'; import 'package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.dart'; @@ -14,6 +16,9 @@ import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; import 'package:diplomaticquarterapp/widgets/card/rounded_container.dart'; import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart'; import 'package:flutter/material.dart'; +import 'package:flutter_svg/flutter_svg.dart'; + +import 'LiveCareBookAppointment.dart'; class SearchByClinic extends StatefulWidget { final List clnicIds; @@ -36,6 +41,11 @@ class _SearchByClinicState extends State { bool isLoaded = false; bool isProjectLoaded = false; + ListClinicCentralized selectedClinic; + + AuthenticatedUser authUser = new AuthenticatedUser(); + AuthProvider authProvider = new AuthProvider(); + @override void initState() { WidgetsBinding.instance.addPostFrameCallback((_) => getClinicsList()); @@ -112,12 +122,30 @@ class _SearchByClinicState extends State { value: dropdownValue, items: clinicsList.map((item) { return new DropdownMenuItem( - value: item.clinicID.toString(), - child: new Text(item.clinicDescription), + value: item.clinicID.toString() + + "-" + + item.isLiveCareClinicAndOnline.toString() + + "-" + + item.liveCareClinicID.toString() + + "-" + + item.liveCareServiceID.toString(), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text(item.clinicDescription), + item.isLiveCareClinicAndOnline + ? SvgPicture.asset( + 'assets/images/new-design/video_icon_green_right.svg', + height: 15, + width: 15, + fit: BoxFit.cover) + : Container(), + ]), ); }).toList(), onChanged: (newValue) { setState(() { + print(newValue); dropdownValue = newValue; if (!isDentalSelectedAndSupported() && !nearestAppo) { projectDropdownValue = ""; @@ -224,6 +252,17 @@ class _SearchByClinicState extends State { GifLoaderDialogUtils.hideDialog(context); navigateToDentalComplaints(context, searchInfo); + } else if (dropdownValue.split("-")[1] == "true" + // && + // authProvider.isLogin && + // authUser.patientType == 1 + ) { + Navigator.push( + context, + FadePage( + page: LiveCareBookAppointment(), + ), + ); } else { List doctorsList = []; List arr = []; @@ -236,7 +275,7 @@ class _SearchByClinicState extends State { DoctorsListService service = new DoctorsListService(); service .getDoctorsList( - int.parse(dropdownValue), + int.parse(dropdownValue.split("-")[0]), projectDropdownValue != "" ? int.parse(projectDropdownValue) : 0, nearestAppo, context) diff --git a/lib/services/appointment_services/GetDoctorsList.dart b/lib/services/appointment_services/GetDoctorsList.dart index b97714ce..28b69460 100644 --- a/lib/services/appointment_services/GetDoctorsList.dart +++ b/lib/services/appointment_services/GetDoctorsList.dart @@ -53,7 +53,7 @@ class DoctorsListService extends BaseService { "VersionID": req.VersionID, "Channel": req.Channel, "generalid": 'Cs2020@2016\$2958', - "PatientOutSA": authUser.outSA, + "PatientOutSA": authProvider.isLogin ? authUser.outSA : 0, "TokenID": "", "DeviceTypeID": req.DeviceTypeID, "SessionID": "YckwoXhUmWBsnHKEKig", diff --git a/lib/uitl/translations_delegate_base.dart b/lib/uitl/translations_delegate_base.dart index 53e98f71..c5947431 100644 --- a/lib/uitl/translations_delegate_base.dart +++ b/lib/uitl/translations_delegate_base.dart @@ -1200,6 +1200,12 @@ class TranslationBase { String get myInvoice => localizedValues["my-invoice"][locale.languageCode]; String get invoicesList => localizedValues["invoice-list"][locale.languageCode]; + + String get clinicAcceptLivecare => + localizedValues["clinic-accept-livecare"][locale.languageCode]; + + String get livecareModalTop => + localizedValues["livecareModal-top"][locale.languageCode]; } class TranslationBaseDelegate extends LocalizationsDelegate {