From 12752535b8f8a51ccfaf1f0372aef0ac87281cc9 Mon Sep 17 00:00:00 2001 From: Sikander Saleem Date: Wed, 9 Jul 2025 11:55:19 +0300 Subject: [PATCH] improvements --- .../service_request_detail_provider.dart | 17 +--------- .../forms/spare_part/spare_part_request.dart | 32 +++++++++---------- .../images/multi_image_picker_item.dart | 10 ++++-- .../images/new_multi_image_picker.dart | 7 ++++ 4 files changed, 31 insertions(+), 35 deletions(-) diff --git a/lib/modules/cm_module/service_request_detail_provider.dart b/lib/modules/cm_module/service_request_detail_provider.dart index 7820a381..da6f59c2 100644 --- a/lib/modules/cm_module/service_request_detail_provider.dart +++ b/lib/modules/cm_module/service_request_detail_provider.dart @@ -738,20 +738,14 @@ class ServiceRequestDetailProvider extends ChangeNotifier { } Future updateActivitySparePart() async { - isLoading = true; - notifyListeners(); try { final response = await ApiManager.instance.post(URLs.updateActivitySparePartUrl, body: sparePartHelperModel!.toJson()); stateCode = response.statusCode; if (response.statusCode >= 200 && response.statusCode < 300) { // request.engineerName = employee.name; } - isLoading = false; - notifyListeners(); return response.statusCode; } catch (error) { - isLoading = false; - notifyListeners(); return -1; } } @@ -868,25 +862,16 @@ class ServiceRequestDetailProvider extends ChangeNotifier { } Future createActivitySparePart() async { - isLoading = true; - notifyListeners(); try { - final response = await ApiManager.instance.post( - URLs.createActivitySparePartUrl, - body: sparePartHelperModel!.toJson(), - ); + final response = await ApiManager.instance.post(URLs.createActivitySparePartUrl, body: sparePartHelperModel!.toJson()); stateCode = response.statusCode; if (response.statusCode >= 200 && response.statusCode < 300) { // currentWorkOrder = await WorkOrderDetail.fromJson(json.decode(response.body)); // // updateCurrentWorkOrder(currentWorkOrder); // notifyListeners(); } - isLoading = false; - notifyListeners(); return response.statusCode; } catch (error) { - isLoading = false; - notifyListeners(); return -1; } } diff --git a/lib/modules/cm_module/views/forms/spare_part/spare_part_request.dart b/lib/modules/cm_module/views/forms/spare_part/spare_part_request.dart index ce77a407..539dde4f 100644 --- a/lib/modules/cm_module/views/forms/spare_part/spare_part_request.dart +++ b/lib/modules/cm_module/views/forms/spare_part/spare_part_request.dart @@ -59,18 +59,18 @@ class _SparePartRequestState extends State with TickerProvider super.initState(); _partsProvider = Provider.of(context, listen: false); _requestDetailProvider = Provider.of(context, listen: false); - // _requestDetailProvider?.sparePartHelperModel = SparePartHelperModel( - // id: _requestDetailProvider?.sparePartHelperModel?.id ?? 0, - // workOrderId: _requestDetailProvider?.sparePartHelperModel?.workOrderId ?? _requestDetailProvider?.currentWorkOrder?.data?.requestId, - // sparePartAttachments: _requestDetailProvider?.sparePartHelperModel?.sparePartAttachments ?? [], - // sparePart: _requestDetailProvider?.sparePartHelperModel?.sparePart ?? SparePart(), - // quantity: _requestDetailProvider?.sparePartHelperModel?.quantity, - // installQty: _requestDetailProvider?.sparePartHelperModel?.installQty, - // returnQty: _requestDetailProvider?.sparePartHelperModel?.returnQty, - // activityStatusId: _requestDetailProvider?.sparePartHelperModel?.activityStatusId ?? statusLookup.id, - // activityStatus: _requestDetailProvider?.sparePartHelperModel?.activityStatus ?? statusLookup, - // comment: _requestDetailProvider?.sparePartHelperModel?.comment ?? '', - // ); + _requestDetailProvider?.sparePartHelperModel = SparePartHelperModel( + id: _requestDetailProvider?.sparePartHelperModel?.id ?? 0, + workOrderId: _requestDetailProvider?.sparePartHelperModel?.workOrderId ?? _requestDetailProvider?.currentWorkOrder?.data?.requestId, + sparePartAttachments: _requestDetailProvider?.sparePartHelperModel?.sparePartAttachments ?? [], + sparePart: _requestDetailProvider?.sparePartHelperModel?.sparePart ?? SparePart(), + quantity: _requestDetailProvider?.sparePartHelperModel?.quantity, + installQty: _requestDetailProvider?.sparePartHelperModel?.installQty, + returnQty: _requestDetailProvider?.sparePartHelperModel?.returnQty, + activityStatusId: _requestDetailProvider?.sparePartHelperModel?.activityStatusId ?? statusLookup.id, + activityStatus: _requestDetailProvider?.sparePartHelperModel?.activityStatus ?? statusLookup, + comment: _requestDetailProvider?.sparePartHelperModel?.comment ?? '', + ); _partQtyController.text = _requestDetailProvider?.sparePartHelperModel?.quantity != null ? _requestDetailProvider!.sparePartHelperModel!.quantity!.round().toString() : ''; _installQtyController.text = _requestDetailProvider?.sparePartHelperModel?.installQty != null ? _requestDetailProvider!.sparePartHelperModel!.installQty!.round().toString() : ''; _returnQtyController.text = _requestDetailProvider?.sparePartHelperModel?.returnQty != null ? _requestDetailProvider!.sparePartHelperModel!.returnQty!.round().toString() : ''; @@ -119,12 +119,12 @@ class _SparePartRequestState extends State with TickerProvider key: _scaffoldKey, appBar: DefaultAppBar(title: context.translation.sparePartRequest), body: Consumer(builder: (context, ServiceRequestDetailProvider requestDetailProvider, child) { - return SafeArea( - child: Form( + return Form( key: _formKey, child: Column( children: [ SingleChildScrollView( + padding: const EdgeInsets.all(12), child: IgnorePointer( ignoring: _requestDetailProvider!.isReadOnlyRequest, child: Column( @@ -303,7 +303,7 @@ class _SparePartRequestState extends State with TickerProvider ], ), ), - ).paddingAll(12).expanded, + ).expanded, if (!requestDetailProvider.isReadOnlyRequest) FooterActionButton.footerContainer( child: AppFilledButton( @@ -340,7 +340,7 @@ class _SparePartRequestState extends State with TickerProvider )), ], ), - )); + ); }), ); } diff --git a/lib/views/widgets/images/multi_image_picker_item.dart b/lib/views/widgets/images/multi_image_picker_item.dart index ee2d0753..bb1e7a36 100644 --- a/lib/views/widgets/images/multi_image_picker_item.dart +++ b/lib/views/widgets/images/multi_image_picker_item.dart @@ -17,8 +17,9 @@ class MultiFilesPickerItem extends StatelessWidget { final File file; final bool enabled; final Function(File) onRemoveTap; + final VoidCallback? onRemove; - const MultiFilesPickerItem({Key? key, required this.file, required this.enabled, required this.onRemoveTap}) : super(key: key); + const MultiFilesPickerItem({Key? key, required this.file, required this.enabled, required this.onRemoveTap, this.onRemove}) : super(key: key); @override Widget build(BuildContext context) { @@ -27,8 +28,8 @@ class MultiFilesPickerItem extends StatelessWidget { bool isExcel = file.path.split(".").last.toLowerCase() == "xlsx"; return SizedBox( - width: 54.toScreenWidth, - height: 51.toScreenWidth, + width: 60.toScreenWidth, + height: 60.toScreenWidth, child: Stack( alignment: AlignmentDirectional.topEnd, children: [ @@ -80,6 +81,9 @@ class MultiFilesPickerItem extends StatelessWidget { child: "remove".toSvgAsset(width: 16), onTap: () { onRemoveTap(file); + if (onRemove != null) { + onRemove!(); + } }, ) ], diff --git a/lib/views/widgets/images/new_multi_image_picker.dart b/lib/views/widgets/images/new_multi_image_picker.dart index 10487230..30f4a9ff 100644 --- a/lib/views/widgets/images/new_multi_image_picker.dart +++ b/lib/views/widgets/images/new_multi_image_picker.dart @@ -86,6 +86,13 @@ class _MultiFilesPickerState extends State { } setState(() {}); }, + onRemove: () { + widget.files.removeAt(index); + if (widget.onChange != null) { + widget.onChange!(widget.files); + } + setState(() {}); + }, ); }, ),