attachment added on transfer request.

main_design2.0
Sikander Saleem 2 years ago
parent 6a19ea1578
commit 26b82fbda0

@ -170,7 +170,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(
@ -181,7 +181,7 @@ class AssetTransferProvider extends ChangeNotifier {
} else {
Fluttertoast.showToast(msg: "${context.translation.failedToCompleteRequest} :${json.decode(response.body)['message']}");
}
Navigator.pop(context);
Navigator.pop(context,true);
return response.statusCode;
} catch (error) {
Navigator.pop(context);

@ -78,7 +78,7 @@ class _DeviceTransferDetailsState extends State<DeviceTransferDetails> {
_buildTextWidget('${context.translation.model} : ${_model?.modelName ?? ""}'),
_buildTextWidget('${context.translation.sn} : ${_model?.assetSerialNo ?? ""}'),
if (_model?.receiverEndUserName != null) _buildTextWidget('${context.translation.receiverName} : ${_model?.receiverEndUserName ?? ""}'),
_buildTextWidget('${context.translation.requestNo} : ${_model.transferCode ?? ""}'),
_buildTextWidget('${context.translation.requestNo} : ${_model?.transferCode ?? ""}'),
if ((_model?.comment ?? "").isNotEmpty) ...[
8.height,
const Divider().defaultStyle(context),
@ -177,13 +177,13 @@ class _DeviceTransferDetailsState extends State<DeviceTransferDetails> {
}
_buildCard({@required String site, @required String unit, @required String comment, @required bool isSender, StatusLabel statusLabel}) {
bool isCurrentEngineerEligibleForEdit = isSender ? _model.senderAssignedEmployeeId == _userProvider.user.userID : _model.receiverAssignedEmployeeId == _userProvider.user.userID;
print("isCurrentEngineerEligibleForEdit:$isCurrentEngineerEligibleForEdit:${_userProvider.user.username}");
bool isCurrentEngineerEligibleForEdit = isSender ? _model?.senderAssignedEmployeeId == _userProvider.user?.userID : _model?.receiverAssignedEmployeeId == _userProvider.user?.userID;
bool isCurrentRequestCompletedOrClosed = isSender
? ((_model?.senderMachineStatusName?.toLowerCase()?.contains("close") ?? false) || (_model?.senderMachineStatusName?.toLowerCase()?.contains("complete") ?? false))
: ((_model?.receiverMachineStatusName?.toLowerCase()?.contains("close") ?? false) || (_model?.receiverMachineStatusName?.toLowerCase()?.contains("complete") ?? false));
print("isCurrentRequestCompletedOrClosed:$isSender:$isCurrentRequestCompletedOrClosed:${_userProvider.user.username}");
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
@ -207,8 +207,11 @@ class _DeviceTransferDetailsState extends State<DeviceTransferDetails> {
// : (!(_model?.receiverMachineStatusName?.toLowerCase()?.contains("close") ?? false) && !(_model?.receiverMachineStatusName?.toLowerCase()?.contains("complete") ?? false)))
//
"edit".toSvgAsset(height: 48, width: 48).onPress(() {
Navigator.of(context).push(MaterialPageRoute(builder: (_) => UpdateDeviceTransfer(model: _model, isSender: isSender)));
"edit".toSvgAsset(height: 48, width: 48).onPress(() async {
bool isReload = (await Navigator.of(context).push(MaterialPageRoute(builder: (_) => UpdateDeviceTransfer(model: _model, isSender: isSender)))) as bool;
if (isReload ?? false) {
setState(() {});
}
}),
],
),

@ -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),

Loading…
Cancel
Save