|
|
|
|
@ -4,7 +4,6 @@ import 'package:test_sa/controllers/api_routes/urls.dart';
|
|
|
|
|
import 'package:test_sa/controllers/providers/api/user_provider.dart';
|
|
|
|
|
import 'package:test_sa/extensions/context_extension.dart';
|
|
|
|
|
import 'package:test_sa/extensions/int_extensions.dart';
|
|
|
|
|
import 'package:test_sa/extensions/string_extensions.dart';
|
|
|
|
|
import 'package:test_sa/extensions/text_extensions.dart';
|
|
|
|
|
import 'package:test_sa/extensions/widget_extensions.dart';
|
|
|
|
|
import 'package:test_sa/models/enums/user_types.dart';
|
|
|
|
|
@ -41,8 +40,6 @@ class ActivitiesListView extends StatefulWidget {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
class _ActivitiesListViewState extends State<ActivitiesListView> {
|
|
|
|
|
bool showReorderView = false;
|
|
|
|
|
|
|
|
|
|
@override
|
|
|
|
|
void initState() {
|
|
|
|
|
super.initState();
|
|
|
|
|
@ -62,80 +59,85 @@ class _ActivitiesListViewState extends State<ActivitiesListView> {
|
|
|
|
|
UserProvider userProvider = Provider.of<UserProvider>(context);
|
|
|
|
|
return Scaffold(
|
|
|
|
|
appBar: DefaultAppBar(
|
|
|
|
|
showHomeActionButton: true,
|
|
|
|
|
title: context.translation.activities,
|
|
|
|
|
actions: [if (!showReorderView) IconButton(onPressed: () => activities.isEmpty ? null : setState(() => showReorderView = true), icon: const Icon(Icons.reorder_rounded))],
|
|
|
|
|
// actions: [if (!showReorderView) IconButton(onPressed: () => activities.isEmpty ? null : setState(() => showReorderView = true), icon: const Icon(Icons.reorder_rounded))],
|
|
|
|
|
),
|
|
|
|
|
//backgroundColor: const Color(0xfff8f9fb),
|
|
|
|
|
body: Consumer<ServiceRequestDetailProvider>(builder: (context, ServiceRequestDetailProvider requestDetailProvider, child) {
|
|
|
|
|
if (showReorderView && reOrderActivities.isEmpty) {
|
|
|
|
|
reOrderActivities = requestDetailProvider.currentWorkOrder!.data!.activities;
|
|
|
|
|
} else {
|
|
|
|
|
activities = requestDetailProvider.currentWorkOrder!.data!.activities;
|
|
|
|
|
}
|
|
|
|
|
activities = requestDetailProvider.currentWorkOrder!.data!.activities;
|
|
|
|
|
// if (showReorderView && reOrderActivities.isEmpty) {
|
|
|
|
|
// reOrderActivities = requestDetailProvider.currentWorkOrder!.data!.activities;
|
|
|
|
|
// } else {
|
|
|
|
|
//
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
return Column(
|
|
|
|
|
children: [
|
|
|
|
|
(activities.isEmpty && reOrderActivities.isEmpty)
|
|
|
|
|
? NoDataFound(message: context.translation.noDataFound).expanded
|
|
|
|
|
: showReorderView
|
|
|
|
|
? ReorderableListView(
|
|
|
|
|
padding: const EdgeInsets.all(16),
|
|
|
|
|
children: [
|
|
|
|
|
for (int index = 0; index < reOrderActivities.length; index++)
|
|
|
|
|
if (reOrderActivities[index].activityMaintenance != null)
|
|
|
|
|
ReorderWidget(
|
|
|
|
|
key: ValueKey(index),
|
|
|
|
|
child: maintenanceActivityCard(requestDetailProvider: requestDetailProvider, userProvider: userProvider, context: context, activity: reOrderActivities[index])
|
|
|
|
|
.paddingOnly(top: 8, bottom: 8),
|
|
|
|
|
)
|
|
|
|
|
else
|
|
|
|
|
ReorderWidget(
|
|
|
|
|
key: ValueKey(index),
|
|
|
|
|
child: sparePartActivityCard(requestDetailProvider: requestDetailProvider, userProvider: userProvider, context: context, activity: reOrderActivities[index])
|
|
|
|
|
.paddingOnly(top: 8, bottom: 8),
|
|
|
|
|
)
|
|
|
|
|
],
|
|
|
|
|
onReorder: (oldIndex, newIndex) {
|
|
|
|
|
setState(() {
|
|
|
|
|
if (oldIndex < newIndex) {
|
|
|
|
|
newIndex -= 1;
|
|
|
|
|
}
|
|
|
|
|
final Activities item = reOrderActivities.removeAt(oldIndex);
|
|
|
|
|
reOrderActivities.insert(newIndex, item);
|
|
|
|
|
});
|
|
|
|
|
}).expanded
|
|
|
|
|
: ListView.separated(
|
|
|
|
|
padding: const EdgeInsets.all(16),
|
|
|
|
|
itemCount: activities.length,
|
|
|
|
|
separatorBuilder: (czt, index) => 16.height,
|
|
|
|
|
itemBuilder: (context, index) {
|
|
|
|
|
if (activities[index].activityMaintenance != null) {
|
|
|
|
|
return maintenanceActivityCard(requestDetailProvider: requestDetailProvider, userProvider: userProvider, context: context, activity: activities[index])
|
|
|
|
|
.paddingOnly(top: 8, bottom: 8);
|
|
|
|
|
}
|
|
|
|
|
return sparePartActivityCard(requestDetailProvider: requestDetailProvider, userProvider: userProvider, context: context, activity: activities[index]);
|
|
|
|
|
},
|
|
|
|
|
).expanded,
|
|
|
|
|
:
|
|
|
|
|
// : showReorderView
|
|
|
|
|
// ? ReorderableListView(
|
|
|
|
|
// padding: const EdgeInsets.all(16),
|
|
|
|
|
// children: [
|
|
|
|
|
// for (int index = 0; index < reOrderActivities.length; index++)
|
|
|
|
|
// if (reOrderActivities[index].activityMaintenance != null)
|
|
|
|
|
// ReorderWidget(
|
|
|
|
|
// key: ValueKey(index),
|
|
|
|
|
// child: maintenanceActivityCard(requestDetailProvider: requestDetailProvider, userProvider: userProvider, context: context, activity: reOrderActivities[index])
|
|
|
|
|
// .paddingOnly(top: 8, bottom: 8),
|
|
|
|
|
// )
|
|
|
|
|
// else
|
|
|
|
|
// ReorderWidget(
|
|
|
|
|
// key: ValueKey(index),
|
|
|
|
|
// child: sparePartActivityCard(requestDetailProvider: requestDetailProvider, userProvider: userProvider, context: context, activity: reOrderActivities[index])
|
|
|
|
|
// .paddingOnly(top: 8, bottom: 8),
|
|
|
|
|
// )
|
|
|
|
|
// ],
|
|
|
|
|
// onReorder: (oldIndex, newIndex) {
|
|
|
|
|
// setState(() {
|
|
|
|
|
// if (oldIndex < newIndex) {
|
|
|
|
|
// newIndex -= 1;
|
|
|
|
|
// }
|
|
|
|
|
// final Activities item = reOrderActivities.removeAt(oldIndex);
|
|
|
|
|
// reOrderActivities.insert(newIndex, item);
|
|
|
|
|
// });
|
|
|
|
|
// }).expanded
|
|
|
|
|
// :
|
|
|
|
|
|
|
|
|
|
ListView.separated(
|
|
|
|
|
padding: const EdgeInsets.all(16),
|
|
|
|
|
itemCount: activities.length,
|
|
|
|
|
separatorBuilder: (czt, index) => 16.height,
|
|
|
|
|
itemBuilder: (context, index) {
|
|
|
|
|
if (activities[index].activityMaintenance != null) {
|
|
|
|
|
return maintenanceActivityCard(requestDetailProvider: requestDetailProvider, userProvider: userProvider, context: context, activity: activities[index])
|
|
|
|
|
.paddingOnly(top: 8, bottom: 8);
|
|
|
|
|
}
|
|
|
|
|
return sparePartActivityCard(requestDetailProvider: requestDetailProvider, userProvider: userProvider, context: context, activity: activities[index]);
|
|
|
|
|
},
|
|
|
|
|
).expanded,
|
|
|
|
|
if (userProvider.user!.type == UsersTypes.engineer &&
|
|
|
|
|
(requestDetailProvider.currentWorkOrder?.data?.status?.value != 5 && requestDetailProvider.currentWorkOrder?.data?.status?.value != 3))
|
|
|
|
|
FooterActionButton.footerContainer(
|
|
|
|
|
child: AppFilledButton(
|
|
|
|
|
label: showReorderView ? "Confirm Order".addTranslation : context.translation.createNewActivity,
|
|
|
|
|
label: context.translation.createNewActivity,
|
|
|
|
|
maxWidth: true,
|
|
|
|
|
buttonColor: AppColor.primary10,
|
|
|
|
|
loading: requestDetailProvider.isLoading,
|
|
|
|
|
onPressed: () async {
|
|
|
|
|
if (showReorderView) {
|
|
|
|
|
// requestDetailProvider.currentWorkOrder!.data!.activities = reOrderActivities;
|
|
|
|
|
List<Map<String, dynamic>> data = [];
|
|
|
|
|
for (int i = 0; i < reOrderActivities.length; i++) {
|
|
|
|
|
data.add({"id": reOrderActivities[i].id, "orderNo": i});
|
|
|
|
|
}
|
|
|
|
|
reOrderActivities = [];
|
|
|
|
|
requestDetailProvider.reOrderActivities(workOrderId: requestDetailProvider.currentWorkOrder!.data!.requestId!, reOrderActivityDTOs: data);
|
|
|
|
|
showReorderView = false;
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
// if (showReorderView) {
|
|
|
|
|
// // requestDetailProvider.currentWorkOrder!.data!.activities = reOrderActivities;
|
|
|
|
|
// List<Map<String, dynamic>> data = [];
|
|
|
|
|
// for (int i = 0; i < reOrderActivities.length; i++) {
|
|
|
|
|
// data.add({"id": reOrderActivities[i].id, "orderNo": i});
|
|
|
|
|
// }
|
|
|
|
|
// reOrderActivities = [];
|
|
|
|
|
// requestDetailProvider.reOrderActivities(workOrderId: requestDetailProvider.currentWorkOrder!.data!.requestId!, reOrderActivityDTOs: data);
|
|
|
|
|
// showReorderView = false;
|
|
|
|
|
// return;
|
|
|
|
|
// }
|
|
|
|
|
ServiceRequestBottomSheet.activityTypeBottomSheet(context: context);
|
|
|
|
|
},
|
|
|
|
|
))
|
|
|
|
|
|