protected static FR_L6LR_GLR_ID_1339 Execute(DbConnection Connection, DbTransaction Transaction, P_L6LR_GLR_ID_1339 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { #region UserCode var returnValue = new FR_L6LR_GLR_ID_1339(); returnValue.Result = new L6LR_GLR_ID_1339(); //Covers ORM_CMN_BPT_EMP_Employee_LeaveRequest.Query leaveRequestQuery = new ORM_CMN_BPT_EMP_Employee_LeaveRequest.Query(); leaveRequestQuery.CMN_BPT_EMP_Employee_LeaveRequestID = Parameter.LeaveID; leaveRequestQuery.Tenant_RefID = securityTicket.TenantID; leaveRequestQuery.IsDeleted = false; ORM_CMN_BPT_EMP_Employee_LeaveRequest leaveRequest = ORM_CMN_BPT_EMP_Employee_LeaveRequest.Query.Search(Connection, Transaction, leaveRequestQuery).FirstOrDefault(); ORM_CMN_BPT_EMP_Employee employee = new ORM_CMN_BPT_EMP_Employee(); employee.Load(Connection, Transaction, leaveRequest.RequestedFor_Employee_RefID); L5LR_GLRFSP_1532 result = new L5LR_GLRFSP_1532(); result.ForEmployeeID = employee.CMN_BPT_EMP_EmployeeID; result.ForEmployee_BusinessParticipant_RefID = employee.BusinessParticipant_RefID; result.ForEmployee_Staff_Number = employee.Staff_Number; result.ForEmployee_StandardFunction = employee.StandardFunction; result.LeaveRequestCreationSource = leaveRequest.LeaveRequestCreationSource; ORM_CMN_BPT_BusinessParticipant bpart = new ORM_CMN_BPT_BusinessParticipant(); bpart.Load(Connection, Transaction, employee.BusinessParticipant_RefID); ORM_CMN_PER_PersonInfo per = new ORM_CMN_PER_PersonInfo(); per.Load(Connection, Transaction, bpart.IfNaturalPerson_CMN_PER_PersonInfo_RefID); result.FirstName = per.FirstName; result.LastName = per.LastName; result.CMN_CAL_Event_RefID = leaveRequest.CMN_CAL_Event_RefID; result.CMN_CAL_Event_Approval_RefID = leaveRequest.CMN_CAL_Event_Approval_RefID; //result.AbsenceReason_Type_RefID = leaveRequest.CMN_BPT_STA_AbsenceReason_RefID; result.Comment = leaveRequest.Comment; result.RequestedBy_Employee_RefID = leaveRequest.RequestedBy_Employee_RefID; result.CMN_BPT_EMP_Employee_LeaveRequestID = leaveRequest.CMN_BPT_EMP_Employee_LeaveRequestID; ORM_CMN_BPT_EMP_Employee_LeaveRequest_EmployeeCover.Query covers = new ORM_CMN_BPT_EMP_Employee_LeaveRequest_EmployeeCover.Query(); covers.CMN_BPT_EMP_Employee_LeaveRequests = leaveRequest.CMN_BPT_EMP_Employee_LeaveRequestID; covers.Tenant_RefID = securityTicket.TenantID; covers.IsDeleted = false; List <ORM_CMN_BPT_EMP_Employee_LeaveRequest_EmployeeCover> employeeCovers = ORM_CMN_BPT_EMP_Employee_LeaveRequest_EmployeeCover.Query.Search(Connection, Transaction, covers); result.Cover = new L5LR_GLRFSP_1532_Cover(); if (employeeCovers.Count != 0) { ORM_CMN_BPT_EMP_Employee_LeaveRequest_EmployeeCover employeeCover = employeeCovers[0]; result.Cover.CMN_BPT_EMP_EmployeeID = employeeCover.EmployeeCover_RefID; result.Cover.CMN_BPT_EMP_Employee_LeaveRequest_EmployeeCoverID = employeeCover.CMN_BPT_EMP_Employee_LeaveRequest_EmployeeCoverID; result.Cover.SequenceNumber = employeeCover.SequenceNumber; } ORM_CMN_BPT_STA_AbsenceReason absenceReason = new ORM_CMN_BPT_STA_AbsenceReason(); absenceReason.Load(Connection, Transaction, leaveRequest.CMN_BPT_STA_AbsenceReason_RefID); result.CMN_BPT_STA_AbsenceReason_RefID = absenceReason.CMN_BPT_STA_AbsenceReasonID; result.ShortName = absenceReason.ShortName; result.ReasonName = absenceReason.Name; result.ReasonDesc = absenceReason.Description; result.AbsenceReason_Type_RefID = absenceReason.AbsenceReason_Type_RefID; result.ColorCode = absenceReason.ColorCode; result.Parent_RefID = absenceReason.Parent_RefID; result.IsAuthorizationRequired = absenceReason.IsAuthorizationRequired; result.IsIncludedInCapacityCalculation = absenceReason.IsIncludedInCapacityCalculation; result.IsAllowedAbsence = absenceReason.IsAllowedAbsence; result.IsDeactivated = absenceReason.IsDeactivated; result.IsCarryOverEnabled = absenceReason.IsCarryOverEnabled; result.IsCaryOverLimited = absenceReason.IsCaryOverLimited; result.IfCarryOverLimited_MaximumAmount_Hrs = absenceReason.IfCarryOverLimited_MaximumAmount_Hrs; ORM_CMN_CAL_Event Event = new ORM_CMN_CAL_Event(); Event.Load(Connection, Transaction, leaveRequest.CMN_CAL_Event_RefID); result.CalendarInstance_RefID = Event.CalendarInstance_RefID; result.StartTime = Event.StartTime; result.EndTime = Event.EndTime; result.R_EventDuration_sec = Event.R_EventDuration_sec; ORM_CMN_CAL_Event_Approval eventApproval = new ORM_CMN_CAL_Event_Approval(); eventApproval.Load(Connection, Transaction, leaveRequest.CMN_CAL_Event_Approval_RefID); result.Action = new L5LR_GLRFSP_1532_Action(); result.IsApproved = eventApproval.IsApproved; result.IsApprovalProcessOpened = eventApproval.IsApprovalProcessOpened; result.IsApprovalProcessDenied = eventApproval.IsApprovalProcessDenied; ORM_CMN_CAL_Event_Approval_Action.Query approvalQuery = new ORM_CMN_CAL_Event_Approval_Action.Query(); approvalQuery.EventApproval_RefID = eventApproval.CMN_CAL_Event_ApprovalID; approvalQuery.Tenant_RefID = securityTicket.TenantID; approvalQuery.IsDeleted = false; List <ORM_CMN_CAL_Event_Approval_Action> apporvalActions = ORM_CMN_CAL_Event_Approval_Action.Query.Search(Connection, Transaction, approvalQuery); if (apporvalActions.Count != 0) { ORM_CMN_CAL_Event_Approval_Action approvalAction = apporvalActions[0]; result.Action.ActionTriggeredBy_Account_RefID = approvalAction.ActionTriggeredBy_Account_RefID; result.Action.CMN_CAL_Event_Approval_ActionID = approvalAction.CMN_CAL_Event_Approval_ActionID; result.Action.IsApproval = approvalAction.IsApproval; result.Action.IsRevocation = approvalAction.IsRevocation; result.Action.IsDenial = approvalAction.IsDenial; result.Action.Approval_Action_Commnet = approvalAction.Comment; } returnValue.Result.Leave = result; //Put your code here return(returnValue); #endregion UserCode }
protected static FR_Bool Execute(DbConnection Connection, DbTransaction Transaction, P_L6LR_SLRAA_1306 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { #region UserCode var returnValue = new FR_Bool(); returnValue.Result = false; if (Parameter.LeaveRequestID != Guid.Empty) { var lrQuery = new ORM_CMN_BPT_EMP_Employee_LeaveRequest.Query(); lrQuery.CMN_BPT_EMP_Employee_LeaveRequestID = Parameter.LeaveRequestID; lrQuery.Tenant_RefID = securityTicket.TenantID; lrQuery.IsDeleted = false; var leaveRequestsRes = ORM_CMN_BPT_EMP_Employee_LeaveRequest.Query.Search(Connection, Transaction, lrQuery); ORM_CMN_BPT_EMP_Employee_LeaveRequest leaveRequest = leaveRequestsRes[0]; P_L5LR_SEAA_1351 ApprovalActionParam = new P_L5LR_SEAA_1351(); ApprovalActionParam.Approval_Action_Commnet = ""; ApprovalActionParam.CMN_CAL_Event_Approval_ActionID = Guid.Empty; ApprovalActionParam.EventApproval_RefID = leaveRequest.CMN_CAL_Event_Approval_RefID; ApprovalActionParam.IsApproval = true; ApprovalActionParam.IsDenial = false; ApprovalActionParam.IsRevocation = false; cls_Save_Employee_ApprovalAction.Invoke(Connection, Transaction, ApprovalActionParam, securityTicket); var tenantSettings = cls_Get_Settings_For_Tenant.Invoke(Connection, Transaction, securityTicket).Result; var approvalActionsQuery = new ORM_CMN_CAL_Event_Approval_Action.Query(); approvalActionsQuery.EventApproval_RefID = leaveRequest.CMN_CAL_Event_Approval_RefID; approvalActionsQuery.Tenant_RefID = securityTicket.TenantID; approvalActionsQuery.IsDeleted = false; approvalActionsQuery.IsApproval = true; var approvalActionsRes = ORM_CMN_CAL_Event_Approval_Action.Query.Search(Connection, Transaction, approvalActionsQuery); if (approvalActionsRes.Count >= tenantSettings.NumberOfResponsiblePersonsRequiredToApprove) { var approvalItem = new ORM_CMN_CAL_Event_Approval(); if (leaveRequest.CMN_CAL_Event_Approval_RefID != Guid.Empty) { var result = approvalItem.Load(Connection, Transaction, leaveRequest.CMN_CAL_Event_Approval_RefID); if (result.Status != FR_Status.Success || approvalItem.CMN_CAL_Event_ApprovalID == Guid.Empty) { var error = new FR_Guid(); error.ErrorMessage = "No Such ID"; error.Status = FR_Status.Error_Internal; return(returnValue); } } approvalItem.IsApprovalProcessDenied = false; approvalItem.IsApprovalProcessOpened = false; approvalItem.IsApproved = true; approvalItem.IsApprovalProcessCanceledByUser = false; approvalItem.Save(Connection, Transaction); // update statistics ************************************************ var calQuery = new ORM_CMN_CAL_Event.Query(); calQuery.CMN_CAL_EventID = leaveRequest.CMN_CAL_Event_RefID; var calendarRes = ORM_CMN_CAL_Event.Query.Search(Connection, Transaction, calQuery); ORM_CMN_CAL_Event calendarEvent = calendarRes[0]; var timeFrame = cls_Get_CalculationTimeFramesForTenant.Invoke(Connection, Transaction, securityTicket).Result.Where(x => x.CalculationTimeframe_StartDate.Year == calendarEvent.StartTime.Year).FirstOrDefault(); P_L5EM_GEATFSbRTFE_1423 statParam = new P_L5EM_GEATFSbRTFE_1423(); statParam.absenceReasonID = leaveRequest.CMN_BPT_STA_AbsenceReason_RefID; statParam.employeeID = leaveRequest.RequestedFor_Employee_RefID; statParam.timeFrameID = timeFrame.CMN_CAL_CalculationTimeframeID; var statistics = cls_Get_Employee_AbsenceReason_TimeframeStatistic_byReasonTimeFrameEmployee.Invoke(Connection, Transaction, statParam, securityTicket).Result; if (statistics != null) { P_L5EM_SEARTFS_1356 updateStatisticsParam = new P_L5EM_SEARTFS_1356(); updateStatisticsParam.CMN_BPT_EMP_Employee_AbsenceReason_TimeframeStatisticsID = statistics.CMN_BPT_EMP_Employee_AbsenceReason_TimeframeStatisticsID; updateStatisticsParam.Employee_RefID = statistics.Employee_RefID; updateStatisticsParam.CalculationTimeframe_RefID = statistics.CalculationTimeframe_RefID; updateStatisticsParam.AbsenceReason_RefID = statistics.AbsenceReason_RefID; updateStatisticsParam.R_AbsenceCarryOver_InDays = statistics.R_AbsenceCarryOver_InDays; updateStatisticsParam.R_AbsenceCarryOver_InHours = statistics.R_AbsenceCarryOver_InHours; updateStatisticsParam.R_TotalAllowedAbsenceTime_InDays = statistics.R_TotalAllowedAbsenceTime_InDays - Parameter.durationInDays; updateStatisticsParam.R_TotalAllowedAbsenceTime_InHours = statistics.R_TotalAllowedAbsenceTime_InHours - Parameter.durationInHours; if (!Parameter.dontRemoveRequested) { updateStatisticsParam.R_RequestReservedAbsence_InDays = statistics.R_RequestReservedAbsence_InDays - Parameter.durationInDays; updateStatisticsParam.R_RequestReservedAbsence_InHours = statistics.R_RequestReservedAbsence_InHours - Parameter.durationInHours; } updateStatisticsParam.R_AbsenceTimeUsed_InDays = statistics.R_AbsenceTimeUsed_InDays + Parameter.durationInDays; updateStatisticsParam.R_AbsenceTimeUsed_InHours = statistics.R_AbsenceTimeUsed_InHours + Parameter.durationInHours; var res = cls_Save_Employee_AbsenceReason_TimeframeStatistic.Invoke(Connection, Transaction, updateStatisticsParam, securityTicket); // statistics update end :) } returnValue.Result = true; } } return(returnValue); #endregion UserCode }