From ee2c74b5dada0fbc80f53a1c0a760aa14972b2d4 Mon Sep 17 00:00:00 2001 From: Sikander Saleem Date: Thu, 1 Sep 2022 09:31:29 +0300 Subject: [PATCH] leave balance submit request added. --- lib/api/leave_balance_api_client.dart | 16 ++++++++++++++++ lib/models/generic_response_model.dart | 9 ++++++--- .../start_absence_approval_proccess_model.dart | 18 ++++++++++++++++++ .../add_leave_balance_screen.dart | 2 +- lib/ui/misc/request_submit_screen.dart | 15 ++++++++++----- 5 files changed, 51 insertions(+), 9 deletions(-) create mode 100644 lib/models/leave_balance/start_absence_approval_proccess_model.dart diff --git a/lib/api/leave_balance_api_client.dart b/lib/api/leave_balance_api_client.dart index e24b47d..cd577ba 100644 --- a/lib/api/leave_balance_api_client.dart +++ b/lib/api/leave_balance_api_client.dart @@ -7,6 +7,7 @@ import 'package:mohem_flutter_app/models/leave_balance/cancel_hr_transaction_lis import 'package:mohem_flutter_app/models/leave_balance/get_absence_attendance_types_list_model.dart'; import 'package:mohem_flutter_app/models/leave_balance/get_absence_dff_structure_list_model.dart'; import 'package:mohem_flutter_app/models/leave_balance/get_absence_transaction_list_model.dart'; +import 'package:mohem_flutter_app/models/leave_balance/start_absence_approval_proccess_model.dart'; import 'package:mohem_flutter_app/models/leave_balance/sumbit_absence_transaction_list_model.dart'; class LeaveBalanceApiClient { @@ -127,4 +128,19 @@ class LeaveBalanceApiClient { return responseData.cancelHRTransactionLIst!; }, url, postParams); } + + Future startAbsenceApprovalProcess(int pTransactionID, String comments, int pSelectedResopID) async { + String url = "${ApiConsts.erpRest}START_ABSENCE_APPROVAL_PROCESS"; + Map postParams = { + "P_TRANSACTION_ID": pTransactionID, + "P_SELECTED_RESP_ID": pSelectedResopID, + "P_COMMENTS": comments, + "P_MENU_TYPE": "E", + }; + postParams.addAll(AppState().postParamsJson); + return await ApiClient().postJsonForObject((json) { + GenericResponseModel? responseData = GenericResponseModel.fromJson(json); + return responseData.startAbsenceApprovalProccess!; + }, url, postParams); + } } diff --git a/lib/models/generic_response_model.dart b/lib/models/generic_response_model.dart index 31e52fb..5fca9a3 100644 --- a/lib/models/generic_response_model.dart +++ b/lib/models/generic_response_model.dart @@ -38,6 +38,7 @@ import 'package:mohem_flutter_app/models/leave_balance/cancel_hr_transaction_lis import 'package:mohem_flutter_app/models/leave_balance/get_absence_attendance_types_list_model.dart'; import 'package:mohem_flutter_app/models/leave_balance/get_absence_dff_structure_list_model.dart'; import 'package:mohem_flutter_app/models/leave_balance/get_absence_transaction_list_model.dart'; +import 'package:mohem_flutter_app/models/leave_balance/start_absence_approval_proccess_model.dart'; import 'package:mohem_flutter_app/models/leave_balance/sumbit_absence_transaction_list_model.dart'; import 'package:mohem_flutter_app/models/leave_balance/validate_absence_transaction_list_model.dart'; import 'package:mohem_flutter_app/models/member_information_list_model.dart'; @@ -312,7 +313,7 @@ class GenericResponseModel { String? resubmitHrTransactionList; String? sFHGetPoNotificationBodyList; String? sFHGetPrNotificationBodyList; - String? startAbsenceApprovalProccess; + StartAbsenceApprovalProccess? startAbsenceApprovalProccess; StartAddressApprovalProcess? startAddressApprovalProcessList; String? startBasicDetApprProcessList; String? startCeiApprovalProcess; @@ -1215,7 +1216,7 @@ class GenericResponseModel { resubmitHrTransactionList = json['ResubmitHrTransactionList']; sFHGetPoNotificationBodyList = json['SFH_GetPoNotificationBodyList']; sFHGetPrNotificationBodyList = json['SFH_GetPrNotificationBodyList']; - startAbsenceApprovalProccess = json['StartAbsenceApprovalProccess']; + startAbsenceApprovalProccess = json['StartAbsenceApprovalProccess'] != null ? StartAbsenceApprovalProccess.fromJson(json['StartAbsenceApprovalProccess']) : null; startAddressApprovalProcessList = json['StartAddressApprovalProcessList'] != null ? StartAddressApprovalProcess.fromJson(json['StartAddressApprovalProcessList']) : null; startBasicDetApprProcessList = json['StartBasicDetApprProcessList']; @@ -1650,7 +1651,9 @@ class GenericResponseModel { data['ResubmitHrTransactionList'] = this.resubmitHrTransactionList; data['SFH_GetPoNotificationBodyList'] = this.sFHGetPoNotificationBodyList; data['SFH_GetPrNotificationBodyList'] = this.sFHGetPrNotificationBodyList; - data['StartAbsenceApprovalProccess'] = this.startAbsenceApprovalProccess; + if (this.startAbsenceApprovalProccess != null) { + data['StartAbsenceApprovalProccess'] = this.startAbsenceApprovalProccess!.toJson(); + } data['StartAddressApprovalProcessList'] = this.startAddressApprovalProcessList; data['StartBasicDetApprProcessList'] = this.startBasicDetApprProcessList; data['StartCeiApprovalProcess'] = this.startCeiApprovalProcess; diff --git a/lib/models/leave_balance/start_absence_approval_proccess_model.dart b/lib/models/leave_balance/start_absence_approval_proccess_model.dart new file mode 100644 index 0000000..ca27cb1 --- /dev/null +++ b/lib/models/leave_balance/start_absence_approval_proccess_model.dart @@ -0,0 +1,18 @@ +class StartAbsenceApprovalProccess { + String? pRETURNMSG; + String? pRETURNSTATUS; + + StartAbsenceApprovalProccess({this.pRETURNMSG, this.pRETURNSTATUS}); + + StartAbsenceApprovalProccess.fromJson(Map json) { + pRETURNMSG = json['P_RETURN_MSG']; + pRETURNSTATUS = json['P_RETURN_STATUS']; + } + + Map toJson() { + Map data = new Map(); + data['P_RETURN_MSG'] = this.pRETURNMSG; + data['P_RETURN_STATUS'] = this.pRETURNSTATUS; + return data; + } +} diff --git a/lib/ui/leave_balance/add_leave_balance_screen.dart b/lib/ui/leave_balance/add_leave_balance_screen.dart index 0703caf..dc44085 100644 --- a/lib/ui/leave_balance/add_leave_balance_screen.dart +++ b/lib/ui/leave_balance/add_leave_balance_screen.dart @@ -125,7 +125,7 @@ class _AddLeaveBalanceScreenState extends State { Utils.hideLoading(context); - await Navigator.pushNamed(context, AppRoutes.requestSubmitScreen, arguments: RequestSubmitScreenParams(LocaleKeys.submit.tr(), submit.pTRANSACTIONID!, "", '')); + await Navigator.pushNamed(context, AppRoutes.requestSubmitScreen, arguments: RequestSubmitScreenParams(LocaleKeys.submit.tr(), submit.pTRANSACTIONID!, "", "add_leave_balance")); Utils.showLoading(context); await LeaveBalanceApiClient().cancelHrTransaction(submit.pTRANSACTIONID!); Utils.hideLoading(context); diff --git a/lib/ui/misc/request_submit_screen.dart b/lib/ui/misc/request_submit_screen.dart index dd3d68f..ba69ee8 100644 --- a/lib/ui/misc/request_submit_screen.dart +++ b/lib/ui/misc/request_submit_screen.dart @@ -4,6 +4,7 @@ import 'dart:io'; import 'package:easy_localization/easy_localization.dart'; import 'package:file_picker/file_picker.dart'; import 'package:flutter/material.dart'; +import 'package:mohem_flutter_app/api/leave_balance_api_client.dart'; import 'package:mohem_flutter_app/api/my_attendance_api_client.dart'; import 'package:mohem_flutter_app/api/profile_api_client.dart'; import 'package:mohem_flutter_app/classes/colors.dart'; @@ -114,20 +115,24 @@ class _RequestSubmitScreenState extends State { params!.pItemId, params!.transactionId, ); - } else { + } else if (params!.approvalFlag == 'add_leave_balance') { + await LeaveBalanceApiClient().startAbsenceApprovalProcess( + params!.transactionId, + comments.text, + -999, + ); + } else if (params!.approvalFlag == 'eit') { await MyAttendanceApiClient().startEitApprovalProcess( LocaleKeys.submit.tr(), comments.text, params!.pItemId, params!.transactionId, ); - } + } else {} Utils.hideLoading(context); Utils.showToast(LocaleKeys.yourRequestHasBeenSubmittedForApprovals.tr(), longDuration: true); - Navigator.of(context).popUntil((route) { - return route.settings.name == AppRoutes.dashboard; - }); + Navigator.of(context).popUntil((route) => route.settings.name == AppRoutes.dashboard); Navigator.pushNamed(context, AppRoutes.workList); } catch (ex) { Utils.hideLoading(context);