Services list page implemented

master
haroon amjad 2 months ago
parent d83c1bb2c9
commit f71353ebb8

@ -148,6 +148,7 @@ dependencies {
annotationProcessor 'com.github.bumptech.glide:compiler:4.16.0' annotationProcessor 'com.github.bumptech.glide:compiler:4.16.0'
implementation 'com.mapbox.maps:android:11.5.0' implementation 'com.mapbox.maps:android:11.5.0'
implementation 'com.mapbox.mapboxsdk:mapbox-sdk-turf:7.3.1'
// implementation 'com.mapbox.maps:android:11.4.0' // implementation 'com.mapbox.maps:android:11.4.0'
// AARs // AARs

@ -201,9 +201,11 @@ internal class PenguinView(
creationParams["clientKey"] as String creationParams["clientKey"] as String
) )
.setUserName(creationParams["username"] as String) .setUserName(creationParams["username"] as String)
// .setUserName("Haroon")
// .setLanguageID(Languages.en) // .setLanguageID(Languages.en)
.setLanguageID(language) .setLanguageID(language)
.setSimulationModeEnabled(creationParams["isSimulationModeEnabled"] as Boolean) .setSimulationModeEnabled(creationParams["isSimulationModeEnabled"] as Boolean)
// .setSimulationModeEnabled(true)
.setEnableBackButton(true) .setEnableBackButton(true)
// .setDeepLinkData("deeplink") // .setDeepLinkData("deeplink")
.setCustomizeColor("#2CA0AF") .setCustomizeColor("#2CA0AF")
@ -249,14 +251,17 @@ internal class PenguinView(
* @param refID The reference ID to navigate to. * @param refID The reference ID to navigate to.
*/ */
fun navigateTo(refID: String) { fun navigateTo(refID: String) {
Log.e("navigateTo", "inside navigateTo")
try { try {
if (refID.isBlank()) { if (refID.isBlank()) {
Log.e("navigateTo", "Invalid refID: The reference ID is blank.") Log.e("navigateTo", "Invalid refID: The reference ID is blank.")
} }
// referenceId = refID // referenceId = refID
navigator.navigateTo(mContext, refID,object : RefIdDelegate { Log.e("navigateTo", "before navigateTo")
navigator.navigateTo(mContext, refID, object : RefIdDelegate {
// navigator.navigateTo(mContext, "3-3", object : RefIdDelegate {
override fun onRefByIDSuccess(PoiId: String?) { override fun onRefByIDSuccess(PoiId: String?) {
Log.e("navigateTo", "PoiId is penguin view+++++++ $PoiId") Log.e("navigateTo", "PoiId is penguin view+++++++ $refID")
// channelFlutter.invokeMethod( // channelFlutter.invokeMethod(
// PenguinMethod.navigateToPOI.name, // PenguinMethod.navigateToPOI.name,
@ -290,9 +295,12 @@ internal class PenguinView(
*/ */
override fun onPenNavSuccess(warningCode: String?) { override fun onPenNavSuccess(warningCode: String?) {
val clinicId = creationParams["clinicID"] as String val clinicId = creationParams["clinicID"] as String
// val clinicId = "3-3"
if(clinicId.isEmpty()) return if(clinicId.isEmpty()) return
Log.e("navigateTo", "onPenNavSuccess")
navigateTo(clinicId) navigateTo(clinicId)
} }

@ -2846,4 +2846,15 @@ const Map localizedValues = {
"seeAllGraphValues": {"en": "View all results", "ar": "عرض جميع النتائج"}, "seeAllGraphValues": {"en": "View all results", "ar": "عرض جميع النتائج"},
"verify-with-biometric": {"en": "Biometric", "ar": "الحيوية"}, "verify-with-biometric": {"en": "Biometric", "ar": "الحيوية"},
"medicationInstructions": {"en": "Medication Instructions", "ar": "تعليمات الدواء"}, "medicationInstructions": {"en": "Medication Instructions", "ar": "تعليمات الدواء"},
"servicePriceList": {"en": "Service Price List", "ar": "قائمة أسعار الخدمة"},
"servicePriceListDesc": {"en": "Below is the services price list outline the healthcare services fees for cash payments, where the insurance coverage, eligibility, and co-payment deductions will be processed in accordance with the insurance policy terms and the table of benefits of each insurance providers:", "ar": "توضح قائمة أسعار الخدمات أدناه رسوم الخدمات الصحية المقدمة للمرضى بنظام الدفع النقدي. أما فيما يتعلق بالخدمات المشمولة بالتأمين، فسيتم تطبيق التغطية التأمينية والتحقق من األهلية واحتساب نسب التحمل وفقًا لشروط وثيقة التأمين وجدول المنافع المعتمد لكل شركة تأمين."},
"servicePriceList1": {"en": "Consultant Physician Consultation", "ar": "كشف طبيب استشاري"},
"servicePriceList2": {"en": "Specialist Physician Consultation", "ar": "كشف طبيب أخصائي"},
"servicePriceList3": {"en": "General Physician Consultation", "ar": "كشف طبيب عام"},
"servicePriceList4": {"en": "Dental Consultation", "ar": "كشف طبيب أسنان"},
"servicePriceList5": {"en": "Optometrist Consultation", "ar": "كشف أخصائي بصريات"},
"servicePriceList6": {"en": "Dietician Consultation", "ar": "كشف أخصائي تغذية"},
"servicePriceList7": {"en": "LiveCare Consultation", "ar": "كشف استشارة عن بعد ( لايف كير )"},
"servicePriceListRights": {"en": "The patient has the right to a free follow-up within 14 days of initial visit", "ar": "يحق للمريض الحصول على متابعة مجانية في غضون 14 يومًا من الزيارة الأولى"},
}; };

@ -189,7 +189,7 @@ class BaseAppClient {
// body['IdentificationNo'] = 1023854217; // body['IdentificationNo'] = 1023854217;
// body['MobileNo'] = "531940021"; //0560717232 // body['MobileNo'] = "531940021"; //0560717232
// body['PatientID'] = 151489; //4609100 // body['PatientID'] = 2039078; //4609100
// body['TokenID'] = "@dm!n"; // body['TokenID'] = "@dm!n";
// Patient ID: 3027574 // Patient ID: 3027574

@ -134,7 +134,7 @@ class RRTRequestPickupAddressPageState extends State<RRTRequestPickupAddressPage
return BaseView<RRTViewModel>( return BaseView<RRTViewModel>(
onModelReady: (vm) { onModelReady: (vm) {
viewModel = vm; viewModel = vm;
loadAddresses(); // loadAddresses();
myAddresses = viewModel.addressesList; myAddresses = viewModel.addressesList;
}, },
builder: (ctx, vm, widget) => AppScaffold( builder: (ctx, vm, widget) => AppScaffold(

@ -0,0 +1,357 @@
import 'package:flutter/material.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:hmg_patient_app/core/viewModels/project_view_model.dart';
import 'package:hmg_patient_app/theme/colors.dart';
import 'package:hmg_patient_app/uitl/translations_delegate_base.dart';
import 'package:hmg_patient_app/uitl/utils_new.dart';
import 'package:hmg_patient_app/widgets/others/app_scaffold_widget.dart';
import 'package:provider/provider.dart';
class ServicesPriceList extends StatelessWidget {
ServicesPriceList({super.key});
ProjectViewModel? projectViewModel;
@override
Widget build(BuildContext context) {
projectViewModel = Provider.of(context);
return AppScaffold(
appBarTitle: TranslationBase.of(context).servicePriceList,
isShowAppBar: true,
showNewAppBar: true,
backgroundColor: Color(0xffF8F8F8),
showNewAppBarTitle: true,
showDropDown: false,
isShowDecPage: false,
body: Padding(
padding: const EdgeInsets.all(16.0),
child: Column(
children: [
Container(
padding: EdgeInsets.all(16),
decoration: cardRadius(10),
child: Text(
TranslationBase.of(context).servicePriceListDesc,
style: TextStyle(
color: CustomColors.textColor,
fontSize: 12,
fontWeight: FontWeight.w500,
letterSpacing: -0.64,
fontFamily: projectViewModel!.isArabic ? 'Cairo' : 'Poppins',
),
),
),
SizedBox(height: 16),
Container(
padding: EdgeInsets.all(16),
decoration: cardRadius(10),
child: Column(
children: [
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Text(
"Service Name",
style: TextStyle(
color: CustomColors.textDarkColor,
fontSize: 16,
fontWeight: FontWeight.bold,
letterSpacing: -0.64,
),
),
Text(
"Prices",
style: TextStyle(
color: CustomColors.textDarkColor,
fontSize: 16,
fontWeight: FontWeight.bold,
letterSpacing: -0.64,
),
),
],
),
SizedBox(height: 8),
Divider(
height: 1,
color: CustomColors.black,
),
SizedBox(height: 8),
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Text(
TranslationBase.of(context).servicePriceList1,
style: TextStyle(
color: CustomColors.textColor,
fontSize: 14,
fontWeight: FontWeight.bold,
letterSpacing: -0.64,
),
),
Row(
children: [
projectViewModel!.isArabic ? Container() : SvgPicture.asset("assets/images/new/Saudi_Riyal_Symbol.svg", width: 16, height: 16),
mWidth(6),
Text(
"315",
style: TextStyle(
color: CustomColors.textDarkColor,
fontSize: 14,
fontWeight: FontWeight.bold,
letterSpacing: -0.64,
),
),
mWidth(6),
projectViewModel!.isArabic ? SvgPicture.asset("assets/images/new/Saudi_Riyal_Symbol.svg", width: 16, height: 16) : Container(),
],
),
],
),
SizedBox(height: 16),
Divider(
height: 1,
color: CustomColors.devider,
),
SizedBox(height: 16),
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Text(
TranslationBase.of(context).servicePriceList2,
style: TextStyle(
color: CustomColors.textColor,
fontSize: 14,
fontWeight: FontWeight.bold,
letterSpacing: -0.64,
),
),
Row(
children: [
projectViewModel!.isArabic ? Container() : SvgPicture.asset("assets/images/new/Saudi_Riyal_Symbol.svg", width: 16, height: 16),
mWidth(6),
Text(
"210",
style: TextStyle(
color: CustomColors.textDarkColor,
fontSize: 14,
fontWeight: FontWeight.bold,
letterSpacing: -0.64,
),
),
mWidth(6),
projectViewModel!.isArabic ? SvgPicture.asset("assets/images/new/Saudi_Riyal_Symbol.svg", width: 16, height: 16) : Container(),
],
),
],
),
SizedBox(height: 16),
Divider(
height: 1,
color: CustomColors.devider,
),
SizedBox(height: 16),
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Text(
TranslationBase.of(context).servicePriceList3,
style: TextStyle(
color: CustomColors.textColor,
fontSize: 14,
fontWeight: FontWeight.bold,
letterSpacing: -0.64,
),
),
Row(
children: [
projectViewModel!.isArabic ? Container() : SvgPicture.asset("assets/images/new/Saudi_Riyal_Symbol.svg", width: 16, height: 16),
mWidth(6),
Text(
"160",
style: TextStyle(
color: CustomColors.textDarkColor,
fontSize: 14,
fontWeight: FontWeight.bold,
letterSpacing: -0.64,
),
),
mWidth(6),
projectViewModel!.isArabic ? SvgPicture.asset("assets/images/new/Saudi_Riyal_Symbol.svg", width: 16, height: 16) : Container(),
],
),
],
),
SizedBox(height: 16),
Divider(
height: 1,
color: CustomColors.devider,
),
SizedBox(height: 16),
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Text(
TranslationBase.of(context).servicePriceList4,
style: TextStyle(
color: CustomColors.textColor,
fontSize: 14,
fontWeight: FontWeight.bold,
letterSpacing: -0.64,
),
),
Row(
children: [
projectViewModel!.isArabic ? Container() : SvgPicture.asset("assets/images/new/Saudi_Riyal_Symbol.svg", width: 16, height: 16),
mWidth(6),
Text(
"210",
style: TextStyle(
color: CustomColors.textDarkColor,
fontSize: 14,
fontWeight: FontWeight.bold,
letterSpacing: -0.64,
),
),
mWidth(6),
projectViewModel!.isArabic ? SvgPicture.asset("assets/images/new/Saudi_Riyal_Symbol.svg", width: 16, height: 16) : Container(),
],
),
],
),
SizedBox(height: 16),
Divider(
height: 1,
color: CustomColors.devider,
),
SizedBox(height: 16),
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Text(
TranslationBase.of(context).servicePriceList5,
style: TextStyle(
color: CustomColors.textColor,
fontSize: 14,
fontWeight: FontWeight.bold,
letterSpacing: -0.64,
),
),
Row(
children: [
projectViewModel!.isArabic ? Container() : SvgPicture.asset("assets/images/new/Saudi_Riyal_Symbol.svg", width: 16, height: 16),
mWidth(6),
Text(
"160",
style: TextStyle(
color: CustomColors.textDarkColor,
fontSize: 14,
fontWeight: FontWeight.bold,
letterSpacing: -0.64,
),
),
mWidth(6),
projectViewModel!.isArabic ? SvgPicture.asset("assets/images/new/Saudi_Riyal_Symbol.svg", width: 16, height: 16) : Container(),
],
),
],
),
SizedBox(height: 16),
Divider(
height: 1,
color: CustomColors.devider,
),
SizedBox(height: 16),
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Text(
TranslationBase.of(context).servicePriceList6,
style: TextStyle(
color: CustomColors.textColor,
fontSize: 14,
fontWeight: FontWeight.bold,
letterSpacing: -0.64,
),
),
Row(
children: [
projectViewModel!.isArabic ? Container() : SvgPicture.asset("assets/images/new/Saudi_Riyal_Symbol.svg", width: 16, height: 16),
mWidth(6),
Text(
"160",
style: TextStyle(
color: CustomColors.textDarkColor,
fontSize: 14,
fontWeight: FontWeight.bold,
letterSpacing: -0.64,
),
),
mWidth(6),
projectViewModel!.isArabic ? SvgPicture.asset("assets/images/new/Saudi_Riyal_Symbol.svg", width: 16, height: 16) : Container(),
],
),
],
),
SizedBox(height: 16),
Divider(
height: 1,
color: CustomColors.devider,
),
SizedBox(height: 16),
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Text(
TranslationBase.of(context).servicePriceList7,
style: TextStyle(
color: CustomColors.textColor,
fontSize: 14,
fontWeight: FontWeight.bold,
letterSpacing: -0.64,
),
),
Row(
children: [
projectViewModel!.isArabic ? Container() : SvgPicture.asset("assets/images/new/Saudi_Riyal_Symbol.svg", width: 16, height: 16),
mWidth(6),
Text(
"150",
style: TextStyle(
color: CustomColors.textDarkColor,
fontSize: 14,
fontWeight: FontWeight.bold,
letterSpacing: -0.64,
),
),
mWidth(6),
projectViewModel!.isArabic ? SvgPicture.asset("assets/images/new/Saudi_Riyal_Symbol.svg", width: 16, height: 16) : Container(),
],
),
],
),
],
)),
SizedBox(height: 16),
Container(
padding: EdgeInsets.all(16),
decoration: cardRadius(10),
child: Row(
children: [
Text(
TranslationBase.of(context).servicePriceListRights,
style: TextStyle(
color: CustomColors.textColor,
fontSize: 12,
fontWeight: FontWeight.w500,
letterSpacing: -0.64,
),
),
],
),
),
],
),
),
);
}
}

