|
|
|
|
@ -1,5 +1,6 @@
|
|
|
|
|
import 'package:flutter/material.dart';
|
|
|
|
|
import 'package:provider/provider.dart';
|
|
|
|
|
import 'package:test_sa/controllers/api_routes/urls.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';
|
|
|
|
|
@ -10,6 +11,7 @@ import 'package:test_sa/models/new_models/task_request/task_request_model.dart';
|
|
|
|
|
import 'package:test_sa/new_views/common_widgets/default_app_bar.dart';
|
|
|
|
|
import 'package:test_sa/providers/task_request_provider/task_request_provider.dart';
|
|
|
|
|
import 'package:test_sa/views/pages/user/tasks_request/task_request_form_view.dart';
|
|
|
|
|
import 'package:test_sa/views/widgets/images/files_list.dart';
|
|
|
|
|
import 'package:test_sa/views/widgets/loaders/app_loading.dart';
|
|
|
|
|
|
|
|
|
|
import '../../../../controllers/providers/api/user_provider.dart';
|
|
|
|
|
@ -92,23 +94,25 @@ class _TaskRequestDetailsViewState extends State<TaskRequestDetailsView> {
|
|
|
|
|
],
|
|
|
|
|
),
|
|
|
|
|
8.height,
|
|
|
|
|
|
|
|
|
|
if (taskProvider.taskRequestModel?.taskType?.isInstallation == true) ...[installationWidget(taskModel: taskProvider.taskRequestModel!)],
|
|
|
|
|
if (taskProvider.taskRequestModel?.taskType?.isRecallAndAlert == true) ...[
|
|
|
|
|
assetDetails(taskModel: taskProvider.taskRequestModel!),
|
|
|
|
|
],
|
|
|
|
|
if (taskProvider.taskRequestModel?.taskType?.relatedTo?.value == 2) ...[
|
|
|
|
|
linkWithLocationWidget(taskModel: taskProvider.taskRequestModel!),
|
|
|
|
|
],
|
|
|
|
|
8.height,
|
|
|
|
|
Text(
|
|
|
|
|
"Task Details".addTranslation,
|
|
|
|
|
style: AppTextStyles.heading4.copyWith(color: context.isDark ? AppColor.neutral30 : AppColor.neutral50),
|
|
|
|
|
),
|
|
|
|
|
8.height,
|
|
|
|
|
'${context.translation.taskType}: ${widget.requestDetails?.nameOfType ?? "-"}'.bodyText(context),
|
|
|
|
|
'${context.translation.taskNo}: ${widget.requestDetails?.requestNo ?? "-"}'.bodyText(context),
|
|
|
|
|
if (taskProvider.taskRequestModel?.taskType?.isInstallation == true) ...[installationWidget(taskModel: taskProvider.taskRequestModel!)],
|
|
|
|
|
if (taskProvider.taskRequestModel?.taskType?.isRecallAndAlert == true) ...[
|
|
|
|
|
recallAlertTypeWidget(taskModel: taskProvider.taskRequestModel!),
|
|
|
|
|
],
|
|
|
|
|
if (taskProvider.taskRequestModel?.taskType?.relatedTo?.value == 2) ...[
|
|
|
|
|
linkWithLocationWidget(taskModel: taskProvider.taskRequestModel!),
|
|
|
|
|
],
|
|
|
|
|
if (taskProvider.taskRequestModel?.taskType?.relatedTo?.value == 1) ...[
|
|
|
|
|
linkWithAssetWidget(taskModel: taskProvider.taskRequestModel!),
|
|
|
|
|
],
|
|
|
|
|
|
|
|
|
|
if (taskProvider.taskRequestModel?.callComment != null) ...[
|
|
|
|
|
const Divider().defaultStyle(context),
|
|
|
|
|
Text(
|
|
|
|
|
@ -117,7 +121,12 @@ class _TaskRequestDetailsViewState extends State<TaskRequestDetailsView> {
|
|
|
|
|
),
|
|
|
|
|
2.height,
|
|
|
|
|
taskProvider.taskRequestModel!.callComment!.bodyText(context),
|
|
|
|
|
]
|
|
|
|
|
],
|
|
|
|
|
if (taskProvider.taskRequestModel?.taskJobAttachments?.isNotEmpty ?? false) ...[
|
|
|
|
|
8.height,
|
|
|
|
|
const Divider().defaultStyle(context),
|
|
|
|
|
FilesList(images: taskProvider.taskRequestModel!.taskJobAttachments!.map((toElement) => URLs.getFileUrl(toElement.name ?? '') ?? '').toList()),
|
|
|
|
|
],
|
|
|
|
|
],
|
|
|
|
|
).toShadowContainer(context).paddingAll(16),
|
|
|
|
|
).expanded,
|
|
|
|
|
@ -141,60 +150,88 @@ class _TaskRequestDetailsViewState extends State<TaskRequestDetailsView> {
|
|
|
|
|
return Column(
|
|
|
|
|
crossAxisAlignment: CrossAxisAlignment.start,
|
|
|
|
|
children: [
|
|
|
|
|
assetDetails(),
|
|
|
|
|
assetDetails(taskModel: taskModel),
|
|
|
|
|
const Divider().defaultStyle(context),
|
|
|
|
|
Text(
|
|
|
|
|
"Site Details".addTranslation,
|
|
|
|
|
style: AppTextStyles.heading4.copyWith(color: context.isDark ? AppColor.neutral30 : AppColor.neutral50),
|
|
|
|
|
),
|
|
|
|
|
'${context.translation.installationSite}: ${taskModel.asset?.siteName?.cleanupWhitespace.capitalizeFirstOfEach ?? "-"}'.bodyText(context),
|
|
|
|
|
'${context.translation.installationBuilding}: ${taskModel.installationBuilding?.name?.cleanupWhitespace.capitalizeFirstOfEach ?? '-'}'.bodyText(context),
|
|
|
|
|
'${context.translation.installationFloor}: ${taskModel.installationFloor?.name?.cleanupWhitespace.capitalizeFirstOfEach ?? '-'}'.bodyText(context),
|
|
|
|
|
'${context.translation.installationDepartment}: ${taskModel.installationDepartment?.name?.cleanupWhitespace.capitalizeFirstOfEach ?? '-'}'.bodyText(context),
|
|
|
|
|
'${context.translation.installationDate}: ${taskModel.installationDate?.toAssetDetailsFormat ?? "-"}'.bodyText(context),
|
|
|
|
|
'${context.translation.serialNo}: ${taskModel.serialNo ?? '-'}'.bodyText(context),
|
|
|
|
|
const Divider().defaultStyle(context),
|
|
|
|
|
// const Divider().defaultStyle(context),
|
|
|
|
|
],
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Widget linkWithAssetWidget({required TaskData taskModel}) {
|
|
|
|
|
return Column(
|
|
|
|
|
crossAxisAlignment: CrossAxisAlignment.start,
|
|
|
|
|
children: [
|
|
|
|
|
assetDetails(),
|
|
|
|
|
],
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
// Widget linkWithAssetWidget({required TaskData taskModel}) {
|
|
|
|
|
// return Column(
|
|
|
|
|
// crossAxisAlignment: CrossAxisAlignment.start,
|
|
|
|
|
// children: [
|
|
|
|
|
// // assetDetails(),
|
|
|
|
|
// ],
|
|
|
|
|
// );
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
Widget linkWithLocationWidget({required TaskData taskModel}) {
|
|
|
|
|
return '${context.translation.site}: ${widget.requestDetails?.site?.cleanupWhitespace.capitalizeFirstOfEach ?? "-"}'.bodyText(context);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Widget assetDetails() {
|
|
|
|
|
return Column(
|
|
|
|
|
crossAxisAlignment: CrossAxisAlignment.start,
|
|
|
|
|
mainAxisSize: MainAxisSize.min,
|
|
|
|
|
children: [
|
|
|
|
|
const Divider().defaultStyle(context),
|
|
|
|
|
Text(
|
|
|
|
|
context.translation.assetDetails,
|
|
|
|
|
"Location Details".addTranslation,
|
|
|
|
|
style: AppTextStyles.heading4.copyWith(color: context.isDark ? AppColor.neutral30 : AppColor.neutral50),
|
|
|
|
|
),
|
|
|
|
|
'${context.translation.assetName}: ${widget.requestDetails?.assetName?.cleanupWhitespace.capitalizeFirstOfEach ?? "-"}'.bodyText(context),
|
|
|
|
|
'${context.translation.assetNo}: ${widget.requestDetails?.assetNo ?? "-"}'.bodyText(context),
|
|
|
|
|
'${context.translation.assetSN}: ${widget.requestDetails?.assetSN ?? "-"}'.bodyText(context),
|
|
|
|
|
'${context.translation.site}: ${taskModel.site?.name ?? "-"}'.bodyText(context),
|
|
|
|
|
'${context.translation.building}: ${taskModel.building?.name ?? "-"}'.bodyText(context),
|
|
|
|
|
'${context.translation.floor}: ${taskModel.floor?.name?? "-"}'.bodyText(context),
|
|
|
|
|
'${context.translation.department}: ${taskModel.department?.name ?? "-"}'.bodyText(context),
|
|
|
|
|
'${context.translation.room}: ${taskModel.room?.name ?? "-"}'.bodyText(context),
|
|
|
|
|
],
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Widget assetDetails({required TaskData taskModel}) {
|
|
|
|
|
return taskModel.asset != null
|
|
|
|
|
? Column(
|
|
|
|
|
crossAxisAlignment: CrossAxisAlignment.start,
|
|
|
|
|
mainAxisSize: MainAxisSize.min,
|
|
|
|
|
children: [
|
|
|
|
|
Text(
|
|
|
|
|
context.translation.assetDetails,
|
|
|
|
|
style: AppTextStyles.heading4.copyWith(color: context.isDark ? AppColor.neutral30 : AppColor.neutral50),
|
|
|
|
|
),
|
|
|
|
|
'${context.translation.assetName}: ${taskModel.asset?.assetName?.cleanupWhitespace.capitalizeFirstOfEach ?? "-"}'.bodyText(context),
|
|
|
|
|
'${context.translation.assetNo}: ${taskModel.asset?.assetNumber ?? "-"}'.bodyText(context),
|
|
|
|
|
'${context.translation.manufacture}: ${taskModel.asset?.manufacturer ?? "-"}'.bodyText(context),
|
|
|
|
|
'${context.translation.model}: ${taskModel.asset?.model ?? "-"}'.bodyText(context),
|
|
|
|
|
],
|
|
|
|
|
)
|
|
|
|
|
: const SizedBox();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Widget recallAlertTypeWidget({required TaskData taskModel}) {
|
|
|
|
|
if (taskModel.typeOfAlert != null) {
|
|
|
|
|
switch (taskModel.typeOfAlert!.value) {
|
|
|
|
|
case 1:
|
|
|
|
|
return Column(
|
|
|
|
|
mainAxisSize: MainAxisSize.min,
|
|
|
|
|
crossAxisAlignment: CrossAxisAlignment.start,
|
|
|
|
|
children: [assetDetails(), '${context.translation.acknowledge}: ${taskModel.isUserAcknowledge ?? "-"}'.bodyText(context)],
|
|
|
|
|
children: [
|
|
|
|
|
'${context.translation.acknowledge}: ${taskModel.isUserAcknowledge ?? "-"}'.bodyText(context),
|
|
|
|
|
'Risk Level: ${taskModel.riskLevel?.name}'.bodyText(context),
|
|
|
|
|
'Resource: ${taskModel.resource?.name}'.bodyText(context)],
|
|
|
|
|
);
|
|
|
|
|
case 2:
|
|
|
|
|
return Column(
|
|
|
|
|
mainAxisSize: MainAxisSize.min,
|
|
|
|
|
crossAxisAlignment: CrossAxisAlignment.start,
|
|
|
|
|
children: [
|
|
|
|
|
assetDetails(),
|
|
|
|
|
// assetDetails(taskModel: taskModel),
|
|
|
|
|
'${context.translation.completedActions}: ${taskModel.actionNeeded?.name ?? "-"}'.bodyText(context),
|
|
|
|
|
if (taskModel.actionNeeded?.value == 1) ...[
|
|
|
|
|
'${context.translation.impactStatus}: ${taskModel.impactStatus?.name ?? "-"}'.bodyText(context),
|
|
|
|
|
@ -204,9 +241,10 @@ class _TaskRequestDetailsViewState extends State<TaskRequestDetailsView> {
|
|
|
|
|
|
|
|
|
|
case 3:
|
|
|
|
|
return Column(
|
|
|
|
|
mainAxisSize: MainAxisSize.min,
|
|
|
|
|
crossAxisAlignment: CrossAxisAlignment.start,
|
|
|
|
|
children: [
|
|
|
|
|
assetDetails(),
|
|
|
|
|
// assetDetails(taskModel: taskModel),
|
|
|
|
|
'${context.translation.acknowledge}: ${taskModel.isUserAcknowledge ?? "-"}'.bodyText(context),
|
|
|
|
|
'${context.translation.completedActions}: ${taskModel.actionNeeded?.name ?? "-"}'.bodyText(context),
|
|
|
|
|
if (taskModel.actionNeeded?.value == 1) ...[
|
|
|
|
|
|