Device Transfer Issued Fixed For Sender & Receiver

main_design2.0
zaid_daoud 2 years ago
parent 8800cabf32
commit a403fb0028

@ -148,12 +148,16 @@ class AssetTransferProvider extends ChangeNotifier {
}
}
Future<int> updateRequest({@required AssetTransfer assetTransfer}) async {
Future<int> updateRequest(BuildContext context, {@required AssetTransfer assetTransfer}) async {
Response response;
try {
assetTransfer.receiverStartDate = assetTransfer.timer?.startAt?.toIso8601String();
assetTransfer.receiverEndDate = assetTransfer.timer?.endAt?.toIso8601String();
assetTransfer.receiverWorkingHours = (((assetTransfer.timer?.durationInSecond ?? 0) / 60) / 60).toStringAsFixed(2);
showDialog(context: context, barrierDismissible: false, builder: (context) => const AppLazyLoading());
assetTransfer.receiverStartDate = assetTransfer.receiverTimer?.startAt?.toIso8601String();
assetTransfer.receiverEndDate = assetTransfer.receiverTimer?.endAt?.toIso8601String();
assetTransfer.receiverWorkingHours = (((assetTransfer.receiverTimer?.durationInSecond ?? 0) * 60) * 60).toStringAsFixed(2);
assetTransfer.senderStartDate = assetTransfer.senderTimer?.startAt?.toIso8601String();
assetTransfer.senderEndDate = assetTransfer.senderTimer?.endAt?.toIso8601String();
assetTransfer.senderWorkingHours = (((assetTransfer.senderTimer?.durationInSecond ?? 0) * 60) * 60).toStringAsFixed(2);
response = await ApiManager.instance.put(URLs.updateDeviceTransfer, body: assetTransfer.toJson());
print(response.body);
@ -166,15 +170,21 @@ class AssetTransferProvider extends ChangeNotifier {
stateCode = response.statusCode;
if (response.statusCode >= 200 && response.statusCode < 300) {
reset();
Fluttertoast.showToast(msg: context.translation.successfulRequestMessage);
Navigator.of(context).pop();
// oldModel.fromDeviceTransfer(
// DeviceTransfer.fromJson(
// json.decode(utf8.decode(response.bodyBytes))[0]
// )
// );
notifyListeners();
} else {
Fluttertoast.showToast(msg: "${context.translation.failedToCompleteRequest} :${json.decode(response.body)['message']}");
}
Navigator.pop(context);
return response.statusCode;
} catch (error) {
Navigator.pop(context);
return -1;
}
}

@ -66,7 +66,8 @@ class AssetTransfer {
this.senderSiteName,
this.supplierId,
this.supplierName,
this.timer,
this.senderTimer,
this.receiverTimer,
});
AssetTransfer.fromJson(dynamic json) {
@ -107,10 +108,15 @@ class AssetTransfer {
receiverTravelingHours = json['receiverTravelingHours'];
receiverEngSignature = json['receiverEngSignature'];
try {
timer = TimerModel(startAt: DateTime.tryParse(receiverStartDate ?? ""), endAt: DateTime.tryParse(receiverEndDate));
if (timer.endAt != null && timer.startAt != null) {
timer.durationInSecond = (timer.endAt.difference(timer.startAt))?.inSeconds;
receiverWorkingHours = (((timer.durationInSecond ?? 0) / 60) / 60)?.toStringAsFixed(2);
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);
@ -206,7 +212,8 @@ class AssetTransfer {
bool applied;
String createdOn;
String modifiedOn;
TimerModel timer = TimerModel();
TimerModel senderTimer = TimerModel();
TimerModel receiverTimer = TimerModel();
AssetTransfer copyWith({
num id,
@ -268,7 +275,8 @@ class AssetTransfer {
int manufacturerId,
String manufacturerName,
String destDepartmentName,
TimerModel timer,
TimerModel senderTimer,
TimerModel receiverTimer,
}) =>
AssetTransfer(
id: id ?? this.id,
@ -328,7 +336,8 @@ class AssetTransfer {
modelId: modelId ?? this.modelId,
modelName: modelName ?? this.modelName,
manufacturerId: manufacturerId ?? this.manufacturerId,
timer: timer ?? this.timer,
senderTimer: senderTimer ?? this.senderTimer,
receiverTimer: receiverTimer ?? this.receiverTimer,
manufacturerName: manufacturerName ?? this.manufacturerName);
Map<String, dynamic> toJson() {
final map = <String, dynamic>{};
@ -439,6 +448,7 @@ class AssetTransfer {
}
fromDetails(AssetTransfer assetTransfer) {
if (assetTransfer == null) return;
id = assetTransfer.id;
transferNo = assetTransfer.transferNo;
transferCode = assetTransfer.transferCode;
@ -497,6 +507,8 @@ class AssetTransfer {
modelName = assetTransfer.modelName;
manufacturerId = assetTransfer.manufacturerId;
manufacturerName = assetTransfer.manufacturerName;
senderTimer = assetTransfer.senderTimer;
receiverTimer = assetTransfer.receiverTimer;
}
Future<bool> validate(BuildContext context) async {

@ -45,6 +45,8 @@ class AColors {
static Color getRequestStatusColorByName(String status) {
switch ((status ?? "").toLowerCase()) {
case "medium":
return AColors.statusBlue;
case "in progress":
return AColors.statusYellowLight;
case "complete":

@ -1,5 +1,4 @@
import 'package:flutter/material.dart';
import 'package:flutter_svg/svg.dart';
import 'package:provider/provider.dart';
import 'package:test_sa/controllers/providers/api/asset_transfer_provider.dart';
import 'package:test_sa/controllers/providers/api/user_provider.dart';
@ -9,7 +8,6 @@ import 'package:test_sa/extensions/string_extensions.dart';
import 'package:test_sa/extensions/widget_extensions.dart';
import 'package:test_sa/models/device/asset_transfer.dart';
import 'package:test_sa/views/app_style/colors.dart';
import 'package:test_sa/views/app_style/sizing.dart';
import 'package:test_sa/views/pages/device_transfer/update_device_transfer.dart';
import 'package:test_sa/views/widgets/loaders/app_loading.dart';
import 'package:test_sa/views/widgets/loaders/loading_manager.dart';
@ -124,8 +122,8 @@ class _DeviceTransferDetailsState extends State<DeviceTransferDetails> {
? StatusLabel(
label: _model?.senderMachineStatusName,
id: _model?.senderMachineStatusId,
textColor: AColors.getRequestStatusTextColor(getIdstatus(_model.senderMachineStatusName)),
backgroundColor: AColors.getRequestStatusColor(getIdstatus(_model.senderMachineStatusName)))
textColor: AColors.getRequestStatusTextColorByName(_model.senderMachineStatusName),
backgroundColor: AColors.getRequestStatusColorByName(_model.senderMachineStatusName))
: null,
),
8.height,
@ -143,8 +141,8 @@ class _DeviceTransferDetailsState extends State<DeviceTransferDetails> {
? StatusLabel(
label: _model?.receiverMachineStatusName ?? "",
id: _model?.receiverMachineStatusId,
textColor: AColors.getRequestStatusTextColor(getIdstatus(_model.receiverMachineStatusName)),
backgroundColor: AColors.getRequestStatusColor(getIdstatus(_model.receiverMachineStatusName)))
textColor: AColors.getRequestStatusTextColorByName(_model.receiverMachineStatusName),
backgroundColor: AColors.getRequestStatusColorByName(_model.receiverMachineStatusName))
: null,
),
],
@ -185,18 +183,7 @@ class _DeviceTransferDetailsState extends State<DeviceTransferDetails> {
if (isSender
? (_model?.senderMachineStatusName?.toLowerCase() != "closed" && _model?.senderMachineStatusName?.toLowerCase() != "completed")
: (_model?.receiverMachineStatusName?.toLowerCase() != "closed" && _model?.receiverMachineStatusName?.toLowerCase() != "completed"))
CircleAvatar(
radius: 25,
backgroundColor: AppColor.neutral30,
child: CircleAvatar(
radius: 24,
backgroundColor: Colors.white,
child: Padding(
padding: const EdgeInsets.only(left: 3.0),
child: SvgPicture.asset('assets/images/update.svg'),
),
),
).onPress(isSender
"edit".toSvgAsset(height: 48, width: 48).onPress(isSender
? () {
Navigator.of(context).push(MaterialPageRoute(builder: (_) => UpdateDeviceTransfer(model: _model, isSender: isSender)));
}
@ -216,18 +203,4 @@ class _DeviceTransferDetailsState extends State<DeviceTransferDetails> {
],
).toShadowContainer(context);
}
int getIdstatus(String status) {
switch (status) {
case "Closed":
return 3;
break;
case "Open":
return 1;
break;
case "In Progress":
return 2;
break;
}
}
}

@ -1,4 +1,5 @@
import 'dart:convert';
import 'dart:developer';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
@ -48,11 +49,11 @@ class _UpdateDeviceTransferState extends State<UpdateDeviceTransfer> {
final GlobalKey<ScaffoldState> _scaffoldKey = GlobalKey<ScaffoldState>();
_update() async {
if (_formModel?.timer?.startAt == null) {
if ((widget.isSender && _formModel?.senderTimer?.startAt == null) || (!widget.isSender && _formModel?.receiverTimer?.startAt == null)) {
await Fluttertoast.showToast(msg: "Working Hours Required");
return false;
}
if (_formModel?.timer?.endAt == null) {
if ((widget.isSender && _formModel?.senderTimer?.endAt == null) || (!widget.isSender && _formModel?.receiverTimer?.startAt == null)) {
await Fluttertoast.showToast(msg: "Please Stop The Timer");
return false;
}
@ -62,19 +63,7 @@ class _UpdateDeviceTransferState extends State<UpdateDeviceTransfer> {
return false;
}
_formKey.currentState.save();
_isLoading = true;
setState(() {});
int status = await _deviceTransferProvider.updateRequest(assetTransfer: _formModel);
_isLoading = false;
setState(() {});
if (status >= 200 && status < 300) {
Fluttertoast.showToast(
msg: context.translation.successfulRequestMessage,
);
_validate = false;
Navigator.of(context).pop();
}
await _deviceTransferProvider.updateRequest(context, assetTransfer: _formModel);
}
// @override
@ -122,6 +111,10 @@ class _UpdateDeviceTransferState extends State<UpdateDeviceTransfer> {
AppTextFormField(
initialValue: widget.isSender ? _formModel.senderTravelingHours : _formModel.receiverTravelingHours,
labelText: context.translation.travelingHours,
onChange: (text) {
log(widget.isSender ? _formModel.senderStartDate : _formModel.receiverStartDate);
log(widget.isSender ? _formModel.senderEndDate : _formModel.receiverEndDate);
},
onSaved: (value) {
widget.isSender ? _formModel.senderTravelingHours : _formModel.receiverTravelingHours = value;
//_formModel?.workingHours = double.tryParse(value);
@ -133,10 +126,14 @@ class _UpdateDeviceTransferState extends State<UpdateDeviceTransfer> {
8.height,
AppTimer(
label: context.translation.workingHours,
timer: _formModel.timer,
enabled: _formModel.receiverEndDate == null,
timer: widget.isSender ? _formModel.senderTimer : _formModel.receiverTimer,
enabled: widget.isSender ? _formModel.senderEndDate == null : _formModel.receiverEndDate == null,
onChange: (timer) async {
_formModel.timer = timer;
if (widget.isSender) {
_formModel.senderTimer = timer;
} else {
_formModel.receiverTimer = timer;
}
return true;
},
),
@ -175,7 +172,7 @@ class _UpdateDeviceTransferState extends State<UpdateDeviceTransfer> {
8.height,
ESignature(
title: "Signature",
oldSignature: widget.isSender ? widget.model.senderEngSignature : widget.model.receiverEngSignature,
oldSignature: widget.isSender ? widget.model?.senderEngSignature : widget.model?.receiverEngSignature,
newSignature: _signature,
onSaved: (signature) {
_signature = signature;

Loading…
Cancel
Save