protected static FR_Guid Execute(DbConnection Connection, DbTransaction Transaction, P_L6LR_SLR_1142 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { #region UserCode var returnValue = new FR_Guid(); ORM_CMN_BPT_STA_AbsenceReason.Query selectedLeaveTypeQuery = new ORM_CMN_BPT_STA_AbsenceReason.Query(); selectedLeaveTypeQuery.Tenant_RefID = securityTicket.TenantID; selectedLeaveTypeQuery.CMN_BPT_STA_AbsenceReasonID = Parameter.LeaveRequest.AbsenceReason_RefID; selectedLeaveTypeQuery.IsDeleted = false; var selectedLeaveType = ORM_CMN_BPT_STA_AbsenceReason.Query.Search(Connection, Transaction, selectedLeaveTypeQuery).FirstOrDefault(); LeaveRequestUtils leaveRequestUtils = new LeaveRequestUtils(); P_L5LR_SELR_255 par = Parameter.LeaveRequest; L6TN_GSFT_1017 settings = cls_Get_Settings_For_Tenant.Invoke(Connection, Transaction, securityTicket).Result; par.NumberOfResponsiblePersonsRequiredToApprove = settings.NumberOfResponsiblePersonsRequiredToApprove; if (settings.NumberOfResponsiblePersonsRequiredToApprove == 0 || !Parameter.IsAuthRequired) { par.IsApprovalProcessOpened = false; par.IsApproved = true; } Guid leaveRequestID = cls_Save_Employee_LeaveRequest.Invoke(Connection, Transaction, par, securityTicket).Result; returnValue.Result = leaveRequestID; P_L5CT_GER2AAR_1258 getParam = new P_L5CT_GER2AAR_1258(); getParam.AbsenceReasonID = Parameter.LeaveRequest.AbsenceReason_RefID; getParam.ForEmployeeID = Parameter.LeaveRequest.RequestedFor_Employee_RefID; L5CT_GER2AAR_1258 wc2aar = cls_Get_EmploymentRelationships_2_AllowedAbsenceReasons.Invoke(Connection, Transaction, getParam, securityTicket).Result; L5EM_GEFE_1150_WorkingContract activeWorkingContract = new L5EM_GEFE_1150_WorkingContract(); P_L5EM_GEFE_1150 param = new P_L5EM_GEFE_1150(); param.EmployeeID = Parameter.LeaveRequest.RequestedFor_Employee_RefID; var employeeData = cls_Get_Employee_For_EmployeeID.Invoke(Connection, Transaction, param, securityTicket).Result; if (employeeData != null && employeeData.WorkingContracts != null) { activeWorkingContract = employeeData.WorkingContracts.FirstOrDefault(t => t.IsContract_Active == true); if (wc2aar == null) { if (activeWorkingContract != null) { ORM_CMN_BPT_EMP_WorkingContract_AllowedAbsenceReason workingContractToabsenceReason = new ORM_CMN_BPT_EMP_WorkingContract_AllowedAbsenceReason(); workingContractToabsenceReason.ContractAllowedAbsence_per_Month = 0; workingContractToabsenceReason.WorkingContract_RefID = activeWorkingContract.CMN_BPT_EMP_WorkingContractID; workingContractToabsenceReason.IsAbsenceCalculated_InDays = activeWorkingContract.IsWorkTimeCalculated_InDays; workingContractToabsenceReason.IsAbsenceCalculated_InHours = activeWorkingContract.IsWorkTimeCalculated_InHours; workingContractToabsenceReason.ContractAllowedAbsence_per_Month = 0; workingContractToabsenceReason.STA_AbsenceReason_RefID = Parameter.LeaveRequest.AbsenceReason_RefID; workingContractToabsenceReason.Tenant_RefID = securityTicket.TenantID; workingContractToabsenceReason.Save(Connection, Transaction); } } } // update statistics ************************************************ var timeFrame = cls_Get_CalculationTimeFramesForTenant.Invoke(Connection, Transaction, securityTicket).Result.Where(x => x.CalculationTimeframe_StartDate.Year == par.StartTime.Year).FirstOrDefault(); if (timeFrame == null) { ORM_CMN_CAL_CalculationTimeframe timeFramePar = new ORM_CMN_CAL_CalculationTimeframe(); timeFramePar.CalculationTimeframe_StartDate = new DateTime(par.StartTime.Year, 1, 1); timeFramePar.CalculationTimefrate_EndDate = new DateTime(0); timeFramePar.CalculationTimeframe_EstimatedEndDate = new DateTime(par.StartTime.Year, 12, 31); timeFramePar.IsCalculationTimeframe_Active = false; timeFramePar.Tenant_RefID = securityTicket.TenantID; timeFramePar.Save(Connection, Transaction); L5EM_GEFT_0959[] employees = cls_Get_Employees_For_Tenant.Invoke(Connection, Transaction, securityTicket).Result; foreach (var emp in employees) { ORM_CMN_BPT_EMP_EmploymentRelationship_Timeframe workingContactTimeFrame = new ORM_CMN_BPT_EMP_EmploymentRelationship_Timeframe(); workingContactTimeFrame.CalculationTimeframe_RefID = timeFramePar.CMN_CAL_CalculationTimeframeID; workingContactTimeFrame.CMN_BPT_EMP_EmploymentRelationship_TimeframeID = emp.CMN_BPT_EMP_EmploymentRelationshipID; workingContactTimeFrame.Tenant_RefID = securityTicket.TenantID; workingContactTimeFrame.Save(Connection, Transaction); } ORM_CMN_BPT_EMP_Employee_AbsenceReason_TimeframeStatistic timeFrameStatisticsPar = new ORM_CMN_BPT_EMP_Employee_AbsenceReason_TimeframeStatistic(); timeFrameStatisticsPar.AbsenceReason_RefID = par.AbsenceReason_RefID; timeFrameStatisticsPar.CalculationTimeframe_RefID = timeFramePar.CMN_CAL_CalculationTimeframeID; timeFrameStatisticsPar.Employee_RefID = par.RequestedFor_Employee_RefID; timeFrameStatisticsPar.R_AbsenceCarryOver_InDays = 0; timeFrameStatisticsPar.R_AbsenceCarryOver_InHours = 0; double timeToSubtractDays = 0; double timeToSubtractHours = 0; if (par.IsApproved) { timeToSubtractDays = Parameter.durationInDays; timeToSubtractHours = Parameter.durationInHours; timeFrameStatisticsPar.R_RequestReservedAbsence_InDays = 0; timeFrameStatisticsPar.R_RequestReservedAbsence_InHours = 0; timeFrameStatisticsPar.R_AbsenceTimeUsed_InDays = Parameter.durationInDays; timeFrameStatisticsPar.R_AbsenceTimeUsed_InHours = Parameter.durationInHours; } else { timeFrameStatisticsPar.R_RequestReservedAbsence_InDays = Parameter.durationInDays; timeFrameStatisticsPar.R_RequestReservedAbsence_InHours = Parameter.durationInDays; timeFrameStatisticsPar.R_AbsenceTimeUsed_InDays = 0; timeFrameStatisticsPar.R_AbsenceTimeUsed_InHours = 0; } if (wc2aar != null && activeWorkingContract != null) { if (wc2aar.IsAbsenceCalculated_InDays) { timeFrameStatisticsPar.R_TotalAllowedAbsenceTime_InDays = wc2aar.ContractAllowedAbsence_per_Month - timeToSubtractDays; timeFrameStatisticsPar.R_TotalAllowedAbsenceTime_InHours = WeeklyOfficeHoursUtils.DaysToHoursPeriod(leaveRequestUtils.PresiPatch(activeWorkingContract.WeeklyOfficeHours), wc2aar.ContractAllowedAbsence_per_Month - timeToSubtractHours); } else { timeFrameStatisticsPar.R_TotalAllowedAbsenceTime_InDays = WeeklyOfficeHoursUtils.HoursToDaysPeriod(leaveRequestUtils.PresiPatch(activeWorkingContract.WeeklyOfficeHours), wc2aar.ContractAllowedAbsence_per_Month - timeToSubtractDays); timeFrameStatisticsPar.R_TotalAllowedAbsenceTime_InHours = wc2aar.ContractAllowedAbsence_per_Month - timeToSubtractHours; } } else { timeFrameStatisticsPar.R_TotalAllowedAbsenceTime_InDays = 0; timeFrameStatisticsPar.R_TotalAllowedAbsenceTime_InHours = 0; } timeFrameStatisticsPar.Tenant_RefID = securityTicket.TenantID; timeFrameStatisticsPar.Save(Connection, Transaction); } else { P_L5EM_GEATFSbRTFE_1423 statParam = new P_L5EM_GEATFSbRTFE_1423(); statParam.absenceReasonID = Parameter.LeaveRequest.AbsenceReason_RefID; statParam.employeeID = Parameter.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 (par.IsApproved) { 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; } 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 + 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); } else { ORM_CMN_BPT_EMP_Employee_AbsenceReason_TimeframeStatistic timeFrameStatisticsPar = new ORM_CMN_BPT_EMP_Employee_AbsenceReason_TimeframeStatistic(); timeFrameStatisticsPar.AbsenceReason_RefID = par.AbsenceReason_RefID; timeFrameStatisticsPar.CalculationTimeframe_RefID = timeFrame.CMN_CAL_CalculationTimeframeID; timeFrameStatisticsPar.Employee_RefID = par.RequestedFor_Employee_RefID; timeFrameStatisticsPar.R_AbsenceCarryOver_InDays = 0; timeFrameStatisticsPar.R_AbsenceCarryOver_InHours = 0; double timeToSubtractDays = 0; double timeToSubtractHours = 0; if (par.IsApproved) { timeToSubtractDays = Parameter.durationInDays; timeToSubtractHours = Parameter.durationInHours; timeFrameStatisticsPar.R_RequestReservedAbsence_InDays = 0; timeFrameStatisticsPar.R_RequestReservedAbsence_InHours = 0; timeFrameStatisticsPar.R_AbsenceTimeUsed_InDays = Parameter.durationInDays; timeFrameStatisticsPar.R_AbsenceTimeUsed_InHours = Parameter.durationInHours; } else { timeFrameStatisticsPar.R_RequestReservedAbsence_InDays = Parameter.durationInDays; timeFrameStatisticsPar.R_RequestReservedAbsence_InHours = Parameter.durationInDays; timeFrameStatisticsPar.R_AbsenceTimeUsed_InDays = 0; timeFrameStatisticsPar.R_AbsenceTimeUsed_InHours = 0; } if (wc2aar != null && activeWorkingContract != null) { timeFrameStatisticsPar.R_TotalAllowedAbsenceTime_InDays = 0; timeFrameStatisticsPar.R_TotalAllowedAbsenceTime_InHours = 0; timeFrameStatisticsPar.R_TotalAllowedAbsenceTime_InDays = 0; timeFrameStatisticsPar.R_TotalAllowedAbsenceTime_InHours = 0; } else { timeFrameStatisticsPar.R_TotalAllowedAbsenceTime_InDays = 0; timeFrameStatisticsPar.R_TotalAllowedAbsenceTime_InHours = 0; } timeFrameStatisticsPar.Tenant_RefID = securityTicket.TenantID; timeFrameStatisticsPar.Save(Connection, Transaction); } } //cls_get // statistics update end :) //Create daily work schedule DateTime startTime = Parameter.LeaveRequest.StartTime; while (startTime.Date <= Parameter.LeaveRequest.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 = Parameter.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) { ORM_CMN_STR_PPS_DailyWorkSchedule schedule = new ORM_CMN_STR_PPS_DailyWorkSchedule(); var workingTimeInHours = 0.0; var daysFromContractTerm = WeeklyOfficeHoursUtils.DaysFromContractTerm(leaveRequestUtils.PresiPatch(activeWorkingContract.WeeklyOfficeHours)); var dayFromContractTerm = daysFromContractTerm.FirstOrDefault(x => x.dayOfWeek == startTime.DayOfWeek); if (dayFromContractTerm != null) { workingTimeInHours = (double)dayFromContractTerm.hours; } TimeSpan workingTimeSpan = TimeSpan.FromHours(workingTimeInHours); var workingHours = workingTimeSpan.Hours; var workingMinutes = workingTimeSpan.Minutes; var workingSeconds = workingTimeSpan.Seconds; DateTime detailStartTime;; DateTime detailEndTime; if (startTime.Date == Parameter.LeaveRequest.StartTime.Date) { detailStartTime = startTime; if (startTime.Hour + workingTimeInHours < 24) { var newEndTime = startTime.TimeOfDay + workingTimeSpan; detailEndTime = new DateTime(startTime.Year, startTime.Month, startTime.Day, newEndTime.Hours, newEndTime.Minutes, newEndTime.Seconds); } else { detailEndTime = new DateTime(startTime.Year, startTime.Month, startTime.Day, 23, 59, 59); } } else if (startTime.Date == Parameter.LeaveRequest.EndTime.Date) { if (Parameter.LeaveRequest.EndTime.TimeOfDay > workingTimeSpan) { var newStartTime = Parameter.LeaveRequest.EndTime.TimeOfDay - workingTimeSpan; detailStartTime = new DateTime(startTime.Year, startTime.Month, startTime.Day, newStartTime.Hours, newStartTime.Minutes, newStartTime.Seconds); } else { detailStartTime = new DateTime(startTime.Year, startTime.Month, startTime.Day, 0, 0, 0); } detailEndTime = Parameter.LeaveRequest.EndTime; } else { int hours = (int)Parameter.WorkTimeStart / (int)60; int mintues = Parameter.WorkTimeStart - hours * 60; detailStartTime = new DateTime(startTime.Year, startTime.Month, startTime.Day, hours, mintues, 0); if (hours + workingTimeSpan.Hours >= 24) { if (mintues + workingTimeSpan.Minutes >= 60) { detailEndTime = new DateTime(startTime.Year, startTime.Month, startTime.Day, hours + workingTimeSpan.Hours - 24, workingTimeSpan.Minutes, workingTimeSpan.Seconds); } else { detailEndTime = new DateTime(startTime.Year, startTime.Month, startTime.Day, hours + workingTimeSpan.Hours - 24, workingTimeSpan.Minutes - 60, workingTimeSpan.Seconds); } } else { if (mintues + workingTimeSpan.Minutes >= 60) { detailEndTime = new DateTime(startTime.Year, startTime.Month, startTime.Day, hours + workingTimeSpan.Hours, workingTimeSpan.Minutes - 60, workingTimeSpan.Seconds); } else { detailEndTime = new DateTime(startTime.Year, startTime.Month, startTime.Day, hours + workingTimeSpan.Hours, workingTimeSpan.Minutes, workingTimeSpan.Seconds); } } } schedule.Employee_RefID = Parameter.LeaveRequest.RequestedFor_Employee_RefID; schedule.ContractWorkerText = ""; schedule.BreakDurationTime_in_sec = 0; schedule.IsBreakTimeManualySpecified = false; schedule.IsWorkShedule_Confirmed = false; schedule.R_ContractSpecified_WorkingTime_in_sec = (int)workingTimeSpan.TotalSeconds; if (selectedLeaveType.IsLeaveTimeReducing_WorkingHours) { schedule.R_WorkDay_Duration_in_sec = (int)detailEndTime.Subtract(detailStartTime).TotalSeconds; } else { schedule.R_WorkDay_Duration_in_sec = 0; } schedule.R_WorkDay_Start_in_sec = (int)new TimeSpan(detailStartTime.Hour, detailStartTime.Minute, detailStartTime.Second).TotalSeconds; schedule.R_WorkDay_End_in_sec = (int)detailEndTime.Subtract(detailStartTime).TotalSeconds; schedule.SheduleBreakTemplate_RefID = Guid.Empty; schedule.Tenant_RefID = securityTicket.TenantID; schedule.WorkingSheduleComment = ""; schedule.WorkShedule_ConfirmedBy_Account_RefID = Guid.Empty; schedule.WorkSheduleDate = startTime.Date; schedule.InstantiatedWithShiftTemplate_RefID = Guid.Empty; schedule.Save(Connection, Transaction); P_L5DWS_SDWSD_1130 detailParam = new P_L5DWS_SDWSD_1130(); detailParam.WorkTime_Start = detailStartTime; detailParam.WorkTime_End = detailEndTime; detailParam.DailyWorkSchedule_RefID = schedule.CMN_STR_PPS_DailyWorkScheduleID; detailParam.IsWorkBreak = false; detailParam.SheduleForWorkplace_RefID = Guid.Empty; detailParam.AbsenceReason_RefID = Parameter.LeaveRequest.AbsenceReason_RefID; detailParam.RequestedBy_Employee_RefID = Parameter.LeaveRequest.RequestedBy_Employee_RefID; detailParam.RequestedFor_Employee_RefID = Parameter.LeaveRequest.RequestedFor_Employee_RefID; detailParam.CMN_BPT_EMP_Employee_LeaveRequest_RefID = leaveRequestID; detailParam.createRequest = false; cls_Save_Employee_DailyWorkSchedule_Detail.Invoke(Connection, Transaction, detailParam, securityTicket); } else { var dwsParam = new P_L5DWS_GDWSWDFT_0946(); dwsParam.WorkSheduleDate = startTime.Date; var resultDailyWorkSchedule = cls_Get_DailyWorkSchedules_WithDetails_For_Date.Invoke(Connection, Transaction, dwsParam, securityTicket); LeaveRequestUtils leaveRequestUtil = new LeaveRequestUtils(); var dailySchedule = resultDailyWorkSchedule.Result.FirstOrDefault(i => i.Employee_RefID == Parameter.LeaveRequest.RequestedFor_Employee_RefID); foreach (var detail in dailySchedule.Details) { var durationInDays = leaveRequestUtil.LeaveRequestDuration(detail.FromTime_as_DateTime, detail.ToTime_as_DateTime, Parameter.Events, Parameter.Employees.FirstOrDefault(x => x.CMN_BPT_EMP_EmployeeID == Parameter.LeaveRequest.RequestedFor_Employee_RefID), true); var durationInHours = leaveRequestUtil.LeaveRequestDuration(detail.FromTime_as_DateTime, detail.ToTime_as_DateTime, Parameter.Events, Parameter.Employees.FirstOrDefault(x => x.CMN_BPT_EMP_EmployeeID == Parameter.LeaveRequest.RequestedFor_Employee_RefID), false); 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(); schedule.Load(Connection, Transaction, dailySchedule.CMN_STR_PPS_DailyWorkScheduleID); var workingTimeInHours = 0; var daysFromContractTerm = WeeklyOfficeHoursUtils.DaysFromContractTerm(leaveRequestUtils.PresiPatch(activeWorkingContract.WeeklyOfficeHours)); var dayFromContractTerm = daysFromContractTerm.FirstOrDefault(x => x.dayOfWeek == startTime.DayOfWeek); if (dayFromContractTerm != null) { workingTimeInHours = (int)dayFromContractTerm.hours; } DateTime detailStartTime;; DateTime detailEndTime; if (startTime.Date == Parameter.LeaveRequest.StartTime.Date) { detailStartTime = startTime; detailEndTime = new DateTime(startTime.Year, startTime.Month, startTime.Day, 23, 59, 59); } else if (startTime.Date == Parameter.LeaveRequest.EndTime.Date) { detailStartTime = new DateTime(startTime.Year, startTime.Month, startTime.Day, 0, 0, 0); detailEndTime = Parameter.LeaveRequest.EndTime; } else { detailStartTime = new DateTime(startTime.Year, startTime.Month, startTime.Day, 0, 0, 0); detailEndTime = new DateTime(startTime.Year, startTime.Month, startTime.Day, 23, 59, 59); } schedule.Employee_RefID = Parameter.LeaveRequest.RequestedFor_Employee_RefID; schedule.ContractWorkerText = ""; schedule.BreakDurationTime_in_sec = 0; schedule.IsBreakTimeManualySpecified = false; schedule.IsWorkShedule_Confirmed = false; schedule.R_ContractSpecified_WorkingTime_in_sec = workingTimeInHours * 360; if (selectedLeaveType.IsLeaveTimeReducing_WorkingHours) { schedule.R_WorkDay_Duration_in_sec = (int)detailEndTime.Subtract(detailStartTime).TotalSeconds; } else { schedule.R_WorkDay_Duration_in_sec = 0; } schedule.R_WorkDay_Start_in_sec = (int)new TimeSpan(detailStartTime.Hour, detailStartTime.Minute, detailStartTime.Second).TotalSeconds; schedule.R_WorkDay_End_in_sec = schedule.R_WorkDay_Start_in_sec + (int)detailEndTime.Subtract(detailStartTime).TotalSeconds; schedule.SheduleBreakTemplate_RefID = Guid.Empty; schedule.Tenant_RefID = securityTicket.TenantID; schedule.WorkingSheduleComment = ""; schedule.WorkShedule_ConfirmedBy_Account_RefID = Guid.Empty; schedule.WorkSheduleDate = startTime.Date; schedule.InstantiatedWithShiftTemplate_RefID = Guid.Empty; schedule.Save(Connection, Transaction); P_L5DWS_SDWSD_1130 detailParam = new P_L5DWS_SDWSD_1130(); detailParam.WorkTime_Start = detailStartTime; detailParam.WorkTime_End = detailEndTime; detailParam.DailyWorkSchedule_RefID = schedule.CMN_STR_PPS_DailyWorkScheduleID; detailParam.IsWorkBreak = false; detailParam.SheduleForWorkplace_RefID = Guid.Empty; detailParam.AbsenceReason_RefID = Parameter.LeaveRequest.AbsenceReason_RefID; detailParam.RequestedBy_Employee_RefID = Parameter.LeaveRequest.RequestedBy_Employee_RefID; detailParam.RequestedFor_Employee_RefID = Parameter.LeaveRequest.RequestedFor_Employee_RefID; detailParam.CMN_BPT_EMP_Employee_LeaveRequest_RefID = leaveRequestID; detailParam.createRequest = false; cls_Save_Employee_DailyWorkSchedule_Detail.Invoke(Connection, Transaction, detailParam, securityTicket); } startTime = startTime.AddDays(1); } return(returnValue); #endregion UserCode }
protected static FR_Guid Execute(DbConnection Connection, DbTransaction Transaction, P_L5CT_SECT_1810 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { #region UserCode var returnValue = new FR_Guid(); ORM_CMN_BPT_EMP_WorkingContract workingContract = new ORM_CMN_BPT_EMP_WorkingContract(); if (Parameter.CMN_BPT_EMP_WorkingContractID != Guid.Empty) { var result = workingContract.Load(Connection, Transaction, Parameter.CMN_BPT_EMP_WorkingContractID); if (result.Status != FR_Status.Success || workingContract.CMN_BPT_EMP_WorkingContractID == Guid.Empty) { var error = new FR_Guid(); error.ErrorMessage = "No Such ID"; error.Status = FR_Status.Error_Internal; return(error); } } workingContract.Contract_EndDate = Parameter.Contract_EndDate; workingContract.Contract_StartDate = Parameter.Contract_StartDate; workingContract.IsContractEndDateDefined = Parameter.IsContractEndDateDefined; workingContract.IsWorkTimeCalculated_InDays = Parameter.IsWorkTimeCalculated_InDays; workingContract.IsWorkTimeCalculated_InHours = Parameter.IsWorkTimeCalculated_InHours; workingContract.R_WorkTime_DaysPerWeek = Parameter.R_WorkTime_DaysPerWeek; workingContract.R_WorkTime_HoursPerWeek = Parameter.R_WorkTime_HoursPerWeek; workingContract.ExtraWorkCalculation_RefID = Parameter.ExtraWorkCalculation_RefID; workingContract.WorkingContract_InCurrency_RefID = Parameter.WorkingContract_InCurrency_RefID; workingContract.IsWorktimeChecked_Monthly = Parameter.IsWorktimeChecked_Monthly; workingContract.IsWorktimeChecked_Weekly = Parameter.IsWorktimeChecked_Weekly; workingContract.IsMealAllowanceProvided = Parameter.IsMealAllowanceProvided; workingContract.SurchargeCalculation_UseAccumulated = Parameter.SurchargeCalculation_UseAccumulated; workingContract.SurchargeCalculation_UseMaximum = Parameter.SurchargeCalculation_UseMaximum; workingContract.WorkingContract_Comment = Parameter.WorkingContract_Comment; workingContract.Tenant_RefID = securityTicket.TenantID; workingContract.Save(Connection, Transaction); returnValue.Result = workingContract.CMN_BPT_EMP_WorkingContractID; //Night time surcharges ORM_CMN_BPT_EMP_WorkingContract_2_ExtraWorkSurcharge.Query contractToNightTimeSurchargeQuery = new ORM_CMN_BPT_EMP_WorkingContract_2_ExtraWorkSurcharge.Query(); contractToNightTimeSurchargeQuery.CMN_BPT_EMP_ExtraWorkCalculation_Surcharge_RefID = Parameter.NightTime_Surcharge_RefID; contractToNightTimeSurchargeQuery.CMN_BPT_EMP_WorkingContract_RefID = workingContract.CMN_BPT_EMP_WorkingContractID; contractToNightTimeSurchargeQuery.R_IsNightTimeSurcharge = true; contractToNightTimeSurchargeQuery.R_IsSpecialEventSurcharge = false; contractToNightTimeSurchargeQuery.IsDeleted = false; contractToNightTimeSurchargeQuery.Tenant_RefID = securityTicket.TenantID; var nightTimeSurchargeQueryResult = ORM_CMN_BPT_EMP_WorkingContract_2_ExtraWorkSurcharge.Query.Search(Connection, Transaction, contractToNightTimeSurchargeQuery); if (nightTimeSurchargeQueryResult.Count != 0) { ORM_CMN_BPT_EMP_WorkingContract_2_ExtraWorkSurcharge contractToNightTimeSurcharge = nightTimeSurchargeQueryResult.FirstOrDefault(); contractToNightTimeSurcharge.MaximumAllowedSurchargeTime_in_mins = Parameter.MaximumAllowedNightTimeSurchargeTime_in_mins; contractToNightTimeSurcharge.Save(Connection, Transaction); } else { ORM_CMN_BPT_EMP_WorkingContract_2_ExtraWorkSurcharge contractToNightTimeSurcharge = new ORM_CMN_BPT_EMP_WorkingContract_2_ExtraWorkSurcharge(); contractToNightTimeSurcharge.CMN_BPT_EMP_ExtraWorkCalculation_Surcharge_RefID = Parameter.NightTime_Surcharge_RefID; contractToNightTimeSurcharge.CMN_BPT_EMP_WorkingContract_RefID = workingContract.CMN_BPT_EMP_WorkingContractID; contractToNightTimeSurcharge.R_IsNightTimeSurcharge = true; contractToNightTimeSurcharge.R_IsSpecialEventSurcharge = false; contractToNightTimeSurcharge.MaximumAllowedSurchargeTime_in_mins = Parameter.MaximumAllowedNightTimeSurchargeTime_in_mins; contractToNightTimeSurcharge.Tenant_RefID = securityTicket.TenantID; contractToNightTimeSurcharge.Save(Connection, Transaction); } //Special event surcharges ORM_CMN_BPT_EMP_WorkingContract_2_ExtraWorkSurcharge.Query contractToSpecialEventSurchargeQuery = new ORM_CMN_BPT_EMP_WorkingContract_2_ExtraWorkSurcharge.Query(); contractToSpecialEventSurchargeQuery.CMN_BPT_EMP_ExtraWorkCalculation_Surcharge_RefID = Parameter.SpecialEvent_Surcharge_RefID; contractToSpecialEventSurchargeQuery.CMN_BPT_EMP_WorkingContract_RefID = workingContract.CMN_BPT_EMP_WorkingContractID; contractToSpecialEventSurchargeQuery.R_IsNightTimeSurcharge = false; contractToSpecialEventSurchargeQuery.R_IsSpecialEventSurcharge = true; contractToSpecialEventSurchargeQuery.IsDeleted = false; contractToSpecialEventSurchargeQuery.Tenant_RefID = securityTicket.TenantID; var specialEventSurchargeQueryResult = ORM_CMN_BPT_EMP_WorkingContract_2_ExtraWorkSurcharge.Query.Search(Connection, Transaction, contractToSpecialEventSurchargeQuery); if (specialEventSurchargeQueryResult.Count != 0) { ORM_CMN_BPT_EMP_WorkingContract_2_ExtraWorkSurcharge contractToSpecialEventSurcharge = specialEventSurchargeQueryResult.FirstOrDefault(); contractToSpecialEventSurcharge.MaximumAllowedSurchargeTime_in_mins = Parameter.MaximumAllowedSpecialEventSurchargeTime_in_mins; contractToSpecialEventSurcharge.Save(Connection, Transaction); } else { ORM_CMN_BPT_EMP_WorkingContract_2_ExtraWorkSurcharge contractToSpecialEventSurcharge = new ORM_CMN_BPT_EMP_WorkingContract_2_ExtraWorkSurcharge(); contractToSpecialEventSurcharge.CMN_BPT_EMP_ExtraWorkCalculation_Surcharge_RefID = Parameter.SpecialEvent_Surcharge_RefID; contractToSpecialEventSurcharge.CMN_BPT_EMP_WorkingContract_RefID = workingContract.CMN_BPT_EMP_WorkingContractID; contractToSpecialEventSurcharge.R_IsNightTimeSurcharge = false; contractToSpecialEventSurcharge.R_IsSpecialEventSurcharge = true; contractToSpecialEventSurcharge.MaximumAllowedSurchargeTime_in_mins = Parameter.MaximumAllowedSpecialEventSurchargeTime_in_mins; contractToSpecialEventSurcharge.Tenant_RefID = securityTicket.TenantID; contractToSpecialEventSurcharge.Save(Connection, Transaction); } ORM_CMN_BPT_EMP_EmploymentRelationship_2_WorkingContract contractToEmployeeRelationship = new ORM_CMN_BPT_EMP_EmploymentRelationship_2_WorkingContract(); if (Parameter.EmployeeRelationshipToWorkingContractAssignmentID != Guid.Empty) { ORM_CMN_BPT_EMP_EmploymentRelationship_2_WorkingContract.Query contractToEmployeeRelationshipQuery = new ORM_CMN_BPT_EMP_EmploymentRelationship_2_WorkingContract.Query(); contractToEmployeeRelationshipQuery.AssignmentID = Parameter.EmployeeRelationshipToWorkingContractAssignmentID; contractToEmployeeRelationshipQuery.IsDeleted = false; contractToEmployeeRelationshipQuery.Tenant_RefID = securityTicket.TenantID; contractToEmployeeRelationship = ORM_CMN_BPT_EMP_EmploymentRelationship_2_WorkingContract.Query.Search(Connection, Transaction, contractToEmployeeRelationshipQuery).FirstOrDefault(); } contractToEmployeeRelationship.WorkingContract_RefID = workingContract.CMN_BPT_EMP_WorkingContractID; contractToEmployeeRelationship.EmploymentRelationship_RefID = Parameter.EmploymentRelationship_RefID; contractToEmployeeRelationship.IsContract_Active = Parameter.IsActive_WorkingContract; contractToEmployeeRelationship.Tenant_RefID = securityTicket.TenantID; contractToEmployeeRelationship.Save(Connection, Transaction); if (Parameter.LastActive_WorkingContractID != Guid.Empty) { ORM_CMN_BPT_EMP_EmploymentRelationship_2_WorkingContract.Query lastActiveContractToEmployeeRelationshipQuery = new ORM_CMN_BPT_EMP_EmploymentRelationship_2_WorkingContract.Query(); lastActiveContractToEmployeeRelationshipQuery.WorkingContract_RefID = Parameter.LastActive_WorkingContractID; lastActiveContractToEmployeeRelationshipQuery.IsDeleted = false; lastActiveContractToEmployeeRelationshipQuery.Tenant_RefID = securityTicket.TenantID; ORM_CMN_BPT_EMP_EmploymentRelationship_2_WorkingContract lastActiveContractToEmployeeRelationship = ORM_CMN_BPT_EMP_EmploymentRelationship_2_WorkingContract.Query.Search(Connection, Transaction, lastActiveContractToEmployeeRelationshipQuery).FirstOrDefault(); lastActiveContractToEmployeeRelationship.IsContract_Active = false; lastActiveContractToEmployeeRelationship.Save(Connection, Transaction); ORM_CMN_BPT_EMP_WorkingContract.Query lastActiveContractQuery = new ORM_CMN_BPT_EMP_WorkingContract.Query(); lastActiveContractQuery.CMN_BPT_EMP_WorkingContractID = Parameter.LastActive_WorkingContractID; lastActiveContractQuery.IsDeleted = false; lastActiveContractQuery.Tenant_RefID = securityTicket.TenantID; var lastActiveContract = ORM_CMN_BPT_EMP_WorkingContract.Query.Search(Connection, Transaction, lastActiveContractQuery).FirstOrDefault(); if (!lastActiveContract.IsContractEndDateDefined) { lastActiveContract.Contract_EndDate = Parameter.Contract_StartDate; lastActiveContract.IsContractEndDateDefined = true; lastActiveContract.Save(Connection, Transaction); } } foreach (P_L5CT_SECT_1810_WorkingContractAllowedAbsenceReason obj in Parameter.WorkingContractAllowedAbsenceReason) { ORM_CMN_BPT_EMP_WorkingContract_AllowedAbsenceReason contractToabsenceReason = new ORM_CMN_BPT_EMP_WorkingContract_AllowedAbsenceReason(); if (obj.WorkingContractAllowedAbsenceReasonID != Guid.Empty) { ORM_CMN_BPT_EMP_WorkingContract_AllowedAbsenceReason.Query contractToabsenceReasonQuery = new ORM_CMN_BPT_EMP_WorkingContract_AllowedAbsenceReason.Query(); contractToabsenceReasonQuery.CMN_BPT_EMP_WorkingContract_AllowedAbsenceReasonID = obj.WorkingContractAllowedAbsenceReasonID; contractToabsenceReasonQuery.IsDeleted = false; contractToabsenceReasonQuery.Tenant_RefID = securityTicket.TenantID; contractToabsenceReason = ORM_CMN_BPT_EMP_WorkingContract_AllowedAbsenceReason.Query.Search(Connection, Transaction, contractToabsenceReasonQuery).FirstOrDefault(); } contractToabsenceReason.ContractAllowedAbsence_per_Month = obj.ContractAllowedAbsence; contractToabsenceReason.WorkingContract_RefID = workingContract.CMN_BPT_EMP_WorkingContractID; contractToabsenceReason.IsAbsenceCalculated_InDays = Parameter.IsWorkTimeCalculated_InDays; contractToabsenceReason.IsAbsenceCalculated_InHours = Parameter.IsWorkTimeCalculated_InHours; contractToabsenceReason.STA_AbsenceReason_RefID = obj.AbsenceReasonRefID; contractToabsenceReason.Tenant_RefID = securityTicket.TenantID; contractToabsenceReason.Save(Connection, Transaction); } ORM_CMN_BPT_EMP_WorkingContract_2_WorkingDay.Query query = new ORM_CMN_BPT_EMP_WorkingContract_2_WorkingDay.Query(); query.CMN_BPT_EMP_WorkingContract_RefID = workingContract.CMN_BPT_EMP_WorkingContractID; foreach (ORM_CMN_BPT_EMP_WorkingContract_2_WorkingDay obj in ORM_CMN_BPT_EMP_WorkingContract_2_WorkingDay.Query.Search(Connection, Transaction, query)) { ORM_CMN_CAL_WeeklyOfficeHours_Interval.Query intervalQuery = new ORM_CMN_CAL_WeeklyOfficeHours_Interval.Query(); intervalQuery.CMN_CAL_WeeklyOfficeHours_IntervalID = obj.CMN_CAL_WeeklyOfficeHours_Interval_RefID; ORM_CMN_CAL_WeeklyOfficeHours_Interval.Query.SoftDelete(Connection, Transaction, intervalQuery); } ORM_CMN_BPT_EMP_WorkingContract_2_WorkingDay.Query.SoftDelete(Connection, Transaction, query); foreach (P_L5CT_SECT_1810_WeeklyOfficeHours obj in Parameter.WeeklyOfficeHours) { ORM_CMN_BPT_EMP_WorkingContract_2_WorkingDay workingContractToWorkingDay = new ORM_CMN_BPT_EMP_WorkingContract_2_WorkingDay(); workingContractToWorkingDay.CMN_BPT_EMP_WorkingContract_RefID = workingContract.CMN_BPT_EMP_WorkingContractID; ORM_CMN_CAL_WeeklyOfficeHours_Interval weeklyOfficeHoursInterval = new ORM_CMN_CAL_WeeklyOfficeHours_Interval(); weeklyOfficeHoursInterval.IsMonday = obj.IsMonday; weeklyOfficeHoursInterval.IsTuesday = obj.IsTuesday; weeklyOfficeHoursInterval.IsWednesday = obj.IsWednesday; weeklyOfficeHoursInterval.IsThursday = obj.IsThursday; weeklyOfficeHoursInterval.IsFriday = obj.IsFriday; weeklyOfficeHoursInterval.IsSaturday = obj.IsSaturday; weeklyOfficeHoursInterval.IsSunday = obj.IsSunday; weeklyOfficeHoursInterval.TimeFrom_InMinutes = obj.TimeFrom_InMinutes; weeklyOfficeHoursInterval.TimeTo_InMinutes = obj.TimeTo_InMinutes; weeklyOfficeHoursInterval.Tenant_RefID = securityTicket.TenantID; weeklyOfficeHoursInterval.IsWholeDay = obj.IsWholeDay; weeklyOfficeHoursInterval.Save(Connection, Transaction); workingContractToWorkingDay.CMN_CAL_WeeklyOfficeHours_Interval_RefID = weeklyOfficeHoursInterval.CMN_CAL_WeeklyOfficeHours_IntervalID; workingContractToWorkingDay.Tenant_RefID = securityTicket.TenantID; workingContractToWorkingDay.Save(Connection, Transaction); } ORM_CMN_BPT_EMP_WorkingContract_2_ContractEmploymentType.Query workingContractTypeQuery = new ORM_CMN_BPT_EMP_WorkingContract_2_ContractEmploymentType.Query(); workingContractTypeQuery.CMN_BPT_EMP_Employee_WorkingContract_RefID = workingContract.CMN_BPT_EMP_WorkingContractID; workingContractTypeQuery.Tenant_RefID = securityTicket.TenantID; workingContractTypeQuery.IsDeleted = false; ORM_CMN_BPT_EMP_WorkingContract_2_ContractEmploymentType workingContract_2_ContractEmploymentType = ORM_CMN_BPT_EMP_WorkingContract_2_ContractEmploymentType.Query.Search(Connection, Transaction, workingContractTypeQuery).FirstOrDefault(); if (workingContract_2_ContractEmploymentType != null) { ORM_CMN_BPT_EMP_WorkingContract_EmploymentType.Query employmentTypeQuery = new ORM_CMN_BPT_EMP_WorkingContract_EmploymentType.Query(); employmentTypeQuery.Tenant_RefID = securityTicket.TenantID; employmentTypeQuery.IsDeleted = false; employmentTypeQuery.GlobalPropertyMatchingID = Parameter.TypeOfEmployment.ToString(); ORM_CMN_BPT_EMP_WorkingContract_EmploymentType newEmploymentType = ORM_CMN_BPT_EMP_WorkingContract_EmploymentType.Query.Search(Connection, Transaction, employmentTypeQuery).FirstOrDefault(); if (newEmploymentType != null) { workingContract_2_ContractEmploymentType.CMN_BPT_EMP_WorkingContract_EmploymentTypeID = newEmploymentType.CMN_BPT_EMP_Employee_WorkingContract_EmploymentTypeID; workingContract_2_ContractEmploymentType.Save(Connection, Transaction); } } else { ORM_CMN_BPT_EMP_WorkingContract_EmploymentType.Query employmentTypeQuery = new ORM_CMN_BPT_EMP_WorkingContract_EmploymentType.Query(); employmentTypeQuery.Tenant_RefID = securityTicket.TenantID; employmentTypeQuery.IsDeleted = false; List <ORM_CMN_BPT_EMP_WorkingContract_EmploymentType> employmentTypes = ORM_CMN_BPT_EMP_WorkingContract_EmploymentType.Query.Search(Connection, Transaction, employmentTypeQuery); ORM_CMN_BPT_EMP_WorkingContract_EmploymentType newEmploymentType = new ORM_CMN_BPT_EMP_WorkingContract_EmploymentType(); if (employmentTypes.Count == 0) { Guid german = Guid.Empty; Guid english = Guid.Empty; L2LN_GAL_1526[] AllLanguages = cls_Get_All_Languages.Invoke(Connection, Transaction, securityTicket).Result; foreach (var language in AllLanguages) { if (language.ISO_639_1.ToUpper() == "DE") { german = language.CMN_LanguageID; } else if (language.ISO_639_1.ToUpper() == "EN") { english = language.CMN_LanguageID; } } newEmploymentType.CMN_BPT_EMP_Employee_WorkingContract_EmploymentTypeID = Guid.NewGuid(); newEmploymentType.EmploymentType_Description = new Dict("CMN_BPT_EMP_WorkingContract_EmploymentType"); newEmploymentType.EmploymentType_Description.DictionaryID = Guid.NewGuid(); newEmploymentType.EmploymentType_Description.AddEntry(german, "Festangestellte"); newEmploymentType.EmploymentType_Description.AddEntry(english, "permanent worker"); newEmploymentType.EmploymentType_Name = new Dict("CMN_BPT_EMP_WorkingContract_EmploymentType"); newEmploymentType.EmploymentType_Name.DictionaryID = Guid.NewGuid(); newEmploymentType.EmploymentType_Name.AddEntry(german, "Festangestellte"); newEmploymentType.EmploymentType_Name.AddEntry(english, "permanent worker"); newEmploymentType.GlobalPropertyMatchingID = "0"; newEmploymentType.Tenant_RefID = securityTicket.TenantID; newEmploymentType.Save(Connection, Transaction); newEmploymentType = new ORM_CMN_BPT_EMP_WorkingContract_EmploymentType(); newEmploymentType.CMN_BPT_EMP_Employee_WorkingContract_EmploymentTypeID = Guid.NewGuid(); newEmploymentType.EmploymentType_Description = new Dict("CMN_BPT_EMP_WorkingContract_EmploymentType"); newEmploymentType.EmploymentType_Description.DictionaryID = Guid.NewGuid(); newEmploymentType.EmploymentType_Description.AddEntry(german, "Aushilfe"); newEmploymentType.EmploymentType_Description.AddEntry(english, "temporary worker"); newEmploymentType.EmploymentType_Name = new Dict("CMN_BPT_EMP_WorkingContract_EmploymentType"); newEmploymentType.EmploymentType_Name.DictionaryID = Guid.NewGuid(); newEmploymentType.EmploymentType_Name.AddEntry(german, "Aushilfe"); newEmploymentType.EmploymentType_Name.AddEntry(english, "temporary worker"); newEmploymentType.GlobalPropertyMatchingID = "1"; newEmploymentType.Tenant_RefID = securityTicket.TenantID; newEmploymentType.Save(Connection, Transaction); newEmploymentType = new ORM_CMN_BPT_EMP_WorkingContract_EmploymentType(); newEmploymentType.CMN_BPT_EMP_Employee_WorkingContract_EmploymentTypeID = Guid.NewGuid(); newEmploymentType.EmploymentType_Description = new Dict("CMN_BPT_EMP_WorkingContract_EmploymentType"); newEmploymentType.EmploymentType_Description.DictionaryID = Guid.NewGuid(); newEmploymentType.EmploymentType_Description.AddEntry(german, "Contract worker"); newEmploymentType.EmploymentType_Description.AddEntry(english, "Leiharbeiter"); newEmploymentType.EmploymentType_Name = new Dict("CMN_BPT_EMP_WorkingContract_EmploymentType"); newEmploymentType.EmploymentType_Name.DictionaryID = Guid.NewGuid(); newEmploymentType.EmploymentType_Name.AddEntry(german, "Contract worker"); newEmploymentType.EmploymentType_Name.AddEntry(english, "Leiharbeiter"); newEmploymentType.GlobalPropertyMatchingID = "2"; newEmploymentType.Tenant_RefID = securityTicket.TenantID; newEmploymentType.Save(Connection, Transaction); } ORM_CMN_BPT_EMP_WorkingContract_2_ContractEmploymentType employmentType2Contract = new ORM_CMN_BPT_EMP_WorkingContract_2_ContractEmploymentType(); employmentType2Contract.Tenant_RefID = securityTicket.TenantID; employmentType2Contract.IsDeleted = false; employmentType2Contract.CMN_BPT_EMP_Employee_WorkingContract_RefID = workingContract.CMN_BPT_EMP_WorkingContractID; ORM_CMN_BPT_EMP_WorkingContract_EmploymentType.Query newEmploymentTypeQuery = new ORM_CMN_BPT_EMP_WorkingContract_EmploymentType.Query(); newEmploymentTypeQuery.Tenant_RefID = securityTicket.TenantID; newEmploymentTypeQuery.IsDeleted = false; newEmploymentTypeQuery.GlobalPropertyMatchingID = Parameter.TypeOfEmployment.ToString(); newEmploymentType = ORM_CMN_BPT_EMP_WorkingContract_EmploymentType.Query.Search(Connection, Transaction, newEmploymentTypeQuery).FirstOrDefault(); if (newEmploymentType != null) { employmentType2Contract.CMN_BPT_EMP_WorkingContract_EmploymentTypeID = newEmploymentType.CMN_BPT_EMP_Employee_WorkingContract_EmploymentTypeID; employmentType2Contract.Save(Connection, Transaction); } } return(returnValue); #endregion UserCode }