pull/337/head
haroon amjad 1 day ago
parent b5d95a5a74
commit eafb7aa105

@ -0,0 +1,9 @@
<svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect width="48" height="48" rx="10" fill="#FEE9EA"/>
<path d="M20 24C19.4477 24 19 24.4477 19 25C19 25.5523 19.4477 26 20 26H20.009C20.5613 26 21.009 25.5523 21.009 25C21.009 24.4477 20.5613 24 20.009 24H20Z" fill="#ED1C2B"/>
<path d="M23.9955 24C23.4432 24 22.9955 24.4477 22.9955 25C22.9955 25.5523 23.4432 26 23.9955 26H24.0045C24.5568 26 25.0045 25.5523 25.0045 25C25.0045 24.4477 24.5568 24 24.0045 24H23.9955Z" fill="#ED1C2B"/>
<path d="M27.991 24C27.4387 24 26.991 24.4477 26.991 25C26.991 25.5523 27.4387 26 27.991 26H28C28.5523 26 29 25.5523 29 25C29 24.4477 28.5523 24 28 24H27.991Z" fill="#ED1C2B"/>
<path d="M20 28C19.4477 28 19 28.4477 19 29C19 29.5523 19.4477 30 20 30H20.009C20.5613 30 21.009 29.5523 21.009 29C21.009 28.4477 20.5613 28 20.009 28H20Z" fill="#ED1C2B"/>
<path d="M23.9955 28C23.4432 28 22.9955 28.4477 22.9955 29C22.9955 29.5523 23.4432 30 23.9955 30H24.0045C24.5568 30 25.0045 29.5523 25.0045 29C25.0045 28.4477 24.5568 28 24.0045 28H23.9955Z" fill="#ED1C2B"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M18.75 14C18.75 13.5858 18.4142 13.25 18 13.25C17.5858 13.25 17.25 13.5858 17.25 14V14.6348C16.4452 14.8629 15.7665 15.2336 15.2015 15.8444C14.4236 16.6853 14.0778 17.7479 13.9122 19.0795C13.75 20.3843 13.75 22.0565 13.75 24.19V24.81C13.75 26.9435 13.75 28.6157 13.9122 29.9205C14.0778 31.2521 14.4236 32.3147 15.2015 33.1556C15.9871 34.0049 16.9928 34.3901 18.2513 34.573C19.4693 34.75 21.0255 34.75 22.9892 34.75H25.0108C26.9745 34.75 28.5307 34.75 29.7487 34.573C31.0072 34.3901 32.0129 34.0049 32.7985 33.1556C33.5764 32.3147 33.9222 31.2521 34.0878 29.9205C34.25 28.6157 34.25 26.9435 34.25 24.8099V24.1901C34.25 22.0565 34.25 20.3843 34.0878 19.0795C33.9222 17.7479 33.5764 16.6853 32.7985 15.8444C32.2335 15.2336 31.5548 14.8629 30.75 14.6348V14C30.75 13.5858 30.4142 13.25 30 13.25C29.5858 13.25 29.25 13.5858 29.25 14V14.3659C28.1139 14.25 26.716 14.25 25.0108 14.25L22.9892 14.25C21.284 14.25 19.8861 14.25 18.75 14.3659V14ZM17.2786 16.2058C17.3681 16.52 17.6572 16.75 18 16.75C18.4142 16.75 18.75 16.4142 18.75 16V15.8746C19.811 15.7516 21.1824 15.75 23.05 15.75L24.95 15.75C26.8176 15.75 28.189 15.7516 29.25 15.8746V16C29.25 16.4142 29.5858 16.75 30 16.75C30.3428 16.75 30.6319 16.52 30.7214 16.2058C31.1287 16.3679 31.438 16.5826 31.6973 16.8629C32.1704 17.3744 32.4505 18.0759 32.5982 19.2564C32.5661 19.2522 32.5333 19.25 32.5 19.25L15.5 19.25C15.4667 19.25 15.4339 19.2522 15.4018 19.2564C15.5495 18.0759 15.8296 17.3744 16.3027 16.8629C16.562 16.5826 16.8713 16.3679 17.2786 16.2058ZM15.2901 20.7202C15.2506 21.6832 15.25 22.8363 15.25 24.2432V24.7568C15.25 26.9551 15.2514 28.5339 15.4008 29.7354C15.5482 30.9208 15.8285 31.6244 16.3027 32.1371C16.7692 32.6414 17.3973 32.9331 18.467 33.0886C19.5648 33.2481 21.0119 33.25 23.05 33.25H24.95C26.9881 33.25 28.4352 33.2481 29.533 33.0886C30.6027 32.9331 31.2308 32.6414 31.6973 32.1371C32.1715 31.6244 32.4518 30.9208 32.5992 29.7354C32.7486 28.5339 32.75 26.9551 32.75 24.7568V24.2432C32.75 22.8363 32.7494 21.6832 32.7099 20.7202C32.6433 20.7396 32.5728 20.75 32.5 20.75L15.5 20.75C15.4272 20.75 15.3567 20.7396 15.2901 20.7202Z" fill="#ED1C2B"/>
</svg>

