added nurse signature for device transfer request and tested on uat

design_3.0_task_module_new
WaseemAbbasi22 5 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://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/mobile"; // host local UAT
static final String _baseUrl = "$_host/mobile"; // host local UAT
// static final String _baseUrl = "$_host/v3/mobile"; // new V3 apis
static String _host = host1;

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

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

@ -705,7 +705,7 @@ class ServiceRequestBottomSheet {
);
Navigator.pushReplacement(
context,
MaterialPageRoute(builder: (context) => MaintenanceRequestForm()),
MaterialPageRoute(builder: (context) => MaintenanceRequestForm()),
);
break;
}
@ -850,7 +850,6 @@ class ServiceRequestBottomSheet {
}
static Future feedBackBottomSheet({required BuildContext context}) {
String feedback = '';
TextEditingController _commentController = TextEditingController();
return buildBottomSheetParent(
@ -1185,122 +1184,133 @@ class ServiceRequestBottomSheet {
}));
}
//TODO need to modify this accroding to FM requirements....
// static Future nurseVerifyAssetTransferBottomSheet({required BuildContext context}) {
// bool acknowledge = false;
// Uint8List? newSignature;
// String? nurseSignature;
// return buildBottomSheetParent(
// context: context,
// childWidget: Consumer<ServiceRequestDetailProvider>(builder: (context, ServiceRequestDetailProvider requestDetailProvider, child) {
// return Column(
// crossAxisAlignment: CrossAxisAlignment.center,
// children: [
// const SizedBox().indicatorWidget(),
// 8.height,
// Align(
// alignment: AlignmentDirectional.centerStart,
// child: context.translation.pleaseConfirmTheIssueHasBeenResolved.bottomSheetHeadingTextStyle(context),
// ),
// 10.height,
// StatefulBuilder(
// builder: (context, setState) {
// return Column(
// children: [
// Row(
// children: [
// InkWell(
// child: acknowledge
// ? const Icon(
// Icons.check_box,
// color: AppColor.primary10,
// )
// : const Icon(
// Icons.check_box_outline_blank,
// color: AppColor.neutral120,
// ),
// onTap: () {
// setState(() {
// acknowledge = !acknowledge;
// });
// },
// ),
// 6.width,
// Flexible(
// child: context.translation.nurseAcknowledge.bodyText(context).custom(color: context.isDark ? AppColor.primary50 : AppColor.neutral120),
// ),
// ],
// ),
// 17.height,
// ESignature(
// title: '',
// oldSignature: '',
// newSignature: newSignature,
// backgroundColor: AppColor.neutral100,
// showShadow: false,
// onChange: (signature) {
// if (signature == null || signature.isEmpty) return;
// setState(() {
// newSignature = signature;
// nurseSignature = "${DateTime.now().toIso8601String()}.png|${base64Encode(signature)}";
// });
// },
// onSaved: (signature) {
// if (signature == null || signature.isEmpty) return;
// setState(() {
// newSignature = signature;
// nurseSignature = "${DateTime.now().toIso8601String()}.png|${base64Encode(signature)}";
// });
// },
// ),
// ],
// );
// },
// ),
// 36.height,
// Row(
// mainAxisAlignment: MainAxisAlignment.spaceBetween,
// mainAxisSize: MainAxisSize.min,
// children: [
// AppFilledButton(
// label: context.translation.reject,
// maxWidth: true,
// buttonColor: Colors.white54,
// textColor: AppColor.red30,
// showBorder: true,
// onPressed: () async {
// Navigator.pop(context);
// nurseRejectBackBottomSheet(context: context);
// },
// ).expanded,
// const SizedBox(
// width: 20,
// ),
// AppFilledButton(
// label: context.translation.confirm,
// maxWidth: true,
// loading: requestDetailProvider.isLoading,
// buttonColor: AppColor.green70,
// onPressed: () async {
// if (newSignature != null) {
// requestDetailProvider.nurseActionHelperModel = NurseActionHelperModel(workOrderId: requestDetailProvider.currentWorkOrder!.data!.requestId!, signatureNurse: nurseSignature);
// WorkOrderDetail? data = await requestDetailProvider.nurseConfirm();
// if (data != null) {
// if (requestDetailProvider.currentWorkOrder!.data!.requestId != null) {
// requestDetailProvider.updateCurrentWorkOrder(data);
// }
// Navigator.pop(context);
// }
// } else {
// context.translation.signaturesAreRequired.showToast;
// }
// },
// ).expanded,
// ],
// )
// ],
// );
// }));
// }
static Future nurseVerifyAssetTransferBottomSheet({required BuildContext context, required Function(String? value) onAckhnowledgePress}) {
bool acknowledge = false;
Uint8List? newSignature;
String? nurseSignature;
return buildBottomSheetParent(
context: context,
childWidget: Consumer<ServiceRequestDetailProvider>(builder: (context, ServiceRequestDetailProvider requestDetailProvider, child) {
return Column(
crossAxisAlignment: CrossAxisAlignment.center,
children: [
const SizedBox().indicatorWidget(),
8.height,
Align(
alignment: AlignmentDirectional.centerStart,
child: context.translation.nurseSignature.bottomSheetHeadingTextStyle(context),
),
10.height,
StatefulBuilder(
builder: (context, setState) {
return Column(
children: [
// Row(
// children: [
// InkWell(
// child: acknowledge
// ? const Icon(
// Icons.check_box,
// color: AppColor.primary10,
// )
// : const Icon(
// Icons.check_box_outline_blank,
// color: AppColor.neutral120,
// ),
// onTap: () {
// setState(() {
// acknowledge = !acknowledge;
// });
// },
// ),
// 6.width,
// Flexible(
// child: context.translation.nurseAcknowledge.bodyText(context).custom(color: context.isDark ? AppColor.primary50 : AppColor.neutral120),
// ),
// ],
// ),
// 17.height,
ESignature(
title: '',
oldSignature: '',
newSignature: newSignature,
backgroundColor: AppColor.neutral100,
showShadow: false,
onChange: (signature) {
if (signature.isEmpty) return;
setState(() {
newSignature = signature;
nurseSignature = "${DateTime.now().toIso8601String()}.png|${base64Encode(signature)}";
});
},
onSaved: (signature) {
if (signature == null || signature.isEmpty) return;
setState(() {
newSignature = signature;
nurseSignature = "${DateTime.now().toIso8601String()}.png|${base64Encode(signature)}";
});
},
),
],
);
},
),
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(
// mainAxisAlignment: MainAxisAlignment.spaceBetween,
// mainAxisSize: MainAxisSize.min,
// children: [
// // AppFilledButton(
// // label: context.translation.cancel,
// // maxWidth: true,
// // buttonColor: AppColor.white60,
// // textColor: AppColor.black10,
// // showBorder: true,
// // onPressed: () async {
// // Navigator.pop(context);
// // },
// // ).expanded,
// // const SizedBox(
// // width: 20,
// // ),
// AppFilledButton(
// label: context.translation.confirm,
// maxWidth: true,
// loading: requestDetailProvider.isLoading,
// buttonColor: AppColor.green70,
// onPressed: () async {
// if (newSignature != null) {
// requestDetailProvider.nurseActionHelperModel = NurseActionHelperModel(workOrderId: requestDetailProvider.currentWorkOrder!.data!.requestId!, signatureNurse: nurseSignature);
// WorkOrderDetail? data = await requestDetailProvider.nurseConfirm();
// if (data != null) {
// if (requestDetailProvider.currentWorkOrder!.data!.requestId != null) {
// requestDetailProvider.updateCurrentWorkOrder(data);
// }
// Navigator.pop(context);
// }
// } else {
// context.translation.signaturesAreRequired.showToast;
// }
// },
// ).expanded,
// ],
// )
],
);
}));
}
}

