protected static FR_L5EM_GENFT_1344_Array Execute(DbConnection Connection, DbTransaction Transaction, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { #region UserCode var returnValue = new FR_L5EM_GENFT_1344_Array(); List <L5EM_GENFT_1344> employeeResultList = new List <L5EM_GENFT_1344>(); ORM_CMN_BPT_EMP_Employee.Query employeeQuery = new ORM_CMN_BPT_EMP_Employee.Query(); employeeQuery.IsDeleted = false; employeeQuery.Tenant_RefID = securityTicket.TenantID; List <ORM_CMN_BPT_EMP_Employee> employeeList = ORM_CMN_BPT_EMP_Employee.Query.Search(Connection, Transaction, employeeQuery); foreach (var employeeItem in employeeList) { L5EM_GENFT_1344 result = new L5EM_GENFT_1344(); ORM_CMN_BPT_EMP_Employee employee = new ORM_CMN_BPT_EMP_Employee(); employee.Load(Connection, Transaction, employeeItem.CMN_BPT_EMP_EmployeeID); result.CMN_BPT_EMP_EmployeeID = employeeItem.CMN_BPT_EMP_EmployeeID; ORM_CMN_BPT_BusinessParticipant businessParticipant = new ORM_CMN_BPT_BusinessParticipant(); businessParticipant.Load(Connection, Transaction, employee.BusinessParticipant_RefID); ORM_CMN_PER_PersonInfo personInfo = new ORM_CMN_PER_PersonInfo(); personInfo.Load(Connection, Transaction, businessParticipant.IfNaturalPerson_CMN_PER_PersonInfo_RefID); result.FirstName = personInfo.FirstName; result.LastName = personInfo.LastName; employeeResultList.Add(result); //Employee workplace history ORM_CMN_BPT_EMP_Employee_WorkplaceAssignment.Query employeeWorkplaceAssignmentsQuery = new ORM_CMN_BPT_EMP_Employee_WorkplaceAssignment.Query(); employeeWorkplaceAssignmentsQuery.CMN_BPT_EMP_Employee_RefID = employee.CMN_BPT_EMP_EmployeeID; employeeWorkplaceAssignmentsQuery.Tenant_RefID = securityTicket.TenantID; employeeWorkplaceAssignmentsQuery.IsDeleted = false; List <ORM_CMN_BPT_EMP_Employee_WorkplaceAssignment> employeeWorkplaceAssignemntsList = ORM_CMN_BPT_EMP_Employee_WorkplaceAssignment.Query.Search(Connection, Transaction, employeeWorkplaceAssignmentsQuery); List <L5EM_GENFT_1344_EmployeeWorkplaceHistory> employeeWorkplaceAssignments = new List <L5EM_GENFT_1344_EmployeeWorkplaceHistory>(); foreach (var workplaceAssignemns in employeeWorkplaceAssignemntsList) { L5EM_GENFT_1344_EmployeeWorkplaceHistory item = new L5EM_GENFT_1344_EmployeeWorkplaceHistory(); item.BoundTo_Workplace_RefID = workplaceAssignemns.BoundTo_Workplace_RefID; item.CMN_BPT_EMP_Employee_PlanGroup_RefID = workplaceAssignemns.CMN_BPT_EMP_Employee_PlanGroup_RefID; item.CMN_BPT_EMP_Employee_WorkplaceAssignmentID = workplaceAssignemns.CMN_BPT_EMP_Employee_WorkplaceAssignment; item.Default_BreakTime_Template_RefID = workplaceAssignemns.Default_BreakTime_Template_RefID; item.IsBreakTimeCalculated_Actual = workplaceAssignemns.IsBreakTimeCalculated_Actual; item.IsBreakTimeCalculated_Planning = workplaceAssignemns.IsBreakTimeCalculated_Planning; item.SequenceNumber = workplaceAssignemns.SequenceNumber; item.WorkplaceAssignment_StartDate = workplaceAssignemns.WorkplaceAssignment_StartDate; employeeWorkplaceAssignments.Add(item); } result.EmployeeWorkplaceHistory = employeeWorkplaceAssignments.ToArray(); } returnValue.Result = employeeResultList.ToArray(); //Put your code here return(returnValue); #endregion UserCode }
protected static FR_Guid Execute(DbConnection Connection, DbTransaction Transaction, P_L5EM_SWPH_1625 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { #region UserCode var returnValue = new FR_Guid(); //Put your code here ORM_CMN_BPT_EMP_Employee_WorkplaceAssignment.Query workplaceHistoryQuery = new ORM_CMN_BPT_EMP_Employee_WorkplaceAssignment.Query(); workplaceHistoryQuery.CMN_BPT_EMP_Employee_RefID = Parameter.Employee_RefID; workplaceHistoryQuery.Tenant_RefID = securityTicket.TenantID; workplaceHistoryQuery.IsDeleted = false; List <ORM_CMN_BPT_EMP_Employee_WorkplaceAssignment> workplaceHistoryList = ORM_CMN_BPT_EMP_Employee_WorkplaceAssignment.Query.Search(Connection, Transaction, workplaceHistoryQuery); //delete workplace histories from database witch doesn't exist in passed parameter List <ORM_CMN_BPT_EMP_Employee_WorkplaceAssignment> deletedWorkplaceHistoryList = new List <ORM_CMN_BPT_EMP_Employee_WorkplaceAssignment>(); foreach (var item in workplaceHistoryList) { if (Parameter.WorkplaceHistories.Any(p => p.CMN_BPT_EMP_Employee_WorkplaceAssignmentID == item.CMN_BPT_EMP_Employee_WorkplaceAssignment)) { continue; } item.Remove(Connection, Transaction); deletedWorkplaceHistoryList.Add(item); } workplaceHistoryList = workplaceHistoryList.Except(deletedWorkplaceHistoryList).ToList(); //add or edit every workplace history from parameter foreach (var workplaceHistoryItem in Parameter.WorkplaceHistories) { ORM_CMN_BPT_EMP_Employee_WorkplaceAssignment workplaceHistory = new ORM_CMN_BPT_EMP_Employee_WorkplaceAssignment(); if (workplaceHistoryList.Any(e => e.CMN_BPT_EMP_Employee_WorkplaceAssignment == workplaceHistoryItem.CMN_BPT_EMP_Employee_WorkplaceAssignmentID)) { workplaceHistory.Load(Connection, Transaction, workplaceHistoryItem.CMN_BPT_EMP_Employee_WorkplaceAssignmentID); } workplaceHistory.BoundTo_Workplace_RefID = workplaceHistoryItem.BoundTo_Workplace_RefID; workplaceHistory.CMN_BPT_EMP_Employee_PlanGroup_RefID = workplaceHistoryItem.CMN_BPT_EMP_Employee_PlanGroup_RefID; workplaceHistory.CMN_BPT_EMP_Employee_RefID = Parameter.Employee_RefID; workplaceHistory.Default_BreakTime_Template_RefID = workplaceHistoryItem.Default_BreakTime_Template_RefID; workplaceHistory.IsBreakTimeCalculated_Actual = workplaceHistoryItem.IsBreakTimeCalculated_Actual; workplaceHistory.IsBreakTimeCalculated_Planning = workplaceHistoryItem.IsBreakTimeCalculated_Planning; workplaceHistory.SequenceNumber = workplaceHistoryItem.SequenceNumber; workplaceHistory.Tenant_RefID = securityTicket.TenantID; workplaceHistory.WorkplaceAssignment_StartDate = workplaceHistoryItem.WorkplaceAssignment_StartDate; workplaceHistory.Save(Connection, Transaction); } return(returnValue); #endregion UserCode }
protected static FR_L5EM_GEFT_0959_Array Execute(DbConnection Connection, DbTransaction Transaction, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { #region UserCode var returnValue = new FR_L5EM_GEFT_0959_Array(); List <L5EM_GEFT_0959> employeeResultList = new List <L5EM_GEFT_0959>(); ORM_CMN_BPT_EMP_Employee.Query employeeQuery = new ORM_CMN_BPT_EMP_Employee.Query(); employeeQuery.IsDeleted = false; employeeQuery.Tenant_RefID = securityTicket.TenantID; List <ORM_CMN_BPT_EMP_Employee> employeeList = ORM_CMN_BPT_EMP_Employee.Query.Search(Connection, Transaction, employeeQuery); foreach (var employeeItem in employeeList) { L5EM_GEFT_0959 result = new L5EM_GEFT_0959(); ORM_CMN_BPT_EMP_Employee employee = new ORM_CMN_BPT_EMP_Employee(); employee.Load(Connection, Transaction, employeeItem.CMN_BPT_EMP_EmployeeID); result.CMN_BPT_EMP_EmployeeID = employee.CMN_BPT_EMP_EmployeeID; result.Staff_Number = employee.Staff_Number; result.StandardFunction = employee.StandardFunction; ORM_USR_Account.Query accountQuery = new ORM_USR_Account.Query(); accountQuery.BusinessParticipant_RefID = employee.BusinessParticipant_RefID; accountQuery.Tenant_RefID = securityTicket.TenantID; accountQuery.IsDeleted = false; ORM_USR_Account account = ORM_USR_Account.Query.Search(Connection, Transaction, accountQuery).FirstOrDefault(); if (account != null) { result.USR_AccountID = account.USR_AccountID; } ORM_CMN_BPT_BusinessParticipant businessParticipant = new ORM_CMN_BPT_BusinessParticipant(); businessParticipant.Load(Connection, Transaction, employee.BusinessParticipant_RefID); result.CMN_BPT_BusinessParticipantID = businessParticipant.CMN_BPT_BusinessParticipantID; result.DisplayName = businessParticipant.DisplayName; ORM_CMN_PER_PersonInfo personInfo = new ORM_CMN_PER_PersonInfo(); personInfo.Load(Connection, Transaction, businessParticipant.IfNaturalPerson_CMN_PER_PersonInfo_RefID); result.CMN_PER_PersonInfoID = personInfo.CMN_PER_PersonInfoID; result.FirstName = personInfo.FirstName; result.LastName = personInfo.LastName; result.PrimaryEmail = personInfo.PrimaryEmail; result.Title = personInfo.Title; result.ProfileImage_Document_RefID = personInfo.ProfileImage_Document_RefID; result.BirthDate = personInfo.BirthDate; ORM_CMN_BPT_EMP_EmploymentRelationship.Query workingContractQuery = new ORM_CMN_BPT_EMP_EmploymentRelationship.Query(); workingContractQuery.Employee_RefID = employee.CMN_BPT_EMP_EmployeeID; workingContractQuery.IsDeleted = false; workingContractQuery.Tenant_RefID = securityTicket.TenantID; ORM_CMN_BPT_EMP_EmploymentRelationship employmentRelationship = ORM_CMN_BPT_EMP_EmploymentRelationship.Query.Search(Connection, Transaction, workingContractQuery).FirstOrDefault(); result.CMN_BPT_EMP_EmploymentRelationshipID = employmentRelationship.CMN_BPT_EMP_EmploymentRelationshipID; result.Work_StartDate = employmentRelationship.Work_StartDate; result.Work_EndDate = employmentRelationship.Work_EndDate; //Address if (personInfo.Address_RefID != Guid.Empty) { ORM_CMN_Address address = new ORM_CMN_Address(); address.Load(Connection, Transaction, personInfo.Address_RefID); result.CMN_AddressID = address.CMN_AddressID; result.Street_Name = address.Street_Name; result.Street_Number = address.Street_Number; result.City_AdministrativeDistrict = address.City_AdministrativeDistrict; result.City_Region = address.City_Region; result.City_Name = address.City_Name; result.City_PostalCode = address.City_PostalCode; result.Province_Name = address.Province_Name; result.Country_Name = address.Country_Name; result.Country_ISOCode = address.Country_ISOCode; } //Contacts ORM_CMN_PER_CommunicationContact.Query comunicationContactQuery = new ORM_CMN_PER_CommunicationContact.Query(); comunicationContactQuery.PersonInfo_RefID = personInfo.CMN_PER_PersonInfoID; comunicationContactQuery.Tenant_RefID = securityTicket.TenantID; comunicationContactQuery.IsDeleted = false; List <ORM_CMN_PER_CommunicationContact> comunicationContacts = ORM_CMN_PER_CommunicationContact.Query.Search(Connection, Transaction, comunicationContactQuery); List <L5EM_GEFT_0959_Contacts> resultComunicationContacts = new List <L5EM_GEFT_0959_Contacts>(); foreach (var comunicationContact in comunicationContacts) { ORM_CMN_PER_CommunicationContact_Type contactType = new ORM_CMN_PER_CommunicationContact_Type(); contactType.Load(Connection, Transaction, comunicationContact.CMN_PER_CommunicationContactID); L5EM_GEFT_0959_Contacts resultComunicationContact = new L5EM_GEFT_0959_Contacts(); resultComunicationContact.CMN_PER_CommunicationContact_TypeID = contactType.CMN_PER_CommunicationContact_TypeID; resultComunicationContact.CMN_PER_CommunicationContactID = comunicationContact.CMN_PER_CommunicationContactID; resultComunicationContact.Content = comunicationContact.Content; resultComunicationContact.Type = contactType.Type; resultComunicationContacts.Add(resultComunicationContact); } result.Contacts = resultComunicationContacts.ToArray(); //Employee workplace history ORM_CMN_BPT_EMP_Employee_WorkplaceAssignment.Query employeeWorkplaceAssignmentsQuery = new ORM_CMN_BPT_EMP_Employee_WorkplaceAssignment.Query(); employeeWorkplaceAssignmentsQuery.CMN_BPT_EMP_Employee_RefID = employee.CMN_BPT_EMP_EmployeeID; employeeWorkplaceAssignmentsQuery.Tenant_RefID = securityTicket.TenantID; employeeWorkplaceAssignmentsQuery.IsDeleted = false; List <ORM_CMN_BPT_EMP_Employee_WorkplaceAssignment> employeeWorkplaceAssignemntsList = ORM_CMN_BPT_EMP_Employee_WorkplaceAssignment.Query.Search(Connection, Transaction, employeeWorkplaceAssignmentsQuery); List <L5EM_GEFT_0959_EmployeeWorkplaceHistory> employeeWorkplaceAssignments = new List <L5EM_GEFT_0959_EmployeeWorkplaceHistory>(); foreach (var workplaceAssignemns in employeeWorkplaceAssignemntsList) { L5EM_GEFT_0959_EmployeeWorkplaceHistory item = new L5EM_GEFT_0959_EmployeeWorkplaceHistory(); item.BoundTo_Workplace_RefID = workplaceAssignemns.BoundTo_Workplace_RefID; item.CMN_BPT_EMP_Employee_PlanGroup_RefID = workplaceAssignemns.CMN_BPT_EMP_Employee_PlanGroup_RefID; item.CMN_BPT_EMP_Employee_WorkplaceAssignmentID = workplaceAssignemns.CMN_BPT_EMP_Employee_WorkplaceAssignment; item.Default_BreakTime_Template_RefID = workplaceAssignemns.Default_BreakTime_Template_RefID; item.IsBreakTimeCalculated_Actual = workplaceAssignemns.IsBreakTimeCalculated_Actual; item.IsBreakTimeCalculated_Planning = workplaceAssignemns.IsBreakTimeCalculated_Planning; item.SequenceNumber = workplaceAssignemns.SequenceNumber; item.WorkplaceAssignment_StartDate = workplaceAssignemns.WorkplaceAssignment_StartDate; employeeWorkplaceAssignments.Add(item); } result.EmployeeWorkplaceHistory = employeeWorkplaceAssignments.ToArray(); //Contracts ORM_CMN_BPT_EMP_EmploymentRelationship_2_WorkingContract.Query contractTermQuery = new ORM_CMN_BPT_EMP_EmploymentRelationship_2_WorkingContract.Query(); contractTermQuery.EmploymentRelationship_RefID = employmentRelationship.CMN_BPT_EMP_EmploymentRelationshipID; contractTermQuery.IsDeleted = false; contractTermQuery.Tenant_RefID = securityTicket.TenantID; List <ORM_CMN_BPT_EMP_EmploymentRelationship_2_WorkingContract> contracts = ORM_CMN_BPT_EMP_EmploymentRelationship_2_WorkingContract.Query.Search(Connection, Transaction, contractTermQuery); List <L5EM_GEFT_0959_WorkingContracts> resultContracts = new List <L5EM_GEFT_0959_WorkingContracts>(); foreach (var contractToRelationship in contracts) { L5EM_GEFT_0959_WorkingContracts resultContract = new L5EM_GEFT_0959_WorkingContracts(); ORM_CMN_BPT_EMP_WorkingContract workingContract = new ORM_CMN_BPT_EMP_WorkingContract(); workingContract.Load(Connection, Transaction, contractToRelationship.WorkingContract_RefID); if (!workingContract.IsDeleted) { resultContract.CMN_BPT_EMP_WorkingContractID = workingContract.CMN_BPT_EMP_WorkingContractID; resultContract.EmploymentRelationshipToWorkingContractAssignmentID = contractToRelationship.AssignmentID; resultContract.IsWorkingContract_Active = contractToRelationship.IsContract_Active; resultContract.Contract_StartDate = workingContract.Contract_StartDate; resultContract.Contract_EndDate = workingContract.Contract_EndDate; resultContract.IsContractEndDateDefined = workingContract.IsContractEndDateDefined; resultContract.IsWorkTimeCalculated_InDays = workingContract.IsWorkTimeCalculated_InDays; resultContract.IsWorkTimeCalculated_InHours = workingContract.IsWorkTimeCalculated_InHours; resultContract.R_WorkTime_DaysPerWeek = workingContract.R_WorkTime_DaysPerWeek; resultContract.R_WorkTime_HoursPerWeek = workingContract.R_WorkTime_HoursPerWeek; //Office hours ORM_CMN_BPT_EMP_WorkingContract_2_WorkingDay.Query workingContractTermToWorkingDayQuery = new ORM_CMN_BPT_EMP_WorkingContract_2_WorkingDay.Query(); workingContractTermToWorkingDayQuery.CMN_BPT_EMP_WorkingContract_RefID = workingContract.CMN_BPT_EMP_WorkingContractID; workingContractTermToWorkingDayQuery.Tenant_RefID = securityTicket.TenantID; workingContractTermToWorkingDayQuery.IsDeleted = false; List <ORM_CMN_BPT_EMP_WorkingContract_2_WorkingDay> workingDayAssigments = ORM_CMN_BPT_EMP_WorkingContract_2_WorkingDay.Query.Search(Connection, Transaction, workingContractTermToWorkingDayQuery); List <L5EM_GEFT_0959_WeeklyOfficeHours> resultWeeklyOfficeHours = new List <L5EM_GEFT_0959_WeeklyOfficeHours>(); foreach (var workingDayAssigment in workingDayAssigments) { ORM_CMN_CAL_WeeklyOfficeHours_Interval interval = new ORM_CMN_CAL_WeeklyOfficeHours_Interval(); interval.Load(Connection, Transaction, workingDayAssigment.CMN_CAL_WeeklyOfficeHours_Interval_RefID); L5EM_GEFT_0959_WeeklyOfficeHours resultOfficeHour = new L5EM_GEFT_0959_WeeklyOfficeHours(); resultOfficeHour.CMN_CAL_WeeklyOfficeHours_IntervalID = interval.CMN_CAL_WeeklyOfficeHours_IntervalID; resultOfficeHour.IsFriday = interval.IsFriday; resultOfficeHour.IsMonday = interval.IsMonday; resultOfficeHour.IsSaturday = interval.IsSaturday; resultOfficeHour.IsSunday = interval.IsSunday; resultOfficeHour.IsThursday = interval.IsThursday; resultOfficeHour.IsTuesday = interval.IsTuesday; resultOfficeHour.IsWednesday = interval.IsWednesday; resultOfficeHour.IsWholeDay = interval.IsWholeDay; resultOfficeHour.TimeFrom_InMinutes = interval.TimeFrom_InMinutes; resultOfficeHour.TimeTo_InMinutes = interval.TimeTo_InMinutes; resultWeeklyOfficeHours.Add(resultOfficeHour); } resultContract.WeeklyOfficeHours = resultWeeklyOfficeHours.ToArray(); //Allowed absence reasons ORM_CMN_BPT_EMP_WorkingContract_AllowedAbsenceReason.Query AllowedAbsenceReasonQuery = new ORM_CMN_BPT_EMP_WorkingContract_AllowedAbsenceReason.Query(); AllowedAbsenceReasonQuery.WorkingContract_RefID = resultContract.CMN_BPT_EMP_WorkingContractID; AllowedAbsenceReasonQuery.Tenant_RefID = securityTicket.TenantID; AllowedAbsenceReasonQuery.IsDeleted = false; List <ORM_CMN_BPT_EMP_WorkingContract_AllowedAbsenceReason> allowedAbsenceReasons = ORM_CMN_BPT_EMP_WorkingContract_AllowedAbsenceReason.Query.Search(Connection, Transaction, AllowedAbsenceReasonQuery); List <L5EM_GEFT_0959_WorkingContractToLeaveRequest> resultAllowedAbsenceReasons = new List <L5EM_GEFT_0959_WorkingContractToLeaveRequest>(); foreach (var allowedAbsenceReason in allowedAbsenceReasons) { ORM_CMN_BPT_STA_AbsenceReason absenceReason = new ORM_CMN_BPT_STA_AbsenceReason(); absenceReason.Load(Connection, Transaction, allowedAbsenceReason.STA_AbsenceReason_RefID); L5EM_GEFT_0959_WorkingContractToLeaveRequest resultReasonresultReason = new L5EM_GEFT_0959_WorkingContractToLeaveRequest(); resultReasonresultReason.CMN_BPT_EMP_Employee_WorkingContract_AllowedAbsenceReasonID = allowedAbsenceReason.CMN_BPT_EMP_WorkingContract_AllowedAbsenceReasonID; resultReasonresultReason.STA_AbsenceReason_RefID = absenceReason.CMN_BPT_STA_AbsenceReasonID; resultReasonresultReason.IsAbsenceCalculated_InDays = allowedAbsenceReason.IsAbsenceCalculated_InDays; resultReasonresultReason.IsAbsenceCalculated_InHours = allowedAbsenceReason.IsAbsenceCalculated_InHours; resultReasonresultReason.ContractAllowedAbsence_per_Month = allowedAbsenceReason.ContractAllowedAbsence_per_Month; resultAllowedAbsenceReasons.Add(resultReasonresultReason); } resultContract.WorkingContractToLeaveRequest = resultAllowedAbsenceReasons.ToArray(); resultContracts.Add(resultContract); } } result.WorkingContracts = resultContracts.ToArray(); employeeResultList.Add(result); } returnValue.Result = employeeResultList.ToArray(); //Put your code here return(returnValue); #endregion UserCode }
protected static FR_L5EM_GEFU_445 Execute(DbConnection Connection, DbTransaction Transaction, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { //Leave UserCode region to enable user code saving #region UserCode var returnValue = new FR_L5EM_GEFU_445(); L5EM_GEFU_445 result = new L5EM_GEFU_445(); ORM_USR_Account account = new ORM_USR_Account(); account.Load(Connection, Transaction, securityTicket.AccountID); if (account.USR_AccountID == Guid.Empty) { return(null); } ORM_CMN_BPT_EMP_Employee.Query employeeQuery = new ORM_CMN_BPT_EMP_Employee.Query(); employeeQuery.IsDeleted = false; employeeQuery.Tenant_RefID = securityTicket.TenantID; employeeQuery.BusinessParticipant_RefID = account.BusinessParticipant_RefID; List <ORM_CMN_BPT_EMP_Employee> employeeList = ORM_CMN_BPT_EMP_Employee.Query.Search(Connection, Transaction, employeeQuery); if (employeeList.Count != 0) { ORM_CMN_BPT_EMP_Employee employee = employeeList[0]; result.CMN_BPT_EMP_EmployeeID = employee.CMN_BPT_EMP_EmployeeID; result.Staff_Number = employee.Staff_Number; result.StandardFunction = employee.StandardFunction; ORM_CMN_BPT_BusinessParticipant businessParticipant = new ORM_CMN_BPT_BusinessParticipant(); businessParticipant.Load(Connection, Transaction, employee.BusinessParticipant_RefID); ORM_CMN_BPT_EMP_Employee_WorkplaceAssignment.Query employeeWorkplaceAssignmentsQuery = new ORM_CMN_BPT_EMP_Employee_WorkplaceAssignment.Query(); employeeWorkplaceAssignmentsQuery.CMN_BPT_EMP_Employee_RefID = employee.CMN_BPT_EMP_EmployeeID; employeeWorkplaceAssignmentsQuery.Tenant_RefID = securityTicket.TenantID; employeeWorkplaceAssignmentsQuery.IsDeleted = false; List <ORM_CMN_BPT_EMP_Employee_WorkplaceAssignment> employeeWorkplaceAssignemntsList = ORM_CMN_BPT_EMP_Employee_WorkplaceAssignment.Query.Search(Connection, Transaction, employeeWorkplaceAssignmentsQuery); List <L5EM_GEFU_445_EmployeeWorkplaceHistory> employeeWorkplaceAssignments = new List <L5EM_GEFU_445_EmployeeWorkplaceHistory>(); foreach (var workplaceAssignemns in employeeWorkplaceAssignemntsList) { L5EM_GEFU_445_EmployeeWorkplaceHistory item = new L5EM_GEFU_445_EmployeeWorkplaceHistory(); item.BoundTo_Workplace_RefID = workplaceAssignemns.BoundTo_Workplace_RefID; item.CMN_BPT_EMP_Employee_PlanGroup_RefID = workplaceAssignemns.CMN_BPT_EMP_Employee_PlanGroup_RefID; item.CMN_BPT_EMP_Employee_WorkplaceAssignmentID = workplaceAssignemns.CMN_BPT_EMP_Employee_WorkplaceAssignment; item.Default_BreakTime_Template_RefID = workplaceAssignemns.Default_BreakTime_Template_RefID; item.IsBreakTimeCalculated_Actual = workplaceAssignemns.IsBreakTimeCalculated_Actual; item.IsBreakTimeCalculated_Planning = workplaceAssignemns.IsBreakTimeCalculated_Planning; item.SequenceNumber = workplaceAssignemns.SequenceNumber; item.WorkplaceAssignment_StartDate = workplaceAssignemns.WorkplaceAssignment_StartDate; employeeWorkplaceAssignments.Add(item); } result.EmployeeWorkplaceHistory = employeeWorkplaceAssignments.ToArray(); } returnValue.Result = result; //Put your code here return(returnValue); #endregion UserCode }
protected static FR_L5EM_GEWPGFSD_1437_Array Execute(DbConnection Connection, DbTransaction Transaction, P_L5EM_GEWPGFSD_1437 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { #region UserCode var returnValue = new FR_L5EM_GEWPGFSD_1437_Array(); //Put your code here ORM_CMN_BPT_EMP_Employee.Query empQuery = new ORM_CMN_BPT_EMP_Employee.Query(); empQuery.IsDeleted = false; empQuery.Tenant_RefID = securityTicket.TenantID; var allEmployees = ORM_CMN_BPT_EMP_Employee.Query.Search(Connection, Transaction, empQuery); List <L5EM_GEWPGFSD_1437> resultList = new List <L5EM_GEWPGFSD_1437>(); foreach (var employee in allEmployees) { L5EM_GEWPGFSD_1437 resultItem = new L5EM_GEWPGFSD_1437(); resultItem.EmployeeID = employee.CMN_BPT_EMP_EmployeeID; ORM_CMN_BPT_BusinessParticipant.Query bptQuery = new ORM_CMN_BPT_BusinessParticipant.Query(); bptQuery.CMN_BPT_BusinessParticipantID = employee.BusinessParticipant_RefID; bptQuery.IsDeleted = false; bptQuery.Tenant_RefID = securityTicket.TenantID; var bpt = ORM_CMN_BPT_BusinessParticipant.Query.Search(Connection, Transaction, bptQuery).FirstOrDefault(); ORM_CMN_PER_PersonInfo.Query infoQuery = new ORM_CMN_PER_PersonInfo.Query(); infoQuery.CMN_PER_PersonInfoID = bpt.IfNaturalPerson_CMN_PER_PersonInfo_RefID; infoQuery.IsDeleted = false; infoQuery.Tenant_RefID = securityTicket.TenantID; var info = ORM_CMN_PER_PersonInfo.Query.Search(Connection, Transaction, infoQuery).FirstOrDefault(); int age = Parameter.SelectedDate.Year - info.BirthDate.Year; if (Parameter.SelectedDate < info.BirthDate.AddYears(age)) { age--; } resultItem.Age = age; resultItem.FirstName = info.FirstName; resultItem.LastName = info.LastName; ORM_CMN_BPT_EMP_Employee_WorkplaceAssignment.Query wpaQuery = new ORM_CMN_BPT_EMP_Employee_WorkplaceAssignment.Query(); wpaQuery.CMN_BPT_EMP_Employee_RefID = employee.CMN_BPT_EMP_EmployeeID; wpaQuery.IsDeleted = false; wpaQuery.Tenant_RefID = securityTicket.TenantID; var allWorkPlaceAssignements = ORM_CMN_BPT_EMP_Employee_WorkplaceAssignment.Query.Search(Connection, Transaction, wpaQuery); var workPlaceAssignementsForSelectedDate = allWorkPlaceAssignements.Where(x => x.WorkplaceAssignment_StartDate.Date.CompareTo(Parameter.SelectedDate) <= 0).ToArray(); if (workPlaceAssignementsForSelectedDate.Count() != 0) { var resultingWorkPlaceAssignement = workPlaceAssignementsForSelectedDate.OrderByDescending(x => x.WorkplaceAssignment_StartDate.Ticks).FirstOrDefault(); if (resultingWorkPlaceAssignement.CMN_BPT_EMP_Employee_PlanGroup_RefID == Guid.Empty) { resultItem.PlanGroupID = Guid.Empty; resultItem.PlanGroupName = new Dict(); resultItem.Position = -1; } else { ORM_CMN_BPT_EMP_Employee_PlanGroup.Query pgQuery = new ORM_CMN_BPT_EMP_Employee_PlanGroup.Query(); pgQuery.CMN_BPT_EMP_Employee_PlanGroupID = resultingWorkPlaceAssignement.CMN_BPT_EMP_Employee_PlanGroup_RefID; pgQuery.IsDeleted = false; pgQuery.Tenant_RefID = securityTicket.TenantID; var selectedPlanGroup = ORM_CMN_BPT_EMP_Employee_PlanGroup.Query.Search(Connection, Transaction, pgQuery).FirstOrDefault(); if (selectedPlanGroup == null) { resultItem.PlanGroupID = Guid.Empty; resultItem.PlanGroupName = new Dict(); resultItem.Position = -1; } else { resultItem.PlanGroupID = selectedPlanGroup.CMN_BPT_EMP_Employee_PlanGroupID; resultItem.PlanGroupName = selectedPlanGroup.PlanGroup_Name; resultItem.Position = resultingWorkPlaceAssignement.SequenceNumber; } resultItem.IsBreakTimeCalculated_Planning = resultingWorkPlaceAssignement.IsBreakTimeCalculated_Planning; resultItem.IsBreakTimeCalculated_Actual = resultingWorkPlaceAssignement.IsBreakTimeCalculated_Actual; } } else { continue; } ORM_CMN_BPT_EMP_EmploymentRelationship.Query employmentRelationshipQuery = new ORM_CMN_BPT_EMP_EmploymentRelationship.Query(); employmentRelationshipQuery.Employee_RefID = employee.CMN_BPT_EMP_EmployeeID; employmentRelationshipQuery.Tenant_RefID = securityTicket.TenantID; employmentRelationshipQuery.IsDeleted = false; ORM_CMN_BPT_EMP_EmploymentRelationship employmentRelationship = ORM_CMN_BPT_EMP_EmploymentRelationship.Query.Search(Connection, Transaction, employmentRelationshipQuery).FirstOrDefault(); ORM_CMN_BPT_EMP_EmploymentRelationship_2_WorkingContract.Query er2wcQuery = new ORM_CMN_BPT_EMP_EmploymentRelationship_2_WorkingContract.Query(); er2wcQuery.EmploymentRelationship_RefID = employmentRelationship.CMN_BPT_EMP_EmploymentRelationshipID; er2wcQuery.Tenant_RefID = securityTicket.TenantID; er2wcQuery.IsContract_Active = true; er2wcQuery.IsDeleted = false; ORM_CMN_BPT_EMP_EmploymentRelationship_2_WorkingContract er2wc = ORM_CMN_BPT_EMP_EmploymentRelationship_2_WorkingContract.Query.Search(Connection, Transaction, er2wcQuery).FirstOrDefault(); if (er2wc != null) { ORM_CMN_BPT_EMP_WorkingContract.Query workingContractQuery = new ORM_CMN_BPT_EMP_WorkingContract.Query(); workingContractQuery.CMN_BPT_EMP_WorkingContractID = er2wc.WorkingContract_RefID; workingContractQuery.IsDeleted = false; workingContractQuery.Tenant_RefID = securityTicket.TenantID; ORM_CMN_BPT_EMP_WorkingContract workingContract = ORM_CMN_BPT_EMP_WorkingContract.Query.Search(Connection, Transaction, workingContractQuery).FirstOrDefault(); resultItem.IsWorkTimeCalculated_InDays = workingContract.IsWorkTimeCalculated_InDays; resultItem.IsWorkTimeCalculated_InHours = workingContract.IsWorkTimeCalculated_InHours; ORM_CMN_BPT_EMP_WorkingContract_2_WorkingDay.Query wc2wdQuery = new ORM_CMN_BPT_EMP_WorkingContract_2_WorkingDay.Query(); wc2wdQuery.CMN_BPT_EMP_WorkingContract_RefID = er2wc.WorkingContract_RefID; wc2wdQuery.Tenant_RefID = securityTicket.TenantID; wc2wdQuery.IsDeleted = false; ORM_CMN_BPT_EMP_WorkingContract_2_WorkingDay[] workingContract2workingDays = ORM_CMN_BPT_EMP_WorkingContract_2_WorkingDay.Query.Search(Connection, Transaction, wc2wdQuery).ToArray(); resultItem.ContractSpecifiedWorkTime_InMinutes = 0; List <WeeklyOfficeHours> listOfWeeklyOfficeHours = new List <WeeklyOfficeHours>(); foreach (var workingContract2workingDay in workingContract2workingDays) { ORM_CMN_CAL_WeeklyOfficeHours_Interval.Query weeklyOfficeHoursQuery = new ORM_CMN_CAL_WeeklyOfficeHours_Interval.Query(); weeklyOfficeHoursQuery.CMN_CAL_WeeklyOfficeHours_IntervalID = workingContract2workingDay.CMN_CAL_WeeklyOfficeHours_Interval_RefID; weeklyOfficeHoursQuery.Tenant_RefID = securityTicket.TenantID; weeklyOfficeHoursQuery.IsDeleted = false; ORM_CMN_CAL_WeeklyOfficeHours_Interval weeklyOfficeHours = ORM_CMN_CAL_WeeklyOfficeHours_Interval.Query.Search(Connection, Transaction, weeklyOfficeHoursQuery).FirstOrDefault(); switch (Parameter.SelectedDate.DayOfWeek) { case DayOfWeek.Monday: if (weeklyOfficeHours.IsMonday) { resultItem.ContractSpecifiedWorkTime_InMinutes = (int)(weeklyOfficeHours.TimeTo_InMinutes - weeklyOfficeHours.TimeFrom_InMinutes); } break; case DayOfWeek.Tuesday: if (weeklyOfficeHours.IsTuesday) { resultItem.ContractSpecifiedWorkTime_InMinutes = (int)(weeklyOfficeHours.TimeTo_InMinutes - weeklyOfficeHours.TimeFrom_InMinutes); } break; case DayOfWeek.Wednesday: if (weeklyOfficeHours.IsWednesday) { resultItem.ContractSpecifiedWorkTime_InMinutes = (int)(weeklyOfficeHours.TimeTo_InMinutes - weeklyOfficeHours.TimeFrom_InMinutes); } break; case DayOfWeek.Thursday: if (weeklyOfficeHours.IsThursday) { resultItem.ContractSpecifiedWorkTime_InMinutes = (int)(weeklyOfficeHours.TimeTo_InMinutes - weeklyOfficeHours.TimeFrom_InMinutes); } break; case DayOfWeek.Friday: if (weeklyOfficeHours.IsFriday) { resultItem.ContractSpecifiedWorkTime_InMinutes = (int)(weeklyOfficeHours.TimeTo_InMinutes - weeklyOfficeHours.TimeFrom_InMinutes); } break; case DayOfWeek.Saturday: if (weeklyOfficeHours.IsSaturday) { resultItem.ContractSpecifiedWorkTime_InMinutes = (int)(weeklyOfficeHours.TimeTo_InMinutes - weeklyOfficeHours.TimeFrom_InMinutes); } break; case DayOfWeek.Sunday: if (weeklyOfficeHours.IsSunday) { resultItem.ContractSpecifiedWorkTime_InMinutes = (int)(weeklyOfficeHours.TimeTo_InMinutes - weeklyOfficeHours.TimeFrom_InMinutes); } break; } WeeklyOfficeHours newWeeklyOfficeHour = new WeeklyOfficeHours(); newWeeklyOfficeHour.CMN_CAL_WeeklyOfficeHours_IntervalID = weeklyOfficeHours.CMN_CAL_WeeklyOfficeHours_IntervalID; newWeeklyOfficeHour.IsFriday = weeklyOfficeHours.IsFriday; newWeeklyOfficeHour.IsMonday = weeklyOfficeHours.IsMonday; newWeeklyOfficeHour.IsSaturday = weeklyOfficeHours.IsSaturday; newWeeklyOfficeHour.IsSunday = weeklyOfficeHours.IsSunday; newWeeklyOfficeHour.IsThursday = weeklyOfficeHours.IsThursday; newWeeklyOfficeHour.IsTuesday = weeklyOfficeHours.IsTuesday; newWeeklyOfficeHour.IsWednesday = weeklyOfficeHours.IsWednesday; newWeeklyOfficeHour.IsWholeDay = weeklyOfficeHours.IsWholeDay; newWeeklyOfficeHour.TimeFrom_InMinutes = weeklyOfficeHours.TimeFrom_InMinutes; newWeeklyOfficeHour.TimeTo_InMinutes = weeklyOfficeHours.TimeTo_InMinutes; listOfWeeklyOfficeHours.Add(newWeeklyOfficeHour); } resultItem.WeeklyOfficeHours = listOfWeeklyOfficeHours.ToArray(); } else { continue; } ORM_CMN_BPT_EMP_EmploymentRelationship_2_WorkingContract.Query relationShipToContractQuery = new ORM_CMN_BPT_EMP_EmploymentRelationship_2_WorkingContract.Query(); relationShipToContractQuery.EmploymentRelationship_RefID = employmentRelationship.CMN_BPT_EMP_EmploymentRelationshipID; relationShipToContractQuery.IsDeleted = false; relationShipToContractQuery.Tenant_RefID = securityTicket.TenantID; List <ORM_CMN_BPT_EMP_EmploymentRelationship_2_WorkingContract> relationShipToContracts = ORM_CMN_BPT_EMP_EmploymentRelationship_2_WorkingContract.Query.Search(Connection, Transaction, relationShipToContractQuery); List <L5EM_GEFE_1150_WorkingContract> resultWorkingContracts = new List <L5EM_GEFE_1150_WorkingContract>(); foreach (var relationShipToContract in relationShipToContracts) { L5EM_GEFE_1150_WorkingContract resultWorkingContract = new L5EM_GEFE_1150_WorkingContract(); ORM_CMN_BPT_EMP_WorkingContract workingContractItem = new ORM_CMN_BPT_EMP_WorkingContract(); workingContractItem.Load(Connection, Transaction, relationShipToContract.WorkingContract_RefID); resultWorkingContract.CMN_BPT_EMP_WorkingContractID = workingContractItem.CMN_BPT_EMP_WorkingContractID; resultWorkingContract.EmploymentRelationship_2_WorkingContractAssigmentID = relationShipToContract.AssignmentID; resultWorkingContract.IsContract_Active = relationShipToContract.IsContract_Active; resultWorkingContract.Contract_StartDate = workingContractItem.Contract_StartDate; resultWorkingContract.Contract_EndDate = workingContractItem.Contract_EndDate; resultWorkingContract.IsContractEndDateDefined = workingContractItem.IsContractEndDateDefined; resultWorkingContract.IsWorkTimeCalculated_InDays = workingContractItem.IsWorkTimeCalculated_InDays; resultWorkingContract.IsWorkTimeCalculated_InHours = workingContractItem.IsWorkTimeCalculated_InHours; resultWorkingContract.R_WorkTime_DaysPerWeek = workingContractItem.R_WorkTime_DaysPerWeek; resultWorkingContract.R_WorkTime_HoursPerWeek = workingContractItem.R_WorkTime_HoursPerWeek; resultWorkingContract.WorkingContract_InCurrency_RefID = workingContractItem.WorkingContract_InCurrency_RefID; resultWorkingContract.ExtraWorkCalculation_RefID = workingContractItem.ExtraWorkCalculation_RefID; resultWorkingContract.IsWorktimeChecked_Weekly = workingContractItem.IsWorktimeChecked_Weekly; resultWorkingContract.IsWorktimeChecked_Monthly = workingContractItem.IsWorktimeChecked_Monthly; resultWorkingContract.SurchargeCalculation_UseMaximum = workingContractItem.SurchargeCalculation_UseMaximum; resultWorkingContract.SurchargeCalculation_UseAccumulated = workingContractItem.SurchargeCalculation_UseAccumulated; resultWorkingContract.IsMealAllowanceProvided = workingContractItem.IsMealAllowanceProvided; resultWorkingContract.WorkingContract_Comment = workingContractItem.WorkingContract_Comment; ORM_CMN_BPT_EMP_WorkingContract_2_ExtraWorkSurcharge.Query contractToExtraWorkSurchargeQuery = new ORM_CMN_BPT_EMP_WorkingContract_2_ExtraWorkSurcharge.Query(); contractToExtraWorkSurchargeQuery.CMN_BPT_EMP_WorkingContract_RefID = workingContractItem.CMN_BPT_EMP_WorkingContractID; contractToExtraWorkSurchargeQuery.IsDeleted = false; contractToExtraWorkSurchargeQuery.Tenant_RefID = securityTicket.TenantID; var contractToExtraWorkSurchargeResult = ORM_CMN_BPT_EMP_WorkingContract_2_ExtraWorkSurcharge.Query.Search(Connection, Transaction, contractToExtraWorkSurchargeQuery); if (contractToExtraWorkSurchargeResult.Count != 0) { var nightTimeSurcharge = contractToExtraWorkSurchargeResult.FirstOrDefault(x => x.R_IsNightTimeSurcharge && !x.R_IsSpecialEventSurcharge); var specialEventSurcharge = contractToExtraWorkSurchargeResult.FirstOrDefault(x => x.R_IsSpecialEventSurcharge && !x.R_IsNightTimeSurcharge); if (nightTimeSurcharge != null) { resultWorkingContract.NightTime_Surcharge_RefID = nightTimeSurcharge.CMN_BPT_EMP_ExtraWorkCalculation_Surcharge_RefID; resultWorkingContract.MaximumAllowedNightTimeSurchargeTime_in_mins = nightTimeSurcharge.MaximumAllowedSurchargeTime_in_mins; } if (specialEventSurcharge != null) { resultWorkingContract.SpecialEvent_Surcharge_RefID = specialEventSurcharge.CMN_BPT_EMP_ExtraWorkCalculation_Surcharge_RefID; resultWorkingContract.MaximumAllowedSpecialEventSurchargeTime_in_mins = specialEventSurcharge.MaximumAllowedSurchargeTime_in_mins; } } //Office hours ORM_CMN_BPT_EMP_WorkingContract_2_WorkingDay.Query workingContractToWorkingDayQuery = new ORM_CMN_BPT_EMP_WorkingContract_2_WorkingDay.Query(); workingContractToWorkingDayQuery.CMN_BPT_EMP_WorkingContract_RefID = workingContractItem.CMN_BPT_EMP_WorkingContractID; //workingContractToWorkingDayQuery.Tenant_RefID = securityTicket.TenantID; workingContractToWorkingDayQuery.IsDeleted = false; List <ORM_CMN_BPT_EMP_WorkingContract_2_WorkingDay> workingDayAssigments = ORM_CMN_BPT_EMP_WorkingContract_2_WorkingDay.Query.Search(Connection, Transaction, workingContractToWorkingDayQuery); List <L5EM_GEFE_1150_WeeklyOfficeHours> resultWeeklyOfficeHours = new List <L5EM_GEFE_1150_WeeklyOfficeHours>(); foreach (var workingDayAssigment in workingDayAssigments) { ORM_CMN_CAL_WeeklyOfficeHours_Interval interval = new ORM_CMN_CAL_WeeklyOfficeHours_Interval(); interval.Load(Connection, Transaction, workingDayAssigment.CMN_CAL_WeeklyOfficeHours_Interval_RefID); L5EM_GEFE_1150_WeeklyOfficeHours resultOfficeHour = new L5EM_GEFE_1150_WeeklyOfficeHours(); resultOfficeHour.CMN_CAL_WeeklyOfficeHours_IntervalID = interval.CMN_CAL_WeeklyOfficeHours_IntervalID; resultOfficeHour.IsFriday = interval.IsFriday; resultOfficeHour.IsMonday = interval.IsMonday; resultOfficeHour.IsSaturday = interval.IsSaturday; resultOfficeHour.IsSunday = interval.IsSunday; resultOfficeHour.IsThursday = interval.IsThursday; resultOfficeHour.IsTuesday = interval.IsTuesday; resultOfficeHour.IsWednesday = interval.IsWednesday; resultOfficeHour.IsWholeDay = interval.IsWholeDay; resultOfficeHour.TimeFrom_InMinutes = interval.TimeFrom_InMinutes; resultOfficeHour.TimeTo_InMinutes = interval.TimeTo_InMinutes; resultWeeklyOfficeHours.Add(resultOfficeHour); } resultWorkingContract.WeeklyOfficeHours = resultWeeklyOfficeHours.ToArray(); 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 = workingContractItem.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 EmploymentType = new ORM_CMN_BPT_EMP_WorkingContract_EmploymentType(); EmploymentType.Load(Connection, Transaction, workingContract_2_ContractEmploymentType.CMN_BPT_EMP_WorkingContract_EmploymentTypeID); if (EmploymentType.CMN_BPT_EMP_Employee_WorkingContract_EmploymentTypeID != Guid.Empty) { resultWorkingContract.TypeOfEmployment = int.Parse(EmploymentType.GlobalPropertyMatchingID); } } //Allowed absence reasons ORM_CMN_BPT_EMP_WorkingContract_AllowedAbsenceReason.Query AllowedAbsenceReasonQuery = new ORM_CMN_BPT_EMP_WorkingContract_AllowedAbsenceReason.Query(); AllowedAbsenceReasonQuery.WorkingContract_RefID = resultWorkingContract.CMN_BPT_EMP_WorkingContractID; AllowedAbsenceReasonQuery.Tenant_RefID = securityTicket.TenantID; AllowedAbsenceReasonQuery.IsDeleted = false; List <ORM_CMN_BPT_EMP_WorkingContract_AllowedAbsenceReason> allowedAbsenceReasons = ORM_CMN_BPT_EMP_WorkingContract_AllowedAbsenceReason.Query.Search(Connection, Transaction, AllowedAbsenceReasonQuery); List <L5EM_GEFE_1150_WorkingContractToLeaveRequest> resultAllowedAbsenceReasons = new List <L5EM_GEFE_1150_WorkingContractToLeaveRequest>(); foreach (var allowedAbsenceReason in allowedAbsenceReasons) { ORM_CMN_BPT_STA_AbsenceReason absenceReason = new ORM_CMN_BPT_STA_AbsenceReason(); absenceReason.Load(Connection, Transaction, allowedAbsenceReason.STA_AbsenceReason_RefID); L5EM_GEFE_1150_WorkingContractToLeaveRequest resultReasonresultReason = new L5EM_GEFE_1150_WorkingContractToLeaveRequest(); resultReasonresultReason.CMN_BPT_EMP_WorkingContract_AllowedAbsenceReasonID = allowedAbsenceReason.CMN_BPT_EMP_WorkingContract_AllowedAbsenceReasonID; resultReasonresultReason.CMN_BPT_STA_AbsenceReasonID = absenceReason.CMN_BPT_STA_AbsenceReasonID; resultReasonresultReason.IsAbsenceCalculated_InDays = allowedAbsenceReason.IsAbsenceCalculated_InDays; resultReasonresultReason.IsAbsenceCalculated_InHours = allowedAbsenceReason.IsAbsenceCalculated_InHours; resultReasonresultReason.ContractAllowedAbsence_per_Month = allowedAbsenceReason.ContractAllowedAbsence_per_Month; resultReasonresultReason.AbsenceReasonName = absenceReason.Name; resultReasonresultReason.CMN_BPT_EMP_EmploymentRelationship_RefID = employmentRelationship.CMN_BPT_EMP_EmploymentRelationshipID; resultAllowedAbsenceReasons.Add(resultReasonresultReason); } resultWorkingContract.WorkingContractToLeaveRequest = resultAllowedAbsenceReasons.ToArray(); resultWorkingContracts.Add(resultWorkingContract); } resultItem.AllWorkingContracts = resultWorkingContracts.ToArray(); //Employee workplace history ORM_CMN_BPT_EMP_Employee_WorkplaceAssignment.Query employeeWorkplaceAssignmentsQuery = new ORM_CMN_BPT_EMP_Employee_WorkplaceAssignment.Query(); employeeWorkplaceAssignmentsQuery.CMN_BPT_EMP_Employee_RefID = employee.CMN_BPT_EMP_EmployeeID; employeeWorkplaceAssignmentsQuery.Tenant_RefID = securityTicket.TenantID; employeeWorkplaceAssignmentsQuery.IsDeleted = false; List <ORM_CMN_BPT_EMP_Employee_WorkplaceAssignment> employeeWorkplaceAssignemntsList = ORM_CMN_BPT_EMP_Employee_WorkplaceAssignment.Query.Search(Connection, Transaction, employeeWorkplaceAssignmentsQuery); List <L5EM_GEFE_1150_EmployeeWorkplaceHistory> employeeWorkplaceAssignments = new List <L5EM_GEFE_1150_EmployeeWorkplaceHistory>(); foreach (var workplaceAssignemns in employeeWorkplaceAssignemntsList) { L5EM_GEFE_1150_EmployeeWorkplaceHistory item = new L5EM_GEFE_1150_EmployeeWorkplaceHistory(); item.BoundTo_Workplace_RefID = workplaceAssignemns.BoundTo_Workplace_RefID; item.CMN_BPT_EMP_Employee_PlanGroup_RefID = workplaceAssignemns.CMN_BPT_EMP_Employee_PlanGroup_RefID; item.CMN_BPT_EMP_Employee_WorkplaceAssignmentID = workplaceAssignemns.CMN_BPT_EMP_Employee_WorkplaceAssignment; item.Default_BreakTime_Template_RefID = workplaceAssignemns.Default_BreakTime_Template_RefID; item.IsBreakTimeCalculated_Actual = workplaceAssignemns.IsBreakTimeCalculated_Actual; item.IsBreakTimeCalculated_Planning = workplaceAssignemns.IsBreakTimeCalculated_Planning; item.SequenceNumber = workplaceAssignemns.SequenceNumber; item.WorkplaceAssignment_StartDate = workplaceAssignemns.WorkplaceAssignment_StartDate; employeeWorkplaceAssignments.Add(item); } resultItem.AllWorkplaceHistories = employeeWorkplaceAssignments.ToArray(); //employee qualifications ORM_CMN_BPT_EMP_Employee_2_Skill.Query qualificationQuary = new ORM_CMN_BPT_EMP_Employee_2_Skill.Query(); qualificationQuary.Employee_RefID = employee.CMN_BPT_EMP_EmployeeID; qualificationQuary.Tenant_RefID = securityTicket.TenantID; qualificationQuary.IsDeleted = false; List <ORM_CMN_BPT_EMP_Employee_2_Skill> qualificationList = ORM_CMN_BPT_EMP_Employee_2_Skill.Query.Search(Connection, Transaction, qualificationQuary); List <L5EM_GEFE_1150_EmployeeQualification> employeeQualifications = new List <L5EM_GEFE_1150_EmployeeQualification>(); L5EM_GEFE_1150_EmployeeQualification employeeQualification; ORM_CMN_STR_Skill skillORM; foreach (var qualification in qualificationList) { employeeQualification = new L5EM_GEFE_1150_EmployeeQualification(); employeeQualification.QualificationAssignmentID = qualification.AssignmentID; employeeQualification.ProfessionObtainedAtDate = qualification.QualificationObtainedAtDate; employeeQualification.SkillName = new Dict(); if (qualification.Skill_RefID != Guid.Empty) { skillORM = new ORM_CMN_STR_Skill(); skillORM.Load(Connection, Transaction, qualification.Skill_RefID); employeeQualification.Skill_RefID = skillORM.CMN_STR_SkillID; employeeQualification.SkillName = skillORM.Skill_Name; } employeeQualifications.Add(employeeQualification); } resultItem.AllQualification = employeeQualifications.ToArray(); resultList.Add(resultItem); } returnValue.Result = resultList.ToArray(); 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_Base Execute(DbConnection Connection, DbTransaction Transaction, P_L5DWS_LAD_1001 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { #region UserCode FR_Base returnValue = new FR_Base(); var dayCount = 1; if (Parameter.LoadFor_Week) { dayCount = 7; } LeaveRequestUtils leaveRequestUtil = new LeaveRequestUtils(); for (int i = 0; i < dayCount; i++) { var date = Parameter.WorkSheduleDate.Date.AddDays(i); if (Parameter.LoadFrom_LastWeek || Parameter.LoadFrom_Specific_Date_Or_Week) { DateTime loadForDate; if (Parameter.LoadFrom_Specific_Date_Or_Week) { loadForDate = Parameter.IfLoadFrom_Specific_Date_Or_Week_DateTime.AddDays(i); } else { loadForDate = Parameter.WorkSheduleDate.AddDays(-7).AddDays(i); } ORM_CMN_BPT_EMP_EffectiveWorkTime_Header.Query actualsQuery = new ORM_CMN_BPT_EMP_EffectiveWorkTime_Header.Query(); actualsQuery.EffectiveBusinessDay = loadForDate; actualsQuery.Tenant_RefID = securityTicket.TenantID; actualsQuery.IsDeleted = false; var allEffectiveWorkTimeHeadersToLoadFrom = ORM_CMN_BPT_EMP_EffectiveWorkTime_Header.Query.Search(Connection, Transaction, actualsQuery); foreach (var effectiveWorkTimeHeader in allEffectiveWorkTimeHeadersToLoadFrom) { ORM_CMN_BPT_EMP_EffectiveWorkTime_Header.Query effectiveWorkTimeToDeleteQuery = new ORM_CMN_BPT_EMP_EffectiveWorkTime_Header.Query(); effectiveWorkTimeToDeleteQuery.EffectiveBusinessDay = date; effectiveWorkTimeToDeleteQuery.Employee_RefID = effectiveWorkTimeHeader.Employee_RefID; effectiveWorkTimeToDeleteQuery.Tenant_RefID = securityTicket.TenantID; effectiveWorkTimeToDeleteQuery.IsDeleted = false; var effectiveWorkTimeHeaderToDeleteQueryResult = ORM_CMN_BPT_EMP_EffectiveWorkTime_Header.Query.Search(Connection, Transaction, effectiveWorkTimeToDeleteQuery); if (effectiveWorkTimeHeaderToDeleteQueryResult.Count != 0) { var effectiveWorkTimeHeaderToDelete = effectiveWorkTimeHeaderToDeleteQueryResult.FirstOrDefault(); P_L5DWS_DEWTH_1126 deleteParam = new P_L5DWS_DEWTH_1126(); deleteParam.CMN_STR_PPS_EffectiveWorkTime_HeaderID = effectiveWorkTimeHeaderToDelete.CMN_STR_PPS_EffectiveWorkTime_HeaderID; ORM_CMN_BPT_EMP_EffectiveWorkTime_Position.Query positionsQuery = new ORM_CMN_BPT_EMP_EffectiveWorkTime_Position.Query(); positionsQuery.EffectiveWorkTime_Header_RefID = effectiveWorkTimeHeaderToDelete.CMN_STR_PPS_EffectiveWorkTime_HeaderID; positionsQuery.Tenant_RefID = securityTicket.TenantID; positionsQuery.IsDeleted = false; var positions = ORM_CMN_BPT_EMP_EffectiveWorkTime_Position.Query.Search(Connection, Transaction, positionsQuery); List <P_L5DWS_DEWTH_1126_Positions> listOfPositions = new List <P_L5DWS_DEWTH_1126_Positions>(); foreach (var position in positions) { P_L5DWS_DEWTH_1126_Positions positionItem = new P_L5DWS_DEWTH_1126_Positions(); positionItem.CMN_BPT_EMP_EffectiveWorkTime_PositionID = position.CMN_BPT_EMP_EffectiveWorkTime_PositionID; positionItem.durationInDays = leaveRequestUtil.LeaveRequestDuration(position.WorkTime_StartTime, position.WorkTime_StartTime.AddSeconds(position.WorkTime_Duration_in_sec), Parameter.Events, Parameter.Employees.FirstOrDefault(x => x.CMN_BPT_EMP_EmployeeID == position.CMN_BPT_EMP_Employe_RefID), true); positionItem.durationInHours = leaveRequestUtil.LeaveRequestDuration(position.WorkTime_StartTime, position.WorkTime_StartTime.AddSeconds(position.WorkTime_Duration_in_sec), Parameter.Events, Parameter.Employees.FirstOrDefault(x => x.CMN_BPT_EMP_EmployeeID == position.CMN_BPT_EMP_Employe_RefID), false); listOfPositions.Add(positionItem); } deleteParam.Positions = listOfPositions.ToArray(); cls_Delete_EffectiveWorkTime_Header.Invoke(Connection, Transaction, deleteParam, securityTicket); } ORM_CMN_BPT_EMP_EffectiveWorkTime_Position.Query positionsToLoadQuery = new ORM_CMN_BPT_EMP_EffectiveWorkTime_Position.Query(); positionsToLoadQuery.EffectiveWorkTime_Header_RefID = effectiveWorkTimeHeader.CMN_STR_PPS_EffectiveWorkTime_HeaderID; positionsToLoadQuery.Tenant_RefID = securityTicket.TenantID; positionsToLoadQuery.IsDeleted = false; var positionsToLoad = ORM_CMN_BPT_EMP_EffectiveWorkTime_Position.Query.Search(Connection, Transaction, positionsToLoadQuery); ORM_CMN_BPT_EMP_EffectiveWorkTime_Header newHeader = new ORM_CMN_BPT_EMP_EffectiveWorkTime_Header(); newHeader.ContractWorkerText = effectiveWorkTimeHeader.ContractWorkerText; newHeader.BreakDurationTime_in_sec = effectiveWorkTimeHeader.BreakDurationTime_in_sec; newHeader.EffectiveBusinessDay = date; newHeader.Employee_RefID = effectiveWorkTimeHeader.Employee_RefID; newHeader.IsBreakTimeManualySpecified = effectiveWorkTimeHeader.IsBreakTimeManualySpecified; newHeader.SheduleBreakTemplate_RefID = effectiveWorkTimeHeader.SheduleBreakTemplate_RefID; newHeader.Tenant_RefID = securityTicket.TenantID; newHeader.Save(Connection, Transaction); foreach (var positionToLoad in positionsToLoad) { P_L5DWS_SEWTP_1337 positionSavePar = new P_L5DWS_SEWTP_1337(); if (positionToLoad.CMN_BPT_EMP_Employee_LeaveRequest_RefID != Guid.Empty) { ORM_CMN_BPT_EMP_Employee_LeaveRequest.Query lrQuery = new ORM_CMN_BPT_EMP_Employee_LeaveRequest.Query(); lrQuery.CMN_BPT_EMP_Employee_LeaveRequestID = positionToLoad.CMN_BPT_EMP_Employee_LeaveRequest_RefID; lrQuery.IsDeleted = false; lrQuery.Tenant_RefID = securityTicket.TenantID; var leaveRequest = ORM_CMN_BPT_EMP_Employee_LeaveRequest.Query.Search(Connection, Transaction, lrQuery).FirstOrDefault(); positionSavePar.AbsenceReason_RefID = leaveRequest.CMN_BPT_STA_AbsenceReason_RefID; positionSavePar.durationInDays = leaveRequestUtil.LeaveRequestDuration(positionToLoad.WorkTime_StartTime, positionToLoad.WorkTime_StartTime.AddSeconds(positionToLoad.WorkTime_Duration_in_sec), Parameter.Events, Parameter.Employees.FirstOrDefault(x => x.CMN_BPT_EMP_EmployeeID == positionToLoad.CMN_BPT_EMP_Employe_RefID), true); positionSavePar.durationInHours = leaveRequestUtil.LeaveRequestDuration(positionToLoad.WorkTime_StartTime, positionToLoad.WorkTime_StartTime.AddSeconds(positionToLoad.WorkTime_Duration_in_sec), Parameter.Events, Parameter.Employees.FirstOrDefault(x => x.CMN_BPT_EMP_EmployeeID == positionToLoad.CMN_BPT_EMP_Employe_RefID), false); positionSavePar.RequestedBy_Employee_RefID = leaveRequest.RequestedBy_Employee_RefID; positionSavePar.RequestedFor_Employee_RefID = leaveRequest.RequestedFor_Employee_RefID; } else { positionSavePar.AbsenceReason_RefID = Guid.Empty; positionSavePar.durationInDays = 0; positionSavePar.durationInHours = 0; positionSavePar.RequestedBy_Employee_RefID = Guid.Empty; positionSavePar.RequestedFor_Employee_RefID = Guid.Empty; } positionSavePar.CMN_BPT_EMP_Employee_LeaveRequest_RefID = Guid.Empty; positionSavePar.EffectiveWorkTime_Header_RefID = newHeader.CMN_STR_PPS_EffectiveWorkTime_HeaderID; positionSavePar.Employee_RefID = newHeader.Employee_RefID; positionSavePar.OldDurationInDays = 0; positionSavePar.OldDurationInHours = 0; positionSavePar.Workplace_RefID = positionToLoad.Workplace_RefID; positionSavePar.WorkTime_End = positionToLoad.WorkTime_StartTime.AddSeconds(positionToLoad.WorkTime_Duration_in_sec); positionSavePar.WorkTime_Start = positionToLoad.WorkTime_StartTime; cls_Save_EffectiveWorkTime_Position.Invoke(Connection, Transaction, positionSavePar, securityTicket); } } } else if (Parameter.LoadFrom_StandardTimes) { bool isEven = false; if (CronExtender.weekNumber(date) % 2 == 0) { isEven = true; } ORM_CMN_BPT_EMP_Employee_WorkplaceAssignment.Query workplaceAssignementQuery = new ORM_CMN_BPT_EMP_Employee_WorkplaceAssignment.Query(); foreach (var empInfo in Parameter.EmployeeInformation) { var empID = empInfo.EmployeeID; workplaceAssignementQuery.CMN_BPT_EMP_Employee_RefID = empID; workplaceAssignementQuery.Tenant_RefID = securityTicket.TenantID; workplaceAssignementQuery.IsDeleted = false; var workplaceAssignements = ORM_CMN_BPT_EMP_Employee_WorkplaceAssignment.Query.Search(Connection, Transaction, workplaceAssignementQuery); if (workplaceAssignements != null) { var workplaceAssignement = workplaceAssignements.FirstOrDefault(x => x.WorkplaceAssignment_StartDate <= date && (x.WorkplaceAssignment_EndDate >= date || x.WorkplaceAssignment_EndDate == new DateTime())); if (workplaceAssignement != null) { ORM_CMN_BPT_EMP_WorkplaceAssignments_WorkPattern.Query patternQuery = new ORM_CMN_BPT_EMP_WorkplaceAssignments_WorkPattern.Query(); patternQuery.BoundTo_WorkplaceAssignment_RefID = workplaceAssignement.CMN_BPT_EMP_Employee_WorkplaceAssignment; patternQuery.Tenant_RefID = securityTicket.TenantID; patternQuery.IsDeleted = false; var patterns = ORM_CMN_BPT_EMP_WorkplaceAssignments_WorkPattern.Query.Search(Connection, Transaction, patternQuery); if (patterns != null) { foreach (var pattern in patterns) { if (pattern.IsWeek_Even == isEven || !pattern.IsWeek_Even && pattern.IsWeek_Odd) { switch (date.DayOfWeek) { case DayOfWeek.Monday: if (!pattern.IsMonday) { continue; } break; case DayOfWeek.Tuesday: if (!pattern.IsTuesday) { continue; } break; case DayOfWeek.Wednesday: if (!pattern.IsWednesday) { continue; } break; case DayOfWeek.Thursday: if (!pattern.IsThursday) { continue; } break; case DayOfWeek.Friday: if (!pattern.IsFriday) { continue; } break; case DayOfWeek.Saturday: if (!pattern.IsSaturday) { continue; } break; case DayOfWeek.Sunday: if (!pattern.IsSunday) { continue; } break; } if (pattern.CMN_PPS_ShiftTemplate_RefID == Guid.Empty && pattern.CMN_BPT_STA_AbsenceReason_RefID != Guid.Empty) { double totalTime = 0; DateTime startTime = date; DateTime endTime = new DateTime(date.Year, date.Month, date.Day, 23, 59, 59); double startTimeInSec = startTime.TimeOfDay.TotalSeconds; double endTimeInSec = endTime.TimeOfDay.TotalSeconds; ORM_CMN_BPT_EMP_EffectiveWorkTime_Header.Query effectiveWorkTimeToDeleteQuery = new ORM_CMN_BPT_EMP_EffectiveWorkTime_Header.Query(); effectiveWorkTimeToDeleteQuery.EffectiveBusinessDay = date; effectiveWorkTimeToDeleteQuery.Employee_RefID = empID; effectiveWorkTimeToDeleteQuery.Tenant_RefID = securityTicket.TenantID; effectiveWorkTimeToDeleteQuery.IsDeleted = false; var allEffectiveWorkTimeHeadersToDelete = ORM_CMN_BPT_EMP_EffectiveWorkTime_Header.Query.Search(Connection, Transaction, effectiveWorkTimeToDeleteQuery); foreach (var effectiveWorkTimeHeaderToDelete in allEffectiveWorkTimeHeadersToDelete) { P_L5DWS_DEWTH_1126 deleteParam = new P_L5DWS_DEWTH_1126(); deleteParam.CMN_STR_PPS_EffectiveWorkTime_HeaderID = effectiveWorkTimeHeaderToDelete.CMN_STR_PPS_EffectiveWorkTime_HeaderID; ORM_CMN_BPT_EMP_EffectiveWorkTime_Position.Query positionsQuery = new ORM_CMN_BPT_EMP_EffectiveWorkTime_Position.Query(); positionsQuery.EffectiveWorkTime_Header_RefID = effectiveWorkTimeHeaderToDelete.CMN_STR_PPS_EffectiveWorkTime_HeaderID; positionsQuery.Tenant_RefID = securityTicket.TenantID; positionsQuery.IsDeleted = false; var positions = ORM_CMN_BPT_EMP_EffectiveWorkTime_Position.Query.Search(Connection, Transaction, positionsQuery); List <P_L5DWS_DEWTH_1126_Positions> listOfPositions = new List <P_L5DWS_DEWTH_1126_Positions>(); foreach (var position in positions) { P_L5DWS_DEWTH_1126_Positions positionItem = new P_L5DWS_DEWTH_1126_Positions(); positionItem.CMN_BPT_EMP_EffectiveWorkTime_PositionID = position.CMN_BPT_EMP_EffectiveWorkTime_PositionID; positionItem.durationInDays = leaveRequestUtil.LeaveRequestDuration(position.WorkTime_StartTime, position.WorkTime_StartTime.AddSeconds(position.WorkTime_Duration_in_sec), Parameter.Events, Parameter.Employees.FirstOrDefault(x => x.CMN_BPT_EMP_EmployeeID == position.CMN_BPT_EMP_Employe_RefID), true); positionItem.durationInHours = leaveRequestUtil.LeaveRequestDuration(position.WorkTime_StartTime, position.WorkTime_StartTime.AddSeconds(position.WorkTime_Duration_in_sec), Parameter.Events, Parameter.Employees.FirstOrDefault(x => x.CMN_BPT_EMP_EmployeeID == position.CMN_BPT_EMP_Employe_RefID), false); listOfPositions.Add(positionItem); } deleteParam.Positions = listOfPositions.ToArray(); cls_Delete_EffectiveWorkTime_Header.Invoke(Connection, Transaction, deleteParam, securityTicket); } ORM_CMN_BPT_EMP_EffectiveWorkTime_Header effectiveWorkTimeHeader = new ORM_CMN_BPT_EMP_EffectiveWorkTime_Header(); effectiveWorkTimeHeader.IsBreakTimeManualySpecified = false; effectiveWorkTimeHeader.ContractWorkerText = ""; effectiveWorkTimeHeader.Employee_RefID = empID; effectiveWorkTimeHeader.Tenant_RefID = securityTicket.TenantID; effectiveWorkTimeHeader.EffectiveBusinessDay = date; effectiveWorkTimeHeader.Save(Connection, Transaction); P_L5DWS_SEWTP_1337 effectivePositionParam = new P_L5DWS_SEWTP_1337(); effectivePositionParam.EffectiveWorkTime_Header_RefID = effectiveWorkTimeHeader.CMN_STR_PPS_EffectiveWorkTime_HeaderID; effectivePositionParam.WorkTime_Start = effectiveWorkTimeHeader.EffectiveBusinessDay.AddSeconds(0); effectivePositionParam.WorkTime_End = effectiveWorkTimeHeader.EffectiveBusinessDay.AddSeconds(86340); effectivePositionParam.Employee_RefID = empID; effectivePositionParam.AbsenceReason_RefID = pattern.CMN_BPT_STA_AbsenceReason_RefID; effectivePositionParam.RequestedFor_Employee_RefID = empID; cls_Save_EffectiveWorkTime_Position.Invoke(Connection, Transaction, effectivePositionParam, securityTicket); } else if (pattern.CMN_PPS_ShiftTemplate_RefID != Guid.Empty) { ORM_CMN_PPS_ShiftTemplate.Query shiftTemplateQuery = new ORM_CMN_PPS_ShiftTemplate.Query(); shiftTemplateQuery.CMN_PPS_ShiftTemplateID = pattern.CMN_PPS_ShiftTemplate_RefID; shiftTemplateQuery.Tenant_RefID = securityTicket.TenantID; shiftTemplateQuery.IsDeleted = false; var shiftTemplate = ORM_CMN_PPS_ShiftTemplate.Query.Search(Connection, Transaction, shiftTemplateQuery).FirstOrDefault(); if (shiftTemplate != null) { ORM_CMN_BPT_EMP_EffectiveWorkTime_Header.Query effectiveWorkTimeToDeleteQuery = new ORM_CMN_BPT_EMP_EffectiveWorkTime_Header.Query(); effectiveWorkTimeToDeleteQuery.EffectiveBusinessDay = date; effectiveWorkTimeToDeleteQuery.Employee_RefID = empID; effectiveWorkTimeToDeleteQuery.Tenant_RefID = securityTicket.TenantID; effectiveWorkTimeToDeleteQuery.IsDeleted = false; var allEffectiveWorkTimeHeadersToDelete = ORM_CMN_BPT_EMP_EffectiveWorkTime_Header.Query.Search(Connection, Transaction, effectiveWorkTimeToDeleteQuery); foreach (var effectiveWorkTimeHeaderToDelete in allEffectiveWorkTimeHeadersToDelete) { P_L5DWS_DEWTH_1126 deleteParam = new P_L5DWS_DEWTH_1126(); deleteParam.CMN_STR_PPS_EffectiveWorkTime_HeaderID = effectiveWorkTimeHeaderToDelete.CMN_STR_PPS_EffectiveWorkTime_HeaderID; ORM_CMN_BPT_EMP_EffectiveWorkTime_Position.Query positionsQuery = new ORM_CMN_BPT_EMP_EffectiveWorkTime_Position.Query(); positionsQuery.EffectiveWorkTime_Header_RefID = effectiveWorkTimeHeaderToDelete.CMN_STR_PPS_EffectiveWorkTime_HeaderID; positionsQuery.Tenant_RefID = securityTicket.TenantID; positionsQuery.IsDeleted = false; var positions = ORM_CMN_BPT_EMP_EffectiveWorkTime_Position.Query.Search(Connection, Transaction, positionsQuery); List <P_L5DWS_DEWTH_1126_Positions> listOfPositions = new List <P_L5DWS_DEWTH_1126_Positions>(); foreach (var position in positions) { P_L5DWS_DEWTH_1126_Positions positionItem = new P_L5DWS_DEWTH_1126_Positions(); positionItem.CMN_BPT_EMP_EffectiveWorkTime_PositionID = position.CMN_BPT_EMP_EffectiveWorkTime_PositionID; positionItem.durationInDays = leaveRequestUtil.LeaveRequestDuration(position.WorkTime_StartTime, position.WorkTime_StartTime.AddSeconds(position.WorkTime_Duration_in_sec), Parameter.Events, Parameter.Employees.FirstOrDefault(x => x.CMN_BPT_EMP_EmployeeID == position.CMN_BPT_EMP_Employe_RefID), true); positionItem.durationInHours = leaveRequestUtil.LeaveRequestDuration(position.WorkTime_StartTime, position.WorkTime_StartTime.AddSeconds(position.WorkTime_Duration_in_sec), Parameter.Events, Parameter.Employees.FirstOrDefault(x => x.CMN_BPT_EMP_EmployeeID == position.CMN_BPT_EMP_Employe_RefID), false); listOfPositions.Add(positionItem); } deleteParam.Positions = listOfPositions.ToArray(); cls_Delete_EffectiveWorkTime_Header.Invoke(Connection, Transaction, deleteParam, securityTicket); } P_L5DWS_SEWTFST_1141 saveParam = new P_L5DWS_SEWTFST_1141(); saveParam.EffectiveBusinessDay = date; saveParam.Employee_RefID = empID; saveParam.ShiftTemplate_RefID = shiftTemplate.CMN_PPS_ShiftTemplateID; cls_Save_EffectiveWorkTime_For_ShiftTemplate.Invoke(Connection, Transaction, saveParam, securityTicket); } } } } } } } } } else if (Parameter.LoadFrom_PlanData) { P_L5DWS_GDWSWDFT_0946 param = new P_L5DWS_GDWSWDFT_0946(); param.WorkSheduleDate = date; var dailyWorkSchedules = cls_Get_DailyWorkSchedules_WithDetails_For_Date.Invoke(Connection, Transaction, param, securityTicket).Result; foreach (var dailyWorkSchedule in dailyWorkSchedules) { ORM_CMN_BPT_EMP_EffectiveWorkTime_Header.Query effectiveWorkTimeToDeleteQuery = new ORM_CMN_BPT_EMP_EffectiveWorkTime_Header.Query(); effectiveWorkTimeToDeleteQuery.EffectiveBusinessDay = date; effectiveWorkTimeToDeleteQuery.Employee_RefID = dailyWorkSchedule.Employee_RefID; effectiveWorkTimeToDeleteQuery.Tenant_RefID = securityTicket.TenantID; effectiveWorkTimeToDeleteQuery.IsDeleted = false; var effectiveWorkTimeHeaderToDeleteQueryResult = ORM_CMN_BPT_EMP_EffectiveWorkTime_Header.Query.Search(Connection, Transaction, effectiveWorkTimeToDeleteQuery); if (effectiveWorkTimeHeaderToDeleteQueryResult.Count != 0) { var effectiveWorkTimeHeaderToDelete = effectiveWorkTimeHeaderToDeleteQueryResult.FirstOrDefault(); P_L5DWS_DEWTH_1126 deleteParam = new P_L5DWS_DEWTH_1126(); deleteParam.CMN_STR_PPS_EffectiveWorkTime_HeaderID = effectiveWorkTimeHeaderToDelete.CMN_STR_PPS_EffectiveWorkTime_HeaderID; ORM_CMN_BPT_EMP_EffectiveWorkTime_Position.Query positionsQuery = new ORM_CMN_BPT_EMP_EffectiveWorkTime_Position.Query(); positionsQuery.EffectiveWorkTime_Header_RefID = effectiveWorkTimeHeaderToDelete.CMN_STR_PPS_EffectiveWorkTime_HeaderID; positionsQuery.Tenant_RefID = securityTicket.TenantID; positionsQuery.IsDeleted = false; var positions = ORM_CMN_BPT_EMP_EffectiveWorkTime_Position.Query.Search(Connection, Transaction, positionsQuery); List <P_L5DWS_DEWTH_1126_Positions> listOfPositions = new List <P_L5DWS_DEWTH_1126_Positions>(); foreach (var position in positions) { P_L5DWS_DEWTH_1126_Positions positionItem = new P_L5DWS_DEWTH_1126_Positions(); positionItem.CMN_BPT_EMP_EffectiveWorkTime_PositionID = position.CMN_BPT_EMP_EffectiveWorkTime_PositionID; positionItem.durationInDays = leaveRequestUtil.LeaveRequestDuration(position.WorkTime_StartTime, position.WorkTime_StartTime.AddSeconds(position.WorkTime_Duration_in_sec), Parameter.Events, Parameter.Employees.FirstOrDefault(x => x.CMN_BPT_EMP_EmployeeID == position.CMN_BPT_EMP_Employe_RefID), true); positionItem.durationInHours = leaveRequestUtil.LeaveRequestDuration(position.WorkTime_StartTime, position.WorkTime_StartTime.AddSeconds(position.WorkTime_Duration_in_sec), Parameter.Events, Parameter.Employees.FirstOrDefault(x => x.CMN_BPT_EMP_EmployeeID == position.CMN_BPT_EMP_Employe_RefID), false); listOfPositions.Add(positionItem); } deleteParam.Positions = listOfPositions.ToArray(); cls_Delete_EffectiveWorkTime_Header.Invoke(Connection, Transaction, deleteParam, securityTicket); } ORM_CMN_BPT_EMP_EffectiveWorkTime_Header newHeader = new ORM_CMN_BPT_EMP_EffectiveWorkTime_Header(); newHeader.ContractWorkerText = dailyWorkSchedule.ContractWorkerText; newHeader.BreakDurationTime_in_sec = dailyWorkSchedule.BreakDurationTime_in_sec; newHeader.EffectiveBusinessDay = date; newHeader.Employee_RefID = dailyWorkSchedule.Employee_RefID; newHeader.IsBreakTimeManualySpecified = dailyWorkSchedule.IsBreakTimeManualySpecified; newHeader.SheduleBreakTemplate_RefID = dailyWorkSchedule.SheduleBreakTemplate_RefID; newHeader.Tenant_RefID = securityTicket.TenantID; newHeader.Save(Connection, Transaction); foreach (var dailyWorkDetail in dailyWorkSchedule.Details) { P_L5DWS_SEWTP_1337 positionSavePar = new P_L5DWS_SEWTP_1337(); if (dailyWorkDetail.LeaveRequest_RefID != Guid.Empty) { positionSavePar.AbsenceReason_RefID = dailyWorkDetail.AbsenceReason_RefID; positionSavePar.durationInDays = leaveRequestUtil.LeaveRequestDuration(dailyWorkDetail.FromTime_as_DateTime, dailyWorkDetail.ToTime_as_DateTime, Parameter.Events, Parameter.Employees.FirstOrDefault(x => x.CMN_BPT_EMP_EmployeeID == dailyWorkSchedule.Employee_RefID), true); positionSavePar.durationInHours = leaveRequestUtil.LeaveRequestDuration(dailyWorkDetail.FromTime_as_DateTime, dailyWorkDetail.ToTime_as_DateTime, Parameter.Events, Parameter.Employees.FirstOrDefault(x => x.CMN_BPT_EMP_EmployeeID == dailyWorkSchedule.Employee_RefID), false); positionSavePar.RequestedBy_Employee_RefID = Guid.Empty; positionSavePar.RequestedFor_Employee_RefID = dailyWorkSchedule.Employee_RefID; } else { positionSavePar.AbsenceReason_RefID = Guid.Empty; positionSavePar.durationInDays = 0; positionSavePar.durationInHours = 0; positionSavePar.RequestedBy_Employee_RefID = Guid.Empty; positionSavePar.RequestedFor_Employee_RefID = Guid.Empty; } positionSavePar.CMN_BPT_EMP_Employee_LeaveRequest_RefID = Guid.Empty; positionSavePar.EffectiveWorkTime_Header_RefID = newHeader.CMN_STR_PPS_EffectiveWorkTime_HeaderID; positionSavePar.Employee_RefID = newHeader.Employee_RefID; positionSavePar.OldDurationInDays = 0; positionSavePar.OldDurationInHours = 0; positionSavePar.Workplace_RefID = dailyWorkDetail.SheduleForWorkplace_RefID; positionSavePar.WorkTime_End = dailyWorkDetail.ToTime_as_DateTime; positionSavePar.WorkTime_Start = dailyWorkDetail.FromTime_as_DateTime; cls_Save_EffectiveWorkTime_Position.Invoke(Connection, Transaction, positionSavePar, securityTicket); } } } } //Put your code here return(returnValue); #endregion UserCode }