After

Width:  |  Height:  |  Size: 3.2 KiB

@ -1960,5 +1960,6 @@
"parkingQR": "رمز الاستجابة السريعة لوقوف السيارات", "parkingQR": "رمز الاستجابة السريعة لوقوف السيارات",
"parkingQRDesc": "امسح رمز الاستجابة السريعة (QR Code) أدناه عند بوابة الخروج من موقف السيارات:", "parkingQRDesc": "امسح رمز الاستجابة السريعة (QR Code) أدناه عند بوابة الخروج من موقف السيارات:",
"livecareUpdateInsuranceSent": "تم استلام طلب تحديث بيانات التأمين الخاص بك، ويجري العمل عليه حالياً. سنقوم بإشعارك فور اكتمال التحديث.", "livecareUpdateInsuranceSent": "تم استلام طلب تحديث بيانات التأمين الخاص بك، ويجري العمل عليه حالياً. سنقوم بإشعارك فور اكتمال التحديث.",
"livecareUpdateInsurance": "سيتم تحويل طلب تحديث بيانات التأمين إلى فريق LiveCare المختص لاستكمال الإجراءات. هل تود المتابعة؟" "livecareUpdateInsurance": "سيتم تحويل طلب تحديث بيانات التأمين إلى فريق LiveCare المختص لاستكمال الإجراءات. هل تود المتابعة؟",
"schedule": "جدول"
} }

@ -1949,7 +1949,8 @@
"parkingQR": "Parking QR Code", "parkingQR": "Parking QR Code",
"parkingQRDesc": "Scan the below QR Code at the exit parking gate:", "parkingQRDesc": "Scan the below QR Code at the exit parking gate:",
"livecareUpdateInsuranceSent": "Your insurance update request is being processed. You will be notified once the update is completed.", "livecareUpdateInsuranceSent": "Your insurance update request is being processed. You will be notified once the update is completed.",
"livecareUpdateInsurance": "Please note that your insurance update request will be sent to the our LiveCare team for update. Would you like to proceed?" "livecareUpdateInsurance": "Please note that your insurance update request will be sent to the our LiveCare team for update. Would you like to proceed?",
"schedule": "Schedule"
} }