@ -59,7 +59,6 @@ class _UpdateDeviceTransferState extends State<UpdateDeviceTransfer> {
_formModel.isSender = widget.isSender;
_formModel.assetTransferAttachments = [];
int workingHours = _formModel.tbsTimer?.endAt!.difference(_formModel.tbsTimer!.startAt!).inSeconds ?? 0;
if (widget.isSender) {
_formModel.senderVisitTimers?.add(
VisitTimers(
@ -94,7 +93,17 @@ class _UpdateDeviceTransferState extends State<UpdateDeviceTransfer> {
} catch (error) {
print(error);
}
await _deviceTransferProvider.updateRequest(context, model: _formModel);
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);
}
});
}else {
await _deviceTransferProvider.updateRequest(context, model: _formModel);
}
}
}
@ -217,7 +226,6 @@ class _UpdateDeviceTransferState extends State<UpdateDeviceTransfer> {
label: context.translation.complete,
buttonColor: AppColor.primary10,
onPressed: (){
// ServiceRequestBottomSheet.nurseVerifyAssetTransferBottomSheet(context: context);
_update(status: 1);
}
).expanded,
@ -226,7 +234,6 @@ class _UpdateDeviceTransferState extends State<UpdateDeviceTransfer> {
label: context.translation.complete,
buttonColor: AppColor.primary10,
onPressed: () {
// ServiceRequestBottomSheet.nurseVerifyAssetTransferBottomSheet(context: context);
_update(status: 1);
},
).expanded,

Loading…
Cancel
Save