ATOMS-823, ATOMS-825, ATOMS-782, ATOMS-784, ATOMS-807, issues fixed

design_3.0_task_module_new
WaseemAbbasi22 6 months ago
parent 5e9ba71be6
commit 824f46b0e3

@ -40,6 +40,7 @@ class DeviceTransfer {
this.senderAttachments,
this.receiverAssignedEmployeeId,
this.receiverMachineStatusId,
this.senderMachineStatusValue,
this.receiverComment,
this.receiverStartDate,
this.receiverEndDate,
@ -70,6 +71,7 @@ class DeviceTransfer {
this.modifiedOn,
this.receiverAssignedEmployeeName,
this.receiverEngSignatureUrl,
this.receiverMachineStatusValue,
this.receiverMachineStatusName,
this.senderAssignedEmployeeName,
this.senderBuildingName,
@ -110,6 +112,7 @@ class DeviceTransfer {
senderRoom = json['senderRoom'];
senderAssignedEmployeeId = json['senderAssignedEmployeeId'];
senderMachineStatusId = json['senderMachineStatusId'];
senderMachineStatusValue = json['senderMachineStatusValue'];
senderComment = json['senderComment'];
comment = json['comment'];
receiverEndUserId = json['receiverEndUserId'];
@ -133,6 +136,7 @@ class DeviceTransfer {
}
receiverAssignedEmployeeId = json['receiverAssignedEmployeeId'];
receiverMachineStatusId = json['receiverMachineStatusId'];
receiverMachineStatusValue = json['receiverMachineStatusValue'];
receiverComment = json['receiverComment'];
receiverStartDate = json['receiverStartDate'];
receiverEndDate = json['receiverEndDate'];
@ -242,6 +246,7 @@ class DeviceTransfer {
String? senderRoom;
String? senderAssignedEmployeeId;
num? senderMachineStatusId;
int? senderMachineStatusValue;
String? senderComment;
String? comment;
String? receiverEndUserId;
@ -256,6 +261,7 @@ class DeviceTransfer {
List<AssetTransferAttachment>? assetTransferAttachments;
String? receiverAssignedEmployeeId;
num? receiverMachineStatusId;
int? receiverMachineStatusValue;
String? receiverComment;
String? receiverStartDate;
String? receiverEndDate;
@ -351,6 +357,8 @@ class DeviceTransfer {
String? senderEngSignatureUrl,
String? receiverAssignedEmployeeName,
String? receiverMachineStatusName,
int? receiverMachineStatusValue,
int? senderMachineStatusValue,
String? receiverEngSignatureUrl,
bool? applied,
dynamic extensionNo,
@ -419,10 +427,12 @@ class DeviceTransfer {
senderDepartmentName: senderDepartmentName ?? this.senderDepartmentName,
senderAssignedEmployeeName: senderAssignedEmployeeName ?? this.senderAssignedEmployeeName,
senderMachineStatusName: senderMachineStatusName ?? this.senderMachineStatusName,
senderMachineStatusValue: senderMachineStatusValue ?? this.senderMachineStatusValue,
senderEngSignatureUrl: senderEngSignatureUrl ?? this.senderEngSignatureUrl,
receiverAssignedEmployeeName: receiverAssignedEmployeeName ?? this.receiverAssignedEmployeeName,
receiverMachineStatusName: receiverMachineStatusName ?? this.receiverMachineStatusName,
receiverEngSignatureUrl: receiverEngSignatureUrl ?? this.receiverEngSignatureUrl,
receiverMachineStatusValue: receiverMachineStatusValue ?? this.receiverMachineStatusValue,
applied: applied ?? this.applied,
extensionNo: extensionNo ?? this.extensionNo,
employeeId: employeeId ?? this.employeeId,
@ -683,8 +693,11 @@ class DeviceTransfer {
manufacturerName = assetTransfer.manufacturerName;
senderVisitTimers = assetTransfer.senderVisitTimers;
receiverVisitTimers = assetTransfer.receiverVisitTimers;
assetTransferAttachments=assetTransfer.assetTransferAttachments;
assetTransferAssistantEmployeesReceiver = assetTransfer.assetTransferAssistantEmployeesReceiver;
assetTransferAssistantEmployeesSender = assetTransfer.assetTransferAssistantEmployeesSender;
senderMachineStatusValue = assetTransfer.senderMachineStatusValue;
receiverMachineStatusValue = assetTransfer.receiverMachineStatusValue;
}
Future<bool> validate(BuildContext context) async {

@ -134,40 +134,53 @@ class _DeviceTransferDetailsState extends State<DeviceTransferDetails> {
],
).toShadowContainer(context),
8.height,
// sender card
_buildCard(
isSender: true,
site: _model?.senderSiteName?.cleanupWhitespace.capitalizeFirstOfEach ?? "",
dept: _model?.senderDepartmentName?.cleanupWhitespace.capitalizeFirstOfEach ?? "",
building: _model?.senderBuildingName?.cleanupWhitespace.capitalizeFirstOfEach ?? "",
floor: _model?.senderFloorName?.cleanupWhitespace.capitalizeFirstOfEach ?? "",
comment: _model?.senderComment ?? "",
statusLabel: _model?.senderMachineStatusName != null
? StatusLabel(
label: _model!.senderMachineStatusName!,
id: _model!.senderMachineStatusId!.toInt(),
textColor: AppColor.getRequestStatusTextColorByName(context, _model!.senderMachineStatusName!),
backgroundColor: AppColor.getRequestStatusColorByName(context, _model!.senderMachineStatusName!),
)
: null,
),
8.height,
// receiver card
_buildCard(
isSender: false,
site: _model?.destSiteName?.cleanupWhitespace.capitalizeFirstOfEach ?? "",
dept: _model?.destDepartmentName?.cleanupWhitespace.capitalizeFirstOfEach ?? "",
building: _model?.destBuildingName?.cleanupWhitespace.capitalizeFirstOfEach ?? "",
floor: _model?.destFloorName?.cleanupWhitespace.capitalizeFirstOfEach ?? "",
comment: _model?.receiverComment ?? "",
statusLabel: _model?.receiverMachineStatusName != null
? StatusLabel(
label: _model!.receiverMachineStatusName ?? "",
id: _model!.receiverMachineStatusId!.toInt(),
textColor: AppColor.getRequestStatusTextColorByName(context, _model!.receiverMachineStatusName!),
backgroundColor: AppColor.getRequestStatusColorByName(context, _model!.receiverMachineStatusName!))
: null,
),
if (_model?.transferType?.value == 1) ...[
_internalRequestDetailsCard(
statusLabel: _model?.senderMachineStatusName != null
? StatusLabel(
label: _model!.senderMachineStatusName!,
id: _model!.senderMachineStatusId!.toInt(),
textColor: AppColor.getRequestStatusTextColorByName(context, _model!.senderMachineStatusName!),
backgroundColor: AppColor.getRequestStatusColorByName(context, _model!.senderMachineStatusName!),
)
: null,
)
] else ...[
// sender card
_buildCard(
isSender: true,
site: _model?.senderSiteName?.cleanupWhitespace.capitalizeFirstOfEach ?? "",
dept: _model?.senderDepartmentName?.cleanupWhitespace.capitalizeFirstOfEach ?? "",
building: _model?.senderBuildingName?.cleanupWhitespace.capitalizeFirstOfEach ?? "",
floor: _model?.senderFloorName?.cleanupWhitespace.capitalizeFirstOfEach ?? "",
comment: _model?.senderComment ?? "",
statusLabel: _model?.senderMachineStatusName != null
? StatusLabel(
label: _model!.senderMachineStatusName!,
id: _model!.senderMachineStatusId!.toInt(),
textColor: AppColor.getRequestStatusTextColorByName(context, _model!.senderMachineStatusName!),
backgroundColor: AppColor.getRequestStatusColorByName(context, _model!.senderMachineStatusName!),
)
: null,
),
8.height,
// receiver card
_buildCard(
isSender: false,
site: _model?.destSiteName?.cleanupWhitespace.capitalizeFirstOfEach ?? "",
dept: _model?.destDepartmentName?.cleanupWhitespace.capitalizeFirstOfEach ?? "",
building: _model?.destBuildingName?.cleanupWhitespace.capitalizeFirstOfEach ?? "",
floor: _model?.destFloorName?.cleanupWhitespace.capitalizeFirstOfEach ?? "",
comment: _model?.receiverComment ?? "",
statusLabel: _model?.receiverMachineStatusName != null
? StatusLabel(
label: _model!.receiverMachineStatusName ?? "",
id: _model!.receiverMachineStatusId!.toInt(),
textColor: AppColor.getRequestStatusTextColorByName(context, _model!.receiverMachineStatusName!),
backgroundColor: AppColor.getRequestStatusColorByName(context, _model!.receiverMachineStatusName!))
: null,
),
],
],
).paddingAll(16),
),
@ -180,39 +193,67 @@ class _DeviceTransferDetailsState extends State<DeviceTransferDetails> {
);
}
// Widget attachmentWidget() {
// _attachments.forEach((abc) {
// print(abc);
// });
//
// return Column(
// crossAxisAlignment: CrossAxisAlignment.start,
// children: [
// 8.height,
// if (_attachments.isNotEmpty) ...[
// const Divider().defaultStyle(context),
// context.translation.attachments.bodyText(context),
// 8.height,
// MultiFilesPicker(
// label: context.translation.attachments,
// files: _attachments,
// enabled: false,
// onlyImages: false,
// ),
// ],
// ],
// );
// }
_buildTextWidget(String text) {
return text.bodyText(context);
}
_internalRequestDetailsCard({StatusLabel? statusLabel}) {
bool isCurrentEngineerEligibleForEdit = _model?.senderAssignedEmployeeId == _userProvider!.user?.userID;
// bool isCurrentRequestEditAble = ((_model?.senderMachineStatusName?.toLowerCase().contains("close") ?? false));
bool isCurrentRequestEditAble = (!(_model?.senderMachineStatusValue==3));
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
statusLabel ?? Container(),
if (statusLabel != null) 8.height,
],
),
if ((_userProvider!.user?.type == UsersTypes.engineer))
if (isCurrentEngineerEligibleForEdit && isCurrentRequestEditAble)
"edit".toSvgAsset(height: 40, width: 40).onPress(() async {
bool isReload = (await Navigator.of(context).push(MaterialPageRoute(builder: (_) => UpdateDeviceTransfer(model: _model!, isSender: true)))) as bool;
if (isReload ?? false) {
setState(() {});
}
}),
],
),
context.translation.details.heading5(context),
infoText(label: context.translation.site, value: _model?.senderSiteName),
infoText(label: "Sender Building".addTranslation, value: _model?.senderBuildingName),
infoText(label: "Sender Floor".addTranslation, value: _model?.senderFloorName),
infoText(label: "Sender Department".addTranslation, value: _model?.senderDepartmentName),
infoText(label: "Receiver Building".addTranslation, value: _model?.destBuildingName),
infoText(label: "Receiver Floor".addTranslation, value: _model?.destFloorName),
infoText(label: "Receiver Department".addTranslation, value: _model?.destDepartmentName),
if (_model!.comment != null && _model!.comment!.isNotEmpty) ...[
8.height,
const Divider().defaultStyle(context),
Text(
"Technical Comments".addTranslation,
style: AppTextStyles.heading6.copyWith(color: context.isDark ? AppColor.neutral30 : AppColor.neutral50),
),
_buildTextWidget(_model?.comment ?? ''),
]
],
).toShadowContainer(context);
}
_buildCard({required String site, String? building, String? dept, String? floor, required String comment, required bool isSender, StatusLabel? statusLabel}) {
bool isCurrentEngineerEligibleForEdit = isSender ? _model?.senderAssignedEmployeeId == _userProvider!.user?.userID : _model?.receiverAssignedEmployeeId == _userProvider!.user?.userID;
bool isCurrentRequestClosed =
isSender ? ((_model?.senderMachineStatusName?.toLowerCase().contains("close") ?? false)) : ((_model?.receiverMachineStatusName?.toLowerCase().contains("close") ?? false));
isSender ? ((_model?.senderMachineStatusValue==3)) : ((_model?.receiverMachineStatusValue==3));
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
@ -235,7 +276,6 @@ class _DeviceTransferDetailsState extends State<DeviceTransferDetails> {
// ? (!(_model?.senderMachineStatusName?.toLowerCase()?.contains("close") ?? false) && !(_model?.senderMachineStatusName?.toLowerCase()?.contains("complete") ?? false))
// : (!(_model?.receiverMachineStatusName?.toLowerCase()?.contains("close") ?? false) && !(_model?.receiverMachineStatusName?.toLowerCase()?.contains("complete") ?? false)))
//
"edit".toSvgAsset(height: 48, width: 48).onPress(() async {
bool isReload = (await Navigator.of(context).push(MaterialPageRoute(builder: (_) => UpdateDeviceTransfer(model: _model!, isSender: isSender)))) as bool;
if (isReload ?? false) {

@ -401,9 +401,9 @@ class _UpdateDeviceTransferState extends State<UpdateDeviceTransfer> {
_formModel.statusValue = status;
_formModel.isSender = widget.isSender;
_formModel.assetTransferAttachments = [];
if (widget.isSender) {
_formModel.senderAttachments = [];
_formModel.senderVisitTimers?.add(
VisitTimers(
id: 0,
@ -414,7 +414,6 @@ class _UpdateDeviceTransferState extends State<UpdateDeviceTransfer> {
);
_formModel.assetTransferEngineerTimers = _formModel.senderVisitTimers;
} else {
_formModel.receiverAttachments = [];
_formModel.receiverVisitTimers?.add(
VisitTimers(
id: 0,
@ -432,13 +431,14 @@ class _UpdateDeviceTransferState extends State<UpdateDeviceTransfer> {
attachmentName = file.path.split("/").last;
attachmentName = "$attachmentName|${base64Encode(file.readAsBytesSync())}";
}
if (widget.isSender) {
_formModel.senderAttachments!.add(AssetTransferAttachment(id: 0, attachmentName: attachmentName));
_formModel.attachments = _formModel.senderAttachments;
} else {
_formModel.receiverAttachments!.add(AssetTransferAttachment(id: 0, attachmentName: attachmentName));
_formModel.attachments = _formModel.receiverAttachments;
}
// if (widget.isSender) {
_formModel.assetTransferAttachments!.add(AssetTransferAttachment(id: 0, attachmentName: attachmentName));
_formModel.attachments = _formModel.assetTransferAttachments;
// }
// else {
// _formModel.receiverAttachments!.add(AssetTransferAttachment(id: 0, attachmentName: attachmentName));
// _formModel.attachments = _formModel.receiverAttachments;
// }
}
} catch (error) {
print(error);
@ -450,12 +450,7 @@ class _UpdateDeviceTransferState extends State<UpdateDeviceTransfer> {
@override
void initState() {
_formModel.fromDetails(widget.model);
if (widget.isSender) {
_files = widget.model.senderAttachments?.map((e) => File(e.attachmentName!)).toList() ?? [];
} else {
_files = widget.model.receiverAttachments?.map((e) => File(e.attachmentName!)).toList() ?? [];
}
_files = widget.model.assetTransferAttachments?.map((e) => File(e.attachmentName!)).toList() ?? [];
super.initState();
}
@ -474,10 +469,7 @@ class _UpdateDeviceTransferState extends State<UpdateDeviceTransfer> {
double totalWorkingHours = widget.isSender
? (widget.model.senderVisitTimers?.fold(0.0, (sum, item) => (sum ?? 0) + DateTime.parse(item.endDateTime!).difference(DateTime.parse(item.startDateTime!)).inSeconds) ?? 0)
: (widget.model.receiverVisitTimers?.fold(0.0, (sum, item) => (sum ?? 0) + DateTime.parse(item.endDateTime!).difference(DateTime.parse(item.startDateTime!)).inSeconds) ?? 0);
bool isTimerEnable = widget.isSender
? (!(_formModel.senderMachineStatusName?.toLowerCase().contains("close") ?? false) || !(_formModel.senderMachineStatusName?.toLowerCase().contains("complete") ?? false))
: (!(_formModel.receiverMachineStatusName?.toLowerCase().contains("close") ?? false) || !(_formModel.receiverMachineStatusName?.toLowerCase().contains("complete") ?? false));
bool isTimerEnable = widget.isSender ? (!(_formModel.senderMachineStatusValue == 3)) : (!(_formModel.receiverMachineStatusValue == 3));
return Scaffold(
appBar: DefaultAppBar(title: context.translation.transferAsset),
key: _scaffoldKey,
@ -542,11 +534,19 @@ class _UpdateDeviceTransferState extends State<UpdateDeviceTransfer> {
onPressed: () => _update(status: 0),
).expanded,
12.width,
AppFilledButton(
label: context.translation.complete,
buttonColor: AppColor.primary10,
onPressed: () => _update(status: 1),
).expanded,
if (!widget.isSender && _formModel.senderMachineStatusValue == 3) ...[
AppFilledButton(
label: context.translation.complete,
buttonColor: AppColor.primary10,
onPressed: () => _update(status: 1),
).expanded,
] else if (widget.isSender) ...[
AppFilledButton(
label: context.translation.complete,
buttonColor: AppColor.primary10,
onPressed: () => _update(status: 1),
).expanded,
],
],
),
),

Loading…
Cancel
Save