From b792585810d2001124be96c904e5bc49d3c72554 Mon Sep 17 00:00:00 2001 From: nextwo <1234> Date: Mon, 8 Jul 2024 09:30:46 +0300 Subject: [PATCH] add timer list in asset transfer for sender and receiver --- .../api/asset_transfer_provider.dart | 4 +- lib/models/device/asset_transfer.dart | 284 +++++++++--------- .../update_device_transfer.dart | 14 +- 3 files changed, 149 insertions(+), 153 deletions(-) diff --git a/lib/controllers/providers/api/asset_transfer_provider.dart b/lib/controllers/providers/api/asset_transfer_provider.dart index 5328f845..48293a99 100644 --- a/lib/controllers/providers/api/asset_transfer_provider.dart +++ b/lib/controllers/providers/api/asset_transfer_provider.dart @@ -165,7 +165,7 @@ class AssetTransferProvider extends ChangeNotifier { stateCode = response.statusCode; if (response.statusCode >= 200 && response.statusCode < 300) { reset(); - // Fluttertoast.showToast(msg: context.translation.successfulRequestMessage); + // Fluttertoast.showToast(msg: context.translation.successfulRequestMessage); Navigator.of(context).pop(); // oldModel.fromDeviceTransfer( // DeviceTransfer.fromJson( @@ -176,7 +176,7 @@ class AssetTransferProvider extends ChangeNotifier { } else { Fluttertoast.showToast(msg: "${context.translation.failedToCompleteRequest} :${json.decode(response.body)['message']}"); } - Navigator.pop(context,true); + Navigator.pop(context, true); return response.statusCode; } catch (error) { Navigator.pop(context); diff --git a/lib/models/device/asset_transfer.dart b/lib/models/device/asset_transfer.dart index c87deb08..ef9563f5 100644 --- a/lib/models/device/asset_transfer.dart +++ b/lib/models/device/asset_transfer.dart @@ -8,72 +8,71 @@ 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.receiverEndUserId, - this.receiverEndUserName, - 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, - 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.senderVisitTimers, - this.receiverVisitTimers, - this.tbsTimer - }); + 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.receiverEndUserId, + this.receiverEndUserName, + 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, + 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.senderVisitTimers, + this.receiverVisitTimers, + this.tbsTimer}); AssetTransfer.fromJson(dynamic json) { id = json['id']; @@ -123,9 +122,9 @@ class AssetTransfer { } receiverVisitTimers = []; if (json['assetTransferReceiverTimers'] != null) { - json['assetTransferReceiverTimers'].forEach((v) { - receiverVisitTimers.add(VisitTimers.fromJson(v)); - }); + json['assetTransferReceiverTimers'].forEach((v) { + receiverVisitTimers.add(VisitTimers.fromJson(v)); + }); } tbsTimer = TimerModel(); // try { @@ -241,74 +240,72 @@ class AssetTransfer { List receiverVisitTimers; TimerModel tbsTimer = TimerModel(); - - 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 receiverEndUserId, - String receiverEndUserName, - String senderStartDate, - String senderEndDate, - String senderWorkingHours, - String senderTravelingHours, - String senderEngSignature, - List senderAttachments, - String receiverAssignedEmployeeId, - num receiverMachineStatusId, - String receiverComment, - String receiverStartDate, - String receiverEndDate, - String receiverWorkingHours, - String receiverTravelingHours, - String receiverEngSignature, - List receiverAttachments, - 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, - List senderVisitTimers, - List receiverVisitTimers, - TimerModel tbsTimer - }) => + 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 receiverEndUserId, + String receiverEndUserName, + String senderStartDate, + String senderEndDate, + String senderWorkingHours, + String senderTravelingHours, + String senderEngSignature, + List senderAttachments, + String receiverAssignedEmployeeId, + num receiverMachineStatusId, + String receiverComment, + String receiverStartDate, + String receiverEndDate, + String receiverWorkingHours, + String receiverTravelingHours, + String receiverEngSignature, + List receiverAttachments, + 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, + List senderVisitTimers, + List receiverVisitTimers, + TimerModel tbsTimer}) => AssetTransfer( id: id ?? this.id, transferNo: transferNo ?? this.transferNo, @@ -370,9 +367,9 @@ class AssetTransfer { modelId: modelId ?? this.modelId, modelName: modelName ?? this.modelName, manufacturerId: manufacturerId ?? this.manufacturerId, - senderVisitTimers: senderVisitTimers??this.senderVisitTimers, - receiverVisitTimers: receiverVisitTimers??this.receiverVisitTimers, - tbsTimer: tbsTimer??this.tbsTimer, + senderVisitTimers: senderVisitTimers ?? this.senderVisitTimers, + receiverVisitTimers: receiverVisitTimers ?? this.receiverVisitTimers, + tbsTimer: tbsTimer ?? this.tbsTimer, manufacturerName: manufacturerName ?? this.manufacturerName); Map toJson() { @@ -564,8 +561,8 @@ class AssetTransfer { modelName = assetTransfer.modelName; manufacturerId = assetTransfer.manufacturerId; manufacturerName = assetTransfer.manufacturerName; - senderVisitTimers=assetTransfer.senderVisitTimers; - receiverVisitTimers=assetTransfer.receiverVisitTimers; + senderVisitTimers = assetTransfer.senderVisitTimers; + receiverVisitTimers = assetTransfer.receiverVisitTimers; } Future validate(BuildContext context) async { @@ -584,7 +581,8 @@ class AssetTransfer { } else if (destDepartmentId == null) { await Fluttertoast.showToast(msg: "${context.translation.youHaveToSelect} ${context.translation.department}"); return false; - } if (tbsTimer?.startAt == null) { + } + if (tbsTimer?.startAt == null) { await Fluttertoast.showToast(msg: "Working Hours Required"); return false; } diff --git a/lib/views/pages/device_transfer/update_device_transfer.dart b/lib/views/pages/device_transfer/update_device_transfer.dart index fd708225..553d33d7 100644 --- a/lib/views/pages/device_transfer/update_device_transfer.dart +++ b/lib/views/pages/device_transfer/update_device_transfer.dart @@ -59,8 +59,7 @@ class _UpdateDeviceTransferState extends State { List _files = []; _update() async { - - if(widget.isSender) { + if (widget.isSender) { _formModel.senderVisitTimers.add( VisitTimers( id: 0, @@ -118,7 +117,7 @@ class _UpdateDeviceTransferState extends State { } catch (error) { print(error); } - await _deviceTransferProvider.updateRequest(context, assetTransfer: _formModel, isSender:widget.isSender); + await _deviceTransferProvider.updateRequest(context, assetTransfer: _formModel, isSender: widget.isSender); } @override @@ -148,9 +147,9 @@ class _UpdateDeviceTransferState extends State { _settingProvider = Provider.of(context); _deviceTransferProvider = Provider.of(context, listen: false); - double totalWorkingHours = widget.isSender? - widget.model.senderVisitTimers.fold(0.0, (sum, item) => sum + DateTime.parse(item.endDateTime).difference(DateTime.parse(item.startDateTime)).inSeconds) - : widget.model.receiverVisitTimers.fold(0.0, (sum, item) => sum + DateTime.parse(item.endDateTime).difference(DateTime.parse(item.startDateTime)).inSeconds); + double totalWorkingHours = widget.isSender + ? widget.model.senderVisitTimers.fold(0.0, (sum, item) => sum + DateTime.parse(item.endDateTime).difference(DateTime.parse(item.startDateTime)).inSeconds) + : widget.model.receiverVisitTimers.fold(0.0, (sum, item) => sum + DateTime.parse(item.endDateTime).difference(DateTime.parse(item.startDateTime)).inSeconds); bool isTimerEnable = widget.isSender ? (!(_formModel?.senderMachineStatusName?.toLowerCase()?.contains("close") ?? false) || !(_formModel?.senderMachineStatusName?.toLowerCase()?.contains("complete") ?? false)) @@ -305,7 +304,7 @@ class _UpdateDeviceTransferState extends State { context.translation.transferDetails.heading5(context), 8.height, '${context.translation.assetName}: ${_formModel.assetName.cleanupWhitespace.capitalizeFirstOfEach}'.bodyText(context), - '${context.translation.requesterName}: ${_formModel?.receiverEndUserName?.cleanupWhitespace?.capitalizeFirstOfEach??""}'.bodyText(context), + '${context.translation.requesterName}: ${_formModel?.receiverEndUserName?.cleanupWhitespace?.capitalizeFirstOfEach ?? ""}'.bodyText(context), ], ).toShadowContainer(context); } @@ -331,5 +330,4 @@ class _UpdateDeviceTransferState extends State { return formattedDuration.trim(); } - }