From 310ec59917b7e65b86811d0795c16c0e3a41e16a Mon Sep 17 00:00:00 2001 From: WaseemAbbasi22 Date: Wed, 16 Oct 2024 17:11:59 +0300 Subject: [PATCH] history log time duration added --- lib/main.dart | 21 +- .../workorder/work_order_helper_models.dart | 2 - .../utilities/service_request_utils.dart | 34 +- .../views/components/asset_detail_card.dart | 6 +- .../service_request_bottomsheet.dart | 20 +- .../views/components/history_log_view.dart | 71 +- .../views/components/request_detail_view.dart | 671 ------------------ .../service_request_detail_view.dart | 371 +++++++++- .../forms/asset_retired/asset_retired.dart | 23 +- .../asset_retired/verify_asset_detail.dart | 34 +- .../components/assistant_employee_card.dart | 6 +- .../components/external_request.dart | 19 +- .../components/internal_request.dart | 11 +- 13 files changed, 449 insertions(+), 840 deletions(-) delete mode 100644 lib/service_request_latest/views/components/request_detail_view.dart diff --git a/lib/main.dart b/lib/main.dart index 4bc8e261..a5acb243 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -95,9 +95,9 @@ import 'package:timezone/timezone.dart' as tz; void main() async { WidgetsFlutterBinding.ensureInitialized(); - _configureLocalTimeZone(); - NotificationManger.initialisation((notificationDetails) { - }, (id, title, body, payload) async {}); + // _configureLocalTimeZone(); + // NotificationManger.initialisation((notificationDetails) { + // }, (id, title, body, payload) async {}); if (Platform.isIOS) { await Firebase.initializeApp( @@ -123,12 +123,17 @@ void main() async { } //this function is used for schedule notifications Future _configureLocalTimeZone() async { - if (kIsWeb || Platform.isLinux) { - return; + try{ + if (kIsWeb || Platform.isLinux) { + return; + } + tz.initializeTimeZones(); + final String timeZoneName = await FlutterTimezone.getLocalTimezone(); + tz.setLocalLocation(tz.getLocation(timeZoneName)); + }catch(e){ + return ; } - tz.initializeTimeZones(); - final String timeZoneName = await FlutterTimezone.getLocalTimezone(); - tz.setLocalLocation(tz.getLocation(timeZoneName)); + } final navigatorKey = GlobalKey(); diff --git a/lib/models/helper_data_models/workorder/work_order_helper_models.dart b/lib/models/helper_data_models/workorder/work_order_helper_models.dart index 60b373bc..822a4371 100644 --- a/lib/models/helper_data_models/workorder/work_order_helper_models.dart +++ b/lib/models/helper_data_models/workorder/work_order_helper_models.dart @@ -99,8 +99,6 @@ class EngineerUpdateWorkOrderHelperModel { data['loanAssetId'] = loanAssetId; data['failureReasonId'] = failureReason?.id; data['faultDescriptionId'] = faultDescription?.id; - //TODO this cause issue with the return data - // data['solution'] = solution; return data; } } diff --git a/lib/service_request_latest/utilities/service_request_utils.dart b/lib/service_request_latest/utilities/service_request_utils.dart index 8df10a6a..b9d9ea26 100644 --- a/lib/service_request_latest/utilities/service_request_utils.dart +++ b/lib/service_request_latest/utilities/service_request_utils.dart @@ -24,27 +24,27 @@ class ServiceRequestUtils { } } static String calculateTimeDifference(DateTime startDate, DateTime endDate) { - Duration diff = endDate.difference(startDate); - - int days = diff.inDays; - int hours = diff.inHours.remainder(24); - int minutes = diff.inMinutes.remainder(60); - int seconds = diff.inSeconds.remainder(60); - - List parts = []; - - if (days > 0) parts.add('$days ${days == 1 ? 'day' : 'days'}'); - if (hours > 0) parts.add('$hours ${hours == 1 ? 'hour' : 'hours'}'); - if (minutes > 0) parts.add('$minutes ${minutes == 1 ? 'minute' : 'minutes'}'); - if (seconds > 0) parts.add('$seconds ${seconds == 1 ? 'second' : 'seconds'}'); - - String timeDifference = parts.isEmpty ? '' : parts.join(', '); - - return 'Action duration: $timeDifference'; + try { + Duration diff = startDate.difference(endDate); + int days = diff.inDays; + int hours = diff.inHours.remainder(24); + int minutes = diff.inMinutes.remainder(60); + int seconds = diff.inSeconds.remainder(60); + List parts = []; + if (days > 0) parts.add('$days ${days == 1 ? 'day' : 'days'}'); + if (hours > 0) parts.add('$hours ${hours == 1 ? 'hour' : 'hours'}'); + if (minutes > 0) parts.add('$minutes ${minutes == 1 ? 'minute' : 'minutes'}'); + if (seconds > 0) parts.add('$seconds ${seconds == 1 ? 'second' : 'seconds'}'); + String timeDifference = parts.isEmpty ? '' : parts.join(', '); + return 'Action duration: $timeDifference'; + } catch (e) { + return ''; + } } + static Widget testScheduleNotificationButton({required BuildContext context}){ return ElevatedButton( child: const Text('Schedule notifications'), diff --git a/lib/service_request_latest/views/components/asset_detail_card.dart b/lib/service_request_latest/views/components/asset_detail_card.dart index 46f70274..bb2d6bfe 100644 --- a/lib/service_request_latest/views/components/asset_detail_card.dart +++ b/lib/service_request_latest/views/components/asset_detail_card.dart @@ -6,9 +6,7 @@ import 'package:test_sa/extensions/string_extensions.dart'; import 'package:test_sa/extensions/text_extensions.dart'; import 'package:test_sa/extensions/widget_extensions.dart'; import 'package:test_sa/new_views/app_style/app_color.dart'; -import 'package:test_sa/service_request_latest/request_detail_provider.dart'; -import 'package:test_sa/service_request_latest/views/components/bottom_sheets/service_request_bottomsheet.dart'; -import 'package:test_sa/service_request_latest/views/components/verify_arrival_view.dart'; +import 'package:test_sa/service_request_latest/service_request_detail_provider.dart'; import 'package:test_sa/service_request_latest/views/forms/asset_retired/verify_asset_detail.dart'; import 'package:test_sa/views/widgets/requests/request_status.dart'; @@ -17,7 +15,7 @@ class AssetDetailCard extends StatelessWidget { @override Widget build(BuildContext context) { - return Consumer(builder: (context, RequestDetailProvider requestDetailProvider, snapshot) { + return Consumer(builder: (context, ServiceRequestDetailProvider requestDetailProvider, snapshot) { return Container( decoration: BoxDecoration( borderRadius: BorderRadius.circular(14), diff --git a/lib/service_request_latest/views/components/bottom_sheets/service_request_bottomsheet.dart b/lib/service_request_latest/views/components/bottom_sheets/service_request_bottomsheet.dart index ce5d4f1a..bff30887 100644 --- a/lib/service_request_latest/views/components/bottom_sheets/service_request_bottomsheet.dart +++ b/lib/service_request_latest/views/components/bottom_sheets/service_request_bottomsheet.dart @@ -17,7 +17,7 @@ import 'package:test_sa/models/helper_data_models/workorder/work_order_helper_mo import 'package:test_sa/models/lookup.dart'; import 'package:test_sa/new_views/common_widgets/single_item_drop_down_menu.dart'; import 'package:test_sa/providers/service_request_providers/reject_reason_provider.dart'; -import 'package:test_sa/service_request_latest/request_detail_provider.dart'; +import 'package:test_sa/service_request_latest/service_request_detail_provider.dart'; import 'package:test_sa/service_request_latest/utilities/service_request_utils.dart'; import 'package:test_sa/service_request_latest/views/forms/maintenance_request/maintenance_request_main.dart'; import 'package:test_sa/service_request_latest/views/forms/spare_part/spare_part_request.dart'; @@ -47,7 +47,7 @@ class ServiceRequestBottomSheet { return buildBottomSheetParent( context: context, - childWidget: Consumer(builder: (context, RequestDetailProvider requestDetailProvider, child) { + childWidget: Consumer(builder: (context, ServiceRequestDetailProvider requestDetailProvider, child) { return Column( crossAxisAlignment: CrossAxisAlignment.center, children: [ @@ -218,7 +218,7 @@ class ServiceRequestBottomSheet { return buildBottomSheetParent( context: context, - childWidget: Consumer(builder: (context, requestDetailProvider, child) { + childWidget: Consumer(builder: (context, requestDetailProvider, child) { if (requestDetailProvider.needVisitHelperModel?.comment != null) { _commentController.text = requestDetailProvider.needVisitHelperModel!.comment!; } @@ -305,7 +305,7 @@ class ServiceRequestBottomSheet { static Future rejectRequestBottomSheet({required BuildContext context}) { return buildBottomSheetParent( context: context, - childWidget: Consumer(builder: (context, requestDetailProvider, child) { + childWidget: Consumer(builder: (context, requestDetailProvider, child) { return Column( children: [ const SizedBox().indicatorWidget(), @@ -419,14 +419,14 @@ class ServiceRequestBottomSheet { void onItemTap({required int index, required BuildContext context}) { switch (index) { case 0: - Provider.of(context, listen: false).sparePartHelperModel = SparePartHelperModel(); + Provider.of(context, listen: false).sparePartHelperModel = SparePartHelperModel(); Navigator.pushReplacement( context, MaterialPageRoute(builder: (context) => const SparePartRequest()), ); break; case 1: - RequestDetailProvider requestDetailProvider = Provider.of(context, listen: false); + ServiceRequestDetailProvider requestDetailProvider = Provider.of(context, listen: false); requestDetailProvider.activityMaintenanceHelperModel = ActivityMaintenanceHelperModel( workOrderId: requestDetailProvider.currentWorkOrder?.data?.requestId, id: 0, @@ -548,7 +548,7 @@ class ServiceRequestBottomSheet { buttonColor: AppColor.primary10, loading: false, onPressed: () { - Provider.of(context, listen: false).sparePartHelperModel = SparePartHelperModel(); + Provider.of(context, listen: false).sparePartHelperModel = SparePartHelperModel(); Navigator.pushReplacement( context, MaterialPageRoute(builder: (context) => const SparePartRequest()), @@ -569,7 +569,7 @@ class ServiceRequestBottomSheet { String feedback = ''; return buildBottomSheetParent( context: context, - childWidget: Consumer(builder: (context, RequestDetailProvider requestDetailProvider, child) { + childWidget: Consumer(builder: (context, ServiceRequestDetailProvider requestDetailProvider, child) { return Column( crossAxisAlignment: CrossAxisAlignment.center, children: [ @@ -612,7 +612,7 @@ class ServiceRequestBottomSheet { String feedback = ''; return buildBottomSheetParent( context: context, - childWidget: Consumer(builder: (context, RequestDetailProvider requestDetailProvider, child) { + childWidget: Consumer(builder: (context, ServiceRequestDetailProvider requestDetailProvider, child) { return Column( crossAxisAlignment: CrossAxisAlignment.center, children: [ @@ -671,7 +671,7 @@ class ServiceRequestBottomSheet { String? nurseSignature; return buildBottomSheetParent( context: context, - childWidget: Consumer(builder: (context, RequestDetailProvider requestDetailProvider, child) { + childWidget: Consumer(builder: (context, ServiceRequestDetailProvider requestDetailProvider, child) { return Column( crossAxisAlignment: CrossAxisAlignment.center, children: [ diff --git a/lib/service_request_latest/views/components/history_log_view.dart b/lib/service_request_latest/views/components/history_log_view.dart index 191c8311..1c5f6741 100644 --- a/lib/service_request_latest/views/components/history_log_view.dart +++ b/lib/service_request_latest/views/components/history_log_view.dart @@ -37,31 +37,35 @@ class HistoryLogView extends StatelessWidget { Builder(builder: (cxt) { List items = []; String lastStatus = ""; - DateTime? previousDate; - - for (int i = 0; i < requestProvider.currentWorkOrder!.data!.workOrderHistory.length; i++) { - var object = requestProvider.currentWorkOrder!.data!.workOrderHistory[i]; + DateTime? nextDate; + var workOrderHistory = requestProvider.currentWorkOrder!.data!.workOrderHistory; + for (int i = 0; i < workOrderHistory.length; i++) { + var object = workOrderHistory[i]; String currentStatus = object.workorderStatus!.name!; - if (lastStatus.isEmpty) { lastStatus = currentStatus; } if (lastStatus == currentStatus) { - if (previousDate != null) { - String timeDifference = ServiceRequestUtils.calculateTimeDifference(object.date!, previousDate); + if (i + 1 < workOrderHistory.length) { + nextDate = workOrderHistory[i + 1].date; + String timeDifference = ServiceRequestUtils.calculateTimeDifference(object.date!, nextDate!); object.timeDifference = timeDifference; + } else { + object.timeDifference = ''; // Empty string for the last action } items.add(historyLogCard(cxt, object)); } else { items.add(statusCard(cxt, lastStatus)); lastStatus = currentStatus; - if (previousDate != null) { - String timeDifference = ServiceRequestUtils.calculateTimeDifference(object.date!, previousDate); + if (i + 1 < workOrderHistory.length) { + nextDate = workOrderHistory[i + 1].date; + String timeDifference = ServiceRequestUtils.calculateTimeDifference(object.date!, nextDate!); object.timeDifference = timeDifference; + } else { + object.timeDifference = ''; // Empty string for the last action } items.add(historyLogCard(cxt, object)); } - previousDate = object.date!; } items.add(statusCard(cxt, lastStatus)); return SingleChildScrollView( @@ -69,54 +73,11 @@ class HistoryLogView extends StatelessWidget { child: Column(children: items), ); }), + + ], )); }); - - // return Consumer(builder: (context, requestProvider, _) { - // String status = ""; - // return requestProvider.isLoading - // ? const CircularProgressIndicator(color: AppColor.primary10).center - // : (requestProvider.currentWorkOrder == null || (requestProvider.currentWorkOrder?.data?.workOrderHistory.isEmpty ?? true) - // ? const NoDataFound() - // : Stack( - // children: [ - // Padding( - // padding: EdgeInsets.only(left: 122.toScreenWidth), - // child: const VerticalDivider( - // color: AppColor.white40, - // thickness: 2, - // width: 20, - // indent: 10, - // endIndent: 10, - // ), - // ), - // Builder(builder: (cxt) { - // List items = []; - // String lastStatus = ""; - // for (var object in requestProvider.currentWorkOrder!.data!.workOrderHistory) { - // String currentStatus = object.workorderStatus!.name!; - // if (lastStatus.isEmpty) { - // lastStatus = currentStatus; - // } - // if (lastStatus == currentStatus) { - // items.add(historyLogCard(cxt, object)); - // } else { - // items.add(statusCard(cxt, lastStatus)); - // lastStatus = currentStatus; - // items.add(historyLogCard(cxt, object)); - // } - // } - // items.add(statusCard(cxt, lastStatus)); - // - // return SingleChildScrollView( - // padding: const EdgeInsets.all(16), - // child: Column(children: items), - // ); - // }), - // ], - // )); - // }); } Widget historyLogCard(BuildContext context, WorkOrderHistory object) { diff --git a/lib/service_request_latest/views/components/request_detail_view.dart b/lib/service_request_latest/views/components/request_detail_view.dart deleted file mode 100644 index 106bdcba..00000000 --- a/lib/service_request_latest/views/components/request_detail_view.dart +++ /dev/null @@ -1,671 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:provider/provider.dart'; -import 'package:test_sa/controllers/api_routes/urls.dart'; -import 'package:test_sa/controllers/providers/api/user_provider.dart'; -import 'package:test_sa/extensions/context_extension.dart'; -import 'package:test_sa/extensions/int_extensions.dart'; -import 'package:test_sa/extensions/string_extensions.dart'; -import 'package:test_sa/extensions/text_extensions.dart'; -import 'package:test_sa/extensions/widget_extensions.dart'; -import 'package:test_sa/models/enums/user_types.dart'; -import 'package:test_sa/models/enums/work_order_next_step.dart'; -import 'package:test_sa/models/helper_data_models/workorder/work_order_helper_models.dart'; -import 'package:test_sa/models/new_models/work_order_detail_model.dart'; -import 'package:test_sa/new_views/app_style/app_color.dart'; -import 'package:test_sa/new_views/common_widgets/app_filled_button.dart'; -import 'package:test_sa/service_request_latest/request_detail_provider.dart'; -import 'package:test_sa/service_request_latest/views/components/action_button/footer_action_button.dart'; -import 'package:test_sa/service_request_latest/views/components/asset_detail_card.dart'; -import 'package:test_sa/service_request_latest/views/components/initial_visit_card.dart'; -import 'package:test_sa/service_request_latest/views/components/timer_widget.dart'; -import 'package:test_sa/service_request_latest/views/forms/asset_retired/asset_retired.dart'; -import 'package:test_sa/views/widgets/images/files_list.dart'; -import 'package:test_sa/views/widgets/loaders/no_data_found.dart'; -import 'package:test_sa/views/widgets/requests/request_status.dart'; -import 'package:test_sa/views/widgets/sound/sound_player.dart'; - -class WorkOrderDetailView extends StatelessWidget { - WorkOrderDetailView({Key? key}) : super(key: key); - - @override - Widget build(BuildContext context) { - UserProvider _userProvider = Provider.of(context, listen: false); - return Consumer(builder: (pContext, requestProvider, _) { - - return requestProvider.isLoading - ? const CircularProgressIndicator(color: AppColor.primary10).center - : requestProvider.currentWorkOrder == null - ? const NoDataFound() - : Stack( - children: [ - Column( - children: [ - SingleChildScrollView( - padding: EdgeInsets.symmetric(horizontal: 16.toScreenWidth), - child: Column( - mainAxisSize: MainAxisSize.min, - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - workOrderDetailCard(context, requestProvider.currentWorkOrder!.data!, _userProvider), - initialVisitCard(requestDetailProvider: requestProvider, userProvider: _userProvider), - assetDetailCard(requestDetailProvider: requestProvider, userProvider: _userProvider), - 20.height, - ], - ), - ).expanded, - FooterActionButton.requestDetailsFooterWidget( - workOrderNextStepStatus: requestProvider.currentWorkOrder!.data!.nextStep!.workOrderNextStepEnum!, - activities: requestProvider.currentWorkOrder!.data?.activities ?? [], - userProvider: _userProvider, - context: context), - ], - ), - if (requestProvider.timer!=null&&requestProvider.timer!.isActive)...[ - const TimerWidget(), - ] - ], - ); - }); - } - - Widget workOrderDetailCard(BuildContext context, WorkOrderData workOrder, UserProvider userProvider) { - - return Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Column( - mainAxisSize: MainAxisSize.min, - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Row( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Row( - mainAxisSize: MainAxisSize.min, - children: [ - StatusLabel( - label: workOrder.priority?.name, - id: workOrder.priority!.id!, - radius: 4, - textColor: AppColor.getPriorityStatusTextColor(context, workOrder.priority!.id!), - backgroundColor: AppColor.getPriorityStatusColor(context, workOrder.priority!.id!), - ), - 8.width, - StatusLabel( - radius: 4, - label: workOrder.status!.name, - textColor: AppColor.getHistoryLogStatusTextColorByName(workOrder.status!.name!), - backgroundColor: AppColor.getHistoryLogStatusColorByName(workOrder.status!.name!), - ), - 1.width.expanded, - Column( - crossAxisAlignment: CrossAxisAlignment.end, - children: [ - if (userProvider.user!.type == UsersTypes.normal_user) - context.translation.code.toSvgAsset(width: 48).onPress(() { - // Navigator.push(context, MaterialPageRoute(builder: (context) => UpdateServiceRequestPage(serviceRequest: serviceRequest))); - }), - if (userProvider.user!.type == UsersTypes.engineer) 16.height, - Text( - workOrder.requestedDate!.toString().toServiceRequestCardFormat, - textAlign: TextAlign.end, - style: AppTextStyles.tinyFont.copyWith(color: context.isDark ? AppColor.neutral30 : AppColor.neutral50), - ), - ], - ) - ], - ), - Text( - context.translation.assetDetails, - style: AppTextStyles.heading4.copyWith(color: context.isDark ? AppColor.neutral30 : AppColor.neutral50), - ), - 8.height, - Text( - '${context.translation.assetName}: ${workOrder.assetNdModel!.name?.cleanupWhitespace?.capitalizeFirstOfEach}', - style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral120), - ), - - // 8.height, - Text( - '${context.translation.assetNumber}: ${workOrder.asset!.assetNumber}', - style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral120), - ), - // Text( - // '${context.translation.equipmentStatus}: ${workOrder.defectType?.name}', // todo ask ahmed - // style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral20), - // ), - Text( - '${context.translation.manufacture}: ${workOrder.manufacturer?.name?.cleanupWhitespace?.capitalizeFirstOfEach}', - style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral120), - ), - Text( - '${context.translation.model}: ${workOrder.model?.name!.cleanupWhitespace?.capitalizeFirstOfEach}', - style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral120), - ), - Text( - '${context.translation.site}: ${workOrder.site?.siteName?.cleanupWhitespace?.capitalizeFirstOfEach}', - style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral120), - ), - Text( - '${context.translation.building}: ${workOrder.building?.name?.cleanupWhitespace?.capitalizeFirstOfEach}', - style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral120), - ), - Text( - '${context.translation.floor}: ${workOrder.floor?.name?.cleanupWhitespace?.capitalizeFirstOfEach ?? ""}', - style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral120), - ), - Text( - '${context.translation.department}: ${workOrder.department?.name?.cleanupWhitespace?.capitalizeFirstOfEach}', - style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral120), - ), - Text( - '${context.translation.room}: ${(workOrder.room?.toString() ?? "").cleanupWhitespace?.capitalizeFirstOfEach}', - style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral120), - ), - ], - ).expanded, - ], - ), - 8.height, - const Divider().defaultStyle(context), - - //... request details starts here.... - Text( - context.translation.requestDetail, - style: AppTextStyles.heading4.copyWith(color: context.isDark ? AppColor.neutral30 : AppColor.neutral50), - ), - 8.height, - Text( - '${context.translation.requestType}: ${workOrder.typeofRequest?.name}', - style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral120), - ), - Text( - '${context.translation.requestNo}: ${workOrder.workOrderNo}', - style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral120), - ), - Text( - '${context.translation.requesterName}: ${workOrder.workOrderCreatedBy?.userName ?? "-"}', - style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral120), - ), - Text( - '${context.translation.date}: ${workOrder.requestedDate!.toString().toServiceRequestDetailsFormat}', - style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral30 : AppColor.neutral120), - ), - - 8.height, - if ((workOrder.comments ?? "").isNotEmpty) ...[ - const Divider().defaultStyle(context), - 8.height, - Text( - workOrder.comments!, - style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral20), - ), - ], - if (workOrder.workOrderAttachments.isNotEmpty ?? false) ...[ - 8.height, - const Divider().defaultStyle(context), - FilesList(images: workOrder.workOrderAttachments.map((toElement) => URLs.getFileUrl(toElement.name!)!).toList()), - ], - if (workOrder.voiceNote?.isNotEmpty ?? false) ...[ - const Divider().defaultStyle(context), - 16.height, - ASoundPlayer(audio: URLs.getFileUrl(workOrder.voiceNote!)!), - 8.height, - ], - ], - ).paddingOnly(start: 16, end: 16, top: 16, bottom: 8), - // (userProvider.user!.type == UsersTypes.normal_user - // ? Container( - // height: 50, - // padding: const EdgeInsets.only(left: 16, right: 16), - // alignment: Alignment.center, - // width: double.infinity, - // decoration: ShapeDecoration( - // color: context.isDark ? AppColor.neutral50 : AppColor.neutral30, - // shape: const RoundedRectangleBorder( - // borderRadius: BorderRadius.only( - // bottomLeft: Radius.circular(20), - // bottomRight: Radius.circular(20), - // ), - // ), - // ), - // child: Row( - // children: [ - // Text( - // '${context.translation.commentHere}...', - // style: AppTextStyles.heading6.copyWith( - // color: (context.isDark ? AppColor.neutral30 : AppColor.neutral50).withOpacity(.6), - // ), - // ).expanded, - // "comment_send".toSvgAsset(width: 24, color: context.isDark ? AppColor.primary50 : AppColor.primary70), - // ], - // ), - // ) - // : Column( - // mainAxisSize: MainAxisSize.min, - // crossAxisAlignment: CrossAxisAlignment.start, - // children: [ - // const Divider().defaultStyle(context), - // 16.height, - // Row( - // mainAxisSize: MainAxisSize.min, - // children: [ - // Text( - // context.translation.viewComments, - // style: AppTextStyles.bodyText.copyWith(color: AppColor.blueStatus(context)), - // ), - // 4.width, - // Icon(Icons.arrow_forward, color: AppColor.blueStatus(context), size: 14) - // ], - // ), - // ], - // ).paddingOnly(bottom: 16, start: 16, end: 16)) - // .onPress(() { - // // showModalBottomSheet( - // // context: context, - // // useSafeArea: true, - // // isScrollControlled: true, - // // useRootNavigator: true, - // // backgroundColor: Colors.transparent, - // // builder: (context) => CommentsBottomSheet(requestId: serviceRequest.id!), - // // ); - // }), - //set condition for show asset detail button... - if (workOrder.nextStep!.workOrderNextStepEnum == WorkOrderNextStepEnum.verifyAssetDetail || - workOrder.nextStep!.workOrderNextStepEnum == WorkOrderNextStepEnum.activity && userProvider.user?.type == UsersTypes.engineer) ...[ - assetRetiredButton(context: context), - ] - ], - ).toShadowContainer(context, padding: 0); - } - - Widget assetRetiredButton({required BuildContext context}) { - return Padding( - padding: EdgeInsets.symmetric(horizontal: 16.toScreenHeight, vertical: 12.toScreenWidth), - child: AppFilledButton( - label: context.translation.assetToBeRetired, - maxWidth: true, - buttonColor: Colors.white54, - textColor: AppColor.red30, - showBorder: true, - onPressed: () async { - Navigator.push(context, MaterialPageRoute(builder: (context) => const AssetRetired())); - }), - ); - } - - Widget initialVisitCard({required RequestDetailProvider requestDetailProvider, required UserProvider userProvider}) { - if (requestDetailProvider.currentWorkOrder!.data!.needAVisitDateTime != null && - userProvider.user?.type == UsersTypes.engineer && - requestDetailProvider.currentWorkOrder?.data?.nextStep!.workOrderNextStepEnum == WorkOrderNextStepEnum.eArrived) { - requestDetailProvider.needVisitHelperModel = NeedVisitHelperModel( - workOrderId: requestDetailProvider.currentWorkOrder?.data?.requestId, - visitDate: requestDetailProvider.currentWorkOrder?.data?.needAVisitDateTime, - comment: requestDetailProvider.currentWorkOrder?.data?.needAVisitComment, - ); - // requestDetailProvider.updateNeedVisitHelperModel(requestDetailProvider.needVisitHelperModel); - return const InitialVisitCard(); - } else { - return const SizedBox(); - } - } - - void showToast({required UserProvider userProvider, required WorkOrderNextStepEnum nextStep, required BuildContext context}) { - if (userProvider.user?.type == UsersTypes.engineer) { - if (nextStep == WorkOrderNextStepEnum.nTakeAction) { - const SizedBox().flushBar(context: context, title: context.translation.youMarkedThisIssueAsFixedWaitingForTheRequesterToConfirm, message: ''); - } - } - } - Widget assetDetailCard({required RequestDetailProvider requestDetailProvider, required UserProvider userProvider}) { - //TODO add proper check to hide and show that widget - // if (requestDetailProvider.currentWorkOrder!.data!.needAVisitDateTime != null && - // userProvider.user?.type == UsersTypes.engineer && - // requestDetailProvider.currentWorkOrder?.data?.nextStep!.workOrderNextStepEnum == WorkOrderNextStepEnum.verifyAssetDetail) { - WorkOrderData currentWorkOrderData = requestDetailProvider.currentWorkOrder!.data!; - requestDetailProvider.engineerUpdateWorkOrderHelperModel = EngineerUpdateWorkOrderHelperModel( - workOrderId: currentWorkOrderData.requestId, - equipmentStatus: currentWorkOrderData.equipmentStatus, - loanAvailability: currentWorkOrderData.loanAvailablity, - failureReason: currentWorkOrderData.failureReasone, - // faultDescription: currentWorkOrderData.fa, - solution: currentWorkOrderData.solution?.name, - returnToService: currentWorkOrderData.returnToService, - serviceType: currentWorkOrderData.serviceType, - ); - // requestDetailProvider.updateNeedVisitHelperModel(requestDetailProvider.needVisitHelperModel); - return const AssetDetailCard(); - // } - // else { - // return const SizedBox(); - // } - } -} - -// class RequestDetailView extends StatefulWidget { -// static const String id = "/call-details"; -// ServiceRequest serviceRequest; -// bool fromTabView = false; -// -// RequestDetailView({Key? key, required this.serviceRequest, this.fromTabView = false}) : super(key: key); -// -// @override -// State createState() => _RequestDetailViewState(); -// } -// -// class _RequestDetailViewState extends State { -// @override -// void initState() { -// super.initState(); -// } -// -// void getServiceRequest({@required dynamic requestId}) { -// // setState(() {}); -// WidgetsFlutterBinding.ensureInitialized().addPostFrameCallback((timeStamp) async { -// Provider.of(context, listen: false).reset(); -// ServiceRequestsProvider serviceRequestsProvider = Provider.of(context, listen: false); -// serviceRequestsProvider.currentSelectedRequest = await serviceRequestsProvider.getServiceRequestObjectById(requestId: requestId); -// // setState(() {}); -// }); -// } -// -// @override -// Widget build(BuildContext context) { -// UserProvider _userProvider = Provider.of(context, listen: false); -// -// return !widget.fromTabView -// ? Scaffold( -// appBar: DefaultAppBar(title: context.translation.serviceDetails), -// body: Padding( -// padding: EdgeInsets.only(top: 12.toScreenHeight), -// child: Consumer(builder: (context, serviceRequestsProvider, child) { -// return requestDetailCard(serviceRequestsProvider: serviceRequestsProvider, userProvider: _userProvider); -// }), -// ), -// ) -// : Consumer(builder: (context, serviceRequestsProvider, child) { -// return requestDetailCard(serviceRequestsProvider: serviceRequestsProvider, userProvider: _userProvider); -// }); -// } -// -// Widget requestDetailCard({required ServiceRequestsProvider serviceRequestsProvider, required UserProvider userProvider}) { -// return SafeArea( -// child: serviceRequestsProvider.isDetialLoading -// ? const ALoading().center -// : serviceRequestsProvider.currentSelectedRequest == null -// ? Text( -// context.translation.noDataFound, -// style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral20), -// ).center -// : Stack( -// children: [ -// SingleChildScrollView( -// padding: EdgeInsets.symmetric(horizontal: 16.toScreenWidth), -// child: Column( -// mainAxisSize: MainAxisSize.min, -// crossAxisAlignment: CrossAxisAlignment.start, -// children: [ -// informationCard(serviceRequestsProvider.currentSelectedRequest!, userProvider), -// -// 40.height, -// // skipForLater(serviceRequestsProvider.currentSelectedRequest), -// // 20.height, -// const InitialVisitCard(), -// 20.height, -// ], -// ), -// ), -// FooterActionButton.requestDetailsFooterWidget(status: 7, context: context), - -// ], -// ), -// ); -// } -// -// Widget informationCard(ServiceRequest serviceRequest, UserProvider userProvider) { -// return Column( -// crossAxisAlignment: CrossAxisAlignment.start, -// children: [ -// Column( -// mainAxisSize: MainAxisSize.min, -// crossAxisAlignment: CrossAxisAlignment.start, -// children: [ -// Row( -// crossAxisAlignment: CrossAxisAlignment.start, -// children: [ -// Column( -// crossAxisAlignment: CrossAxisAlignment.start, -// children: [ -// Row( -// mainAxisSize: MainAxisSize.min, -// children: [ -// StatusLabel( -// label: serviceRequest.priority?.name, -// id: serviceRequest.priority!.id!, -// radius: 4, -// textColor: AppColor.getPriorityStatusTextColor(context, serviceRequest.priority!.id!), -// backgroundColor: AppColor.getPriorityStatusColor(context, serviceRequest.priority!.id!), -// ), -// 8.width, -// StatusLabel( -// radius: 4, -// label: serviceRequest.statusLabel, -// textColor: AppColor.getRequestStatusTextColor(context, serviceRequest.statusValue!), -// backgroundColor: AppColor.getRequestStatusColor(context, serviceRequest.statusValue!), -// ), -// 1.width.expanded, -// Column( -// crossAxisAlignment: CrossAxisAlignment.end, -// children: [ -// if (userProvider.user!.type == UsersTypes.normal_user) -// context.translation.code.toSvgAsset(width: 48).onPress(() { -// Navigator.push(context, MaterialPageRoute(builder: (context) => UpdateServiceRequestPage(serviceRequest: serviceRequest))); -// }), -// if (userProvider.user!.type == UsersTypes.engineer) 16.height, -// Text( -// serviceRequest.date!.toServiceRequestCardFormat, -// textAlign: TextAlign.end, -// style: AppTextStyles.tinyFont.copyWith(color: context.isDark ? AppColor.neutral30 : AppColor.neutral50), -// ), -// ], -// ) -// ], -// ), -// Text( -// context.translation.assetDetails, -// style: AppTextStyles.heading4.copyWith(color: context.isDark ? AppColor.neutral30 : AppColor.neutral50), -// ), -// 8.height, -// '${context.translation.assetName}: ${serviceRequest.deviceEnName?.cleanupWhitespace?.capitalizeFirstOfEach}'.bodyText(context), -// // 8.height, -// Text( -// '${context.translation.assetNumber}: ${serviceRequest.device?.assetNumber}', -// style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral20), -// ), -// -// Text( -// '${context.translation.equipmentStatus}: ${serviceRequest.defectType?.name}', -// style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral20), -// ), -// Text( -// '${context.translation.manufacture}: ${serviceRequest.device?.modelDefinition?.manufacturerName?.cleanupWhitespace?.capitalizeFirstOfEach}', -// style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral20), -// ), -// Text( -// '${context.translation.model}: ${serviceRequest.device?.modelDefinition?.modelName?.cleanupWhitespace?.capitalizeFirstOfEach}', -// style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral20), -// ), -// Text( -// '${context.translation.site}: ${serviceRequest.device?.site?.custName?.cleanupWhitespace?.capitalizeFirstOfEach}', -// style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral20), -// ), -// Text( -// '${context.translation.building}: ${serviceRequest.device?.building?.name?.cleanupWhitespace?.capitalizeFirstOfEach}', -// style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral20), -// ), -// Text( -// '${context.translation.floor}: ${serviceRequest.device?.floor?.name?.cleanupWhitespace?.capitalizeFirstOfEach ?? ""}', -// style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral20), -// ), -// Text( -// '${context.translation.department}: ${serviceRequest.device?.department?.departmentName?.cleanupWhitespace?.capitalizeFirstOfEach}', -// style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral20), -// ), -// Text( -// '${context.translation.room}: ${(serviceRequest.device?.room?.name ?? "").cleanupWhitespace?.capitalizeFirstOfEach}', -// style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral20), -// ), -// ], -// ).expanded, -// ], -// ), -// 8.height, -// const Divider().defaultStyle(context), -// -// //... request details starts here.... -// Text( -// context.translation.requestDetail, -// style: AppTextStyles.heading4.copyWith(color: context.isDark ? AppColor.neutral30 : AppColor.neutral50), -// ), -// 8.height, -// Text( -// '${context.translation.requestType}: ${serviceRequest.type?.name}', -// style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral20), -// ), -// Text( -// '${context.translation.requestNo}: ${serviceRequest.requestCode}', -// style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral20), -// ), -// Text( -// '${context.translation.requesterName}: ${serviceRequest.callCreatedBy?.name ?? "-"}', -// style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral20), -// ), -// -// 8.height, -// if ((serviceRequest.callComments ?? "").isNotEmpty) ...[ -// const Divider().defaultStyle(context), -// 8.height, -// Text( -// serviceRequest.callComments!, -// style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral20), -// ), -// ], -// if (serviceRequest.devicePhotos?.isNotEmpty ?? false) ...[ -// 8.height, -// const Divider().defaultStyle(context), -// FilesList(images: serviceRequest.devicePhotos!), -// ], -// if (serviceRequest.audio?.isNotEmpty ?? false) ...[ -// const Divider().defaultStyle(context), -// 16.height, -// ASoundPlayer(audio: serviceRequest.audio!), -// 8.height, -// ], -// ], -// ).paddingOnly(start: 16, end: 16, top: 16, bottom: 8), -// (userProvider.user!.type == UsersTypes.normal_user -// ? Container( -// height: 50, -// padding: const EdgeInsets.only(left: 16, right: 16), -// alignment: Alignment.center, -// width: double.infinity, -// decoration: ShapeDecoration( -// color: context.isDark ? AppColor.neutral50 : AppColor.neutral30, -// shape: const RoundedRectangleBorder( -// borderRadius: BorderRadius.only( -// bottomLeft: Radius.circular(20), -// bottomRight: Radius.circular(20), -// ), -// ), -// ), -// child: Row( -// children: [ -// Text( -// '${context.translation.commentHere}...', -// style: AppTextStyles.heading6.copyWith( -// color: (context.isDark ? AppColor.neutral30 : AppColor.neutral50).withOpacity(.6), -// ), -// ).expanded, -// "comment_send".toSvgAsset(width: 24, color: context.isDark ? AppColor.primary50 : AppColor.primary70), -// ], -// ), -// ) -// : Column( -// mainAxisSize: MainAxisSize.min, -// crossAxisAlignment: CrossAxisAlignment.start, -// children: [ -// const Divider().defaultStyle(context), -// 16.height, -// Row( -// mainAxisSize: MainAxisSize.min, -// children: [ -// Text( -// context.translation.viewComments, -// style: AppTextStyles.bodyText.copyWith(color: AppColor.blueStatus(context)), -// ), -// 4.width, -// Icon(Icons.arrow_forward, color: AppColor.blueStatus(context), size: 14) -// ], -// ), -// ], -// ).paddingOnly(bottom: 16, start: 16, end: 16)) -// .onPress(() { -// showModalBottomSheet( -// context: context, -// useSafeArea: true, -// isScrollControlled: true, -// useRootNavigator: true, -// backgroundColor: Colors.transparent, -// builder: (context) => CommentsBottomSheet(requestId: serviceRequest.id!), -// ); -// }), -// //set condition for show asset detail button... -// if (true) ...[ -// assetRetiredButton(serviceRequest: serviceRequest), -// ] -// ], -// ).toShadowContainer(context, padding: 0); -// } -// -// Widget assetRetiredButton({required ServiceRequest serviceRequest}) { -// return Padding( -// padding: EdgeInsets.symmetric(horizontal: 16.toScreenHeight, vertical: 12.toScreenWidth), -// child: AppFilledButton( -// label: context.translation.assetToBeRetired, -// maxWidth: true, -// buttonColor: Colors.white54, -// textColor: AppColor.red30, -// showBorder: true, -// onPressed: () async { -// // Navigator.push(context, MaterialPageRoute(builder: (context) => AssetRetired())); -// Navigator.push(context, MaterialPageRoute(builder: (context) => CreateNewRequest())); -// }), -// ); -// } -// -// Widget skipForLater(ServiceRequest serviceRequest) { -// return Center( -// child: InkWell( -// onTap: () async { -// try { -// //use a common list -// AllRequestsProvider allRequestProvider = Provider.of(context, listen: false); -// int index = allRequestProvider.requestDetailList!.requestsDetails!.indexWhere((element) => element.id.toString() == serviceRequest.id); -// if (index != -1 && index != allRequestProvider.requestDetailList!.requestsDetails!.length) { -// getServiceRequest(requestId: allRequestProvider.requestDetailList!.requestsDetails![index + 1].id.toString()); -// } -// } catch (e) { -// print(e); -// } -// }, -// child: Text( -// context.translation.skipForLater, -// style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral20, decoration: TextDecoration.underline, fontSize: 16), -// ), -// ), -// ); -// } -// } diff --git a/lib/service_request_latest/views/components/service_request_detail_view.dart b/lib/service_request_latest/views/components/service_request_detail_view.dart index 15f1e2de..9497558d 100644 --- a/lib/service_request_latest/views/components/service_request_detail_view.dart +++ b/lib/service_request_latest/views/components/service_request_detail_view.dart @@ -1,10 +1,6 @@ -import 'package:device_calendar/device_calendar.dart'; import 'package:flutter/material.dart'; -import 'package:fluttertoast/fluttertoast.dart'; -import 'package:flutter_timezone/flutter_timezone.dart'; import 'package:provider/provider.dart'; import 'package:test_sa/controllers/api_routes/urls.dart'; -import 'package:test_sa/controllers/notification/notification_manger.dart'; import 'package:test_sa/controllers/providers/api/user_provider.dart'; import 'package:test_sa/extensions/context_extension.dart'; import 'package:test_sa/extensions/int_extensions.dart'; @@ -20,6 +16,7 @@ import 'package:test_sa/new_views/common_widgets/app_filled_button.dart'; import 'package:test_sa/service_request_latest/service_request_detail_provider.dart'; import 'package:test_sa/service_request_latest/utilities/service_request_utils.dart'; import 'package:test_sa/service_request_latest/views/components/action_button/footer_action_button.dart'; +import 'package:test_sa/service_request_latest/views/components/asset_detail_card.dart'; import 'package:test_sa/service_request_latest/views/components/initial_visit_card.dart'; import 'package:test_sa/service_request_latest/views/components/timer_widget.dart'; import 'package:test_sa/service_request_latest/views/forms/asset_retired/asset_retired.dart'; @@ -35,6 +32,7 @@ class ServiceRequestDetailView extends StatelessWidget { Widget build(BuildContext context) { UserProvider _userProvider = Provider.of(context, listen: false); return Consumer(builder: (pContext, requestProvider, _) { + return requestProvider.isLoading ? const CircularProgressIndicator(color: AppColor.primary10).center : requestProvider.currentWorkOrder == null @@ -51,7 +49,7 @@ class ServiceRequestDetailView extends StatelessWidget { children: [ workOrderDetailCard(context, requestProvider.currentWorkOrder!.data!, _userProvider), initialVisitCard(requestDetailProvider: requestProvider, userProvider: _userProvider), - + assetDetailCard(requestDetailProvider: requestProvider, userProvider: _userProvider), 20.height, ], ), @@ -72,6 +70,7 @@ class ServiceRequestDetailView extends StatelessWidget { } Widget workOrderDetailCard(BuildContext context, WorkOrderData workOrder, UserProvider userProvider) { + return Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ @@ -106,11 +105,10 @@ class ServiceRequestDetailView extends StatelessWidget { Column( crossAxisAlignment: CrossAxisAlignment.end, children: [ - //TODO need to check - // if (userProvider.user!.type == UsersTypes.normal_user) - // context.translation.code.toSvgAsset(width: 48).onPress(() { - // // Navigator.push(context, MaterialPageRoute(builder: (context) => UpdateServiceRequestPage(serviceRequest: serviceRequest))); - // }), + if (userProvider.user!.type == UsersTypes.normal_user) + context.translation.code.toSvgAsset(width: 48).onPress(() { + // Navigator.push(context, MaterialPageRoute(builder: (context) => UpdateServiceRequestPage(serviceRequest: serviceRequest))); + }), if (userProvider.user!.type == UsersTypes.engineer) 16.height, Text( workOrder.requestedDate!.toString().toServiceRequestCardFormat, @@ -185,16 +183,16 @@ class ServiceRequestDetailView extends StatelessWidget { '${context.translation.requestType}: ${workOrder.typeofRequest?.name}', style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral120), ), - // Text( - // '${context.translation.requestNo}: ${workOrder.requestCode}', // todo ask ahmed - // style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral20), - // ), + Text( + '${context.translation.requestNo}: ${workOrder.workOrderNo}', + style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral120), + ), Text( '${context.translation.requesterName}: ${workOrder.workOrderCreatedBy?.userName ?? "-"}', style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral120), ), Text( - '${context.translation.requesterName}: ${workOrder.requestedDate!.toString().toServiceRequestDetailsFormat}', + '${context.translation.date}: ${workOrder.requestedDate!.toString().toServiceRequestDetailsFormat}', style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral30 : AppColor.neutral120), ), @@ -323,5 +321,348 @@ class ServiceRequestDetailView extends StatelessWidget { } } } + Widget assetDetailCard({required ServiceRequestDetailProvider requestDetailProvider, required UserProvider userProvider}) { + if (userProvider.user?.type == UsersTypes.engineer&&requestDetailProvider.currentWorkOrder?.data?.nextStep!.workOrderNextStepEnum == WorkOrderNextStepEnum.activity) { + WorkOrderData currentWorkOrderData = requestDetailProvider.currentWorkOrder!.data!; + requestDetailProvider.engineerUpdateWorkOrderHelperModel = EngineerUpdateWorkOrderHelperModel( + workOrderId: currentWorkOrderData.requestId, + equipmentStatus: currentWorkOrderData.equipmentStatus, + loanAvailability: currentWorkOrderData.loanAvailablity, + failureReason: currentWorkOrderData.failureReasone, + // faultDescription: currentWorkOrderData.fa, + solution: currentWorkOrderData.solution?.name, + returnToService: currentWorkOrderData.returnToService, + serviceType: currentWorkOrderData.serviceType, + ); + return const AssetDetailCard(); + } + else { + return const SizedBox(); + } + } } +// class RequestDetailView extends StatefulWidget { +// static const String id = "/call-details"; +// ServiceRequest serviceRequest; +// bool fromTabView = false; +// +// RequestDetailView({Key? key, required this.serviceRequest, this.fromTabView = false}) : super(key: key); +// +// @override +// State createState() => _RequestDetailViewState(); +// } +// +// class _RequestDetailViewState extends State { +// @override +// void initState() { +// super.initState(); +// } +// +// void getServiceRequest({@required dynamic requestId}) { +// // setState(() {}); +// WidgetsFlutterBinding.ensureInitialized().addPostFrameCallback((timeStamp) async { +// Provider.of(context, listen: false).reset(); +// ServiceRequestsProvider serviceRequestsProvider = Provider.of(context, listen: false); +// serviceRequestsProvider.currentSelectedRequest = await serviceRequestsProvider.getServiceRequestObjectById(requestId: requestId); +// // setState(() {}); +// }); +// } +// +// @override +// Widget build(BuildContext context) { +// UserProvider _userProvider = Provider.of(context, listen: false); +// +// return !widget.fromTabView +// ? Scaffold( +// appBar: DefaultAppBar(title: context.translation.serviceDetails), +// body: Padding( +// padding: EdgeInsets.only(top: 12.toScreenHeight), +// child: Consumer(builder: (context, serviceRequestsProvider, child) { +// return requestDetailCard(serviceRequestsProvider: serviceRequestsProvider, userProvider: _userProvider); +// }), +// ), +// ) +// : Consumer(builder: (context, serviceRequestsProvider, child) { +// return requestDetailCard(serviceRequestsProvider: serviceRequestsProvider, userProvider: _userProvider); +// }); +// } +// +// Widget requestDetailCard({required ServiceRequestsProvider serviceRequestsProvider, required UserProvider userProvider}) { +// return SafeArea( +// child: serviceRequestsProvider.isDetialLoading +// ? const ALoading().center +// : serviceRequestsProvider.currentSelectedRequest == null +// ? Text( +// context.translation.noDataFound, +// style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral20), +// ).center +// : Stack( +// children: [ +// SingleChildScrollView( +// padding: EdgeInsets.symmetric(horizontal: 16.toScreenWidth), +// child: Column( +// mainAxisSize: MainAxisSize.min, +// crossAxisAlignment: CrossAxisAlignment.start, +// children: [ +// informationCard(serviceRequestsProvider.currentSelectedRequest!, userProvider), +// +// 40.height, +// // skipForLater(serviceRequestsProvider.currentSelectedRequest), +// // 20.height, +// const InitialVisitCard(), +// 20.height, +// ], +// ), +// ), +// FooterActionButton.requestDetailsFooterWidget(status: 7, context: context), + +// ], +// ), +// ); +// } +// +// Widget informationCard(ServiceRequest serviceRequest, UserProvider userProvider) { +// return Column( +// crossAxisAlignment: CrossAxisAlignment.start, +// children: [ +// Column( +// mainAxisSize: MainAxisSize.min, +// crossAxisAlignment: CrossAxisAlignment.start, +// children: [ +// Row( +// crossAxisAlignment: CrossAxisAlignment.start, +// children: [ +// Column( +// crossAxisAlignment: CrossAxisAlignment.start, +// children: [ +// Row( +// mainAxisSize: MainAxisSize.min, +// children: [ +// StatusLabel( +// label: serviceRequest.priority?.name, +// id: serviceRequest.priority!.id!, +// radius: 4, +// textColor: AppColor.getPriorityStatusTextColor(context, serviceRequest.priority!.id!), +// backgroundColor: AppColor.getPriorityStatusColor(context, serviceRequest.priority!.id!), +// ), +// 8.width, +// StatusLabel( +// radius: 4, +// label: serviceRequest.statusLabel, +// textColor: AppColor.getRequestStatusTextColor(context, serviceRequest.statusValue!), +// backgroundColor: AppColor.getRequestStatusColor(context, serviceRequest.statusValue!), +// ), +// 1.width.expanded, +// Column( +// crossAxisAlignment: CrossAxisAlignment.end, +// children: [ +// if (userProvider.user!.type == UsersTypes.normal_user) +// context.translation.code.toSvgAsset(width: 48).onPress(() { +// Navigator.push(context, MaterialPageRoute(builder: (context) => UpdateServiceRequestPage(serviceRequest: serviceRequest))); +// }), +// if (userProvider.user!.type == UsersTypes.engineer) 16.height, +// Text( +// serviceRequest.date!.toServiceRequestCardFormat, +// textAlign: TextAlign.end, +// style: AppTextStyles.tinyFont.copyWith(color: context.isDark ? AppColor.neutral30 : AppColor.neutral50), +// ), +// ], +// ) +// ], +// ), +// Text( +// context.translation.assetDetails, +// style: AppTextStyles.heading4.copyWith(color: context.isDark ? AppColor.neutral30 : AppColor.neutral50), +// ), +// 8.height, +// '${context.translation.assetName}: ${serviceRequest.deviceEnName?.cleanupWhitespace?.capitalizeFirstOfEach}'.bodyText(context), +// // 8.height, +// Text( +// '${context.translation.assetNumber}: ${serviceRequest.device?.assetNumber}', +// style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral20), +// ), +// +// Text( +// '${context.translation.equipmentStatus}: ${serviceRequest.defectType?.name}', +// style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral20), +// ), +// Text( +// '${context.translation.manufacture}: ${serviceRequest.device?.modelDefinition?.manufacturerName?.cleanupWhitespace?.capitalizeFirstOfEach}', +// style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral20), +// ), +// Text( +// '${context.translation.model}: ${serviceRequest.device?.modelDefinition?.modelName?.cleanupWhitespace?.capitalizeFirstOfEach}', +// style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral20), +// ), +// Text( +// '${context.translation.site}: ${serviceRequest.device?.site?.custName?.cleanupWhitespace?.capitalizeFirstOfEach}', +// style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral20), +// ), +// Text( +// '${context.translation.building}: ${serviceRequest.device?.building?.name?.cleanupWhitespace?.capitalizeFirstOfEach}', +// style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral20), +// ), +// Text( +// '${context.translation.floor}: ${serviceRequest.device?.floor?.name?.cleanupWhitespace?.capitalizeFirstOfEach ?? ""}', +// style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral20), +// ), +// Text( +// '${context.translation.department}: ${serviceRequest.device?.department?.departmentName?.cleanupWhitespace?.capitalizeFirstOfEach}', +// style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral20), +// ), +// Text( +// '${context.translation.room}: ${(serviceRequest.device?.room?.name ?? "").cleanupWhitespace?.capitalizeFirstOfEach}', +// style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral20), +// ), +// ], +// ).expanded, +// ], +// ), +// 8.height, +// const Divider().defaultStyle(context), +// +// //... request details starts here.... +// Text( +// context.translation.requestDetail, +// style: AppTextStyles.heading4.copyWith(color: context.isDark ? AppColor.neutral30 : AppColor.neutral50), +// ), +// 8.height, +// Text( +// '${context.translation.requestType}: ${serviceRequest.type?.name}', +// style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral20), +// ), +// Text( +// '${context.translation.requestNo}: ${serviceRequest.requestCode}', +// style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral20), +// ), +// Text( +// '${context.translation.requesterName}: ${serviceRequest.callCreatedBy?.name ?? "-"}', +// style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral20), +// ), +// +// 8.height, +// if ((serviceRequest.callComments ?? "").isNotEmpty) ...[ +// const Divider().defaultStyle(context), +// 8.height, +// Text( +// serviceRequest.callComments!, +// style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral20), +// ), +// ], +// if (serviceRequest.devicePhotos?.isNotEmpty ?? false) ...[ +// 8.height, +// const Divider().defaultStyle(context), +// FilesList(images: serviceRequest.devicePhotos!), +// ], +// if (serviceRequest.audio?.isNotEmpty ?? false) ...[ +// const Divider().defaultStyle(context), +// 16.height, +// ASoundPlayer(audio: serviceRequest.audio!), +// 8.height, +// ], +// ], +// ).paddingOnly(start: 16, end: 16, top: 16, bottom: 8), +// (userProvider.user!.type == UsersTypes.normal_user +// ? Container( +// height: 50, +// padding: const EdgeInsets.only(left: 16, right: 16), +// alignment: Alignment.center, +// width: double.infinity, +// decoration: ShapeDecoration( +// color: context.isDark ? AppColor.neutral50 : AppColor.neutral30, +// shape: const RoundedRectangleBorder( +// borderRadius: BorderRadius.only( +// bottomLeft: Radius.circular(20), +// bottomRight: Radius.circular(20), +// ), +// ), +// ), +// child: Row( +// children: [ +// Text( +// '${context.translation.commentHere}...', +// style: AppTextStyles.heading6.copyWith( +// color: (context.isDark ? AppColor.neutral30 : AppColor.neutral50).withOpacity(.6), +// ), +// ).expanded, +// "comment_send".toSvgAsset(width: 24, color: context.isDark ? AppColor.primary50 : AppColor.primary70), +// ], +// ), +// ) +// : Column( +// mainAxisSize: MainAxisSize.min, +// crossAxisAlignment: CrossAxisAlignment.start, +// children: [ +// const Divider().defaultStyle(context), +// 16.height, +// Row( +// mainAxisSize: MainAxisSize.min, +// children: [ +// Text( +// context.translation.viewComments, +// style: AppTextStyles.bodyText.copyWith(color: AppColor.blueStatus(context)), +// ), +// 4.width, +// Icon(Icons.arrow_forward, color: AppColor.blueStatus(context), size: 14) +// ], +// ), +// ], +// ).paddingOnly(bottom: 16, start: 16, end: 16)) +// .onPress(() { +// showModalBottomSheet( +// context: context, +// useSafeArea: true, +// isScrollControlled: true, +// useRootNavigator: true, +// backgroundColor: Colors.transparent, +// builder: (context) => CommentsBottomSheet(requestId: serviceRequest.id!), +// ); +// }), +// //set condition for show asset detail button... +// if (true) ...[ +// assetRetiredButton(serviceRequest: serviceRequest), +// ] +// ], +// ).toShadowContainer(context, padding: 0); +// } +// +// Widget assetRetiredButton({required ServiceRequest serviceRequest}) { +// return Padding( +// padding: EdgeInsets.symmetric(horizontal: 16.toScreenHeight, vertical: 12.toScreenWidth), +// child: AppFilledButton( +// label: context.translation.assetToBeRetired, +// maxWidth: true, +// buttonColor: Colors.white54, +// textColor: AppColor.red30, +// showBorder: true, +// onPressed: () async { +// // Navigator.push(context, MaterialPageRoute(builder: (context) => AssetRetired())); +// Navigator.push(context, MaterialPageRoute(builder: (context) => CreateNewRequest())); +// }), +// ); +// } +// +// Widget skipForLater(ServiceRequest serviceRequest) { +// return Center( +// child: InkWell( +// onTap: () async { +// try { +// //use a common list +// AllRequestsProvider allRequestProvider = Provider.of(context, listen: false); +// int index = allRequestProvider.requestDetailList!.requestsDetails!.indexWhere((element) => element.id.toString() == serviceRequest.id); +// if (index != -1 && index != allRequestProvider.requestDetailList!.requestsDetails!.length) { +// getServiceRequest(requestId: allRequestProvider.requestDetailList!.requestsDetails![index + 1].id.toString()); +// } +// } catch (e) { +// print(e); +// } +// }, +// child: Text( +// context.translation.skipForLater, +// style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral20, decoration: TextDecoration.underline, fontSize: 16), +// ), +// ), +// ); +// } +// } diff --git a/lib/service_request_latest/views/forms/asset_retired/asset_retired.dart b/lib/service_request_latest/views/forms/asset_retired/asset_retired.dart index e523ed3f..51ae882f 100644 --- a/lib/service_request_latest/views/forms/asset_retired/asset_retired.dart +++ b/lib/service_request_latest/views/forms/asset_retired/asset_retired.dart @@ -51,15 +51,6 @@ class _AssetRetiredState extends State with TickerProviderStateMix @override Widget build(BuildContext context) { - // _serviceRequestsProvider = Provider.of(context); - // _assetTypeProvider = Provider.of(context); - // if (_serviceReport?.callRequest == null) { - // getRequestForWorkOrder(); - // } - // _serviceReport?.assetType = _assetTypeProvider?.statuses?.firstWhere( - // (element) => element.value == _serviceReport?.callRequest?.assetType, - // orElse: () => Lookup(), - // ); final List _files = []; return Scaffold( @@ -85,6 +76,7 @@ class _AssetRetiredState extends State with TickerProviderStateMix context: context, title: context.translation.retirementType, backgroundColor: AppColor.neutral100, + showAsBottomSheet: true, height: 56.toScreenHeight, showShadow: false, initialValue: requestDetailProvider.assetRetiredHelperModel?.retirmentReason, @@ -124,17 +116,16 @@ class _AssetRetiredState extends State with TickerProviderStateMix label: context.translation.submit, buttonColor: AppColor.primary10, onPressed: () async { - requestDetailProvider.assetRetiredHelperModel?.activityAssetToBeRetiredAttachments=[]; + requestDetailProvider.assetRetiredHelperModel?.activityAssetToBeRetiredAttachments = []; for (var file in _files) { requestDetailProvider.assetRetiredHelperModel?.activityAssetToBeRetiredAttachments ?.add(ActivityAssetToBeRetiredAttachments(id: 0, name: "${file.path.split("/").last}|${base64Encode(file.readAsBytesSync())}")); } - int status= await requestDetailProvider.createActivityAssetToBeRetired(); - if(status==200){ - Navigator.pop(context); - const SizedBox().flushBar(context: context, title: '', message: context.translation.assetRetirementRequestSubmittedSuccessfully); - } - + int status = await requestDetailProvider.createActivityAssetToBeRetired(); + if (status == 200) { + Navigator.pop(context); + const SizedBox().flushBar(context: context, title: '', message: context.translation.assetRetirementRequestSubmittedSuccessfully); + } }, ), ), diff --git a/lib/service_request_latest/views/forms/asset_retired/verify_asset_detail.dart b/lib/service_request_latest/views/forms/asset_retired/verify_asset_detail.dart index 5b830f31..deccc050 100644 --- a/lib/service_request_latest/views/forms/asset_retired/verify_asset_detail.dart +++ b/lib/service_request_latest/views/forms/asset_retired/verify_asset_detail.dart @@ -53,6 +53,19 @@ class _VerifyAssetDetailsState extends State with TickerProv @override void initState() { + ServiceRequestDetailProvider provider = Provider.of(context, listen: false); + WorkOrderData currentWorkOrderData = provider.currentWorkOrder!.data!; + provider.engineerUpdateWorkOrderHelperModel = EngineerUpdateWorkOrderHelperModel( + workOrderId: currentWorkOrderData.requestId, + equipmentStatus: currentWorkOrderData.equipmentStatus, + loanAvailability: currentWorkOrderData.loanAvailablity, + failureReason: currentWorkOrderData.failureReasone, + loanAssetId:currentWorkOrderData.assetLoan?.id, + // faultDescription: currentWorkOrderData.fa, + solution: currentWorkOrderData.solution?.name, + returnToService: currentWorkOrderData.returnToService, + serviceType: currentWorkOrderData.serviceType, + ); super.initState(); } @@ -92,22 +105,7 @@ class _VerifyAssetDetailsState extends State with TickerProv _equipmentStatusProvider!.getDate(); }); _reasonProvider?.serviceRequestId = _requestDetailProvider?.currentWorkOrder!.data!.requestId.toString(); - WorkOrderData currentWorkOrderData = _requestDetailProvider!.currentWorkOrder!.data!; - print('asset detail i got is ${currentWorkOrderData.asset?.toJson()}'); - _requestDetailProvider?.engineerUpdateWorkOrderHelperModel = EngineerUpdateWorkOrderHelperModel( - workOrderId: currentWorkOrderData.requestId, - equipmentStatus: currentWorkOrderData.equipmentStatus, - loanAvailability: currentWorkOrderData.loanAvailablity, - failureReason: currentWorkOrderData.failureReasone, - loanAssetId:currentWorkOrderData.assetLoan?.id, - // faultDescription: currentWorkOrderData.fa, - solution: currentWorkOrderData.solution?.name, - returnToService: currentWorkOrderData.returnToService, - serviceType: currentWorkOrderData.serviceType, - ); - - // _requestDetailProvider?.updateEngineerUpdateWorkOrderHelperModel(_requestDetailProvider?.engineerUpdateWorkOrderHelperModel); getFaultDescription(); } @@ -216,6 +214,7 @@ class _VerifyAssetDetailsState extends State with TickerProv if (mounted) { requestDetailProvider.updateEngineerUpdateWorkOrderHelperModel(requestDetailProvider.engineerUpdateWorkOrderHelperModel); } + print('fault i got is ${ requestDetailProvider.engineerUpdateWorkOrderHelperModel?.faultDescription?.toJson()}'); }, ), 12.height, @@ -235,9 +234,10 @@ class _VerifyAssetDetailsState extends State with TickerProv onPressed: () async { //TODO add loader.. showDialog(context: context, barrierDismissible: false, builder: (context) => const AppLazyLoading()); - await requestDetailProvider.engineerUpdateWorkOrder(); - Navigator.pop(context); + print('model i got is ${_requestDetailProvider?.engineerUpdateWorkOrderHelperModel?.toJson()}'); + // await requestDetailProvider.engineerUpdateWorkOrder(); Navigator.pop(context); + // Navigator.pop(context); }, ), ), diff --git a/lib/service_request_latest/views/forms/maintenance_request/components/assistant_employee_card.dart b/lib/service_request_latest/views/forms/maintenance_request/components/assistant_employee_card.dart index 48df8598..113ee16e 100644 --- a/lib/service_request_latest/views/forms/maintenance_request/components/assistant_employee_card.dart +++ b/lib/service_request_latest/views/forms/maintenance_request/components/assistant_employee_card.dart @@ -9,7 +9,7 @@ import 'package:test_sa/extensions/widget_extensions.dart'; import 'package:test_sa/models/new_models/work_order_detail_model.dart'; import 'package:test_sa/new_views/app_style/app_color.dart'; import 'package:test_sa/new_views/common_widgets/app_text_form_field.dart'; -import 'package:test_sa/service_request_latest/request_detail_provider.dart'; +import 'package:test_sa/service_request_latest/service_request_detail_provider.dart'; import 'package:test_sa/service_request_latest/utilities/service_request_utils.dart'; import 'package:test_sa/views/widgets/date_and_time/date_picker.dart'; import 'package:test_sa/views/widgets/status/report/service_report_assistant_employee_menu.dart'; @@ -38,7 +38,7 @@ class _AssistantEmployeeCardState extends State { Future getInitialData() async { final user = Provider.of(context, listen: false).user!; - RequestDetailProvider requestDetailProvider = Provider.of(context, listen: false); + ServiceRequestDetailProvider requestDetailProvider = Provider.of(context, listen: false); isCurrentUserIsAssistantEmp = (user.userID != requestDetailProvider.currentWorkOrder?.data?.assignedEmployee?.userId); // if (isCurrentUserIsAssistantEmp) { @@ -55,7 +55,7 @@ class _AssistantEmployeeCardState extends State { @override Widget build(BuildContext context) { - return Consumer(builder: (context, requestDetailProvider, child) { + return Consumer(builder: (context, requestDetailProvider, child) { return Column( children: [ SizedBox( diff --git a/lib/service_request_latest/views/forms/maintenance_request/components/external_request.dart b/lib/service_request_latest/views/forms/maintenance_request/components/external_request.dart index 076aeb12..c8fcdaa4 100644 --- a/lib/service_request_latest/views/forms/maintenance_request/components/external_request.dart +++ b/lib/service_request_latest/views/forms/maintenance_request/components/external_request.dart @@ -1,9 +1,5 @@ import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; -import 'package:test_sa/controllers/providers/api/parts_provider.dart'; -import 'package:test_sa/controllers/providers/api/service_requests_provider.dart'; -import 'package:test_sa/controllers/providers/api/user_provider.dart'; -import 'package:test_sa/controllers/providers/settings/setting_provider.dart'; import 'package:test_sa/extensions/context_extension.dart'; import 'package:test_sa/extensions/int_extensions.dart'; import 'package:test_sa/extensions/string_extensions.dart'; @@ -11,24 +7,15 @@ import 'package:test_sa/extensions/text_extensions.dart'; import 'package:test_sa/extensions/widget_extensions.dart'; import 'package:test_sa/models/device/asset.dart'; import 'package:test_sa/models/service_request/service_report.dart'; -import 'package:test_sa/models/service_request/service_request.dart'; import 'package:test_sa/models/service_request/supp_engineer_work_orders.dart'; import 'package:test_sa/models/service_request/supplier_details.dart'; import 'package:test_sa/new_views/app_style/app_color.dart'; -import 'package:test_sa/new_views/common_widgets/app_filled_button.dart'; import 'package:test_sa/providers/loading_list_notifier.dart'; -import 'package:test_sa/providers/work_order/reason_provider.dart'; import 'package:test_sa/providers/work_order/vendor_provider.dart'; -import 'package:test_sa/service_request_latest/request_detail_provider.dart'; +import 'package:test_sa/service_request_latest/service_request_detail_provider.dart'; import 'package:test_sa/service_request_latest/utilities/service_request_utils.dart'; -import 'package:test_sa/service_request_latest/views/components/action_button/footer_action_button.dart'; import 'package:test_sa/views/pages/user/requests/add_supplier_engineer_bottom_sheet.dart'; import 'package:test_sa/views/widgets/date_and_time/date_picker.dart'; -import 'package:test_sa/views/widgets/date_and_time/time_picker.dart'; -import 'package:test_sa/views/widgets/loaders/loading_manager.dart'; -import '../../../../../controllers/providers/api/status_drop_down/report/service_report_last_calls_provider.dart'; -import '../../../../../controllers/providers/api/status_drop_down/report/service_types_provider.dart'; -import '../../../../../models/lookup.dart'; import '../../../../../new_views/common_widgets/app_text_form_field.dart'; import '../../../../../new_views/common_widgets/single_item_drop_down_menu.dart'; @@ -53,7 +40,7 @@ class _ExternalMaintenanceRequestState extends State } void getInitialData() { - RequestDetailProvider requestDetailProvider = Provider.of(context, listen: false); + ServiceRequestDetailProvider requestDetailProvider = Provider.of(context, listen: false); _workingHoursController.text = requestDetailProvider.activityMaintenanceHelperModel?.supplierWorkingHour != null ? requestDetailProvider.activityMaintenanceHelperModel!.supplierWorkingHour.toString() : ''; @@ -61,7 +48,7 @@ class _ExternalMaintenanceRequestState extends State @override Widget build(BuildContext context) { - return Consumer(builder: (context, RequestDetailProvider requestDetailProvider, child) { + return Consumer(builder: (context, ServiceRequestDetailProvider requestDetailProvider, child) { return Column( children: [ Form( diff --git a/lib/service_request_latest/views/forms/maintenance_request/components/internal_request.dart b/lib/service_request_latest/views/forms/maintenance_request/components/internal_request.dart index a94a62ba..6276e47e 100644 --- a/lib/service_request_latest/views/forms/maintenance_request/components/internal_request.dart +++ b/lib/service_request_latest/views/forms/maintenance_request/components/internal_request.dart @@ -12,11 +12,10 @@ import 'package:test_sa/models/service_request/service_request.dart'; import 'package:test_sa/new_views/app_style/app_color.dart'; import 'package:test_sa/providers/service_request_providers/last_situation_provider.dart'; import 'package:test_sa/providers/work_order/activity_status_provider.dart'; -import 'package:test_sa/service_request_latest/request_detail_provider.dart'; +import 'package:test_sa/service_request_latest/service_request_detail_provider.dart'; import 'package:test_sa/service_request_latest/utilities/service_request_utils.dart'; import 'package:test_sa/service_request_latest/views/forms/maintenance_request/components/assistant_employee_card.dart'; import 'package:test_sa/views/widgets/date_and_time/date_picker.dart'; - import '../../../../../controllers/providers/api/status_drop_down/report/service_types_provider.dart'; import '../../../../../models/lookup.dart'; import '../../../../../new_views/common_widgets/app_text_form_field.dart'; @@ -34,7 +33,7 @@ class InternalMaintenanceRequest extends StatefulWidget { class _InternalMaintenanceRequestState extends State with TickerProviderStateMixin { ServiceRequest? _request; ServiceRequestsProvider? _serviceRequestsProvider; - RequestDetailProvider? _requestDetailProvider; + ServiceRequestDetailProvider? _requestDetailProvider; ServiceStatusProvider? _assetTypeProvider; ActivityStatusProvider? _activityStatusProvider; ServiceReport? _serviceReport; @@ -48,7 +47,7 @@ class _InternalMaintenanceRequestState extends State @override void initState() { _activityStatusProvider = Provider.of(context, listen: false); - _requestDetailProvider = Provider.of(context, listen: false); + _requestDetailProvider = Provider.of(context, listen: false); _requestDetailProvider?.activityMaintenanceHelperModel?.activityStatus = _requestDetailProvider?.activityMaintenanceHelperModel?.activityStatus ?? statusLookup; super.initState(); WidgetsBinding.instance.addPostFrameCallback((_) { @@ -79,7 +78,7 @@ class _InternalMaintenanceRequestState extends State @override Widget build(BuildContext context) { - return Consumer(builder: (context, requestDetailProvider, child) { + return Consumer(builder: (context, requestDetailProvider, child) { return SingleChildScrollView( child: Column( children: [ @@ -263,7 +262,7 @@ class _InternalMaintenanceRequestState extends State }); } - Widget repairLocationWidget(BuildContext context, RequestDetailProvider requestDetailProvider) { + Widget repairLocationWidget(BuildContext context, ServiceRequestDetailProvider requestDetailProvider) { return Consumer(builder: (cxt, snapshot, _) { try { requestDetailProvider.activityMaintenanceHelperModel?.repairLocation ??= snapshot.reasons?.first;