diff --git a/assets/langs/ar-SA.json b/assets/langs/ar-SA.json index f5c022b0..8ff6d336 100644 --- a/assets/langs/ar-SA.json +++ b/assets/langs/ar-SA.json @@ -1972,6 +1972,7 @@ "cashRefundInstructions": "قم بزيارة صراف مستشفى الحبيب الطبي أو الحبيب للرعاية الأولية لاستلام النقد. عند نافذة الصراف، سوف تتلقى رمز التحقق على رقم هاتفك المسجل بمجرد قيام الصراف بإنشاء معاملة الاسترداد. قدم الرمز للصراف للتحقق منه. سيتم صرف النقد فقط بعد التحقق الناجح.", "cashRefundApprovalInstructions": "قم بزيارة صراف مستشفى الحبيب الطبي أو الحبيب للرعاية الأولية لاستلام النقد. عند نافذة الصراف، سوف تتلقى رمز التحقق على رقم هاتفك المسجل بمجرد قيام الصراف بإنشاء معاملة الاسترداد. قدم الرمز للصراف للتحقق منه. سيتم صرف النقد فقط بعد التحقق الناجح.", "packageRefundValidationMessage": "طلب استرداد الباقة الخاص بك يتطلب التحقق بسبب استخدام الباقة والفواتير الفرعية ذات الصلة. سنقوم بمراجعة ومعالجة الطلب ضمن اتفاقية مستوى الخدمة المعتمدة بعد تأكيد الأهلية.", + "pharmacyRefundPhysicalVisitNotice": "تتطلب استردادات الصيدلية زيارة شخصية لتسليم الأدوية ومعالجة الاسترداد.", "parkingQR": "رمز الاستجابة السريعة لوقوف السيارات", "parkingQRDesc": "امسح رمز الاستجابة السريعة (QR Code) أدناه عند بوابة الخروج من موقف السيارات:", "livecareUpdateInsuranceSent": "تم استلام طلب تحديث بيانات التأمين الخاص بك، ويجري العمل عليه حالياً. سنقوم بإشعارك فور اكتمال التحديث.", diff --git a/assets/langs/en-US.json b/assets/langs/en-US.json index c180dbd7..bd95cd4c 100644 --- a/assets/langs/en-US.json +++ b/assets/langs/en-US.json @@ -1962,6 +1962,7 @@ "cashRefundInstructions": "Visit HMG Hospital or HMG Primary Care cashier to receive cash. At the cashier counter, you will receive an OTP on your registered mobile number once the cashier has created the refund transaction. Provide the OTP to the cashier for validation. Cash will be released only after successful validation.", "cashRefundApprovalInstructions": "Visit HMG Hospital or HMG Primary Care cashier to receive cash. At the cashier counter, you will receive an OTP on your registered mobile number once the cashier has created the refund transaction. Provide the OTP to the cashier for validation. Cash will be released only after successful validation.", "packageRefundValidationMessage": "Your package refund request required validation because of package use and related child invoices. We will review the process the request within the approved SLA after confirming eligibility.", + "pharmacyRefundPhysicalVisitNotice": "Pharmacy refunds require a physical visit to hand over medications and process the refund.", "parkingQR": "Parking QR Code", "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.", diff --git a/lib/core/api/api_client.dart b/lib/core/api/api_client.dart index b77f572d..b1e918f6 100644 --- a/lib/core/api/api_client.dart +++ b/lib/core/api/api_client.dart @@ -212,7 +212,9 @@ class ApiClientImp implements ApiClient { // body['TokenID'] = "@dm!n"; // body['PatientID'] = 6424682; // body['PatientID'] = 4772785; + // body['PatientID'] = 4776766; // body['PatientID'] = 4776462; + // body['PatientID'] = 4776463; // body['PatientID'] = 4776359; // body['PatientID'] = 4776466; // body['PatientID'] = 4769748; diff --git a/lib/generated/codegen_loader.g.dart b/lib/generated/codegen_loader.g.dart index 4ea2d532..54aa500f 100644 --- a/lib/generated/codegen_loader.g.dart +++ b/lib/generated/codegen_loader.g.dart @@ -1967,6 +1967,7 @@ class CodegenLoader extends AssetLoader{ "cashRefundInstructions": "قم بزيارة صراف مستشفى الحبيب الطبي أو الحبيب للرعاية الأولية لاستلام النقد. عند نافذة الصراف، سوف تتلقى رمز التحقق على رقم هاتفك المسجل بمجرد قيام الصراف بإنشاء معاملة الاسترداد. قدم الرمز للصراف للتحقق منه. سيتم صرف النقد فقط بعد التحقق الناجح.", "cashRefundApprovalInstructions": "قم بزيارة صراف مستشفى الحبيب الطبي أو الحبيب للرعاية الأولية لاستلام النقد. عند نافذة الصراف، سوف تتلقى رمز التحقق على رقم هاتفك المسجل بمجرد قيام الصراف بإنشاء معاملة الاسترداد. قدم الرمز للصراف للتحقق منه. سيتم صرف النقد فقط بعد التحقق الناجح.", "packageRefundValidationMessage": "طلب استرداد الباقة الخاص بك يتطلب التحقق بسبب استخدام الباقة والفواتير الفرعية ذات الصلة. سنقوم بمراجعة ومعالجة الطلب ضمن اتفاقية مستوى الخدمة المعتمدة بعد تأكيد الأهلية.", + "pharmacyRefundPhysicalVisitNotice": "تتطلب استردادات الصيدلية زيارة شخصية لتسليم الأدوية ومعالجة الاسترداد.", "parkingQR": "رمز الاستجابة السريعة لوقوف السيارات", "parkingQRDesc": "امسح رمز الاستجابة السريعة (QR Code) أدناه عند بوابة الخروج من موقف السيارات:", "livecareUpdateInsuranceSent": "تم استلام طلب تحديث بيانات التأمين الخاص بك، ويجري العمل عليه حالياً. سنقوم بإشعارك فور اكتمال التحديث.", @@ -3925,6 +3926,7 @@ static const Map _en_US = { "cashRefundInstructions": "Visit HMG Hospital or HMG Primary Care cashier to receive cash. At the cashier counter, you will receive an OTP on your registered mobile number once the cashier has created the refund transaction. Provide the OTP to the cashier for validation. Cash will be released only after successful validation.", "cashRefundApprovalInstructions": "Visit HMG Hospital or HMG Primary Care cashier to receive cash. At the cashier counter, you will receive an OTP on your registered mobile number once the cashier has created the refund transaction. Provide the OTP to the cashier for validation. Cash will be released only after successful validation.", "packageRefundValidationMessage": "Your package refund request required validation because of package use and related child invoices. We will review the process the request within the approved SLA after confirming eligibility.", + "pharmacyRefundPhysicalVisitNotice": "Pharmacy refunds require a physical visit to hand over medications and process the refund.", "parkingQR": "Parking QR Code", "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.", diff --git a/lib/generated/locale_keys.g.dart b/lib/generated/locale_keys.g.dart index 08516e26..06478d62 100644 --- a/lib/generated/locale_keys.g.dart +++ b/lib/generated/locale_keys.g.dart @@ -1953,6 +1953,7 @@ abstract class LocaleKeys { static const cashRefundInstructions = 'cashRefundInstructions'; static const cashRefundApprovalInstructions = 'cashRefundApprovalInstructions'; static const packageRefundValidationMessage = 'packageRefundValidationMessage'; + static const pharmacyRefundPhysicalVisitNotice = 'pharmacyRefundPhysicalVisitNotice'; static const parkingQR = 'parkingQR'; static const parkingQRDesc = 'parkingQRDesc'; static const livecareUpdateInsuranceSent = 'livecareUpdateInsuranceSent'; diff --git a/lib/presentation/my_invoices/my_invoices_list.dart b/lib/presentation/my_invoices/my_invoices_list.dart index 67ee05a6..ca5e96ea 100644 --- a/lib/presentation/my_invoices/my_invoices_list.dart +++ b/lib/presentation/my_invoices/my_invoices_list.dart @@ -5,6 +5,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_staggered_animations/flutter_staggered_animations.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/my_invoices/my_invoices_view_model.dart'; import 'package:hmg_patient_app_new/generated/locale_keys.g.dart'; @@ -318,7 +319,23 @@ class _MyInvoicesListState extends State { ) : Column( children: [ - SizedBox(height: 16.h), + SizedBox(height: 6.h), + // Pharmacy refund notice + Container( + margin: EdgeInsets.symmetric(horizontal: 24.w), + padding: EdgeInsets.all(16.h), + child: Row( + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Icon(Icons.info, color: AppColors.greyInfoTextColor, size: 22.h).paddingOnly(top: 3), + SizedBox(width: 10.w), + Expanded( + child: LocaleKeys.pharmacyRefundPhysicalVisitNotice.tr(context: context).toText14(color: AppColors.greyInfoTextColor), + ), + ], + ), + ), + SizedBox(height: 6.h), ListView.builder( itemCount: myInvoicesVM.isPharmacyInvoicesLoading ? 4 diff --git a/lib/presentation/refund_request/refund_request_create_page.dart b/lib/presentation/refund_request/refund_request_create_page.dart index 4d4470cd..2e8289a7 100644 --- a/lib/presentation/refund_request/refund_request_create_page.dart +++ b/lib/presentation/refund_request/refund_request_create_page.dart @@ -287,8 +287,8 @@ class _RefundRequestCreatePageState extends State { if (value != null) vm.setPaymentMethod(value); }, ), - // Show cash instructions inside cash tile when selected - if (isCashOption && isCashSelected) ...[ + // Show cash instructions inside cash tile when selected (only if amount is within limit) + if (isCashOption && isCashSelected && !vm.isCashRefundAmountExceeded) ...[ Padding( padding: EdgeInsets.fromLTRB(16.w, 0, 16.w, 16.h), child: Row(