protected static FR_L5DWS_GEWTPFH_1725 Execute(DbConnection Connection, DbTransaction Transaction, P_L5DWS_GEWTPFH_1725 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { //Leave UserCode region to enable user code saving #region UserCode var returnValue = new FR_L5DWS_GEWTPFH_1725(); //Put your code here ORM_CMN_BPT_EMP_EffectiveWorkTime_Position.Query positionQuery = new ORM_CMN_BPT_EMP_EffectiveWorkTime_Position.Query(); positionQuery.EffectiveWorkTime_Header_RefID = Parameter.EffectiveWorkTime_Header_RefID; positionQuery.IsDeleted = false; positionQuery.Tenant_RefID = securityTicket.TenantID; var positions = ORM_CMN_BPT_EMP_EffectiveWorkTime_Position.Query.Search(Connection, Transaction, positionQuery); List <L5DWS_GEWTFD_1648_Position> listOfPositions = new List <L5DWS_GEWTFD_1648_Position>(); foreach (var position in positions) { L5DWS_GEWTFD_1648_Position newPosition = new L5DWS_GEWTFD_1648_Position(); newPosition.Activity_RefID = position.Activity_RefID; newPosition.CMN_BPT_EMP_EffectiveWorkTime_PositionID = position.CMN_BPT_EMP_EffectiveWorkTime_PositionID; newPosition.CMN_BPT_EMP_Employe_RefID = position.CMN_BPT_EMP_Employe_RefID; newPosition.CMN_BPT_EMP_Employee_LeaveRequest_RefID = position.CMN_BPT_EMP_Employee_LeaveRequest_RefID; newPosition.EffectiveWorkTime_Header_RefID = position.EffectiveWorkTime_Header_RefID; newPosition.SourceOfEntry = position.SourceOfEntry; newPosition.Workplace_RefID = position.Workplace_RefID; newPosition.WorkTime_Duration_in_sec = position.WorkTime_Duration_in_sec; newPosition.WorkTime_StartTime = position.WorkTime_StartTime; if (position.CMN_BPT_EMP_Employee_LeaveRequest_RefID != Guid.Empty) { ORM_CMN_BPT_EMP_Employee_LeaveRequest.Query lrQuery = new ORM_CMN_BPT_EMP_Employee_LeaveRequest.Query(); lrQuery.CMN_BPT_EMP_Employee_LeaveRequestID = position.CMN_BPT_EMP_Employee_LeaveRequest_RefID; lrQuery.IsDeleted = false; lrQuery.Tenant_RefID = securityTicket.TenantID; var leaveRequest = ORM_CMN_BPT_EMP_Employee_LeaveRequest.Query.Search(Connection, Transaction, lrQuery).FirstOrDefault(); newPosition.AbsenceReason_RefID = leaveRequest.CMN_BPT_STA_AbsenceReason_RefID; } else { newPosition.AbsenceReason_RefID = Guid.Empty; } listOfPositions.Add(newPosition); } returnValue.Result = new L5DWS_GEWTPFH_1725(); returnValue.Result.EffectiveWorkTimePositions = listOfPositions.ToArray(); return(returnValue); #endregion UserCode }
protected static FR_L5TN_GCTFFLR_1358 Execute(DbConnection Connection, DbTransaction Transaction, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { #region UserCode var returnValue = new FR_L5TN_GCTFFLR_1358(); //Put your code here L5TN_GCTFFT_1529[] calculationTimeFrames = cls_Get_CalculationTimeFramesForTenant.Invoke(Connection, Transaction, securityTicket).Result; List <L5TN_GCTFFT_1529> calculationTimeFramesResult = new List <L5TN_GCTFFT_1529>(); ORM_CMN_BPT_EMP_Employee_LeaveRequest.Query leaveRequestQuery = new ORM_CMN_BPT_EMP_Employee_LeaveRequest.Query(); leaveRequestQuery.Tenant_RefID = securityTicket.TenantID; leaveRequestQuery.IsDeleted = false; List <ORM_CMN_BPT_EMP_Employee_LeaveRequest> leaveRequestList = ORM_CMN_BPT_EMP_Employee_LeaveRequest.Query.Search(Connection, Transaction, leaveRequestQuery); List <ORM_CMN_CAL_Event> eventList = new List <ORM_CMN_CAL_Event>(); foreach (var leaveRequestItem in leaveRequestList) { ORM_CMN_CAL_Event_Approval approval = new ORM_CMN_CAL_Event_Approval(); approval.Load(Connection, Transaction, leaveRequestItem.CMN_CAL_Event_Approval_RefID); if (!approval.IsApprovalProcessDenied && !approval.IsApprovalProcessCanceledByUser) { ORM_CMN_CAL_Event eventItem = new ORM_CMN_CAL_Event(); var eventResult = eventItem.Load(Connection, Transaction, leaveRequestItem.CMN_CAL_Event_RefID); if (eventResult.Status != FR_Status.Success || eventItem.CMN_CAL_EventID == Guid.Empty) { continue; } eventList.Add(eventItem); } } if (eventList.Count > 0) { foreach (var timeFrame in calculationTimeFrames) { if (eventList.Any(e => e.StartTime.Year == timeFrame.CalculationTimeframe_StartDate.Year)) { calculationTimeFramesResult.Add(timeFrame); } } } if (calculationTimeFramesResult.Count == 0) { calculationTimeFramesResult.Add(calculationTimeFrames.Where(i => i.IsCalculationTimeframe_Active).FirstOrDefault()); } returnValue.Result = new L5TN_GCTFFLR_1358(); returnValue.Result.CalculationTimeFrames = calculationTimeFramesResult.ToArray(); return(returnValue); #endregion UserCode }
protected static FR_L5LR_CLRC_1517 Execute(DbConnection Connection, DbTransaction Transaction, P_L5LR_CLRC_1517 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { //Leave UserCode region to enable user code saving #region UserCode var returnValue = new FR_L5LR_CLRC_1517(); returnValue.Result = new L5LR_CLRC_1517(); int retVal = 0; //Put your code here ORM_CMN_BPT_EMP_Employee_LeaveRequest.Query leaveRequestQuery = new ORM_CMN_BPT_EMP_Employee_LeaveRequest.Query(); leaveRequestQuery.RequestedFor_Employee_RefID = Parameter.EmployeeID; leaveRequestQuery.Tenant_RefID = securityTicket.TenantID; leaveRequestQuery.IsDeleted = false; List <ORM_CMN_BPT_EMP_Employee_LeaveRequest> leaveRequests = ORM_CMN_BPT_EMP_Employee_LeaveRequest.Query.Search(Connection, Transaction, leaveRequestQuery); FR_Base evetResult; FR_Base eventApprovalResult; foreach (var leaveRequest in leaveRequests) { ORM_CMN_CAL_Event Event = new ORM_CMN_CAL_Event(); evetResult = Event.Load(Connection, Transaction, leaveRequest.CMN_CAL_Event_RefID); if (evetResult.Status == FR_Status.Success && Event.CMN_CAL_EventID != Guid.Empty && Event.StartTime.Ticks > Parameter.StartDate.Ticks) { ORM_CMN_CAL_Event_Approval eventApproval = new ORM_CMN_CAL_Event_Approval(); eventApprovalResult = eventApproval.Load(Connection, Transaction, leaveRequest.CMN_CAL_Event_Approval_RefID); if (eventApprovalResult.Status == FR_Status.Success && eventApproval.CMN_CAL_Event_ApprovalID != Guid.Empty && !eventApproval.IsApprovalProcessCanceledByUser && !eventApproval.IsApprovalProcessDenied) { retVal++; } } } returnValue.Result.LeaveCount = retVal; return(returnValue); #endregion UserCode }
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_Base Execute(DbConnection Connection, DbTransaction Transaction, P_L5DWS_LAD_1001 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { #region UserCode FR_Base returnValue = new FR_Base(); var dayCount = 1; if (Parameter.LoadFor_Week) { dayCount = 7; } LeaveRequestUtils leaveRequestUtil = new LeaveRequestUtils(); for (int i = 0; i < dayCount; i++) { var date = Parameter.WorkSheduleDate.Date.AddDays(i); if (Parameter.LoadFrom_LastWeek || Parameter.LoadFrom_Specific_Date_Or_Week) { DateTime loadForDate; if (Parameter.LoadFrom_Specific_Date_Or_Week) { loadForDate = Parameter.IfLoadFrom_Specific_Date_Or_Week_DateTime.AddDays(i); } else { loadForDate = Parameter.WorkSheduleDate.AddDays(-7).AddDays(i); } ORM_CMN_BPT_EMP_EffectiveWorkTime_Header.Query actualsQuery = new ORM_CMN_BPT_EMP_EffectiveWorkTime_Header.Query(); actualsQuery.EffectiveBusinessDay = loadForDate; actualsQuery.Tenant_RefID = securityTicket.TenantID; actualsQuery.IsDeleted = false; var allEffectiveWorkTimeHeadersToLoadFrom = ORM_CMN_BPT_EMP_EffectiveWorkTime_Header.Query.Search(Connection, Transaction, actualsQuery); foreach (var effectiveWorkTimeHeader in allEffectiveWorkTimeHeadersToLoadFrom) { ORM_CMN_BPT_EMP_EffectiveWorkTime_Header.Query effectiveWorkTimeToDeleteQuery = new ORM_CMN_BPT_EMP_EffectiveWorkTime_Header.Query(); effectiveWorkTimeToDeleteQuery.EffectiveBusinessDay = date; effectiveWorkTimeToDeleteQuery.Employee_RefID = effectiveWorkTimeHeader.Employee_RefID; effectiveWorkTimeToDeleteQuery.Tenant_RefID = securityTicket.TenantID; effectiveWorkTimeToDeleteQuery.IsDeleted = false; var effectiveWorkTimeHeaderToDeleteQueryResult = ORM_CMN_BPT_EMP_EffectiveWorkTime_Header.Query.Search(Connection, Transaction, effectiveWorkTimeToDeleteQuery); if (effectiveWorkTimeHeaderToDeleteQueryResult.Count != 0) { var effectiveWorkTimeHeaderToDelete = effectiveWorkTimeHeaderToDeleteQueryResult.FirstOrDefault(); P_L5DWS_DEWTH_1126 deleteParam = new P_L5DWS_DEWTH_1126(); deleteParam.CMN_STR_PPS_EffectiveWorkTime_HeaderID = effectiveWorkTimeHeaderToDelete.CMN_STR_PPS_EffectiveWorkTime_HeaderID; ORM_CMN_BPT_EMP_EffectiveWorkTime_Position.Query positionsQuery = new ORM_CMN_BPT_EMP_EffectiveWorkTime_Position.Query(); positionsQuery.EffectiveWorkTime_Header_RefID = effectiveWorkTimeHeaderToDelete.CMN_STR_PPS_EffectiveWorkTime_HeaderID; positionsQuery.Tenant_RefID = securityTicket.TenantID; positionsQuery.IsDeleted = false; var positions = ORM_CMN_BPT_EMP_EffectiveWorkTime_Position.Query.Search(Connection, Transaction, positionsQuery); List <P_L5DWS_DEWTH_1126_Positions> listOfPositions = new List <P_L5DWS_DEWTH_1126_Positions>(); foreach (var position in positions) { P_L5DWS_DEWTH_1126_Positions positionItem = new P_L5DWS_DEWTH_1126_Positions(); positionItem.CMN_BPT_EMP_EffectiveWorkTime_PositionID = position.CMN_BPT_EMP_EffectiveWorkTime_PositionID; positionItem.durationInDays = leaveRequestUtil.LeaveRequestDuration(position.WorkTime_StartTime, position.WorkTime_StartTime.AddSeconds(position.WorkTime_Duration_in_sec), Parameter.Events, Parameter.Employees.FirstOrDefault(x => x.CMN_BPT_EMP_EmployeeID == position.CMN_BPT_EMP_Employe_RefID), true); positionItem.durationInHours = leaveRequestUtil.LeaveRequestDuration(position.WorkTime_StartTime, position.WorkTime_StartTime.AddSeconds(position.WorkTime_Duration_in_sec), Parameter.Events, Parameter.Employees.FirstOrDefault(x => x.CMN_BPT_EMP_EmployeeID == position.CMN_BPT_EMP_Employe_RefID), false); listOfPositions.Add(positionItem); } deleteParam.Positions = listOfPositions.ToArray(); cls_Delete_EffectiveWorkTime_Header.Invoke(Connection, Transaction, deleteParam, securityTicket); } ORM_CMN_BPT_EMP_EffectiveWorkTime_Position.Query positionsToLoadQuery = new ORM_CMN_BPT_EMP_EffectiveWorkTime_Position.Query(); positionsToLoadQuery.EffectiveWorkTime_Header_RefID = effectiveWorkTimeHeader.CMN_STR_PPS_EffectiveWorkTime_HeaderID; positionsToLoadQuery.Tenant_RefID = securityTicket.TenantID; positionsToLoadQuery.IsDeleted = false; var positionsToLoad = ORM_CMN_BPT_EMP_EffectiveWorkTime_Position.Query.Search(Connection, Transaction, positionsToLoadQuery); ORM_CMN_BPT_EMP_EffectiveWorkTime_Header newHeader = new ORM_CMN_BPT_EMP_EffectiveWorkTime_Header(); newHeader.ContractWorkerText = effectiveWorkTimeHeader.ContractWorkerText; newHeader.BreakDurationTime_in_sec = effectiveWorkTimeHeader.BreakDurationTime_in_sec; newHeader.EffectiveBusinessDay = date; newHeader.Employee_RefID = effectiveWorkTimeHeader.Employee_RefID; newHeader.IsBreakTimeManualySpecified = effectiveWorkTimeHeader.IsBreakTimeManualySpecified; newHeader.SheduleBreakTemplate_RefID = effectiveWorkTimeHeader.SheduleBreakTemplate_RefID; newHeader.Tenant_RefID = securityTicket.TenantID; newHeader.Save(Connection, Transaction); foreach (var positionToLoad in positionsToLoad) { P_L5DWS_SEWTP_1337 positionSavePar = new P_L5DWS_SEWTP_1337(); if (positionToLoad.CMN_BPT_EMP_Employee_LeaveRequest_RefID != Guid.Empty) { ORM_CMN_BPT_EMP_Employee_LeaveRequest.Query lrQuery = new ORM_CMN_BPT_EMP_Employee_LeaveRequest.Query(); lrQuery.CMN_BPT_EMP_Employee_LeaveRequestID = positionToLoad.CMN_BPT_EMP_Employee_LeaveRequest_RefID; lrQuery.IsDeleted = false; lrQuery.Tenant_RefID = securityTicket.TenantID; var leaveRequest = ORM_CMN_BPT_EMP_Employee_LeaveRequest.Query.Search(Connection, Transaction, lrQuery).FirstOrDefault(); positionSavePar.AbsenceReason_RefID = leaveRequest.CMN_BPT_STA_AbsenceReason_RefID; positionSavePar.durationInDays = leaveRequestUtil.LeaveRequestDuration(positionToLoad.WorkTime_StartTime, positionToLoad.WorkTime_StartTime.AddSeconds(positionToLoad.WorkTime_Duration_in_sec), Parameter.Events, Parameter.Employees.FirstOrDefault(x => x.CMN_BPT_EMP_EmployeeID == positionToLoad.CMN_BPT_EMP_Employe_RefID), true); positionSavePar.durationInHours = leaveRequestUtil.LeaveRequestDuration(positionToLoad.WorkTime_StartTime, positionToLoad.WorkTime_StartTime.AddSeconds(positionToLoad.WorkTime_Duration_in_sec), Parameter.Events, Parameter.Employees.FirstOrDefault(x => x.CMN_BPT_EMP_EmployeeID == positionToLoad.CMN_BPT_EMP_Employe_RefID), false); positionSavePar.RequestedBy_Employee_RefID = leaveRequest.RequestedBy_Employee_RefID; positionSavePar.RequestedFor_Employee_RefID = leaveRequest.RequestedFor_Employee_RefID; } else { positionSavePar.AbsenceReason_RefID = Guid.Empty; positionSavePar.durationInDays = 0; positionSavePar.durationInHours = 0; positionSavePar.RequestedBy_Employee_RefID = Guid.Empty; positionSavePar.RequestedFor_Employee_RefID = Guid.Empty; } positionSavePar.CMN_BPT_EMP_Employee_LeaveRequest_RefID = Guid.Empty; positionSavePar.EffectiveWorkTime_Header_RefID = newHeader.CMN_STR_PPS_EffectiveWorkTime_HeaderID; positionSavePar.Employee_RefID = newHeader.Employee_RefID; positionSavePar.OldDurationInDays = 0; positionSavePar.OldDurationInHours = 0; positionSavePar.Workplace_RefID = positionToLoad.Workplace_RefID; positionSavePar.WorkTime_End = positionToLoad.WorkTime_StartTime.AddSeconds(positionToLoad.WorkTime_Duration_in_sec); positionSavePar.WorkTime_Start = positionToLoad.WorkTime_StartTime; cls_Save_EffectiveWorkTime_Position.Invoke(Connection, Transaction, positionSavePar, securityTicket); } } } else if (Parameter.LoadFrom_StandardTimes) { bool isEven = false; if (CronExtender.weekNumber(date) % 2 == 0) { isEven = true; } ORM_CMN_BPT_EMP_Employee_WorkplaceAssignment.Query workplaceAssignementQuery = new ORM_CMN_BPT_EMP_Employee_WorkplaceAssignment.Query(); foreach (var empInfo in Parameter.EmployeeInformation) { var empID = empInfo.EmployeeID; workplaceAssignementQuery.CMN_BPT_EMP_Employee_RefID = empID; workplaceAssignementQuery.Tenant_RefID = securityTicket.TenantID; workplaceAssignementQuery.IsDeleted = false; var workplaceAssignements = ORM_CMN_BPT_EMP_Employee_WorkplaceAssignment.Query.Search(Connection, Transaction, workplaceAssignementQuery); if (workplaceAssignements != null) { var workplaceAssignement = workplaceAssignements.FirstOrDefault(x => x.WorkplaceAssignment_StartDate <= date && (x.WorkplaceAssignment_EndDate >= date || x.WorkplaceAssignment_EndDate == new DateTime())); if (workplaceAssignement != null) { ORM_CMN_BPT_EMP_WorkplaceAssignments_WorkPattern.Query patternQuery = new ORM_CMN_BPT_EMP_WorkplaceAssignments_WorkPattern.Query(); patternQuery.BoundTo_WorkplaceAssignment_RefID = workplaceAssignement.CMN_BPT_EMP_Employee_WorkplaceAssignment; patternQuery.Tenant_RefID = securityTicket.TenantID; patternQuery.IsDeleted = false; var patterns = ORM_CMN_BPT_EMP_WorkplaceAssignments_WorkPattern.Query.Search(Connection, Transaction, patternQuery); if (patterns != null) { foreach (var pattern in patterns) { if (pattern.IsWeek_Even == isEven || !pattern.IsWeek_Even && pattern.IsWeek_Odd) { switch (date.DayOfWeek) { case DayOfWeek.Monday: if (!pattern.IsMonday) { continue; } break; case DayOfWeek.Tuesday: if (!pattern.IsTuesday) { continue; } break; case DayOfWeek.Wednesday: if (!pattern.IsWednesday) { continue; } break; case DayOfWeek.Thursday: if (!pattern.IsThursday) { continue; } break; case DayOfWeek.Friday: if (!pattern.IsFriday) { continue; } break; case DayOfWeek.Saturday: if (!pattern.IsSaturday) { continue; } break; case DayOfWeek.Sunday: if (!pattern.IsSunday) { continue; } break; } if (pattern.CMN_PPS_ShiftTemplate_RefID == Guid.Empty && pattern.CMN_BPT_STA_AbsenceReason_RefID != Guid.Empty) { double totalTime = 0; DateTime startTime = date; DateTime endTime = new DateTime(date.Year, date.Month, date.Day, 23, 59, 59); double startTimeInSec = startTime.TimeOfDay.TotalSeconds; double endTimeInSec = endTime.TimeOfDay.TotalSeconds; ORM_CMN_BPT_EMP_EffectiveWorkTime_Header.Query effectiveWorkTimeToDeleteQuery = new ORM_CMN_BPT_EMP_EffectiveWorkTime_Header.Query(); effectiveWorkTimeToDeleteQuery.EffectiveBusinessDay = date; effectiveWorkTimeToDeleteQuery.Employee_RefID = empID; effectiveWorkTimeToDeleteQuery.Tenant_RefID = securityTicket.TenantID; effectiveWorkTimeToDeleteQuery.IsDeleted = false; var allEffectiveWorkTimeHeadersToDelete = ORM_CMN_BPT_EMP_EffectiveWorkTime_Header.Query.Search(Connection, Transaction, effectiveWorkTimeToDeleteQuery); foreach (var effectiveWorkTimeHeaderToDelete in allEffectiveWorkTimeHeadersToDelete) { P_L5DWS_DEWTH_1126 deleteParam = new P_L5DWS_DEWTH_1126(); deleteParam.CMN_STR_PPS_EffectiveWorkTime_HeaderID = effectiveWorkTimeHeaderToDelete.CMN_STR_PPS_EffectiveWorkTime_HeaderID; ORM_CMN_BPT_EMP_EffectiveWorkTime_Position.Query positionsQuery = new ORM_CMN_BPT_EMP_EffectiveWorkTime_Position.Query(); positionsQuery.EffectiveWorkTime_Header_RefID = effectiveWorkTimeHeaderToDelete.CMN_STR_PPS_EffectiveWorkTime_HeaderID; positionsQuery.Tenant_RefID = securityTicket.TenantID; positionsQuery.IsDeleted = false; var positions = ORM_CMN_BPT_EMP_EffectiveWorkTime_Position.Query.Search(Connection, Transaction, positionsQuery); List <P_L5DWS_DEWTH_1126_Positions> listOfPositions = new List <P_L5DWS_DEWTH_1126_Positions>(); foreach (var position in positions) { P_L5DWS_DEWTH_1126_Positions positionItem = new P_L5DWS_DEWTH_1126_Positions(); positionItem.CMN_BPT_EMP_EffectiveWorkTime_PositionID = position.CMN_BPT_EMP_EffectiveWorkTime_PositionID; positionItem.durationInDays = leaveRequestUtil.LeaveRequestDuration(position.WorkTime_StartTime, position.WorkTime_StartTime.AddSeconds(position.WorkTime_Duration_in_sec), Parameter.Events, Parameter.Employees.FirstOrDefault(x => x.CMN_BPT_EMP_EmployeeID == position.CMN_BPT_EMP_Employe_RefID), true); positionItem.durationInHours = leaveRequestUtil.LeaveRequestDuration(position.WorkTime_StartTime, position.WorkTime_StartTime.AddSeconds(position.WorkTime_Duration_in_sec), Parameter.Events, Parameter.Employees.FirstOrDefault(x => x.CMN_BPT_EMP_EmployeeID == position.CMN_BPT_EMP_Employe_RefID), false); listOfPositions.Add(positionItem); } deleteParam.Positions = listOfPositions.ToArray(); cls_Delete_EffectiveWorkTime_Header.Invoke(Connection, Transaction, deleteParam, securityTicket); } ORM_CMN_BPT_EMP_EffectiveWorkTime_Header effectiveWorkTimeHeader = new ORM_CMN_BPT_EMP_EffectiveWorkTime_Header(); effectiveWorkTimeHeader.IsBreakTimeManualySpecified = false; effectiveWorkTimeHeader.ContractWorkerText = ""; effectiveWorkTimeHeader.Employee_RefID = empID; effectiveWorkTimeHeader.Tenant_RefID = securityTicket.TenantID; effectiveWorkTimeHeader.EffectiveBusinessDay = date; effectiveWorkTimeHeader.Save(Connection, Transaction); P_L5DWS_SEWTP_1337 effectivePositionParam = new P_L5DWS_SEWTP_1337(); effectivePositionParam.EffectiveWorkTime_Header_RefID = effectiveWorkTimeHeader.CMN_STR_PPS_EffectiveWorkTime_HeaderID; effectivePositionParam.WorkTime_Start = effectiveWorkTimeHeader.EffectiveBusinessDay.AddSeconds(0); effectivePositionParam.WorkTime_End = effectiveWorkTimeHeader.EffectiveBusinessDay.AddSeconds(86340); effectivePositionParam.Employee_RefID = empID; effectivePositionParam.AbsenceReason_RefID = pattern.CMN_BPT_STA_AbsenceReason_RefID; effectivePositionParam.RequestedFor_Employee_RefID = empID; cls_Save_EffectiveWorkTime_Position.Invoke(Connection, Transaction, effectivePositionParam, securityTicket); } else if (pattern.CMN_PPS_ShiftTemplate_RefID != Guid.Empty) { ORM_CMN_PPS_ShiftTemplate.Query shiftTemplateQuery = new ORM_CMN_PPS_ShiftTemplate.Query(); shiftTemplateQuery.CMN_PPS_ShiftTemplateID = pattern.CMN_PPS_ShiftTemplate_RefID; shiftTemplateQuery.Tenant_RefID = securityTicket.TenantID; shiftTemplateQuery.IsDeleted = false; var shiftTemplate = ORM_CMN_PPS_ShiftTemplate.Query.Search(Connection, Transaction, shiftTemplateQuery).FirstOrDefault(); if (shiftTemplate != null) { ORM_CMN_BPT_EMP_EffectiveWorkTime_Header.Query effectiveWorkTimeToDeleteQuery = new ORM_CMN_BPT_EMP_EffectiveWorkTime_Header.Query(); effectiveWorkTimeToDeleteQuery.EffectiveBusinessDay = date; effectiveWorkTimeToDeleteQuery.Employee_RefID = empID; effectiveWorkTimeToDeleteQuery.Tenant_RefID = securityTicket.TenantID; effectiveWorkTimeToDeleteQuery.IsDeleted = false; var allEffectiveWorkTimeHeadersToDelete = ORM_CMN_BPT_EMP_EffectiveWorkTime_Header.Query.Search(Connection, Transaction, effectiveWorkTimeToDeleteQuery); foreach (var effectiveWorkTimeHeaderToDelete in allEffectiveWorkTimeHeadersToDelete) { P_L5DWS_DEWTH_1126 deleteParam = new P_L5DWS_DEWTH_1126(); deleteParam.CMN_STR_PPS_EffectiveWorkTime_HeaderID = effectiveWorkTimeHeaderToDelete.CMN_STR_PPS_EffectiveWorkTime_HeaderID; ORM_CMN_BPT_EMP_EffectiveWorkTime_Position.Query positionsQuery = new ORM_CMN_BPT_EMP_EffectiveWorkTime_Position.Query(); positionsQuery.EffectiveWorkTime_Header_RefID = effectiveWorkTimeHeaderToDelete.CMN_STR_PPS_EffectiveWorkTime_HeaderID; positionsQuery.Tenant_RefID = securityTicket.TenantID; positionsQuery.IsDeleted = false; var positions = ORM_CMN_BPT_EMP_EffectiveWorkTime_Position.Query.Search(Connection, Transaction, positionsQuery); List <P_L5DWS_DEWTH_1126_Positions> listOfPositions = new List <P_L5DWS_DEWTH_1126_Positions>(); foreach (var position in positions) { P_L5DWS_DEWTH_1126_Positions positionItem = new P_L5DWS_DEWTH_1126_Positions(); positionItem.CMN_BPT_EMP_EffectiveWorkTime_PositionID = position.CMN_BPT_EMP_EffectiveWorkTime_PositionID; positionItem.durationInDays = leaveRequestUtil.LeaveRequestDuration(position.WorkTime_StartTime, position.WorkTime_StartTime.AddSeconds(position.WorkTime_Duration_in_sec), Parameter.Events, Parameter.Employees.FirstOrDefault(x => x.CMN_BPT_EMP_EmployeeID == position.CMN_BPT_EMP_Employe_RefID), true); positionItem.durationInHours = leaveRequestUtil.LeaveRequestDuration(position.WorkTime_StartTime, position.WorkTime_StartTime.AddSeconds(position.WorkTime_Duration_in_sec), Parameter.Events, Parameter.Employees.FirstOrDefault(x => x.CMN_BPT_EMP_EmployeeID == position.CMN_BPT_EMP_Employe_RefID), false); listOfPositions.Add(positionItem); } deleteParam.Positions = listOfPositions.ToArray(); cls_Delete_EffectiveWorkTime_Header.Invoke(Connection, Transaction, deleteParam, securityTicket); } P_L5DWS_SEWTFST_1141 saveParam = new P_L5DWS_SEWTFST_1141(); saveParam.EffectiveBusinessDay = date; saveParam.Employee_RefID = empID; saveParam.ShiftTemplate_RefID = shiftTemplate.CMN_PPS_ShiftTemplateID; cls_Save_EffectiveWorkTime_For_ShiftTemplate.Invoke(Connection, Transaction, saveParam, securityTicket); } } } } } } } } } else if (Parameter.LoadFrom_PlanData) { P_L5DWS_GDWSWDFT_0946 param = new P_L5DWS_GDWSWDFT_0946(); param.WorkSheduleDate = date; var dailyWorkSchedules = cls_Get_DailyWorkSchedules_WithDetails_For_Date.Invoke(Connection, Transaction, param, securityTicket).Result; foreach (var dailyWorkSchedule in dailyWorkSchedules) { ORM_CMN_BPT_EMP_EffectiveWorkTime_Header.Query effectiveWorkTimeToDeleteQuery = new ORM_CMN_BPT_EMP_EffectiveWorkTime_Header.Query(); effectiveWorkTimeToDeleteQuery.EffectiveBusinessDay = date; effectiveWorkTimeToDeleteQuery.Employee_RefID = dailyWorkSchedule.Employee_RefID; effectiveWorkTimeToDeleteQuery.Tenant_RefID = securityTicket.TenantID; effectiveWorkTimeToDeleteQuery.IsDeleted = false; var effectiveWorkTimeHeaderToDeleteQueryResult = ORM_CMN_BPT_EMP_EffectiveWorkTime_Header.Query.Search(Connection, Transaction, effectiveWorkTimeToDeleteQuery); if (effectiveWorkTimeHeaderToDeleteQueryResult.Count != 0) { var effectiveWorkTimeHeaderToDelete = effectiveWorkTimeHeaderToDeleteQueryResult.FirstOrDefault(); P_L5DWS_DEWTH_1126 deleteParam = new P_L5DWS_DEWTH_1126(); deleteParam.CMN_STR_PPS_EffectiveWorkTime_HeaderID = effectiveWorkTimeHeaderToDelete.CMN_STR_PPS_EffectiveWorkTime_HeaderID; ORM_CMN_BPT_EMP_EffectiveWorkTime_Position.Query positionsQuery = new ORM_CMN_BPT_EMP_EffectiveWorkTime_Position.Query(); positionsQuery.EffectiveWorkTime_Header_RefID = effectiveWorkTimeHeaderToDelete.CMN_STR_PPS_EffectiveWorkTime_HeaderID; positionsQuery.Tenant_RefID = securityTicket.TenantID; positionsQuery.IsDeleted = false; var positions = ORM_CMN_BPT_EMP_EffectiveWorkTime_Position.Query.Search(Connection, Transaction, positionsQuery); List <P_L5DWS_DEWTH_1126_Positions> listOfPositions = new List <P_L5DWS_DEWTH_1126_Positions>(); foreach (var position in positions) { P_L5DWS_DEWTH_1126_Positions positionItem = new P_L5DWS_DEWTH_1126_Positions(); positionItem.CMN_BPT_EMP_EffectiveWorkTime_PositionID = position.CMN_BPT_EMP_EffectiveWorkTime_PositionID; positionItem.durationInDays = leaveRequestUtil.LeaveRequestDuration(position.WorkTime_StartTime, position.WorkTime_StartTime.AddSeconds(position.WorkTime_Duration_in_sec), Parameter.Events, Parameter.Employees.FirstOrDefault(x => x.CMN_BPT_EMP_EmployeeID == position.CMN_BPT_EMP_Employe_RefID), true); positionItem.durationInHours = leaveRequestUtil.LeaveRequestDuration(position.WorkTime_StartTime, position.WorkTime_StartTime.AddSeconds(position.WorkTime_Duration_in_sec), Parameter.Events, Parameter.Employees.FirstOrDefault(x => x.CMN_BPT_EMP_EmployeeID == position.CMN_BPT_EMP_Employe_RefID), false); listOfPositions.Add(positionItem); } deleteParam.Positions = listOfPositions.ToArray(); cls_Delete_EffectiveWorkTime_Header.Invoke(Connection, Transaction, deleteParam, securityTicket); } ORM_CMN_BPT_EMP_EffectiveWorkTime_Header newHeader = new ORM_CMN_BPT_EMP_EffectiveWorkTime_Header(); newHeader.ContractWorkerText = dailyWorkSchedule.ContractWorkerText; newHeader.BreakDurationTime_in_sec = dailyWorkSchedule.BreakDurationTime_in_sec; newHeader.EffectiveBusinessDay = date; newHeader.Employee_RefID = dailyWorkSchedule.Employee_RefID; newHeader.IsBreakTimeManualySpecified = dailyWorkSchedule.IsBreakTimeManualySpecified; newHeader.SheduleBreakTemplate_RefID = dailyWorkSchedule.SheduleBreakTemplate_RefID; newHeader.Tenant_RefID = securityTicket.TenantID; newHeader.Save(Connection, Transaction); foreach (var dailyWorkDetail in dailyWorkSchedule.Details) { P_L5DWS_SEWTP_1337 positionSavePar = new P_L5DWS_SEWTP_1337(); if (dailyWorkDetail.LeaveRequest_RefID != Guid.Empty) { positionSavePar.AbsenceReason_RefID = dailyWorkDetail.AbsenceReason_RefID; positionSavePar.durationInDays = leaveRequestUtil.LeaveRequestDuration(dailyWorkDetail.FromTime_as_DateTime, dailyWorkDetail.ToTime_as_DateTime, Parameter.Events, Parameter.Employees.FirstOrDefault(x => x.CMN_BPT_EMP_EmployeeID == dailyWorkSchedule.Employee_RefID), true); positionSavePar.durationInHours = leaveRequestUtil.LeaveRequestDuration(dailyWorkDetail.FromTime_as_DateTime, dailyWorkDetail.ToTime_as_DateTime, Parameter.Events, Parameter.Employees.FirstOrDefault(x => x.CMN_BPT_EMP_EmployeeID == dailyWorkSchedule.Employee_RefID), false); positionSavePar.RequestedBy_Employee_RefID = Guid.Empty; positionSavePar.RequestedFor_Employee_RefID = dailyWorkSchedule.Employee_RefID; } else { positionSavePar.AbsenceReason_RefID = Guid.Empty; positionSavePar.durationInDays = 0; positionSavePar.durationInHours = 0; positionSavePar.RequestedBy_Employee_RefID = Guid.Empty; positionSavePar.RequestedFor_Employee_RefID = Guid.Empty; } positionSavePar.CMN_BPT_EMP_Employee_LeaveRequest_RefID = Guid.Empty; positionSavePar.EffectiveWorkTime_Header_RefID = newHeader.CMN_STR_PPS_EffectiveWorkTime_HeaderID; positionSavePar.Employee_RefID = newHeader.Employee_RefID; positionSavePar.OldDurationInDays = 0; positionSavePar.OldDurationInHours = 0; positionSavePar.Workplace_RefID = dailyWorkDetail.SheduleForWorkplace_RefID; positionSavePar.WorkTime_End = dailyWorkDetail.ToTime_as_DateTime; positionSavePar.WorkTime_Start = dailyWorkDetail.FromTime_as_DateTime; cls_Save_EffectiveWorkTime_Position.Invoke(Connection, Transaction, positionSavePar, securityTicket); } } } } //Put your code here return(returnValue); #endregion UserCode }
protected static FR_Guid Execute(DbConnection Connection, DbTransaction Transaction, P_L6LR_SLRDA_1224 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { #region UserCode var returnValue = new FR_Guid(); 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 = false; ApprovalActionParam.IsDenial = true; ApprovalActionParam.IsRevocation = false; cls_Save_Employee_ApprovalAction.Invoke(Connection, Transaction, ApprovalActionParam, securityTicket); 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(error); } } approvalItem.IsApprovalProcessDenied = true; approvalItem.IsApprovalProcessOpened = false; approvalItem.IsApprovalProcessCanceledByUser = false; approvalItem.IsApproved = 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; updateStatisticsParam.R_TotalAllowedAbsenceTime_InHours = statistics.R_TotalAllowedAbsenceTime_InHours; 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; updateStatisticsParam.R_AbsenceTimeUsed_InHours = statistics.R_AbsenceTimeUsed_InHours; var res = cls_Save_Employee_AbsenceReason_TimeframeStatistic.Invoke(Connection, Transaction, updateStatisticsParam, securityTicket); // statistics update end :) } } return(returnValue); #endregion UserCode }
protected static FR_Guid Execute(DbConnection Connection, DbTransaction Transaction, P_L6LR_SLRCA_1055 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { #region UserCode var returnValue = new FR_Guid(); 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 = false; ApprovalActionParam.IsDenial = false; ApprovalActionParam.IsRevocation = true; cls_Save_Employee_ApprovalAction.Invoke(Connection, Transaction, ApprovalActionParam, securityTicket); 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(error); } } bool isApprovedBefore = approvalItem.IsApproved; approvalItem.IsApprovalProcessDenied = false; approvalItem.IsApprovalProcessOpened = false; approvalItem.IsApprovalProcessCanceledByUser = true; approvalItem.IsApproved = 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; if (isApprovedBefore) { updateStatisticsParam.R_RequestReservedAbsence_InDays = statistics.R_RequestReservedAbsence_InDays; updateStatisticsParam.R_RequestReservedAbsence_InHours = statistics.R_RequestReservedAbsence_InHours; updateStatisticsParam.R_AbsenceTimeUsed_InDays = statistics.R_AbsenceTimeUsed_InDays - Parameter.durationInDays; updateStatisticsParam.R_AbsenceTimeUsed_InHours = statistics.R_AbsenceTimeUsed_InHours - Parameter.durationInHours; updateStatisticsParam.R_TotalAllowedAbsenceTime_InDays = statistics.R_TotalAllowedAbsenceTime_InDays + Parameter.durationInDays; updateStatisticsParam.R_TotalAllowedAbsenceTime_InHours = statistics.R_TotalAllowedAbsenceTime_InHours + Parameter.durationInHours; } else { 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; updateStatisticsParam.R_AbsenceTimeUsed_InHours = statistics.R_AbsenceTimeUsed_InHours; updateStatisticsParam.R_TotalAllowedAbsenceTime_InDays = statistics.R_TotalAllowedAbsenceTime_InDays; updateStatisticsParam.R_TotalAllowedAbsenceTime_InHours = statistics.R_TotalAllowedAbsenceTime_InHours; } var res = cls_Save_Employee_AbsenceReason_TimeframeStatistic.Invoke(Connection, Transaction, updateStatisticsParam, securityTicket); // statistics update end :) } DateTime startTime = calendarEvent.StartTime; while (startTime.Date <= calendarEvent.EndTime.Date) { ORM_CMN_STR_PPS_DailyWorkSchedule.Query scheduleQuery = new ORM_CMN_STR_PPS_DailyWorkSchedule.Query(); scheduleQuery.Tenant_RefID = securityTicket.TenantID; scheduleQuery.IsDeleted = false; scheduleQuery.WorkSheduleDate = startTime.Date; scheduleQuery.Employee_RefID = leaveRequest.RequestedFor_Employee_RefID; List <ORM_CMN_STR_PPS_DailyWorkSchedule> workSechedules = ORM_CMN_STR_PPS_DailyWorkSchedule.Query.Search(Connection, Transaction, scheduleQuery); if (workSechedules.Count != 0) { var dwsParam = new P_L5DWS_GDWSWDFT_0946(); dwsParam.WorkSheduleDate = startTime.Date; var resultDailyWorkSchedule = cls_Get_DailyWorkSchedules_WithDetails_For_Date.Invoke(Connection, Transaction, dwsParam, securityTicket); var dailySchedule = resultDailyWorkSchedule.Result.FirstOrDefault(i => i.Employee_RefID == leaveRequest.RequestedFor_Employee_RefID); foreach (var detail in dailySchedule.Details) { P_L5DWS_DDWSDFIDL_1014 deleteParam = new P_L5DWS_DDWSDFIDL_1014(); deleteParam.DailyWorkSchedule_DetailID = detail.CMN_STR_PPS_DailyWorkSchedule_DetailID; var scheduleID = cls_Delete_Employee_DailyWorkSchedule_Detail.Invoke(Connection, Transaction, deleteParam, securityTicket); } ORM_CMN_STR_PPS_DailyWorkSchedule schedule = new ORM_CMN_STR_PPS_DailyWorkSchedule(); if (dailySchedule.CMN_STR_PPS_DailyWorkScheduleID != Guid.Empty) { var result = schedule.Load(Connection, Transaction, dailySchedule.CMN_STR_PPS_DailyWorkScheduleID); if (result.Status != FR_Status.Success || schedule.CMN_STR_PPS_DailyWorkScheduleID == Guid.Empty) { var error = new FR_Guid(); error.ErrorMessage = "No Such ID."; error.Status = FR_Status.Error_Internal; return(error); } } schedule.IsDeleted = true; schedule.Save(Connection, Transaction); } startTime = startTime.AddDays(1); } } return(returnValue); #endregion UserCode }
protected static FR_L5DWS_GEWTFDAE_0953 Execute(DbConnection Connection, DbTransaction Transaction, P_L5DWS_GEWTFDAE_0953 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { //Leave UserCode region to enable user code saving #region UserCode var returnValue = new FR_L5DWS_GEWTFDAE_0953(); //Put your code here ORM_CMN_BPT_EMP_EffectiveWorkTime_Header.Query effectiveWorkTimeHeaderQuery = new ORM_CMN_BPT_EMP_EffectiveWorkTime_Header.Query(); effectiveWorkTimeHeaderQuery.EffectiveBusinessDay = Parameter.currentDate.Date; effectiveWorkTimeHeaderQuery.Employee_RefID = Parameter.EmployeeID; effectiveWorkTimeHeaderQuery.IsDeleted = false; effectiveWorkTimeHeaderQuery.Tenant_RefID = securityTicket.TenantID; var header = ORM_CMN_BPT_EMP_EffectiveWorkTime_Header.Query.Search(Connection, Transaction, effectiveWorkTimeHeaderQuery).FirstOrDefault(); if (header == null) { returnValue.Result = new L5DWS_GEWTFDAE_0953(); returnValue.Result.EffectiveWorkTime = null; return(returnValue); } L5DWS_GEWTFD_1648 resultItem = new L5DWS_GEWTFD_1648(); resultItem.CMN_STR_PPS_EffectiveWorkTime_HeaderID = header.CMN_STR_PPS_EffectiveWorkTime_HeaderID; resultItem.BreakDurationTime_in_sec = header.BreakDurationTime_in_sec; resultItem.ContractWorkerText = header.ContractWorkerText; resultItem.EffectiveBusinessDay = header.EffectiveBusinessDay; resultItem.Employee_RefID = header.Employee_RefID; resultItem.IsBreakTimeManualySpecified = header.IsBreakTimeManualySpecified; resultItem.SheduleBreakTemplate_RefID = header.SheduleBreakTemplate_RefID; resultItem.WorktimeComment = header.WorktimeComment; ORM_CMN_BPT_EMP_EffectiveWorkTime_Position.Query positionQuery = new ORM_CMN_BPT_EMP_EffectiveWorkTime_Position.Query(); positionQuery.EffectiveWorkTime_Header_RefID = header.CMN_STR_PPS_EffectiveWorkTime_HeaderID; positionQuery.IsDeleted = false; positionQuery.Tenant_RefID = securityTicket.TenantID; var positions = ORM_CMN_BPT_EMP_EffectiveWorkTime_Position.Query.Search(Connection, Transaction, positionQuery); List <L5DWS_GEWTFD_1648_Position> listOfPositions = new List <L5DWS_GEWTFD_1648_Position>(); foreach (var position in positions) { L5DWS_GEWTFD_1648_Position newPosition = new L5DWS_GEWTFD_1648_Position(); newPosition.Activity_RefID = position.Activity_RefID; newPosition.CMN_BPT_EMP_EffectiveWorkTime_PositionID = position.CMN_BPT_EMP_EffectiveWorkTime_PositionID; newPosition.CMN_BPT_EMP_Employe_RefID = position.CMN_BPT_EMP_Employe_RefID; newPosition.CMN_BPT_EMP_Employee_LeaveRequest_RefID = position.CMN_BPT_EMP_Employee_LeaveRequest_RefID; newPosition.EffectiveWorkTime_Header_RefID = position.EffectiveWorkTime_Header_RefID; newPosition.SourceOfEntry = position.SourceOfEntry; newPosition.Workplace_RefID = position.Workplace_RefID; newPosition.WorkTime_Duration_in_sec = position.WorkTime_Duration_in_sec; newPosition.WorkTime_StartTime = position.WorkTime_StartTime; if (position.CMN_BPT_EMP_Employee_LeaveRequest_RefID != Guid.Empty) { ORM_CMN_BPT_EMP_Employee_LeaveRequest.Query lrQuery = new ORM_CMN_BPT_EMP_Employee_LeaveRequest.Query(); lrQuery.CMN_BPT_EMP_Employee_LeaveRequestID = position.CMN_BPT_EMP_Employee_LeaveRequest_RefID; lrQuery.IsDeleted = false; lrQuery.Tenant_RefID = securityTicket.TenantID; var leaveRequest = ORM_CMN_BPT_EMP_Employee_LeaveRequest.Query.Search(Connection, Transaction, lrQuery).FirstOrDefault(); newPosition.AbsenceReason_RefID = leaveRequest.CMN_BPT_STA_AbsenceReason_RefID; } else { newPosition.AbsenceReason_RefID = Guid.Empty; } listOfPositions.Add(newPosition); } resultItem.Positions = listOfPositions.ToArray(); returnValue.Result = new L5DWS_GEWTFDAE_0953(); returnValue.Result.EffectiveWorkTime = resultItem; return(returnValue); #endregion UserCode }