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_L5DWS_GDWSDFDWSID_1156_Array Execute(DbConnection Connection, DbTransaction Transaction, P_L5DWS_GDWSDFDWSID_1156 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { #region UserCode var returnValue = new FR_L5DWS_GDWSDFDWSID_1156_Array(); //Put your code here ORM_CMN_STR_PPS_DailyWorkSchedule_Detail.Query detailsQuery = new ORM_CMN_STR_PPS_DailyWorkSchedule_Detail.Query(); detailsQuery.DailyWorkSchedule_RefID = Parameter.DailyWorkScheduleID; detailsQuery.IsDeleted = false; detailsQuery.Tenant_RefID = securityTicket.TenantID; var details = ORM_CMN_STR_PPS_DailyWorkSchedule_Detail.Query.Search(Connection, Transaction, detailsQuery); List <L5DWS_GDWSDFDWSID_1156> resultDetails = new List <L5DWS_GDWSDFDWSID_1156>(); foreach (var detail in details) { ORM_CMN_CAL_Event.Query calEventQuery = new ORM_CMN_CAL_Event.Query(); calEventQuery.CMN_CAL_EventID = detail.CMN_CAL_Event_RefID; calEventQuery.IsDeleted = false; calEventQuery.Tenant_RefID = securityTicket.TenantID; ORM_CMN_CAL_Event calEvent = ORM_CMN_CAL_Event.Query.Search(Connection, Transaction, calEventQuery).FirstOrDefault(); L5DWS_GDWSDFDWSID_1156 resultDetail = new L5DWS_GDWSDFDWSID_1156(); resultDetail.AbsenceReason_RefID = detail.AbsenceReason_RefID; resultDetail.CMN_CAL_Event_RefID = detail.CMN_CAL_Event_RefID; resultDetail.LeaveRequest_RefID = detail.CMN_BPT_EMP_Employee_LeaveRequest_RefID; resultDetail.CMN_STR_PPS_DailyWorkSchedule_DetailID = detail.CMN_STR_PPS_DailyWorkSchedule_DetailID; resultDetail.FromTime_as_time = calEvent.StartTime.ToString("HH:mm"); resultDetail.ToTime_as_time = calEvent.EndTime.ToString("HH:mm"); resultDetail.TotalWorkTime_as_time = calEvent.EndTime.Subtract(calEvent.StartTime).ToString(@"hh\:mm"); resultDetail.IsWorkBreak = detail.IsWorkBreak; resultDetail.SheduleForWorkplace_RefID = detail.SheduleForWorkplace_RefID; resultDetail.FromTime_as_DateTime = calEvent.StartTime; resultDetail.ToTime_as_DateTime = calEvent.EndTime; resultDetails.Add(resultDetail); } returnValue.Result = resultDetails.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_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_Base Execute(DbConnection Connection, DbTransaction Transaction, P_L6DWS_DDWSDFIDL_1014 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { //Leave UserCode region to enable user code saving #region UserCode var returnValue = new FR_Base(); L6TN_GSFT_1017 settings = cls_Get_Settings_For_Tenant.Invoke(Connection, Transaction, securityTicket).Result; ORM_CMN_STR_PPS_DailyWorkSchedule_Detail scheduleDetail = new ORM_CMN_STR_PPS_DailyWorkSchedule_Detail(); var result = scheduleDetail.Load(Connection, Transaction, Parameter.DailyWorkSchedule_DetailID); if (result.Status != FR_Status.Success || scheduleDetail.CMN_STR_PPS_DailyWorkSchedule_DetailID == Guid.Empty) { var error = new FR_Guid(); error.ErrorMessage = "No Such ID."; error.Status = FR_Status.Error_Internal; return(error); } ORM_CMN_CAL_Event calEvent = new ORM_CMN_CAL_Event(); calEvent.Load(Connection, Transaction, scheduleDetail.CMN_CAL_Event_RefID); if (scheduleDetail.CMN_BPT_EMP_Employee_LeaveRequest_RefID != Guid.Empty) { ORM_CMN_BPT_EMP_Employee_LeaveRequest leaveRequest = new ORM_CMN_BPT_EMP_Employee_LeaveRequest(); leaveRequest.Load(Connection, Transaction, scheduleDetail.CMN_BPT_EMP_Employee_LeaveRequest_RefID); Guid oldLeaveRequestID = leaveRequest.CMN_BPT_EMP_Employee_LeaveRequestID; ORM_CMN_CAL_Event leaveRequestEvent = new ORM_CMN_CAL_Event(); leaveRequestEvent.Load(Connection, Transaction, leaveRequest.CMN_CAL_Event_RefID); 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(); if (leaveRequestEvent.StartTime.Date != leaveRequestEvent.EndTime.Date) { DateTimeRange firstRange = null; DateTimeRange secondRange = null; DateTimeRange thirdRange = null; ORM_CMN_STR_PPS_DailyWorkSchedule dailySchedule = new ORM_CMN_STR_PPS_DailyWorkSchedule(); dailySchedule.Load(Connection, Transaction, scheduleDetail.DailyWorkSchedule_RefID); if (leaveRequestEvent.StartTime.Date == dailySchedule.WorkSheduleDate) { P_L5DWS_GDWSWDFT_0946 dailyScheduleDetailsPar = new P_L5DWS_GDWSWDFT_0946(); dailyScheduleDetailsPar.WorkSheduleDate = dailySchedule.WorkSheduleDate.AddDays(1).Date; var schedule = cls_Get_DailyWorkSchedules_WithDetails_For_Date.Invoke(Connection, Transaction, dailyScheduleDetailsPar, securityTicket).Result.FirstOrDefault(i => i.Employee_RefID == dailySchedule.Employee_RefID); secondRange = new DateTimeRange(); if (schedule != null && schedule.Details.Any(i => i.LeaveRequest_RefID == leaveRequest.CMN_BPT_EMP_Employee_LeaveRequestID)) { secondRange.Start = schedule.Details.FirstOrDefault(i => i.LeaveRequest_RefID == leaveRequest.CMN_BPT_EMP_Employee_LeaveRequestID).FromTime_as_DateTime; secondRange.End = leaveRequestEvent.EndTime; } else { secondRange = null; } } else if (leaveRequestEvent.EndTime.Date == dailySchedule.WorkSheduleDate) { firstRange = new DateTimeRange(); firstRange.Start = leaveRequestEvent.StartTime; P_L5DWS_GDWSWDFT_0946 dailyScheduleDetailsPar = new P_L5DWS_GDWSWDFT_0946(); dailyScheduleDetailsPar.WorkSheduleDate = dailySchedule.WorkSheduleDate.AddDays(-1).Date; var schedule = cls_Get_DailyWorkSchedules_WithDetails_For_Date.Invoke(Connection, Transaction, dailyScheduleDetailsPar, securityTicket).Result.FirstOrDefault(i => i.Employee_RefID == dailySchedule.Employee_RefID); if (schedule != null && schedule.Details.Any(i => i.LeaveRequest_RefID == leaveRequest.CMN_BPT_EMP_Employee_LeaveRequestID)) { firstRange.End = schedule.Details.FirstOrDefault(i => i.LeaveRequest_RefID == leaveRequest.CMN_BPT_EMP_Employee_LeaveRequestID).ToTime_as_DateTime; } else { firstRange = null; } } else { firstRange = new DateTimeRange(); firstRange.Start = leaveRequestEvent.StartTime; P_L5DWS_GDWSWDFT_0946 dailyScheduleDetailsPar = new P_L5DWS_GDWSWDFT_0946(); dailyScheduleDetailsPar.WorkSheduleDate = dailySchedule.WorkSheduleDate.AddDays(-1).Date; var schedule = cls_Get_DailyWorkSchedules_WithDetails_For_Date.Invoke(Connection, Transaction, dailyScheduleDetailsPar, securityTicket).Result.FirstOrDefault(i => i.Employee_RefID == dailySchedule.Employee_RefID); if (schedule != null && schedule.Details.Any(i => i.LeaveRequest_RefID == leaveRequest.CMN_BPT_EMP_Employee_LeaveRequestID)) { firstRange.End = schedule.Details.FirstOrDefault(i => i.LeaveRequest_RefID == leaveRequest.CMN_BPT_EMP_Employee_LeaveRequestID).ToTime_as_DateTime; } else { firstRange = null; } P_L5DWS_GDWSWDFT_0946 dailyScheduleDetailsParSecond = new P_L5DWS_GDWSWDFT_0946(); dailyScheduleDetailsParSecond.WorkSheduleDate = dailySchedule.WorkSheduleDate.AddDays(1).Date; var scheduleSecond = cls_Get_DailyWorkSchedules_WithDetails_For_Date.Invoke(Connection, Transaction, dailyScheduleDetailsParSecond, securityTicket).Result.FirstOrDefault(i => i.Employee_RefID == dailySchedule.Employee_RefID); secondRange = new DateTimeRange(); if (scheduleSecond != null && scheduleSecond.Details.Any(i => i.LeaveRequest_RefID == leaveRequest.CMN_BPT_EMP_Employee_LeaveRequestID)) { secondRange.End = leaveRequestEvent.EndTime; secondRange.Start = scheduleSecond.Details.FirstOrDefault(i => i.LeaveRequest_RefID == leaveRequest.CMN_BPT_EMP_Employee_LeaveRequestID).FromTime_as_DateTime; } else { secondRange = null; } } #region cancelLeaveRequest 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 approvalResult = approvalItem.Load(Connection, Transaction, leaveRequest.CMN_CAL_Event_Approval_RefID); if (approvalResult.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); 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; 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); } leaveRequest.Save(Connection, Transaction); Guid absenceReasonID = leaveRequest.CMN_BPT_STA_AbsenceReason_RefID; #endregion #region FirstRange var authRequired = true; var absenceReasons = cls_get_Active_AbsenceReason_For_TenantID.Invoke(Connection, Transaction, securityTicket).Result; if (absenceReasons != null) { if (absenceReasons.Any(r => r.CMN_BPT_STA_AbsenceReasonID == absenceReasonID)) { var reason = absenceReasons.FirstOrDefault(r => r.CMN_BPT_STA_AbsenceReasonID == absenceReasonID); if (reason != null) { authRequired = reason.IsAuthorizationRequired; } } } if (firstRange != null) { leaveRequestEvent = new ORM_CMN_CAL_Event(); leaveRequestEvent.CMN_CAL_EventID = Guid.NewGuid(); leaveRequestEvent.StartTime = firstRange.Start; leaveRequestEvent.EndTime = firstRange.End; leaveRequestEvent.R_EventDuration_sec = (int)firstRange.End.Subtract(firstRange.Start).TotalSeconds; leaveRequestEvent.IsRepetitive = false; leaveRequestEvent.IsWholeDayEvent = false; leaveRequestEvent.IsCalendarEvent_Editable = true; leaveRequestEvent.Tenant_RefID = securityTicket.TenantID; leaveRequestEvent.Save(Connection, Transaction); approvalItem = new ORM_CMN_CAL_Event_Approval(); approvalItem.CMN_CAL_Event_ApprovalID = Guid.NewGuid(); approvalItem.Event_RefID = leaveRequestEvent.CMN_CAL_EventID; approvalItem.IsApprovalProcessDenied = false; approvalItem.IsApprovalProcessOpened = false; if (settings.NumberOfResponsiblePersonsRequiredToApprove == 0 || !authRequired) { approvalItem.IsApproved = true; approvalItem.IsApprovalProcessOpened = false; } else { approvalItem.IsApproved = false; approvalItem.IsApprovalProcessOpened = true; } approvalItem.IsApprovalProcessCanceledByUser = false; approvalItem.IsDeleted = false; approvalItem.Creation_Timestamp = DateTime.Now; approvalItem.Tenant_RefID = securityTicket.TenantID; approvalItem.Save(Connection, Transaction); leaveRequest = new ORM_CMN_BPT_EMP_Employee_LeaveRequest(); leaveRequest.CMN_BPT_EMP_Employee_LeaveRequestID = Guid.NewGuid(); leaveRequest.CMN_BPT_STA_AbsenceReason_RefID = absenceReasonID; leaveRequest.CMN_CAL_Event_Approval_RefID = approvalItem.CMN_CAL_Event_ApprovalID; leaveRequest.CMN_CAL_Event_RefID = leaveRequestEvent.CMN_CAL_EventID; leaveRequest.IsDeleted = false; leaveRequest.RequestedFor_Employee_RefID = dailySchedule.Employee_RefID; leaveRequest.Tenant_RefID = securityTicket.TenantID; leaveRequest.Creation_Timestamp = DateTime.Now; leaveRequest.LeaveRequestCreationSource = "plannico.time"; leaveRequest.Save(Connection, Transaction); P_L5DWS_GDWSWDFP_1225 par = new P_L5DWS_GDWSWDFP_1225(); par.StartDate = firstRange.Start; par.EndDate = firstRange.End; var schedulesWithDetails = cls_Get_DailyWorkSchedules_WithDetails_For_Period.Invoke(Connection, Transaction, par, securityTicket).Result.DailyWorkSchedulesWithDetails; foreach (var schedule in schedulesWithDetails) { if (schedule.Details.Any(i => i.LeaveRequest_RefID == oldLeaveRequestID)) { foreach (var detailItem in schedule.Details.Where(i => i.LeaveRequest_RefID == oldLeaveRequestID).ToArray()) { ORM_CMN_STR_PPS_DailyWorkSchedule_Detail detail = new ORM_CMN_STR_PPS_DailyWorkSchedule_Detail(); detail.Load(Connection, Transaction, detailItem.CMN_STR_PPS_DailyWorkSchedule_DetailID); detail.CMN_BPT_EMP_Employee_LeaveRequest_RefID = leaveRequest.CMN_BPT_EMP_Employee_LeaveRequestID; detail.Save(Connection, Transaction); } } } } #endregion #region secondRange if (secondRange != null) { leaveRequestEvent = new ORM_CMN_CAL_Event(); leaveRequestEvent.CMN_CAL_EventID = Guid.NewGuid(); leaveRequestEvent.StartTime = secondRange.Start; leaveRequestEvent.EndTime = secondRange.End; leaveRequestEvent.R_EventDuration_sec = (int)secondRange.End.Subtract(secondRange.Start).TotalSeconds; leaveRequestEvent.IsRepetitive = false; leaveRequestEvent.IsWholeDayEvent = false; leaveRequestEvent.IsCalendarEvent_Editable = true; leaveRequestEvent.Tenant_RefID = securityTicket.TenantID; leaveRequestEvent.Save(Connection, Transaction); approvalItem = new ORM_CMN_CAL_Event_Approval(); approvalItem.CMN_CAL_Event_ApprovalID = Guid.NewGuid(); approvalItem.Event_RefID = leaveRequestEvent.CMN_CAL_EventID; approvalItem.IsApprovalProcessDenied = false; approvalItem.IsApprovalProcessOpened = false; if (settings.NumberOfResponsiblePersonsRequiredToApprove == 0 || !authRequired) { approvalItem.IsApproved = true; approvalItem.IsApprovalProcessOpened = false; } else { approvalItem.IsApprovalProcessOpened = true; approvalItem.IsApproved = false; } approvalItem.IsApprovalProcessCanceledByUser = false; approvalItem.IsDeleted = false; approvalItem.Creation_Timestamp = DateTime.Now; approvalItem.Tenant_RefID = securityTicket.TenantID; approvalItem.Save(Connection, Transaction); leaveRequest = new ORM_CMN_BPT_EMP_Employee_LeaveRequest(); leaveRequest.CMN_BPT_EMP_Employee_LeaveRequestID = Guid.NewGuid(); leaveRequest.CMN_BPT_STA_AbsenceReason_RefID = absenceReasonID; leaveRequest.CMN_CAL_Event_Approval_RefID = approvalItem.CMN_CAL_Event_ApprovalID; leaveRequest.CMN_CAL_Event_RefID = leaveRequestEvent.CMN_CAL_EventID; leaveRequest.IsDeleted = false; leaveRequest.RequestedFor_Employee_RefID = dailySchedule.Employee_RefID; leaveRequest.Tenant_RefID = securityTicket.TenantID; leaveRequest.Creation_Timestamp = DateTime.Now; leaveRequest.LeaveRequestCreationSource = "plannico.time"; leaveRequest.Save(Connection, Transaction); P_L5DWS_GDWSWDFP_1225 par = new P_L5DWS_GDWSWDFP_1225(); par.StartDate = secondRange.Start; par.EndDate = secondRange.End; var schedulesWithDetails = cls_Get_DailyWorkSchedules_WithDetails_For_Period.Invoke(Connection, Transaction, par, securityTicket).Result.DailyWorkSchedulesWithDetails; foreach (var schedule in schedulesWithDetails) { if (schedule.Details.Any(i => i.LeaveRequest_RefID == oldLeaveRequestID)) { foreach (var detailItem in schedule.Details.Where(i => i.LeaveRequest_RefID == oldLeaveRequestID).ToArray()) { ORM_CMN_STR_PPS_DailyWorkSchedule_Detail detail = new ORM_CMN_STR_PPS_DailyWorkSchedule_Detail(); detail.Load(Connection, Transaction, detailItem.CMN_STR_PPS_DailyWorkSchedule_DetailID); detail.CMN_BPT_EMP_Employee_LeaveRequest_RefID = leaveRequest.CMN_BPT_EMP_Employee_LeaveRequestID; detail.Save(Connection, Transaction); } } } } #endregion #region thirdRange if (thirdRange != null) { leaveRequestEvent = new ORM_CMN_CAL_Event(); leaveRequestEvent.CMN_CAL_EventID = Guid.NewGuid(); leaveRequestEvent.StartTime = thirdRange.Start; leaveRequestEvent.EndTime = thirdRange.End; leaveRequestEvent.R_EventDuration_sec = (int)thirdRange.End.Subtract(thirdRange.Start).TotalSeconds; leaveRequestEvent.IsRepetitive = false; leaveRequestEvent.IsWholeDayEvent = false; leaveRequestEvent.IsCalendarEvent_Editable = true; leaveRequestEvent.Tenant_RefID = securityTicket.TenantID; leaveRequestEvent.Save(Connection, Transaction); approvalItem = new ORM_CMN_CAL_Event_Approval(); approvalItem.CMN_CAL_Event_ApprovalID = Guid.NewGuid(); approvalItem.Event_RefID = leaveRequestEvent.CMN_CAL_EventID; approvalItem.IsApprovalProcessDenied = false; approvalItem.IsApprovalProcessOpened = false; if (settings.NumberOfResponsiblePersonsRequiredToApprove == 0 || !authRequired) { approvalItem.IsApprovalProcessOpened = false; approvalItem.IsApproved = true; } else { approvalItem.IsApprovalProcessOpened = true; approvalItem.IsApproved = false; } approvalItem.IsApprovalProcessCanceledByUser = false; approvalItem.IsDeleted = false; approvalItem.Creation_Timestamp = DateTime.Now; approvalItem.Tenant_RefID = securityTicket.TenantID; approvalItem.Save(Connection, Transaction); leaveRequest = new ORM_CMN_BPT_EMP_Employee_LeaveRequest(); leaveRequest.CMN_BPT_EMP_Employee_LeaveRequestID = Guid.NewGuid(); leaveRequest.CMN_BPT_STA_AbsenceReason_RefID = absenceReasonID; leaveRequest.CMN_CAL_Event_Approval_RefID = approvalItem.CMN_CAL_Event_ApprovalID; leaveRequest.CMN_CAL_Event_RefID = leaveRequestEvent.CMN_CAL_EventID; leaveRequest.IsDeleted = false; leaveRequest.RequestedFor_Employee_RefID = dailySchedule.Employee_RefID; leaveRequest.Tenant_RefID = securityTicket.TenantID; leaveRequest.Creation_Timestamp = DateTime.Now; leaveRequest.LeaveRequestCreationSource = "plannico.time"; leaveRequest.Save(Connection, Transaction); P_L5DWS_GDWSWDFP_1225 par = new P_L5DWS_GDWSWDFP_1225(); par.StartDate = thirdRange.Start; par.EndDate = thirdRange.End; var schedulesWithDetails = cls_Get_DailyWorkSchedules_WithDetails_For_Period.Invoke(Connection, Transaction, par, securityTicket).Result.DailyWorkSchedulesWithDetails; foreach (var schedule in schedulesWithDetails) { if (schedule.Details.Any(i => i.LeaveRequest_RefID == oldLeaveRequestID)) { foreach (var detailItem in schedule.Details.Where(i => i.LeaveRequest_RefID == oldLeaveRequestID).ToArray()) { ORM_CMN_STR_PPS_DailyWorkSchedule_Detail detail = new ORM_CMN_STR_PPS_DailyWorkSchedule_Detail(); detail.Load(Connection, Transaction, detailItem.CMN_STR_PPS_DailyWorkSchedule_DetailID); detail.CMN_BPT_EMP_Employee_LeaveRequest_RefID = leaveRequest.CMN_BPT_EMP_Employee_LeaveRequestID; detail.Save(Connection, Transaction); } } } } #endregion } else { leaveRequestEvent.Remove(Connection, Transaction); leaveRequest.Remove(Connection, Transaction); var approvalItem = new ORM_CMN_CAL_Event_Approval(); if (leaveRequest.CMN_CAL_Event_Approval_RefID != Guid.Empty) { var approvalResult = approvalItem.Load(Connection, Transaction, leaveRequest.CMN_CAL_Event_Approval_RefID); if (approvalResult.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; 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; 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); } } } P_L5DWS_DDWSDFIDL_1014 param = new P_L5DWS_DDWSDFIDL_1014(); param.DailyWorkSchedule_DetailID = Parameter.DailyWorkSchedule_DetailID; cls_Delete_Employee_DailyWorkSchedule_Detail.Invoke(Connection, Transaction, param, securityTicket); //Put your code here return(returnValue); #endregion UserCode }
protected static FR_L6DE_SDaTT_1355 Execute(DbConnection Connection, DbTransaction Transaction, P_L6DE_SDaTT_1355 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { #region UserCode var returnValue = new FR_L6DE_SDaTT_1355(); returnValue.Result = new L6DE_SDaTT_1355(); returnValue.Result.BaseData = new L5MHC_SDIwDC_1040(); Parameter.BaseData.UpdateSlots = Parameter.UpdateSlots; var prevOfficeID = Guid.Empty; if (Parameter.BaseData.BaseData.PPS_DEV_Device_InstanceID != Guid.Empty) { ORM_PPS_DEV_Device_Instance_OfficeLocation location = ORM_PPS_DEV_Device_Instance_OfficeLocation.Query.Search(Connection, Transaction, new ORM_PPS_DEV_Device_Instance_OfficeLocation.Query() { IsDeleted = false, Tenant_RefID = securityTicket.TenantID, DeviceInstance_RefID = Parameter.BaseData.BaseData.PPS_DEV_Device_InstanceID }).SingleOrDefault(); if (location != null) { prevOfficeID = location.CMN_STR_Office_RefID; } } var instanceID = cls_Save_DeviceInstance_withDeleteCheck.Invoke(Connection, Transaction, Parameter.BaseData, securityTicket).Result; if (Parameter.BaseData.BaseData.IsDelete) { returnValue.Result.BaseData = instanceID; } else { if (Parameter.AvailabilityDate != null) { foreach (var timeItem in Parameter.AvailabilityDate) { var availabilityType = ORM_CMN_CAL_AVA_Availability_Type.Query.Search(Connection, Transaction, new ORM_CMN_CAL_AVA_Availability_Type.Query() { Tenant_RefID = securityTicket.TenantID, IsDeleted = false, GlobalPropertyMatchingID = timeItem.Type }).First(); #region Delete if (timeItem.IsDeleted) { ORM_PPS_DEV_Device_Instance_Availability.Query.SoftDelete(Connection, Transaction, new ORM_PPS_DEV_Device_Instance_Availability.Query() { Tenant_RefID = securityTicket.TenantID, IsDeleted = false, CMN_CAL_AVA_Availability_RefID = timeItem.AvailabilityID, }); } #endregion else { var assignment = ORM_PPS_DEV_Device_Instance_Availability.Query.Search(Connection, Transaction, new ORM_PPS_DEV_Device_Instance_Availability.Query() { Tenant_RefID = securityTicket.TenantID, IsDeleted = false, CMN_CAL_AVA_Availability_RefID = timeItem.AvailabilityID, DeviceInstance_RefID = instanceID.ID }).SingleOrDefault(); #region Save if (assignment == null) { assignment = new ORM_PPS_DEV_Device_Instance_Availability(); assignment.PPS_DEV_Device_Instance_AvailabilityID = Guid.NewGuid(); assignment.CMN_CAL_AVA_Availability_RefID = timeItem.AvailabilityID; assignment.DeviceInstance_RefID = instanceID.ID; assignment.Tenant_RefID = securityTicket.TenantID; assignment.Creation_Timestamp = DateTime.Now; assignment.Save(Connection, Transaction); var availability = new ORM_CMN_CAL_AVA_Availability(); availability.CMN_CAL_AVA_AvailabilityID = assignment.CMN_CAL_AVA_Availability_RefID; availability.Tenant_RefID = securityTicket.TenantID; availability.Creation_Timestamp = DateTime.Now; availability.AvailabilityType_RefID = availabilityType.CMN_CAL_AVA_Availability_TypeID; availability.IsAvailabilityExclusionItem = timeItem.IsException; availability.Save(Connection, Transaction); Guid EventId = Guid.NewGuid(); var date = new ORM_CMN_CAL_AVA_Date(); date.CMN_CAL_AVA_DateID = Guid.NewGuid(); date.Availability_RefID = availability.CMN_CAL_AVA_AvailabilityID; date.CMN_CAL_Event_RefID = EventId; date.DateName = timeItem.AvailabilityDate_Name; date.DateComment = timeItem.Reason; date.Tenant_RefID = securityTicket.TenantID; date.Creation_Timestamp = DateTime.Now; date.Save(Connection, Transaction); var events = new ORM_CMN_CAL_Event(); events.CMN_CAL_EventID = EventId; events.IsRepetitive = timeItem.IsRepetitive; events.StartTime = timeItem.AvailabilityDate_From; events.EndTime = timeItem.AvailabilityDate_To; events.Tenant_RefID = securityTicket.TenantID; events.Creation_Timestamp = DateTime.Now; events.Repetition_RefID = Guid.NewGuid(); events.Save(Connection, Transaction); if (timeItem.IsRepetitive) { events.Repetition_RefID = Guid.NewGuid(); var repetitions = new ORM_CMN_CAL_Repetition(); repetitions.CMN_CAL_RepetitionID = events.Repetition_RefID; repetitions.IsMonthly = timeItem.IsMontly; repetitions.IsWeekly = timeItem.IsWeekly; repetitions.IsDaily = timeItem.IsDaily; repetitions.IsYearly = timeItem.IsYearly; repetitions.Tenant_RefID = securityTicket.TenantID; repetitions.Creation_Timestamp = DateTime.Now; repetitions.Save(Connection, Transaction); if (timeItem.IsWeekly) { var repetitionWeekly = new ORM_CMN_CAL_RepetitionPatterns_Weekly(); repetitionWeekly.CMN_CAL_RepetitionPattern_WeeklyID = Guid.NewGuid(); repetitionWeekly.Repetition_RefID = repetitions.CMN_CAL_RepetitionID; repetitionWeekly.Tenant_RefID = securityTicket.TenantID; repetitionWeekly.Creation_Timestamp = DateTime.Now; repetitionWeekly.HasRepeatingOn_Fridays = timeItem.HasRepeatingOn_Fridays; repetitionWeekly.HasRepeatingOn_Mondays = timeItem.HasRepeatingOn_Mondays; repetitionWeekly.HasRepeatingOn_Saturdays = timeItem.HasRepeatingOn_Saturdays; repetitionWeekly.HasRepeatingOn_Sundays = timeItem.HasRepeatingOn_Sundays; repetitionWeekly.HasRepeatingOn_Thursdays = timeItem.HasRepeatingOn_Thursdays; repetitionWeekly.HasRepeatingOn_Tuesdays = timeItem.HasRepeatingOn_Tuesdays; repetitionWeekly.HasRepeatingOn_Wednesdays = timeItem.HasRepeatingOn_Wednesdays; repetitionWeekly.Save(Connection, Transaction); } if (timeItem.IsMontly) { var repetitionMontly = new ORM_CMN_CAL_RepetitionPatterns_Monthly(); repetitionMontly.CMN_CAL_RepetitionPattern_MonthlyID = Guid.NewGuid(); repetitionMontly.Repetition_RefID = repetitions.CMN_CAL_RepetitionID; repetitionMontly.Tenant_RefID = securityTicket.TenantID; repetitionMontly.Creation_Timestamp = DateTime.Now; repetitionMontly.Save(Connection, Transaction); } if (timeItem.IsDaily) { var repetitionDaily = new ORM_CMN_CAL_RepetitionPatterns_Daily(); repetitionDaily.CMN_CAL_RepetitionPattern_DailyID = Guid.NewGuid(); repetitionDaily.Repetition_RefID = repetitions.CMN_CAL_RepetitionID; repetitionDaily.Tenant_RefID = securityTicket.TenantID; repetitionDaily.Creation_Timestamp = DateTime.Now; repetitionDaily.Save(Connection, Transaction); } if (timeItem.IsYearly) { var repetitionYearly = new ORM_CMN_CAL_RepetitionPatterns_Yearly(); repetitionYearly.CMN_CAL_RepetitionPattern_YearlyID = Guid.NewGuid(); repetitionYearly.Repetition_RefID = repetitions.CMN_CAL_RepetitionID; repetitionYearly.Tenant_RefID = securityTicket.TenantID; repetitionYearly.Creation_Timestamp = DateTime.Now; repetitionYearly.Save(Connection, Transaction); } } events.Save(Connection, Transaction); } #endregion #region Edit else { var date = ORM_CMN_CAL_AVA_Date.Query.Search(Connection, Transaction, new ORM_CMN_CAL_AVA_Date.Query() { Availability_RefID = assignment.CMN_CAL_AVA_Availability_RefID, IsDeleted = false, Tenant_RefID = securityTicket.TenantID }).Single(); date.DateName = timeItem.AvailabilityDate_Name; date.DateComment = timeItem.Reason; date.Save(Connection, Transaction); var Events = ORM_CMN_CAL_Event.Query.Search(Connection, Transaction, new ORM_CMN_CAL_Event.Query() { CMN_CAL_EventID = date.CMN_CAL_Event_RefID, Tenant_RefID = securityTicket.TenantID, IsDeleted = false }).Single(); Events.IsRepetitive = timeItem.IsRepetitive; Events.IsWholeDayEvent = timeItem.IsWholeDay; Events.StartTime = timeItem.AvailabilityDate_From; Events.EndTime = timeItem.AvailabilityDate_To; var repetitions = ORM_CMN_CAL_Repetition.Query.Search(Connection, Transaction, new ORM_CMN_CAL_Repetition.Query() { CMN_CAL_RepetitionID = Events.Repetition_RefID, Tenant_RefID = securityTicket.TenantID, IsDeleted = false }).SingleOrDefault(); if (repetitions != null) { repetitions.IsDeleted = true; repetitions.Save(Connection, Transaction); if (repetitions.IsWeekly) { ORM_CMN_CAL_RepetitionPatterns_Weekly.Query.SoftDelete(Connection, Transaction, new ORM_CMN_CAL_RepetitionPatterns_Weekly.Query() { IsDeleted = false, Tenant_RefID = securityTicket.TenantID, Repetition_RefID = repetitions.CMN_CAL_RepetitionID, }); } if (repetitions.IsMonthly) { ORM_CMN_CAL_RepetitionPatterns_Monthly.Query.SoftDelete(Connection, Transaction, new ORM_CMN_CAL_RepetitionPatterns_Monthly.Query() { Repetition_RefID = repetitions.CMN_CAL_RepetitionID, Tenant_RefID = securityTicket.TenantID, IsDeleted = false }); } if (repetitions.IsDaily) { ORM_CMN_CAL_RepetitionPatterns_Daily.Query.SoftDelete(Connection, Transaction, new ORM_CMN_CAL_RepetitionPatterns_Daily.Query() { Repetition_RefID = repetitions.CMN_CAL_RepetitionID, IsDeleted = false, Tenant_RefID = securityTicket.TenantID }); } if (repetitions.IsYearly) { ORM_CMN_CAL_RepetitionPatterns_Yearly.Query.SoftDelete(Connection, Transaction, new ORM_CMN_CAL_RepetitionPatterns_Yearly.Query() { Tenant_RefID = securityTicket.TenantID, IsDeleted = false, Repetition_RefID = repetitions.CMN_CAL_RepetitionID }); } } if (timeItem.IsRepetitive) { Events.Repetition_RefID = Guid.NewGuid(); repetitions = new ORM_CMN_CAL_Repetition(); repetitions.CMN_CAL_RepetitionID = Events.Repetition_RefID; repetitions.IsMonthly = timeItem.IsMontly; repetitions.IsWeekly = timeItem.IsWeekly; repetitions.IsDaily = timeItem.IsDaily; repetitions.IsYearly = timeItem.IsYearly; repetitions.Tenant_RefID = securityTicket.TenantID; repetitions.Creation_Timestamp = DateTime.Now; repetitions.Save(Connection, Transaction); if (timeItem.IsWeekly) { var repetitionWeekly = new ORM_CMN_CAL_RepetitionPatterns_Weekly(); repetitionWeekly.CMN_CAL_RepetitionPattern_WeeklyID = Guid.NewGuid(); repetitionWeekly.HasRepeatingOn_Fridays = timeItem.HasRepeatingOn_Fridays; repetitionWeekly.HasRepeatingOn_Mondays = timeItem.HasRepeatingOn_Mondays; repetitionWeekly.HasRepeatingOn_Saturdays = timeItem.HasRepeatingOn_Saturdays; repetitionWeekly.HasRepeatingOn_Sundays = timeItem.HasRepeatingOn_Sundays; repetitionWeekly.HasRepeatingOn_Thursdays = timeItem.HasRepeatingOn_Thursdays; repetitionWeekly.HasRepeatingOn_Tuesdays = timeItem.HasRepeatingOn_Tuesdays; repetitionWeekly.HasRepeatingOn_Wednesdays = timeItem.HasRepeatingOn_Wednesdays; repetitionWeekly.Repetition_RefID = repetitions.CMN_CAL_RepetitionID; repetitionWeekly.Tenant_RefID = securityTicket.TenantID; repetitionWeekly.Creation_Timestamp = DateTime.Now; repetitionWeekly.Save(Connection, Transaction); } if (timeItem.IsMontly) { var repetitionMontly = new ORM_CMN_CAL_RepetitionPatterns_Monthly(); repetitionMontly.CMN_CAL_RepetitionPattern_MonthlyID = Guid.NewGuid(); repetitionMontly.Repetition_RefID = repetitions.CMN_CAL_RepetitionID; repetitionMontly.Tenant_RefID = securityTicket.TenantID; repetitionMontly.Creation_Timestamp = DateTime.Now; repetitionMontly.Save(Connection, Transaction); } if (timeItem.IsDaily) { var repetitionDaily = new ORM_CMN_CAL_RepetitionPatterns_Daily(); repetitionDaily.CMN_CAL_RepetitionPattern_DailyID = Guid.NewGuid(); repetitionDaily.Repetition_RefID = repetitions.CMN_CAL_RepetitionID; repetitionDaily.Tenant_RefID = securityTicket.TenantID; repetitionDaily.Creation_Timestamp = DateTime.Now; repetitionDaily.Save(Connection, Transaction); } if (timeItem.IsYearly) { var repetitionYearly = new ORM_CMN_CAL_RepetitionPatterns_Yearly(); repetitionYearly.CMN_CAL_RepetitionPattern_YearlyID = Guid.NewGuid(); repetitionYearly.Repetition_RefID = repetitions.CMN_CAL_RepetitionID; repetitionYearly.Tenant_RefID = securityTicket.TenantID; repetitionYearly.Creation_Timestamp = DateTime.Now; repetitionYearly.Save(Connection, Transaction); } } Events.Save(Connection, Transaction); } #endregion } } returnValue.Result.BaseData = instanceID; } } if (Parameter.UpdateSlots) { if (!Parameter.BaseData.BaseData.IsDelete) { cls_CreateUpdate_Slots_for_Practice.Invoke(Connection, Transaction, new P_L5S_SUSfP_1708() { PracticeID = Parameter.BaseData.BaseData.OfficeID }, securityTicket); if (prevOfficeID != Guid.Empty && prevOfficeID != Parameter.BaseData.BaseData.OfficeID) { cls_CreateUpdate_Slots_for_Practice.Invoke(Connection, Transaction, new P_L5S_SUSfP_1708() { PracticeID = prevOfficeID }, securityTicket); } } else { if (prevOfficeID != Guid.Empty) { cls_CreateUpdate_Slots_for_Practice.Invoke(Connection, Transaction, new P_L5S_SUSfP_1708() { PracticeID = prevOfficeID }, securityTicket); } } } 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_Guid Execute(DbConnection Connection, DbTransaction Transaction, P_L3PR_SP_1520 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { #region UserCode var returnValue = new FR_Guid(); //Put your code here #region Save if (Parameter.CMN_CAL_EVT_PresentationID == Guid.Empty) { ORM_CMN_CAL_Event presentationEvent = new ORM_CMN_CAL_Event(); presentationEvent.CMN_CAL_EventID = Guid.NewGuid(); presentationEvent.StartTime = Parameter.PresentationDate; presentationEvent.Tenant_RefID = securityTicket.TenantID; presentationEvent.IsDeleted = false; presentationEvent.Save(Connection, Transaction); ORM_CMN_CAL_EVT_Presentation presentation = new ORM_CMN_CAL_EVT_Presentation(); presentation.CMN_CAL_EVT_PresentationID = Guid.NewGuid(); presentation.Ext_CMN_CAL_Calendar_RefID = presentationEvent.CMN_CAL_EventID; presentation.MaximumNumberOfParticipants = Parameter.MaximumNumberOfParticipants; presentation.PresentationLocation = Parameter.PresentationLocation; presentation.PresentationTitle = Parameter.PresentationTitle; presentation.PresentationDescription = Parameter.PresentationDescription; presentation.IsFeaturedEvent = Parameter.IsFeaturedEvent; presentation.Tenant_RefID = securityTicket.TenantID; presentation.IsDeleted = false; presentation.Save(Connection, Transaction); ORM_CMN_CAL_EVT_Presenter presenter = new ORM_CMN_CAL_EVT_Presenter(); presenter.CMN_CAL_EVT_PresenterID = Guid.NewGuid(); presenter.Presentation_RefID = presentation.CMN_CAL_EVT_PresentationID; presenter.PresenterDisplayName = Parameter.PresenterDisplayName; presenter.Tenant_RefID = securityTicket.TenantID; presenter.IsDeleted = false; presenter.Save(Connection, Transaction); returnValue.Result = presentation.CMN_CAL_EVT_PresentationID; } #endregion else { var existingPresentation = ORM_CMN_CAL_EVT_Presentation.Query.Search(Connection, Transaction, new ORM_CMN_CAL_EVT_Presentation.Query { CMN_CAL_EVT_PresentationID = Parameter.CMN_CAL_EVT_PresentationID, IsDeleted = false, Tenant_RefID = securityTicket.TenantID }).Single(); var existingEventDate = ORM_CMN_CAL_Event.Query.Search(Connection, Transaction, new ORM_CMN_CAL_Event.Query { CMN_CAL_EventID = existingPresentation.Ext_CMN_CAL_Calendar_RefID, IsDeleted = false, Tenant_RefID = securityTicket.TenantID }).Single(); var existingPresenter = ORM_CMN_CAL_EVT_Presenter.Query.Search(Connection, Transaction, new ORM_CMN_CAL_EVT_Presenter.Query { Presentation_RefID = existingPresentation.CMN_CAL_EVT_PresentationID, IsDeleted = false, Tenant_RefID = securityTicket.TenantID }).Single(); #region Edit if (!Parameter.IsDeleted) { existingPresentation.MaximumNumberOfParticipants = Parameter.MaximumNumberOfParticipants; existingPresentation.PresentationLocation = Parameter.PresentationLocation; existingPresentation.PresentationTitle = Parameter.PresentationTitle; existingPresentation.PresentationDescription = Parameter.PresentationDescription; existingPresentation.IsFeaturedEvent = Parameter.IsFeaturedEvent; existingEventDate.StartTime = Parameter.PresentationDate; existingPresenter.PresenterDisplayName = Parameter.PresenterDisplayName; } #endregion #region Delete else { existingPresentation.IsDeleted = true; existingEventDate.IsDeleted = true; existingPresenter.IsDeleted = true; } #endregion existingEventDate.Save(Connection, Transaction); existingPresenter.Save(Connection, Transaction); existingPresentation.Save(Connection, Transaction); returnValue.Result = existingPresentation.CMN_CAL_EVT_PresentationID; } return(returnValue); #endregion UserCode }
protected static FR_Guid Execute(DbConnection Connection, DbTransaction Transaction, P_L5DWS_SEWTP_1337 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { #region UserCode var returnValue = new FR_Guid(); //Put your code here LeaveRequestUtils leaveRequestUtil = new LeaveRequestUtils(); ORM_CMN_BPT_EMP_EffectiveWorkTime_Position effectivePosition = new ORM_CMN_BPT_EMP_EffectiveWorkTime_Position(); if (Parameter.CMN_BPT_EMP_EffectiveWorkTime_PositionID != Guid.Empty) { var result = effectivePosition.Load(Connection, Transaction, Parameter.CMN_BPT_EMP_EffectiveWorkTime_PositionID); if (result.Status != FR_Status.Success || effectivePosition.CMN_BPT_EMP_EffectiveWorkTime_PositionID == Guid.Empty) { var error = new FR_Guid(); error.ErrorMessage = "No Such ID."; error.Status = FR_Status.Error_Internal; return(error); } effectivePosition.EffectiveWorkTime_Header_RefID = Parameter.EffectiveWorkTime_Header_RefID; effectivePosition.CMN_BPT_EMP_Employe_RefID = Parameter.Employee_RefID; effectivePosition.CMN_BPT_EMP_Employee_LeaveRequest_RefID = Parameter.CMN_BPT_EMP_Employee_LeaveRequest_RefID; effectivePosition.Workplace_RefID = Parameter.Workplace_RefID; effectivePosition.Tenant_RefID = securityTicket.TenantID; effectivePosition.WorkTime_StartTime = Parameter.WorkTime_Start; effectivePosition.WorkTime_Duration_in_sec = (int)Parameter.WorkTime_End.Subtract(Parameter.WorkTime_Start).TotalSeconds; effectivePosition.SourceOfEntry = Parameter.SourceOfEntry; effectivePosition.Save(Connection, Transaction); if (Parameter.AbsenceReason_RefID != Guid.Empty) { P_L5DWS_GDWSWDFPAE_1331 par = new P_L5DWS_GDWSWDFPAE_1331(); par.EmployeeID = Parameter.Employee_RefID; par.PeriodStartDate = Parameter.WorkTime_Start.Date; par.PeriodEndDate = Parameter.WorkTime_Start.Date; var planningData = cls_Get_DailyWorkSchedules_WithDetails_For_Period_And_EmployeeID.Invoke(Connection, Transaction, par, securityTicket).Result; if (planningData.DailyWorkSchedulesWithDetails.Length != 0) { var dailyWorkSchedule = planningData.DailyWorkSchedulesWithDetails[0]; foreach (var detail in dailyWorkSchedule.Details) { if (detail.LeaveRequest_RefID != Guid.Empty) { ORM_CMN_BPT_EMP_Employee_LeaveRequest leaveRequest = new ORM_CMN_BPT_EMP_Employee_LeaveRequest(); leaveRequest.Load(Connection, Transaction, detail.LeaveRequest_RefID); leaveRequest.Remove(Connection, Transaction); ORM_CMN_CAL_Event leaveRequestEvent = new ORM_CMN_CAL_Event(); leaveRequestEvent.Load(Connection, Transaction, leaveRequest.CMN_CAL_Event_RefID); leaveRequestEvent.Remove(Connection, Transaction); 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]; P_L5TN_GCTFFTAY_1320 timeFrameParam = new P_L5TN_GCTFFTAY_1320(); timeFrameParam.Year = leaveRequestEvent.StartTime.Year; var timeFrame = cls_Get_CalculationTimeFramesForTenant_And_Year.Invoke(Connection, Transaction, timeFrameParam, securityTicket).Result.CalculationTimeFrame; var approvalItem = new ORM_CMN_CAL_Event_Approval(); if (leaveRequest.CMN_CAL_Event_Approval_RefID != Guid.Empty) { var approvalResult = approvalItem.Load(Connection, Transaction, leaveRequest.CMN_CAL_Event_Approval_RefID); if (approvalResult.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; 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; var durationInDays = leaveRequestUtil.LeaveRequestDuration(leaveRequestEvent.StartTime, leaveRequestEvent.EndTime, Parameter.Events, Parameter.Employees.FirstOrDefault(x => x.CMN_BPT_EMP_EmployeeID == leaveRequest.RequestedFor_Employee_RefID), true); var durationInHours = leaveRequestUtil.LeaveRequestDuration(leaveRequestEvent.StartTime, leaveRequestEvent.EndTime, Parameter.Events, Parameter.Employees.FirstOrDefault(x => x.CMN_BPT_EMP_EmployeeID == leaveRequest.RequestedFor_Employee_RefID), false); if (!isApprovedBefore) { updateStatisticsParam.R_RequestReservedAbsence_InDays = statistics.R_RequestReservedAbsence_InDays - durationInDays; updateStatisticsParam.R_RequestReservedAbsence_InHours = statistics.R_RequestReservedAbsence_InHours - 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); } ORM_CMN_STR_PPS_DailyWorkSchedule_Detail scheduleDetail = new ORM_CMN_STR_PPS_DailyWorkSchedule_Detail(); result = scheduleDetail.Load(Connection, Transaction, detail.CMN_STR_PPS_DailyWorkSchedule_DetailID); if (result.Status != FR_Status.Success || scheduleDetail.CMN_STR_PPS_DailyWorkSchedule_DetailID == Guid.Empty) { var error = new FR_Guid(); error.ErrorMessage = "No Such ID."; error.Status = FR_Status.Error_Internal; return(error); } scheduleDetail.CMN_BPT_EMP_Employee_LeaveRequest_RefID = Guid.Empty; scheduleDetail.Save(Connection, Transaction); } } } if (effectivePosition.CMN_BPT_EMP_Employee_LeaveRequest_RefID == Guid.Empty) { ORM_CMN_CAL_Event leaveRequestEvent = new ORM_CMN_CAL_Event(); leaveRequestEvent.StartTime = Parameter.WorkTime_Start; leaveRequestEvent.EndTime = Parameter.WorkTime_End; leaveRequestEvent.R_EventDuration_sec = (int)Parameter.WorkTime_End.Subtract(Parameter.WorkTime_Start).TotalSeconds; leaveRequestEvent.IsRepetitive = false; leaveRequestEvent.IsWholeDayEvent = false; leaveRequestEvent.IsCalendarEvent_Editable = true; leaveRequestEvent.Tenant_RefID = securityTicket.TenantID; leaveRequestEvent.Save(Connection, Transaction); var approvalItem = new ORM_CMN_CAL_Event_Approval(); approvalItem.Event_RefID = leaveRequestEvent.CMN_CAL_EventID; approvalItem.IsApprovalProcessDenied = false; approvalItem.IsApprovalProcessOpened = false; approvalItem.IsApproved = true; approvalItem.IsApprovalProcessCanceledByUser = false; approvalItem.IsDeleted = false; approvalItem.Creation_Timestamp = DateTime.Now; approvalItem.Tenant_RefID = securityTicket.TenantID; approvalItem.Save(Connection, Transaction); var requestItem = new ORM_CMN_BPT_EMP_Employee_LeaveRequest(); requestItem.CMN_BPT_STA_AbsenceReason_RefID = Parameter.AbsenceReason_RefID; requestItem.CMN_CAL_Event_Approval_RefID = approvalItem.CMN_CAL_Event_ApprovalID; requestItem.CMN_CAL_Event_RefID = leaveRequestEvent.CMN_CAL_EventID; requestItem.IsDeleted = false; requestItem.RequestedBy_Employee_RefID = Parameter.Employee_RefID; requestItem.RequestedFor_Employee_RefID = Parameter.Employee_RefID; requestItem.Tenant_RefID = securityTicket.TenantID; requestItem.Creation_Timestamp = DateTime.Now; requestItem.LeaveRequestCreationSource = "plannico.time"; requestItem.Save(Connection, Transaction); effectivePosition.CMN_BPT_EMP_Employee_LeaveRequest_RefID = requestItem.CMN_BPT_EMP_Employee_LeaveRequestID; effectivePosition.Save(Connection, Transaction); P_L5TN_GCTFFTAY_1320 timeFrameParam = new P_L5TN_GCTFFTAY_1320(); timeFrameParam.Year = leaveRequestEvent.StartTime.Year; var timeFrame = cls_Get_CalculationTimeFramesForTenant_And_Year.Invoke(Connection, Transaction, timeFrameParam, securityTicket).Result.CalculationTimeFrame; P_L5EM_GEATFSbRTFE_1423 statParam = new P_L5EM_GEATFSbRTFE_1423(); statParam.absenceReasonID = requestItem.CMN_BPT_STA_AbsenceReason_RefID; statParam.employeeID = requestItem.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_RequestReservedAbsence_InDays = statistics.R_RequestReservedAbsence_InDays; updateStatisticsParam.R_RequestReservedAbsence_InHours = statistics.R_RequestReservedAbsence_InHours; 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; 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); } } else { ORM_CMN_BPT_EMP_Employee_LeaveRequest leaveRequest = new ORM_CMN_BPT_EMP_Employee_LeaveRequest(); leaveRequest.Load(Connection, Transaction, effectivePosition.CMN_BPT_EMP_Employee_LeaveRequest_RefID); ORM_CMN_CAL_Event leaveRequestEvent = new ORM_CMN_CAL_Event(); leaveRequestEvent.Load(Connection, Transaction, leaveRequest.CMN_CAL_Event_RefID); if (leaveRequest.CMN_BPT_STA_AbsenceReason_RefID != Parameter.AbsenceReason_RefID || Parameter.OldDurationInHours != Parameter.durationInHours || Parameter.OldDurationInDays != Parameter.durationInDays) { 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]; P_L5TN_GCTFFTAY_1320 timeFrameParam = new P_L5TN_GCTFFTAY_1320(); timeFrameParam.Year = leaveRequestEvent.StartTime.Year; var timeFrame = cls_Get_CalculationTimeFramesForTenant_And_Year.Invoke(Connection, Transaction, timeFrameParam, securityTicket).Result.CalculationTimeFrame; 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.OldDurationInDays - Parameter.durationInDays; updateStatisticsParam.R_TotalAllowedAbsenceTime_InHours = statistics.R_TotalAllowedAbsenceTime_InHours + Parameter.OldDurationInHours - Parameter.durationInHours; 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.OldDurationInDays + Parameter.durationInDays; updateStatisticsParam.R_AbsenceTimeUsed_InHours = statistics.R_AbsenceTimeUsed_InHours - Parameter.OldDurationInHours + Parameter.durationInHours; var res = cls_Save_Employee_AbsenceReason_TimeframeStatistic.Invoke(Connection, Transaction, updateStatisticsParam, securityTicket); } leaveRequest.CMN_BPT_STA_AbsenceReason_RefID = Parameter.AbsenceReason_RefID; leaveRequest.Save(Connection, Transaction); } leaveRequestEvent.StartTime = Parameter.WorkTime_Start; leaveRequestEvent.EndTime = Parameter.WorkTime_End; leaveRequestEvent.R_EventDuration_sec = (int)Parameter.WorkTime_End.Subtract(Parameter.WorkTime_Start).TotalSeconds; leaveRequestEvent.Save(Connection, Transaction); } } else { if (effectivePosition.CMN_BPT_EMP_Employee_LeaveRequest_RefID != Guid.Empty) { ORM_CMN_BPT_EMP_Employee_LeaveRequest leaveRequest = new ORM_CMN_BPT_EMP_Employee_LeaveRequest(); leaveRequest.Load(Connection, Transaction, effectivePosition.CMN_BPT_EMP_Employee_LeaveRequest_RefID); leaveRequest.Remove(Connection, Transaction); ORM_CMN_CAL_Event_Approval.Query calEventApprovalQuery = new ORM_CMN_CAL_Event_Approval.Query(); calEventApprovalQuery.Event_RefID = leaveRequest.CMN_CAL_Event_RefID; calEventApprovalQuery.IsDeleted = false; calEventApprovalQuery.Tenant_RefID = securityTicket.TenantID; ORM_CMN_CAL_Event_Approval calEventApproval = ORM_CMN_CAL_Event_Approval.Query.Search(Connection, Transaction, calEventApprovalQuery).FirstOrDefault(); calEventApproval.Remove(Connection, Transaction); ORM_CMN_CAL_Event leaveRequestEvent = new ORM_CMN_CAL_Event(); leaveRequestEvent.Load(Connection, Transaction, leaveRequest.CMN_CAL_Event_RefID); leaveRequestEvent.Remove(Connection, Transaction); effectivePosition.CMN_BPT_EMP_Employee_LeaveRequest_RefID = Guid.Empty; effectivePosition.Save(Connection, Transaction); P_L5TN_GCTFFTAY_1320 timeFrameParam = new P_L5TN_GCTFFTAY_1320(); timeFrameParam.Year = leaveRequestEvent.StartTime.Year; var timeFrame = cls_Get_CalculationTimeFramesForTenant_And_Year.Invoke(Connection, Transaction, timeFrameParam, securityTicket).Result.CalculationTimeFrame; 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.OldDurationInDays; updateStatisticsParam.R_TotalAllowedAbsenceTime_InHours = statistics.R_TotalAllowedAbsenceTime_InHours + Parameter.OldDurationInHours; 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.OldDurationInDays; updateStatisticsParam.R_AbsenceTimeUsed_InHours = statistics.R_AbsenceTimeUsed_InHours - Parameter.OldDurationInHours; var res = cls_Save_Employee_AbsenceReason_TimeframeStatistic.Invoke(Connection, Transaction, updateStatisticsParam, securityTicket); } } } } else { effectivePosition.EffectiveWorkTime_Header_RefID = Parameter.EffectiveWorkTime_Header_RefID; effectivePosition.CMN_BPT_EMP_Employe_RefID = Parameter.Employee_RefID; effectivePosition.CMN_BPT_EMP_Employee_LeaveRequest_RefID = Parameter.CMN_BPT_EMP_Employee_LeaveRequest_RefID; effectivePosition.Workplace_RefID = Parameter.Workplace_RefID; effectivePosition.Tenant_RefID = securityTicket.TenantID; effectivePosition.WorkTime_StartTime = Parameter.WorkTime_Start; effectivePosition.WorkTime_Duration_in_sec = (int)Parameter.WorkTime_End.Subtract(Parameter.WorkTime_Start).TotalSeconds; effectivePosition.SourceOfEntry = Parameter.SourceOfEntry; effectivePosition.Save(Connection, Transaction); if (Parameter.AbsenceReason_RefID != Guid.Empty) { ORM_CMN_CAL_Event leaveRequestEvent = new ORM_CMN_CAL_Event(); leaveRequestEvent.StartTime = Parameter.WorkTime_Start; leaveRequestEvent.EndTime = Parameter.WorkTime_End; leaveRequestEvent.R_EventDuration_sec = (int)Parameter.WorkTime_End.Subtract(Parameter.WorkTime_Start).TotalSeconds; leaveRequestEvent.IsRepetitive = false; leaveRequestEvent.IsWholeDayEvent = false; leaveRequestEvent.IsCalendarEvent_Editable = true; leaveRequestEvent.Tenant_RefID = securityTicket.TenantID; leaveRequestEvent.Save(Connection, Transaction); var approvalItem = new ORM_CMN_CAL_Event_Approval(); approvalItem.Event_RefID = leaveRequestEvent.CMN_CAL_EventID; approvalItem.IsApprovalProcessDenied = false; approvalItem.IsApprovalProcessOpened = false; approvalItem.IsApproved = true; approvalItem.IsApprovalProcessCanceledByUser = false; approvalItem.IsDeleted = false; approvalItem.Creation_Timestamp = DateTime.Now; approvalItem.Tenant_RefID = securityTicket.TenantID; approvalItem.Save(Connection, Transaction); var requestItem = new ORM_CMN_BPT_EMP_Employee_LeaveRequest(); requestItem.CMN_BPT_STA_AbsenceReason_RefID = Parameter.AbsenceReason_RefID; requestItem.CMN_CAL_Event_Approval_RefID = approvalItem.CMN_CAL_Event_ApprovalID; requestItem.CMN_CAL_Event_RefID = leaveRequestEvent.CMN_CAL_EventID; requestItem.IsDeleted = false; requestItem.RequestedBy_Employee_RefID = Parameter.RequestedBy_Employee_RefID; requestItem.RequestedFor_Employee_RefID = Parameter.RequestedFor_Employee_RefID; requestItem.Tenant_RefID = securityTicket.TenantID; requestItem.Creation_Timestamp = DateTime.Now; requestItem.LeaveRequestCreationSource = "plannico.time"; requestItem.Save(Connection, Transaction); effectivePosition.CMN_BPT_EMP_Employee_LeaveRequest_RefID = requestItem.CMN_BPT_EMP_Employee_LeaveRequestID; effectivePosition.Save(Connection, Transaction); P_L5TN_GCTFFTAY_1320 timeFrameParam = new P_L5TN_GCTFFTAY_1320(); timeFrameParam.Year = leaveRequestEvent.StartTime.Year; var timeFrame = cls_Get_CalculationTimeFramesForTenant_And_Year.Invoke(Connection, Transaction, timeFrameParam, securityTicket).Result.CalculationTimeFrame; P_L5EM_GEATFSbRTFE_1423 statParam = new P_L5EM_GEATFSbRTFE_1423(); statParam.absenceReasonID = requestItem.CMN_BPT_STA_AbsenceReason_RefID; statParam.employeeID = requestItem.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; 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); } } } returnValue.Result = effectivePosition.CMN_BPT_EMP_EffectiveWorkTime_PositionID; return(returnValue); #endregion UserCode }
protected static FR_Guid Execute(DbConnection Connection, DbTransaction Transaction, P_L5MHC_SDwTT_1419 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { #region UserCode var returnValue = new FR_Guid(); var instanceID = cls_Save_DeviceInstance.Invoke(Connection, Transaction, Parameter.BaseData, securityTicket).Result; if (Parameter.Availabilities != null) { foreach (var availability in Parameter.Availabilities) { if (!availability.IsDelete) { ORM_PPS_DEV_Device_Instance_Availability assignemnt; if (availability.CMN_CAL_AVA_AvailabilityID != Guid.Empty) { assignemnt = ORM_PPS_DEV_Device_Instance_Availability.Query.Search(Connection, Transaction, new ORM_PPS_DEV_Device_Instance_Availability.Query() { CMN_CAL_AVA_Availability_RefID = availability.CMN_CAL_AVA_AvailabilityID, DeviceInstance_RefID = instanceID, IsDeleted = false, Tenant_RefID = securityTicket.TenantID }).Single(); } else { assignemnt = new ORM_PPS_DEV_Device_Instance_Availability(); assignemnt.PPS_DEV_Device_Instance_AvailabilityID = Guid.NewGuid(); assignemnt.DeviceInstance_RefID = instanceID; assignemnt.CMN_CAL_AVA_Availability_RefID = Guid.NewGuid(); assignemnt.Tenant_RefID = securityTicket.TenantID; assignemnt.Save(Connection, Transaction); } ORM_CMN_CAL_AVA_Availability ORM_CMN_CAL_AVA_Availability = ORM_CMN_CAL_AVA_Availability.Query.Search(Connection, Transaction, new ORM_CMN_CAL_AVA_Availability.Query() { CMN_CAL_AVA_AvailabilityID = assignemnt.CMN_CAL_AVA_Availability_RefID, IsDeleted = false, Tenant_RefID = securityTicket.TenantID }).SingleOrDefault(); if (ORM_CMN_CAL_AVA_Availability == null) { ORM_CMN_CAL_AVA_Availability = new ORM_CMN_CAL_AVA_Availability(); ORM_CMN_CAL_AVA_Availability.CMN_CAL_AVA_AvailabilityID = assignemnt.CMN_CAL_AVA_Availability_RefID; ORM_CMN_CAL_AVA_Availability.Tenant_RefID = securityTicket.TenantID; } ORM_CMN_CAL_AVA_Availability.Save(Connection, Transaction); ORM_CMN_CAL_AVA_Date date = ORM_CMN_CAL_AVA_Date.Query.Search(Connection, Transaction, new ORM_CMN_CAL_AVA_Date.Query() { Availability_RefID = ORM_CMN_CAL_AVA_Availability.CMN_CAL_AVA_AvailabilityID, IsDeleted = false, Tenant_RefID = securityTicket.TenantID }).SingleOrDefault(); if (date == null) { date = new ORM_CMN_CAL_AVA_Date(); date.CMN_CAL_AVA_DateID = Guid.NewGuid(); date.Tenant_RefID = securityTicket.TenantID; date.Availability_RefID = ORM_CMN_CAL_AVA_Availability.CMN_CAL_AVA_AvailabilityID; date.CMN_CAL_Event_RefID = Guid.NewGuid(); } date.DateName = availability.Name; date.Save(Connection, Transaction); ORM_CMN_CAL_Event eventItem = ORM_CMN_CAL_Event.Query.Search(Connection, Transaction, new ORM_CMN_CAL_Event.Query() { CMN_CAL_EventID = date.CMN_CAL_Event_RefID, Tenant_RefID = securityTicket.TenantID, IsDeleted = false }).SingleOrDefault(); if (eventItem == null) { eventItem = new ORM_CMN_CAL_Event(); eventItem.CMN_CAL_EventID = Guid.NewGuid(); eventItem.Tenant_RefID = securityTicket.TenantID; eventItem.IsRepetitive = true; eventItem.Repetition_RefID = Guid.NewGuid(); } eventItem.IsWholeDayEvent = availability.IsWholeDay; eventItem.StartTime = availability.StartTime; eventItem.EndTime = availability.EndTime; eventItem.Save(Connection, Transaction); ORM_CMN_CAL_Repetition repetition = ORM_CMN_CAL_Repetition.Query.Search(Connection, Transaction, new ORM_CMN_CAL_Repetition.Query() { CMN_CAL_RepetitionID = eventItem.Repetition_RefID, Tenant_RefID = securityTicket.TenantID, IsDeleted = false }).SingleOrDefault(); if (repetition == null) { repetition = new ORM_CMN_CAL_Repetition(); repetition.CMN_CAL_RepetitionID = Guid.NewGuid(); repetition.Tenant_RefID = securityTicket.TenantID; repetition.CMN_CAL_RepetitionID = eventItem.Repetition_RefID; repetition.IsWeekly = true; repetition.Save(Connection, Transaction); } ORM_CMN_CAL_RepetitionPatterns_Weekly weekly = ORM_CMN_CAL_RepetitionPatterns_Weekly.Query.Search(Connection, Transaction, new ORM_CMN_CAL_RepetitionPatterns_Weekly.Query() { Repetition_RefID = repetition.CMN_CAL_RepetitionID, Tenant_RefID = securityTicket.TenantID, IsDeleted = false }).SingleOrDefault(); if (repetition == null) { weekly = new ORM_CMN_CAL_RepetitionPatterns_Weekly(); weekly.CMN_CAL_RepetitionPattern_WeeklyID = Guid.NewGuid(); weekly.Repetition_RefID = repetition.CMN_CAL_RepetitionID; weekly.Tenant_RefID = securityTicket.TenantID; weekly.Save(Connection, Transaction); } } else { var assignemnt = ORM_PPS_DEV_Device_Instance_Availability.Query.Search(Connection, Transaction, new ORM_PPS_DEV_Device_Instance_Availability.Query() { CMN_CAL_AVA_Availability_RefID = availability.CMN_CAL_AVA_AvailabilityID, DeviceInstance_RefID = instanceID, IsDeleted = false, Tenant_RefID = securityTicket.TenantID }).Single(); ORM_CMN_CAL_AVA_Availability ORM_CMN_CAL_AVA_Availability = ORM_CMN_CAL_AVA_Availability.Query.Search(Connection, Transaction, new ORM_CMN_CAL_AVA_Availability.Query() { CMN_CAL_AVA_AvailabilityID = assignemnt.CMN_CAL_AVA_Availability_RefID, IsDeleted = false, Tenant_RefID = securityTicket.TenantID }).Single(); ORM_CMN_CAL_AVA_Date date = ORM_CMN_CAL_AVA_Date.Query.Search(Connection, Transaction, new ORM_CMN_CAL_AVA_Date.Query() { Availability_RefID = ORM_CMN_CAL_AVA_Availability.CMN_CAL_AVA_AvailabilityID, IsDeleted = false, Tenant_RefID = securityTicket.TenantID }).Single(); ORM_CMN_CAL_Event eventItem = ORM_CMN_CAL_Event.Query.Search(Connection, Transaction, new ORM_CMN_CAL_Event.Query() { CMN_CAL_EventID = date.CMN_CAL_Event_RefID, Tenant_RefID = securityTicket.TenantID, IsDeleted = false }).Single(); ORM_CMN_CAL_Repetition repetition = ORM_CMN_CAL_Repetition.Query.Search(Connection, Transaction, new ORM_CMN_CAL_Repetition.Query() { CMN_CAL_RepetitionID = eventItem.Repetition_RefID, Tenant_RefID = securityTicket.TenantID, IsDeleted = false }).Single(); ORM_CMN_CAL_RepetitionPatterns_Weekly weekly = ORM_CMN_CAL_RepetitionPatterns_Weekly.Query.Search(Connection, Transaction, new ORM_CMN_CAL_RepetitionPatterns_Weekly.Query() { Repetition_RefID = repetition.CMN_CAL_RepetitionID, Tenant_RefID = securityTicket.TenantID, IsDeleted = false }).Single(); assignemnt.IsDeleted = true; assignemnt.Save(Connection, Transaction); ORM_CMN_CAL_AVA_Availability.IsDeleted = true; ORM_CMN_CAL_AVA_Availability.Save(Connection, Transaction); date.IsDeleted = true; date.Save(Connection, Transaction); eventItem.IsDeleted = true; eventItem.Save(Connection, Transaction); repetition.IsDeleted = true; repetition.Save(Connection, Transaction); weekly.IsDeleted = true; weekly.Save(Connection, Transaction); } } } if (Parameter.Unavailabilities != null) { foreach (var unavailability in Parameter.Unavailabilities) { if (!unavailability.IsDelete) { ORM_PPS_DEV_Device_Instance_Availability assignemnt; if (unavailability.CMN_CAL_AVA_AvailabilityID != Guid.Empty) { assignemnt = ORM_PPS_DEV_Device_Instance_Availability.Query.Search(Connection, Transaction, new ORM_PPS_DEV_Device_Instance_Availability.Query() { CMN_CAL_AVA_Availability_RefID = unavailability.CMN_CAL_AVA_AvailabilityID, DeviceInstance_RefID = instanceID, IsDeleted = false, Tenant_RefID = securityTicket.TenantID }).Single(); } else { assignemnt = new ORM_PPS_DEV_Device_Instance_Availability(); assignemnt.PPS_DEV_Device_Instance_AvailabilityID = Guid.NewGuid(); assignemnt.DeviceInstance_RefID = instanceID; assignemnt.CMN_CAL_AVA_Availability_RefID = Guid.NewGuid(); assignemnt.Tenant_RefID = securityTicket.TenantID; assignemnt.Save(Connection, Transaction); } ORM_CMN_CAL_AVA_Availability ORM_CMN_CAL_AVA_Availability = ORM_CMN_CAL_AVA_Availability.Query.Search(Connection, Transaction, new ORM_CMN_CAL_AVA_Availability.Query() { CMN_CAL_AVA_AvailabilityID = assignemnt.CMN_CAL_AVA_Availability_RefID, IsDeleted = false, Tenant_RefID = securityTicket.TenantID, IsAvailabilityExclusionItem = true }).SingleOrDefault(); if (ORM_CMN_CAL_AVA_Availability == null) { ORM_CMN_CAL_AVA_Availability = new ORM_CMN_CAL_AVA_Availability(); ORM_CMN_CAL_AVA_Availability.CMN_CAL_AVA_AvailabilityID = assignemnt.CMN_CAL_AVA_Availability_RefID; ORM_CMN_CAL_AVA_Availability.Tenant_RefID = securityTicket.TenantID; ORM_CMN_CAL_AVA_Availability.IsAvailabilityExclusionItem = true; } ORM_CMN_CAL_AVA_Availability.AvailabilityComment = unavailability.Reason; ORM_CMN_CAL_AVA_Availability.Save(Connection, Transaction); ORM_CMN_CAL_AVA_Date date = ORM_CMN_CAL_AVA_Date.Query.Search(Connection, Transaction, new ORM_CMN_CAL_AVA_Date.Query() { Availability_RefID = ORM_CMN_CAL_AVA_Availability.CMN_CAL_AVA_AvailabilityID, IsDeleted = false, Tenant_RefID = securityTicket.TenantID, }).SingleOrDefault(); if (date == null) { date = new ORM_CMN_CAL_AVA_Date(); date.CMN_CAL_AVA_DateID = Guid.NewGuid(); date.Tenant_RefID = securityTicket.TenantID; date.Availability_RefID = ORM_CMN_CAL_AVA_Availability.CMN_CAL_AVA_AvailabilityID; date.CMN_CAL_Event_RefID = Guid.NewGuid(); date.Save(Connection, Transaction); } ORM_CMN_CAL_Event eventItem = ORM_CMN_CAL_Event.Query.Search(Connection, Transaction, new ORM_CMN_CAL_Event.Query() { CMN_CAL_EventID = date.CMN_CAL_Event_RefID, Tenant_RefID = securityTicket.TenantID, IsDeleted = false }).SingleOrDefault(); if (eventItem == null) { eventItem = new ORM_CMN_CAL_Event(); eventItem.CMN_CAL_EventID = Guid.NewGuid(); eventItem.Tenant_RefID = securityTicket.TenantID; eventItem.IsRepetitive = true; eventItem.Repetition_RefID = Guid.NewGuid(); } eventItem.IsWholeDayEvent = unavailability.IsWholeDay; eventItem.StartTime = unavailability.StartTime; eventItem.EndTime = unavailability.EndTime; eventItem.Save(Connection, Transaction); ORM_CMN_CAL_Repetition repetition = ORM_CMN_CAL_Repetition.Query.Search(Connection, Transaction, new ORM_CMN_CAL_Repetition.Query() { CMN_CAL_RepetitionID = eventItem.Repetition_RefID, Tenant_RefID = securityTicket.TenantID, IsDeleted = false }).SingleOrDefault(); if (repetition == null) { repetition = new ORM_CMN_CAL_Repetition(); repetition.CMN_CAL_RepetitionID = Guid.NewGuid(); repetition.Tenant_RefID = securityTicket.TenantID; repetition.CMN_CAL_RepetitionID = eventItem.Repetition_RefID; repetition.IsWeekly = true; repetition.Save(Connection, Transaction); } ORM_CMN_CAL_RepetitionPatterns_Weekly weekly = ORM_CMN_CAL_RepetitionPatterns_Weekly.Query.Search(Connection, Transaction, new ORM_CMN_CAL_RepetitionPatterns_Weekly.Query() { Repetition_RefID = repetition.CMN_CAL_RepetitionID, Tenant_RefID = securityTicket.TenantID, IsDeleted = false }).SingleOrDefault(); if (repetition == null) { weekly = new ORM_CMN_CAL_RepetitionPatterns_Weekly(); weekly.CMN_CAL_RepetitionPattern_WeeklyID = Guid.NewGuid(); weekly.Repetition_RefID = repetition.CMN_CAL_RepetitionID; weekly.Tenant_RefID = securityTicket.TenantID; weekly.Save(Connection, Transaction); } } else { var assignemnt = ORM_PPS_DEV_Device_Instance_Availability.Query.Search(Connection, Transaction, new ORM_PPS_DEV_Device_Instance_Availability.Query() { CMN_CAL_AVA_Availability_RefID = unavailability.CMN_CAL_AVA_AvailabilityID, DeviceInstance_RefID = instanceID, IsDeleted = false, Tenant_RefID = securityTicket.TenantID }).Single(); ORM_CMN_CAL_AVA_Availability ORM_CMN_CAL_AVA_Availability = ORM_CMN_CAL_AVA_Availability.Query.Search(Connection, Transaction, new ORM_CMN_CAL_AVA_Availability.Query() { CMN_CAL_AVA_AvailabilityID = assignemnt.CMN_CAL_AVA_Availability_RefID, IsDeleted = false, Tenant_RefID = securityTicket.TenantID }).Single(); ORM_CMN_CAL_AVA_Date date = ORM_CMN_CAL_AVA_Date.Query.Search(Connection, Transaction, new ORM_CMN_CAL_AVA_Date.Query() { Availability_RefID = ORM_CMN_CAL_AVA_Availability.CMN_CAL_AVA_AvailabilityID, IsDeleted = false, Tenant_RefID = securityTicket.TenantID }).Single(); ORM_CMN_CAL_Event eventItem = ORM_CMN_CAL_Event.Query.Search(Connection, Transaction, new ORM_CMN_CAL_Event.Query() { CMN_CAL_EventID = date.CMN_CAL_Event_RefID, Tenant_RefID = securityTicket.TenantID, IsDeleted = false }).Single(); ORM_CMN_CAL_Repetition repetition = ORM_CMN_CAL_Repetition.Query.Search(Connection, Transaction, new ORM_CMN_CAL_Repetition.Query() { CMN_CAL_RepetitionID = eventItem.Repetition_RefID, Tenant_RefID = securityTicket.TenantID, IsDeleted = false }).Single(); ORM_CMN_CAL_RepetitionPatterns_Weekly weekly = ORM_CMN_CAL_RepetitionPatterns_Weekly.Query.Search(Connection, Transaction, new ORM_CMN_CAL_RepetitionPatterns_Weekly.Query() { Repetition_RefID = repetition.CMN_CAL_RepetitionID, Tenant_RefID = securityTicket.TenantID, IsDeleted = false }).Single(); assignemnt.IsDeleted = true; assignemnt.Save(Connection, Transaction); ORM_CMN_CAL_AVA_Availability.IsDeleted = true; ORM_CMN_CAL_AVA_Availability.Save(Connection, Transaction); date.IsDeleted = true; date.Save(Connection, Transaction); eventItem.IsDeleted = true; eventItem.Save(Connection, Transaction); repetition.IsDeleted = true; repetition.Save(Connection, Transaction); weekly.IsDeleted = true; weekly.Save(Connection, Transaction); } } } return(returnValue); #endregion UserCode }
protected static FR_Base Execute(DbConnection Connection, DbTransaction Transaction, P_L3EV_DSE_1353 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { #region UserCode var returnValue = new FR_Base(); P_L3EV_GSEFSE_1102 par = new P_L3EV_GSEFSE_1102(); par.StructureEventID = Parameter.CMN_STR_SCE_StructureCalendarEventID; L3EV_GSEFSE_1102 sEvent = cls_Get_StructureEvent_For_StructureEventID.Invoke(Connection, Transaction, par, securityTicket).Result; ORM_CMN_CAL_Event whereInstanceEvent = CSV2Core_MySQL.Support.SQLClassFilter.GetDefaultInstance <ORM_CMN_CAL_Event>(); whereInstanceEvent.CMN_CAL_EventID = sEvent.CMN_CAL_EventID; CSV2Core_MySQL.Support.SQLClassFilter.Delete(Connection, Transaction, whereInstanceEvent); if (sEvent.IsRepetitive) { ORM_CMN_CAL_Repetition whereInstanceRepetition = CSV2Core_MySQL.Support.SQLClassFilter.GetDefaultInstance <ORM_CMN_CAL_Repetition>(); whereInstanceRepetition.CMN_CAL_RepetitionID = sEvent.CMN_CAL_RepetitionID; CSV2Core_MySQL.Support.SQLClassFilter.Delete(Connection, Transaction, whereInstanceRepetition); if (sEvent.IsDaily) { ORM_CMN_CAL_RepetitionPatterns_Daily whereInstanceDaily = CSV2Core_MySQL.Support.SQLClassFilter.GetDefaultInstance <ORM_CMN_CAL_RepetitionPatterns_Daily>(); whereInstanceDaily.CMN_CAL_RepetitionPattern_DailyID = sEvent.dailyCMN_CAL_RepetitionPattern_DailyID; CSV2Core_MySQL.Support.SQLClassFilter.Delete(Connection, Transaction, whereInstanceDaily); } else if (sEvent.IsWeekly) { ORM_CMN_CAL_RepetitionPatterns_Weekly whereInstanceWeekly = CSV2Core_MySQL.Support.SQLClassFilter.GetDefaultInstance <ORM_CMN_CAL_RepetitionPatterns_Weekly>(); whereInstanceWeekly.CMN_CAL_RepetitionPattern_WeeklyID = sEvent.weeklyCMN_CAL_RepetitionPattern_WeeklyID; CSV2Core_MySQL.Support.SQLClassFilter.Delete(Connection, Transaction, whereInstanceWeekly); } else if (sEvent.IsMonthly) { ORM_CMN_CAL_RepetitionPatterns_Monthly whereInstanceMonthly = CSV2Core_MySQL.Support.SQLClassFilter.GetDefaultInstance <ORM_CMN_CAL_RepetitionPatterns_Monthly>(); whereInstanceMonthly.CMN_CAL_RepetitionPattern_MonthlyID = sEvent.monthlyCMN_CAL_RepetitionPattern_MonthlyID; CSV2Core_MySQL.Support.SQLClassFilter.Delete(Connection, Transaction, whereInstanceMonthly); if (sEvent.yearlyIsRelative) { ORM_CMN_CAL_RepetitionPatterns_Relative whereInstanceCapacityRelative = CSV2Core_MySQL.Support.SQLClassFilter.GetDefaultInstance <ORM_CMN_CAL_RepetitionPatterns_Relative>(); whereInstanceCapacityRelative.CMN_CAL_RepetitionPattern_RelativeID = sEvent.relativeCMN_CAL_RepetitionPattern_RelativeID; CSV2Core_MySQL.Support.SQLClassFilter.Delete(Connection, Transaction, whereInstanceCapacityRelative); } } else if (sEvent.IsYearly) { ORM_CMN_CAL_RepetitionPatterns_Yearly whereInstanceYearly = CSV2Core_MySQL.Support.SQLClassFilter.GetDefaultInstance <ORM_CMN_CAL_RepetitionPatterns_Yearly>(); whereInstanceYearly.CMN_CAL_RepetitionPattern_YearlyID = sEvent.CMN_STR_SCE_CapacityRestrictionID; CSV2Core_MySQL.Support.SQLClassFilter.Delete(Connection, Transaction, whereInstanceYearly); if (sEvent.yearlyIsRelative) { ORM_CMN_CAL_RepetitionPatterns_Relative whereInstanceCapacityRelative = CSV2Core_MySQL.Support.SQLClassFilter.GetDefaultInstance <ORM_CMN_CAL_RepetitionPatterns_Relative>(); whereInstanceCapacityRelative.CMN_CAL_RepetitionPattern_RelativeID = sEvent.relativeCMN_CAL_RepetitionPattern_RelativeID; CSV2Core_MySQL.Support.SQLClassFilter.Delete(Connection, Transaction, whereInstanceCapacityRelative); } } } ORM_CMN_STR_SCE_CapacityRestriction whereInstanceCapacityRestriction = CSV2Core_MySQL.Support.SQLClassFilter.GetDefaultInstance <ORM_CMN_STR_SCE_CapacityRestriction>(); whereInstanceCapacityRestriction.CMN_STR_SCE_CapacityRestrictionID = sEvent.CMN_STR_SCE_CapacityRestrictionID; CSV2Core_MySQL.Support.SQLClassFilter.Delete(Connection, Transaction, whereInstanceCapacityRestriction); ORM_CMN_STR_SCE_StructureCalendarEvent whereInstanceStructureCalendarEvent = CSV2Core_MySQL.Support.SQLClassFilter.GetDefaultInstance <ORM_CMN_STR_SCE_StructureCalendarEvent>(); whereInstanceStructureCalendarEvent.CMN_STR_SCE_StructureCalendarEventID = Parameter.CMN_STR_SCE_StructureCalendarEventID; CSV2Core_MySQL.Support.SQLClassFilter.Delete(Connection, Transaction, whereInstanceStructureCalendarEvent); ORM_CMN_STR_SCE_ForbiddenLeaveType whereInstanceForbiddenLeaveType = CSV2Core_MySQL.Support.SQLClassFilter.GetDefaultInstance <ORM_CMN_STR_SCE_ForbiddenLeaveType>(); whereInstanceForbiddenLeaveType.CMN_STR_SCE_ForbiddenLeaveTypeID = sEvent.CMN_STR_SCE_StructureCalendarEventID; CSV2Core_MySQL.Support.SQLClassFilter.Delete(Connection, Transaction, whereInstanceForbiddenLeaveType); //Put your code here return(returnValue); #endregion UserCode }
protected static FR_Guid Execute(DbConnection Connection, DbTransaction Transaction, P_L5LR_SELR_255 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { #region UserCode var returnValue = new FR_Guid(); var eventItem = new ORM_CMN_CAL_Event(); if (Parameter.EventID != Guid.Empty) { var result = eventItem.Load(Connection, Transaction, Parameter.EventID); if (result.Status != FR_Status.Success || eventItem.CMN_CAL_EventID == Guid.Empty) { var error = new FR_Guid(); error.ErrorMessage = "No Such ID"; error.Status = FR_Status.Error_Internal; return(error); } } eventItem.CalendarInstance_RefID = Parameter.CalendarInstance_RefID; eventItem.EndTime = Parameter.EndTime; eventItem.IsDeleted = false; eventItem.IsRepetitive = Parameter.IsRepetitive; eventItem.Repetition_RefID = Parameter.Repetition_RefID; eventItem.StartTime = Parameter.StartTime; eventItem.Tenant_RefID = securityTicket.TenantID; eventItem.Creation_Timestamp = DateTime.Now; eventItem.Save(Connection, Transaction); var approvalItem = new ORM_CMN_CAL_Event_Approval(); if (Parameter.Event_Approval_RefID != Guid.Empty) { var result = approvalItem.Load(Connection, Transaction, Parameter.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.Event_RefID = eventItem.CMN_CAL_EventID; approvalItem.IsApprovalProcessDenied = Parameter.IsApprovalProcessDenied; approvalItem.IsApprovalProcessOpened = Parameter.IsApprovalProcessOpened; approvalItem.IsApproved = Parameter.IsApproved; approvalItem.IsApprovalProcessCanceledByUser = Parameter.IsApprovalProcessCanceledByUser; approvalItem.IsDeleted = false; approvalItem.Creation_Timestamp = DateTime.Now; approvalItem.Tenant_RefID = securityTicket.TenantID; approvalItem.ApprovalProcess_Type_RefID = Parameter.ApprovalProcessTypeID; approvalItem.Save(Connection, Transaction); var requestItem = new ORM_CMN_BPT_EMP_Employee_LeaveRequest(); if (Parameter.Employee_LeaveRequestID != Guid.Empty) { var result = requestItem.Load(Connection, Transaction, Parameter.Employee_LeaveRequestID); if (result.Status != FR_Status.Success || requestItem.CMN_BPT_EMP_Employee_LeaveRequestID == Guid.Empty) { var error = new FR_Guid(); error.ErrorMessage = "No Such ID"; error.Status = FR_Status.Error_Internal; return(error); } } requestItem.CMN_BPT_STA_AbsenceReason_RefID = Parameter.AbsenceReason_RefID; requestItem.CMN_CAL_Event_Approval_RefID = approvalItem.CMN_CAL_Event_ApprovalID; requestItem.CMN_CAL_Event_RefID = eventItem.CMN_CAL_EventID; requestItem.Comment = Parameter.Comment; requestItem.IsDeleted = false; requestItem.RequestedBy_Employee_RefID = Parameter.RequestedBy_Employee_RefID; requestItem.RequestedFor_Employee_RefID = Parameter.RequestedFor_Employee_RefID; requestItem.Tenant_RefID = securityTicket.TenantID; requestItem.Creation_Timestamp = DateTime.Now; requestItem.LeaveRequestCreationSource = Parameter.LeaveRequestCreationSource; requestItem.Save(Connection, Transaction); if (Parameter.EmployeeCover_RefID != Guid.Empty) { var coverItem = new ORM_CMN_BPT_EMP_Employee_LeaveRequest_EmployeeCover(); if (Parameter.Employee_LeaveRequest_EmployeeCoverID != Guid.Empty) { var result = coverItem.Load(Connection, Transaction, Parameter.Employee_LeaveRequest_EmployeeCoverID); if (result.Status != FR_Status.Success || coverItem.CMN_BPT_EMP_Employee_LeaveRequest_EmployeeCoverID == Guid.Empty) { var error = new FR_Guid(); error.ErrorMessage = "No Such ID"; error.Status = FR_Status.Error_Internal; return(error); } } coverItem.CMN_BPT_EMP_Employee_LeaveRequests = requestItem.CMN_BPT_EMP_Employee_LeaveRequestID; coverItem.EmployeeCover_RefID = Parameter.EmployeeCover_RefID; coverItem.IsDeleted = false; coverItem.SequenceNumber = Parameter.SequenceNumber; coverItem.Tenant_RefID = securityTicket.TenantID; coverItem.Creation_Timestamp = DateTime.Now; coverItem.Save(Connection, Transaction); } returnValue.Result = requestItem.CMN_BPT_EMP_Employee_LeaveRequestID; return(returnValue); #endregion UserCode }
protected static FR_Guid Execute(DbConnection Connection, DbTransaction Transaction, P_L3EV_SSE_1048 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { #region UserCode var returnValue = new FR_Guid(); //Put your code here if (Parameter.CalendarInstanceID == Guid.Empty) { ORM_CMN_Tenant tenant = new ORM_CMN_Tenant(); if (securityTicket.TenantID != Guid.Empty) { var result = tenant.Load(Connection, Transaction, securityTicket.TenantID); if (result.Status != FR_Status.Success || tenant.CMN_TenantID == Guid.Empty) { var error = new FR_Guid(); error.ErrorMessage = "No Such ID"; error.Status = FR_Status.Error_Internal; return(error); } } if (tenant.CMN_CAL_CalendarInstance_RefID == Guid.Empty) { ORM_CMN_CAL_CalendarInstance instance = new ORM_CMN_CAL_CalendarInstance(); instance.WeekStartsOnDay = 1; instance.Save(Connection, Transaction); tenant.CMN_CAL_CalendarInstance_RefID = instance.CMN_CAL_CalendarInstanceID; tenant.Save(Connection, Transaction); } } ORM_CMN_CAL_Event calendarEvent = new ORM_CMN_CAL_Event(); if (Parameter.CMN_CAL_EventID != Guid.Empty) { var result = calendarEvent.Load(Connection, Transaction, Parameter.CMN_CAL_EventID); if (result.Status != FR_Status.Success || calendarEvent.CMN_CAL_EventID == Guid.Empty) { var error = new FR_Guid(); error.ErrorMessage = "No Such ID"; error.Status = FR_Status.Error_Internal; return(error); } } calendarEvent.CalendarInstance_RefID = Parameter.CalendarInstanceID; calendarEvent.EndTime = Parameter.EndTime; calendarEvent.IsRepetitive = Parameter.IsRepetitive; calendarEvent.R_EventDuration_sec = Parameter.R_EventDuration_sec; calendarEvent.StartTime = Parameter.StartTime; calendarEvent.Tenant_RefID = securityTicket.TenantID; calendarEvent.CalendarInstance_RefID = Parameter.CalendarInstanceID; if (Parameter.IsRepetitive) { ORM_CMN_CAL_Repetition repetition = new ORM_CMN_CAL_Repetition(); if (Parameter.CMN_CAL_RepetitionID != Guid.Empty) { var result = repetition.Load(Connection, Transaction, Parameter.CMN_CAL_RepetitionID); if (result.Status != FR_Status.Success || repetition.CMN_CAL_RepetitionID == Guid.Empty) { var error = new FR_Guid(); error.ErrorMessage = "No Such ID"; error.Status = FR_Status.Error_Internal; return(error); } } repetition.IsDaily = Parameter.IsDaily; repetition.IsMonthly = Parameter.IsMonthly; repetition.IsWeekly = Parameter.IsWeekly; repetition.IsYearly = Parameter.IsYearly; repetition.R_CronExpression = Parameter.R_CronExpression; repetition.Tenant_RefID = securityTicket.TenantID; repetition.Save(Connection, Transaction); calendarEvent.IsRepetitive = true; calendarEvent.Repetition_RefID = repetition.CMN_CAL_RepetitionID; ORM_CMN_CAL_Repetition_Ranx repetitionRange = new ORM_CMN_CAL_Repetition_Ranx(); if (Parameter.repetitionRangesCMN_CAL_Repetition_RangeID != Guid.Empty) { var result = repetitionRange.Load(Connection, Transaction, Parameter.repetitionRangesCMN_CAL_Repetition_RangeID); if (result.Status != FR_Status.Success || repetitionRange.CMN_CAL_Repetition_RangeID == Guid.Empty) { var error = new FR_Guid(); error.ErrorMessage = "No Such ID"; error.Status = FR_Status.Error_Internal; return(error); } } repetitionRange.End_AfterSpecifiedOccurrences = Parameter.repetitionRangesEnd_AfterSpecifiedOccurrences; repetitionRange.End_ByDate = Parameter.repetitionRangesEnd_ByDate; repetitionRange.HasEndType_DateTime = Parameter.repetitionRangesHasEndType_DateTime; repetitionRange.HasEndType_NoEndDate = Parameter.repetitionRangesHasEndType_NoEndDate; repetitionRange.HasEndType_Occurrence = Parameter.repetitionRangesHasEndType_Occurrence; repetitionRange.Repetition_RefID = repetition.CMN_CAL_RepetitionID; repetitionRange.Tenant_RefID = securityTicket.TenantID; repetitionRange.Save(Connection, Transaction); if (Parameter.IsDaily) { ORM_CMN_CAL_RepetitionPatterns_Daily daily = new ORM_CMN_CAL_RepetitionPatterns_Daily(); if (Parameter.dailyCMN_CAL_RepetitionPattern_DailyID != Guid.Empty) { var result = daily.Load(Connection, Transaction, Parameter.dailyCMN_CAL_RepetitionPattern_DailyID); if (result.Status != FR_Status.Success || daily.CMN_CAL_RepetitionPattern_DailyID == Guid.Empty) { var error = new FR_Guid(); error.ErrorMessage = "No Such ID"; error.Status = FR_Status.Error_Internal; return(error); } } daily.Repetition_EveryNumberOfDays = Parameter.dailyRepetition_EveryNumberOfDays; daily.Repetition_RefID = repetition.CMN_CAL_RepetitionID; daily.Tenant_RefID = securityTicket.TenantID; daily.Save(Connection, Transaction); } else if (Parameter.IsWeekly) { ORM_CMN_CAL_RepetitionPatterns_Weekly weekly = new ORM_CMN_CAL_RepetitionPatterns_Weekly(); if (Parameter.weeklyCMN_CAL_RepetitionPattern_WeeklyID != Guid.Empty) { var result = weekly.Load(Connection, Transaction, Parameter.weeklyCMN_CAL_RepetitionPattern_WeeklyID); if (result.Status != FR_Status.Success || weekly.CMN_CAL_RepetitionPattern_WeeklyID == Guid.Empty) { var error = new FR_Guid(); error.ErrorMessage = "No Such ID"; error.Status = FR_Status.Error_Internal; return(error); } } weekly.HasRepeatingOn_Fridays = Parameter.weeklyHasRepeatingOn_Fridays; weekly.HasRepeatingOn_Mondays = Parameter.weeklyHasRepeatingOn_Mondays; weekly.HasRepeatingOn_Saturdays = Parameter.weeklyHasRepeatingOn_Saturdays; weekly.HasRepeatingOn_Sundays = Parameter.weeklyHasRepeatingOn_Sundays; weekly.HasRepeatingOn_Thursdays = Parameter.weeklyHasRepeatingOn_Thursdays; weekly.HasRepeatingOn_Tuesdays = Parameter.weeklyHasRepeatingOn_Tuesdays; weekly.HasRepeatingOn_Wednesdays = Parameter.weeklyHasRepeatingOn_Wednesdays; weekly.Repetition_EveryNumberOfWeeks = Parameter.weeklyRepetition_EveryNumberOfWeeks; weekly.Repetition_RefID = repetition.CMN_CAL_RepetitionID; weekly.Tenant_RefID = securityTicket.TenantID; weekly.Save(Connection, Transaction); } else if (Parameter.IsMonthly) { ORM_CMN_CAL_RepetitionPatterns_Monthly monthly = new ORM_CMN_CAL_RepetitionPatterns_Monthly(); if (Parameter.monthlyCMN_CAL_RepetitionPattern_MonthlyID != Guid.Empty) { var result = monthly.Load(Connection, Transaction, Parameter.monthlyCMN_CAL_RepetitionPattern_MonthlyID); if (result.Status != FR_Status.Success || monthly.CMN_CAL_RepetitionPattern_MonthlyID == Guid.Empty) { var error = new FR_Guid(); error.ErrorMessage = "No Such ID"; error.Status = FR_Status.Error_Internal; return(error); } } monthly.Repetition_EveryNumberOfMonths = Parameter.monthlyRepetition_EveryNumberOfMonths; monthly.Repetition_RefID = repetition.CMN_CAL_RepetitionID; monthly.Tenant_RefID = securityTicket.TenantID; if (Parameter.monthlyIsRelative) { monthly.IsFixed = false; monthly.IsRelative = true; ORM_CMN_CAL_RepetitionPatterns_Relative relative = new ORM_CMN_CAL_RepetitionPatterns_Relative(); if (Parameter.relativeCMN_CAL_RepetitionPattern_RelativeID != Guid.Empty) { var result = relative.Load(Connection, Transaction, Parameter.relativeCMN_CAL_RepetitionPattern_RelativeID); if (result.Status != FR_Status.Success || relative.CMN_CAL_RepetitionPattern_RelativeID == Guid.Empty) { var error = new FR_Guid(); error.ErrorMessage = "No Such ID"; error.Status = FR_Status.Error_Internal; return(error); } } relative.IsFriday = Parameter.relativeIsFriday; relative.IsMonday = Parameter.relativeIsMonday; relative.IsSaturday = Parameter.relativeIsSaturday; relative.IsSunday = Parameter.relativeIsSunday; relative.IsThursday = Parameter.relativeIsThursday; relative.IsTuesday = Parameter.relativeIsTuesday; relative.IsWednesday = Parameter.relativeIsWednesday; relative.IsWeekDay = Parameter.relativeIsWeekDay; relative.IsWeekendDay = Parameter.relativeIsWeekendDay; relative.Ordinal = Parameter.relativeOrdinal; relative.Tenant_RefID = securityTicket.TenantID; relative.Save(Connection, Transaction); monthly.IfRelative_RepetitionPattern_RefID = relative.CMN_CAL_RepetitionPattern_RelativeID; } else { monthly.IsRelative = false; monthly.IsFixed = true; monthly.IfFixed_DayOfMonth = Parameter.monthlyIfFixed_DayOfMonth; } monthly.Save(Connection, Transaction); } else { ORM_CMN_CAL_RepetitionPatterns_Yearly yearly = new ORM_CMN_CAL_RepetitionPatterns_Yearly(); if (Parameter.yearlyCMN_CAL_RepetitionPattern_YearlyID != Guid.Empty) { var result = yearly.Load(Connection, Transaction, Parameter.yearlyCMN_CAL_RepetitionPattern_YearlyID); if (result.Status != FR_Status.Success || yearly.CMN_CAL_RepetitionPattern_YearlyID == Guid.Empty) { var error = new FR_Guid(); error.ErrorMessage = "No Such ID"; error.Status = FR_Status.Error_Internal; return(error); } } yearly.Repetition_EveryNumberOfYears = Parameter.yearlyRepetition_EveryNumberOfYears; yearly.Repetition_Month = Parameter.yearlyRepetition_Month; yearly.Repetition_RefID = repetition.CMN_CAL_RepetitionID; yearly.Tenant_RefID = securityTicket.TenantID; if (Parameter.yearlyIsRelative) { yearly.IsRelative = true; yearly.IsFixed = false; ORM_CMN_CAL_RepetitionPatterns_Relative relative = new ORM_CMN_CAL_RepetitionPatterns_Relative(); if (Parameter.relativeCMN_CAL_RepetitionPattern_RelativeID != Guid.Empty) { var result = relative.Load(Connection, Transaction, Parameter.relativeCMN_CAL_RepetitionPattern_RelativeID); if (result.Status != FR_Status.Success || relative.CMN_CAL_RepetitionPattern_RelativeID == Guid.Empty) { var error = new FR_Guid(); error.ErrorMessage = "No Such ID"; error.Status = FR_Status.Error_Internal; return(error); } } relative.IsFriday = Parameter.relativeIsFriday; relative.IsMonday = Parameter.relativeIsMonday; relative.IsSaturday = Parameter.relativeIsSaturday; relative.IsSunday = Parameter.relativeIsSunday; relative.IsThursday = Parameter.relativeIsThursday; relative.IsTuesday = Parameter.relativeIsTuesday; relative.IsWednesday = Parameter.relativeIsWednesday; relative.IsWeekDay = Parameter.relativeIsWeekDay; relative.IsWeekendDay = Parameter.relativeIsWeekendDay; relative.Ordinal = Parameter.relativeOrdinal; relative.Tenant_RefID = securityTicket.TenantID; relative.Save(Connection, Transaction); yearly.IfRelative_RepetitionPattern_RefID = relative.CMN_CAL_RepetitionPattern_RelativeID; yearly.IsFixed = false; } else { yearly.IsRelative = false; yearly.IsFixed = true; yearly.IfFixed_DayOfMonth = Parameter.yearlyIfFixed_DayOfMonth; } yearly.Save(Connection, Transaction); } } else { calendarEvent.IsRepetitive = false; calendarEvent.Repetition_RefID = Guid.Empty; } calendarEvent.Save(Connection, Transaction); ORM_CMN_STR_SCE_StructureCalendarEvent structureEvent = new ORM_CMN_STR_SCE_StructureCalendarEvent(); if (Parameter.CMN_STR_SCE_StructureCalendarEventID != Guid.Empty) { var result = structureEvent.Load(Connection, Transaction, Parameter.CMN_STR_SCE_StructureCalendarEventID); if (result.Status != FR_Status.Success || structureEvent.CMN_STR_SCE_StructureCalendarEventID == Guid.Empty) { var error = new FR_Guid(); error.ErrorMessage = "No Such ID"; error.Status = FR_Status.Error_Internal; return(error); } } if (Parameter.IsHavingCapacityRestriction) { ORM_CMN_STR_SCE_CapacityRestriction capacityRestriction = new ORM_CMN_STR_SCE_CapacityRestriction(); if (Parameter.CMN_STR_SCE_CapacityRestrictionID != Guid.Empty) { var result = capacityRestriction.Load(Connection, Transaction, Parameter.CMN_STR_SCE_CapacityRestrictionID); if (result.Status != FR_Status.Success || capacityRestriction.CMN_STR_SCE_CapacityRestrictionID == Guid.Empty) { var error = new FR_Guid(); error.ErrorMessage = "No Such ID"; error.Status = FR_Status.Error_Internal; return(error); } } capacityRestriction.IsValueCalculated_InHeadCount = Parameter.IsValueCalculated_InHeadCount; capacityRestriction.IsValueCalculated_InPercentage = Parameter.IsValueCalculated_InPercentage; capacityRestriction.IsValueCalculated_InWorkingHours = Parameter.IsValueCalculated_InWorkingHours; capacityRestriction.CapacityRestrictionType_RefID = Parameter.CMN_STR_SCE_CapacityRestriction_TypeID; capacityRestriction.Tenant_RefID = securityTicket.TenantID; capacityRestriction.ValueCalculated = Parameter.ValueCalculated; capacityRestriction.Save(Connection, Transaction); structureEvent.IfHavingCapacityRestriction_Restriction_RefID = capacityRestriction.CMN_STR_SCE_CapacityRestrictionID; structureEvent.IsHavingCapacityRestriction = true; } else { structureEvent.IsHavingCapacityRestriction = false; } var eventType = new ORM_CMN_STR_SCE_StructureCalendarEvent_Type(); var resultForType = eventType.Load(Connection, Transaction, Parameter.StructureCalendarEvent_Type_RefID); if (resultForType.Status != FR_Status.Success || eventType.CMN_STR_SCE_StructureCalendarEvent_TypeID == Guid.Empty) { var error = new FR_Guid(); error.ErrorMessage = "No Such ID"; error.Status = FR_Status.Error_Internal; return(error); } structureEvent.IsWorkingDayEvent = eventType.IsWorkingDay; structureEvent.IsWorkingHalfDayEvent = eventType.IsHalfWorkingDay; structureEvent.IsNonWorkingDay = eventType.IsNonWorkingDay; structureEvent.CMN_CAL_Event_RefID = calendarEvent.CMN_CAL_EventID; structureEvent.StructureCalendarEvent_Type_RefID = Parameter.StructureCalendarEvent_Type_RefID; structureEvent.R_CalendarInstance_RefID = Parameter.CalendarInstanceID; structureEvent.StructureEvent_Description = Parameter.StructureEvent_Description; structureEvent.StructureEvent_Name = Parameter.StructureEvent_Name; structureEvent.Tenant_RefID = securityTicket.TenantID; structureEvent.IsEvent_ImportedFromTemplate = Parameter.IsEvent_ImportedFromTemplate; structureEvent.IsBusinessDay = Parameter.IsBusinessDay; structureEvent.Save(Connection, Transaction); returnValue.Result = structureEvent.CMN_STR_SCE_StructureCalendarEventID; ORM_CMN_STR_SCE_ForbiddenLeaveType whereInstanceForbiddenLeaveType = CSV2Core_MySQL.Support.SQLClassFilter.GetDefaultInstance <ORM_CMN_STR_SCE_ForbiddenLeaveType>(); whereInstanceForbiddenLeaveType.CMN_STR_SCE_StructureCalendarEvent_RefID = structureEvent.CMN_STR_SCE_StructureCalendarEventID; CSV2Core_MySQL.Support.SQLClassFilter.Delete(Connection, Transaction, whereInstanceForbiddenLeaveType); foreach (var forbidenLeaveType in Parameter.forbidenLeaveTypes) { ORM_CMN_STR_SCE_ForbiddenLeaveType item = new ORM_CMN_STR_SCE_ForbiddenLeaveType(); if (forbidenLeaveType.CMN_STR_SCE_ForbiddenLeaveTypeID != Guid.Empty) { var result = item.Load(Connection, Transaction, forbidenLeaveType.CMN_STR_SCE_ForbiddenLeaveTypeID); if (result.Status != FR_Status.Success || item.CMN_STR_SCE_ForbiddenLeaveTypeID == Guid.Empty) { var error = new FR_Guid(); error.ErrorMessage = "No Such ID"; error.Status = FR_Status.Error_Internal; return(error); } } item.CMN_BPT_STA_AbsenceReason_RefID = forbidenLeaveType.CMN_BPT_STA_AbsenceReasonID; item.CMN_STR_SCE_StructureCalendarEvent_RefID = structureEvent.CMN_STR_SCE_StructureCalendarEventID; item.Tenant_RefID = securityTicket.TenantID; item.Save(Connection, Transaction); } return(returnValue); #endregion UserCode }
protected static FR_L6DWS_LPD_1451_Array Execute(DbConnection Connection, DbTransaction Transaction, P_L6DWS_LPD_1451 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { #region UserCode var returnValue = new FR_L6DWS_LPD_1451_Array(); LeaveRequestUtils leaveRequestUtil = new LeaveRequestUtils(); var dayCount = 1; if (Parameter.LoadFor_Week) { dayCount = 7; } for (int i = 0; i < dayCount; i++) { var date = Parameter.WorkSheduleDate.Date.AddDays(i); if (Parameter.LoadFrom_LastWeek || Parameter.LoadFrom_Specific_Date_Or_Week) { P_L5DWS_GDWSWDFT_0946 param = new P_L5DWS_GDWSWDFT_0946(); if (Parameter.LoadFrom_Specific_Date_Or_Week) { param.WorkSheduleDate = Parameter.IfLoadFrom_Specific_Date_Or_Week_DateTime.AddDays(i); } else { param.WorkSheduleDate = Parameter.WorkSheduleDate.AddDays(-7).AddDays(i); } var lastWeekSchedules = cls_Get_DailyWorkSchedules_WithDetails_For_Date.Invoke(Connection, Transaction, param, securityTicket).Result; foreach (var lastWeekSchedule in lastWeekSchedules) { var empInfo = Parameter.EmployeeInformation.FirstOrDefault(x => x.EmployeeID == lastWeekSchedule.Employee_RefID); ORM_CMN_STR_PPS_DailyWorkSchedule.Query dailyWorkScheduleQuery = new ORM_CMN_STR_PPS_DailyWorkSchedule.Query(); dailyWorkScheduleQuery.Employee_RefID = lastWeekSchedule.Employee_RefID; dailyWorkScheduleQuery.WorkSheduleDate = date; dailyWorkScheduleQuery.IsDeleted = false; dailyWorkScheduleQuery.Tenant_RefID = securityTicket.TenantID; var oldDailyWorkSchedule = ORM_CMN_STR_PPS_DailyWorkSchedule.Query.Search(Connection, Transaction, dailyWorkScheduleQuery).FirstOrDefault(); if (oldDailyWorkSchedule != null) { ORM_CMN_STR_PPS_DailyWorkSchedule_Detail.Query oldDailyWorkScheduleDetailQuery = new ORM_CMN_STR_PPS_DailyWorkSchedule_Detail.Query(); oldDailyWorkScheduleDetailQuery.DailyWorkSchedule_RefID = oldDailyWorkSchedule.CMN_STR_PPS_DailyWorkScheduleID; oldDailyWorkScheduleDetailQuery.IsDeleted = false; oldDailyWorkScheduleDetailQuery.Tenant_RefID = securityTicket.TenantID; var oldDailyWorkScheduleDetails = ORM_CMN_STR_PPS_DailyWorkSchedule_Detail.Query.Search(Connection, Transaction, oldDailyWorkScheduleDetailQuery); List <P_L6DWS_DDWS_1126_Details> detailsList = new List <P_L6DWS_DDWS_1126_Details>(); foreach (var detail in oldDailyWorkScheduleDetails) { ORM_CMN_CAL_Event.Query eventQuery = new ORM_CMN_CAL_Event.Query(); eventQuery.CMN_CAL_EventID = detail.CMN_CAL_Event_RefID; eventQuery.IsDeleted = false; eventQuery.Tenant_RefID = securityTicket.TenantID; var detailEvent = ORM_CMN_CAL_Event.Query.Search(Connection, Transaction, eventQuery).FirstOrDefault(); if (detailEvent != null) { P_L6DWS_DDWS_1126_Details detailParam = new P_L6DWS_DDWS_1126_Details(); detailParam.DailyWorkSchedule_DetailID = detail.CMN_STR_PPS_DailyWorkSchedule_DetailID; detailParam.durationInDays = leaveRequestUtil.LeaveRequestDuration(detailEvent.StartTime, detailEvent.EndTime, Parameter.Events, Parameter.Employees.FirstOrDefault(x => x.CMN_BPT_EMP_EmployeeID == lastWeekSchedule.Employee_RefID), true); detailParam.durationInHours = leaveRequestUtil.LeaveRequestDuration(detailEvent.StartTime, detailEvent.EndTime, Parameter.Events, Parameter.Employees.FirstOrDefault(x => x.CMN_BPT_EMP_EmployeeID == lastWeekSchedule.Employee_RefID), false); detailsList.Add(detailParam); } } P_L6DWS_DDWS_1126 deleteParam = new P_L6DWS_DDWS_1126(); deleteParam.CMN_STR_PPS_DailyWorkScheduleID = oldDailyWorkSchedule.CMN_STR_PPS_DailyWorkScheduleID; deleteParam.Details = detailsList.ToArray(); cls_Delete_DailyWorkSchedule.Invoke(Connection, Transaction, deleteParam, securityTicket); } ORM_CMN_STR_PPS_DailyWorkSchedule dailyWorkSchedule = new ORM_CMN_STR_PPS_DailyWorkSchedule(); dailyWorkSchedule.BreakDurationTime_in_sec = lastWeekSchedule.BreakDurationTime_in_sec; dailyWorkSchedule.ContractWorkerText = lastWeekSchedule.ContractWorkerText; dailyWorkSchedule.Employee_RefID = lastWeekSchedule.Employee_RefID; dailyWorkSchedule.InstantiatedWithShiftTemplate_RefID = lastWeekSchedule.InstantiatedWithShiftTemplate_RefID; dailyWorkSchedule.IsBreakTimeManualySpecified = lastWeekSchedule.IsBreakTimeManualySpecified; dailyWorkSchedule.IsWorkShedule_Confirmed = lastWeekSchedule.IsWorkShedule_Confirmed; dailyWorkSchedule.R_ContractSpecified_WorkingTime_in_sec = empInfo.ContractInfo.FirstOrDefault(x => x.Date.Date == date.Date).ContractSpecified_WorkingTime_in_sec; dailyWorkSchedule.R_WorkDay_Duration_in_sec = lastWeekSchedule.R_WorkDay_Duration_in_sec; dailyWorkSchedule.R_WorkDay_End_in_sec = lastWeekSchedule.R_WorkDay_End_in_sec; dailyWorkSchedule.R_WorkDay_Start_in_sec = lastWeekSchedule.R_WorkDay_Start_in_sec; dailyWorkSchedule.SheduleBreakTemplate_RefID = lastWeekSchedule.SheduleBreakTemplate_RefID; dailyWorkSchedule.Tenant_RefID = securityTicket.TenantID; dailyWorkSchedule.WorkingSheduleComment = lastWeekSchedule.WorkingSheduleComment; dailyWorkSchedule.WorkShedule_ConfirmedBy_Account_RefID = lastWeekSchedule.WorkShedule_ConfirmedBy_Account_RefID; dailyWorkSchedule.WorkSheduleDate = date; dailyWorkSchedule.Save(Connection, Transaction); foreach (var lastWeekDetail in lastWeekSchedule.Details) { ORM_CMN_STR_PPS_DailyWorkSchedule_Detail detail = new ORM_CMN_STR_PPS_DailyWorkSchedule_Detail(); detail.AbsenceReason_RefID = lastWeekDetail.AbsenceReason_RefID; if (lastWeekDetail.CMN_CAL_Event_RefID != Guid.Empty) { ORM_CMN_CAL_Event.Query eventQuery = new ORM_CMN_CAL_Event.Query(); eventQuery.CMN_CAL_EventID = lastWeekDetail.CMN_CAL_Event_RefID; eventQuery.Tenant_RefID = securityTicket.TenantID; eventQuery.IsDeleted = false; var eventResult = ORM_CMN_CAL_Event.Query.Search(Connection, Transaction, eventQuery).FirstOrDefault(); ORM_CMN_CAL_Event newEvent = new ORM_CMN_CAL_Event(); newEvent.CalendarInstance_RefID = eventResult.CalendarInstance_RefID; newEvent.EndTime = date.AddHours(eventResult.EndTime.TimeOfDay.TotalHours); newEvent.IsCalendarEvent_Editable = eventResult.IsCalendarEvent_Editable; newEvent.IsRepetitive = eventResult.IsRepetitive; newEvent.IsWholeDayEvent = eventResult.IsWholeDayEvent; newEvent.R_EventDuration_sec = eventResult.R_EventDuration_sec; newEvent.Repetition_RefID = eventResult.Repetition_RefID; newEvent.StartTime = date.AddHours(eventResult.StartTime.TimeOfDay.TotalHours); newEvent.Tenant_RefID = securityTicket.TenantID; newEvent.Save(Connection, Transaction); detail.CMN_CAL_Event_RefID = newEvent.CMN_CAL_EventID; } else { detail.CMN_CAL_Event_RefID = Guid.Empty; } detail.DailyWorkSchedule_RefID = dailyWorkSchedule.CMN_STR_PPS_DailyWorkScheduleID; detail.IsWorkBreak = lastWeekDetail.IsWorkBreak; detail.SheduleForWorkplace_RefID = lastWeekDetail.SheduleForWorkplace_RefID; detail.Tenant_RefID = securityTicket.TenantID; if (detail.AbsenceReason_RefID != Guid.Empty) { ORM_CMN_CAL_Event leaveRequestEvent = new ORM_CMN_CAL_Event(); leaveRequestEvent.EndTime = date.AddSeconds(lastWeekDetail.ToTime_as_DateTime.TimeOfDay.TotalSeconds); leaveRequestEvent.StartTime = date.AddSeconds(lastWeekDetail.FromTime_as_DateTime.TimeOfDay.TotalSeconds); leaveRequestEvent.Tenant_RefID = securityTicket.TenantID; leaveRequestEvent.Save(Connection, Transaction); var approvalItem = new ORM_CMN_CAL_Event_Approval(); approvalItem.Event_RefID = leaveRequestEvent.CMN_CAL_EventID; approvalItem.IsApprovalProcessDenied = false; approvalItem.IsApprovalProcessOpened = false; approvalItem.IsApproved = true; var authRequired = true; var absenceReasons = cls_get_Active_AbsenceReason_For_TenantID.Invoke(Connection, Transaction, securityTicket).Result; if (absenceReasons != null) { if (absenceReasons.Any(r => r.CMN_BPT_STA_AbsenceReasonID == detail.AbsenceReason_RefID)) { var reason = absenceReasons.FirstOrDefault(r => r.CMN_BPT_STA_AbsenceReasonID == detail.AbsenceReason_RefID); if (reason != null) { authRequired = reason.IsAuthorizationRequired; } } } L6TN_GSFT_1017 settings = cls_Get_Settings_For_Tenant.Invoke(Connection, Transaction, securityTicket).Result; if (settings.NumberOfResponsiblePersonsRequiredToApprove == 0 || !authRequired) { approvalItem.IsApprovalProcessOpened = false; approvalItem.IsApproved = true; } else { approvalItem.IsApprovalProcessOpened = true; approvalItem.IsApproved = false; } approvalItem.IsApprovalProcessCanceledByUser = false; approvalItem.IsDeleted = false; approvalItem.Creation_Timestamp = DateTime.Now; approvalItem.Tenant_RefID = securityTicket.TenantID; approvalItem.Save(Connection, Transaction); var leaveRequest = new ORM_CMN_BPT_EMP_Employee_LeaveRequest(); leaveRequest.CMN_BPT_STA_AbsenceReason_RefID = detail.AbsenceReason_RefID; leaveRequest.CMN_CAL_Event_Approval_RefID = approvalItem.CMN_CAL_Event_ApprovalID; leaveRequest.CMN_CAL_Event_RefID = leaveRequestEvent.CMN_CAL_EventID; leaveRequest.IsDeleted = false; leaveRequest.RequestedBy_Employee_RefID = Parameter.LoggedEmployeeID; leaveRequest.RequestedFor_Employee_RefID = lastWeekSchedule.Employee_RefID; leaveRequest.Tenant_RefID = securityTicket.TenantID; leaveRequest.Creation_Timestamp = DateTime.Now; leaveRequest.Save(Connection, Transaction); detail.CMN_BPT_EMP_Employee_LeaveRequest_RefID = leaveRequest.CMN_BPT_EMP_Employee_LeaveRequestID; detail.Save(Connection, Transaction); #region updateStatistics P_L5TN_GCTFFTAY_1320 timeFrameParam = new P_L5TN_GCTFFTAY_1320(); timeFrameParam.Year = leaveRequestEvent.StartTime.Year; var timeFrame = cls_Get_CalculationTimeFramesForTenant_And_Year.Invoke(Connection, Transaction, timeFrameParam, securityTicket).Result.CalculationTimeFrame; 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; var durationInDays = leaveRequestUtil.LeaveRequestDuration(leaveRequestEvent.StartTime, leaveRequestEvent.EndTime, Parameter.Events, Parameter.Employees.FirstOrDefault(x => x.CMN_BPT_EMP_EmployeeID == leaveRequest.RequestedFor_Employee_RefID), true); var durationInHours = leaveRequestUtil.LeaveRequestDuration(leaveRequestEvent.StartTime, leaveRequestEvent.EndTime, Parameter.Events, Parameter.Employees.FirstOrDefault(x => x.CMN_BPT_EMP_EmployeeID == leaveRequest.RequestedFor_Employee_RefID), false); if (approvalItem.IsApproved) { updateStatisticsParam.R_TotalAllowedAbsenceTime_InDays = statistics.R_TotalAllowedAbsenceTime_InDays - durationInDays; updateStatisticsParam.R_TotalAllowedAbsenceTime_InHours = statistics.R_TotalAllowedAbsenceTime_InHours - durationInHours; updateStatisticsParam.R_RequestReservedAbsence_InDays = statistics.R_RequestReservedAbsence_InDays; updateStatisticsParam.R_RequestReservedAbsence_InHours = statistics.R_RequestReservedAbsence_InHours; updateStatisticsParam.R_AbsenceTimeUsed_InDays = statistics.R_AbsenceTimeUsed_InDays + durationInDays; updateStatisticsParam.R_AbsenceTimeUsed_InHours = statistics.R_AbsenceTimeUsed_InHours + durationInHours; } else { updateStatisticsParam.R_TotalAllowedAbsenceTime_InDays = statistics.R_TotalAllowedAbsenceTime_InDays; updateStatisticsParam.R_TotalAllowedAbsenceTime_InHours = statistics.R_TotalAllowedAbsenceTime_InHours; updateStatisticsParam.R_RequestReservedAbsence_InDays = statistics.R_RequestReservedAbsence_InDays + durationInDays; updateStatisticsParam.R_RequestReservedAbsence_InHours = statistics.R_RequestReservedAbsence_InHours + 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); } #endregion } else { detail.Save(Connection, Transaction); } } } } 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.AddMinutes(empInfo.ContractInfo.FirstOrDefault(x => x.Date == date).startTime); DateTime endTime = date.AddMinutes(empInfo.ContractInfo.FirstOrDefault(x => x.Date == date).endTime); double startTimeInSec = startTime.TimeOfDay.TotalSeconds; double endTimeInSec = endTime.TimeOfDay.TotalSeconds; ORM_CMN_STR_PPS_DailyWorkSchedule.Query dailyWorkScheduleQuery = new ORM_CMN_STR_PPS_DailyWorkSchedule.Query(); dailyWorkScheduleQuery.Employee_RefID = empID; dailyWorkScheduleQuery.WorkSheduleDate = date; dailyWorkScheduleQuery.IsDeleted = false; dailyWorkScheduleQuery.Tenant_RefID = securityTicket.TenantID; var oldDailyWorkSchedule = ORM_CMN_STR_PPS_DailyWorkSchedule.Query.Search(Connection, Transaction, dailyWorkScheduleQuery).FirstOrDefault(); if (oldDailyWorkSchedule != null) { ORM_CMN_STR_PPS_DailyWorkSchedule_Detail.Query oldDailyWorkScheduleDetailQuery = new ORM_CMN_STR_PPS_DailyWorkSchedule_Detail.Query(); oldDailyWorkScheduleDetailQuery.DailyWorkSchedule_RefID = oldDailyWorkSchedule.CMN_STR_PPS_DailyWorkScheduleID; oldDailyWorkScheduleDetailQuery.IsDeleted = false; oldDailyWorkScheduleDetailQuery.Tenant_RefID = securityTicket.TenantID; var oldDailyWorkScheduleDetails = ORM_CMN_STR_PPS_DailyWorkSchedule_Detail.Query.Search(Connection, Transaction, oldDailyWorkScheduleDetailQuery); List <P_L6DWS_DDWS_1126_Details> detailsList = new List <P_L6DWS_DDWS_1126_Details>(); foreach (var detail in oldDailyWorkScheduleDetails) { ORM_CMN_CAL_Event.Query eventQuery = new ORM_CMN_CAL_Event.Query(); eventQuery.CMN_CAL_EventID = detail.CMN_CAL_Event_RefID; eventQuery.IsDeleted = false; eventQuery.Tenant_RefID = securityTicket.TenantID; var detailEvent = ORM_CMN_CAL_Event.Query.Search(Connection, Transaction, eventQuery).FirstOrDefault(); if (detailEvent != null) { P_L6DWS_DDWS_1126_Details deleteDetailParam = new P_L6DWS_DDWS_1126_Details(); deleteDetailParam.DailyWorkSchedule_DetailID = detail.CMN_STR_PPS_DailyWorkSchedule_DetailID; deleteDetailParam.durationInDays = leaveRequestUtil.LeaveRequestDuration(detailEvent.StartTime, detailEvent.EndTime, Parameter.Events, Parameter.Employees.FirstOrDefault(x => x.CMN_BPT_EMP_EmployeeID == empID), true); deleteDetailParam.durationInHours = leaveRequestUtil.LeaveRequestDuration(detailEvent.StartTime, detailEvent.EndTime, Parameter.Events, Parameter.Employees.FirstOrDefault(x => x.CMN_BPT_EMP_EmployeeID == empID), false); detailsList.Add(deleteDetailParam); } } P_L6DWS_DDWS_1126 deleteParam = new P_L6DWS_DDWS_1126(); deleteParam.CMN_STR_PPS_DailyWorkScheduleID = oldDailyWorkSchedule.CMN_STR_PPS_DailyWorkScheduleID; deleteParam.Details = detailsList.ToArray(); cls_Delete_DailyWorkSchedule.Invoke(Connection, Transaction, deleteParam, securityTicket); } ORM_CMN_STR_PPS_DailyWorkSchedule dailyWorkSchedule = new ORM_CMN_STR_PPS_DailyWorkSchedule(); dailyWorkSchedule.IsBreakTimeManualySpecified = false; dailyWorkSchedule.BreakDurationTime_in_sec = 0; dailyWorkSchedule.R_WorkDay_Start_in_sec = (int)startTimeInSec; dailyWorkSchedule.R_WorkDay_Duration_in_sec = (int)totalTime; dailyWorkSchedule.R_WorkDay_End_in_sec = (int)endTimeInSec; dailyWorkSchedule.R_ContractSpecified_WorkingTime_in_sec = 0; dailyWorkSchedule.ContractWorkerText = ""; dailyWorkSchedule.Employee_RefID = empID; dailyWorkSchedule.WorkSheduleDate = date; dailyWorkSchedule.Tenant_RefID = securityTicket.TenantID; dailyWorkSchedule.Save(Connection, Transaction); var durationInDays = leaveRequestUtil.LeaveRequestDuration(date.AddSeconds(startTimeInSec), date.AddSeconds(endTimeInSec), Parameter.Events, Parameter.Employees.FirstOrDefault(x => x.CMN_BPT_EMP_EmployeeID == empID), true); var durationInHours = leaveRequestUtil.LeaveRequestDuration(date.AddSeconds(startTimeInSec), date.AddSeconds(endTimeInSec), Parameter.Events, Parameter.Employees.FirstOrDefault(x => x.CMN_BPT_EMP_EmployeeID == empID), false); P_L6DWS_SDWSD_1130 detailParam = new P_L6DWS_SDWSD_1130(); detailParam.WorkTime_Start = dailyWorkSchedule.WorkSheduleDate.AddSeconds(startTimeInSec); detailParam.WorkTime_End = dailyWorkSchedule.WorkSheduleDate.AddSeconds(endTimeInSec); detailParam.DailyWorkSchedule_RefID = dailyWorkSchedule.CMN_STR_PPS_DailyWorkScheduleID; detailParam.IsWorkBreak = false; detailParam.SheduleForWorkplace_RefID = Guid.Empty; detailParam.AbsenceReason_RefID = pattern.CMN_BPT_STA_AbsenceReason_RefID; detailParam.RequestedBy_Employee_RefID = Guid.Empty; detailParam.RequestedFor_Employee_RefID = empID; detailParam.durationInDays = durationInDays; detailParam.durationInHours = durationInHours; cls_Save_DailyWorkSchedule_Detail.Invoke(Connection, Transaction, detailParam, 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_STR_PPS_DailyWorkSchedule.Query dailyWorkScheduleQuery = new ORM_CMN_STR_PPS_DailyWorkSchedule.Query(); dailyWorkScheduleQuery.Employee_RefID = empID; dailyWorkScheduleQuery.WorkSheduleDate = date; dailyWorkScheduleQuery.IsDeleted = false; dailyWorkScheduleQuery.Tenant_RefID = securityTicket.TenantID; var oldDailyWorkSchedule = ORM_CMN_STR_PPS_DailyWorkSchedule.Query.Search(Connection, Transaction, dailyWorkScheduleQuery).FirstOrDefault(); if (oldDailyWorkSchedule != null) { ORM_CMN_STR_PPS_DailyWorkSchedule_Detail.Query oldDailyWorkScheduleDetailQuery = new ORM_CMN_STR_PPS_DailyWorkSchedule_Detail.Query(); oldDailyWorkScheduleDetailQuery.DailyWorkSchedule_RefID = oldDailyWorkSchedule.CMN_STR_PPS_DailyWorkScheduleID; oldDailyWorkScheduleDetailQuery.IsDeleted = false; oldDailyWorkScheduleDetailQuery.Tenant_RefID = securityTicket.TenantID; var oldDailyWorkScheduleDetails = ORM_CMN_STR_PPS_DailyWorkSchedule_Detail.Query.Search(Connection, Transaction, oldDailyWorkScheduleDetailQuery); List <P_L6DWS_DDWS_1126_Details> detailsList = new List <P_L6DWS_DDWS_1126_Details>(); foreach (var detail in oldDailyWorkScheduleDetails) { ORM_CMN_CAL_Event.Query eventQuery = new ORM_CMN_CAL_Event.Query(); eventQuery.CMN_CAL_EventID = detail.CMN_CAL_Event_RefID; eventQuery.IsDeleted = false; eventQuery.Tenant_RefID = securityTicket.TenantID; var detailEvent = ORM_CMN_CAL_Event.Query.Search(Connection, Transaction, eventQuery).FirstOrDefault(); if (detailEvent != null) { P_L6DWS_DDWS_1126_Details detailParam = new P_L6DWS_DDWS_1126_Details(); detailParam.DailyWorkSchedule_DetailID = detail.CMN_STR_PPS_DailyWorkSchedule_DetailID; detailParam.durationInDays = leaveRequestUtil.LeaveRequestDuration(detailEvent.StartTime, detailEvent.EndTime, Parameter.Events, Parameter.Employees.FirstOrDefault(x => x.CMN_BPT_EMP_EmployeeID == empID), true); detailParam.durationInHours = leaveRequestUtil.LeaveRequestDuration(detailEvent.StartTime, detailEvent.EndTime, Parameter.Events, Parameter.Employees.FirstOrDefault(x => x.CMN_BPT_EMP_EmployeeID == empID), false); detailsList.Add(detailParam); } } P_L6DWS_DDWS_1126 deleteParam = new P_L6DWS_DDWS_1126(); deleteParam.CMN_STR_PPS_DailyWorkScheduleID = oldDailyWorkSchedule.CMN_STR_PPS_DailyWorkScheduleID; deleteParam.Details = detailsList.ToArray(); cls_Delete_DailyWorkSchedule.Invoke(Connection, Transaction, deleteParam, securityTicket); } P_L5DWS_SDWSFST_1447 param = new P_L5DWS_SDWSFST_1447(); param.Employee_RefID = empID; param.InstantiatedWithShiftTemplate_RefID = shiftTemplate.CMN_PPS_ShiftTemplateID; param.WorkSheduleDate = date; param.R_ContractSpecified_WorkingTime_in_sec = empInfo.ContractInfo.FirstOrDefault(x => x.Date == date).ContractSpecified_WorkingTime_in_sec; cls_Save_DailyWorkSchedule_For_ShiftTemplate.Invoke(Connection, Transaction, param, securityTicket); } } } } } } } } } } //Put your code here return(returnValue); #endregion UserCode }
protected static FR_Guid Execute(DbConnection Connection, DbTransaction Transaction, P_L5DO_SDaSA_1634 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { #region UserCode var returnValue = new FR_Guid(); foreach (var item in Parameter.AvailabilityDate) { #region Delete if (item.IsDeleted) { ORM_CMN_BPT_BusinessParticipant_Availability.Query.SoftDelete(Connection, Transaction, new ORM_CMN_BPT_BusinessParticipant_Availability.Query() { Tenant_RefID = securityTicket.TenantID, IsDeleted = false, CMN_BPT_BusinessParticipant_AvailabilityID = item.OfficeAvailabilityID }); } #endregion else { var officeAvailabilityQuery = new ORM_CMN_BPT_BusinessParticipant_Availability.Query(); officeAvailabilityQuery.Tenant_RefID = securityTicket.TenantID; officeAvailabilityQuery.IsDeleted = false; officeAvailabilityQuery.CMN_BPT_BusinessParticipant_AvailabilityID = item.OfficeAvailabilityID; var bpAvailability = ORM_CMN_BPT_BusinessParticipant_Availability.Query.Search(Connection, Transaction, officeAvailabilityQuery).SingleOrDefault(); #region Save if (bpAvailability == null) { bpAvailability = new ORM_CMN_BPT_BusinessParticipant_Availability(); bpAvailability.CMN_BPT_BusinessParticipant_AvailabilityID = item.OfficeAvailabilityID; bpAvailability.BusinessParticipant_RefID = Parameter.CMN_BPT_BusinessParticipantID; bpAvailability.CMN_CAL_AVA_Availability_RefID = Guid.NewGuid(); bpAvailability.Tenant_RefID = securityTicket.TenantID; bpAvailability.Creation_Timestamp = DateTime.Now; bpAvailability.Save(Connection, Transaction); var availability = new ORM_CMN_CAL_AVA_Availability(); availability.CMN_CAL_AVA_AvailabilityID = bpAvailability.CMN_CAL_AVA_Availability_RefID; availability.Tenant_RefID = securityTicket.TenantID; availability.Creation_Timestamp = DateTime.Now; var availabilityTypeQuery = new ORM_CMN_CAL_AVA_Availability_Type.Query(); availabilityTypeQuery.IsDeleted = false; availabilityTypeQuery.Tenant_RefID = securityTicket.TenantID; availabilityTypeQuery.GlobalPropertyMatchingID = item.Type; var availabilityType = ORM_CMN_CAL_AVA_Availability_Type.Query.Search(Connection, Transaction, availabilityTypeQuery).First(); availability.Office_RefID = item.OfficeID; availability.AvailabilityType_RefID = availabilityType.CMN_CAL_AVA_Availability_TypeID; availability.IsAvailabilityExclusionItem = item.IsException; availability.Save(Connection, Transaction); Guid EventId = Guid.NewGuid(); var date = new ORM_CMN_CAL_AVA_Date(); date.CMN_CAL_AVA_DateID = Guid.NewGuid(); date.Availability_RefID = availability.CMN_CAL_AVA_AvailabilityID; date.CMN_CAL_Event_RefID = EventId; date.DateName = item.AvailabilityDate_Name; date.DateComment = item.Reason; date.Tenant_RefID = securityTicket.TenantID; date.Creation_Timestamp = DateTime.Now; date.Save(Connection, Transaction); var events = new ORM_CMN_CAL_Event(); events.CMN_CAL_EventID = EventId; events.IsRepetitive = item.IsRepetitive; events.StartTime = item.AvailabilityDate_From; events.EndTime = item.AvailabilityDate_To; events.Tenant_RefID = securityTicket.TenantID; events.Creation_Timestamp = DateTime.Now; events.IsWholeDayEvent = item.IsWholeDay; if (item.IsRepetitive) { events.Repetition_RefID = Guid.NewGuid(); var repetitions = new ORM_CMN_CAL_Repetition(); repetitions.CMN_CAL_RepetitionID = events.Repetition_RefID; repetitions.IsMonthly = item.IsMontly; repetitions.IsWeekly = item.IsWeekly; repetitions.IsDaily = item.IsDaily; repetitions.IsYearly = item.IsYearly; repetitions.Tenant_RefID = securityTicket.TenantID; repetitions.Creation_Timestamp = DateTime.Now; repetitions.Save(Connection, Transaction); if (item.IsWeekly) { var repetitionWeekly = new ORM_CMN_CAL_RepetitionPatterns_Weekly(); repetitionWeekly.CMN_CAL_RepetitionPattern_WeeklyID = Guid.NewGuid(); repetitionWeekly.Repetition_RefID = repetitions.CMN_CAL_RepetitionID; repetitionWeekly.Tenant_RefID = securityTicket.TenantID; repetitionWeekly.Creation_Timestamp = DateTime.Now; repetitionWeekly.HasRepeatingOn_Fridays = item.HasRepeatingOn_Fridays; repetitionWeekly.HasRepeatingOn_Mondays = item.HasRepeatingOn_Mondays; repetitionWeekly.HasRepeatingOn_Saturdays = item.HasRepeatingOn_Saturdays; repetitionWeekly.HasRepeatingOn_Sundays = item.HasRepeatingOn_Sundays; repetitionWeekly.HasRepeatingOn_Thursdays = item.HasRepeatingOn_Thursdays; repetitionWeekly.HasRepeatingOn_Tuesdays = item.HasRepeatingOn_Tuesdays; repetitionWeekly.HasRepeatingOn_Wednesdays = item.HasRepeatingOn_Wednesdays; repetitionWeekly.Save(Connection, Transaction); } if (item.IsMontly) { var repetitionMontly = new ORM_CMN_CAL_RepetitionPatterns_Monthly(); repetitionMontly.CMN_CAL_RepetitionPattern_MonthlyID = Guid.NewGuid(); repetitionMontly.Repetition_RefID = repetitions.CMN_CAL_RepetitionID; repetitionMontly.Tenant_RefID = securityTicket.TenantID; repetitionMontly.Creation_Timestamp = DateTime.Now; repetitionMontly.Save(Connection, Transaction); } if (item.IsDaily) { var repetitionDaily = new ORM_CMN_CAL_RepetitionPatterns_Daily(); repetitionDaily.CMN_CAL_RepetitionPattern_DailyID = Guid.NewGuid(); repetitionDaily.Repetition_RefID = repetitions.CMN_CAL_RepetitionID; repetitionDaily.Tenant_RefID = securityTicket.TenantID; repetitionDaily.Creation_Timestamp = DateTime.Now; repetitionDaily.Save(Connection, Transaction); } if (item.IsYearly) { var repetitionYearly = new ORM_CMN_CAL_RepetitionPatterns_Yearly(); repetitionYearly.CMN_CAL_RepetitionPattern_YearlyID = Guid.NewGuid(); repetitionYearly.Repetition_RefID = repetitions.CMN_CAL_RepetitionID; repetitionYearly.Tenant_RefID = securityTicket.TenantID; repetitionYearly.Creation_Timestamp = DateTime.Now; repetitionYearly.Save(Connection, Transaction); } } events.Save(Connection, Transaction); } #endregion #region Edit else { bpAvailability.Save(Connection, Transaction); var eventsQuery = new ORM_CMN_CAL_Event.Query(); eventsQuery.IsDeleted = false; eventsQuery.Tenant_RefID = securityTicket.TenantID; var availability = ORM_CMN_CAL_AVA_Availability.Query.Search(Connection, Transaction, new ORM_CMN_CAL_AVA_Availability.Query() { Tenant_RefID = securityTicket.TenantID, IsDeleted = false, CMN_CAL_AVA_AvailabilityID = bpAvailability.CMN_CAL_AVA_Availability_RefID }).Single(); availability.Office_RefID = item.OfficeID; availability.Save(Connection, Transaction); var dateQuery = new ORM_CMN_CAL_AVA_Date.Query(); dateQuery.IsDeleted = false; dateQuery.Tenant_RefID = securityTicket.TenantID; dateQuery.Availability_RefID = bpAvailability.CMN_CAL_AVA_Availability_RefID; var date = ORM_CMN_CAL_AVA_Date.Query.Search(Connection, Transaction, dateQuery).Single(); date.DateName = item.AvailabilityDate_Name; date.DateComment = item.Reason; date.Save(Connection, Transaction); eventsQuery.CMN_CAL_EventID = date.CMN_CAL_Event_RefID; var Events = ORM_CMN_CAL_Event.Query.Search(Connection, Transaction, eventsQuery).Single(); Events.IsRepetitive = item.IsRepetitive; Events.IsWholeDayEvent = item.IsWholeDay; Events.StartTime = item.AvailabilityDate_From; Events.EndTime = item.AvailabilityDate_To; #region delete old repetation if exists var repetitionsQuery = new ORM_CMN_CAL_Repetition.Query(); repetitionsQuery.IsDeleted = false; repetitionsQuery.Tenant_RefID = securityTicket.TenantID; repetitionsQuery.CMN_CAL_RepetitionID = Events.Repetition_RefID; var repetitions = ORM_CMN_CAL_Repetition.Query.Search(Connection, Transaction, repetitionsQuery).SingleOrDefault(); if (repetitions != null) { repetitions.IsDeleted = true; repetitions.Save(Connection, Transaction); if (repetitions.IsWeekly) { ORM_CMN_CAL_RepetitionPatterns_Weekly.Query.SoftDelete(Connection, Transaction, new ORM_CMN_CAL_RepetitionPatterns_Weekly.Query() { IsDeleted = false, Tenant_RefID = securityTicket.TenantID, Repetition_RefID = repetitions.CMN_CAL_RepetitionID, }); } if (repetitions.IsMonthly) { ORM_CMN_CAL_RepetitionPatterns_Monthly.Query.SoftDelete(Connection, Transaction, new ORM_CMN_CAL_RepetitionPatterns_Monthly.Query() { Repetition_RefID = repetitions.CMN_CAL_RepetitionID, Tenant_RefID = securityTicket.TenantID, IsDeleted = false }); } if (repetitions.IsDaily) { ORM_CMN_CAL_RepetitionPatterns_Daily.Query.SoftDelete(Connection, Transaction, new ORM_CMN_CAL_RepetitionPatterns_Daily.Query() { Repetition_RefID = repetitions.CMN_CAL_RepetitionID, IsDeleted = false, Tenant_RefID = securityTicket.TenantID }); } if (repetitions.IsYearly) { ORM_CMN_CAL_RepetitionPatterns_Yearly.Query.SoftDelete(Connection, Transaction, new ORM_CMN_CAL_RepetitionPatterns_Yearly.Query() { Tenant_RefID = securityTicket.TenantID, IsDeleted = false, Repetition_RefID = repetitions.CMN_CAL_RepetitionID }); } } #endregion if (item.IsRepetitive) { Events.Repetition_RefID = Guid.NewGuid(); repetitions = new ORM_CMN_CAL_Repetition(); repetitions.CMN_CAL_RepetitionID = Events.Repetition_RefID; repetitions.IsMonthly = item.IsMontly; repetitions.IsWeekly = item.IsWeekly; repetitions.IsDaily = item.IsDaily; repetitions.IsYearly = item.IsYearly; repetitions.Tenant_RefID = securityTicket.TenantID; repetitions.Creation_Timestamp = DateTime.Now; repetitions.Save(Connection, Transaction); if (item.IsWeekly) { var repetitionWeekly = new ORM_CMN_CAL_RepetitionPatterns_Weekly(); repetitionWeekly.CMN_CAL_RepetitionPattern_WeeklyID = Guid.NewGuid(); repetitionWeekly.Repetition_RefID = repetitions.CMN_CAL_RepetitionID; repetitionWeekly.Tenant_RefID = securityTicket.TenantID; repetitionWeekly.Creation_Timestamp = DateTime.Now; repetitionWeekly.HasRepeatingOn_Fridays = item.HasRepeatingOn_Fridays; repetitionWeekly.HasRepeatingOn_Mondays = item.HasRepeatingOn_Mondays; repetitionWeekly.HasRepeatingOn_Saturdays = item.HasRepeatingOn_Saturdays; repetitionWeekly.HasRepeatingOn_Sundays = item.HasRepeatingOn_Sundays; repetitionWeekly.HasRepeatingOn_Thursdays = item.HasRepeatingOn_Thursdays; repetitionWeekly.HasRepeatingOn_Tuesdays = item.HasRepeatingOn_Tuesdays; repetitionWeekly.HasRepeatingOn_Wednesdays = item.HasRepeatingOn_Wednesdays; repetitionWeekly.Save(Connection, Transaction); } if (item.IsMontly) { var repetitionMontly = new ORM_CMN_CAL_RepetitionPatterns_Monthly(); repetitionMontly.CMN_CAL_RepetitionPattern_MonthlyID = Guid.NewGuid(); repetitionMontly.Repetition_RefID = repetitions.CMN_CAL_RepetitionID; repetitionMontly.Tenant_RefID = securityTicket.TenantID; repetitionMontly.Creation_Timestamp = DateTime.Now; repetitionMontly.Save(Connection, Transaction); } if (item.IsDaily) { var repetitionDaily = new ORM_CMN_CAL_RepetitionPatterns_Daily(); repetitionDaily.CMN_CAL_RepetitionPattern_DailyID = Guid.NewGuid(); repetitionDaily.Repetition_RefID = repetitions.CMN_CAL_RepetitionID; repetitionDaily.Tenant_RefID = securityTicket.TenantID; repetitionDaily.Creation_Timestamp = DateTime.Now; repetitionDaily.Save(Connection, Transaction); } if (item.IsYearly) { var repetitionYearly = new ORM_CMN_CAL_RepetitionPatterns_Yearly(); repetitionYearly.CMN_CAL_RepetitionPattern_YearlyID = Guid.NewGuid(); repetitionYearly.Repetition_RefID = repetitions.CMN_CAL_RepetitionID; repetitionYearly.Tenant_RefID = securityTicket.TenantID; repetitionYearly.Creation_Timestamp = DateTime.Now; repetitionYearly.Save(Connection, Transaction); } } Events.Save(Connection, Transaction); } #endregion } } var emp = ORM_CMN_BPT_EMP_Employee.Query.Search(Connection, Transaction, new ORM_CMN_BPT_EMP_Employee.Query { BusinessParticipant_RefID = Parameter.CMN_BPT_BusinessParticipantID, IsDeleted = false, Tenant_RefID = securityTicket.TenantID }).FirstOrDefault(); var oficeToDoctorList = ORM_CMN_BPT_EMP_Employee_2_Office.Query.Search(Connection, Transaction, new ORM_CMN_BPT_EMP_Employee_2_Office.Query { CMN_BPT_EMP_Employee_RefID = emp.CMN_BPT_EMP_EmployeeID, IsDeleted = false, Tenant_RefID = securityTicket.TenantID }); if (Parameter.UpdateSlots) { foreach (var o2d in oficeToDoctorList) { cls_CreateUpdate_Slots_for_Practice.Invoke(Connection, Transaction, new P_L5S_SUSfP_1708() { PracticeID = o2d.CMN_STR_Office_RefID }, securityTicket); } } return(returnValue); #endregion UserCode }
protected static FR_Guid Execute(DbConnection Connection, DbTransaction Transaction, P_L5DWS_SDWSD_1130 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { //Leave UserCode region to enable user code saving #region UserCode var returnValue = new FR_Guid(); //Put your code here ORM_CMN_STR_PPS_DailyWorkSchedule_Detail scheduleDetail = new ORM_CMN_STR_PPS_DailyWorkSchedule_Detail(); if (Parameter.CMN_STR_PPS_DailyWorkSchedule_DetailID != Guid.Empty) { var result = scheduleDetail.Load(Connection, Transaction, Parameter.CMN_STR_PPS_DailyWorkSchedule_DetailID); if (result.Status != FR_Status.Success || scheduleDetail.CMN_STR_PPS_DailyWorkSchedule_DetailID == Guid.Empty) { var error = new FR_Guid(); error.ErrorMessage = "No Such ID."; error.Status = FR_Status.Error_Internal; return(error); } scheduleDetail.AbsenceReason_RefID = Parameter.AbsenceReason_RefID; scheduleDetail.CMN_BPT_EMP_Employee_LeaveRequest_RefID = Parameter.CMN_BPT_EMP_Employee_LeaveRequest_RefID; scheduleDetail.CMN_CAL_Event_RefID = Parameter.CMN_CAL_Event_RefID; scheduleDetail.DailyWorkSchedule_RefID = Parameter.DailyWorkSchedule_RefID; scheduleDetail.IsWorkBreak = Parameter.IsWorkBreak; scheduleDetail.SheduleForWorkplace_RefID = Parameter.SheduleForWorkplace_RefID; scheduleDetail.Tenant_RefID = securityTicket.TenantID; scheduleDetail.Save(Connection, Transaction); ORM_CMN_CAL_Event.Query calEventQuery = new ORM_CMN_CAL_Event.Query(); calEventQuery.CMN_CAL_EventID = Parameter.CMN_CAL_Event_RefID; calEventQuery.IsDeleted = false; calEventQuery.Tenant_RefID = securityTicket.TenantID; ORM_CMN_CAL_Event calEvent = ORM_CMN_CAL_Event.Query.Search(Connection, Transaction, calEventQuery).FirstOrDefault(); calEvent.StartTime = Parameter.WorkTime_Start; calEvent.EndTime = Parameter.WorkTime_End; calEvent.R_EventDuration_sec = (int)Parameter.WorkTime_End.Subtract(Parameter.WorkTime_Start).TotalSeconds; calEvent.Save(Connection, Transaction); } else { scheduleDetail.AbsenceReason_RefID = Parameter.AbsenceReason_RefID; scheduleDetail.CMN_BPT_EMP_Employee_LeaveRequest_RefID = Parameter.CMN_BPT_EMP_Employee_LeaveRequest_RefID; scheduleDetail.CMN_CAL_Event_RefID = Parameter.CMN_CAL_Event_RefID; scheduleDetail.DailyWorkSchedule_RefID = Parameter.DailyWorkSchedule_RefID; scheduleDetail.IsWorkBreak = Parameter.IsWorkBreak; scheduleDetail.SheduleForWorkplace_RefID = Parameter.SheduleForWorkplace_RefID; scheduleDetail.Tenant_RefID = securityTicket.TenantID; ORM_CMN_CAL_Event calEvent = new ORM_CMN_CAL_Event(); calEvent.StartTime = Parameter.WorkTime_Start; calEvent.EndTime = Parameter.WorkTime_End; calEvent.R_EventDuration_sec = (int)(Parameter.WorkTime_End - Parameter.WorkTime_Start).TotalSeconds; calEvent.Tenant_RefID = securityTicket.TenantID; calEvent.Save(Connection, Transaction); scheduleDetail.CMN_CAL_Event_RefID = calEvent.CMN_CAL_EventID; scheduleDetail.Save(Connection, Transaction); } returnValue.Result = scheduleDetail.CMN_STR_PPS_DailyWorkSchedule_DetailID; return(returnValue); #endregion UserCode }
protected static FR_Base Execute(DbConnection Connection, DbTransaction Transaction, P_L5DWS_DEWTP_1130 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { //Leave UserCode region to enable user code saving #region UserCode var returnValue = new FR_Base(); //Put your code here ORM_CMN_BPT_EMP_EffectiveWorkTime_Position.Query positionQuery = new ORM_CMN_BPT_EMP_EffectiveWorkTime_Position.Query(); positionQuery.CMN_BPT_EMP_EffectiveWorkTime_PositionID = Parameter.CMN_BPT_EMP_EffectiveWorkTime_PositionID; positionQuery.IsDeleted = false; positionQuery.Tenant_RefID = securityTicket.TenantID; var position = ORM_CMN_BPT_EMP_EffectiveWorkTime_Position.Query.Search(Connection, Transaction, positionQuery).FirstOrDefault(); if (position == null) { return(null); } ORM_CMN_BPT_EMP_Employee_LeaveRequest leaveRequest = new ORM_CMN_BPT_EMP_Employee_LeaveRequest(); Guid leaveRequestID = Guid.Empty; if (position.CMN_BPT_EMP_Employee_LeaveRequest_RefID != Guid.Empty) { leaveRequestID = position.CMN_BPT_EMP_Employee_LeaveRequest_RefID; } if (leaveRequestID != Guid.Empty) { leaveRequest.Load(Connection, Transaction, leaveRequestID); leaveRequest.Remove(Connection, Transaction); ORM_CMN_CAL_Event leaveRequestEvent = new ORM_CMN_CAL_Event(); leaveRequestEvent.Load(Connection, Transaction, leaveRequest.CMN_CAL_Event_RefID); leaveRequestEvent.Remove(Connection, Transaction); 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; 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; var res = cls_Save_Employee_AbsenceReason_TimeframeStatistic.Invoke(Connection, Transaction, updateStatisticsParam, securityTicket); } } position.IsDeleted = true; position.Save(Connection, Transaction); return(returnValue); #endregion UserCode }
protected static FR_Guid Execute(DbConnection Connection, DbTransaction Transaction, P_L5OU_SPUOH_1111 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { #region UserCode var returnValue = new FR_Guid(); foreach (var item in Parameter.OpeningHours) { #region Non-working Hours if (item.IsNonWorkingHours) { var workTimeExceptionsQuery = new ORM_CMN_STR_Office_WorktimeTemplateException.Query(); workTimeExceptionsQuery.IsDeleted = false; workTimeExceptionsQuery.Tenant_RefID = securityTicket.TenantID; workTimeExceptionsQuery.Office_RefID = Parameter.OfficeID; workTimeExceptionsQuery.CMN_STR_Office_WorktimeTemplateExceptionID = item.TimeID; var workTimeExceptions = ORM_CMN_STR_Office_WorktimeTemplateException.Query.Search(Connection, Transaction, workTimeExceptionsQuery).SingleOrDefault(); #region Delete if (item.IsDeleted) { if (workTimeExceptions != null) { workTimeExceptions.IsDeleted = true; workTimeExceptions.Save(Connection, Transaction); } } #endregion else { #region Save if (workTimeExceptions == null) { workTimeExceptions = new ORM_CMN_STR_Office_WorktimeTemplateException(); workTimeExceptions.CMN_STR_Office_WorktimeTemplateExceptionID = item.TimeID; workTimeExceptions.CMN_CAL_Event_RefID = Guid.NewGuid(); workTimeExceptions.Office_RefID = Parameter.OfficeID; workTimeExceptions.Description = item.Description; workTimeExceptions.Tenant_RefID = securityTicket.TenantID; workTimeExceptions.Creation_Timestamp = DateTime.Now; workTimeExceptions.Save(Connection, Transaction); var Events = new ORM_CMN_CAL_Event(); Events.CMN_CAL_EventID = workTimeExceptions.CMN_CAL_Event_RefID; Events.IsRepetitive = item.IsRepetitive; Events.IsWholeDayEvent = item.IsWholeDay; Events.StartTime = item.StartDate; Events.EndTime = item.EndDate; Events.Tenant_RefID = securityTicket.TenantID; Events.Creation_Timestamp = DateTime.Now; if (item.IsRepetitive) { Events.Repetition_RefID = Guid.NewGuid(); var repetitions = new ORM_CMN_CAL_Repetition(); repetitions.CMN_CAL_RepetitionID = Events.Repetition_RefID; repetitions.IsMonthly = item.IsMontly; repetitions.IsWeekly = item.IsWeekly; repetitions.IsDaily = item.IsDaily; repetitions.IsYearly = item.IsYearly; repetitions.Tenant_RefID = securityTicket.TenantID; repetitions.Creation_Timestamp = DateTime.Now; repetitions.Save(Connection, Transaction); if (item.IsWeekly) { var repetitionWeekly = new ORM_CMN_CAL_RepetitionPatterns_Weekly(); repetitionWeekly.CMN_CAL_RepetitionPattern_WeeklyID = Guid.NewGuid(); repetitionWeekly.Repetition_RefID = repetitions.CMN_CAL_RepetitionID; repetitionWeekly.Tenant_RefID = securityTicket.TenantID; repetitionWeekly.Creation_Timestamp = DateTime.Now; repetitionWeekly.Save(Connection, Transaction); } if (item.IsMontly) { var repetitionMontly = new ORM_CMN_CAL_RepetitionPatterns_Monthly(); repetitionMontly.CMN_CAL_RepetitionPattern_MonthlyID = Guid.NewGuid(); repetitionMontly.Repetition_RefID = repetitions.CMN_CAL_RepetitionID; repetitionMontly.Tenant_RefID = securityTicket.TenantID; repetitionMontly.Creation_Timestamp = DateTime.Now; repetitionMontly.Save(Connection, Transaction); } if (item.IsDaily) { var repetitionDaily = new ORM_CMN_CAL_RepetitionPatterns_Daily(); repetitionDaily.CMN_CAL_RepetitionPattern_DailyID = Guid.NewGuid(); repetitionDaily.Repetition_RefID = repetitions.CMN_CAL_RepetitionID; repetitionDaily.Tenant_RefID = securityTicket.TenantID; repetitionDaily.Creation_Timestamp = DateTime.Now; repetitionDaily.Save(Connection, Transaction); } if (item.IsYearly) { var repetitionYearly = new ORM_CMN_CAL_RepetitionPatterns_Yearly(); repetitionYearly.CMN_CAL_RepetitionPattern_YearlyID = Guid.NewGuid(); repetitionYearly.Repetition_RefID = repetitions.CMN_CAL_RepetitionID; repetitionYearly.Tenant_RefID = securityTicket.TenantID; repetitionYearly.Creation_Timestamp = DateTime.Now; repetitionYearly.Save(Connection, Transaction); } } Events.Save(Connection, Transaction); } #endregion #region Edit else { workTimeExceptions.Description = item.Description; workTimeExceptions.Save(Connection, Transaction); var EventsQuery = new ORM_CMN_CAL_Event.Query(); EventsQuery.CMN_CAL_EventID = workTimeExceptions.CMN_CAL_Event_RefID; EventsQuery.IsDeleted = false; EventsQuery.Tenant_RefID = securityTicket.TenantID; var Events = ORM_CMN_CAL_Event.Query.Search(Connection, Transaction, EventsQuery).Single(); Events.IsRepetitive = item.IsRepetitive; Events.IsWholeDayEvent = item.IsWholeDay; Events.StartTime = item.StartDate; Events.EndTime = item.EndDate; #region delete old repetation if exists var repetitionsQuery = new ORM_CMN_CAL_Repetition.Query(); repetitionsQuery.IsDeleted = false; repetitionsQuery.Tenant_RefID = securityTicket.TenantID; repetitionsQuery.CMN_CAL_RepetitionID = Events.Repetition_RefID; var repetitions = ORM_CMN_CAL_Repetition.Query.Search(Connection, Transaction, repetitionsQuery).SingleOrDefault(); if (repetitions != null) { repetitions.IsDeleted = true; repetitions.Save(Connection, Transaction); if (repetitions.IsDaily) { var repetitionDailyQuery = new ORM_CMN_CAL_RepetitionPatterns_Daily.Query(); repetitionDailyQuery.IsDeleted = false; repetitionDailyQuery.Tenant_RefID = securityTicket.TenantID; repetitionDailyQuery.Repetition_RefID = repetitions.CMN_CAL_RepetitionID; var repetitionDaily = ORM_CMN_CAL_RepetitionPatterns_Daily.Query.Search(Connection, Transaction, repetitionDailyQuery).Single(); repetitionDaily.IsDeleted = true; repetitionDaily.Save(Connection, Transaction); } if (repetitions.IsWeekly) { var repetitionWeeklyQuery = new ORM_CMN_CAL_RepetitionPatterns_Weekly.Query(); repetitionWeeklyQuery.IsDeleted = false; repetitionWeeklyQuery.Tenant_RefID = securityTicket.TenantID; repetitionWeeklyQuery.Repetition_RefID = repetitions.CMN_CAL_RepetitionID; var repetitionWeekly = ORM_CMN_CAL_RepetitionPatterns_Weekly.Query.Search(Connection, Transaction, repetitionWeeklyQuery).Single(); repetitionWeekly.IsDeleted = true; repetitionWeekly.Save(Connection, Transaction); } if (repetitions.IsMonthly) { var repetitionMontlyQuery = new ORM_CMN_CAL_RepetitionPatterns_Monthly.Query(); repetitionMontlyQuery.IsDeleted = false; repetitionMontlyQuery.Tenant_RefID = securityTicket.TenantID; repetitionMontlyQuery.Repetition_RefID = repetitions.CMN_CAL_RepetitionID; var repetitionMontly = ORM_CMN_CAL_RepetitionPatterns_Monthly.Query.Search(Connection, Transaction, repetitionMontlyQuery).Single(); repetitionMontly.IsDeleted = true; repetitionMontly.Save(Connection, Transaction); } if (repetitions.IsYearly) { var repetitionYearlyQuery = new ORM_CMN_CAL_RepetitionPatterns_Yearly.Query(); repetitionYearlyQuery.IsDeleted = false; repetitionYearlyQuery.Tenant_RefID = securityTicket.TenantID; repetitionYearlyQuery.Repetition_RefID = repetitions.CMN_CAL_RepetitionID; var repetitionYearly = ORM_CMN_CAL_RepetitionPatterns_Yearly.Query.Search(Connection, Transaction, repetitionYearlyQuery).Single(); repetitionYearly.IsDeleted = true; repetitionYearly.Save(Connection, Transaction); } } #endregion if (item.IsRepetitive) { Events.Repetition_RefID = Guid.NewGuid(); repetitions = new ORM_CMN_CAL_Repetition(); repetitions.CMN_CAL_RepetitionID = Events.Repetition_RefID; repetitions.IsMonthly = item.IsMontly; repetitions.IsWeekly = item.IsWeekly; repetitions.IsDaily = item.IsDaily; repetitions.IsYearly = item.IsYearly; repetitions.Tenant_RefID = securityTicket.TenantID; repetitions.Creation_Timestamp = DateTime.Now; repetitions.Save(Connection, Transaction); if (item.IsWeekly) { var repetitionWeekly = new ORM_CMN_CAL_RepetitionPatterns_Weekly(); repetitionWeekly.CMN_CAL_RepetitionPattern_WeeklyID = Guid.NewGuid(); repetitionWeekly.Repetition_RefID = repetitions.CMN_CAL_RepetitionID; repetitionWeekly.Tenant_RefID = securityTicket.TenantID; repetitionWeekly.Creation_Timestamp = DateTime.Now; repetitionWeekly.Save(Connection, Transaction); } if (item.IsMontly) { var repetitionMontly = new ORM_CMN_CAL_RepetitionPatterns_Monthly(); repetitionMontly.CMN_CAL_RepetitionPattern_MonthlyID = Guid.NewGuid(); repetitionMontly.Repetition_RefID = repetitions.CMN_CAL_RepetitionID; repetitionMontly.Tenant_RefID = securityTicket.TenantID; repetitionMontly.Creation_Timestamp = DateTime.Now; repetitionMontly.Save(Connection, Transaction); } if (item.IsDaily) { var repetitionDaily = new ORM_CMN_CAL_RepetitionPatterns_Daily(); repetitionDaily.CMN_CAL_RepetitionPattern_DailyID = Guid.NewGuid(); repetitionDaily.Repetition_RefID = repetitions.CMN_CAL_RepetitionID; repetitionDaily.Tenant_RefID = securityTicket.TenantID; repetitionDaily.Creation_Timestamp = DateTime.Now; repetitionDaily.Save(Connection, Transaction); } if (item.IsYearly) { var repetitionYearly = new ORM_CMN_CAL_RepetitionPatterns_Yearly(); repetitionYearly.CMN_CAL_RepetitionPattern_YearlyID = Guid.NewGuid(); repetitionYearly.Repetition_RefID = repetitions.CMN_CAL_RepetitionID; repetitionYearly.Tenant_RefID = securityTicket.TenantID; repetitionYearly.Creation_Timestamp = DateTime.Now; repetitionYearly.Save(Connection, Transaction); } } Events.Save(Connection, Transaction); } #endregion } } #endregion #region Standard Hours else { var workTimeTemplateQuery = new ORM_CMN_STR_Office_Weekly_WorkTimeTemplate.Query(); workTimeTemplateQuery.IsDeleted = false; workTimeTemplateQuery.Office_RefID = Parameter.OfficeID; workTimeTemplateQuery.CMN_STR_Office_Weekly_WorkTimeTemplateID = item.TimeID; workTimeTemplateQuery.Tenant_RefID = securityTicket.TenantID; var workTimeTemplate = ORM_CMN_STR_Office_Weekly_WorkTimeTemplate.Query.Search(Connection, Transaction, workTimeTemplateQuery).SingleOrDefault(); #region Delete if (item.IsDeleted) { if (workTimeTemplate != null) { workTimeTemplate.IsDeleted = true; workTimeTemplate.Save(Connection, Transaction); } } #endregion else { #region Save if (workTimeTemplate == null) { workTimeTemplate = new ORM_CMN_STR_Office_Weekly_WorkTimeTemplate(); workTimeTemplate.CMN_STR_Office_Weekly_WorkTimeTemplateID = item.TimeID; workTimeTemplate.Office_RefID = Parameter.OfficeID; workTimeTemplate.CMN_CAL_WeeklyOfficeHours_Interval_RefID = Guid.NewGuid(); workTimeTemplate.Tenant_RefID = securityTicket.TenantID; workTimeTemplate.Creation_Timestamp = DateTime.Now; workTimeTemplate.Save(Connection, Transaction); ORM_CMN_CAL_WeeklyOfficeHours_Interval WeeklyOfficeHours_Interval = new ORM_CMN_CAL_WeeklyOfficeHours_Interval(); WeeklyOfficeHours_Interval.CMN_CAL_WeeklyOfficeHours_IntervalID = workTimeTemplate.CMN_CAL_WeeklyOfficeHours_Interval_RefID; WeeklyOfficeHours_Interval.WeeklyOfficeHours_Template_RefID = Guid.NewGuid(); WeeklyOfficeHours_Interval.Tenant_RefID = securityTicket.TenantID; WeeklyOfficeHours_Interval.Creation_Timestamp = DateTime.Now; WeeklyOfficeHours_Interval.IsMonday = item.IsMonday; WeeklyOfficeHours_Interval.IsTuesday = item.IsTuesday; WeeklyOfficeHours_Interval.IsWednesday = item.IsWednesday; WeeklyOfficeHours_Interval.IsThursday = item.IsThursday; WeeklyOfficeHours_Interval.IsFriday = item.IsFriday; WeeklyOfficeHours_Interval.IsSaturday = item.IsSaturday; WeeklyOfficeHours_Interval.IsSunday = item.IsSunday; WeeklyOfficeHours_Interval.IsWholeDay = item.IsWholeDay; WeeklyOfficeHours_Interval.TimeFrom_InMinutes = item.TimeFrom_InMinutes; WeeklyOfficeHours_Interval.TimeTo_InMinutes = item.TimeTo_InMinutes; WeeklyOfficeHours_Interval.Save(Connection, Transaction); ORM_CMN_CAL_WeeklyOfficeHours_Template WeeklyOfficeHours_Template = new ORM_CMN_CAL_WeeklyOfficeHours_Template(); WeeklyOfficeHours_Template.CMN_CAL_WeeklyOfficeHours_TemplateID = WeeklyOfficeHours_Interval.WeeklyOfficeHours_Template_RefID; WeeklyOfficeHours_Template.OfficeHoursTemplate_Name = item.OfficeHoursTemplate_Name; WeeklyOfficeHours_Template.Creation_Timestamp = DateTime.Now; WeeklyOfficeHours_Template.Tenant_RefID = securityTicket.TenantID; WeeklyOfficeHours_Template.Save(Connection, Transaction); } else #endregion #region Edit { var WeeklyOfficeHours_IntervalQuery = new ORM_CMN_CAL_WeeklyOfficeHours_Interval.Query(); WeeklyOfficeHours_IntervalQuery.IsDeleted = false; WeeklyOfficeHours_IntervalQuery.Tenant_RefID = securityTicket.TenantID; WeeklyOfficeHours_IntervalQuery.CMN_CAL_WeeklyOfficeHours_IntervalID = workTimeTemplate.CMN_CAL_WeeklyOfficeHours_Interval_RefID; var WeeklyOfficeHours_Interval = ORM_CMN_CAL_WeeklyOfficeHours_Interval.Query.Search(Connection, Transaction, WeeklyOfficeHours_IntervalQuery).Single(); WeeklyOfficeHours_Interval.IsWholeDay = item.IsWholeDay; WeeklyOfficeHours_Interval.TimeFrom_InMinutes = item.TimeFrom_InMinutes; WeeklyOfficeHours_Interval.TimeTo_InMinutes = item.TimeTo_InMinutes; WeeklyOfficeHours_Interval.Save(Connection, Transaction); var WeeklyOfficeHours_TemplateQuery = new ORM_CMN_CAL_WeeklyOfficeHours_Template.Query(); WeeklyOfficeHours_TemplateQuery.IsDeleted = false; WeeklyOfficeHours_TemplateQuery.Tenant_RefID = securityTicket.TenantID; WeeklyOfficeHours_TemplateQuery.CMN_CAL_WeeklyOfficeHours_TemplateID = WeeklyOfficeHours_Interval.WeeklyOfficeHours_Template_RefID; var WeeklyOfficeHours_Template = ORM_CMN_CAL_WeeklyOfficeHours_Template.Query.Search(Connection, Transaction, WeeklyOfficeHours_TemplateQuery).Single(); WeeklyOfficeHours_Template.OfficeHoursTemplate_Name = item.OfficeHoursTemplate_Name; WeeklyOfficeHours_Template.Save(Connection, Transaction); } #endregion } } #endregion } if (Parameter.UpdateSlots) { cls_CreateUpdate_Slots_for_Practice.Invoke(Connection, Transaction, new P_L5S_SUSfP_1708() { PracticeID = Parameter.OfficeID }, securityTicket); } return(returnValue); #endregion UserCode }