added nurse signature for device transfer request and tested on uat

design_3.0_task_module_new
WaseemAbbasi22 9 months ago
parent 56c70671d8
commit 8ae51480f9

@ -7,9 +7,9 @@ class URLs {
// static const host1 = "https://atomsmdev.hmg.com"; // local DEV url // static const host1 = "https://atomsmdev.hmg.com"; // local DEV url
static const host1 = "https://atomsmuat.hmg.com"; // local UAT url static const host1 = "https://atomsmuat.hmg.com"; // local UAT url
static String _baseUrl = "$_host/mobile"; // static String _baseUrl = "$_host/mobile";
// static final String _baseUrl = "$_host/v2/mobile"; // new V2 apis // static final String _baseUrl = "$_host/v2/mobile"; // new V2 apis
// static final String _baseUrl = "$_host/mobile"; // host local UAT static final String _baseUrl = "$_host/mobile"; // host local UAT
// static final String _baseUrl = "$_host/v3/mobile"; // new V3 apis // static final String _baseUrl = "$_host/v3/mobile"; // new V3 apis
static String _host = host1; static String _host = host1;

@ -1,4 +1,5 @@
import 'dart:convert'; import 'dart:convert';
import 'dart:developer';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:fluttertoast/fluttertoast.dart'; import 'package:fluttertoast/fluttertoast.dart';
@ -22,14 +23,15 @@ class DeviceTransferProvider extends ChangeNotifier {
DeviceTransfer transferModel = DeviceTransfer(); DeviceTransfer transferModel = DeviceTransfer();
bool isSiteLoading = false; bool isSiteLoading = false;
Asset ?_internalAssetDestination = Asset(); Asset? _internalAssetDestination = Asset();
Asset ?get internalAssetDestination => _internalAssetDestination; Asset? get internalAssetDestination => _internalAssetDestination;
set internalAssetDestination(Asset? value) { set internalAssetDestination(Asset? value) {
_internalAssetDestination = value; _internalAssetDestination = value;
notifyListeners(); notifyListeners();
} //reset provider data } //reset provider data
void reset() { void reset() {
items = null; items = null;
isSiteLoading = false; isSiteLoading = false;
@ -134,7 +136,7 @@ class DeviceTransferProvider extends ChangeNotifier {
Future<PendingAssetServiceRequest?> checkAssetPendingRequest(int assetId) async { Future<PendingAssetServiceRequest?> checkAssetPendingRequest(int assetId) async {
Response response; Response response;
try { try {
response = await ApiManager.instance.post(URLs.CheckIfAssetHasAnotherServiceRequest + "?assetId=$assetId",body: {}); response = await ApiManager.instance.post(URLs.CheckIfAssetHasAnotherServiceRequest + "?assetId=$assetId", body: {});
stateCode = response.statusCode; stateCode = response.statusCode;
if (response.statusCode >= 200 && response.statusCode < 300) {} if (response.statusCode >= 200 && response.statusCode < 300) {}
return PendingAssetServiceRequest.fromJson(json.decode(response.body)["data"]); return PendingAssetServiceRequest.fromJson(json.decode(response.body)["data"]);
@ -190,10 +192,11 @@ class DeviceTransferProvider extends ChangeNotifier {
return response.statusCode; return response.statusCode;
} catch (error) { } catch (error) {
Navigator.pop(context); Navigator.pop(context);
print(error); log('error $error');
return -1; return -1;
} }
} }
Future getSiteData({required int? siteId}) async { Future getSiteData({required int? siteId}) async {
isSiteLoading = true; isSiteLoading = true;
notifyListeners(); notifyListeners();
@ -219,6 +222,4 @@ class DeviceTransferProvider extends ChangeNotifier {
return -1; return -1;
} }
} }
} }

@ -26,6 +26,7 @@ class DeviceTransfer {
this.senderAssignedEmployeeId, this.senderAssignedEmployeeId,
this.senderMachineStatusId, this.senderMachineStatusId,
this.senderComment, this.senderComment,
this.nurseSignature,
this.comment, this.comment,
this.receiverEndUserId, this.receiverEndUserId,
this.receiverEndUserName, this.receiverEndUserName,
@ -229,6 +230,7 @@ class DeviceTransfer {
num? transferNo; num? transferNo;
String? transferCode; String? transferCode;
int? statusValue; int? statusValue;
String? nurseSignature;
Lookup? transferType; Lookup? transferType;
String? assetSerialNo; String? assetSerialNo;
num? assetId; num? assetId;
@ -558,6 +560,7 @@ class DeviceTransfer {
map['statusValue'] = statusValue; map['statusValue'] = statusValue;
map['isSender'] = isSender; map['isSender'] = isSender;
map['techComment'] = isSender! ? senderComment : receiverComment; map['techComment'] = isSender! ? senderComment : receiverComment;
map['nurseSignature'] = nurseSignature;
map['assetTransferAssistantEmployees'] = modelAssistantEmployees; map['assetTransferAssistantEmployees'] = modelAssistantEmployees;
map['assetTransferEngineerTimers'] = assetTransferEngineerTimers; map['assetTransferEngineerTimers'] = assetTransferEngineerTimers;
if (attachments != null) { if (attachments != null) {

@ -850,7 +850,6 @@ class ServiceRequestBottomSheet {
} }
static Future feedBackBottomSheet({required BuildContext context}) { static Future feedBackBottomSheet({required BuildContext context}) {
String feedback = ''; String feedback = '';
TextEditingController _commentController = TextEditingController(); TextEditingController _commentController = TextEditingController();
return buildBottomSheetParent( return buildBottomSheetParent(
@ -1185,29 +1184,27 @@ class ServiceRequestBottomSheet {
})); }));
} }
//TODO need to modify this accroding to FM requirements.... static Future nurseVerifyAssetTransferBottomSheet({required BuildContext context, required Function(String? value) onAckhnowledgePress}) {
bool acknowledge = false;
// static Future nurseVerifyAssetTransferBottomSheet({required BuildContext context}) { Uint8List? newSignature;
// bool acknowledge = false; String? nurseSignature;
// Uint8List? newSignature; return buildBottomSheetParent(
// String? nurseSignature; context: context,
// return buildBottomSheetParent( childWidget: Consumer<ServiceRequestDetailProvider>(builder: (context, ServiceRequestDetailProvider requestDetailProvider, child) {
// context: context, return Column(
// childWidget: Consumer<ServiceRequestDetailProvider>(builder: (context, ServiceRequestDetailProvider requestDetailProvider, child) { crossAxisAlignment: CrossAxisAlignment.center,
// return Column( children: [
// crossAxisAlignment: CrossAxisAlignment.center, const SizedBox().indicatorWidget(),
// children: [ 8.height,
// const SizedBox().indicatorWidget(), Align(
// 8.height, alignment: AlignmentDirectional.centerStart,
// Align( child: context.translation.nurseSignature.bottomSheetHeadingTextStyle(context),
// alignment: AlignmentDirectional.centerStart, ),
// child: context.translation.pleaseConfirmTheIssueHasBeenResolved.bottomSheetHeadingTextStyle(context), 10.height,
// ), StatefulBuilder(
// 10.height, builder: (context, setState) {
// StatefulBuilder( return Column(
// builder: (context, setState) { children: [
// return Column(
// children: [
// Row( // Row(
// children: [ // children: [
// InkWell( // InkWell(
@ -1233,50 +1230,63 @@ class ServiceRequestBottomSheet {
// ], // ],
// ), // ),
// 17.height, // 17.height,
// ESignature( ESignature(
// title: '', title: '',
// oldSignature: '', oldSignature: '',
// newSignature: newSignature, newSignature: newSignature,
// backgroundColor: AppColor.neutral100, backgroundColor: AppColor.neutral100,
// showShadow: false, showShadow: false,
// onChange: (signature) { onChange: (signature) {
// if (signature == null || signature.isEmpty) return; if (signature.isEmpty) return;
// setState(() { setState(() {
// newSignature = signature; newSignature = signature;
// nurseSignature = "${DateTime.now().toIso8601String()}.png|${base64Encode(signature)}"; nurseSignature = "${DateTime.now().toIso8601String()}.png|${base64Encode(signature)}";
// }); });
// }, },
// onSaved: (signature) { onSaved: (signature) {
// if (signature == null || signature.isEmpty) return; if (signature == null || signature.isEmpty) return;
// setState(() { setState(() {
// newSignature = signature; newSignature = signature;
// nurseSignature = "${DateTime.now().toIso8601String()}.png|${base64Encode(signature)}"; nurseSignature = "${DateTime.now().toIso8601String()}.png|${base64Encode(signature)}";
// }); });
// }, },
// ), ),
// ], ],
// ); );
// }, },
// ), ),
// 36.height, 36.height,
AppFilledButton(
label: context.translation.confirm,
maxWidth: true,
loading: requestDetailProvider.isLoading,
buttonColor: AppColor.green70,
onPressed: () async {
if (newSignature != null) {
Navigator.pop(context);
onAckhnowledgePress(nurseSignature);
} else {
context.translation.signaturesAreRequired.showToast;
}
},
)
// Row( // Row(
// mainAxisAlignment: MainAxisAlignment.spaceBetween, // mainAxisAlignment: MainAxisAlignment.spaceBetween,
// mainAxisSize: MainAxisSize.min, // mainAxisSize: MainAxisSize.min,
// children: [ // children: [
// AppFilledButton( // // AppFilledButton(
// label: context.translation.reject, // // label: context.translation.cancel,
// maxWidth: true, // // maxWidth: true,
// buttonColor: Colors.white54, // // buttonColor: AppColor.white60,
// textColor: AppColor.red30, // // textColor: AppColor.black10,
// showBorder: true, // // showBorder: true,
// onPressed: () async { // // onPressed: () async {
// Navigator.pop(context); // // Navigator.pop(context);
// nurseRejectBackBottomSheet(context: context); // // },
// }, // // ).expanded,
// ).expanded, // // const SizedBox(
// const SizedBox( // // width: 20,
// width: 20, // // ),
// ),
// AppFilledButton( // AppFilledButton(
// label: context.translation.confirm, // label: context.translation.confirm,
// maxWidth: true, // maxWidth: true,
@ -1299,8 +1309,8 @@ class ServiceRequestBottomSheet {
// ).expanded, // ).expanded,
// ], // ],
// ) // )
// ], ],
// ); );
// })); }));
// } }
} }

@ -59,7 +59,6 @@ class _UpdateDeviceTransferState extends State<UpdateDeviceTransfer> {
_formModel.isSender = widget.isSender; _formModel.isSender = widget.isSender;
_formModel.assetTransferAttachments = []; _formModel.assetTransferAttachments = [];
int workingHours = _formModel.tbsTimer?.endAt!.difference(_formModel.tbsTimer!.startAt!).inSeconds ?? 0; int workingHours = _formModel.tbsTimer?.endAt!.difference(_formModel.tbsTimer!.startAt!).inSeconds ?? 0;
if (widget.isSender) { if (widget.isSender) {
_formModel.senderVisitTimers?.add( _formModel.senderVisitTimers?.add(
VisitTimers( VisitTimers(
@ -94,8 +93,18 @@ class _UpdateDeviceTransferState extends State<UpdateDeviceTransfer> {
} catch (error) { } catch (error) {
print(error); print(error);
} }
if(status ==1){
ServiceRequestBottomSheet.nurseVerifyAssetTransferBottomSheet(context: context,onAckhnowledgePress: (signature) async {
//TODO NEED TO CALL API HERE WITH ADDED PARAMETER FOR SIGNATURE FROM BACKEND..
if(signature!=null){
_formModel.nurseSignature = signature;
await _deviceTransferProvider.updateRequest(context, model: _formModel); await _deviceTransferProvider.updateRequest(context, model: _formModel);
} }
});
}else {
await _deviceTransferProvider.updateRequest(context, model: _formModel);
}
}
} }
bool _validateForm() { bool _validateForm() {
@ -217,7 +226,6 @@ class _UpdateDeviceTransferState extends State<UpdateDeviceTransfer> {
label: context.translation.complete, label: context.translation.complete,
buttonColor: AppColor.primary10, buttonColor: AppColor.primary10,
onPressed: (){ onPressed: (){
// ServiceRequestBottomSheet.nurseVerifyAssetTransferBottomSheet(context: context);
_update(status: 1); _update(status: 1);
} }
).expanded, ).expanded,
@ -226,7 +234,6 @@ class _UpdateDeviceTransferState extends State<UpdateDeviceTransfer> {
label: context.translation.complete, label: context.translation.complete,
buttonColor: AppColor.primary10, buttonColor: AppColor.primary10,
onPressed: () { onPressed: () {
// ServiceRequestBottomSheet.nurseVerifyAssetTransferBottomSheet(context: context);
_update(status: 1); _update(status: 1);
}, },
).expanded, ).expanded,

Loading…
Cancel
Save