@ -5,7 +5,7 @@ import 'package:hmg_patient_app_new/core/enums.dart';
class ApiConsts { class ApiConsts {
static const maxSmallScreen = 660; static const maxSmallScreen = 660;
static AppEnvironmentTypeEnum appEnvironmentType = AppEnvironmentTypeEnum.uat; static AppEnvironmentTypeEnum appEnvironmentType = AppEnvironmentTypeEnum.prod;
// static String baseUrl = 'https://uat.hmgwebservices.com/'; // HIS API URL UAT // static String baseUrl = 'https://uat.hmgwebservices.com/'; // HIS API URL UAT

@ -193,6 +193,7 @@ class AppAssets {
static const String ic_rrt_vehicle = '$svgBasePath/ic_rrt_vehicle.svg'; static const String ic_rrt_vehicle = '$svgBasePath/ic_rrt_vehicle.svg';
static const String doctor_profile_rating_icon = '$svgBasePath/doctor_profile_rating_icon.svg'; static const String doctor_profile_rating_icon = '$svgBasePath/doctor_profile_rating_icon.svg';
static const String doctor_profile_reviews_icon = '$svgBasePath/doctor_profile_reviews_icon.svg'; static const String doctor_profile_reviews_icon = '$svgBasePath/doctor_profile_reviews_icon.svg';
static const String doctor_profile_schedule_icon = '$svgBasePath/doctor_profile_schedule_icon.svg';
static const String bookmark_icon = '$svgBasePath/bookmark_icon.svg'; static const String bookmark_icon = '$svgBasePath/bookmark_icon.svg';
static const String bookmark_filled_icon = '$svgBasePath/bookmark_filled_icon.svg'; static const String bookmark_filled_icon = '$svgBasePath/bookmark_filled_icon.svg';
static const String waiting_appointment_icon = '$svgBasePath/waitingAppo.svg'; static const String waiting_appointment_icon = '$svgBasePath/waitingAppo.svg';

@ -335,7 +335,6 @@ class HabibWalletViewModel extends ChangeNotifier {
walletRechargeAmount = 0; walletRechargeAmount = 0;
selectedRechargeType = 1; selectedRechargeType = 1;
advancePaymentHospitals.clear(); advancePaymentHospitals.clear();
habibWalletBalanceList.clear();
selectedHospital = null; selectedHospital = null;
fileNumber = ''; fileNumber = '';
depositorName = ''; depositorName = '';
@ -417,6 +416,7 @@ class HabibWalletViewModel extends ChangeNotifier {
if (!isWalletAmountToBeLoaded) { if (!isWalletAmountToBeLoaded) {
return; return;
} }
habibWalletBalanceList.clear();
isWalletAmountLoading = true; isWalletAmountLoading = true;
notifyListeners(); notifyListeners();

@ -6,7 +6,6 @@ import 'package:amazon_payfort/amazon_payfort.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter/services.dart'; import 'package:flutter/services.dart';
import 'package:flutter_amazonpaymentservices/flutter_amazonpaymentservices.dart'; import 'package:flutter_amazonpaymentservices/flutter_amazonpaymentservices.dart';
import 'package:flutter_callkit_incoming/flutter_callkit_incoming.dart';
import 'package:hmg_patient_app_new/core/api_consts.dart'; import 'package:hmg_patient_app_new/core/api_consts.dart';
import 'package:hmg_patient_app_new/core/app_state.dart'; import 'package:hmg_patient_app_new/core/app_state.dart';
import 'package:hmg_patient_app_new/core/cache_consts.dart'; import 'package:hmg_patient_app_new/core/cache_consts.dart';

@ -1942,5 +1942,6 @@ abstract class LocaleKeys {
static const parkingQRDesc = 'parkingQRDesc'; static const parkingQRDesc = 'parkingQRDesc';
static const livecareUpdateInsuranceSent = 'livecareUpdateInsuranceSent'; static const livecareUpdateInsuranceSent = 'livecareUpdateInsuranceSent';
static const livecareUpdateInsurance = 'livecareUpdateInsurance'; static const livecareUpdateInsurance = 'livecareUpdateInsurance';
static const schedule = 'schedule';
} }

@ -192,6 +192,15 @@ class DoctorProfilePage extends StatelessWidget {
isCloseButtonVisible: true, isCloseButtonVisible: true,
); );
}), }),
SizedBox(width: 36.w),
Column(
children: [
Utils.buildSvgWithAssets(icon: AppAssets.doctor_profile_schedule_icon, width: 48.w, height: 48.h, fit: BoxFit.contain, applyThemeColor: false),
SizedBox(height: 16.h),
LocaleKeys.schedule.tr(context: context).toText12(isBold: true, color: AppColors.greyTextColor),
LocaleKeys.view.tr(context: context).toText16(isBold: true, color: AppColors.textColor, isUnderLine: true, decorationColor: AppColors.textColor, fontFamily: "Poppins"),
],
).onPress(() {})
], ],
), ),
SizedBox(height: 16.h), SizedBox(height: 16.h),

