You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
cloudsolutions-atoms/lib/models/device/asset_transfer.dart

544 lines
22 KiB
Dart

import 'package:flutter/src/widgets/framework.dart';
import 'package:fluttertoast/fluttertoast.dart';
import 'package:test_sa/extensions/context_extension.dart';
import 'package:test_sa/models/device/asset.dart';
import 'package:test_sa/models/timer_model.dart';
import 'asset_transfer_attachment.dart';
class AssetTransfer {
AssetTransfer({
this.id,
this.transferNo,
this.transferCode,
this.assetId,
this.destSiteId,
this.destBuildingId,
this.destFloorId,
this.destDepartmentId,
this.destRoomId,
this.senderSiteId,
this.senderBuildingId,
this.senderFloorId,
this.senderDepartmentId,
this.senderRoom,
this.senderAssignedEmployeeId,
this.senderMachineStatusId,
this.senderComment,
this.comment,
this.senderStartDate,
this.senderEndDate,
this.senderWorkingHours,
this.senderTravelingHours,
this.senderEngSignature,
this.senderAttachments,
this.receiverAssignedEmployeeId,
this.receiverMachineStatusId,
this.receiverComment,
this.receiverStartDate,
this.receiverEndDate,
this.receiverWorkingHours,
this.receiverTravelingHours,
this.receiverEngSignature,
this.receiverAttachments,
2 years ago
this.assetNumber,
this.assetName,
this.manufacturerName,
this.modelName,
this.assetSerialNo,
this.destDepartmentName,
this.destBuildingName,
this.applied,
this.createdOn,
this.destFloorName,
this.destSiteName,
this.manufacturerId,
this.modelId,
this.modifiedOn,
this.receiverAssignedEmployeeName,
this.receiverEngSignatureUrl,
this.receiverMachineStatusName,
this.senderAssignedEmployeeName,
this.senderBuildingName,
this.senderDepartmentName,
this.senderEngSignatureUrl,
this.senderFloorName,
this.senderMachineStatusName,
this.senderSiteName,
this.supplierId,
this.supplierName,
this.senderTimer,
this.receiverTimer,
});
AssetTransfer.fromJson(dynamic json) {
id = json['id'];
transferNo = json['transferNo'];
transferCode = json['transferCode'];
assetId = json['assetId'];
destSiteId = json['destSiteId'];
destBuildingId = json['destBuildingId'];
destFloorId = json['destFloorId'];
destDepartmentId = json['destDepartmentId'];
destRoomId = json['destRoomId'];
senderSiteId = json['senderSiteId'];
senderBuildingId = json['senderBuildingId'];
senderFloorId = json['senderFloorId'];
senderDepartmentId = json['senderDepartmentId'];
senderRoom = json['senderRoom'];
senderAssignedEmployeeId = json['senderAssignedEmployeeId'];
senderMachineStatusId = json['senderMachineStatusId'];
senderComment = json['senderComment'];
comment = json['comment'];
senderStartDate = json['senderStartDate'];
senderEndDate = json['senderEndDate'];
senderWorkingHours = json['senderWorkingHours'];
senderTravelingHours = json['senderTravelingHours'];
senderEngSignature = json['senderEngSignature'];
if (json['senderAttachments'] != null) {
senderAttachments = [];
json['senderAttachments'].forEach((v) {
senderAttachments.add(AssetTransferAttachment.fromJson(v));
});
}
receiverAssignedEmployeeId = json['receiverAssignedEmployeeId'];
receiverMachineStatusId = json['receiverMachineStatusId'];
receiverComment = json['receiverComment'];
receiverStartDate = json['receiverStartDate'];
receiverEndDate = json['receiverEndDate'];
receiverWorkingHours = json['receiverWorkingHours'];
receiverTravelingHours = json['receiverTravelingHours'];
receiverEngSignature = json['receiverEngSignature'];
try {
receiverTimer = TimerModel(startAt: DateTime.tryParse(receiverStartDate ?? ""), endAt: DateTime.tryParse(receiverEndDate ?? ""));
senderTimer = TimerModel(startAt: DateTime.tryParse(senderStartDate ?? ""), endAt: DateTime.tryParse(senderEndDate ?? ""));
if (receiverTimer.endAt != null && receiverTimer.startAt != null) {
receiverTimer.durationInSecond = (receiverTimer.endAt.difference(receiverTimer.startAt))?.inSeconds;
receiverWorkingHours = (((receiverTimer.durationInSecond ?? 0) / 60) / 60)?.toStringAsFixed(2);
}
if (senderTimer.endAt != null && senderTimer.startAt != null) {
senderTimer.durationInSecond = (senderTimer.endAt.difference(senderTimer.startAt))?.inSeconds;
senderWorkingHours = (((senderTimer.durationInSecond ?? 0) / 60) / 60)?.toStringAsFixed(2);
}
} catch (e) {
print(e);
}
if (json['receiverAttachments'] != null) {
receiverAttachments = [];
json['receiverAttachments'].forEach((v) {
receiverAttachments.add(AssetTransferAttachment.fromJson(v));
});
}
assetNumber = json['assetNumber'];
assetName = json['assetName'];
manufacturerName = json['manufacturerName'];
modelName = json['modelName'];
assetSerialNo = json['assetSerialNo'];
destDepartmentName = json['destDepartmentName'];
destBuildingName = json['destBuildingName'];
applied = json['applied'];
createdOn = json['createdOn'];
destFloorName = json['destFloorName'];
destSiteName = json['destSiteName'];
manufacturerId = json['manufacturerId'];
modelId = json['modelId'];
modifiedOn = json['modifiedOn'];
receiverAssignedEmployeeName = json['receiverAssignedEmployeeName'];
receiverEngSignatureUrl = json['receiverEngSignatureUrl'];
receiverMachineStatusName = json['receiverMachineStatusName'];
senderAssignedEmployeeName = json['senderAssignedEmployeeName'];
senderBuildingName = json['senderBuildingName'];
senderDepartmentName = json['senderDepartmentName'];
senderEngSignatureUrl = json['senderEngSignatureUrl'];
senderFloorName = json['senderFloorName'];
senderMachineStatusName = json['senderMachineStatusName'];
senderSiteName = json['senderSiteName'];
supplierId = json['supplierId'];
supplierName = json['supplierName'];
}
num id;
num transferNo;
String transferCode;
2 years ago
String assetSerialNo;
num assetId;
2 years ago
String assetNumber;
String assetName;
int modelId;
String modelName;
int manufacturerId;
String manufacturerName;
num destSiteId;
num destBuildingId;
num destFloorId;
num destDepartmentId;
num destRoomId;
num senderSiteId;
num senderBuildingId;
num senderFloorId;
num senderDepartmentId;
String senderRoom;
String senderAssignedEmployeeId;
num senderMachineStatusId;
String senderComment;
String comment;
String senderStartDate;
String senderEndDate;
String senderWorkingHours;
String senderTravelingHours;
String senderEngSignature;
List<AssetTransferAttachment> senderAttachments;
String receiverAssignedEmployeeId;
num receiverMachineStatusId;
String receiverComment;
String receiverStartDate;
String receiverEndDate;
String receiverWorkingHours;
String receiverTravelingHours;
String receiverEngSignature;
List<AssetTransferAttachment> receiverAttachments;
2 years ago
num supplierId;
String supplierName;
String destSiteName;
String destBuildingName;
String destFloorName;
String destDepartmentName;
String senderSiteName;
String senderBuildingName;
String senderFloorName;
String senderDepartmentName;
String senderAssignedEmployeeName;
String senderMachineStatusName;
String senderEngSignatureUrl;
String receiverAssignedEmployeeName;
String receiverMachineStatusName;
String receiverEngSignatureUrl;
bool applied;
String createdOn;
String modifiedOn;
TimerModel senderTimer = TimerModel();
TimerModel receiverTimer = TimerModel();
2 years ago
AssetTransfer copyWith({
num id,
num transferNo,
String transferCode,
num assetId,
num destSiteId,
num destBuildingId,
num destFloorId,
num destDepartmentId,
String destRoomId,
num senderSiteId,
num senderBuildingId,
num senderFloorId,
num senderDepartmentId,
String senderRoom,
String senderAssignedEmployeeId,
num senderMachineStatusId,
String senderComment,
String comment,
String senderStartDate,
String senderEndDate,
String senderWorkingHours,
String senderTravelingHours,
String senderEngSignature,
List<AssetTransferAttachment> senderAttachments,
String receiverAssignedEmployeeId,
num receiverMachineStatusId,
String receiverComment,
String receiverStartDate,
String receiverEndDate,
String receiverWorkingHours,
String receiverTravelingHours,
String receiverEngSignature,
List<AssetTransferAttachment> receiverAttachments,
2 years ago
num supplierId,
String supplierName,
String destSiteName,
String destBuildingName,
String destFloorName,
String destDepartmentNam,
String senderSiteName,
String senderBuildingName,
String senderFloorName,
String senderDepartmentName,
String senderAssignedEmployeeName,
String senderMachineStatusName,
String senderEngSignatureUrl,
String receiverAssignedEmployeeName,
String receiverMachineStatusName,
String receiverEngSignatureUrl,
bool applied,
String createdOn,
String modifiedOn,
String assetSerialNo,
String assetNumber,
String assetName,
int modelId,
String modelName,
int manufacturerId,
String manufacturerName,
String destDepartmentName,
TimerModel senderTimer,
TimerModel receiverTimer,
}) =>
AssetTransfer(
id: id ?? this.id,
transferNo: transferNo ?? this.transferNo,
transferCode: transferCode ?? this.transferCode,
assetId: assetId ?? this.assetId,
destSiteId: destSiteId ?? this.destSiteId,
destBuildingId: destBuildingId ?? this.destBuildingId,
destFloorId: destFloorId ?? this.destFloorId,
destDepartmentId: destDepartmentId ?? this.destDepartmentId,
destRoomId: destRoomId ?? this.destRoomId,
senderSiteId: senderSiteId ?? this.senderSiteId,
senderBuildingId: senderBuildingId ?? this.senderBuildingId,
senderFloorId: senderFloorId ?? this.senderFloorId,
senderDepartmentId: senderDepartmentId ?? this.senderDepartmentId,
senderRoom: senderRoom ?? this.senderRoom,
senderAssignedEmployeeId: senderAssignedEmployeeId ?? this.senderAssignedEmployeeId,
senderMachineStatusId: senderMachineStatusId ?? this.senderMachineStatusId,
senderComment: senderComment ?? this.senderComment,
comment: comment ?? this.comment,
senderStartDate: senderStartDate ?? this.senderStartDate,
senderEndDate: senderEndDate ?? this.senderEndDate,
senderWorkingHours: senderWorkingHours ?? this.senderWorkingHours,
senderTravelingHours: senderTravelingHours ?? this.senderTravelingHours,
senderEngSignature: senderEngSignature ?? this.senderEngSignature,
senderAttachments: senderAttachments ?? this.senderAttachments,
receiverAssignedEmployeeId: receiverAssignedEmployeeId ?? this.receiverAssignedEmployeeId,
receiverMachineStatusId: receiverMachineStatusId ?? this.receiverMachineStatusId,
receiverComment: receiverComment ?? this.receiverComment,
receiverStartDate: receiverStartDate ?? this.receiverStartDate,
receiverEndDate: receiverEndDate ?? this.receiverEndDate,
receiverWorkingHours: receiverWorkingHours ?? this.receiverWorkingHours,
receiverTravelingHours: receiverTravelingHours ?? this.receiverTravelingHours,
receiverEngSignature: receiverEngSignature ?? this.receiverEngSignature,
receiverAttachments: receiverAttachments ?? this.receiverAttachments,
supplierId: supplierId ?? this.supplierId,
supplierName: supplierName ?? this.supplierName,
destSiteName: destSiteName ?? this.destSiteName,
destBuildingName: destBuildingName ?? this.destBuildingName,
destFloorName: destFloorName ?? this.destFloorName,
destDepartmentName: destDepartmentName ?? this.destDepartmentName,
senderSiteName: senderSiteName ?? this.senderSiteName,
senderBuildingName: senderBuildingName ?? this.senderBuildingName,
senderFloorName: senderFloorName ?? this.senderFloorName,
senderDepartmentName: senderDepartmentName ?? this.senderDepartmentName,
senderAssignedEmployeeName: senderAssignedEmployeeName ?? this.senderAssignedEmployeeName,
senderMachineStatusName: senderMachineStatusName ?? this.senderMachineStatusName,
senderEngSignatureUrl: senderEngSignatureUrl ?? this.senderEngSignatureUrl,
receiverAssignedEmployeeName: receiverAssignedEmployeeName ?? this.receiverAssignedEmployeeName,
receiverMachineStatusName: receiverMachineStatusName ?? this.receiverMachineStatusName,
receiverEngSignatureUrl: receiverEngSignatureUrl ?? this.receiverEngSignatureUrl,
applied: applied ?? this.applied,
createdOn: createdOn ?? this.createdOn,
modifiedOn: modifiedOn ?? this.modifiedOn,
assetSerialNo: assetSerialNo ?? this.assetSerialNo,
assetNumber: assetNumber ?? this.assetNumber,
assetName: assetName ?? this.assetName,
modelId: modelId ?? this.modelId,
modelName: modelName ?? this.modelName,
manufacturerId: manufacturerId ?? this.manufacturerId,
senderTimer: senderTimer ?? this.senderTimer,
receiverTimer: receiverTimer ?? this.receiverTimer,
manufacturerName: manufacturerName ?? this.manufacturerName);
Map<String, dynamic> toJson() {
final map = <String, dynamic>{};
map['id'] = id;
map['transferNo'] = transferNo;
map['transferCode'] = transferCode;
map['assetId'] = assetId;
map['destSiteId'] = destSiteId;
map['destBuildingId'] = destBuildingId;
map['destFloorId'] = destFloorId;
map['destDepartmentId'] = destDepartmentId;
map['destRoomId'] = destRoomId;
map['senderSiteId'] = senderSiteId;
map['senderBuildingId'] = senderBuildingId;
map['senderFloorId'] = senderFloorId;
map['senderDepartmentId'] = senderDepartmentId;
map['senderRoom'] = senderRoom;
map['senderAssignedEmployeeId'] = senderAssignedEmployeeId;
map['senderMachineStatusId'] = senderMachineStatusId;
map['senderComment'] = senderComment;
map['comment'] = comment;
map['senderStartDate'] = senderStartDate;
map['senderEndDate'] = senderEndDate;
map['senderWorkingHours'] = senderWorkingHours;
map['senderTravelingHours'] = senderTravelingHours;
map['senderEngSignature'] = senderEngSignature;
if (senderAttachments != null) {
map['senderAttachments'] = senderAttachments.map((v) => v.toJson()).toList();
}
map['receiverAssignedEmployeeId'] = receiverAssignedEmployeeId;
map['receiverMachineStatusId'] = receiverMachineStatusId;
map['receiverComment'] = receiverComment;
map['receiverStartDate'] = receiverStartDate;
map['receiverEndDate'] = receiverEndDate;
map['receiverWorkingHours'] = receiverWorkingHours;
map['receiverTravelingHours'] = receiverTravelingHours;
map['receiverEngSignature'] = receiverEngSignature;
if (receiverAttachments != null) {
map['receiverAttachments'] = receiverAttachments.map((v) => v.toJson()).toList();
}
2 years ago
map["supplierId"] = supplierId;
map["supplierName"] = supplierName;
map["destSiteName"] = destSiteName;
map["destBuildingName"] = destBuildingName;
map["destFloorName"] = destFloorName;
map["destDepartmentName"] = destDepartmentName;
map["senderSiteName"] = senderSiteName;
2 years ago
map["senderBuildingName"] = senderBuildingName;
map["senderFloorName"] = senderFloorName;
map["senderDepartmentName"] = senderDepartmentName;
map["senderAssignedEmployeeName"] = senderAssignedEmployeeName;
map["senderMachineStatusName"] = senderMachineStatusName;
map["senderEngSignatureUrl"] = senderEngSignatureUrl;
map["receiverAssignedEmployeeName"] = receiverAssignedEmployeeName;
map["receiverMachineStatusName"] = receiverMachineStatusName;
map["receiverEngSignatureUrl"] = receiverEngSignatureUrl;
map["applied"] = applied;
map["createdOn"] = createdOn;
map["modifiedOn"] = modifiedOn;
map["assetSerialNo"] = assetSerialNo;
map["assetNumber"] = assetNumber;
map["assetName"] = assetName;
map["modelId"] = modelId;
map["modelName"] = modelName;
map["manufacturerId"] = manufacturerId;
map["manufacturerName"] = manufacturerName;
return map;
}
Map<String, dynamic> transferBody({Asset asset}) {
final map = <String, dynamic>{};
map['id'] = 0;
map['transferNo'] = transferNo;
map['transferCode'] = transferCode;
map['assetId'] = asset?.id;
map['destSiteId'] = destSiteId;
map['destBuildingId'] = destBuildingId;
map['destFloorId'] = destFloorId;
map['destDepartmentId'] = destDepartmentId;
map['destRoomId'] = destRoomId;
map['senderSiteId'] = asset?.site?.id;
map['senderBuildingId'] = asset?.building?.id;
map['senderFloorId'] = asset?.floor?.id;
map['senderDepartmentId'] = asset?.department?.id;
map['senderRoom'] = asset?.room;
map['senderAssignedEmployeeId'] = senderAssignedEmployeeId;
map['senderMachineStatusId'] = senderMachineStatusId;
map['senderComment'] = senderComment;
map['comment'] = comment;
map['senderStartDate'] = senderStartDate;
map['senderEndDate'] = senderEndDate;
map['senderWorkingHours'] = senderWorkingHours;
map['senderTravelingHours'] = senderTravelingHours;
map['senderEngSignature'] = senderEngSignature;
if (senderAttachments != null) {
map['senderAttachments'] = senderAttachments.map((v) => v.toJson()).toList();
}
map['receiverAssignedEmployeeId'] = receiverAssignedEmployeeId;
map['receiverMachineStatusId'] = receiverMachineStatusId;
map['receiverComment'] = receiverComment;
map['receiverStartDate'] = receiverStartDate;
map['receiverEndDate'] = receiverEndDate;
map['receiverWorkingHours'] = receiverWorkingHours;
map['receiverTravelingHours'] = receiverTravelingHours;
map['receiverEngSignature'] = receiverEngSignature;
if (receiverAttachments != null) {
map['receiverAttachments'] = receiverAttachments.map((v) => v.toJson()).toList();
}
return map;
}
fromDetails(AssetTransfer assetTransfer) {
if (assetTransfer == null) return;
id = assetTransfer.id;
transferNo = assetTransfer.transferNo;
transferCode = assetTransfer.transferCode;
assetId = assetTransfer.assetId;
destSiteId = assetTransfer.destSiteId;
destBuildingId = assetTransfer.destBuildingId;
destFloorId = assetTransfer.destFloorId;
destDepartmentId = assetTransfer.destDepartmentId;
destRoomId = assetTransfer.destRoomId;
senderSiteId = assetTransfer.senderSiteId;
senderBuildingId = assetTransfer.senderBuildingId;
senderFloorId = assetTransfer.senderFloorId;
senderDepartmentId = assetTransfer.senderDepartmentId;
senderRoom = assetTransfer.senderRoom;
senderAssignedEmployeeId = assetTransfer.senderAssignedEmployeeId;
senderMachineStatusId = assetTransfer.senderMachineStatusId;
senderComment = assetTransfer.senderComment;
comment = assetTransfer.comment;
senderStartDate = assetTransfer.senderStartDate;
senderEndDate = assetTransfer.senderEndDate;
senderWorkingHours = assetTransfer.senderWorkingHours;
senderTravelingHours = assetTransfer.senderTravelingHours;
senderEngSignature = assetTransfer.senderEngSignature;
senderAttachments = assetTransfer.senderAttachments;
receiverAssignedEmployeeId = assetTransfer.receiverAssignedEmployeeId;
receiverMachineStatusId = assetTransfer.receiverMachineStatusId;
receiverComment = assetTransfer.receiverComment;
receiverStartDate = assetTransfer.receiverStartDate;
receiverEndDate = assetTransfer.receiverEndDate;
receiverWorkingHours = assetTransfer.receiverWorkingHours;
receiverTravelingHours = assetTransfer.receiverTravelingHours;
receiverEngSignature = assetTransfer.receiverEngSignature;
receiverAttachments = assetTransfer.receiverAttachments;
supplierId = assetTransfer.supplierId;
supplierName = assetTransfer.supplierName;
destSiteName = assetTransfer.destSiteName;
destBuildingName = assetTransfer.destBuildingName;
destFloorName = assetTransfer.destFloorName;
destDepartmentName = assetTransfer.destDepartmentName;
senderSiteName = assetTransfer.senderSiteName;
senderBuildingName = assetTransfer.senderBuildingName;
senderFloorName = assetTransfer.senderFloorName;
senderDepartmentName = assetTransfer.senderDepartmentName;
senderAssignedEmployeeName = assetTransfer.senderAssignedEmployeeName;
senderMachineStatusName = assetTransfer.senderMachineStatusName;
senderEngSignatureUrl = assetTransfer.senderEngSignatureUrl;
receiverAssignedEmployeeName = assetTransfer.receiverAssignedEmployeeName;
receiverMachineStatusName = assetTransfer.receiverMachineStatusName;
receiverEngSignatureUrl = assetTransfer.receiverEngSignatureUrl;
applied = assetTransfer.applied;
createdOn = assetTransfer.createdOn;
modifiedOn = assetTransfer.modifiedOn;
assetSerialNo = assetTransfer.assetSerialNo;
assetNumber = assetTransfer.assetNumber;
assetName = assetTransfer.assetName;
modelId = assetTransfer.modelId;
modelName = assetTransfer.modelName;
manufacturerId = assetTransfer.manufacturerId;
manufacturerName = assetTransfer.manufacturerName;
senderTimer = assetTransfer.senderTimer;
receiverTimer = assetTransfer.receiverTimer;
2 years ago
}
Future<bool> validate(BuildContext context) async {
if (assetId == null) {
await Fluttertoast.showToast(msg: "${context.translation.youHaveToSelect} ${context.translation.device}");
return false;
} else if (destSiteId == null) {
await Fluttertoast.showToast(msg: "${context.translation.youHaveToSelect} ${context.translation.destinationSite}");
return false;
} else if (destBuildingId == null) {
await Fluttertoast.showToast(msg: "${context.translation.youHaveToSelect} ${context.translation.building}");
return false;
} else if (destFloorId == null) {
await Fluttertoast.showToast(msg: "${context.translation.youHaveToSelect} ${context.translation.floor}");
return false;
} else if (destDepartmentId == null) {
await Fluttertoast.showToast(msg: "${context.translation.youHaveToSelect} ${context.translation.department}");
return false;
}
return true;
}
}