|
|
|
|
@ -1,5 +1,6 @@
|
|
|
|
|
import 'dart:convert';
|
|
|
|
|
import 'dart:developer';
|
|
|
|
|
import 'dart:io';
|
|
|
|
|
|
|
|
|
|
import 'package:flutter/foundation.dart';
|
|
|
|
|
import 'package:flutter/material.dart';
|
|
|
|
|
@ -13,9 +14,11 @@ import 'package:test_sa/extensions/int_extensions.dart';
|
|
|
|
|
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/models/device/asset_transfer_attachment.dart';
|
|
|
|
|
import 'package:test_sa/new_views/common_widgets/app_filled_button.dart';
|
|
|
|
|
import 'package:test_sa/providers/asset_transfer/asset_transfer_status_provider.dart';
|
|
|
|
|
import 'package:test_sa/views/app_style/sizing.dart';
|
|
|
|
|
import 'package:test_sa/views/widgets/images/multi_image_picker.dart';
|
|
|
|
|
import 'package:test_sa/views/widgets/loaders/loading_manager.dart';
|
|
|
|
|
import 'package:test_sa/views/widgets/status/asset_status.dart';
|
|
|
|
|
|
|
|
|
|
@ -51,7 +54,10 @@ class _UpdateDeviceTransferState extends State<UpdateDeviceTransfer> {
|
|
|
|
|
final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
|
|
|
|
|
final GlobalKey<ScaffoldState> _scaffoldKey = GlobalKey<ScaffoldState>();
|
|
|
|
|
|
|
|
|
|
List<File> _files = [];
|
|
|
|
|
|
|
|
|
|
_update() async {
|
|
|
|
|
|
|
|
|
|
if ((widget.isSender && _formModel?.senderTimer?.startAt == null) || (!widget.isSender && _formModel?.receiverTimer?.startAt == null)) {
|
|
|
|
|
await Fluttertoast.showToast(msg: "Working Hours Required");
|
|
|
|
|
return false;
|
|
|
|
|
@ -66,6 +72,30 @@ class _UpdateDeviceTransferState extends State<UpdateDeviceTransfer> {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
_formKey.currentState.save();
|
|
|
|
|
|
|
|
|
|
if (widget.isSender) {
|
|
|
|
|
_formModel.senderAttachments = [];
|
|
|
|
|
} else {
|
|
|
|
|
_formModel.receiverAttachments = [];
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
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.senderAttachments.add(AssetTransferAttachment(id: 0, attachmentName: attachmentName));
|
|
|
|
|
} else {
|
|
|
|
|
_formModel.receiverAttachments.add(AssetTransferAttachment(id: 0, attachmentName: attachmentName));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
} catch (error) {
|
|
|
|
|
print(error);
|
|
|
|
|
}
|
|
|
|
|
await _deviceTransferProvider.updateRequest(context, assetTransfer: _formModel);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@ -77,6 +107,13 @@ class _UpdateDeviceTransferState extends State<UpdateDeviceTransfer> {
|
|
|
|
|
@override
|
|
|
|
|
void initState() {
|
|
|
|
|
_formModel.fromDetails(widget.model);
|
|
|
|
|
|
|
|
|
|
if (widget.isSender) {
|
|
|
|
|
_files = widget.model?.senderAttachments?.map((e) => File(e.attachmentName))?.toList();
|
|
|
|
|
} else {
|
|
|
|
|
_files = widget.model?.receiverAttachments?.map((e) => File(e.attachmentName))?.toList();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
super.initState();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@ -175,6 +212,8 @@ class _UpdateDeviceTransferState extends State<UpdateDeviceTransfer> {
|
|
|
|
|
);
|
|
|
|
|
}),
|
|
|
|
|
8.height,
|
|
|
|
|
MultiFilesPicker(label: context.translation.attachImage, files: _files),
|
|
|
|
|
8.height,
|
|
|
|
|
AppTextFormField(
|
|
|
|
|
initialValue: widget.isSender ? _formModel.senderComment : _formModel.receiverComment,
|
|
|
|
|
labelText: context.translation.comments,
|
|
|
|
|
@ -221,7 +260,7 @@ class _UpdateDeviceTransferState extends State<UpdateDeviceTransfer> {
|
|
|
|
|
children: [
|
|
|
|
|
context.translation.transferDetails.heading5(context),
|
|
|
|
|
8.height,
|
|
|
|
|
'${context.translation.assetName}: ${_formModel.assetName}'.bodyText(context),
|
|
|
|
|
'${context.translation.assetName}: ${_formModel.assetName.cleanupWhitespace.capitalizeFirstOfEach}'.bodyText(context),
|
|
|
|
|
|
|
|
|
|
///TBDZ
|
|
|
|
|
'${context.translation.requesterName}: '.bodyText(context),
|
|
|
|
|
|