diff --git a/lib/api/leave_balance_api_client.dart b/lib/api/leave_balance_api_client.dart index 186c730..73793b3 100644 --- a/lib/api/leave_balance_api_client.dart +++ b/lib/api/leave_balance_api_client.dart @@ -2,6 +2,7 @@ import 'package:mohem_flutter_app/api/api_client.dart'; import 'package:mohem_flutter_app/app_state/app_state.dart'; import 'package:mohem_flutter_app/classes/consts.dart'; import 'package:mohem_flutter_app/models/generic_response_model.dart'; +import 'package:mohem_flutter_app/models/leave_balance/calculate_absence_duration_model.dart'; 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'; @@ -33,6 +34,24 @@ class LeaveBalanceApiClient { }, url, postParams); } + Future calculateAbsenceDuration(int pAbsenceAttendanceTypeID, String pDateStart, String pDateEnd, int pSelectedResopID) async { + String url = "${ApiConsts.erpRest}CALCULATE_ABSENCE_DURATION"; + Map postParams = { + "P_ABSENCE_ATTENDANCE_TYPE_ID": pAbsenceAttendanceTypeID, + "P_DATE_END": pDateStart, //"29-Sep-2022", + "P_DATE_START": pDateEnd, + "P_SELECTED_RESP_ID": pSelectedResopID, + "P_MENU_TYPE": "E", + "P_TIME_END": null, + "P_TIME_START": null, + }; + postParams.addAll(AppState().postParamsJson); + return await ApiClient().postJsonForObject((json) { + GenericResponseModel? responseData = GenericResponseModel.fromJson(json); + return responseData.calculateAbsenceDuration!; + }, url, postParams); + } + Future> getAbsenceDffStructure(String pDescFlexContextCode, String pFunctionName, int pSelectedResopID) async { String url = "${ApiConsts.erpRest}GET_ABSENCE_DFF_STRUCTURE"; Map postParams = {"P_DESC_FLEX_CONTEXT_CODE": pDescFlexContextCode, "P_FUNCTION_NAME": pFunctionName, "P_MENU_TYPE": "E", "P_SELECTED_RESP_ID": pSelectedResopID}; @@ -42,4 +61,58 @@ class LeaveBalanceApiClient { return responseData.getAbsenceDffStructureList ?? []; }, url, postParams); } + + Future validateAbsenceTransaction( + String pDescFlexContextCode, String pFunctionName, int pAbsenceAttendanceTypeID, String pReplacementUserName, String pDateStart, String pDateEnd, int pSelectedResopID, Map data, + {String comments = ""}) async { + String url = "${ApiConsts.erpRest}VALIDATE_ABSENCE_TRANSACTION"; + Map postParams = { + "P_DESC_FLEX_CONTEXT_CODE": pDescFlexContextCode, + "P_FUNCTION_NAME": pFunctionName, + "P_REPLACEMENT_USER_NAME": pReplacementUserName, + "P_ABSENCE_ACTION": "CREATE", + "P_ABSENCE_COMMENTS": comments, + "P_ABSENCE_ATTENDANCE_ID": pAbsenceAttendanceTypeID, + "P_ABSENCE_ATTENDANCE_TYPE_ID": pAbsenceAttendanceTypeID, + "P_DATE_END": pDateStart, //"29-Sep-2022", + "P_DATE_START": pDateEnd, + "P_SELECTED_RESP_ID": pSelectedResopID, + "P_MENU_TYPE": "E", + "P_TIME_END": null, + "P_TIME_START": null, + }; + postParams.addAll(data); + postParams.addAll(AppState().postParamsJson); + return await ApiClient().postJsonForObject((json) { + GenericResponseModel? responseData = GenericResponseModel.fromJson(json); + return responseData; + }, url, postParams); + } + + Future submitAbsenceTransaction( + String pDescFlexContextCode, String pFunctionName, int pAbsenceAttendanceTypeID, String pReplacementUserName, String pDateStart, String pDateEnd, int pSelectedResopID, Map data, + {String comments = ""}) async { + String url = "${ApiConsts.erpRest}SUBMIT_ABSENCE_TRANSACTION"; + Map postParams = { + "P_DESC_FLEX_CONTEXT_CODE": pDescFlexContextCode, + "P_FUNCTION_NAME": pFunctionName, + "P_REPLACEMENT_USER_NAME": pReplacementUserName, + "P_ABSENCE_ACTION": "CREATE", + "P_ABSENCE_COMMENTS": comments, + "P_ABSENCE_ATTENDANCE_ID": pAbsenceAttendanceTypeID, + "P_ABSENCE_ATTENDANCE_TYPE_ID": pAbsenceAttendanceTypeID, + "P_DATE_END": pDateStart, //"29-Sep-2022", + "P_DATE_START": pDateEnd, + "P_SELECTED_RESP_ID": pSelectedResopID, + "P_MENU_TYPE": "E", + "P_TIME_END": null, + "P_TIME_START": null, + }; + postParams.addAll(data); + postParams.addAll(AppState().postParamsJson); + return await ApiClient().postJsonForObject((json) { + GenericResponseModel? responseData = GenericResponseModel.fromJson(json); + return responseData; + }, url, postParams); + } } diff --git a/lib/models/generic_response_model.dart b/lib/models/generic_response_model.dart index c8cc86f..97d005c 100644 --- a/lib/models/generic_response_model.dart +++ b/lib/models/generic_response_model.dart @@ -33,6 +33,7 @@ import 'package:mohem_flutter_app/models/get_stamp_ms_notification_body_list_mod import 'package:mohem_flutter_app/models/get_stamp_ns_notification_body_list_model.dart'; import 'package:mohem_flutter_app/models/get_time_card_summary_list_model.dart'; import 'package:mohem_flutter_app/models/get_user_item_type_list.dart'; +import 'package:mohem_flutter_app/models/leave_balance/calculate_absence_duration_model.dart'; 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'; @@ -72,9 +73,9 @@ import 'package:mohem_flutter_app/models/start_eit_approval_process_model.dart'; import 'package:mohem_flutter_app/models/start_phone_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/vacation_rule/create_vacation_rule_list_model.dart'; import 'package:mohem_flutter_app/models/update_item_type_success_list.dart'; import 'package:mohem_flutter_app/models/update_user_item_type_list.dart'; +import 'package:mohem_flutter_app/models/vacation_rule/create_vacation_rule_list_model.dart'; import 'package:mohem_flutter_app/models/vacation_rule/get_item_type_notifications_list_model.dart'; import 'package:mohem_flutter_app/models/vacation_rule/get_notification_reassign_mode_list_model.dart'; import 'package:mohem_flutter_app/models/vacation_rule/get_vacation_rules_list_model.dart'; @@ -123,7 +124,7 @@ class GenericResponseModel { String? bCLogo; BasicMemberInformationModel? basicMemberInformation; bool? businessCardPrivilege; - String? calculateAbsenceDuration; + CalculateAbsenceDuration? calculateAbsenceDuration; String? cancelHRTransactionLIst; String? chatEmployeeLoginList; String? companyBadge; @@ -655,7 +656,7 @@ class GenericResponseModel { bCLogo = json['BC_Logo']; basicMemberInformation = json['BasicMemberInformation'] != null ? BasicMemberInformationModel.fromJson(json['BasicMemberInformation']) : null; businessCardPrivilege = json['BusinessCardPrivilege']; - calculateAbsenceDuration = json['CalculateAbsenceDuration']; + calculateAbsenceDuration = json['CalculateAbsenceDuration'] != null ? new CalculateAbsenceDuration.fromJson(json['CalculateAbsenceDuration']) : null; cancelHRTransactionLIst = json['CancelHRTransactionLIst']; chatEmployeeLoginList = json['Chat_EmployeeLoginList']; companyBadge = json['CompanyBadge']; @@ -857,8 +858,7 @@ class GenericResponseModel { if (json['GetEmployeeSubordinatesList'] != null) { getEmployeeSubordinatesList = []; json['GetEmployeeSubordinatesList'].forEach((v) { - getEmployeeSubordinatesList! - .add(new GetEmployeeSubordinatesList.fromJson(v)); + getEmployeeSubordinatesList!.add(new GetEmployeeSubordinatesList.fromJson(v)); }); } getFliexfieldStructureList = json['GetFliexfieldStructureList']; @@ -1253,13 +1253,10 @@ class GenericResponseModel { if (json['UpdateItemTypeSuccessList'] != null) { updateItemTypeSuccessList = []; json['UpdateItemTypeSuccessList'].forEach((v) { - updateItemTypeSuccessList! - .add(new UpdateItemTypeSuccessList.fromJson(v)); + updateItemTypeSuccessList!.add(new UpdateItemTypeSuccessList.fromJson(v)); }); } - updateUserItemTypesList = json['UpdateUserItemTypesList'] != null - ? new UpdateUserItemTypesList.fromJson(json['UpdateUserItemTypesList']) - : null; + updateUserItemTypesList = json['UpdateUserItemTypesList'] != null ? new UpdateUserItemTypesList.fromJson(json['UpdateUserItemTypesList']) : null; updateVacationRuleList = json['UpdateVacationRuleList']; vHREmployeeLoginList = json['VHR_EmployeeLoginList']; vHRGetEmployeeDetailsList = json['VHR_GetEmployeeDetailsList']; @@ -1334,7 +1331,10 @@ class GenericResponseModel { data['BasicMemberInformation'] = this.basicMemberInformation!.toJson(); } data['BusinessCardPrivilege'] = this.businessCardPrivilege; - data['CalculateAbsenceDuration'] = this.calculateAbsenceDuration; + + if (this.calculateAbsenceDuration != null) { + data['CalculateAbsenceDuration'] = this.calculateAbsenceDuration!.toJson(); + } data['CancelHRTransactionLIst'] = this.cancelHRTransactionLIst; data['Chat_EmployeeLoginList'] = this.chatEmployeeLoginList; data['CompanyBadge'] = this.companyBadge; @@ -1449,8 +1449,7 @@ class GenericResponseModel { data['GetEmployeePhonesList'] = this.getEmployeePhonesList!.map((v) => v.toJson()).toList(); } if (this.getEmployeeSubordinatesList != null) { - data['GetEmployeeSubordinatesList'] = - this.getEmployeeSubordinatesList!.map((v) => v.toJson()).toList(); + data['GetEmployeeSubordinatesList'] = this.getEmployeeSubordinatesList!.map((v) => v.toJson()).toList(); } data['GetFliexfieldStructureList'] = this.getFliexfieldStructureList; data['GetHrCollectionNotificationBodyList'] = this.getHrCollectionNotificationBodyList; @@ -1689,8 +1688,7 @@ class GenericResponseModel { data['UpdateAttachmentList'] = this.updateAttachmentList; data['UpdateEmployeeImageList'] = this.updateEmployeeImageList; if (this.updateItemTypeSuccessList != null) { - data['UpdateItemTypeSuccessList'] = - this.updateItemTypeSuccessList!.map((v) => v.toJson()).toList(); + data['UpdateItemTypeSuccessList'] = this.updateItemTypeSuccessList!.map((v) => v.toJson()).toList(); } if (this.updateUserItemTypesList != null) { data['UpdateUserItemTypesList'] = this.updateUserItemTypesList!.toJson(); diff --git a/lib/models/leave_balance/calculate_absence_duration_model.dart b/lib/models/leave_balance/calculate_absence_duration_model.dart new file mode 100644 index 0000000..b16b4c3 --- /dev/null +++ b/lib/models/leave_balance/calculate_absence_duration_model.dart @@ -0,0 +1,24 @@ +class CalculateAbsenceDuration { + int? pABSENCEDAYS; + int? pABSENCEHOURS; + String? pRETURNMSG; + String? pRETURNSTATUS; + + CalculateAbsenceDuration({this.pABSENCEDAYS, this.pABSENCEHOURS, this.pRETURNMSG, this.pRETURNSTATUS}); + + CalculateAbsenceDuration.fromJson(Map json) { + pABSENCEDAYS = json['P_ABSENCE_DAYS']; + pABSENCEHOURS = json['P_ABSENCE_HOURS']; + pRETURNMSG = json['P_RETURN_MSG']; + pRETURNSTATUS = json['P_RETURN_STATUS']; + } + + Map toJson() { + Map data = new Map(); + data['P_ABSENCE_DAYS'] = this.pABSENCEDAYS; + data['P_ABSENCE_HOURS'] = this.pABSENCEHOURS; + data['P_RETURN_MSG'] = this.pRETURNMSG; + data['P_RETURN_STATUS'] = this.pRETURNSTATUS; + return data; + } +}