add timer list in asset transfer for sender and receiver

main_design2.0
nextwo 1 year ago
parent 67854d2e8c
commit b792585810

@ -165,7 +165,7 @@ class AssetTransferProvider extends ChangeNotifier {
stateCode = response.statusCode; stateCode = response.statusCode;
if (response.statusCode >= 200 && response.statusCode < 300) { if (response.statusCode >= 200 && response.statusCode < 300) {
reset(); reset();
// Fluttertoast.showToast(msg: context.translation.successfulRequestMessage); // Fluttertoast.showToast(msg: context.translation.successfulRequestMessage);
Navigator.of(context).pop(); Navigator.of(context).pop();
// oldModel.fromDeviceTransfer( // oldModel.fromDeviceTransfer(
// DeviceTransfer.fromJson( // DeviceTransfer.fromJson(
@ -176,7 +176,7 @@ class AssetTransferProvider extends ChangeNotifier {
} else { } else {
Fluttertoast.showToast(msg: "${context.translation.failedToCompleteRequest} :${json.decode(response.body)['message']}"); Fluttertoast.showToast(msg: "${context.translation.failedToCompleteRequest} :${json.decode(response.body)['message']}");
} }
Navigator.pop(context,true); Navigator.pop(context, true);
return response.statusCode; return response.statusCode;
} catch (error) { } catch (error) {
Navigator.pop(context); Navigator.pop(context);

@ -8,72 +8,71 @@ import 'package:test_sa/models/timer_model.dart';
import 'asset_transfer_attachment.dart'; import 'asset_transfer_attachment.dart';
class AssetTransfer { class AssetTransfer {
AssetTransfer({ AssetTransfer(
this.id, {this.id,
this.transferNo, this.transferNo,
this.transferCode, this.transferCode,
this.assetId, this.assetId,
this.destSiteId, this.destSiteId,
this.destBuildingId, this.destBuildingId,
this.destFloorId, this.destFloorId,
this.destDepartmentId, this.destDepartmentId,
this.destRoomId, this.destRoomId,
this.senderSiteId, this.senderSiteId,
this.senderBuildingId, this.senderBuildingId,
this.senderFloorId, this.senderFloorId,
this.senderDepartmentId, this.senderDepartmentId,
this.senderRoom, this.senderRoom,
this.senderAssignedEmployeeId, this.senderAssignedEmployeeId,
this.senderMachineStatusId, this.senderMachineStatusId,
this.senderComment, this.senderComment,
this.comment, this.comment,
this.receiverEndUserId, this.receiverEndUserId,
this.receiverEndUserName, this.receiverEndUserName,
this.senderStartDate, this.senderStartDate,
this.senderEndDate, this.senderEndDate,
this.senderWorkingHours, this.senderWorkingHours,
this.senderTravelingHours, this.senderTravelingHours,
this.senderEngSignature, this.senderEngSignature,
this.senderAttachments, this.senderAttachments,
this.receiverAssignedEmployeeId, this.receiverAssignedEmployeeId,
this.receiverMachineStatusId, this.receiverMachineStatusId,
this.receiverComment, this.receiverComment,
this.receiverStartDate, this.receiverStartDate,
this.receiverEndDate, this.receiverEndDate,
this.receiverWorkingHours, this.receiverWorkingHours,
this.receiverTravelingHours, this.receiverTravelingHours,
this.receiverEngSignature, this.receiverEngSignature,
this.receiverAttachments, this.receiverAttachments,
this.assetNumber, this.assetNumber,
this.assetName, this.assetName,
this.manufacturerName, this.manufacturerName,
this.modelName, this.modelName,
this.assetSerialNo, this.assetSerialNo,
this.destDepartmentName, this.destDepartmentName,
this.destBuildingName, this.destBuildingName,
this.applied, this.applied,
this.createdOn, this.createdOn,
this.destFloorName, this.destFloorName,
this.destSiteName, this.destSiteName,
this.manufacturerId, this.manufacturerId,
this.modelId, this.modelId,
this.modifiedOn, this.modifiedOn,
this.receiverAssignedEmployeeName, this.receiverAssignedEmployeeName,
this.receiverEngSignatureUrl, this.receiverEngSignatureUrl,
this.receiverMachineStatusName, this.receiverMachineStatusName,
this.senderAssignedEmployeeName, this.senderAssignedEmployeeName,
this.senderBuildingName, this.senderBuildingName,
this.senderDepartmentName, this.senderDepartmentName,
this.senderEngSignatureUrl, this.senderEngSignatureUrl,
this.senderFloorName, this.senderFloorName,
this.senderMachineStatusName, this.senderMachineStatusName,
this.senderSiteName, this.senderSiteName,
this.supplierId, this.supplierId,
this.supplierName, this.supplierName,
this.senderVisitTimers, this.senderVisitTimers,
this.receiverVisitTimers, this.receiverVisitTimers,
this.tbsTimer this.tbsTimer});
});
AssetTransfer.fromJson(dynamic json) { AssetTransfer.fromJson(dynamic json) {
id = json['id']; id = json['id'];
@ -123,9 +122,9 @@ class AssetTransfer {
} }
receiverVisitTimers = <VisitTimers>[]; receiverVisitTimers = <VisitTimers>[];
if (json['assetTransferReceiverTimers'] != null) { if (json['assetTransferReceiverTimers'] != null) {
json['assetTransferReceiverTimers'].forEach((v) { json['assetTransferReceiverTimers'].forEach((v) {
receiverVisitTimers.add(VisitTimers.fromJson(v)); receiverVisitTimers.add(VisitTimers.fromJson(v));
}); });
} }
tbsTimer = TimerModel(); tbsTimer = TimerModel();
// try { // try {
@ -241,74 +240,72 @@ class AssetTransfer {
List<VisitTimers> receiverVisitTimers; List<VisitTimers> receiverVisitTimers;
TimerModel tbsTimer = TimerModel(); TimerModel tbsTimer = TimerModel();
AssetTransfer copyWith(
AssetTransfer copyWith({ {num id,
num id, num transferNo,
num transferNo, String transferCode,
String transferCode, num assetId,
num assetId, num destSiteId,
num destSiteId, num destBuildingId,
num destBuildingId, num destFloorId,
num destFloorId, num destDepartmentId,
num destDepartmentId, String destRoomId,
String destRoomId, num senderSiteId,
num senderSiteId, num senderBuildingId,
num senderBuildingId, num senderFloorId,
num senderFloorId, num senderDepartmentId,
num senderDepartmentId, String senderRoom,
String senderRoom, String senderAssignedEmployeeId,
String senderAssignedEmployeeId, num senderMachineStatusId,
num senderMachineStatusId, String senderComment,
String senderComment, String comment,
String comment, String receiverEndUserId,
String receiverEndUserId, String receiverEndUserName,
String receiverEndUserName, String senderStartDate,
String senderStartDate, String senderEndDate,
String senderEndDate, String senderWorkingHours,
String senderWorkingHours, String senderTravelingHours,
String senderTravelingHours, String senderEngSignature,
String senderEngSignature, List<AssetTransferAttachment> senderAttachments,
List<AssetTransferAttachment> senderAttachments, String receiverAssignedEmployeeId,
String receiverAssignedEmployeeId, num receiverMachineStatusId,
num receiverMachineStatusId, String receiverComment,
String receiverComment, String receiverStartDate,
String receiverStartDate, String receiverEndDate,
String receiverEndDate, String receiverWorkingHours,
String receiverWorkingHours, String receiverTravelingHours,
String receiverTravelingHours, String receiverEngSignature,
String receiverEngSignature, List<AssetTransferAttachment> receiverAttachments,
List<AssetTransferAttachment> receiverAttachments, num supplierId,
num supplierId, String supplierName,
String supplierName, String destSiteName,
String destSiteName, String destBuildingName,
String destBuildingName, String destFloorName,
String destFloorName, String destDepartmentNam,
String destDepartmentNam, String senderSiteName,
String senderSiteName, String senderBuildingName,
String senderBuildingName, String senderFloorName,
String senderFloorName, String senderDepartmentName,
String senderDepartmentName, String senderAssignedEmployeeName,
String senderAssignedEmployeeName, String senderMachineStatusName,
String senderMachineStatusName, String senderEngSignatureUrl,
String senderEngSignatureUrl, String receiverAssignedEmployeeName,
String receiverAssignedEmployeeName, String receiverMachineStatusName,
String receiverMachineStatusName, String receiverEngSignatureUrl,
String receiverEngSignatureUrl, bool applied,
bool applied, String createdOn,
String createdOn, String modifiedOn,
String modifiedOn, String assetSerialNo,
String assetSerialNo, String assetNumber,
String assetNumber, String assetName,
String assetName, int modelId,
int modelId, String modelName,
String modelName, int manufacturerId,
int manufacturerId, String manufacturerName,
String manufacturerName, String destDepartmentName,
String destDepartmentName, List<VisitTimers> senderVisitTimers,
List<VisitTimers> senderVisitTimers, List<VisitTimers> receiverVisitTimers,
List<VisitTimers> receiverVisitTimers, TimerModel tbsTimer}) =>
TimerModel tbsTimer
}) =>
AssetTransfer( AssetTransfer(
id: id ?? this.id, id: id ?? this.id,
transferNo: transferNo ?? this.transferNo, transferNo: transferNo ?? this.transferNo,
@ -370,9 +367,9 @@ class AssetTransfer {
modelId: modelId ?? this.modelId, modelId: modelId ?? this.modelId,
modelName: modelName ?? this.modelName, modelName: modelName ?? this.modelName,
manufacturerId: manufacturerId ?? this.manufacturerId, manufacturerId: manufacturerId ?? this.manufacturerId,
senderVisitTimers: senderVisitTimers??this.senderVisitTimers, senderVisitTimers: senderVisitTimers ?? this.senderVisitTimers,
receiverVisitTimers: receiverVisitTimers??this.receiverVisitTimers, receiverVisitTimers: receiverVisitTimers ?? this.receiverVisitTimers,
tbsTimer: tbsTimer??this.tbsTimer, tbsTimer: tbsTimer ?? this.tbsTimer,
manufacturerName: manufacturerName ?? this.manufacturerName); manufacturerName: manufacturerName ?? this.manufacturerName);
Map<String, dynamic> toJson() { Map<String, dynamic> toJson() {
@ -564,8 +561,8 @@ class AssetTransfer {
modelName = assetTransfer.modelName; modelName = assetTransfer.modelName;
manufacturerId = assetTransfer.manufacturerId; manufacturerId = assetTransfer.manufacturerId;
manufacturerName = assetTransfer.manufacturerName; manufacturerName = assetTransfer.manufacturerName;
senderVisitTimers=assetTransfer.senderVisitTimers; senderVisitTimers = assetTransfer.senderVisitTimers;
receiverVisitTimers=assetTransfer.receiverVisitTimers; receiverVisitTimers = assetTransfer.receiverVisitTimers;
} }
Future<bool> validate(BuildContext context) async { Future<bool> validate(BuildContext context) async {
@ -584,7 +581,8 @@ class AssetTransfer {
} else if (destDepartmentId == null) { } else if (destDepartmentId == null) {
await Fluttertoast.showToast(msg: "${context.translation.youHaveToSelect} ${context.translation.department}"); await Fluttertoast.showToast(msg: "${context.translation.youHaveToSelect} ${context.translation.department}");
return false; return false;
} if (tbsTimer?.startAt == null) { }
if (tbsTimer?.startAt == null) {
await Fluttertoast.showToast(msg: "Working Hours Required"); await Fluttertoast.showToast(msg: "Working Hours Required");
return false; return false;
} }

@ -59,8 +59,7 @@ class _UpdateDeviceTransferState extends State<UpdateDeviceTransfer> {
List<File> _files = []; List<File> _files = [];
_update() async { _update() async {
if (widget.isSender) {
if(widget.isSender) {
_formModel.senderVisitTimers.add( _formModel.senderVisitTimers.add(
VisitTimers( VisitTimers(
id: 0, id: 0,
@ -118,7 +117,7 @@ class _UpdateDeviceTransferState extends State<UpdateDeviceTransfer> {
} catch (error) { } catch (error) {
print(error); print(error);
} }
await _deviceTransferProvider.updateRequest(context, assetTransfer: _formModel, isSender:widget.isSender); await _deviceTransferProvider.updateRequest(context, assetTransfer: _formModel, isSender: widget.isSender);
} }
@override @override
@ -148,9 +147,9 @@ class _UpdateDeviceTransferState extends State<UpdateDeviceTransfer> {
_settingProvider = Provider.of<SettingProvider>(context); _settingProvider = Provider.of<SettingProvider>(context);
_deviceTransferProvider = Provider.of<AssetTransferProvider>(context, listen: false); _deviceTransferProvider = Provider.of<AssetTransferProvider>(context, listen: false);
double totalWorkingHours = widget.isSender? 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.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); : widget.model.receiverVisitTimers.fold(0.0, (sum, item) => sum + DateTime.parse(item.endDateTime).difference(DateTime.parse(item.startDateTime)).inSeconds);
bool isTimerEnable = widget.isSender bool isTimerEnable = widget.isSender
? (!(_formModel?.senderMachineStatusName?.toLowerCase()?.contains("close") ?? false) || !(_formModel?.senderMachineStatusName?.toLowerCase()?.contains("complete") ?? false)) ? (!(_formModel?.senderMachineStatusName?.toLowerCase()?.contains("close") ?? false) || !(_formModel?.senderMachineStatusName?.toLowerCase()?.contains("complete") ?? false))
@ -305,7 +304,7 @@ class _UpdateDeviceTransferState extends State<UpdateDeviceTransfer> {
context.translation.transferDetails.heading5(context), context.translation.transferDetails.heading5(context),
8.height, 8.height,
'${context.translation.assetName}: ${_formModel.assetName.cleanupWhitespace.capitalizeFirstOfEach}'.bodyText(context), '${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); ).toShadowContainer(context);
} }
@ -331,5 +330,4 @@ class _UpdateDeviceTransferState extends State<UpdateDeviceTransfer> {
return formattedDuration.trim(); return formattedDuration.trim();
} }
} }

Loading…
Cancel
Save