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 }
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 }