@ -14,6 +14,7 @@ import 'package:hmg_patient_app_new/features/habib_wallet/habib_wallet_view_mode
import 'package:hmg_patient_app_new/features/my_invoices/my_invoices_view_model.dart'; import 'package:hmg_patient_app_new/features/my_invoices/my_invoices_view_model.dart';
import 'package:hmg_patient_app_new/generated/locale_keys.g.dart'; import 'package:hmg_patient_app_new/generated/locale_keys.g.dart';
import 'package:hmg_patient_app_new/presentation/habib_wallet/recharge_wallet_page.dart'; import 'package:hmg_patient_app_new/presentation/habib_wallet/recharge_wallet_page.dart';
import 'package:hmg_patient_app_new/presentation/habib_wallet/widgets/wallet_balance_list.dart';
import 'package:hmg_patient_app_new/presentation/habib_wallet/withdraw_request_create_page.dart'; import 'package:hmg_patient_app_new/presentation/habib_wallet/withdraw_request_create_page.dart';
import 'package:hmg_patient_app_new/presentation/lab/lab_result_item_view.dart'; import 'package:hmg_patient_app_new/presentation/lab/lab_result_item_view.dart';
import 'package:hmg_patient_app_new/presentation/my_invoices/widgets/invoice_list_card.dart'; import 'package:hmg_patient_app_new/presentation/my_invoices/widgets/invoice_list_card.dart';
@ -97,15 +98,39 @@ class _HabibWalletState extends State<HabibWalletPage> {
Spacer(), Spacer(),
LocaleKeys.balanceAmount.tr(context: context).toText14(isBold: true, color: Colors.white), LocaleKeys.balanceAmount.tr(context: context).toText14(isBold: true, color: Colors.white),
SizedBox(height: 4.h), SizedBox(height: 4.h),
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Consumer<HabibWalletViewModel>(builder: (context, habibWalletVM, child) { Consumer<HabibWalletViewModel>(builder: (context, habibWalletVM, child) {
return Utils.getPaymentAmountWithSymbol2(habibWalletVM.habibWalletAmount, return Utils.getPaymentAmountWithSymbol2(habibWalletVM.habibWalletAmount,
textColor: Colors.white, iconColor: Colors.white, iconSize: 16, isExpanded: false, letterSpacing: -1) textColor: Colors.white, iconColor: Colors.white, iconSize: 16, isExpanded: false, letterSpacing: -1)
.toShimmer2(isShow: habibWalletVM.isWalletAmountLoading, radius: 12.h, width: 80.h, height: 24.h); .toShimmer2(isShow: habibWalletVM.isWalletAmountLoading, radius: 12.h, width: 80.h, height: 24.h);
}), }),
Transform.flip(
flipX: appState.isArabic(),
child: Utils.buildSvgWithAssets(
icon: AppAssets.arrow_forward,
height: 24.h,
width: 24.h,
iconColor: AppColors.whiteColor,
),
),
], ],
), ),
],
), ),
), ),
).onPress(() {
showCommonBottomSheetWithoutHeight(
title: LocaleKeys.habibWallet.tr(context: context),
context,
// child: Utils.getSuccessWidget(loadingText: LocaleKeys.erAppointmentBookedSuccess.tr(context: context)),
child: HabibWalletBalanceList(),
callBackFunc: () {},
isFullScreen: false,
isCloseButtonVisible: true,
);
}),
SizedBox(height: 16.h), SizedBox(height: 16.h),
Row( Row(
mainAxisAlignment: MainAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.center,

@ -0,0 +1,54 @@
import 'package:flutter/material.dart';
import 'package:hmg_patient_app_new/core/utils/size_utils.dart';
import 'package:hmg_patient_app_new/core/utils/utils.dart';
import 'package:hmg_patient_app_new/extensions/string_extensions.dart';
import 'package:hmg_patient_app_new/extensions/widget_extensions.dart';
import 'package:hmg_patient_app_new/features/habib_wallet/habib_wallet_view_model.dart';
import 'package:hmg_patient_app_new/theme/colors.dart';
import 'package:provider/provider.dart';
class HabibWalletBalanceList extends StatelessWidget {
const HabibWalletBalanceList({super.key});
@override
Widget build(BuildContext context) {
return Column(
children: [
Container(
decoration: RoundedRectangleBorder().toSmoothCornerDecoration(
color: AppColors.whiteColor,
borderRadius: 24.r,
hasShadow: false,
),
child: Consumer<HabibWalletViewModel>(builder: (context, habibWalletVM, child) {
return ListView.separated(
itemCount: habibWalletVM.habibWalletBalanceList.length,
physics: NeverScrollableScrollPhysics(),
padding: EdgeInsets.only(top: 8, bottom: 8),
shrinkWrap: true,
itemBuilder: (context, index) {
return Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Expanded(child: habibWalletVM.habibWalletBalanceList[index].projectDescription!.toText16(isBold: true, color: AppColors.textColor)),
Utils.getPaymentAmountWithSymbol2(habibWalletVM.habibWalletBalanceList[index].patientAdvanceBalanceAmount!, //did the changes because of negative value
textColor: AppColors.textColor,
iconColor: AppColors.textColor,
iconSize: 18.h,
isExpanded: false,
fontSize: 28.f,
fontWeight: FontWeight.w600,
letterSpacing: -1),
],
).paddingSymmetrical(0, 12.h);
},
separatorBuilder: (BuildContext context, int index) {
return Divider(height: 1, color: AppColors.textColor.withAlpha(20));
},
).paddingSymmetrical(16.h, 24.h).toShimmer2(isShow: habibWalletVM.isWalletAmountLoading);
}),
),
],
);
}
}

