Merge remote-tracking branch 'origin/design_3.0_TM_Module_bug_fixes' into design_3.0_TM_Module_bug_fixes

design_3.0_task_module_new
WaseemAbbasi22 6 months ago
commit c1c595b135

@ -1,5 +1,6 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
import 'package:test_sa/controllers/providers/settings/setting_provider.dart';
import 'package:test_sa/extensions/context_extension.dart'; import 'package:test_sa/extensions/context_extension.dart';
import 'package:test_sa/extensions/int_extensions.dart'; import 'package:test_sa/extensions/int_extensions.dart';
import 'package:test_sa/extensions/string_extensions.dart'; import 'package:test_sa/extensions/string_extensions.dart';
@ -50,12 +51,7 @@ class AssetDetailCard extends StatelessWidget {
if (!requestDetailProvider.isReadOnlyRequest) if (!requestDetailProvider.isReadOnlyRequest)
"edit_icon".toSvgAsset(height: 21, width: 21).onPress(() async { "edit_icon".toSvgAsset(height: 21, width: 21).onPress(() async {
requestDetailProvider.refreshTimer = false; requestDetailProvider.refreshTimer = false;
await Navigator.push( await Navigator.push(context, MaterialPageRoute(builder: (context) => VerifyAssetDetails(isEdit: true)));
context,
MaterialPageRoute(
builder: (context) => VerifyAssetDetails(
isEdit: true,
)));
requestDetailProvider.refreshTimer = true; requestDetailProvider.refreshTimer = true;
}), }),
]), ]),
@ -84,6 +80,16 @@ class AssetDetailCard extends StatelessWidget {
'${context.translation.solutions}: ${requestDetailProvider.engineerUpdateWorkOrderHelperModel?.solution ?? '-'}', '${context.translation.solutions}: ${requestDetailProvider.engineerUpdateWorkOrderHelperModel?.solution ?? '-'}',
style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral120), style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral120),
), ),
if (Provider.of<SettingProvider>(context, listen: false).isUserFMS) ...[
Text(
'Description of Finding: ${requestDetailProvider.engineerUpdateWorkOrderHelperModel?.descriptionOfFinding ?? '-'}',
style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral120),
),
Text(
'Action Taken: ${requestDetailProvider.engineerUpdateWorkOrderHelperModel?.actionTaken ?? '-'}',
style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral120),
),
]
], ],
), ),
); );

