|
|
|
|
@ -385,67 +385,71 @@ class _UpdateDeviceTransferState extends State<UpdateDeviceTransfer> {
|
|
|
|
|
List<File> _files = [];
|
|
|
|
|
|
|
|
|
|
_update({required int status}) async {
|
|
|
|
|
_formKey.currentState!.save();
|
|
|
|
|
if (_validateForm()) {
|
|
|
|
|
_formModel.statusValue = status;
|
|
|
|
|
_formModel.isSender = widget.isSender;
|
|
|
|
|
_formModel.assetTransferAttachments = [];
|
|
|
|
|
int workingHours = _formModel.tbsTimer?.endAt!.difference(_formModel.tbsTimer!.startAt!).inSeconds ?? 0;
|
|
|
|
|
|
|
|
|
|
if (widget.isSender) {
|
|
|
|
|
_formModel.senderVisitTimers?.add(
|
|
|
|
|
VisitTimers(
|
|
|
|
|
id: 0,
|
|
|
|
|
startDateTime: _formModel.tbsTimer?.startAt?.toIso8601String(),
|
|
|
|
|
endDateTime: _formModel.tbsTimer?.endAt?.toIso8601String(),
|
|
|
|
|
workingHours: ((workingHours) / 60 / 60),
|
|
|
|
|
),
|
|
|
|
|
);
|
|
|
|
|
_formModel.assetTransferEngineerTimers = _formModel.senderVisitTimers;
|
|
|
|
|
} else {
|
|
|
|
|
_formModel.receiverVisitTimers?.add(
|
|
|
|
|
VisitTimers(
|
|
|
|
|
id: 0,
|
|
|
|
|
startDateTime: _formModel.tbsTimer?.startAt?.toIso8601String(),
|
|
|
|
|
endDateTime: _formModel.tbsTimer?.endAt?.toIso8601String(),
|
|
|
|
|
workingHours: ((workingHours) / 60 / 60),
|
|
|
|
|
),
|
|
|
|
|
);
|
|
|
|
|
_formModel.assetTransferEngineerTimers = _formModel.receiverVisitTimers;
|
|
|
|
|
}
|
|
|
|
|
try {
|
|
|
|
|
for (var file in _files) {
|
|
|
|
|
String attachmentName = file.path;
|
|
|
|
|
if (attachmentName.contains("/")) {
|
|
|
|
|
attachmentName = file.path.split("/").last;
|
|
|
|
|
attachmentName = "$attachmentName|${base64Encode(file.readAsBytesSync())}";
|
|
|
|
|
}
|
|
|
|
|
_formModel.assetTransferAttachments!.add(AssetTransferAttachment(id: 0, attachmentName: attachmentName));
|
|
|
|
|
_formModel.attachments = _formModel.assetTransferAttachments;
|
|
|
|
|
}
|
|
|
|
|
} catch (error) {
|
|
|
|
|
print(error);
|
|
|
|
|
}
|
|
|
|
|
await _deviceTransferProvider.updateRequest(context, model: _formModel);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
bool _validateForm() {
|
|
|
|
|
if (_formModel.tbsTimer?.startAt == null) {
|
|
|
|
|
await Fluttertoast.showToast(msg: "Working Hours Required");
|
|
|
|
|
Fluttertoast.showToast(msg: "Working Hours Required");
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
if (_formModel.tbsTimer?.endAt == null || isTimerRunning) {
|
|
|
|
|
await Fluttertoast.showToast(msg: "Please Stop The Timer");
|
|
|
|
|
Fluttertoast.showToast(msg: "Please Stop The Timer");
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
if (!(_formKey.currentState!.validate())) {
|
|
|
|
|
setState(() {});
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
_formKey.currentState!.save();
|
|
|
|
|
|
|
|
|
|
_formModel.statusValue = status;
|
|
|
|
|
_formModel.isSender = widget.isSender;
|
|
|
|
|
_formModel.assetTransferAttachments = [];
|
|
|
|
|
int workingHours = _formModel.tbsTimer?.endAt!.difference(_formModel.tbsTimer!.startAt!).inSeconds?? 0;
|
|
|
|
|
|
|
|
|
|
if (widget.isSender) {
|
|
|
|
|
_formModel.senderVisitTimers?.add(
|
|
|
|
|
VisitTimers(
|
|
|
|
|
id: 0,
|
|
|
|
|
startDateTime: _formModel.tbsTimer?.startAt?.toIso8601String(),
|
|
|
|
|
endDateTime: _formModel.tbsTimer?.endAt?.toIso8601String(),
|
|
|
|
|
workingHours: ((workingHours) / 60 / 60),
|
|
|
|
|
),
|
|
|
|
|
);
|
|
|
|
|
_formModel.assetTransferEngineerTimers = _formModel.senderVisitTimers;
|
|
|
|
|
} else {
|
|
|
|
|
_formModel.receiverVisitTimers?.add(
|
|
|
|
|
VisitTimers(
|
|
|
|
|
id: 0,
|
|
|
|
|
startDateTime: _formModel.tbsTimer?.startAt?.toIso8601String(),
|
|
|
|
|
endDateTime: _formModel.tbsTimer?.endAt?.toIso8601String(),
|
|
|
|
|
workingHours: ((workingHours) / 60 / 60),
|
|
|
|
|
),
|
|
|
|
|
);
|
|
|
|
|
_formModel.assetTransferEngineerTimers = _formModel.receiverVisitTimers;
|
|
|
|
|
}
|
|
|
|
|
try {
|
|
|
|
|
for (var file in _files) {
|
|
|
|
|
String attachmentName = file.path;
|
|
|
|
|
if (attachmentName.contains("/")) {
|
|
|
|
|
attachmentName = file.path.split("/").last;
|
|
|
|
|
attachmentName = "$attachmentName|${base64Encode(file.readAsBytesSync())}";
|
|
|
|
|
}
|
|
|
|
|
// 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;
|
|
|
|
|
// }
|
|
|
|
|
if (_formModel.assistantEmployees != null) {
|
|
|
|
|
if (_formModel.modelAssistantEmployees?.startDate == null) {
|
|
|
|
|
Fluttertoast.showToast(msg: "Please Select Assistant Employee Start Time");
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
if (_formModel.modelAssistantEmployees?.endDate == null) {
|
|
|
|
|
Fluttertoast.showToast(msg: "Please Select Assistant Employee End Time");
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
} catch (error) {
|
|
|
|
|
print(error);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
await _deviceTransferProvider.updateRequest(context, model: _formModel);
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@override
|
|
|
|
|
@ -472,10 +476,12 @@ class _UpdateDeviceTransferState extends State<UpdateDeviceTransfer> {
|
|
|
|
|
: (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.senderMachineStatusValue == 3)) : (!(_formModel.receiverMachineStatusValue == 3));
|
|
|
|
|
return Scaffold(
|
|
|
|
|
appBar: DefaultAppBar(title: context.translation.transferAsset,
|
|
|
|
|
appBar: DefaultAppBar(
|
|
|
|
|
title: context.translation.transferAsset,
|
|
|
|
|
onWillPopScope: () {
|
|
|
|
|
_update(status: 0);
|
|
|
|
|
},),
|
|
|
|
|
},
|
|
|
|
|
),
|
|
|
|
|
key: _scaffoldKey,
|
|
|
|
|
body: SafeArea(
|
|
|
|
|
child: LoadingManager(
|
|
|
|
|
|