@ -75,6 +75,7 @@ class _AppLanguageChangeState extends State<AppLanguageChange> {
myAppointmentsViewModel.initAppointmentsViewModel(); myAppointmentsViewModel.initAppointmentsViewModel();
myAppointmentsViewModel.getPatientAppointments(true, false); myAppointmentsViewModel.getPatientAppointments(true, false);
habibWalletVM.setIsWalletAmountToBeLoaded(true);
habibWalletVM.initHabibWalletProvider(); habibWalletVM.initHabibWalletProvider();
habibWalletVM.getPatientBalanceAmount(); habibWalletVM.getPatientBalanceAmount();
habibWalletVM.getLakumAccountInformation(); habibWalletVM.getLakumAccountInformation();

@ -87,7 +87,7 @@ dependencies:
open_filex: ^4.7.0 open_filex: ^4.7.0
flutter_swiper_view: flutter_swiper_view:
path: package/flutter_swiper_view path: package/flutter_swiper_view
flutter_callkit_incoming: ^3.0.0 flutter_callkit_incoming: 3.0.0
in_app_update: ^4.2.5 in_app_update: ^4.2.5
# device_preview: ^1.3.1 # device_preview: ^1.3.1
image_picker_android: ^0.8.13+16 image_picker_android: ^0.8.13+16

Loading…
Cancel
Save