diff --git a/lib/constants/app_constants.dart b/lib/constants/app_constants.dart index d01acb8..7a1ad0f 100644 --- a/lib/constants/app_constants.dart +++ b/lib/constants/app_constants.dart @@ -1,7 +1,7 @@ import 'package:flutter/material.dart'; import 'package:logger/logger.dart'; -bool useTestIP = true; +bool useTestIP = false; Logger logger = Logger(printer: PrettyPrinter(printEmojis: false, colors: true, dateTimeFormat: DateTimeFormat.none)); // app globals @@ -16,6 +16,8 @@ class AppStrings { static String fontNameCairo = "Cairo"; static String noInternetConnection = "No Internet Connection"; static String awaitingArrivalEng = "Awaiting Patients Arrival"; + static String awaitingQueueNumberEng = "Awaiting Queue Number"; + static String awaitingQueueNumberAr = "في انتظار رقم قائمة الانتظار"; static String counterNo = "Counter Number: "; static String awaitingArrivalAr = "في انتظار وصول المرضى"; } @@ -121,3 +123,14 @@ class ApiConstants { class CacheConstants { static String lastTimeUpdated = "lastTimeUpdated"; } + +// calling for pharmacy + +// { +// "projectID": 12, +// "counterNo": 1, +// "queueID": 11, +// "isVidaPlus": false, +// "editedBy": 102, +// "apiKey": "EE17D21C7943485D9780223CCE55DCE5" +// } diff --git a/lib/models/ticket_model.dart b/lib/models/ticket_model.dart index 145f10c..99b972d 100644 --- a/lib/models/ticket_model.dart +++ b/lib/models/ticket_model.dart @@ -16,7 +16,12 @@ class TicketDetailsModel { qTypeEnum = json['qType'] != null ? (json['qType'] as int).toQTypeEnum() : null; screenTypeEnum = json['screenType'] != null ? (json['screenType'] as int).toScreenTypeEnum() : null; connectionID = json['connectionID']; - ticketModel = json['data'] != null ? TicketData.fromJson(json['data']) : null; + ticketModel = json['data'] != null + ? TicketData.fromJson( + json['data'], + qTypeEnum: json['qType'] != null ? (json['qType'] as int).toQTypeEnum() : null, + ) + : null; } } @@ -69,7 +74,7 @@ class TicketData { this.editedOn, }); - TicketData.fromJson(Map json) { + TicketData.fromJson(Map json, {QTypeEnum? qTypeEnum}) { id = json['id']; patientID = json['patientID']; laBQGroupID = json['laB_QGroupID']; @@ -87,6 +92,9 @@ class TicketData { postVoiceText = json['pleaseVisitCounterText'] ?? "Please Visit Counter"; patientGender = json['patientGender'] ?? 1; roomNo = json['roomNo'].toString(); + if (qTypeEnum != null && qTypeEnum == QTypeEnum.general) { + roomNo = json['counterNo'].toString(); + } isActive = json['isActive']; createdBy = json['createdBy']; editedBy = json['editedBy']; diff --git a/lib/utilities/enums.dart b/lib/utilities/enums.dart index ad6eb8a..8d0154e 100644 --- a/lib/utilities/enums.dart +++ b/lib/utilities/enums.dart @@ -16,7 +16,6 @@ enum QTypeEnum { lab, // 2 rad, // 3 general, // 4 - pharmacy, // 5 } enum ScreenTypeEnum { diff --git a/lib/utilities/extensions.dart b/lib/utilities/extensions.dart index d0ef02b..37856ca 100644 --- a/lib/utilities/extensions.dart +++ b/lib/utilities/extensions.dart @@ -64,8 +64,6 @@ extension QTypeEnumExtension on int { return QTypeEnum.rad; case 4: return QTypeEnum.general; - case 5: - return QTypeEnum.pharmacy; default: return QTypeEnum.lab; } diff --git a/lib/view_models/screen_config_view_model.dart b/lib/view_models/screen_config_view_model.dart index 5a715cc..efa3ede 100644 --- a/lib/view_models/screen_config_view_model.dart +++ b/lib/view_models/screen_config_view_model.dart @@ -138,7 +138,7 @@ class ScreenConfigViewModel extends ChangeNotifier { GlobalConfigurationsModel? response = await screenDetailsRepo.getGlobalScreenConfigurations(ipAddress: currentScreenIP); if (response == null) { - log("response; ${response}"); + log("response; $response"); return; } updateGlobalConfigurationsModel(value: response); diff --git a/lib/views/kiosk_screens/kiosk_main_screen.dart b/lib/views/kiosk_screens/kiosk_main_screen.dart index 1c21a59..c93740e 100644 --- a/lib/views/kiosk_screens/kiosk_main_screen.dart +++ b/lib/views/kiosk_screens/kiosk_main_screen.dart @@ -65,13 +65,27 @@ class KioskMainScreen extends StatelessWidget { screenConfigViewModel: screenConfigViewModel, title: index == 0 ? "English" : "عربي", icon: AppAssets.languageIcon, - onTap: () { + onTap: () async { if (index == 0) { - screenConfigViewModel.updateCurrentSelectedKioskLanguage(LanguageEnum.english); - screenConfigViewModel.updateKioskScreenState(KioskScreenStateEnums.queueSelectionState); + if (screenConfigViewModel.globalConfigurationsModel.kioskQueueList != null && screenConfigViewModel.globalConfigurationsModel.kioskQueueList!.length == 1) { + await generateTicketForQueue( + screenConfigViewModel: screenConfigViewModel, + kioskQueueModel: screenConfigViewModel.globalConfigurationsModel.kioskQueueList![0], + ); + } else { + screenConfigViewModel.updateCurrentSelectedKioskLanguage(LanguageEnum.english); + screenConfigViewModel.updateKioskScreenState(KioskScreenStateEnums.queueSelectionState); + } } else { - screenConfigViewModel.updateCurrentSelectedKioskLanguage(LanguageEnum.arabic); - screenConfigViewModel.updateKioskScreenState(KioskScreenStateEnums.queueSelectionState); + if (screenConfigViewModel.globalConfigurationsModel.kioskQueueList != null && screenConfigViewModel.globalConfigurationsModel.kioskQueueList!.length == 1) { + await generateTicketForQueue( + screenConfigViewModel: screenConfigViewModel, + kioskQueueModel: screenConfigViewModel.globalConfigurationsModel.kioskQueueList![0], + ); + } else { + screenConfigViewModel.updateCurrentSelectedKioskLanguage(LanguageEnum.arabic); + screenConfigViewModel.updateKioskScreenState(KioskScreenStateEnums.queueSelectionState); + } } }, ), @@ -103,17 +117,7 @@ class KioskMainScreen extends StatelessWidget { title: screenConfigViewModel.currentSelectedKioskLanguage == LanguageEnum.english ? "${kioskQueueModel.queueName}" : "${kioskQueueModel.queueNameN}", icon: AppAssets.kioskQueueIcon, onTap: () async { - screenConfigViewModel.updateKioskScreenState(KioskScreenStateEnums.busyState); - KioskPatientTicket? kioskPatientTicket = await screenConfigViewModel.createTicketFromKiosk( - projectId: kioskQueueModel.projectID ?? 0, - queueId: kioskQueueModel.queueID ?? 0, - ); - if (kioskPatientTicket == null) { - screenConfigViewModel.updateKioskScreenState(KioskScreenStateEnums.languageState); - return; - } - screenConfigViewModel.updateTicketGeneratedFromKiosk(kioskPatientTicket); - screenConfigViewModel.updateKioskScreenState(KioskScreenStateEnums.ticketNoState); + await generateTicketForQueue(screenConfigViewModel: screenConfigViewModel, kioskQueueModel: kioskQueueModel); }, ), ], @@ -171,6 +175,23 @@ class KioskMainScreen extends StatelessWidget { ); } + Future generateTicketForQueue({ + required ScreenConfigViewModel screenConfigViewModel, + required KioskQueueModel kioskQueueModel, + }) async { + screenConfigViewModel.updateKioskScreenState(KioskScreenStateEnums.busyState); + KioskPatientTicket? kioskPatientTicket = await screenConfigViewModel.createTicketFromKiosk( + projectId: kioskQueueModel.projectID ?? 0, + queueId: kioskQueueModel.queueID ?? 0, + ); + if (kioskPatientTicket == null) { + screenConfigViewModel.updateKioskScreenState(KioskScreenStateEnums.languageState); + return; + } + screenConfigViewModel.updateTicketGeneratedFromKiosk(kioskPatientTicket); + screenConfigViewModel.updateKioskScreenState(KioskScreenStateEnums.ticketNoState); + } + Widget dataContentKiosk({required BuildContext context}) { return Padding( padding: const EdgeInsets.all(10), diff --git a/lib/views/main_queue_screen/main_queue_screen.dart b/lib/views/main_queue_screen/main_queue_screen.dart index 50d0025..acc1035 100644 --- a/lib/views/main_queue_screen/main_queue_screen.dart +++ b/lib/views/main_queue_screen/main_queue_screen.dart @@ -21,7 +21,14 @@ class MainQueueScreen extends StatelessWidget { Widget widget = const SizedBox(); String text = AppStrings.awaitingArrivalEng; String fontFamily = AppStrings.fontNamePoppins; + + if (screenConfigViewModel.currentQTypeEnum == QTypeEnum.general) { + text = AppStrings.awaitingQueueNumberEng; + } if (screenConfigViewModel.globalConfigurationsModel.screenLanguageEnum == LanguageEnum.arabic) { + if (screenConfigViewModel.currentQTypeEnum == QTypeEnum.general) { + text = AppStrings.awaitingQueueNumberAr; + } text = AppStrings.awaitingArrivalAr; fontFamily = AppStrings.fontNameCairo; }