|
|
|
|
@ -46,6 +46,30 @@ class ActivitiesListView extends StatelessWidget {
|
|
|
|
|
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]);
|
|
|
|
|
}
|
|
|
|
|
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: context.translation.createNewActivity,
|
|
|
|
|
maxWidth: true,
|
|
|
|
|
buttonColor: AppColor.primary10,
|
|
|
|
|
onPressed: () async {
|
|
|
|
|
ServiceRequestBottomSheet.activityTypeBottomSheet(context: context);
|
|
|
|
|
},
|
|
|
|
|
))
|
|
|
|
|
],
|
|
|
|
|
);
|
|
|
|
|
}),
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Widget sparePartActivityCard({required RequestDetailProvider requestDetailProvider,required UserProvider userProvider,required BuildContext context,required Activities activity}){
|
|
|
|
|
return Column(
|
|
|
|
|
mainAxisSize: MainAxisSize.min,
|
|
|
|
|
crossAxisAlignment: CrossAxisAlignment.start,
|
|
|
|
|
@ -54,9 +78,9 @@ class ActivitiesListView extends StatelessWidget {
|
|
|
|
|
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
|
|
|
|
children: [
|
|
|
|
|
StatusLabel(
|
|
|
|
|
label: activities[index].activityStatus?.name,
|
|
|
|
|
textColor: AppColor.getHistoryLogStatusTextColorByName(activities[index].activityStatus!.name!),
|
|
|
|
|
backgroundColor: AppColor.getHistoryLogStatusColorByName(activities[index].activityStatus!.name!),
|
|
|
|
|
label: activity.activityStatus?.name,
|
|
|
|
|
textColor: AppColor.getHistoryLogStatusTextColorByName(activity.activityStatus!.name!),
|
|
|
|
|
backgroundColor: AppColor.getHistoryLogStatusColorByName(activity.activityStatus!.name!),
|
|
|
|
|
),
|
|
|
|
|
"drag_icon".toSvgAsset(height: 12, width: 23, color: AppColor.neutral160),
|
|
|
|
|
if (userProvider.user!.type == UsersTypes.engineer &&
|
|
|
|
|
@ -68,18 +92,18 @@ class ActivitiesListView extends StatelessWidget {
|
|
|
|
|
children: [
|
|
|
|
|
"edit_icon".toSvgAsset(height: 21, width: 21).onPress(() {
|
|
|
|
|
requestDetailProvider.sparePartHelperModel = SparePartHelperModel(
|
|
|
|
|
id: activities[index].id,
|
|
|
|
|
id: activity.id,
|
|
|
|
|
workOrderId: requestDetailProvider.currentWorkOrder?.data?.requestId,
|
|
|
|
|
comment: activities[index].activitySparePart?.comment,
|
|
|
|
|
sparePartAttachments: activities[index].activitySparePart?.acitiySparePartAttachments ?? [],
|
|
|
|
|
comment: activity.activitySparePart?.comment,
|
|
|
|
|
sparePartAttachments: activity.activitySparePart?.acitiySparePartAttachments ?? [],
|
|
|
|
|
sparePart: SparePart(
|
|
|
|
|
id: activities[index].activitySparePart?.partCatalogItem?.id,
|
|
|
|
|
partName: activities[index].activitySparePart?.partCatalogItem?.partName,
|
|
|
|
|
partNo: activities[index].activitySparePart?.partCatalogItem?.partNumber),
|
|
|
|
|
quantity: activities[index].activitySparePart?.quantity,
|
|
|
|
|
activityStatusId: activities[index].activityStatus?.id,
|
|
|
|
|
id: activity.activitySparePart?.partCatalogItem?.id,
|
|
|
|
|
partName: activity.activitySparePart?.partCatalogItem?.partName,
|
|
|
|
|
partNo: activity.activitySparePart?.partCatalogItem?.partNumber),
|
|
|
|
|
quantity: activity.activitySparePart?.quantity,
|
|
|
|
|
activityStatusId: activity.activityStatus?.id,
|
|
|
|
|
//TODO commets are missing in api response..
|
|
|
|
|
// comment: activities[index].activitySparePart?.description,
|
|
|
|
|
// comment: activity.activitySparePart?.description,
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
requestDetailProvider.updateSparePartHelperModel(requestDetailProvider.sparePartHelperModel);
|
|
|
|
|
@ -92,7 +116,7 @@ class ActivitiesListView extends StatelessWidget {
|
|
|
|
|
"delete_icon".toSvgAsset(height: 21, width: 21).onPress(() async {
|
|
|
|
|
showDialog(context: context, barrierDismissible: false, builder: (context) => const AppLazyLoading());
|
|
|
|
|
int status =
|
|
|
|
|
await requestDetailProvider.deleteActivitySparePart(id: activities[index].id!, workOrderId: requestDetailProvider.currentWorkOrder!.data!.requestId!);
|
|
|
|
|
await requestDetailProvider.deleteActivitySparePart(id: activity.id!, workOrderId: requestDetailProvider.currentWorkOrder!.data!.requestId!);
|
|
|
|
|
if (status == 200) {
|
|
|
|
|
await requestDetailProvider.getWorkOrderById(id: requestDetailProvider.currentWorkOrder!.data!.requestId!);
|
|
|
|
|
Navigator.pop(context);
|
|
|
|
|
@ -107,62 +131,148 @@ class ActivitiesListView extends StatelessWidget {
|
|
|
|
|
6.height,
|
|
|
|
|
//activity type...
|
|
|
|
|
Text(
|
|
|
|
|
'${activities[index].activityType?.cleanupWhitespace.capitalizeFirstOfEach}',
|
|
|
|
|
'${activity.activityType?.cleanupWhitespace.capitalizeFirstOfEach}',
|
|
|
|
|
style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral50),
|
|
|
|
|
),
|
|
|
|
|
3.height,
|
|
|
|
|
Text(
|
|
|
|
|
'${context.translation.partName}: ${activities[index].activitySparePart?.partCatalogItem?.partName}',
|
|
|
|
|
'${context.translation.partName}: ${activity.activitySparePart?.partCatalogItem?.partName}',
|
|
|
|
|
style: AppTextStyles.bodyText2.copyWith(color: AppColor.neutral120),
|
|
|
|
|
),
|
|
|
|
|
2.height,
|
|
|
|
|
Text(
|
|
|
|
|
'${context.translation.partNo}: ${activities[index].activitySparePart?.partCatalogItem?.partNumber}',
|
|
|
|
|
'${context.translation.partNo}: ${activity.activitySparePart?.partCatalogItem?.partNumber}',
|
|
|
|
|
style: AppTextStyles.bodyText2.copyWith(color: AppColor.neutral120),
|
|
|
|
|
),
|
|
|
|
|
2.height,
|
|
|
|
|
//TODO description text not in api.
|
|
|
|
|
// Text(
|
|
|
|
|
// '${context.translation.date}: ${activities[index].currentSituation?.date}',
|
|
|
|
|
// '${context.translation.date}: ${activity.currentSituation?.date}',
|
|
|
|
|
// style: AppTextStyles.bodyText2.copyWith(color: AppColor.neutral120),
|
|
|
|
|
// ),
|
|
|
|
|
if (activities[index].activitySparePart?.comment?.isNotEmpty ?? false) ...[
|
|
|
|
|
if (activity.activitySparePart?.comment?.isNotEmpty ?? false) ...[
|
|
|
|
|
const Divider().defaultStyle(context),
|
|
|
|
|
2.height,
|
|
|
|
|
Text(
|
|
|
|
|
activities[index].activitySparePart?.comment ?? "",
|
|
|
|
|
activity.activitySparePart?.comment ?? "",
|
|
|
|
|
style: AppTextStyles.bodyText2.copyWith(color: AppColor.neutral120),
|
|
|
|
|
),
|
|
|
|
|
],
|
|
|
|
|
if (activities[index].activitySparePart?.acitiySparePartAttachments?.isNotEmpty ?? false) ...[
|
|
|
|
|
if (activity.activitySparePart?.acitiySparePartAttachments?.isNotEmpty ?? false) ...[
|
|
|
|
|
2.height,
|
|
|
|
|
const Divider().defaultStyle(context),
|
|
|
|
|
FilesList(images: activities[index].activitySparePart!.acitiySparePartAttachments!.map((toElement) => URLs.getFileUrl(toElement.name!)!).toList()),
|
|
|
|
|
FilesList(images: activity.activitySparePart!.acitiySparePartAttachments!.map((toElement) => URLs.getFileUrl(toElement.name!)!).toList()),
|
|
|
|
|
],
|
|
|
|
|
],
|
|
|
|
|
).toShadowContainer(context, padding: 12, showShadow: false).onPress(() {
|
|
|
|
|
//TODO write onview detail method..
|
|
|
|
|
// Navigator.push(
|
|
|
|
|
// context,
|
|
|
|
|
// MaterialPageRoute(builder: (context) => WorkOrderDetailsPage(workOrder: activities[index], serviceRequest: ServiceRequest())),
|
|
|
|
|
// MaterialPageRoute(builder: (context) => WorkOrderDetailsPage(workOrder: activity, serviceRequest: ServiceRequest())),
|
|
|
|
|
// );
|
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
).expanded,
|
|
|
|
|
}
|
|
|
|
|
Widget maintenanceActivityCard({required RequestDetailProvider requestDetailProvider,required UserProvider userProvider,required BuildContext context,required Activities activity}){
|
|
|
|
|
return Column(
|
|
|
|
|
mainAxisSize: MainAxisSize.min,
|
|
|
|
|
crossAxisAlignment: CrossAxisAlignment.start,
|
|
|
|
|
children: [
|
|
|
|
|
Row(
|
|
|
|
|
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
|
|
|
|
children: [
|
|
|
|
|
StatusLabel(
|
|
|
|
|
label: activity.activityStatus?.name,
|
|
|
|
|
textColor: AppColor.getHistoryLogStatusTextColorByName(activity.activityStatus!.name!),
|
|
|
|
|
backgroundColor: AppColor.getHistoryLogStatusColorByName(activity.activityStatus!.name!),
|
|
|
|
|
),
|
|
|
|
|
"drag_icon".toSvgAsset(height: 12, width: 23, color: AppColor.neutral160),
|
|
|
|
|
if (userProvider.user!.type == UsersTypes.engineer &&
|
|
|
|
|
(requestDetailProvider.currentWorkOrder?.data?.status?.value != 5 && requestDetailProvider.currentWorkOrder?.data?.status?.value != 3))
|
|
|
|
|
FooterActionButton.footerContainer(
|
|
|
|
|
child: AppFilledButton(
|
|
|
|
|
label: context.translation.createNewActivity,
|
|
|
|
|
maxWidth: true,
|
|
|
|
|
buttonColor: AppColor.primary10,
|
|
|
|
|
onPressed: () async {
|
|
|
|
|
ServiceRequestBottomSheet.activityTypeBottomSheet(context: context);
|
|
|
|
|
},
|
|
|
|
|
))
|
|
|
|
|
],
|
|
|
|
|
requestDetailProvider.currentWorkOrder?.data?.status?.value != 5 &&
|
|
|
|
|
requestDetailProvider.currentWorkOrder?.data?.status?.value != 3)
|
|
|
|
|
Row(
|
|
|
|
|
crossAxisAlignment: CrossAxisAlignment.start,
|
|
|
|
|
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
|
|
|
|
children: [
|
|
|
|
|
"edit_icon".toSvgAsset(height: 21, width: 21).onPress(() {
|
|
|
|
|
requestDetailProvider.sparePartHelperModel = SparePartHelperModel(
|
|
|
|
|
id: activity.id,
|
|
|
|
|
workOrderId: requestDetailProvider.currentWorkOrder?.data?.requestId,
|
|
|
|
|
comment: activity.activitySparePart?.comment,
|
|
|
|
|
sparePartAttachments: activity.activitySparePart?.acitiySparePartAttachments ?? [],
|
|
|
|
|
sparePart: SparePart(
|
|
|
|
|
id: activity.activitySparePart?.partCatalogItem?.id,
|
|
|
|
|
partName: activity.activitySparePart?.partCatalogItem?.partName,
|
|
|
|
|
partNo: activity.activitySparePart?.partCatalogItem?.partNumber),
|
|
|
|
|
quantity: activity.activitySparePart?.quantity,
|
|
|
|
|
activityStatusId: activity.activityStatus?.id,
|
|
|
|
|
//TODO commets are missing in api response..
|
|
|
|
|
// comment: activity.activitySparePart?.description,
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
requestDetailProvider.updateSparePartHelperModel(requestDetailProvider.sparePartHelperModel);
|
|
|
|
|
|
|
|
|
|
Navigator.of(context).push(MaterialPageRoute(
|
|
|
|
|
builder: (_) => const SparePartRequest(),
|
|
|
|
|
));
|
|
|
|
|
}),
|
|
|
|
|
);
|
|
|
|
|
24.width,
|
|
|
|
|
"delete_icon".toSvgAsset(height: 21, width: 21).onPress(() async {
|
|
|
|
|
showDialog(context: context, barrierDismissible: false, builder: (context) => const AppLazyLoading());
|
|
|
|
|
int status =
|
|
|
|
|
await requestDetailProvider.deleteActivitySparePart(id: activity.id!, workOrderId: requestDetailProvider.currentWorkOrder!.data!.requestId!);
|
|
|
|
|
if (status == 200) {
|
|
|
|
|
await requestDetailProvider.getWorkOrderById(id: requestDetailProvider.currentWorkOrder!.data!.requestId!);
|
|
|
|
|
Navigator.pop(context);
|
|
|
|
|
} else {
|
|
|
|
|
Navigator.pop(context);
|
|
|
|
|
}
|
|
|
|
|
}),
|
|
|
|
|
],
|
|
|
|
|
)
|
|
|
|
|
],
|
|
|
|
|
),
|
|
|
|
|
6.height,
|
|
|
|
|
//activity type...
|
|
|
|
|
Text(
|
|
|
|
|
'${activity.activityType?.cleanupWhitespace.capitalizeFirstOfEach}',
|
|
|
|
|
style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral50),
|
|
|
|
|
),
|
|
|
|
|
3.height,
|
|
|
|
|
Text(
|
|
|
|
|
'${context.translation.partName}: ${activity.activitySparePart?.partCatalogItem?.partName}',
|
|
|
|
|
style: AppTextStyles.bodyText2.copyWith(color: AppColor.neutral120),
|
|
|
|
|
),
|
|
|
|
|
2.height,
|
|
|
|
|
Text(
|
|
|
|
|
'${context.translation.partNo}: ${activity.activitySparePart?.partCatalogItem?.partNumber}',
|
|
|
|
|
style: AppTextStyles.bodyText2.copyWith(color: AppColor.neutral120),
|
|
|
|
|
),
|
|
|
|
|
2.height,
|
|
|
|
|
//TODO description text not in api.
|
|
|
|
|
// Text(
|
|
|
|
|
// '${context.translation.date}: ${activity.currentSituation?.date}',
|
|
|
|
|
// style: AppTextStyles.bodyText2.copyWith(color: AppColor.neutral120),
|
|
|
|
|
// ),
|
|
|
|
|
if (activity.activitySparePart?.comment?.isNotEmpty ?? false) ...[
|
|
|
|
|
const Divider().defaultStyle(context),
|
|
|
|
|
2.height,
|
|
|
|
|
Text(
|
|
|
|
|
activity.activitySparePart?.comment ?? "",
|
|
|
|
|
style: AppTextStyles.bodyText2.copyWith(color: AppColor.neutral120),
|
|
|
|
|
),
|
|
|
|
|
],
|
|
|
|
|
if (activity.activitySparePart?.acitiySparePartAttachments?.isNotEmpty ?? false) ...[
|
|
|
|
|
2.height,
|
|
|
|
|
const Divider().defaultStyle(context),
|
|
|
|
|
FilesList(images: activity.activitySparePart!.acitiySparePartAttachments!.map((toElement) => URLs.getFileUrl(toElement.name!)!).toList()),
|
|
|
|
|
],
|
|
|
|
|
],
|
|
|
|
|
).toShadowContainer(context, padding: 12, showShadow: false).onPress(() {
|
|
|
|
|
//TODO write onview detail method..
|
|
|
|
|
// Navigator.push(
|
|
|
|
|
// context,
|
|
|
|
|
// MaterialPageRoute(builder: (context) => WorkOrderDetailsPage(workOrder: activity, serviceRequest: ServiceRequest())),
|
|
|
|
|
// );
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|