From f3349b0209ea7ebcc8901349704a514171a527b8 Mon Sep 17 00:00:00 2001 From: Sikander Saleem Date: Wed, 30 Aug 2023 16:22:26 +0300 Subject: [PATCH] improvements. --- .../create_sub_workorder_page.dart | 1 + .../pages/sub_workorder/workorder_item.dart | 51 +++++++++++++++++-- .../pages/user/requests/create_request.dart | 34 ++++++++++--- lib/views/widgets/parts/part_item.dart | 4 +- 4 files changed, 76 insertions(+), 14 deletions(-) diff --git a/lib/views/pages/sub_workorder/create_sub_workorder_page.dart b/lib/views/pages/sub_workorder/create_sub_workorder_page.dart index 534e2df7..1e7935c2 100644 --- a/lib/views/pages/sub_workorder/create_sub_workorder_page.dart +++ b/lib/views/pages/sub_workorder/create_sub_workorder_page.dart @@ -78,6 +78,7 @@ class _CreateSubWorkOrderPageState extends State { final subWoDetails = await serviceRequestProvider.getSubWorkOrderDetails(parentId: _subWorkOrders?.parentWOId.toString()); _subWorkOrders.equipmentStatus = subWoDetails.equipmentStatus; _subWorkOrders.reason = subWoDetails.reason; + _serviceReportReason = _subWorkOrders.reason; _subWorkOrders.faultDescription = subWoDetails.faultDescription; _subWorkOrders.sparePartsWorkOrders = subWoDetails.sparePartsWorkOrders; _serviceReport.equipmentStatus = subWoDetails.equipmentStatus; diff --git a/lib/views/pages/sub_workorder/workorder_item.dart b/lib/views/pages/sub_workorder/workorder_item.dart index e18f773a..e2c561d4 100644 --- a/lib/views/pages/sub_workorder/workorder_item.dart +++ b/lib/views/pages/sub_workorder/workorder_item.dart @@ -1,5 +1,6 @@ import 'package:flutter/material.dart'; import 'package:test_sa/controllers/localization/localization.dart'; +import 'package:test_sa/extensions/int_extensions.dart'; import 'package:test_sa/models/subtitle.dart'; import 'package:test_sa/views/app_style/colors.dart'; import 'package:test_sa/views/app_style/sizing.dart'; @@ -46,17 +47,38 @@ class WorkOrderItem extends StatelessWidget { item.callRequest.callNo ?? "-----", style: Theme.of(context).textTheme.headline6.copyWith(color: onItemColor, fontSize: 16, fontWeight: FontWeight.bold), ), - Text( - item.callRequest.asset.id.toString(), - style: Theme.of(context).textTheme.subtitle2.copyWith( + // Text( + // item.callRequest.asset.id.toString(), + // style: Theme.of(context).textTheme.subtitle2.copyWith( + // color: onItemColor, + // ), + // ), + Row(crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + "Asset Name:", + style: Theme.of(context).textTheme.subtitle2.copyWith( color: onItemColor, ), + ), + 8.width, + Expanded( + child: Text( + //CallRequest.Asset.ModelDefinition.AssetND + // .AssetName + item.callRequest.asset.modelDefinition.assetName, + style: Theme.of(context).textTheme.subtitle2.copyWith( + color: onItemColor, + ), + ), + ), + ], ), Row( children: [ Expanded( child: Text( - _subtitle.assetName, + "Asset Number:", style: Theme.of(context).textTheme.subtitle2.copyWith( color: onItemColor, ), @@ -71,8 +93,27 @@ class WorkOrderItem extends StatelessWidget { ), ], ), + Row( + children: [ + Expanded( + child: Text( + "Asset SN:", + style: Theme.of(context).textTheme.subtitle2.copyWith( + color: onItemColor, + ), + ), + ), + //if (item.clientName != null) + Text( + item.callRequest.asset.assetSerialNo, + style: Theme.of(context).textTheme.subtitle2.copyWith( + color: onItemColor, + ), + ), + ], + ), Text( - item.calllastSituation.name, + item.currentSituation.name, style: Theme.of(context).textTheme.subtitle2.copyWith( color: onItemColor, ), diff --git a/lib/views/pages/user/requests/create_request.dart b/lib/views/pages/user/requests/create_request.dart index ff0e6fa6..dddba5a1 100644 --- a/lib/views/pages/user/requests/create_request.dart +++ b/lib/views/pages/user/requests/create_request.dart @@ -24,6 +24,7 @@ import 'package:test_sa/views/widgets/equipment/device_button.dart'; import 'package:test_sa/views/widgets/images/multi_image_picker.dart'; import 'package:test_sa/views/widgets/loaders/loading_manager.dart'; import 'package:test_sa/views/widgets/sound/record_sound.dart'; +import 'package:test_sa/views/widgets/sound/sound_player.dart'; import 'package:test_sa/views/widgets/speech_to_text/speech_to_text.dart'; import 'package:test_sa/views/widgets/status/service_request/service_request_defect_types_mune.dart'; import 'package:test_sa/views/widgets/status/service_request/service_request_priority_mune.dart'; @@ -79,6 +80,10 @@ class CreateRequestPageState extends State { super.initState(); } + getServiceRequestById(String id) async { + await _serviceRequestsProvider.getServiceRequestById(requestId: id) ?? ""; + } + @override void dispose() { _maintenanceController.dispose(); @@ -86,6 +91,11 @@ class CreateRequestPageState extends State { super.dispose(); } + bool _isLocalUrl(String url) { + if (url?.isEmpty != false) return false; + return url.startsWith("/") || url.startsWith("file://") || url.substring(1).startsWith(':\\'); + } + @override Widget build(BuildContext context) { _height = MediaQuery.of(context).size.height; @@ -93,6 +103,7 @@ class CreateRequestPageState extends State { _settingProvider = Provider.of(context); _serviceRequestsProvider = Provider.of(context); _subtitle = AppLocalization.of(context).subtitle; + return Scaffold( key: _scaffoldKey, body: SafeArea( @@ -316,12 +327,17 @@ class CreateRequestPageState extends State { enable: widget.serviceRequest == null ? true : false, ), 12.height, - RecordSound( - onRecord: (audio) { - _serviceRequest.audio = audio; - }, - enabled: widget.serviceRequest == null ? true : false, - ), + if (_serviceRequest.audio?.isNotEmpty == true) + ASoundPlayer( + audio: _serviceRequest.audio, + ) + else + RecordSound( + onRecord: (audio) { + _serviceRequest.audio = audio; + }, + enabled: widget.serviceRequest == null ? true : false, + ), 12.height, if (widget.serviceRequest != null) ATextFormField( @@ -364,8 +380,10 @@ class CreateRequestPageState extends State { setState(() {}); _serviceRequest.devicePhotos = _deviceImages.map((e) => "${e.path.split("/").last}|${base64Encode(e.readAsBytesSync())}").toList(); if (_serviceRequest.audio != null) { - final file = File(_serviceRequest.audio); - _serviceRequest.audio = "${file.path.split("/").last}|${base64Encode(file.readAsBytesSync())}"; + if (_isLocalUrl(_serviceRequest.audio)) { + final File file = File(_serviceRequest.audio); + _serviceRequest.audio = "${file.path.split("/").last}|${base64Encode(file.readAsBytesSync())}"; + } } int status = 0; if (widget.serviceRequest == null) { diff --git a/lib/views/widgets/parts/part_item.dart b/lib/views/widgets/parts/part_item.dart index c108d07e..87fcec03 100644 --- a/lib/views/widgets/parts/part_item.dart +++ b/lib/views/widgets/parts/part_item.dart @@ -21,7 +21,7 @@ class _PartItemState extends State { return Column( children: [ const Divider(), - Row( + Row(crossAxisAlignment: CrossAxisAlignment.start, children: [ Expanded( child: Column( @@ -84,6 +84,8 @@ class _PartItemState extends State { maxLines: 1, overflow: TextOverflow.ellipsis, ), + + // Row(crossAxisAlignment: ,) ], ), ),