Merge branch 'master' into Fatima

merge-requests/1/merge
Fatimah Alshammari 3 years ago
commit 07636bef77

@ -3,9 +3,12 @@ import 'package:mohem_flutter_app/app_state/app_state.dart';
import 'package:mohem_flutter_app/classes/consts.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/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/calculate_absence_duration_model.dart';
import 'package:mohem_flutter_app/models/leave_balance/cancel_hr_transaction_list_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_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_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/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 { class LeaveBalanceApiClient {
static final LeaveBalanceApiClient _instance = LeaveBalanceApiClient._internal(); static final LeaveBalanceApiClient _instance = LeaveBalanceApiClient._internal();
@ -38,8 +41,8 @@ class LeaveBalanceApiClient {
String url = "${ApiConsts.erpRest}CALCULATE_ABSENCE_DURATION"; String url = "${ApiConsts.erpRest}CALCULATE_ABSENCE_DURATION";
Map<String, dynamic> postParams = { Map<String, dynamic> postParams = {
"P_ABSENCE_ATTENDANCE_TYPE_ID": pAbsenceAttendanceTypeID, "P_ABSENCE_ATTENDANCE_TYPE_ID": pAbsenceAttendanceTypeID,
"P_DATE_END": pDateStart, //"29-Sep-2022", "P_DATE_START": pDateStart,
"P_DATE_START": pDateEnd, "P_DATE_END": pDateEnd,
"P_SELECTED_RESP_ID": pSelectedResopID, "P_SELECTED_RESP_ID": pSelectedResopID,
"P_MENU_TYPE": "E", "P_MENU_TYPE": "E",
"P_TIME_END": null, "P_TIME_END": null,
@ -63,7 +66,7 @@ class LeaveBalanceApiClient {
} }
Future<GenericResponseModel> validateAbsenceTransaction( Future<GenericResponseModel> validateAbsenceTransaction(
String pDescFlexContextCode, String pFunctionName, int pAbsenceAttendanceTypeID, String pReplacementUserName, String pDateStart, String pDateEnd, int pSelectedResopID, Map<String, String> data, String pDescFlexContextCode, String pFunctionName, int pAbsenceAttendanceTypeID, String pReplacementUserName, String pDateStart, String pDateEnd, int pSelectedResopID, Map<String, String?> data,
{String comments = ""}) async { {String comments = ""}) async {
String url = "${ApiConsts.erpRest}VALIDATE_ABSENCE_TRANSACTION"; String url = "${ApiConsts.erpRest}VALIDATE_ABSENCE_TRANSACTION";
Map<String, dynamic> postParams = { Map<String, dynamic> postParams = {
@ -74,8 +77,8 @@ class LeaveBalanceApiClient {
"P_ABSENCE_COMMENTS": comments, "P_ABSENCE_COMMENTS": comments,
"P_ABSENCE_ATTENDANCE_ID": pAbsenceAttendanceTypeID, "P_ABSENCE_ATTENDANCE_ID": pAbsenceAttendanceTypeID,
"P_ABSENCE_ATTENDANCE_TYPE_ID": pAbsenceAttendanceTypeID, "P_ABSENCE_ATTENDANCE_TYPE_ID": pAbsenceAttendanceTypeID,
"P_DATE_END": pDateStart, //"29-Sep-2022", "P_DATE_START": pDateStart,
"P_DATE_START": pDateEnd, "P_DATE_END": pDateEnd, //"29-Sep-2022",
"P_SELECTED_RESP_ID": pSelectedResopID, "P_SELECTED_RESP_ID": pSelectedResopID,
"P_MENU_TYPE": "E", "P_MENU_TYPE": "E",
"P_TIME_END": null, "P_TIME_END": null,
@ -89,8 +92,8 @@ class LeaveBalanceApiClient {
}, url, postParams); }, url, postParams);
} }
Future<GenericResponseModel> submitAbsenceTransaction( Future<SumbitAbsenceTransactionList> submitAbsenceTransaction(
String pDescFlexContextCode, String pFunctionName, int pAbsenceAttendanceTypeID, String pReplacementUserName, String pDateStart, String pDateEnd, int pSelectedResopID, Map<String, String> data, String pDescFlexContextCode, String pFunctionName, int pAbsenceAttendanceTypeID, String pReplacementUserName, String pDateStart, String pDateEnd, int pSelectedResopID, Map<String, String?> data,
{String comments = ""}) async { {String comments = ""}) async {
String url = "${ApiConsts.erpRest}SUBMIT_ABSENCE_TRANSACTION"; String url = "${ApiConsts.erpRest}SUBMIT_ABSENCE_TRANSACTION";
Map<String, dynamic> postParams = { Map<String, dynamic> postParams = {
@ -101,8 +104,8 @@ class LeaveBalanceApiClient {
"P_ABSENCE_COMMENTS": comments, "P_ABSENCE_COMMENTS": comments,
"P_ABSENCE_ATTENDANCE_ID": pAbsenceAttendanceTypeID, "P_ABSENCE_ATTENDANCE_ID": pAbsenceAttendanceTypeID,
"P_ABSENCE_ATTENDANCE_TYPE_ID": pAbsenceAttendanceTypeID, "P_ABSENCE_ATTENDANCE_TYPE_ID": pAbsenceAttendanceTypeID,
"P_DATE_END": pDateStart, //"29-Sep-2022", "P_DATE_START": pDateStart,
"P_DATE_START": pDateEnd, "P_DATE_END": pDateEnd, //"29-Sep-2022",
"P_SELECTED_RESP_ID": pSelectedResopID, "P_SELECTED_RESP_ID": pSelectedResopID,
"P_MENU_TYPE": "E", "P_MENU_TYPE": "E",
"P_TIME_END": null, "P_TIME_END": null,
@ -112,7 +115,32 @@ class LeaveBalanceApiClient {
postParams.addAll(AppState().postParamsJson); postParams.addAll(AppState().postParamsJson);
return await ApiClient().postJsonForObject((json) { return await ApiClient().postJsonForObject((json) {
GenericResponseModel? responseData = GenericResponseModel.fromJson(json); GenericResponseModel? responseData = GenericResponseModel.fromJson(json);
return responseData; return responseData.sumbitAbsenceTransactionList!;
}, url, postParams);
}
Future<CancelHRTransactionLIst> cancelHrTransaction(int pTransactionID) async {
String url = "${ApiConsts.erpRest}CANCEL_HR_TRANSACTION";
Map<String, dynamic> postParams = {"P_TRANSACTION_ID": pTransactionID};
postParams.addAll(AppState().postParamsJson);
return await ApiClient().postJsonForObject((json) {
GenericResponseModel? responseData = GenericResponseModel.fromJson(json);
return responseData.cancelHRTransactionLIst!;
}, url, postParams);
}
Future<StartAbsenceApprovalProccess> startAbsenceApprovalProcess(int pTransactionID, String comments, int pSelectedResopID) async {
String url = "${ApiConsts.erpRest}START_ABSENCE_APPROVAL_PROCESS";
Map<String, dynamic> 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); }, url, postParams);
} }
} }

@ -34,9 +34,13 @@ import 'package:mohem_flutter_app/models/get_stamp_ns_notification_body_list_mod
import 'package:mohem_flutter_app/models/get_time_card_summary_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/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/calculate_absence_duration_model.dart';
import 'package:mohem_flutter_app/models/leave_balance/cancel_hr_transaction_list_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_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_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/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'; import 'package:mohem_flutter_app/models/member_information_list_model.dart';
import 'package:mohem_flutter_app/models/member_login_list_model.dart'; import 'package:mohem_flutter_app/models/member_login_list_model.dart';
import 'package:mohem_flutter_app/models/monthly_pay_slip/get_deductions_List_model.dart'; import 'package:mohem_flutter_app/models/monthly_pay_slip/get_deductions_List_model.dart';
@ -126,7 +130,7 @@ class GenericResponseModel {
BasicMemberInformationModel? basicMemberInformation; BasicMemberInformationModel? basicMemberInformation;
bool? businessCardPrivilege; bool? businessCardPrivilege;
CalculateAbsenceDuration? calculateAbsenceDuration; CalculateAbsenceDuration? calculateAbsenceDuration;
String? cancelHRTransactionLIst; CancelHRTransactionLIst? cancelHRTransactionLIst;
String? chatEmployeeLoginList; String? chatEmployeeLoginList;
String? companyBadge; String? companyBadge;
String? companyImage; String? companyImage;
@ -310,7 +314,7 @@ class GenericResponseModel {
String? resubmitHrTransactionList; String? resubmitHrTransactionList;
String? sFHGetPoNotificationBodyList; String? sFHGetPoNotificationBodyList;
String? sFHGetPrNotificationBodyList; String? sFHGetPrNotificationBodyList;
String? startAbsenceApprovalProccess; StartAbsenceApprovalProccess? startAbsenceApprovalProccess;
StartAddressApprovalProcess? startAddressApprovalProcessList; StartAddressApprovalProcess? startAddressApprovalProcessList;
String? startBasicDetApprProcessList; String? startBasicDetApprProcessList;
String? startCeiApprovalProcess; String? startCeiApprovalProcess;
@ -331,7 +335,7 @@ class GenericResponseModel {
String? submitSITTransactionList; String? submitSITTransactionList;
String? submitTermTransactionList; String? submitTermTransactionList;
List<SubordinatesLeavesList>? subordinatesOnLeavesList; List<SubordinatesLeavesList>? subordinatesOnLeavesList;
String? sumbitAbsenceTransactionList; SumbitAbsenceTransactionList? sumbitAbsenceTransactionList;
String? tokenID; String? tokenID;
String? updateAttachmentList; String? updateAttachmentList;
String? updateEmployeeImageList; String? updateEmployeeImageList;
@ -343,7 +347,7 @@ class GenericResponseModel {
String? vHRGetManagersDetailsList; String? vHRGetManagersDetailsList;
String? vHRGetProjectByCodeList; String? vHRGetProjectByCodeList;
bool? vHRIsVerificationCodeValid; bool? vHRIsVerificationCodeValid;
String? validateAbsenceTransactionList; ValidateAbsenceTransactionList? validateAbsenceTransactionList;
ValidateEITTransactionList? validateEITTransactionList; ValidateEITTransactionList? validateEITTransactionList;
String? validatePhonesTransactionList; String? validatePhonesTransactionList;
List<VrItemTypesList>? vrItemTypesList; List<VrItemTypesList>? vrItemTypesList;
@ -658,7 +662,7 @@ class GenericResponseModel {
basicMemberInformation = json['BasicMemberInformation'] != null ? BasicMemberInformationModel.fromJson(json['BasicMemberInformation']) : null; basicMemberInformation = json['BasicMemberInformation'] != null ? BasicMemberInformationModel.fromJson(json['BasicMemberInformation']) : null;
businessCardPrivilege = json['BusinessCardPrivilege']; businessCardPrivilege = json['BusinessCardPrivilege'];
calculateAbsenceDuration = json['CalculateAbsenceDuration'] != null ? new CalculateAbsenceDuration.fromJson(json['CalculateAbsenceDuration']) : null; calculateAbsenceDuration = json['CalculateAbsenceDuration'] != null ? new CalculateAbsenceDuration.fromJson(json['CalculateAbsenceDuration']) : null;
cancelHRTransactionLIst = json['CancelHRTransactionLIst']; cancelHRTransactionLIst = json['CancelHRTransactionLIst'] != null ? new CancelHRTransactionLIst.fromJson(json['CancelHRTransactionLIst']) : null;
chatEmployeeLoginList = json['Chat_EmployeeLoginList']; chatEmployeeLoginList = json['Chat_EmployeeLoginList'];
companyBadge = json['CompanyBadge']; companyBadge = json['CompanyBadge'];
companyImage = json['CompanyImage']; companyImage = json['CompanyImage'];
@ -1220,7 +1224,7 @@ class GenericResponseModel {
resubmitHrTransactionList = json['ResubmitHrTransactionList']; resubmitHrTransactionList = json['ResubmitHrTransactionList'];
sFHGetPoNotificationBodyList = json['SFH_GetPoNotificationBodyList']; sFHGetPoNotificationBodyList = json['SFH_GetPoNotificationBodyList'];
sFHGetPrNotificationBodyList = json['SFH_GetPrNotificationBodyList']; 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; startAddressApprovalProcessList = json['StartAddressApprovalProcessList'] != null ? StartAddressApprovalProcess.fromJson(json['StartAddressApprovalProcessList']) : null;
startBasicDetApprProcessList = json['StartBasicDetApprProcessList']; startBasicDetApprProcessList = json['StartBasicDetApprProcessList'];
@ -1254,7 +1258,8 @@ class GenericResponseModel {
}); });
} }
sumbitAbsenceTransactionList = json['SumbitAbsenceTransactionList']; sumbitAbsenceTransactionList = json['SumbitAbsenceTransactionList'] != null ? new SumbitAbsenceTransactionList.fromJson(json['SumbitAbsenceTransactionList']) : null;
tokenID = json['TokenID']; tokenID = json['TokenID'];
updateAttachmentList = json['UpdateAttachmentList']; updateAttachmentList = json['UpdateAttachmentList'];
updateEmployeeImageList = json['UpdateEmployeeImageList']; updateEmployeeImageList = json['UpdateEmployeeImageList'];
@ -1271,7 +1276,8 @@ class GenericResponseModel {
vHRGetManagersDetailsList = json['VHR_GetManagersDetailsList']; vHRGetManagersDetailsList = json['VHR_GetManagersDetailsList'];
vHRGetProjectByCodeList = json['VHR_GetProjectByCodeList']; vHRGetProjectByCodeList = json['VHR_GetProjectByCodeList'];
vHRIsVerificationCodeValid = json['VHR_IsVerificationCodeValid']; vHRIsVerificationCodeValid = json['VHR_IsVerificationCodeValid'];
validateAbsenceTransactionList = json['ValidateAbsenceTransactionList'];
validateAbsenceTransactionList = json['ValidateAbsenceTransactionList'] != null ? ValidateAbsenceTransactionList.fromJson(json['ValidateAbsenceTransactionList']) : null;
validateEITTransactionList = json['ValidateEITTransactionList'] != null ? ValidateEITTransactionList.fromJson(json['ValidateEITTransactionList']) : null; validateEITTransactionList = json['ValidateEITTransactionList'] != null ? ValidateEITTransactionList.fromJson(json['ValidateEITTransactionList']) : null;
@ -1339,11 +1345,12 @@ class GenericResponseModel {
data['BasicMemberInformation'] = this.basicMemberInformation!.toJson(); data['BasicMemberInformation'] = this.basicMemberInformation!.toJson();
} }
data['BusinessCardPrivilege'] = this.businessCardPrivilege; data['BusinessCardPrivilege'] = this.businessCardPrivilege;
if (this.calculateAbsenceDuration != null) { if (this.calculateAbsenceDuration != null) {
data['CalculateAbsenceDuration'] = this.calculateAbsenceDuration!.toJson(); data['CalculateAbsenceDuration'] = this.calculateAbsenceDuration!.toJson();
} }
data['CancelHRTransactionLIst'] = this.cancelHRTransactionLIst; if (this.cancelHRTransactionLIst != null) {
data['CancelHRTransactionLIst'] = this.calculateAbsenceDuration!.toJson();
}
data['Chat_EmployeeLoginList'] = this.chatEmployeeLoginList; data['Chat_EmployeeLoginList'] = this.chatEmployeeLoginList;
data['CompanyBadge'] = this.companyBadge; data['CompanyBadge'] = this.companyBadge;
data['CompanyImage'] = this.companyImage; data['CompanyImage'] = this.companyImage;
@ -1657,7 +1664,9 @@ class GenericResponseModel {
data['ResubmitHrTransactionList'] = this.resubmitHrTransactionList; data['ResubmitHrTransactionList'] = this.resubmitHrTransactionList;
data['SFH_GetPoNotificationBodyList'] = this.sFHGetPoNotificationBodyList; data['SFH_GetPoNotificationBodyList'] = this.sFHGetPoNotificationBodyList;
data['SFH_GetPrNotificationBodyList'] = this.sFHGetPrNotificationBodyList; data['SFH_GetPrNotificationBodyList'] = this.sFHGetPrNotificationBodyList;
data['StartAbsenceApprovalProccess'] = this.startAbsenceApprovalProccess; if (this.startAbsenceApprovalProccess != null) {
data['StartAbsenceApprovalProccess'] = this.startAbsenceApprovalProccess!.toJson();
}
data['StartAddressApprovalProcessList'] = this.startAddressApprovalProcessList; data['StartAddressApprovalProcessList'] = this.startAddressApprovalProcessList;
data['StartBasicDetApprProcessList'] = this.startBasicDetApprProcessList; data['StartBasicDetApprProcessList'] = this.startBasicDetApprProcessList;
data['StartCeiApprovalProcess'] = this.startCeiApprovalProcess; data['StartCeiApprovalProcess'] = this.startCeiApprovalProcess;
@ -1696,7 +1705,9 @@ class GenericResponseModel {
data['SubordinatesOnLeavesList'] = this.subordinatesOnLeavesList!.map((v) => v.toJson()).toList(); data['SubordinatesOnLeavesList'] = this.subordinatesOnLeavesList!.map((v) => v.toJson()).toList();
} }
data['SumbitAbsenceTransactionList'] = this.sumbitAbsenceTransactionList; if (this.sumbitAbsenceTransactionList != null) {
data['SumbitAbsenceTransactionList'] = this.sumbitAbsenceTransactionList!.toJson();
}
data['TokenID'] = this.tokenID; data['TokenID'] = this.tokenID;
data['UpdateAttachmentList'] = this.updateAttachmentList; data['UpdateAttachmentList'] = this.updateAttachmentList;
data['UpdateEmployeeImageList'] = this.updateEmployeeImageList; data['UpdateEmployeeImageList'] = this.updateEmployeeImageList;
@ -1712,8 +1723,10 @@ class GenericResponseModel {
data['VHR_GetManagersDetailsList'] = this.vHRGetManagersDetailsList; data['VHR_GetManagersDetailsList'] = this.vHRGetManagersDetailsList;
data['VHR_GetProjectByCodeList'] = this.vHRGetProjectByCodeList; data['VHR_GetProjectByCodeList'] = this.vHRGetProjectByCodeList;
data['VHR_IsVerificationCodeValid'] = this.vHRIsVerificationCodeValid; data['VHR_IsVerificationCodeValid'] = this.vHRIsVerificationCodeValid;
data['ValidateAbsenceTransactionList'] = this.validateAbsenceTransactionList;
if (validateAbsenceTransactionList != null) {
data['ValidateAbsenceTransactionList'] = validateAbsenceTransactionList!.toJson();
}
if (validateEITTransactionList != null) { if (validateEITTransactionList != null) {
data['ValidateEITTransactionList'] = validateEITTransactionList!.toJson(); data['ValidateEITTransactionList'] = validateEITTransactionList!.toJson();
} }

@ -0,0 +1,18 @@
class CancelHRTransactionLIst {
String? pRETURNMSG;
String? pRETURNSTATUS;
CancelHRTransactionLIst({this.pRETURNMSG, this.pRETURNSTATUS});
CancelHRTransactionLIst.fromJson(Map<String, dynamic> json) {
pRETURNMSG = json['P_RETURN_MSG'];
pRETURNSTATUS = json['P_RETURN_STATUS'];
}
Map<String, dynamic> toJson() {
Map<String, dynamic> data = new Map<String, dynamic>();
data['P_RETURN_MSG'] = this.pRETURNMSG;
data['P_RETURN_STATUS'] = this.pRETURNSTATUS;
return data;
}
}

@ -0,0 +1,18 @@
class StartAbsenceApprovalProccess {
String? pRETURNMSG;
String? pRETURNSTATUS;
StartAbsenceApprovalProccess({this.pRETURNMSG, this.pRETURNSTATUS});
StartAbsenceApprovalProccess.fromJson(Map<String, dynamic> json) {
pRETURNMSG = json['P_RETURN_MSG'];
pRETURNSTATUS = json['P_RETURN_STATUS'];
}
Map<String, dynamic> toJson() {
Map<String, dynamic> data = new Map<String, dynamic>();
data['P_RETURN_MSG'] = this.pRETURNMSG;
data['P_RETURN_STATUS'] = this.pRETURNSTATUS;
return data;
}
}

@ -0,0 +1,22 @@
class SumbitAbsenceTransactionList {
String? pRETURNMSG;
String? pRETURNSTATUS;
int? pTRANSACTIONID;
SumbitAbsenceTransactionList(
{this.pRETURNMSG, this.pRETURNSTATUS, this.pTRANSACTIONID});
SumbitAbsenceTransactionList.fromJson(Map<String, dynamic> json) {
pRETURNMSG = json['P_RETURN_MSG'];
pRETURNSTATUS = json['P_RETURN_STATUS'];
pTRANSACTIONID = json['P_TRANSACTION_ID'];
}
Map<String, dynamic> toJson() {
Map<String, dynamic> data = new Map<String, dynamic>();
data['P_RETURN_MSG'] = this.pRETURNMSG;
data['P_RETURN_STATUS'] = this.pRETURNSTATUS;
data['P_TRANSACTION_ID'] = this.pTRANSACTIONID;
return data;
}
}

@ -0,0 +1,18 @@
class ValidateAbsenceTransactionList {
String? pRETURNMSG;
String? pRETURNSTATUS;
ValidateAbsenceTransactionList({this.pRETURNMSG, this.pRETURNSTATUS});
ValidateAbsenceTransactionList.fromJson(Map<String, dynamic> json) {
pRETURNMSG = json['P_RETURN_MSG'];
pRETURNSTATUS = json['P_RETURN_STATUS'];
}
Map<String, dynamic> toJson() {
Map<String, dynamic> data = new Map<String, dynamic>();
data['P_RETURN_MSG'] = this.pRETURNMSG;
data['P_RETURN_STATUS'] = this.pRETURNSTATUS;
return data;
}
}

@ -1,5 +1,3 @@
class UpdateUserItemTypesList { class UpdateUserItemTypesList {
String? pRETURNMSG; String? pRETURNMSG;
String? pRETURNSTATUS; String? pRETURNSTATUS;

@ -4,7 +4,9 @@ import 'package:easy_localization/easy_localization.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:mohem_flutter_app/api/leave_balance_api_client.dart'; import 'package:mohem_flutter_app/api/leave_balance_api_client.dart';
import 'package:mohem_flutter_app/classes/date_uitl.dart';
import 'package:mohem_flutter_app/classes/utils.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/int_extensions.dart';
import 'package:mohem_flutter_app/extensions/widget_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/generated/locale_keys.g.dart';
@ -12,7 +14,9 @@ import 'package:mohem_flutter_app/models/get_eit_dff_structure_list_model.dart';
import 'package:mohem_flutter_app/models/leave_balance/calculate_absence_duration_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_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_dff_structure_list_model.dart';
import 'package:mohem_flutter_app/models/leave_balance/sumbit_absence_transaction_list_model.dart';
import 'package:mohem_flutter_app/models/worklist/replacement_list_model.dart'; import 'package:mohem_flutter_app/models/worklist/replacement_list_model.dart';
import 'package:mohem_flutter_app/ui/misc/request_submit_screen.dart';
import 'package:mohem_flutter_app/widgets/app_bar_widget.dart'; import 'package:mohem_flutter_app/widgets/app_bar_widget.dart';
import 'package:mohem_flutter_app/widgets/bottom_sheet.dart'; import 'package:mohem_flutter_app/widgets/bottom_sheet.dart';
import 'package:mohem_flutter_app/widgets/bottom_sheets/search_employee_bottom_sheet.dart'; import 'package:mohem_flutter_app/widgets/bottom_sheets/search_employee_bottom_sheet.dart';
@ -59,11 +63,11 @@ class _AddLeaveBalanceScreenState extends State<AddLeaveBalanceScreen> {
} }
} }
void getAbsenceDffStructure(String flexCode) async { void getAbsenceDffStructure() async {
try { try {
Utils.showLoading(context); Utils.showLoading(context);
getabsenceDffStructureList.clear(); getabsenceDffStructureList.clear();
getabsenceDffStructureList = await LeaveBalanceApiClient().getAbsenceDffStructure(flexCode, "HR_LOA_SS", -999); getabsenceDffStructureList = await LeaveBalanceApiClient().getAbsenceDffStructure(selectedAbsenceType!.dESCFLEXCONTEXTCODE!, "HR_LOA_SS", -999);
Utils.hideLoading(context); Utils.hideLoading(context);
setState(() {}); setState(() {});
} catch (ex) { } catch (ex) {
@ -87,6 +91,50 @@ class _AddLeaveBalanceScreenState extends State<AddLeaveBalanceScreen> {
} }
} }
void validateAbsenceTransaction() async {
try {
Utils.showLoading(context);
Map<String, String?> dffDataMap = {};
for (int i = 1; i <= 20; i++) {
dffDataMap["P_ATTRIBUTE$i"] = null;
for (int dffIndex = 0; dffIndex < getabsenceDffStructureList.length; dffIndex++) {
if ("ATTRIBUTE$i" == getabsenceDffStructureList[dffIndex].aPPLICATIONCOLUMNNAME) {
if (getabsenceDffStructureList[dffIndex].fORMATTYPE == "X") {
dffDataMap["P_ATTRIBUTE$i"] = Utils.formatDate(getabsenceDffStructureList[dffIndex].eSERVICESDV!.pIDCOLUMNNAME!);
} else {
dffDataMap["P_ATTRIBUTE$i"] = getabsenceDffStructureList[dffIndex].eSERVICESDV?.pIDCOLUMNNAME;
}
break;
}
}
}
await LeaveBalanceApiClient().validateAbsenceTransaction(selectedAbsenceType!.dESCFLEXCONTEXTCODE!, "HR_LOA_SS", selectedAbsenceType!.aBSENCEATTENDANCETYPEID!,
selectedReplacementEmployee!.userName!, DateUtil.getFormattedDate(startDateTime!, "MM/dd/yyyy"), DateUtil.getFormattedDate(endDateTime!, "MM/dd/yyyy"), -999, dffDataMap,
comments: comment);
SumbitAbsenceTransactionList submit = await LeaveBalanceApiClient().submitAbsenceTransaction(
selectedAbsenceType!.dESCFLEXCONTEXTCODE!,
"HR_LOA_SS",
selectedAbsenceType!.aBSENCEATTENDANCETYPEID!,
selectedReplacementEmployee!.userName!,
DateUtil.getFormattedDate(startDateTime!, "MM/dd/yyyy"),
DateUtil.getFormattedDate(endDateTime!, "MM/dd/yyyy"),
-999,
dffDataMap,
comments: comment);
Utils.hideLoading(context);
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);
} catch (ex) {
Utils.hideLoading(context);
Utils.handleException(ex, context, null);
}
}
@override @override
void dispose() { void dispose() {
super.dispose(); super.dispose();
@ -121,7 +169,7 @@ class _AddLeaveBalanceScreenState extends State<AddLeaveBalanceScreen> {
} }
selectedAbsenceType = absenceList[popupIndex]; selectedAbsenceType = absenceList[popupIndex];
setState(() {}); setState(() {});
getAbsenceDffStructure(selectedAbsenceType!.dESCFLEXCONTEXTCODE!); getAbsenceDffStructure();
}, },
), ),
12.height, 12.height,
@ -206,13 +254,22 @@ class _AddLeaveBalanceScreenState extends State<AddLeaveBalanceScreen> {
).expanded, ).expanded,
DefaultButton( DefaultButton(
LocaleKeys.next.tr(), LocaleKeys.next.tr(),
(selectedAbsenceType == null || startDateTime == null || endDateTime == null) ? null : () {}, validateFieldData()
? null
: () {
validateAbsenceTransaction();
},
).insideContainer ).insideContainer
], ],
), ),
); );
} }
bool validateFieldData() {
List filteredList = getabsenceDffStructureList.where((element) => element.rEQUIREDFLAG == "Y" && (element.eSERVICESDV?.pVALUECOLUMNNAME) == null).toList();
return (selectedAbsenceType == null || startDateTime == null || endDateTime == null || filteredList.isNotEmpty);
}
Widget parseDynamicFormatType(GetAbsenceDffStructureList model, int index) { Widget parseDynamicFormatType(GetAbsenceDffStructureList model, int index) {
if (model.dISPLAYFLAG != "N") { if (model.dISPLAYFLAG != "N") {
if (model.vALIDATIONTYPE == "N") { if (model.vALIDATIONTYPE == "N") {

@ -35,15 +35,15 @@ class _LeaveBalanceState extends State<LeaveBalance> {
} }
void getAbsenceTransactions() async { void getAbsenceTransactions() async {
// try { try {
Utils.showLoading(context); Utils.showLoading(context);
absenceTransList = await LeaveBalanceApiClient().getAbsenceTransactions(-999); absenceTransList = await LeaveBalanceApiClient().getAbsenceTransactions(-999);
Utils.hideLoading(context); Utils.hideLoading(context);
setState(() {}); setState(() {});
// } catch (ex) { } catch (ex) {
// Utils.hideLoading(context); Utils.hideLoading(context);
// Utils.handleException(ex, context, null); Utils.handleException(ex, context, null);
// } }
} }
@override @override

@ -4,6 +4,7 @@ import 'dart:io';
import 'package:easy_localization/easy_localization.dart'; import 'package:easy_localization/easy_localization.dart';
import 'package:file_picker/file_picker.dart'; import 'package:file_picker/file_picker.dart';
import 'package:flutter/material.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/my_attendance_api_client.dart';
import 'package:mohem_flutter_app/api/profile_api_client.dart'; import 'package:mohem_flutter_app/api/profile_api_client.dart';
import 'package:mohem_flutter_app/classes/colors.dart'; import 'package:mohem_flutter_app/classes/colors.dart';
@ -27,6 +28,7 @@ class RequestSubmitScreenParams {
int transactionId; int transactionId;
String pItemId; String pItemId;
String approvalFlag; String approvalFlag;
RequestSubmitScreenParams(this.title, this.transactionId, this.pItemId, this.approvalFlag); RequestSubmitScreenParams(this.title, this.transactionId, this.pItemId, this.approvalFlag);
} }
@ -113,20 +115,24 @@ class _RequestSubmitScreenState extends State<RequestSubmitScreen> {
params!.pItemId, params!.pItemId,
params!.transactionId, 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( await MyAttendanceApiClient().startEitApprovalProcess(
LocaleKeys.submit.tr(), LocaleKeys.submit.tr(),
comments.text, comments.text,
params!.pItemId, params!.pItemId,
params!.transactionId, params!.transactionId,
); );
} } else {}
Utils.hideLoading(context); Utils.hideLoading(context);
Utils.showToast(LocaleKeys.yourRequestHasBeenSubmittedForApprovals.tr(), longDuration: true); Utils.showToast(LocaleKeys.yourRequestHasBeenSubmittedForApprovals.tr(), longDuration: true);
Navigator.of(context).popUntil((route) { Navigator.of(context).popUntil((route) => route.settings.name == AppRoutes.dashboard);
return route.settings.name == AppRoutes.dashboard;
});
Navigator.pushNamed(context, AppRoutes.workList); Navigator.pushNamed(context, AppRoutes.workList);
} catch (ex) { } catch (ex) {
Utils.hideLoading(context); Utils.hideLoading(context);
@ -147,17 +153,16 @@ class _RequestSubmitScreenState extends State<RequestSubmitScreen> {
} }
return Scaffold( return Scaffold(
backgroundColor: Colors.white, backgroundColor: Colors.white,
appBar: AppBarWidget( appBar: AppBarWidget(context, title: params!.title),
context,
title: params!.title,
),
body: Column( body: Column(
children: [ children: [
ListView( ListView(
padding: const EdgeInsets.all(21).copyWith(top: 14), padding: const EdgeInsets.all(21).copyWith(top: 14),
physics: const BouncingScrollPhysics(), physics: const BouncingScrollPhysics(),
children: [ children: [
attachmentView(LocaleKeys.attachments.tr(),), attachmentView(
LocaleKeys.attachments.tr(),
),
14.height, 14.height,
InputWidget( InputWidget(
LocaleKeys.comments.tr(), LocaleKeys.comments.tr(),
@ -207,15 +212,15 @@ class _RequestSubmitScreenState extends State<RequestSubmitScreen> {
return Row( return Row(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
CircularAvatar(url: approver.eMPLOYEEIMAGE, isImageBase64: true, height: 40, width: 40), CircularAvatar(url: approver.eMPLOYEEIMAGE, isImageBase64: approver.eMPLOYEEIMAGE != null, height: 40, width: 40),
9.width, 9.width,
Expanded( Expanded(
child: Column( child: Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
mainAxisSize: MainAxisSize.min, mainAxisSize: MainAxisSize.min,
children: [ children: [
approver.aPPROVER!.toText16(), (approver.aPPROVER ?? "").toText16(),
approver.pOSITIONTITLE!.toText12(color: MyColors.lightTextColor), (approver.pOSITIONTITLE ?? "").toText12(color: MyColors.lightTextColor),
], ],
), ),
) )

Loading…
Cancel
Save