|
|
|
|
@ -2,6 +2,7 @@ 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/ppm/ppm.dart';
|
|
|
|
|
import 'package:test_sa/models/timer_model.dart';
|
|
|
|
|
|
|
|
|
|
import 'asset_transfer_attachment.dart';
|
|
|
|
|
@ -69,8 +70,9 @@ class AssetTransfer {
|
|
|
|
|
this.senderSiteName,
|
|
|
|
|
this.supplierId,
|
|
|
|
|
this.supplierName,
|
|
|
|
|
this.senderTimer,
|
|
|
|
|
this.receiverTimer,
|
|
|
|
|
this.senderVisitTimers,
|
|
|
|
|
this.receiverVisitTimers,
|
|
|
|
|
this.tbsTimer
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
AssetTransfer.fromJson(dynamic json) {
|
|
|
|
|
@ -113,20 +115,33 @@ class AssetTransfer {
|
|
|
|
|
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);
|
|
|
|
|
senderVisitTimers = <VisitTimers>[];
|
|
|
|
|
if (json['assetTransferSenderTimers'] != null) {
|
|
|
|
|
json['assetTransferSenderTimers'].forEach((v) {
|
|
|
|
|
senderVisitTimers.add(VisitTimers.fromJson(v));
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
} catch (e) {
|
|
|
|
|
print(e);
|
|
|
|
|
receiverVisitTimers = <VisitTimers>[];
|
|
|
|
|
if (json['assetTransferReceiverTimers'] != null) {
|
|
|
|
|
json['assetTransferReceiverTimers'].forEach((v) {
|
|
|
|
|
receiverVisitTimers.add(VisitTimers.fromJson(v));
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
tbsTimer = TimerModel();
|
|
|
|
|
// 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) {
|
|
|
|
|
@ -222,8 +237,10 @@ class AssetTransfer {
|
|
|
|
|
bool applied;
|
|
|
|
|
String createdOn;
|
|
|
|
|
String modifiedOn;
|
|
|
|
|
TimerModel senderTimer = TimerModel();
|
|
|
|
|
TimerModel receiverTimer = TimerModel();
|
|
|
|
|
List<VisitTimers> senderVisitTimers;
|
|
|
|
|
List<VisitTimers> receiverVisitTimers;
|
|
|
|
|
TimerModel tbsTimer = TimerModel();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
AssetTransfer copyWith({
|
|
|
|
|
num id,
|
|
|
|
|
@ -288,8 +305,9 @@ class AssetTransfer {
|
|
|
|
|
int manufacturerId,
|
|
|
|
|
String manufacturerName,
|
|
|
|
|
String destDepartmentName,
|
|
|
|
|
TimerModel senderTimer,
|
|
|
|
|
TimerModel receiverTimer,
|
|
|
|
|
List<VisitTimers> senderVisitTimers,
|
|
|
|
|
List<VisitTimers> receiverVisitTimers,
|
|
|
|
|
TimerModel tbsTimer
|
|
|
|
|
}) =>
|
|
|
|
|
AssetTransfer(
|
|
|
|
|
id: id ?? this.id,
|
|
|
|
|
@ -352,8 +370,9 @@ class AssetTransfer {
|
|
|
|
|
modelId: modelId ?? this.modelId,
|
|
|
|
|
modelName: modelName ?? this.modelName,
|
|
|
|
|
manufacturerId: manufacturerId ?? this.manufacturerId,
|
|
|
|
|
senderTimer: senderTimer ?? this.senderTimer,
|
|
|
|
|
receiverTimer: receiverTimer ?? this.receiverTimer,
|
|
|
|
|
senderVisitTimers: senderVisitTimers??this.senderVisitTimers,
|
|
|
|
|
receiverVisitTimers: receiverVisitTimers??this.receiverVisitTimers,
|
|
|
|
|
tbsTimer: tbsTimer??this.tbsTimer,
|
|
|
|
|
manufacturerName: manufacturerName ?? this.manufacturerName);
|
|
|
|
|
|
|
|
|
|
Map<String, dynamic> toJson() {
|
|
|
|
|
@ -383,6 +402,12 @@ class AssetTransfer {
|
|
|
|
|
map['senderWorkingHours'] = senderWorkingHours;
|
|
|
|
|
map['senderTravelingHours'] = senderTravelingHours;
|
|
|
|
|
map['senderEngSignature'] = senderEngSignature;
|
|
|
|
|
if (this.senderVisitTimers != null) {
|
|
|
|
|
map['assetTransferSenderTimers'] = this.senderVisitTimers.map((v) => v.toJson()).toList();
|
|
|
|
|
}
|
|
|
|
|
if (this.receiverVisitTimers != null) {
|
|
|
|
|
map['assetTransferReceiverTimers'] = this.receiverVisitTimers.map((v) => v.toJson()).toList();
|
|
|
|
|
}
|
|
|
|
|
if (senderAttachments != null) {
|
|
|
|
|
map['senderAttachments'] = senderAttachments.map((v) => v.toJson()).toList();
|
|
|
|
|
}
|
|
|
|
|
@ -456,6 +481,12 @@ class AssetTransfer {
|
|
|
|
|
if (senderAttachments != null) {
|
|
|
|
|
map['senderAttachments'] = senderAttachments.map((v) => v.toJson()).toList();
|
|
|
|
|
}
|
|
|
|
|
if (senderVisitTimers != null) {
|
|
|
|
|
map['assetTransferSenderTimers'] = senderVisitTimers.map((v) => v.toJson()).toList();
|
|
|
|
|
}
|
|
|
|
|
if (receiverVisitTimers != null) {
|
|
|
|
|
map['assetTransferReceiverTimers'] = receiverVisitTimers.map((v) => v.toJson()).toList();
|
|
|
|
|
}
|
|
|
|
|
map['receiverAssignedEmployeeId'] = receiverAssignedEmployeeId;
|
|
|
|
|
map['receiverMachineStatusId'] = receiverMachineStatusId;
|
|
|
|
|
map['receiverComment'] = receiverComment;
|
|
|
|
|
@ -533,8 +564,8 @@ class AssetTransfer {
|
|
|
|
|
modelName = assetTransfer.modelName;
|
|
|
|
|
manufacturerId = assetTransfer.manufacturerId;
|
|
|
|
|
manufacturerName = assetTransfer.manufacturerName;
|
|
|
|
|
senderTimer = assetTransfer.senderTimer;
|
|
|
|
|
receiverTimer = assetTransfer.receiverTimer;
|
|
|
|
|
senderVisitTimers=assetTransfer.senderVisitTimers;
|
|
|
|
|
receiverVisitTimers=assetTransfer.receiverVisitTimers;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Future<bool> validate(BuildContext context) async {
|
|
|
|
|
@ -553,6 +584,13 @@ class AssetTransfer {
|
|
|
|
|
} else if (destDepartmentId == null) {
|
|
|
|
|
await Fluttertoast.showToast(msg: "${context.translation.youHaveToSelect} ${context.translation.department}");
|
|
|
|
|
return false;
|
|
|
|
|
} if (tbsTimer?.startAt == null) {
|
|
|
|
|
await Fluttertoast.showToast(msg: "Working Hours Required");
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
if (tbsTimer?.endAt == null) {
|
|
|
|
|
await Fluttertoast.showToast(msg: "Please Stop The Timer");
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
|