|
|
|
@ -11,14 +11,10 @@ import 'package:test_sa/extensions/context_extension.dart';
|
|
|
|
|
import 'package:test_sa/extensions/int_extensions.dart';
|
|
|
|
|
import 'package:test_sa/extensions/widget_extensions.dart';
|
|
|
|
|
import 'package:test_sa/models/device/asset_transfer.dart';
|
|
|
|
|
import 'package:test_sa/models/subtitle.dart';
|
|
|
|
|
import 'package:test_sa/new_views/common_widgets/app_filled_button.dart';
|
|
|
|
|
import 'package:test_sa/views/app_style/sizing.dart';
|
|
|
|
|
import 'package:test_sa/views/widgets/buttons/app_button.dart';
|
|
|
|
|
import 'package:test_sa/views/widgets/loaders/loading_manager.dart';
|
|
|
|
|
import 'package:test_sa/views/widgets/titles/app_sub_title.dart';
|
|
|
|
|
|
|
|
|
|
import '../../../../controllers/localization/localization.dart';
|
|
|
|
|
import '../../../controllers/validator/validator.dart';
|
|
|
|
|
import '../../../extensions/text_extensions.dart';
|
|
|
|
|
import '../../../models/lookup.dart';
|
|
|
|
@ -27,6 +23,7 @@ import '../../../new_views/common_widgets/default_app_bar.dart';
|
|
|
|
|
import '../../../new_views/common_widgets/single_item_drop_down_menu.dart';
|
|
|
|
|
import '../../../providers/gas_request_providers/gas_status_provider.dart';
|
|
|
|
|
import '../../widgets/e_signature/e_signature.dart';
|
|
|
|
|
import '../../widgets/timer/app_timer.dart';
|
|
|
|
|
|
|
|
|
|
class UpdateDeviceTransfer extends StatefulWidget {
|
|
|
|
|
final AssetTransfer model;
|
|
|
|
@ -51,14 +48,14 @@ class _UpdateDeviceTransferState extends State<UpdateDeviceTransfer> {
|
|
|
|
|
final GlobalKey<ScaffoldState> _scaffoldKey = GlobalKey<ScaffoldState>();
|
|
|
|
|
|
|
|
|
|
_update() async {
|
|
|
|
|
// if (_formModel?.timer?.startAt == null) {
|
|
|
|
|
// await Fluttertoast.showToast(msg: "Working Hours Required");
|
|
|
|
|
// return false;
|
|
|
|
|
// }
|
|
|
|
|
// if (_formModel?.timer?.endAt == null) {
|
|
|
|
|
// await Fluttertoast.showToast(msg: "Please Stop The Timer");
|
|
|
|
|
// return false;
|
|
|
|
|
// }
|
|
|
|
|
if (_formModel?.timer?.startAt == null) {
|
|
|
|
|
await Fluttertoast.showToast(msg: "Working Hours Required");
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
if (_formModel?.timer?.endAt == null) {
|
|
|
|
|
await Fluttertoast.showToast(msg: "Please Stop The Timer");
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
_validate = true;
|
|
|
|
|
if (!(_formKey.currentState.validate())) {
|
|
|
|
|
setState(() {});
|
|
|
|
@ -68,8 +65,7 @@ class _UpdateDeviceTransferState extends State<UpdateDeviceTransfer> {
|
|
|
|
|
|
|
|
|
|
_isLoading = true;
|
|
|
|
|
setState(() {});
|
|
|
|
|
int status = await _deviceTransferProvider.updateRequest(
|
|
|
|
|
assetTransfer: _formModel);
|
|
|
|
|
int status = await _deviceTransferProvider.updateRequest(assetTransfer: _formModel);
|
|
|
|
|
_isLoading = false;
|
|
|
|
|
setState(() {});
|
|
|
|
|
if (status >= 200 && status < 300) {
|
|
|
|
@ -119,7 +115,7 @@ class _UpdateDeviceTransferState extends State<UpdateDeviceTransfer> {
|
|
|
|
|
SingleChildScrollView(
|
|
|
|
|
padding: EdgeInsets.all(12 * AppStyle.getScaleFactor(context)),
|
|
|
|
|
child: Column(
|
|
|
|
|
crossAxisAlignment: CrossAxisAlignment.start,
|
|
|
|
|
crossAxisAlignment: CrossAxisAlignment.stretch,
|
|
|
|
|
children: [
|
|
|
|
|
_buildCard(),
|
|
|
|
|
8.height,
|
|
|
|
@ -127,8 +123,7 @@ class _UpdateDeviceTransferState extends State<UpdateDeviceTransfer> {
|
|
|
|
|
initialValue: widget.isSender ? _formModel.senderTravelingHours : _formModel.receiverTravelingHours,
|
|
|
|
|
labelText: context.translation.travelingHours,
|
|
|
|
|
onSaved: (value) {
|
|
|
|
|
widget.isSender? _formModel.senderTravelingHours
|
|
|
|
|
: _formModel.receiverTravelingHours= value;
|
|
|
|
|
widget.isSender ? _formModel.senderTravelingHours : _formModel.receiverTravelingHours = value;
|
|
|
|
|
//_formModel?.workingHours = double.tryParse(value);
|
|
|
|
|
// _formModel.travelingHours = value;
|
|
|
|
|
},
|
|
|
|
@ -136,25 +131,24 @@ class _UpdateDeviceTransferState extends State<UpdateDeviceTransfer> {
|
|
|
|
|
validator: (value) => Validator.isNumeric(value) ? null : "allow numbers only",
|
|
|
|
|
),
|
|
|
|
|
8.height,
|
|
|
|
|
AppTextFormField(
|
|
|
|
|
labelText: context.translation.workingHours,
|
|
|
|
|
initialValue: widget.isSender?_formModel.senderWorkingHours:_formModel.receiverWorkingHours,
|
|
|
|
|
onSaved:(value){
|
|
|
|
|
widget.isSender?
|
|
|
|
|
_formModel?.senderWorkingHours = value:_formModel?.receiverWorkingHours = value;
|
|
|
|
|
// _formModel.timer = timer;
|
|
|
|
|
// _formModel.workingHours = (((timer?.durationInSecond ?? 0) / 60) / 60)?.toStringAsFixed(2) ?? "0";
|
|
|
|
|
AppTimer(
|
|
|
|
|
label: context.translation.workingHours,
|
|
|
|
|
timer: _formModel.timer,
|
|
|
|
|
enabled: _formModel.receiverEndDate == null,
|
|
|
|
|
onChange: (timer) async {
|
|
|
|
|
_formModel.timer = timer;
|
|
|
|
|
return true;
|
|
|
|
|
},
|
|
|
|
|
textInputType: TextInputType.number,
|
|
|
|
|
validator: (value) => Validator.isNumeric(value) ? null : "allow numbers only",
|
|
|
|
|
),
|
|
|
|
|
8.height,
|
|
|
|
|
|
|
|
|
|
///TBD
|
|
|
|
|
Consumer<GasStatusProvider>(builder: (context, snapshot, _) {
|
|
|
|
|
return SingleItemDropDownMenu<Lookup, GasStatusProvider>(
|
|
|
|
|
context: context,
|
|
|
|
|
title: context.translation.reportStatus,
|
|
|
|
|
initialValue: snapshot.items?.firstWhere((element) => element.name == (widget.isSender?_formModel.senderMachineStatusName:_formModel.receiverMachineStatusName), orElse: () => null),
|
|
|
|
|
initialValue: snapshot.items
|
|
|
|
|
?.firstWhere((element) => element.name == (widget.isSender ? _formModel.senderMachineStatusName : _formModel.receiverMachineStatusName), orElse: () => null),
|
|
|
|
|
onSelect: (value) {
|
|
|
|
|
if (widget.isSender) {
|
|
|
|
|
_formModel.senderMachineStatusName = value.name;
|
|
|
|
@ -175,8 +169,7 @@ class _UpdateDeviceTransferState extends State<UpdateDeviceTransfer> {
|
|
|
|
|
textInputType: TextInputType.multiline,
|
|
|
|
|
alignLabelWithHint: true,
|
|
|
|
|
onSaved: (value) {
|
|
|
|
|
widget.isSender?
|
|
|
|
|
_formModel.senderComment = value:_formModel.receiverComment=value;
|
|
|
|
|
widget.isSender ? _formModel.senderComment = value : _formModel.receiverComment = value;
|
|
|
|
|
},
|
|
|
|
|
),
|
|
|
|
|
8.height,
|
|
|
|
@ -187,8 +180,9 @@ class _UpdateDeviceTransferState extends State<UpdateDeviceTransfer> {
|
|
|
|
|
onSaved: (signature) {
|
|
|
|
|
_signature = signature;
|
|
|
|
|
if (signature == null || signature.isEmpty) return;
|
|
|
|
|
widget.isSender? _formModel.senderEngSignature = "${DateTime.now().toIso8601String()}.png|${base64Encode(signature)}":
|
|
|
|
|
_formModel.receiverEngSignature = "${DateTime.now().toIso8601String()}.png|${base64Encode(signature)}";
|
|
|
|
|
widget.isSender
|
|
|
|
|
? _formModel.senderEngSignature = "${DateTime.now().toIso8601String()}.png|${base64Encode(signature)}"
|
|
|
|
|
: _formModel.receiverEngSignature = "${DateTime.now().toIso8601String()}.png|${base64Encode(signature)}";
|
|
|
|
|
|
|
|
|
|
base64Encode(signature);
|
|
|
|
|
},
|
|
|
|
@ -230,6 +224,7 @@ class _UpdateDeviceTransferState extends State<UpdateDeviceTransfer> {
|
|
|
|
|
'${context.translation.assetName}: ${_formModel.assetName}',
|
|
|
|
|
style: AppTextStyles.bodyText.copyWith(color: Color(0xFF757575)),
|
|
|
|
|
),
|
|
|
|
|
|
|
|
|
|
///TBD
|
|
|
|
|
Text(
|
|
|
|
|
'${context.translation.requesterName}: ',
|
|
|
|
|