From f780049e87db319f485c3978fd28081386e90e3e Mon Sep 17 00:00:00 2001 From: WaseemAbbasi22 Date: Sun, 11 May 2025 11:35:47 +0300 Subject: [PATCH] ATOMS-881 fixed --- .../task_request_detail_view.dart | 24 ++++++++++++++-- .../update_task_request_view.dart | 28 +++++++++++-------- 2 files changed, 38 insertions(+), 14 deletions(-) diff --git a/lib/views/pages/user/tasks_request/task_request_detail_view.dart b/lib/views/pages/user/tasks_request/task_request_detail_view.dart index d485c6f9..d04be149 100644 --- a/lib/views/pages/user/tasks_request/task_request_detail_view.dart +++ b/lib/views/pages/user/tasks_request/task_request_detail_view.dart @@ -107,7 +107,7 @@ class _TaskRequestDetailsViewState extends State { style: AppTextStyles.heading4.copyWith(color: context.isDark ? AppColor.neutral30 : AppColor.neutral50), ), '${context.translation.taskType}: ${taskModel?.taskType?.typeName ?? "-"}'.bodyText(context), - '${context.translation.taskNo}: ${taskModel?.taskJobNo ?? "-"}'.bodyText(context), + '${context.translation.taskNo}: ${taskModel?.taskJobNo ?? "-"}'.bodyText(context), if (taskProvider.taskRequestModel?.taskType?.isRecallAndAlert == true) ...[ recallAlertTypeWidget(taskModel: taskProvider.taskRequestModel!), Column( @@ -132,6 +132,7 @@ class _TaskRequestDetailsViewState extends State { const Divider().defaultStyle(context), FilesList(images: taskProvider.taskRequestModel!.taskJobAttachments!.map((toElement) => URLs.getFileUrl(toElement.name ?? '') ?? '').toList()), ], + buildTechnicalComments(taskModel: taskModel), ], ).toShadowContainer(context).paddingAll(16), ).expanded, @@ -155,7 +156,7 @@ class _TaskRequestDetailsViewState extends State { return Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ - const Divider().defaultStyle(context), + const Divider().defaultStyle(context), Text( "Site Details".addTranslation, style: AppTextStyles.heading4.copyWith(color: context.isDark ? AppColor.neutral30 : AppColor.neutral50), @@ -171,6 +172,25 @@ class _TaskRequestDetailsViewState extends State { ); } + Widget buildTechnicalComments({TaskData? taskModel}) { + String previousComments = taskModel?.taskJobActivityEngineerTimers?.map((e) => e.comment?.trim()).where((comment) => comment != null && comment.isNotEmpty).join('\n') ?? ''; + if (previousComments.isNotEmpty) { + return Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + const Divider().defaultStyle(context), + Text( + "Technical Comments".addTranslation, + style: AppTextStyles.heading4.copyWith(color: context.isDark ? AppColor.neutral30 : AppColor.neutral50), + ), + previousComments.bodyText2(context).custom(color: AppColor.neutral50), + 8.height, + ], + ); + } + return const SizedBox(); + } + Widget linkWithLocationWidget({required TaskData taskModel}) { return Column( crossAxisAlignment: CrossAxisAlignment.start, diff --git a/lib/views/pages/user/tasks_request/update_task_request_view.dart b/lib/views/pages/user/tasks_request/update_task_request_view.dart index 4b65bf21..f479ce75 100644 --- a/lib/views/pages/user/tasks_request/update_task_request_view.dart +++ b/lib/views/pages/user/tasks_request/update_task_request_view.dart @@ -52,6 +52,7 @@ class _UpdateTaskRequestState extends State { final GlobalKey _scaffoldKey = GlobalKey(); List _files = []; bool installationType = true; + String comments = ''; @override void initState() { @@ -84,10 +85,12 @@ class _UpdateTaskRequestState extends State { Widget build(BuildContext context) { return Consumer(builder: (context, taskProvider, child) { return Scaffold( - appBar: DefaultAppBar(title: context.translation.taskRequest, + appBar: DefaultAppBar( + title: context.translation.taskRequest, onWillPopScope: () { _updateTask(context: context, status: 0); - },), + }, + ), key: _scaffoldKey, body: taskProvider.isLoading ? const ALoading() @@ -124,7 +127,8 @@ class _UpdateTaskRequestState extends State { showShadow: false, alignLabelWithHint: true, onChange: (value) { - taskProvider.taskRequestModel?.taskTimerModel?.comments = value; + comments = value; + setState(() {}); }, onSaved: (value) {}, ), @@ -179,7 +183,6 @@ class _UpdateTaskRequestState extends State { TaskRequestProvider taskRequestProvider = Provider.of(context, listen: false); TaskData? taskModel = taskRequestProvider.taskRequestModel; taskModel?.statusValue = status; - if (validate(model: taskModel)) { showDialog(context: context, barrierDismissible: false, builder: (context) => const AppLazyLoading()); List attachement = []; @@ -191,16 +194,17 @@ class _UpdateTaskRequestState extends State { int durationInSecond = timer.endAt!.difference(timer.startAt!).inSeconds; taskModel.taskJobActivityEngineerTimers?.add( TaskJobActivityEngineerTimer( - id: 0, - startDate: timer.startAt!.toIso8601String(), - // Handle potential null - endDate: timer.endAt?.toIso8601String(), - // Handle potential null - totalWorkingHour: ((durationInSecond) / 60 / 60), - comment: timer.comments, - ), + id: 0, + startDate: timer.startAt!.toIso8601String(), + // Handle potential null + endDate: timer.endAt?.toIso8601String(), + // Handle potential null + totalWorkingHour: ((durationInSecond) / 60 / 60), + // comment: timer.comments, + comment: timer.comments ?? comments), ); }); + await taskRequestProvider.updateTaskByEngineer().whenComplete(() async { if (taskRequestProvider.stateCode == 200) { if (status == 1) {