improvements

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

@ -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<String> updateActivitySparePart(BuildContext context) async {
Future<String> 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<String, dynamic>) {
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";
}
}

@ -356,10 +356,12 @@ class _SparePartRequestState extends State<SparePartRequest> {
// 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<SparePartRequest> {
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) {

@ -115,6 +115,9 @@ class _PmActivitiesListViewState extends State<PmActivitiesListView> {
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<PmActivitiesListView> {
textColor: AppColor.white10,
backgroundColor: AppColor.primary10,
),
if (showActionButtons)
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!);

@ -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),

Loading…
Cancel
Save