@ -487,6 +487,8 @@ class _ServiceRequestDetailViewState extends State<ServiceRequestDetailView> {
solution: currentWorkOrderData.faultDescription?.workPerformed, solution: currentWorkOrderData.faultDescription?.workPerformed,
returnToService: currentWorkOrderData.returnToService, returnToService: currentWorkOrderData.returnToService,
serviceType: currentWorkOrderData.serviceType, serviceType: currentWorkOrderData.serviceType,
descriptionOfFinding: currentWorkOrderData.descriptionOfFinding,
actionTaken: currentWorkOrderData.actionTaken,
); );
return const AssetDetailCard(); return const AssetDetailCard();
} else { } else {

@ -2,6 +2,7 @@ import 'dart:async';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
import 'package:test_sa/controllers/providers/settings/setting_provider.dart';
import 'package:test_sa/extensions/context_extension.dart'; import 'package:test_sa/extensions/context_extension.dart';
import 'package:test_sa/extensions/int_extensions.dart'; import 'package:test_sa/extensions/int_extensions.dart';
import 'package:test_sa/extensions/text_extensions.dart'; import 'package:test_sa/extensions/text_extensions.dart';
@ -27,7 +28,6 @@ import 'package:test_sa/views/widgets/equipment/pick_asset.dart';
import '../../../../../../models/lookup.dart'; import '../../../../../../models/lookup.dart';
import '../../../../../../new_views/common_widgets/default_app_bar.dart'; import '../../../../../../new_views/common_widgets/default_app_bar.dart';
//TODO Have some details need to confirm from backend fault description,
class VerifyAssetDetails extends StatefulWidget { class VerifyAssetDetails extends StatefulWidget {
static const String id = "/verify-asset-detail"; static const String id = "/verify-asset-detail";
bool isEdit = false; bool isEdit = false;
@ -76,6 +76,8 @@ class _VerifyAssetDetailsState extends State<VerifyAssetDetails> with TickerProv
returnToService: currentWorkOrderData.returnToService, returnToService: currentWorkOrderData.returnToService,
serviceType: currentWorkOrderData.serviceType, serviceType: currentWorkOrderData.serviceType,
callResponse: currentWorkOrderData.callResponse, callResponse: currentWorkOrderData.callResponse,
descriptionOfFinding: currentWorkOrderData.descriptionOfFinding,
actionTaken: currentWorkOrderData.actionTaken,
); );
if (currentWorkOrderData.assetLoan != null) { if (currentWorkOrderData.assetLoan != null) {
loanAvailabilityAsset = Asset( loanAvailabilityAsset = Asset(
@ -221,7 +223,7 @@ class _VerifyAssetDetailsState extends State<VerifyAssetDetails> with TickerProv
context.translation.solutions.heading6(context).custom(color: AppColor.neutral50), context.translation.solutions.heading6(context).custom(color: AppColor.neutral50),
8.height, 8.height,
requestDetailProvider.engineerUpdateWorkOrderHelperModel?.solution != null requestDetailProvider.engineerUpdateWorkOrderHelperModel?.solution != null
? requestDetailProvider.engineerUpdateWorkOrderHelperModel!.solution!.bodyText2(context).custom(color: AppColor.neutral120,align: TextAlign.justify) ? requestDetailProvider.engineerUpdateWorkOrderHelperModel!.solution!.bodyText2(context).custom(color: AppColor.neutral120, align: TextAlign.justify)
: const SizedBox(), : const SizedBox(),
], ],
8.height, 8.height,
@ -232,11 +234,39 @@ class _VerifyAssetDetailsState extends State<VerifyAssetDetails> with TickerProv
textAlign: TextAlign.center, textAlign: TextAlign.center,
labelStyle: AppTextStyles.textFieldLabelStyle, labelStyle: AppTextStyles.textFieldLabelStyle,
showShadow: false, showShadow: false,
onChange: (value){ onChange: (value) {
requestDetailProvider.engineerUpdateWorkOrderHelperModel?.callResponse = value; requestDetailProvider.engineerUpdateWorkOrderHelperModel?.callResponse = value;
}, },
style: Theme.of(context).textTheme.titleMedium, style: Theme.of(context).textTheme.titleMedium,
), ),
if (Provider.of<SettingProvider>(context, listen: false).isUserFMS) ...[
8.height,
AppTextFormField(
labelText: "Description of Finding",
backgroundColor: AppColor.neutral100,
initialValue: requestDetailProvider.engineerUpdateWorkOrderHelperModel?.descriptionOfFinding,
textAlign: TextAlign.center,
labelStyle: AppTextStyles.textFieldLabelStyle,
showShadow: false,
onChange: (value) {
requestDetailProvider.engineerUpdateWorkOrderHelperModel?.descriptionOfFinding = value;
},
style: Theme.of(context).textTheme.titleMedium,
),
8.height,
AppTextFormField(
labelText: "Action Taken",
backgroundColor: AppColor.neutral100,
initialValue: requestDetailProvider.engineerUpdateWorkOrderHelperModel?.actionTaken,
textAlign: TextAlign.center,
labelStyle: AppTextStyles.textFieldLabelStyle,
showShadow: false,
onChange: (value) {
requestDetailProvider.engineerUpdateWorkOrderHelperModel?.actionTaken = value;
},
style: Theme.of(context).textTheme.titleMedium,
),
]
], ],
).toShadowContainer(context).paddingAll(16), ).toShadowContainer(context).paddingAll(16),
).expanded, ).expanded,

