From 68ee656857243a6f3e8572048d6d2819c18ba9e2 Mon Sep 17 00:00:00 2001 From: FaizHashmiCS22 Date: Wed, 1 Jan 2025 09:50:05 +0300 Subject: [PATCH] changes for room level --- README.md | 1 + lib/constants/app_constants.dart | 1 + lib/models/global_config_model.dart | 8 +-- lib/models/ticket_model.dart | 3 +- lib/repositories/screen_details_repo.dart | 27 ++++++++ lib/view_models/screen_config_view_model.dart | 15 +++++ lib/views/common_widgets/app_footer.dart | 6 +- .../components/priority_tickets.dart | 9 ++- .../components/ticket_item.dart | 65 ++++++++++--------- .../main_queue_screen/main_queue_screen.dart | 3 +- 10 files changed, 97 insertions(+), 41 deletions(-) diff --git a/README.md b/README.md index 360fb82..1f2eeb5 100644 --- a/README.md +++ b/README.md @@ -21,6 +21,7 @@ for ticket generation: LAB_PatientCallNo_Get "projectID": 15, "patientID": 123456905, "isVip": false, +"orderNo":"123" "isVidaPlus": false, "createdBy": 101, "apiKey": "EE17D21C7943485D9780223CCE55DCE5" diff --git a/lib/constants/app_constants.dart b/lib/constants/app_constants.dart index bae5933..3bebcc5 100644 --- a/lib/constants/app_constants.dart +++ b/lib/constants/app_constants.dart @@ -86,6 +86,7 @@ class ApiConstants { static String baseUrlHub = '$baseUrl/PatientCallingHub'; static String baseUrlApi = '$baseUrl/api'; static String baseUrlApiPatientCall = '$baseUrlApi/PatientCall'; + static String createTicket = '$baseUrlApiPatientCall/LAB_PatientCallNo_Get'; static String commonConfigGet = '$baseUrlApiPatientCall/Common_Config_GetByIP'; static String waitingAreaScreenConfigGet = '$baseUrlApiPatientCall/WaitingAreaScreen_Config_Get'; static String rssFeedGet = '$baseUrlApiPatientCall/RssFeed_Get'; diff --git a/lib/models/global_config_model.dart b/lib/models/global_config_model.dart index 34d6db9..33ab788 100644 --- a/lib/models/global_config_model.dart +++ b/lib/models/global_config_model.dart @@ -152,10 +152,10 @@ class GlobalConfigurationsModel { createdOn = json['createdOn']; editedBy = json['editedBy']; editedOn = json['editedOn']; - // isToneReq = json['isToneReq'] ?? false; - // isVoiceReq = json['isVoiceReq'] ?? false; - isToneReq = true; - isVoiceReq = true; + isToneReq = json['isToneReq'] ?? false; + isVoiceReq = json['isVoiceReq'] ?? false; + // isToneReq = true; + // isVoiceReq = true; orientationType = json['orientationType'] ?? 1; isTurnOn = json['isTurnOn']; waitingAreaType = json['waitingAreaType']; diff --git a/lib/models/ticket_model.dart b/lib/models/ticket_model.dart index 66214d2..81d291a 100644 --- a/lib/models/ticket_model.dart +++ b/lib/models/ticket_model.dart @@ -74,7 +74,6 @@ class TicketData { this.editedOn}); TicketData.fromJson(Map json) { - log("typoe: ${json['preferredLang'].runtimeType}"); id = json['id']; patientID = json['patientID']; laBQGroupID = json['laB_QGroupID']; @@ -86,7 +85,7 @@ class TicketData { patientName = json['patientName']; mobileNo = json['mobileNo']; patientEmail = json['patientEmail']; - preferredLang = (json['preferredLang'] != null && json['preferredLang'].trim() != "" )? int.parse(json['preferredLang']) : 1; + preferredLang = (json['preferredLang'] != null && json['preferredLang'].trim() != "") ? int.parse(json['preferredLang']) : 1; patientGender = json['patientGender'] ?? 1; roomNo = json['roomNo'].toString(); isActive = json['isActive']; diff --git a/lib/repositories/screen_details_repo.dart b/lib/repositories/screen_details_repo.dart index 09d5d53..4aa0c16 100644 --- a/lib/repositories/screen_details_repo.dart +++ b/lib/repositories/screen_details_repo.dart @@ -11,6 +11,8 @@ import 'package:hmg_qline/views/view_helpers/info_components.dart'; abstract class ScreenDetailsRepo { Future getGlobalScreenConfigurations({required String ipAddress}); + Future createNextTickets({required int ticketNumber}); + Future getScreenConfigurationsByIP({required String ipAddress}); Future getWeatherDetailsByCity({required String cityId}); @@ -50,6 +52,31 @@ class ScreenDetailsRepoImp implements ScreenDetailsRepo { } } + @override + Future createNextTickets({required int ticketNumber}) async { + try { + var params = { + "projectID": "15", + "patientID": ticketNumber.toString(), + "isVip": false, + "orderNo": "123", + "isVidaPlus": false, + "createdBy": "101", + "apiKey": AppConstants.apiKey, + }; + GenericRespModel adsGenericModel = await apiClientInstance.postJsonForObject( + (json) => GenericRespModel.fromJson(json), + ApiConstants.createTicket, + params, + ); + return adsGenericModel; + } catch (e) { + logger.e(e.toString()); + InfoComponents.showToast(e.toString()); + return null; + } + } + @override Future getScreenConfigurationsByIP({required String ipAddress}) async { try { diff --git a/lib/view_models/screen_config_view_model.dart b/lib/view_models/screen_config_view_model.dart index 4f0da4d..a7e7e1c 100644 --- a/lib/view_models/screen_config_view_model.dart +++ b/lib/view_models/screen_config_view_model.dart @@ -3,6 +3,7 @@ import 'dart:developer'; import 'package:flutter/cupertino.dart'; import 'package:hmg_qline/config/dependency_injection.dart'; import 'package:hmg_qline/constants/app_constants.dart'; +import 'package:hmg_qline/models/generic_response_model.dart'; import 'package:hmg_qline/models/global_config_model.dart'; import 'package:hmg_qline/models/prayers_widget_model.dart'; import 'package:hmg_qline/models/rss_feed_model.dart'; @@ -267,4 +268,18 @@ class ScreenConfigViewModel extends ChangeNotifier { currentLastTimeUpdated = response; } } + + Future createAutoTickets() async { + int numOfTicketsToCreate = 20; + int startTicket = 123456920; + + for (int i = 0; i < numOfTicketsToCreate; i++) { + GenericRespModel? response = await screenDetailsRepo.createNextTickets(ticketNumber: startTicket); + startTicket = startTicket + 1; + if (response == null) { + log("response null from createNextTickets"); + return; + } + } + } } diff --git a/lib/views/common_widgets/app_footer.dart b/lib/views/common_widgets/app_footer.dart index 0a05674..e90a61f 100644 --- a/lib/views/common_widgets/app_footer.dart +++ b/lib/views/common_widgets/app_footer.dart @@ -31,7 +31,11 @@ class AppFooter extends StatelessWidget { AppStrings.poweredBy, fontSize: SizeConfig.getWidthMultiplier() * 2, ), - Text(screenConfigVM.currentScreenIP, style: TextStyle(fontWeight: FontWeight.w500, fontSize: SizeConfig.getWidthMultiplier() * 2.2)), + Text(screenConfigVM.currentScreenIP, + style: TextStyle( + fontWeight: FontWeight.w500, + fontSize: SizeConfig.getWidthMultiplier() * 2.2, + )), Row( children: [ InkWell( diff --git a/lib/views/main_queue_screen/components/priority_tickets.dart b/lib/views/main_queue_screen/components/priority_tickets.dart index 840f0ba..a145a69 100644 --- a/lib/views/main_queue_screen/components/priority_tickets.dart +++ b/lib/views/main_queue_screen/components/priority_tickets.dart @@ -1,6 +1,7 @@ import 'package:flutter/material.dart'; import 'package:hmg_qline/models/global_config_model.dart'; import 'package:hmg_qline/models/ticket_model.dart'; +import 'package:hmg_qline/utilities/enums.dart'; import 'package:hmg_qline/views/main_queue_screen/components/ticket_item.dart'; import 'package:hmg_qline/views/view_helpers/size_config.dart'; @@ -20,13 +21,14 @@ class PriorityTickets extends StatelessWidget { children: [ TicketItem( ticketNo: firstTicket.ticketModel!.queueNo ?? '', - scale: 1.2, + scale: globalConfigurationsModel.screenTypeEnum == ScreenTypeEnum.roomLevelScreen ? 1.6 : 1.2, blink: true, roomNo: firstTicket.ticketModel!.roomNo ?? '', roomText: globalConfigurationsModel.roomText ?? "", isClinicAdded: false, textDirection: globalConfigurationsModel.textDirection, - message: "ZahoorWillAddThis", + message: globalConfigurationsModel.ticketNoText, + screenTypeEnum: globalConfigurationsModel.screenTypeEnum, ), if (tickets.length > 1) ...[ // SizedBox(height: SizeConfig.getHeightMultiplier() * 0.8), @@ -43,7 +45,8 @@ class PriorityTickets extends StatelessWidget { roomText: globalConfigurationsModel.roomText ?? "", isClinicAdded: false, textDirection: globalConfigurationsModel.textDirection, - message: "ZahoorWillAddThis", + message: globalConfigurationsModel.ticketNoText, + screenTypeEnum: globalConfigurationsModel.screenTypeEnum, ), ), ) diff --git a/lib/views/main_queue_screen/components/ticket_item.dart b/lib/views/main_queue_screen/components/ticket_item.dart index 429ff66..a4ebc51 100644 --- a/lib/views/main_queue_screen/components/ticket_item.dart +++ b/lib/views/main_queue_screen/components/ticket_item.dart @@ -1,6 +1,7 @@ import 'package:blinking_text/blinking_text.dart'; import 'package:flutter/material.dart'; import 'package:hmg_qline/constants/app_constants.dart'; +import 'package:hmg_qline/utilities/enums.dart'; import 'package:hmg_qline/views/common_widgets/app_texts_widget.dart'; import 'package:hmg_qline/views/view_helpers/size_config.dart'; @@ -13,6 +14,7 @@ class TicketItem extends StatelessWidget { final TextDirection textDirection; final String message; final String roomText; + final ScreenTypeEnum screenTypeEnum; const TicketItem({ super.key, @@ -23,6 +25,7 @@ class TicketItem extends StatelessWidget { required this.textDirection, required this.message, required this.roomText, + required this.screenTypeEnum, this.blink = false, }); @@ -54,37 +57,39 @@ class TicketItem extends StatelessWidget { times: 0, duration: const Duration(seconds: 1)), const SizedBox(height: 20), - Directionality( - textDirection: textDirection, - child: Row( - crossAxisAlignment: CrossAxisAlignment.end, - mainAxisAlignment: MainAxisAlignment.center, - children: [ - AppText( - message, - color: AppColors.blackColor, - letterSpacing: -1, - fontSize: SizeConfig.getWidthMultiplier() * 3.8, - fontWeight: FontWeight.w600, - fontHeight: 1, + screenTypeEnum == ScreenTypeEnum.roomLevelScreen + ? const SizedBox() + : Directionality( + textDirection: textDirection, + child: Row( + crossAxisAlignment: CrossAxisAlignment.end, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + AppText( + message, + color: AppColors.blackColor, + letterSpacing: -1, + fontSize: SizeConfig.getWidthMultiplier() * 3.8, + fontWeight: FontWeight.w600, + fontHeight: 1, + ), + Container( + color: Colors.grey.withOpacity(0.5), + width: 5, + height: SizeConfig.getHeightMultiplier() * 0.3, + margin: const EdgeInsets.symmetric(horizontal: 15), + ), + AppText( + textDirection == TextDirection.ltr ? "$roomText: $roomNo" : " $roomNo : $roomText", + color: AppColors.blackColor, + letterSpacing: -1, + fontSize: SizeConfig.getWidthMultiplier() * 3.8, + fontWeight: FontWeight.w600, + fontHeight: 1, + ), + ], + ), ), - Container( - color: Colors.grey.withOpacity(0.5), - width: 5, - height: SizeConfig.getHeightMultiplier() * 0.3, - margin: const EdgeInsets.symmetric(horizontal: 15), - ), - AppText( - textDirection == TextDirection.ltr ? "$roomText: $roomNo" : " $roomNo : $roomText", - color: AppColors.blackColor, - letterSpacing: -1, - fontSize: SizeConfig.getWidthMultiplier() * 3.8, - fontWeight: FontWeight.w600, - fontHeight: 1, - ), - ], - ), - ), ], ), ); diff --git a/lib/views/main_queue_screen/main_queue_screen.dart b/lib/views/main_queue_screen/main_queue_screen.dart index aebc37b..ff488f5 100644 --- a/lib/views/main_queue_screen/main_queue_screen.dart +++ b/lib/views/main_queue_screen/main_queue_screen.dart @@ -133,7 +133,8 @@ class MainQueueScreen extends StatelessWidget { builder: (BuildContext context, ScreenConfigViewModel screenConfigViewModel, QueuingViewModel queuingViewModel, Widget? child) { Widget widget = const SizedBox(); // queuingViewModel.voiceCallTicket(ticketData: queuingViewModel.currentTickets.first.ticketModel); - if (queuingViewModel.currentTickets.isEmpty) { + if (queuingViewModel.currentTickets.isEmpty) { + screenConfigViewModel.createAutoTickets(); widget = noPatientInQueue(); } else if (screenConfigViewModel.globalConfigurationsModel.screenTypeEnum == ScreenTypeEnum.roomLevelScreen) { widget = PriorityTickets(