improvements

main_production_spare_part
Sikander Saleem 7 hours ago
parent 30a69b1ca6
commit 764814171b

@ -408,10 +408,7 @@ class PpmProvider extends ChangeNotifier {
isLoading = true; isLoading = true;
Response response; Response response;
try { try {
response = await ApiManager.instance.post( response = await ApiManager.instance.post(URLs.createPmActivitySparePart, body: sparePartHelperModel!.toPMJson());
URLs.createPmActivitySparePart,
body: sparePartHelperModel!.toPMJson(),
);
stateCode = response.statusCode; stateCode = response.statusCode;
isLoading = false; isLoading = false;
notifyListeners(); notifyListeners();
@ -427,24 +424,25 @@ class PpmProvider extends ChangeNotifier {
} }
} }
Future<String> updateActivitySparePart(BuildContext context) async { Future<String> updateActivitySparePart() async {
Response response; Response response;
try { try {
response = await ApiManager.instance.post(URLs.updatePmActivitySparePart, body: sparePartHelperModel!.toPMJson(), showToast: false); response = await ApiManager.instance.post(URLs.updatePmActivitySparePart, body: sparePartHelperModel!.toPMJson(), showToast: false);
if (response.statusCode == 200) { if (response.statusCode == 200) {
return "";
} else {
final responseBody = jsonDecode(response.body); final responseBody = jsonDecode(response.body);
if (responseBody is Map<String, dynamic>) { if (responseBody is Map<String, dynamic>) {
final message = responseBody["message"]; // Reuse parsed body final message = responseBody["message"]; // Reuse parsed body
if (message != null && message.toString().isNotEmpty) { 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) { } catch (error) {
return false; return "Failed, Try Again";
} }
} }

@ -356,10 +356,12 @@ class _SparePartRequestState extends State<SparePartRequest> {
// Submit // Submit
bool success = false; bool success = false;
String message = "";
if (model?.id == 0) { if (model?.id == 0) {
success = await provider.createActivitySparePart(); success = await provider.createActivitySparePart();
} else { } else {
success = await provider.updateActivitySparePart(); message = await provider.updateActivitySparePart();
success = message.isEmpty;
} }
if (mounted) Navigator.pop(context); // Close loading if (mounted) Navigator.pop(context); // Close loading
@ -385,6 +387,10 @@ class _SparePartRequestState extends State<SparePartRequest> {
message: '', message: '',
); );
} }
} else {
if(message.isNotEmpty) {
context.showInfoDialog(message, title: "Error");
}
} }
} }
} }
@ -421,7 +427,7 @@ class PartDetailBottomSheetSheet extends StatelessWidget {
: provider.storeAvailability.isEmpty : provider.storeAvailability.isEmpty
? const NoDataFound().center ? const NoDataFound().center
: ListView.separated( : ListView.separated(
padding: const EdgeInsets.only(top: 12,bottom: 12), padding: const EdgeInsets.only(top: 12, bottom: 12),
itemCount: provider.storeAvailability.length, itemCount: provider.storeAvailability.length,
separatorBuilder: (czt, index) => 12.height, separatorBuilder: (czt, index) => 12.height,
itemBuilder: (context, index) { itemBuilder: (context, index) {

@ -115,6 +115,9 @@ class _PmActivitiesListViewState extends State<PmActivitiesListView> {
pmProvider.planPreventiveVisit?.visitStatus?.value != 5 && pmProvider.planPreventiveVisit?.visitStatus?.value != 5 &&
pmProvider.planPreventiveVisit?.visitStatus?.value != 3; pmProvider.planPreventiveVisit?.visitStatus?.value != 3;
bool canDelete = showActionButtons && activity.activityStatus?.value == 1;
bool canEdit = showActionButtons && (canDelete || activity.activityStatus!.value! == 3);
return Column( return Column(
mainAxisSize: MainAxisSize.min, mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
@ -127,15 +130,16 @@ class _PmActivitiesListViewState extends State<PmActivitiesListView> {
textColor: AppColor.white10, textColor: AppColor.white10,
backgroundColor: AppColor.primary10, backgroundColor: AppColor.primary10,
), ),
if (showActionButtons) Row(
Row( crossAxisAlignment: CrossAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start, mainAxisAlignment: MainAxisAlignment.spaceBetween,
mainAxisAlignment: MainAxisAlignment.spaceBetween, spacing: 12,
children: [ children: [
if (canEdit)
"edit_icon".toSvgAsset(height: 24, width: 24, color: AppColor.icon2Color(context)).onPress(() { "edit_icon".toSvgAsset(height: 24, width: 24, color: AppColor.icon2Color(context)).onPress(() {
editSparePartRequest(context: context, pmProvider: pmProvider, activity: activity); editSparePartRequest(context: context, pmProvider: pmProvider, activity: activity);
}), }),
12.width, if (canDelete)
"delete_icon".toSvgAsset(height: 24, width: 24).onPress(() async { "delete_icon".toSvgAsset(height: 24, width: 24).onPress(() async {
showDialog(context: context, barrierDismissible: false, builder: (context) => const AppLazyLoading()); showDialog(context: context, barrierDismissible: false, builder: (context) => const AppLazyLoading());
int status = await pmProvider.deleteActivitySparePart(id: activity.id!); int status = await pmProvider.deleteActivitySparePart(id: activity.id!);
@ -146,8 +150,8 @@ class _PmActivitiesListViewState extends State<PmActivitiesListView> {
Navigator.pop(context); Navigator.pop(context);
} }
}), }),
], ],
) )
], ],
), ),
6.height, 6.height,

@ -41,7 +41,7 @@ class InfoDialog extends StatelessWidget {
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
Expanded( Expanded(
child: InfoHeader16Widget("Information").paddingOnly(top: 16), child: InfoHeader16Widget(title ?? "Information").paddingOnly(top: 16),
// Text( // Text(
// title ?? "Information", // title ?? "Information",
// style: TextStyle(fontSize: 24, fontWeight: FontWeight.w600, color: AppColor.headingTextColor(context), height: 35 / 24, letterSpacing: -0.96), // style: TextStyle(fontSize: 24, fontWeight: FontWeight.w600, color: AppColor.headingTextColor(context), height: 35 / 24, letterSpacing: -0.96),

Loading…
Cancel
Save