@ -82,6 +82,8 @@ class EngineerUpdateWorkOrderHelperModel {
FaultDescription? faultDescription; FaultDescription? faultDescription;
String? solution; String? solution;
String? callResponse; String? callResponse;
String? descriptionOfFinding;
String? actionTaken;
EngineerUpdateWorkOrderHelperModel({ EngineerUpdateWorkOrderHelperModel({
this.workOrderId, this.workOrderId,
@ -95,6 +97,8 @@ class EngineerUpdateWorkOrderHelperModel {
this.solution, this.solution,
this.returnToService, this.returnToService,
this.callResponse, this.callResponse,
this.descriptionOfFinding,
this.actionTaken,
}); });
Map<String, dynamic> toJson() { Map<String, dynamic> toJson() {
@ -107,6 +111,8 @@ class EngineerUpdateWorkOrderHelperModel {
data['failureReasonId'] = failureReason?.id; data['failureReasonId'] = failureReason?.id;
data['faultDescriptionId'] = faultDescription?.id; data['faultDescriptionId'] = faultDescription?.id;
data['callResponse'] = callResponse; data['callResponse'] = callResponse;
data['descriptionOfFinding'] = descriptionOfFinding;
data['actionTaken'] = actionTaken;
return data; return data;
} }
} }

@ -91,6 +91,8 @@ class WorkOrderData {
this.cmFrame, this.cmFrame,
this.rejectComment, this.rejectComment,
this.callResponse, this.callResponse,
this.descriptionOfFinding,
this.actionTaken,
required this.workOrderHistory, required this.workOrderHistory,
required this.activities, required this.activities,
required this.activityAssetToBeRetireds, required this.activityAssetToBeRetireds,
@ -143,8 +145,10 @@ class WorkOrderData {
String? iHaveArrivedDate; String? iHaveArrivedDate;
String? closedDate; String? closedDate;
Lookup? rejectReason; Lookup? rejectReason;
String? rejectComment; // need to replace with reject comments. String? rejectComment;
String? callResponse; // need to replace with reject comments. String? callResponse;
String? descriptionOfFinding;
String? actionTaken;
int? since; int? since;
List<WorkOrderHistory> workOrderHistory; List<WorkOrderHistory> workOrderHistory;
List<Activities> activities; List<Activities> activities;
@ -168,6 +172,8 @@ class WorkOrderData {
room: json["room"], room: json["room"],
rejectComment: json["rejectComment"], rejectComment: json["rejectComment"],
callResponse: json["callResponse"], callResponse: json["callResponse"],
descriptionOfFinding: json["descriptionOfFinding"],
actionTaken: json["actionTaken"],
iHaveArrivedDate: json["iHaveArrivedDate"], iHaveArrivedDate: json["iHaveArrivedDate"],
closedDate: json["closedDate"], closedDate: json["closedDate"],
cmFrame: json["cmFrame"] == null ? null : Lookup.fromJson(json["cmFrame"]), cmFrame: json["cmFrame"] == null ? null : Lookup.fromJson(json["cmFrame"]),
@ -529,7 +535,7 @@ class WorkOrderContactPerson {
String? position; String? position;
String? extension; String? extension;
String? email; String? email;
String ?mobilePhone; String? mobilePhone;
WorkOrderAssignedEmployee? contactUser; WorkOrderAssignedEmployee? contactUser;
factory WorkOrderContactPerson.fromJson(Map<String, dynamic> json) { factory WorkOrderContactPerson.fromJson(Map<String, dynamic> json) {

@ -108,6 +108,7 @@ class _TaskRequestDetailsViewState extends State<TaskRequestDetailsView> {
), ),
'${context.translation.taskType}: ${taskModel?.taskType?.typeName ?? "-"}'.bodyText(context), '${context.translation.taskType}: ${taskModel?.taskType?.typeName ?? "-"}'.bodyText(context),
'${context.translation.taskNo}: ${taskModel?.taskJobNo ?? "-"}'.bodyText(context), '${context.translation.taskNo}: ${taskModel?.taskJobNo ?? "-"}'.bodyText(context),
'${context.translation.createdBy}: ${taskModel?.userCreated?.userName ?? "-"}'.bodyText(context),
if (taskProvider.taskRequestModel?.taskType?.isRecallAndAlert == true) ...[ if (taskProvider.taskRequestModel?.taskType?.isRecallAndAlert == true) ...[
recallAlertTypeWidget(taskModel: taskProvider.taskRequestModel!), recallAlertTypeWidget(taskModel: taskProvider.taskRequestModel!),
Column( Column(
@ -132,6 +133,10 @@ class _TaskRequestDetailsViewState extends State<TaskRequestDetailsView> {
if (taskProvider.taskRequestModel?.taskJobAttachments?.isNotEmpty ?? false) ...[ if (taskProvider.taskRequestModel?.taskJobAttachments?.isNotEmpty ?? false) ...[
8.height, 8.height,
const Divider().defaultStyle(context), const Divider().defaultStyle(context),
Text(
"Attachments".addTranslation,
style: AppTextStyles.heading4.copyWith(color: context.isDark ? AppColor.neutral30 : AppColor.neutral50),
),
FilesList(images: taskProvider.taskRequestModel!.taskJobAttachments!.map((toElement) => URLs.getFileUrl(toElement.name ?? '') ?? '').toList()), FilesList(images: taskProvider.taskRequestModel!.taskJobAttachments!.map((toElement) => URLs.getFileUrl(toElement.name ?? '') ?? '').toList()),
], ],
buildTechnicalComments(taskModel: taskModel), buildTechnicalComments(taskModel: taskModel),

Loading…
Cancel
Save