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

design_3.0_demo_module
WaseemAbbasi22 11 months ago
parent 5e9ba71be6
commit 824f46b0e3

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

@ -134,40 +134,53 @@ class _DeviceTransferDetailsState extends State<DeviceTransferDetails> {
], ],
).toShadowContainer(context), ).toShadowContainer(context),
8.height, 8.height,
// sender card if (_model?.transferType?.value == 1) ...[
_buildCard( _internalRequestDetailsCard(
isSender: true, statusLabel: _model?.senderMachineStatusName != null
site: _model?.senderSiteName?.cleanupWhitespace.capitalizeFirstOfEach ?? "", ? StatusLabel(
dept: _model?.senderDepartmentName?.cleanupWhitespace.capitalizeFirstOfEach ?? "", label: _model!.senderMachineStatusName!,
building: _model?.senderBuildingName?.cleanupWhitespace.capitalizeFirstOfEach ?? "", id: _model!.senderMachineStatusId!.toInt(),
floor: _model?.senderFloorName?.cleanupWhitespace.capitalizeFirstOfEach ?? "", textColor: AppColor.getRequestStatusTextColorByName(context, _model!.senderMachineStatusName!),
comment: _model?.senderComment ?? "", backgroundColor: AppColor.getRequestStatusColorByName(context, _model!.senderMachineStatusName!),
statusLabel: _model?.senderMachineStatusName != null )
? StatusLabel( : null,
label: _model!.senderMachineStatusName!, )
id: _model!.senderMachineStatusId!.toInt(), ] else ...[
textColor: AppColor.getRequestStatusTextColorByName(context, _model!.senderMachineStatusName!), // sender card
backgroundColor: AppColor.getRequestStatusColorByName(context, _model!.senderMachineStatusName!), _buildCard(
) isSender: true,
: null, site: _model?.senderSiteName?.cleanupWhitespace.capitalizeFirstOfEach ?? "",
), dept: _model?.senderDepartmentName?.cleanupWhitespace.capitalizeFirstOfEach ?? "",
8.height, building: _model?.senderBuildingName?.cleanupWhitespace.capitalizeFirstOfEach ?? "",
// receiver card floor: _model?.senderFloorName?.cleanupWhitespace.capitalizeFirstOfEach ?? "",
_buildCard( comment: _model?.senderComment ?? "",
isSender: false, statusLabel: _model?.senderMachineStatusName != null
site: _model?.destSiteName?.cleanupWhitespace.capitalizeFirstOfEach ?? "", ? StatusLabel(
dept: _model?.destDepartmentName?.cleanupWhitespace.capitalizeFirstOfEach ?? "", label: _model!.senderMachineStatusName!,
building: _model?.destBuildingName?.cleanupWhitespace.capitalizeFirstOfEach ?? "", id: _model!.senderMachineStatusId!.toInt(),
floor: _model?.destFloorName?.cleanupWhitespace.capitalizeFirstOfEach ?? "", textColor: AppColor.getRequestStatusTextColorByName(context, _model!.senderMachineStatusName!),
comment: _model?.receiverComment ?? "", backgroundColor: AppColor.getRequestStatusColorByName(context, _model!.senderMachineStatusName!),
statusLabel: _model?.receiverMachineStatusName != null )
? StatusLabel( : null,
label: _model!.receiverMachineStatusName ?? "", ),
id: _model!.receiverMachineStatusId!.toInt(), 8.height,
textColor: AppColor.getRequestStatusTextColorByName(context, _model!.receiverMachineStatusName!), // receiver card
backgroundColor: AppColor.getRequestStatusColorByName(context, _model!.receiverMachineStatusName!)) _buildCard(
: null, 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), ).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) { _buildTextWidget(String text) {
return text.bodyText(context); 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}) { _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 isCurrentEngineerEligibleForEdit = isSender ? _model?.senderAssignedEmployeeId == _userProvider!.user?.userID : _model?.receiverAssignedEmployeeId == _userProvider!.user?.userID;
bool isCurrentRequestClosed = bool isCurrentRequestClosed =
isSender ? ((_model?.senderMachineStatusName?.toLowerCase().contains("close") ?? false)) : ((_model?.receiverMachineStatusName?.toLowerCase().contains("close") ?? false)); isSender ? ((_model?.senderMachineStatusValue==3)) : ((_model?.receiverMachineStatusValue==3));
return Column( return Column(
crossAxisAlignment: CrossAxisAlignment.start, 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?.senderMachineStatusName?.toLowerCase()?.contains("close") ?? false) && !(_model?.senderMachineStatusName?.toLowerCase()?.contains("complete") ?? false))
// : (!(_model?.receiverMachineStatusName?.toLowerCase()?.contains("close") ?? false) && !(_model?.receiverMachineStatusName?.toLowerCase()?.contains("complete") ?? false))) // : (!(_model?.receiverMachineStatusName?.toLowerCase()?.contains("close") ?? false) && !(_model?.receiverMachineStatusName?.toLowerCase()?.contains("complete") ?? false)))
// //
"edit".toSvgAsset(height: 48, width: 48).onPress(() async { "edit".toSvgAsset(height: 48, width: 48).onPress(() async {
bool isReload = (await Navigator.of(context).push(MaterialPageRoute(builder: (_) => UpdateDeviceTransfer(model: _model!, isSender: isSender)))) as bool; bool isReload = (await Navigator.of(context).push(MaterialPageRoute(builder: (_) => UpdateDeviceTransfer(model: _model!, isSender: isSender)))) as bool;
if (isReload ?? false) { if (isReload ?? false) {

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