Merge pull request 'dev_sultan' (#394) from dev_sultan into master

Reviewed-on: https://34.17.182.140/Haroon6138/HMG_Patient_App_New/pulls/394
pull/396/head
Haroon6138 3 days ago
commit 0db39aec5c

@ -303,7 +303,7 @@ class AuthenticationViewModel extends ChangeNotifier {
return true;
}
} else if (selectedCountrySignup == CountryEnum.unitedArabEmirates) {
if (!ValidationUtils.validateUaeNationalId(nationalIdController.text)) {
if (!ValidationUtils.validateUaeNationalId(nationalIdController.text) && cleanedId.length == 15) {
_nationalIdError = LocaleKeys.pleaseEnterAValidNationalID.tr();
notifyListeners();
return false;

@ -44,8 +44,8 @@ class AppointmentRatingViewModel extends ChangeNotifier {
);
}
Future<void> getAppointmentDetails(int appointmentID, int projectID, {Function(dynamic)? onSuccess, Function(String)? onError}) async {
final result = await myAppointmentsRepo.getAppointmentDetails(appointmentID, projectID);
Future<void> getAppointmentDetails(int appointmentID, int projectID, int clinicID, {Function(dynamic)? onSuccess, Function(String)? onError}) async {
final result = await myAppointmentsRepo.getAppointmentDetails(appointmentID, projectID, clinicID);
result.fold(
(failure) async => await errorHandlerService.handleError(failure: failure),

@ -72,7 +72,7 @@ abstract class MyAppointmentsRepo {
Future<Either<Failure, GenericApiModel<List<RateAppointmentRespModel>>>> getLastRatingAppointment();
Future<Either<Failure, GenericApiModel<AppointmentDetails>>> getAppointmentDetails(int appointmentID, int projectID);
Future<Either<Failure, GenericApiModel<AppointmentDetails>>> getAppointmentDetails(int appointmentID, int projectID, int clinicID);
Future<Either<Failure, GenericApiModel<void>>> sendAppointmentRate(int rate, int appointmentNo, int projectID, int doctorID, int clinicID, String note);
@ -915,10 +915,11 @@ class MyAppointmentsRepoImp implements MyAppointmentsRepo {
}
@override
Future<Either<Failure, GenericApiModel<AppointmentDetails>>> getAppointmentDetails(int appointmentID, int projectID) async {
Future<Either<Failure, GenericApiModel<AppointmentDetails>>> getAppointmentDetails(int appointmentID, int projectID, int clinicID) async {
Map<String, dynamic> mapDevice = {
"AppointmentNumber": appointmentID,
"ProjectID": projectID,
"ClinicID":clinicID
};
try {
GenericApiModel<AppointmentDetails>? apiResponse;

@ -178,10 +178,12 @@ class _LandingPageState extends State<LandingPage> {
final lastAppointment = appointmentRatingViewModel.appointmentRatedList.last;
final appointmentNo = lastAppointment.appointmentNo;
final projectID = lastAppointment.projectID;
final clinicID =lastAppointment.clinicID;
if (appointmentNo == null || projectID == null) return;
appointmentRatingViewModel.getAppointmentDetails(
appointmentNo,
projectID,
clinicID!,
onSuccess: ((response) {
// Only open dialog if details are loaded AND widget is mounted
if (!mounted || appointmentRatingViewModel.appointmentDetails == null) return;

@ -472,15 +472,16 @@ class _FamilyCardsState extends State<FamilyCards> {
// textColor: AppColors.textColor),
widget.isShowDetails ? SizedBox(height: 4.h) : SizedBox(),
widget.isShowDetails
? Wrap(direction: Axis.horizontal, spacing: 4.h, runSpacing: 4.h, children: [
? Row( children: [
AppCustomChipWidget(
icon: AppAssets.file_icon,
richText: "${profile.responseId}".toText10(isBold: true),
labelPadding: EdgeInsetsDirectional.only(start: -4.w, end: 6.w),
labelPadding: EdgeInsetsDirectional.only(start: -10.w, end: 5.w),
),
SizedBox(width: 5.h,),
AppCustomChipWidget(
labelText: "${LocaleKeys.age.tr(context: context)}: ${profile.age ?? "N/A"} ${LocaleKeys.years.tr(context: context)}",
labelPadding: EdgeInsetsDirectional.only(start: 4.w, end: 6.w),
labelPadding: EdgeInsetsDirectional.only(start: 4.w, end: 4.w),
),
])
: SizedBox(),

Loading…
Cancel
Save