From 764814171b7da78c2f755de5941b2185b270a90b Mon Sep 17 00:00:00 2001 From: Sikander Saleem Date: Tue, 18 Aug 2026 11:10:30 +0300 Subject: [PATCH] improvements --- .../providers/api/ppm_provider.dart | 16 +++++++-------- .../forms/spare_part/spare_part_request.dart | 10 ++++++++-- .../activities/pm_activities_list_view.dart | 20 +++++++++++-------- .../swipe_module/dialoge/info_dialog.dart | 2 +- 4 files changed, 28 insertions(+), 20 deletions(-) diff --git a/lib/controllers/providers/api/ppm_provider.dart b/lib/controllers/providers/api/ppm_provider.dart index f56f7fdd..7861b5b1 100644 --- a/lib/controllers/providers/api/ppm_provider.dart +++ b/lib/controllers/providers/api/ppm_provider.dart @@ -408,10 +408,7 @@ class PpmProvider extends ChangeNotifier { isLoading = true; Response response; try { - response = await ApiManager.instance.post( - URLs.createPmActivitySparePart, - body: sparePartHelperModel!.toPMJson(), - ); + response = await ApiManager.instance.post(URLs.createPmActivitySparePart, body: sparePartHelperModel!.toPMJson()); stateCode = response.statusCode; isLoading = false; notifyListeners(); @@ -427,24 +424,25 @@ class PpmProvider extends ChangeNotifier { } } - Future updateActivitySparePart(BuildContext context) async { + Future updateActivitySparePart() async { Response response; try { response = await ApiManager.instance.post(URLs.updatePmActivitySparePart, body: sparePartHelperModel!.toPMJson(), showToast: false); if (response.statusCode == 200) { + return ""; + } else { final responseBody = jsonDecode(response.body); if (responseBody is Map) { final message = responseBody["message"]; // Reuse parsed body if (message != null && message.toString().isNotEmpty) { - Fluttertoast.showToast(msg: message, toastLength: Toast.LENGTH_LONG); + return message; } } - return true; + return "Failed, Try Again"; } - return false; } catch (error) { - return false; + return "Failed, Try Again"; } } 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 63dcd3b7..19b58ed1 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 @@ -356,10 +356,12 @@ class _SparePartRequestState extends State { // Submit bool success = false; + String message = ""; if (model?.id == 0) { success = await provider.createActivitySparePart(); } else { - success = await provider.updateActivitySparePart(); + message = await provider.updateActivitySparePart(); + success = message.isEmpty; } if (mounted) Navigator.pop(context); // Close loading @@ -385,6 +387,10 @@ class _SparePartRequestState extends State { message: '', ); } + } else { + if(message.isNotEmpty) { + context.showInfoDialog(message, title: "Error"); + } } } } @@ -421,7 +427,7 @@ class PartDetailBottomSheetSheet extends StatelessWidget { : provider.storeAvailability.isEmpty ? const NoDataFound().center : ListView.separated( - padding: const EdgeInsets.only(top: 12,bottom: 12), + padding: const EdgeInsets.only(top: 12, bottom: 12), itemCount: provider.storeAvailability.length, separatorBuilder: (czt, index) => 12.height, itemBuilder: (context, index) { diff --git a/lib/modules/pm_module/ppm_wo/activities/pm_activities_list_view.dart b/lib/modules/pm_module/ppm_wo/activities/pm_activities_list_view.dart index bf8527e0..d9a43385 100644 --- a/lib/modules/pm_module/ppm_wo/activities/pm_activities_list_view.dart +++ b/lib/modules/pm_module/ppm_wo/activities/pm_activities_list_view.dart @@ -115,6 +115,9 @@ class _PmActivitiesListViewState extends State { pmProvider.planPreventiveVisit?.visitStatus?.value != 5 && pmProvider.planPreventiveVisit?.visitStatus?.value != 3; + bool canDelete = showActionButtons && activity.activityStatus?.value == 1; + bool canEdit = showActionButtons && (canDelete || activity.activityStatus!.value! == 3); + return Column( mainAxisSize: MainAxisSize.min, crossAxisAlignment: CrossAxisAlignment.start, @@ -127,15 +130,16 @@ class _PmActivitiesListViewState extends State { textColor: AppColor.white10, backgroundColor: AppColor.primary10, ), - if (showActionButtons) - Row( - crossAxisAlignment: CrossAxisAlignment.start, - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ + Row( + crossAxisAlignment: CrossAxisAlignment.start, + mainAxisAlignment: MainAxisAlignment.spaceBetween, + spacing: 12, + children: [ + if (canEdit) "edit_icon".toSvgAsset(height: 24, width: 24, color: AppColor.icon2Color(context)).onPress(() { editSparePartRequest(context: context, pmProvider: pmProvider, activity: activity); }), - 12.width, + if (canDelete) "delete_icon".toSvgAsset(height: 24, width: 24).onPress(() async { showDialog(context: context, barrierDismissible: false, builder: (context) => const AppLazyLoading()); int status = await pmProvider.deleteActivitySparePart(id: activity.id!); @@ -146,8 +150,8 @@ class _PmActivitiesListViewState extends State { Navigator.pop(context); } }), - ], - ) + ], + ) ], ), 6.height, diff --git a/lib/new_views/swipe_module/dialoge/info_dialog.dart b/lib/new_views/swipe_module/dialoge/info_dialog.dart index 5809ab6d..8dcc0cb7 100644 --- a/lib/new_views/swipe_module/dialoge/info_dialog.dart +++ b/lib/new_views/swipe_module/dialoge/info_dialog.dart @@ -41,7 +41,7 @@ class InfoDialog extends StatelessWidget { crossAxisAlignment: CrossAxisAlignment.start, children: [ Expanded( - child: InfoHeader16Widget("Information").paddingOnly(top: 16), + child: InfoHeader16Widget(title ?? "Information").paddingOnly(top: 16), // Text( // title ?? "Information", // style: TextStyle(fontSize: 24, fontWeight: FontWeight.w600, color: AppColor.headingTextColor(context), height: 35 / 24, letterSpacing: -0.96),