diff --git a/assets/langs/ar-SA.json b/assets/langs/ar-SA.json index 27f1ab0..84e20d9 100644 --- a/assets/langs/ar-SA.json +++ b/assets/langs/ar-SA.json @@ -211,6 +211,11 @@ "workOnBreak": "العمل على استراحة", "next": "التالي", "submit": "ارسال", + "areYouSureYouWantToSubmit": "هل أنت متأكد أنك تريد أن تقدم؟", + "comments": "تعليقات", + "writeComment": "أكتب تعليقا", + "approversList": "قائمة الموافقين", + "yourRequestHasBeenSubmittedForApprovals": "تم تقديم طلبك للموافقات", "profile": { "reset_password": { "label": "Reset Password", diff --git a/assets/langs/en-US.json b/assets/langs/en-US.json index 498d3e1..f12f294 100644 --- a/assets/langs/en-US.json +++ b/assets/langs/en-US.json @@ -211,6 +211,11 @@ "workOnBreak": "Work On Break", "next": "Next", "submit": "Submit", + "areYouSureYouWantToSubmit": "Are you sure you want to submit?", + "comments": "Comments", + "writeComment": "Write a comment", + "approversList": "Approvers List", + "yourRequestHasBeenSubmittedForApprovals": "Your request has been submitted for approvals", "profile": { "reset_password": { "label": "Reset Password", diff --git a/lib/api/my_attendance_api_client.dart b/lib/api/my_attendance_api_client.dart index 44b91da..60247dc 100644 --- a/lib/api/my_attendance_api_client.dart +++ b/lib/api/my_attendance_api_client.dart @@ -6,6 +6,7 @@ import 'package:mohem_flutter_app/models/generic_response_model.dart'; import 'package:mohem_flutter_app/models/get_approves_list_model.dart'; import 'package:mohem_flutter_app/models/get_eit_dff_structure_list_model.dart'; import 'package:mohem_flutter_app/models/get_eit_transaction_list_model.dart'; +import 'package:mohem_flutter_app/models/start_eit_approval_process_model.dart'; import 'package:mohem_flutter_app/models/submit_eit_transaction_list_model.dart'; import 'api_client.dart'; @@ -98,10 +99,13 @@ class MyAttendanceApiClient { "P_MENU_TYPE": "E", "P_DESC_FLEX_CONTEXT_CODE": pDescFlexContextCode, "P_FUNCTION_NAME": pFunctionName, - "EITTransactionTBL": list, - "EITTransactionTBLModel": list, + //"EITTransactionTBL": list, + // "EITTransactionTBLModel": list, }; postParams.addAll(AppState().postParamsJson); + print("postParams:$postParams"); + postParams["EITTransactionTBL"] = list; + postParams["EITTransactionTBLModel"] = list; return await ApiClient().postJsonForObject((json) { GenericResponseModel responseData = GenericResponseModel.fromJson(json); return responseData.submitEITTransactionList!; //ESERVICESDV.fromJson(responseData.getDefaultValueList!.toJson()); @@ -122,4 +126,31 @@ class MyAttendanceApiClient { return responseData.getApprovesList ?? []; }, url, postParams); } + + Future> addAttachment(List> list) async { + String url = "${ApiConsts.erpRest}ADD_ATTACHMENT"; + Map postParams = {"AddAttachmentList": list}; + postParams.addAll(AppState().postParamsJson); + return await ApiClient().postJsonForObject((json) { + GenericResponseModel? responseData = GenericResponseModel.fromJson(json); + return responseData.getApprovesList ?? []; + }, url, postParams); + } + + Future startEitApprovalProcess(String action, String comments, String itemKey, int transactionId) async { + String url = "${ApiConsts.erpRest}START_EIT_APPROVAL_PROCESS"; + Map postParams = { + "P_SELECTED_RESP_ID": -999, + "P_MENU_TYPE": "E", + "P_ACTION_MODE": action, + "P_COMMENTS": comments, + "P_ITEM_KEY": itemKey, + "P_TRANSACTION_ID": transactionId, + }; + postParams.addAll(AppState().postParamsJson); + return await ApiClient().postJsonForObject((json) { + GenericResponseModel? responseData = GenericResponseModel.fromJson(json); + return responseData.startEitApprovalProcess; + }, url, postParams); + } } diff --git a/lib/generated/codegen_loader.g.dart b/lib/generated/codegen_loader.g.dart index 7afe58a..ca6b210 100644 --- a/lib/generated/codegen_loader.g.dart +++ b/lib/generated/codegen_loader.g.dart @@ -223,6 +223,15 @@ class CodegenLoader extends AssetLoader{ "requestDetails": "طلب تفاصيل", "approvalLevel": "مستوى الموافقة", "requesterDetails": "تفاصيل مقدم الطلب", + "myAttendance": "حضوري", + "workOnBreak": "العمل على استراحة", + "next": "التالي", + "submit": "ارسال", + "areYouSureYouWantToSubmit": "هل أنت متأكد أنك تريد أن تقدم؟", + "comments": "تعليقات", + "writeComment": "أكتب تعليقا", + "approversList": "قائمة الموافقين", + "yourRequestHasBeenSubmittedForApprovals": "تم تقديم طلبك للموافقات", "profile": { "reset_password": { "label": "Reset Password", @@ -465,6 +474,15 @@ static const Map en_US = { "requestDetails": "Request Details", "approvalLevel": "Approval Level", "requesterDetails": "Requester Details", + "myAttendance": "My Attendance", + "workOnBreak": "Work On Break", + "next": "Next", + "submit": "Submit", + "areYouSureYouWantToSubmit": "Are you sure you want to submit?", + "comments": "Comments", + "writeComment": "Write a comment", + "approversList": "Approvers List", + "yourRequestHasBeenSubmittedForApprovals": "Your request has been submitted for approvals", "profile": { "reset_password": { "label": "Reset Password", diff --git a/lib/generated/locale_keys.g.dart b/lib/generated/locale_keys.g.dart index bb7f085..e190f4d 100644 --- a/lib/generated/locale_keys.g.dart +++ b/lib/generated/locale_keys.g.dart @@ -208,6 +208,15 @@ abstract class LocaleKeys { static const requestDetails = 'requestDetails'; static const approvalLevel = 'approvalLevel'; static const requesterDetails = 'requesterDetails'; + static const myAttendance = 'myAttendance'; + static const workOnBreak = 'workOnBreak'; + static const next = 'next'; + static const submit = 'submit'; + static const areYouSureYouWantToSubmit = 'areYouSureYouWantToSubmit'; + static const comments = 'comments'; + static const writeComment = 'writeComment'; + static const approversList = 'approversList'; + static const yourRequestHasBeenSubmittedForApprovals = 'yourRequestHasBeenSubmittedForApprovals'; static const profile_reset_password_label = 'profile.reset_password.label'; static const profile_reset_password_username = 'profile.reset_password.username'; static const profile_reset_password_password = 'profile.reset_password.password'; @@ -218,9 +227,5 @@ abstract class LocaleKeys { static const gender_with_arg = 'gender.with_arg'; static const gender = 'gender'; static const reset_locale = 'reset_locale'; - static const myAttendance = 'myAttendance'; - static const workOnBreak = 'workOnBreak'; - static const next = 'next'; - static const submit = 'submit'; } diff --git a/lib/models/add_att_success_list_model.dart b/lib/models/add_att_success_list_model.dart new file mode 100644 index 0000000..e33fff2 --- /dev/null +++ b/lib/models/add_att_success_list_model.dart @@ -0,0 +1,18 @@ +class AddAttSuccessList { + bool? addSuccess; + int? attachmentID; + + AddAttSuccessList({this.addSuccess, this.attachmentID}); + + AddAttSuccessList.fromJson(Map json) { + addSuccess = json['AddSuccess']; + attachmentID = json['AttachmentID']; + } + + Map toJson() { + final Map data = new Map(); + data['AddSuccess'] = this.addSuccess; + data['AttachmentID'] = this.attachmentID; + return data; + } +} \ No newline at end of file diff --git a/lib/models/add_attachment_list_model.dart b/lib/models/add_attachment_list_model.dart new file mode 100644 index 0000000..e34d80c --- /dev/null +++ b/lib/models/add_attachment_list_model.dart @@ -0,0 +1,18 @@ +class AddAttachmentList { + String? pRETURNMSG; + String? pRETURNSTATUS; + + AddAttachmentList({this.pRETURNMSG, this.pRETURNSTATUS}); + + AddAttachmentList.fromJson(Map json) { + pRETURNMSG = json['P_RETURN_MSG']; + pRETURNSTATUS = json['P_RETURN_STATUS']; + } + + Map toJson() { + final Map data = new Map(); + data['P_RETURN_MSG'] = this.pRETURNMSG; + data['P_RETURN_STATUS'] = this.pRETURNSTATUS; + return data; + } +} \ No newline at end of file diff --git a/lib/models/attachment_model.dart b/lib/models/attachment_model.dart new file mode 100644 index 0000000..eb51dcf --- /dev/null +++ b/lib/models/attachment_model.dart @@ -0,0 +1,27 @@ +class AttachmentModel { + int? attachmentID; + String? pFILECONTENTTYPE; + String? pFILEDATA; + String? pFILENAME; + int? pTRANSACTIONID; + + AttachmentModel({this.attachmentID, this.pFILECONTENTTYPE, this.pFILEDATA, this.pFILENAME, this.pTRANSACTIONID}); + + AttachmentModel.fromJson(Map json) { + attachmentID = json['AttachmentID']; + pFILECONTENTTYPE = json['P_FILE_CONTENT_TYPE']; + pFILEDATA = json['P_FILE_DATA']; + pFILENAME = json['P_FILE_NAME']; + pTRANSACTIONID = json['P_TRANSACTION_ID']; + } + + Map toJson() { + final Map data = new Map(); + data['AttachmentID'] = this.attachmentID; + data['P_FILE_CONTENT_TYPE'] = this.pFILECONTENTTYPE; + data['P_FILE_DATA'] = this.pFILEDATA; + data['P_FILE_NAME'] = this.pFILENAME; + data['P_TRANSACTION_ID'] = this.pTRANSACTIONID; + return data; + } +} diff --git a/lib/models/generic_response_model.dart b/lib/models/generic_response_model.dart index de0404d..2e510a8 100644 --- a/lib/models/generic_response_model.dart +++ b/lib/models/generic_response_model.dart @@ -1,3 +1,5 @@ +import 'package:mohem_flutter_app/models/add_att_success_list_model.dart'; +import 'package:mohem_flutter_app/models/add_attachment_list_model.dart'; import 'package:mohem_flutter_app/models/get_absence_collection_notification_body_list_model.dart'; import 'package:mohem_flutter_app/models/get_action_history_list_model.dart'; import 'package:mohem_flutter_app/models/get_approves_list_model.dart'; @@ -18,6 +20,7 @@ import 'package:mohem_flutter_app/models/get_stamp_ns_notification_body_list_mod import 'package:mohem_flutter_app/models/member_login_list_model.dart'; import 'package:mohem_flutter_app/models/notification_action_model.dart'; import 'package:mohem_flutter_app/models/notification_get_respond_attributes_list_model.dart'; +import 'package:mohem_flutter_app/models/start_eit_approval_process_model.dart'; import 'package:mohem_flutter_app/models/submit_eit_transaction_list_model.dart'; import 'package:mohem_flutter_app/models/subordinates_on_leaves_model.dart'; import 'package:mohem_flutter_app/models/validate_eit_transaction_list_model.dart'; @@ -61,8 +64,8 @@ class GenericResponseModel { String? successMsg; String? successMsgN; String? vidaUpdatedResponse; - String? addAttSuccessList; - String? addAttachmentList; + List? addAttSuccessList; + AddAttachmentList? addAttachmentList; String? bCDomain; String? bCLogo; BasicMemberInformationModel? basicMemberInformation; @@ -246,7 +249,7 @@ class GenericResponseModel { String? startBasicDetApprProcessList; String? startCeiApprovalProcess; String? startContactApprovalProcessList; - String? startEitApprovalProcess; + StartEitApprovalProcess? startEitApprovalProcess; String? startHrApprovalProcessList; String? startPhonesApprovalProcessList; String? startSitApprovalProcess; @@ -567,8 +570,13 @@ class GenericResponseModel { successMsg = json['SuccessMsg']; successMsgN = json['SuccessMsgN']; vidaUpdatedResponse = json['VidaUpdatedResponse']; - addAttSuccessList = json['AddAttSuccessList']; - addAttachmentList = json['AddAttachment_List']; + if (json['AddAttSuccessList'] != null) { + addAttSuccessList = []; + json['AddAttSuccessList'].forEach((v) { + addAttSuccessList!.add(new AddAttSuccessList.fromJson(v)); + }); + } + addAttachmentList = json['AddAttachment_List'] != null ? new AddAttachmentList.fromJson(json['AddAttachment_List']) : null; bCDomain = json['BC_Domain']; bCLogo = json['BC_Logo']; basicMemberInformation = json['BasicMemberInformation'] != null ? new BasicMemberInformationModel.fromJson(json['BasicMemberInformation']) : null; @@ -886,7 +894,8 @@ class GenericResponseModel { startBasicDetApprProcessList = json['StartBasicDetApprProcessList']; startCeiApprovalProcess = json['StartCeiApprovalProcess']; startContactApprovalProcessList = json['StartContactApprovalProcessList']; - startEitApprovalProcess = json['StartEitApprovalProcess']; + + startEitApprovalProcess = json['StartEitApprovalProcess'] != null ? new StartEitApprovalProcess.fromJson(json['StartEitApprovalProcess']) : null; startHrApprovalProcessList = json['StartHrApprovalProcessList']; startPhonesApprovalProcessList = json['StartPhonesApprovalProcessList']; startSitApprovalProcess = json['StartSitApprovalProcess']; @@ -966,8 +975,14 @@ class GenericResponseModel { data['SuccessMsg'] = this.successMsg; data['SuccessMsgN'] = this.successMsgN; data['VidaUpdatedResponse'] = this.vidaUpdatedResponse; - data['AddAttSuccessList'] = this.addAttSuccessList; - data['AddAttachment_List'] = this.addAttachmentList; + + if (this.addAttSuccessList != null) { + data['AddAttSuccessList'] = this.addAttSuccessList!.map((v) => v.toJson()).toList(); + } + if (this.addAttachmentList != null) { + data['AddAttachment_List'] = this.addAttachmentList!.toJson(); + } + data['BC_Domain'] = this.bCDomain; data['BC_Logo'] = this.bCLogo; if (this.basicMemberInformation != null) { @@ -1231,7 +1246,10 @@ class GenericResponseModel { data['StartBasicDetApprProcessList'] = this.startBasicDetApprProcessList; data['StartCeiApprovalProcess'] = this.startCeiApprovalProcess; data['StartContactApprovalProcessList'] = this.startContactApprovalProcessList; - data['StartEitApprovalProcess'] = this.startEitApprovalProcess; + + if (this.startEitApprovalProcess != null) { + data['StartEitApprovalProcess'] = this.startEitApprovalProcess!.toJson(); + } data['StartHrApprovalProcessList'] = this.startHrApprovalProcessList; data['StartPhonesApprovalProcessList'] = this.startPhonesApprovalProcessList; data['StartSitApprovalProcess'] = this.startSitApprovalProcess; diff --git a/lib/models/start_eit_approval_process_model.dart b/lib/models/start_eit_approval_process_model.dart new file mode 100644 index 0000000..f49043b --- /dev/null +++ b/lib/models/start_eit_approval_process_model.dart @@ -0,0 +1,18 @@ +class StartEitApprovalProcess { + String? pRETURNMSG; + String? pRETURNSTATUS; + + StartEitApprovalProcess({this.pRETURNMSG, this.pRETURNSTATUS}); + + StartEitApprovalProcess.fromJson(Map json) { + pRETURNMSG = json['P_RETURN_MSG']; + pRETURNSTATUS = json['P_RETURN_STATUS']; + } + + Map toJson() { + final Map data = new Map(); + data['P_RETURN_MSG'] = this.pRETURNMSG; + data['P_RETURN_STATUS'] = this.pRETURNSTATUS; + return data; + } +} \ No newline at end of file diff --git a/lib/ui/misc/request_submit_screen.dart b/lib/ui/misc/request_submit_screen.dart index c57ce6b..196ee01 100644 --- a/lib/ui/misc/request_submit_screen.dart +++ b/lib/ui/misc/request_submit_screen.dart @@ -1,3 +1,4 @@ +import 'dart:convert'; import 'dart:io'; import 'package:easy_localization/easy_localization.dart'; @@ -6,22 +7,26 @@ import 'package:flutter/material.dart'; import 'package:mohem_flutter_app/api/my_attendance_api_client.dart'; import 'package:mohem_flutter_app/classes/colors.dart'; import 'package:mohem_flutter_app/classes/utils.dart'; +import 'package:mohem_flutter_app/config/routes.dart'; import 'package:mohem_flutter_app/extensions/int_extensions.dart'; import 'package:mohem_flutter_app/extensions/string_extensions.dart'; import 'package:mohem_flutter_app/extensions/widget_extensions.dart'; import 'package:mohem_flutter_app/generated/locale_keys.g.dart'; +import 'package:mohem_flutter_app/models/attachment_model.dart'; import 'package:mohem_flutter_app/models/get_approves_list_model.dart'; import 'package:mohem_flutter_app/widgets/app_bar_widget.dart'; import 'package:mohem_flutter_app/widgets/button/default_button.dart'; import 'package:mohem_flutter_app/widgets/button/simple_button.dart'; import 'package:mohem_flutter_app/widgets/circular_avatar.dart'; +import 'package:mohem_flutter_app/widgets/dialogs/confirm_dialog.dart'; import 'package:mohem_flutter_app/widgets/input_widget.dart'; class RequestSubmitScreenParams { String title; int transactionId; + String pItemId; - RequestSubmitScreenParams(this.title, this.transactionId); + RequestSubmitScreenParams(this.title, this.transactionId, this.pItemId); } class RequestSubmitScreen extends StatefulWidget { @@ -35,6 +40,7 @@ class RequestSubmitScreen extends StatefulWidget { class _RequestSubmitScreenState extends State { RequestSubmitScreenParams? params; + TextEditingController comments = TextEditingController(); List approverList = []; List attachmentFiles = []; @@ -57,6 +63,44 @@ class _RequestSubmitScreenState extends State { } } + void submitRequest() async { + try { + Utils.showLoading(context); + List> list = []; + if (attachmentFiles.isNotEmpty) { + attachmentFiles.asMap().forEach((index, value) async { + String type = value.path.split('.').last; + String name = value.path.split('/').last; + List fileContent = await value.readAsBytes(); + String encodedFile = base64Encode(fileContent); + list.add(AttachmentModel( + attachmentID: index, + pFILECONTENTTYPE: type, + pFILENAME: name, + pFILEDATA: encodedFile, + pTRANSACTIONID: params!.transactionId, + ).toJson()); + }); + } + await MyAttendanceApiClient().addAttachment(list); + await MyAttendanceApiClient().startEitApprovalProcess( + "SUBMIT", + comments.text, + params!.pItemId, + params!.transactionId, + ); + Utils.hideLoading(context); + Utils.showToast(LocaleKeys.yourRequestHasBeenSubmittedForApprovals.tr()); + Navigator.of(context).popUntil((route) { + return route.settings.name == AppRoutes.dashboard; + }); + Navigator.pushNamed(context, AppRoutes.workList); + } catch (ex) { + Utils.hideLoading(context); + Utils.handleException(ex, context, null); + } + } + @override void dispose() { super.dispose(); @@ -83,9 +127,9 @@ class _RequestSubmitScreenState extends State { attachmentView("Attachments"), 14.height, InputWidget( - "Comments", - "Write a comment", - TextEditingController(), + LocaleKeys.comments.tr(), + LocaleKeys.writeComment.tr(), + comments, isBackgroundEnable: true, lines: 3, onChange: (String note) { @@ -93,7 +137,7 @@ class _RequestSubmitScreenState extends State { }, ), //.objectContainerView(title: "Comments"), 14.height, - "Approvers List".toSectionHeading(), + LocaleKeys.approversList.tr().toSectionHeading(), 14.height, ListView.separated( shrinkWrap: true, @@ -109,7 +153,16 @@ class _RequestSubmitScreenState extends State { DefaultButton( LocaleKeys.submit.tr(), () { - //Navigator.of(context).pushNamed(LOGIN_TYPE) + showDialog( + context: context, + builder: (cxt) => ConfirmDialog( + message: LocaleKeys.areYouSureYouWantToSubmit.tr(), + onTap: () { + Navigator.pop(context); + submitRequest(); + }, + ), + ); }, ).insideContainer, ], diff --git a/lib/ui/my_attendance/dynamic_screens/dynamic_input_screen.dart b/lib/ui/my_attendance/dynamic_screens/dynamic_input_screen.dart index bdbc1d6..f855c67 100644 --- a/lib/ui/my_attendance/dynamic_screens/dynamic_input_screen.dart +++ b/lib/ui/my_attendance/dynamic_screens/dynamic_input_screen.dart @@ -67,30 +67,32 @@ class _DynamicInputScreenState extends State { tempVar = DateFormat('yyyy/MM/dd HH:mm:ss').format(date); } } - return ValidateEitTransactionModel(dATEVALUE: null, nAME: e.aPPLICATIONCOLUMNNAME, nUMBERVALUE: null, tRANSACTIONNUMBER: 2, vARCHAR2VALUE: tempVar).toJson(); + return ValidateEitTransactionModel(dATEVALUE: null, nAME: e.aPPLICATIONCOLUMNNAME, nUMBERVALUE: null, tRANSACTIONNUMBER: 1, vARCHAR2VALUE: tempVar.toString()).toJson(); }).toList(); + + values.add(ValidateEitTransactionModel(dATEVALUE: null, nAME: "PEI_ACTION", nUMBERVALUE: null, tRANSACTIONNUMBER: 1, vARCHAR2VALUE: "NEW_ROW").toJson()); + values.add(ValidateEitTransactionModel(dATEVALUE: null, nAME: "PEI_EXTRA_INFO_ID", nUMBERVALUE: -1, tRANSACTIONNUMBER: 1, vARCHAR2VALUE: null).toJson()); + values.add(ValidateEitTransactionModel(dATEVALUE: null, nAME: "PEI_OBJECT_VERSION_NUMBER", nUMBERVALUE: 0, tRANSACTIONNUMBER: 1, vARCHAR2VALUE: null).toJson()); values.forEach((element) { print(element); }); - - values.add(ValidateEitTransactionModel(dATEVALUE: null, nAME: "PEI_ACTION", nUMBERVALUE: null, tRANSACTIONNUMBER: 2, vARCHAR2VALUE: "NEW_ROW").toJson()); - values.add(ValidateEitTransactionModel(dATEVALUE: null, nAME: "PEI_EXTRA_INFO_ID", nUMBERVALUE: -1, tRANSACTIONNUMBER: 2, vARCHAR2VALUE: null).toJson()); - values.add(ValidateEitTransactionModel(dATEVALUE: null, nAME: "PEI_OBJECT_VERSION_NUMBER", nUMBERVALUE: 0, tRANSACTIONNUMBER: 2, vARCHAR2VALUE: null).toJson()); - - genericResponseModel = await MyAttendanceApiClient().validateEitTransaction(genericResponseModel!.pDESCFLEXCONTEXTCODE!, dynamicParams!.dynamicId, values); - SubmitEITTransactionList submitEITTransactionList = await MyAttendanceApiClient().submitEitTransaction(genericResponseModel!.pDESCFLEXCONTEXTCODE!, dynamicParams!.dynamicId, values); + genericResponseModel = await MyAttendanceApiClient().validateEitTransaction(dESCFLEXCONTEXTCODE, dynamicParams!.dynamicId, values); + SubmitEITTransactionList submitEITTransactionList = await MyAttendanceApiClient().submitEitTransaction(dESCFLEXCONTEXTCODE, dynamicParams!.dynamicId, values); Utils.hideLoading(context); - Navigator.pushNamed(context, AppRoutes.requestSubmitScreen, arguments: RequestSubmitScreenParams("title", submitEITTransactionList.pTRANSACTIONID!)); + Navigator.pushNamed(context, AppRoutes.requestSubmitScreen, arguments: RequestSubmitScreenParams("title", submitEITTransactionList.pTRANSACTIONID!, submitEITTransactionList.pITEMKEY!)); } catch (ex) { Utils.hideLoading(context); Utils.handleException(ex, context, null); } } + String dESCFLEXCONTEXTCODE = ""; + void calGetValueSetValues(GetEITDFFStructureList structureList) async { try { Utils.showLoading(context); String segmentId = structureList.cHILDSEGMENTSVS!; + dESCFLEXCONTEXTCODE = structureList.dESCFLEXCONTEXTCODE!; List filteredList = getEitDffStructureList?.where((element) => element.cHILDSEGMENTSVS == segmentId).toList() ?? []; List> values = filteredList @@ -269,9 +271,8 @@ class _DynamicInputScreenState extends State { //DateTime.parse(getEitDffStructureList![index].eSERVICESDV!.pVALUECOLUMNNAME!); } TimeOfDay _time = await _selectTime(context); - // TimeOfDay.fromDateTime(time) - - String time = DateFormat('HH:mm').format(DateFormat("hh:mm a").parse(_time.format(context))).trim(); + DateTime tempTime = DateTime(0, 1, 1, _time.hour, _time.minute); + String time = DateFormat('HH:mm').format(tempTime).trim(); // DateTime date1 = DateTime(date.year, date.month, date.day); // getEitDffStructureList![index].fieldAnswer = date.toString(); diff --git a/lib/ui/my_attendance/my_attendance_screen.dart b/lib/ui/my_attendance/my_attendance_screen.dart index e00a5c6..8e6ab0c 100644 --- a/lib/ui/my_attendance/my_attendance_screen.dart +++ b/lib/ui/my_attendance/my_attendance_screen.dart @@ -45,7 +45,7 @@ class MyAttendanceScreen extends StatelessWidget { "assets/images/pdf.svg", LocaleKeys.workOnBreak.tr(), ).onPress(() { - Navigator.pushNamed(context, AppRoutes.requestSubmitScreen, arguments: RequestSubmitScreenParams("title", 8724807)); + // Navigator.pushNamed(context, AppRoutes.requestSubmitScreen, arguments: RequestSubmitScreenParams("title", 8724807)); }), ], ).paddingAll(21)),