diff --git a/lib/new_views/pages/land_page/requests/device_item_view.dart b/lib/new_views/pages/land_page/requests/device_item_view.dart index f9c0fd98..3df16d98 100644 --- a/lib/new_views/pages/land_page/requests/device_item_view.dart +++ b/lib/new_views/pages/land_page/requests/device_item_view.dart @@ -59,6 +59,7 @@ class DeviceItemView extends StatelessWidget { '${context.translation.requestNo}: ${requestData!.requestNo}'.bodyText(context), ], ), + 8.height, Row( mainAxisSize: MainAxisSize.min, children: [ @@ -111,14 +112,16 @@ class DeviceItemView extends StatelessWidget { crossAxisAlignment: CrossAxisAlignment.start, mainAxisSize: MainAxisSize.min, children: [ - '${context.translation.requestNo}: ${requestDetails!.requestNo}'.bodyText(context), (requestDetails?.nameOfType ?? context.translation.deviceTransferRequest).heading5(context), + 8.height, + '${context.translation.requestNo}: ${requestDetails!.requestNo}'.bodyText(context), "${context.translation.from} : ${requestDetails!.siteTransferFrom?.cleanupWhitespace.capitalizeFirstOfEach}".bodyText(context), "${context.translation.to} : ${requestDetails!.siteTransferTo?.cleanupWhitespace.capitalizeFirstOfEach}".bodyText(context), requestDetails!.status!.replaceAll("=", ":").bodyText(context), ], ), + 8.height, Row( mainAxisSize: MainAxisSize.min, children: [ diff --git a/lib/new_views/pages/land_page/requests/gas_refill_item_view.dart b/lib/new_views/pages/land_page/requests/gas_refill_item_view.dart index 00f848f6..923d2733 100644 --- a/lib/new_views/pages/land_page/requests/gas_refill_item_view.dart +++ b/lib/new_views/pages/land_page/requests/gas_refill_item_view.dart @@ -108,6 +108,7 @@ class GasRefillItemView extends StatelessWidget { ), 8.height, (requestDetails?.nameOfType ?? context.translation.gasRefillRequest).heading5(context), + 8.height, '${context.translation.gasType}: ${requestDetails!.gasType}'.bodyText(context), '${context.translation.site}: ${requestDetails!.site?.cleanupWhitespace?.capitalizeFirstOfEach}'.bodyText(context), '${context.translation.requestNo}: ${requestDetails!.requestNo}'.bodyText(context), diff --git a/lib/new_views/pages/land_page/requests/ppm_item_view.dart b/lib/new_views/pages/land_page/requests/ppm_item_view.dart index 100f47de..4b214131 100644 --- a/lib/new_views/pages/land_page/requests/ppm_item_view.dart +++ b/lib/new_views/pages/land_page/requests/ppm_item_view.dart @@ -54,7 +54,7 @@ class PpmItemView extends StatelessWidget { // '${context.translation.assetSN}: ${request.assetSN}'.bodyText(context),//todo ask ahmed // '${context.translation.code}: ${request.code}'.bodyText(context), 'PM No: ${requestData!.requestNo}'.bodyText(context), - 16.height, + 8.height, Row( mainAxisSize: MainAxisSize.min, children: [ @@ -105,7 +105,7 @@ class PpmItemView extends StatelessWidget { '${context.translation.assetSN}: ${requestDetails!.assetSN}'.bodyText(context), // '${context.translation.code}: ${request.code}'.bodyText(context), 'PM No: ${requestDetails!.requestNo}'.bodyText(context), - 16.height, + 8.height, Row( mainAxisSize: MainAxisSize.min, children: [ diff --git a/lib/new_views/pages/land_page/requests/recurrent_wo_item_view.dart b/lib/new_views/pages/land_page/requests/recurrent_wo_item_view.dart index 1387d6dc..905026a4 100644 --- a/lib/new_views/pages/land_page/requests/recurrent_wo_item_view.dart +++ b/lib/new_views/pages/land_page/requests/recurrent_wo_item_view.dart @@ -53,7 +53,7 @@ class RecurrentWoItemView extends StatelessWidget { // '${context.translation.assetSN}: ${request.assetSN}'.bodyText(context),//todo ask ahmed // '${context.translation.code}: ${request.code}'.bodyText(context), '${context.translation.taskNo}: ${requestData!.requestNo}'.bodyText(context), - 16.height, + 8.height, Row( mainAxisSize: MainAxisSize.min, children: [ @@ -103,7 +103,7 @@ class RecurrentWoItemView extends StatelessWidget { '${context.translation.site}: ${requestDetails!.site}'.bodyText(context), // '${context.translation.code}: ${request.code}'.bodyText(context), '${context.translation.taskNo}: ${requestDetails!.requestNo}'.bodyText(context), - 16.height, + 8.height, Row( mainAxisSize: MainAxisSize.min, children: [ diff --git a/lib/new_views/pages/land_page/requests/request_paginated_listview.dart b/lib/new_views/pages/land_page/requests/request_paginated_listview.dart index 6b757e25..c22878a3 100644 --- a/lib/new_views/pages/land_page/requests/request_paginated_listview.dart +++ b/lib/new_views/pages/land_page/requests/request_paginated_listview.dart @@ -7,6 +7,8 @@ import 'package:test_sa/new_views/pages/land_page/requests/gas_refill_item_view. import 'package:test_sa/new_views/pages/land_page/requests/ppm_item_view.dart'; import 'package:test_sa/new_views/pages/land_page/requests/recurrent_wo_item_view.dart'; import 'package:test_sa/new_views/pages/land_page/requests/service_request_item_view.dart'; +import 'package:test_sa/views/pages/user/tasks_request/task_request_detail_view.dart'; +import 'package:test_sa/views/pages/user/tasks_request/task_request_item_view.dart'; class RequestPaginatedListview extends StatelessWidget { final List list; @@ -18,7 +20,6 @@ class RequestPaginatedListview extends StatelessWidget { @override Widget build(BuildContext context) { - return ListView.separated( itemCount: list.length < totalCount ? list.length + 1 : list.length, controller: scrollController, @@ -50,12 +51,10 @@ class RequestPaginatedListview extends StatelessWidget { bool isAssetTransfer = request.transactionNo == 3; bool isPPMs = request.transactionNo == 4; bool isRecurrentTask = request.transactionNo == 5; + bool isTask = request.transactionNo == 6; if (isServiceRequest) { - return ServiceRequestItemView( - requestData: request, - refreshData: false, - ); + return ServiceRequestItemView(requestData: request, refreshData: false); } else if (isGasRefill) { return GasRefillItemView(requestData: request); } else if (isPPMs) { @@ -64,6 +63,8 @@ class RequestPaginatedListview extends StatelessWidget { return DeviceItemView(requestData: request); } else if (isRecurrentTask) { return RecurrentWoItemView(requestData: request); + } else if (isTask) { + return TaskRequestItemView(requestData: request); } else { return Container( height: 100, diff --git a/lib/views/pages/device_transfer/device_transfer_details.dart b/lib/views/pages/device_transfer/device_transfer_details.dart index 1b8a69cb..ef0c80e7 100644 --- a/lib/views/pages/device_transfer/device_transfer_details.dart +++ b/lib/views/pages/device_transfer/device_transfer_details.dart @@ -111,8 +111,12 @@ class _DeviceTransferDetailsState extends State { _buildTextWidget(_model!.comment!), ], if (_attachments.isNotEmpty) ...[ - 8.height, const Divider().defaultStyle(context), + Text( + "Attachments".addTranslation, + style: AppTextStyles.heading6.copyWith(color: context.isDark ? AppColor.neutral30 : AppColor.neutral50), + ), + 8.height, FilesList(images: _model?.assetTransferAttachments?.map((e) => URLs.getFileUrl(e.attachmentName ?? '') ?? '').toList() ?? []), //attachmentWidget(), ] diff --git a/lib/views/pages/device_transfer/update_device_transfer.dart b/lib/views/pages/device_transfer/update_device_transfer.dart index 049ddb1c..89427ae1 100644 --- a/lib/views/pages/device_transfer/update_device_transfer.dart +++ b/lib/views/pages/device_transfer/update_device_transfer.dart @@ -471,7 +471,10 @@ class _UpdateDeviceTransferState extends State { : (widget.model.receiverVisitTimers?.fold(0.0, (sum, item) => (sum ?? 0) + DateTime.parse(item.endDateTime!).difference(DateTime.parse(item.startDateTime!)).inSeconds) ?? 0); bool isTimerEnable = widget.isSender ? (!(_formModel.senderMachineStatusValue == 3)) : (!(_formModel.receiverMachineStatusValue == 3)); return Scaffold( - appBar: DefaultAppBar(title: context.translation.transferAsset), + appBar: DefaultAppBar(title: context.translation.transferAsset, + onWillPopScope: () { + _update(status: 0); + },), key: _scaffoldKey, body: SafeArea( child: LoadingManager( @@ -555,7 +558,11 @@ class _UpdateDeviceTransferState extends State { ), ), ), - ); + ).handlePopScope( + cxt: context, + onSave: () { + _update(status: 0); + }); } void updateTimer({TimerModel? timer}) { diff --git a/lib/views/pages/user/gas_refill/gas_refill_details.dart b/lib/views/pages/user/gas_refill/gas_refill_details.dart index 0345d29e..a73aa1fc 100644 --- a/lib/views/pages/user/gas_refill/gas_refill_details.dart +++ b/lib/views/pages/user/gas_refill/gas_refill_details.dart @@ -1,6 +1,8 @@ import 'dart:io'; + 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/gas_refill_comments.dart'; import 'package:test_sa/controllers/providers/api/gas_refill_provider.dart'; import 'package:test_sa/controllers/providers/api/user_provider.dart'; @@ -10,9 +12,10 @@ import 'package:test_sa/extensions/string_extensions.dart'; import 'package:test_sa/extensions/widget_extensions.dart'; import 'package:test_sa/new_views/common_widgets/app_filled_button.dart'; import 'package:test_sa/views/pages/user/gas_refill/gas_refill_form.dart'; -import 'package:test_sa/views/widgets/images/multi_image_picker.dart'; +import 'package:test_sa/views/widgets/images/files_list.dart'; import 'package:test_sa/views/widgets/loaders/app_loading.dart'; import 'package:test_sa/views/widgets/loaders/no_data_found.dart'; + import '../../../../extensions/text_extensions.dart'; import '../../../../models/enums/user_types.dart'; import '../../../../models/new_models/gas_refill_model.dart'; @@ -164,13 +167,7 @@ class _GasRefillDetailsPageState extends State { style: AppTextStyles.heading6.copyWith(color: context.isDark ? AppColor.neutral30 : AppColor.neutral50), ), 8.height, - MultiFilesPicker( - label: context.translation.attachments, - files: _attachments, - enabled: false, - onlyImages: false, - ), - 12.height, + FilesList(images: _model?.gasRefillAttachments?.map((e) => URLs.getFileUrl(e.attachmentName ?? '') ?? '').toList() ?? []), ], ], ).expanded, diff --git a/lib/views/pages/user/gas_refill/gas_refill_form.dart b/lib/views/pages/user/gas_refill/gas_refill_form.dart index f08f7ae3..f572c7b5 100644 --- a/lib/views/pages/user/gas_refill/gas_refill_form.dart +++ b/lib/views/pages/user/gas_refill/gas_refill_form.dart @@ -80,8 +80,7 @@ class _GasRefillFormState extends State { if (widget.gasRefillModel != null) { _formModel.fromGasRefillModel(widget.gasRefillModel!); - totalWorkingHours = - _formModel.gasRefillTimers?.fold(0.0, (sum, item) => (sum ?? 0) + DateTime.parse(item.endDate!).difference(DateTime.parse(item.startDate!)).inSeconds) ?? 0; + totalWorkingHours = _formModel.gasRefillTimers?.fold(0.0, (sum, item) => (sum ?? 0) + DateTime.parse(item.endDate!).difference(DateTime.parse(item.startDate!)).inSeconds) ?? 0; _commentController.text = _formModel.techComment ?? ""; try { _deliveredQuantity = deliveredQuantity.singleWhere((element) => element.value == _formModel.gasRefillDetails![0].deliverdQty); @@ -130,8 +129,8 @@ class _GasRefillFormState extends State { }); _formModel.gasRefillAttachments = []; for (var item in _attachments) { - _formModel.gasRefillAttachments - ?.add(GasRefillAttachments(id: 0,gasRefillId: _formModel.id??0, attachmentName: ServiceRequestUtils.isLocalUrl(item.path) ? "${item.path.split("/").last}|${base64Encode(item.readAsBytesSync())}" : item.path)); + _formModel.gasRefillAttachments?.add(GasRefillAttachments( + id: 0, gasRefillId: _formModel.id ?? 0, attachmentName: ServiceRequestUtils.isLocalUrl(item.path) ? "${item.path.split("/").last}|${base64Encode(item.readAsBytesSync())}" : item.path)); } await _gasRefillProvider?.updateGasRefill(status: status, model: _formModel).whenComplete(() { if (status == 1) { @@ -190,7 +189,12 @@ class _GasRefillFormState extends State { double totalWorkingHours = _formModel.gasRefillTimers?.fold(0.0, (sum, item) => (sum ?? 0) + DateTime.parse(item.endDate!).difference(DateTime.parse(item.startDate!)).inSeconds) ?? 0; return Scaffold( - appBar: DefaultAppBar(title: context.translation.gasRefill), + appBar: DefaultAppBar( + title: context.translation.gasRefill, + onWillPopScope: () { + _onSubmit(context, 0); + }, + ), key: _scaffoldKey, body: Form( key: _formKey, @@ -341,7 +345,11 @@ class _GasRefillFormState extends State { )), ), ), - ); + ).handlePopScope( + cxt: context, + onSave: () { + _onSubmit(context, 0); + }); } Widget _timerWidget(BuildContext context, double totalWorkingHours) { 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 e288433b..ea945dbf 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 @@ -106,8 +106,8 @@ class _TaskRequestDetailsViewState extends State { "Task Details".addTranslation, style: AppTextStyles.heading4.copyWith(color: context.isDark ? AppColor.neutral30 : AppColor.neutral50), ), - '${context.translation.taskType}: ${widget.requestDetails?.nameOfType ?? "-"}'.bodyText(context), - '${context.translation.taskNo}: ${widget.requestDetails?.requestNo ?? "-"}'.bodyText(context), + '${context.translation.taskType}: ${taskModel?.taskType?.typeName ?? "-"}'.bodyText(context), + '${context.translation.taskNo}: ${taskModel?.taskJobNo ?? "-"}'.bodyText(context), if (taskProvider.taskRequestModel?.taskType?.isRecallAndAlert == true) ...[ recallAlertTypeWidget(taskModel: taskProvider.taskRequestModel!), Column( @@ -171,21 +171,11 @@ class _TaskRequestDetailsViewState extends State { ); } - // Widget linkWithAssetWidget({required TaskData taskModel}) { - // return Column( - // crossAxisAlignment: CrossAxisAlignment.start, - // children: [ - // // assetDetails(), - // ], - // ); - // } - Widget linkWithLocationWidget({required TaskData taskModel}) { return Column( crossAxisAlignment: CrossAxisAlignment.start, mainAxisSize: MainAxisSize.min, children: [ - const Divider().defaultStyle(context), Text( "Location Details".addTranslation, style: AppTextStyles.heading4.copyWith(color: context.isDark ? AppColor.neutral30 : AppColor.neutral50), diff --git a/lib/views/pages/user/tasks_request/task_request_form_view.dart b/lib/views/pages/user/tasks_request/task_request_form_view.dart index 26122323..fcf35f7a 100644 --- a/lib/views/pages/user/tasks_request/task_request_form_view.dart +++ b/lib/views/pages/user/tasks_request/task_request_form_view.dart @@ -84,7 +84,10 @@ class _TaskRequestFormState 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() @@ -164,7 +167,11 @@ class _TaskRequestFormState extends State { ), ) : NoDataFound(message: context.translation.noDataFound).center, - ); + ).handlePopScope( + cxt: context, + onSave: () { + _updateTask(context: context, status: 0); + }); }); } diff --git a/lib/views/pages/user/tasks_request/task_request_item_view.dart b/lib/views/pages/user/tasks_request/task_request_item_view.dart index 6fa8c38f..7a3abfd9 100644 --- a/lib/views/pages/user/tasks_request/task_request_item_view.dart +++ b/lib/views/pages/user/tasks_request/task_request_item_view.dart @@ -55,7 +55,7 @@ class TaskRequestItemView extends StatelessWidget { infoWidget(label: context.translation.requestNo, value: requestData?.requestNo, context: context), infoWidget(label: context.translation.assetName, value: requestData?.assetName, context: context), infoWidget(label: context.translation.assetNo, value: requestData?.assetNumber, context: context), - 12.height, + 8.height, Row( mainAxisSize: MainAxisSize.min, children: [ @@ -109,7 +109,7 @@ class TaskRequestItemView extends StatelessWidget { infoWidget(label: context.translation.assetNo, value: requestDetails!.assetNo, context: context), infoWidget(label: context.translation.assetSN, value: requestDetails!.assetSN, context: context), infoWidget(label: context.translation.site, value: requestDetails!.site, context: context), - 12.height, + 8.height, Row( mainAxisSize: MainAxisSize.min, children: [