@ -31,7 +31,8 @@ class PenguinMethodChannel {
"languageCode": languageCode, "languageCode": languageCode,
"clientKey": "UGVuZ3VpbklOX1Blbk5hdl9QSUY=", "clientKey": "UGVuZ3VpbklOX1Blbk5hdl9QSUY=",
"mapBoxKey": "pk.eyJ1IjoicndhaWQiLCJhIjoiY2x5cGo4aHNjMGNsbTJyc2djempobGQxaSJ9.RCaC6WrUt4A4YnZNfxnONQ", "mapBoxKey": "pk.eyJ1IjoicndhaWQiLCJhIjoiY2x5cGo4aHNjMGNsbTJyc2djempobGQxaSJ9.RCaC6WrUt4A4YnZNfxnONQ",
"clinicID": details?.clinicId ?? "", // "clinicID": details?.clinicId ?? "",
"clinicID": "",
// "clinicID": "108", // 46 ,49, 133 // "clinicID": "108", // 46 ,49, 133
"patientID": details?.patientId ?? "", "patientID": details?.patientId ?? "",
"projectID": int.parse(details?.projectId ?? "-1"), "projectID": int.parse(details?.projectId ?? "-1"),

@ -3531,6 +3531,17 @@ class TranslationBase {
String get low => localizedValues["low"][locale.languageCode]; String get low => localizedValues["low"][locale.languageCode];
String get verifyWithBiometric => localizedValues["verify-with-biometric"][locale.languageCode]; String get verifyWithBiometric => localizedValues["verify-with-biometric"][locale.languageCode];
String get medicationInstructions => localizedValues["medicationInstructions"][locale.languageCode]; String get medicationInstructions => localizedValues["medicationInstructions"][locale.languageCode];
String get servicePriceList => localizedValues["servicePriceList"][locale.languageCode];
String get servicePriceListDesc => localizedValues["servicePriceListDesc"][locale.languageCode];
String get servicePriceList1 => localizedValues["servicePriceList1"][locale.languageCode];
String get servicePriceList2 => localizedValues["servicePriceList2"][locale.languageCode];
String get servicePriceList3 => localizedValues["servicePriceList3"][locale.languageCode];
String get servicePriceList4 => localizedValues["servicePriceList4"][locale.languageCode];
String get servicePriceList5 => localizedValues["servicePriceList5"][locale.languageCode];
String get servicePriceList6 => localizedValues["servicePriceList6"][locale.languageCode];
String get servicePriceList7 => localizedValues["servicePriceList7"][locale.languageCode];
String get servicePriceListRights => localizedValues["servicePriceListRights"][locale.languageCode];
String getTranslation(String label) { String getTranslation(String label) {
switch (label) { switch (label) {

@ -89,13 +89,13 @@ class Utils {
"ProjectOutSA": false, "ProjectOutSA": false,
"UsingInDoctorApp": false "UsingInDoctorApp": false
},{ },{
"Desciption": "Jeddah Hospital", "Desciption": "Jeddah Fayhaa Hospital",
"DesciptionN": "مستشفى جدة", "DesciptionN": "مستشفى جدة الفيحاء",
"ID": 3, // Campus ID "ID": 3, // Campus ID
"LegalName": "Jeddah Hospital", "LegalName": "Jeddah Fayhaa Hospital",
"LegalNameN": "مستشفى جدة", "LegalNameN": "مستشفى جدة الفيحاء",
"Name": "Jeddah Hospital", "Name": "Jeddah Fayhaa Hospital",
"NameN": "مستشفى جدة", "NameN": "مستشفى جدة الفيحاء",
"PhoneNumber": "+966115222222", "PhoneNumber": "+966115222222",
"SetupID": "013311", "SetupID": "013311",
"DistanceInKilometers": 0, "DistanceInKilometers": 0,

@ -22,6 +22,7 @@ import 'package:hmg_patient_app/pages/DrawerPages/notifications/notifications_pa
import 'package:hmg_patient_app/pages/landing/landing_page.dart'; import 'package:hmg_patient_app/pages/landing/landing_page.dart';
import 'package:hmg_patient_app/pages/livecare/livecare_home.dart'; import 'package:hmg_patient_app/pages/livecare/livecare_home.dart';
import 'package:hmg_patient_app/pages/rateAppointment/rate_appointment_doctor.dart'; import 'package:hmg_patient_app/pages/rateAppointment/rate_appointment_doctor.dart';
import 'package:hmg_patient_app/pages/servicesPriceList/services_price_list.dart';
import 'package:hmg_patient_app/routes.dart'; import 'package:hmg_patient_app/routes.dart';
import 'package:hmg_patient_app/services/authentication/auth_provider.dart'; import 'package:hmg_patient_app/services/authentication/auth_provider.dart';
import 'package:hmg_patient_app/services/clinic_services/get_clinic_service.dart'; import 'package:hmg_patient_app/services/clinic_services/get_clinic_service.dart';
@ -467,6 +468,12 @@ class _AppDrawerState extends State<AppDrawer> {
login(); login();
}, },
), ),
InkWell(
child: DrawerItem(TranslationBase.of(context).servicePriceList, Icons.bookmark_added_sharp, letterSpacing: -0.84, fontSize: 14, bottomLine: false),
onTap: () {
Navigator.of(context).push(FadePage(page: ServicesPriceList()));
},
),
InkWell( InkWell(
child: DrawerItem(TranslationBase.of(context).privacyPolicy, Icons.web, letterSpacing: -0.84, fontSize: 14, bottomLine: false), child: DrawerItem(TranslationBase.of(context).privacyPolicy, Icons.web, letterSpacing: -0.84, fontSize: 14, bottomLine: false),
onTap: () { onTap: () {
@ -481,7 +488,7 @@ class _AppDrawerState extends State<AppDrawer> {
onTap: () { onTap: () {
Navigator.of(context).push(FadePage(page: UserAgreementPage())); Navigator.of(context).push(FadePage(page: UserAgreementPage()));
}, },
) ),
], ],
)) ))
], ],

@ -1,8 +1,8 @@
name: hmg_patient_app name: hmg_patient_app
description: A new Flutter application. description: A new Flutter application.
#version: 4.6.020+1 version: 4.6.021+1
version: 4.6.0980+40500980 #version: 4.6.0980+40500980
environment: environment:
# sdk: ">=3.0.0 <3.13.0" # sdk: ">=3.0.0 <3.13.0"
@ -225,9 +225,9 @@ flutter:
# - asset: assets/fonts/ar/Cairo-Light/Cairo-Light.eot # - asset: assets/fonts/ar/Cairo-Light/Cairo-Light.eot
# - asset: assets/fonts/ar/Cairo-Light/Cairo-Light.otf # - asset: assets/fonts/ar/Cairo-Light/Cairo-Light.otf
- asset: assets/fonts/ar/Cairo-Regular/Cairo-Regular.ttf - asset: assets/fonts/ar/Cairo-Regular/Cairo-Regular.ttf
# - asset: assets/fonts/ar/Cairo-Light/Cairo-Light.woff
weight: 400 weight: 400
- asset: assets/fonts/ar/Cairo-Regular/Cairo-Regular.ttf
weight: 500
- asset: assets/fonts/ar/Cairo-Bold/Cairo-Bold.eot - asset: assets/fonts/ar/Cairo-Bold/Cairo-Bold.eot
- asset: assets/fonts/ar/Cairo-Bold/Cairo-Bold.otf - asset: assets/fonts/ar/Cairo-Bold/Cairo-Bold.otf
- asset: assets/fonts/ar/Cairo-Bold/Cairo-Bold.ttf - asset: assets/fonts/ar/Cairo-Bold/Cairo-Bold.ttf

Loading…
Cancel
Save