protected static FR_L5EM_GEALRDFIDL_1138_Array Execute(DbConnection Connection, DbTransaction Transaction, P_L5EM_GEALRDFIDL_1138 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null)
        {
            #region UserCode
            var returnValue = new FR_L5EM_GEALRDFIDL_1138_Array();
            List <L5EM_GEALRDFIDL_1138> resultList = new List <L5EM_GEALRDFIDL_1138>();
            //Put your code here



            L5EM_GEAAWCFT_1210[] allEmployees = cls_Get_Employees_And_ActiveWorkingContracts_For_Tenant.Invoke(Connection, Transaction, securityTicket).Result;
            L5AR_GART_1118[]     allReasons   = cls_Get_AbsenceReasons_For_Tenant.Invoke(Connection, Transaction, securityTicket).Result;

            foreach (var employeeID in Parameter.EmployeeIDList)
            {
                L5EM_GEALRDFIDL_1138 result   = new L5EM_GEALRDFIDL_1138();
                L5EM_GEAAWCFT_1210   employee = allEmployees.Where(x => x.CMN_BPT_EMP_EmployeeID == employeeID).FirstOrDefault();
                if (employee == null)
                {
                    continue;
                }
                result.FirstName = employee.FirstName;
                result.LastName  = employee.LastName;
                result.CMN_BPT_BusinessParticipantID        = employee.CMN_BPT_BusinessParticipantID;
                result.CMN_BPT_EMP_EmployeeID               = employee.CMN_BPT_EMP_EmployeeID;
                result.CMN_BPT_EMP_EmploymentRelationshipID = employee.CMN_BPT_EMP_EmploymentRelationshipID;
                result.Work_StartDate = employee.Work_StartDate;
                result.Work_EndDate   = employee.Work_EndDate;
                result.CMN_BPT_EMP_WorkingContractID = employee.ActiveWorkingContract.CMN_BPT_EMP_WorkingContractID;
                result.IsContractEndDateDefined      = employee.ActiveWorkingContract.IsContractEndDateDefined;
                result.IsWorkTimeCalculated_InDays   = employee.ActiveWorkingContract.IsWorkTimeCalculated_InDays;
                result.IsWorkTimeCalculated_InHours  = employee.ActiveWorkingContract.IsWorkTimeCalculated_InHours;
                result.Contract_StartDate            = employee.ActiveWorkingContract.Contract_StartDate;
                result.Contract_EndDate        = employee.ActiveWorkingContract.Contract_EndDate;
                result.R_WorkTime_DaysPerWeek  = employee.ActiveWorkingContract.R_WorkTime_DaysPerWeek;
                result.R_WorkTime_HoursPerWeek = employee.ActiveWorkingContract.R_WorkTime_HoursPerWeek;

                List <L5EM_GEALRDFIDL_1138_WeeklyOfficeHour> weeklyOfficeHoursResult = new List <L5EM_GEALRDFIDL_1138_WeeklyOfficeHour>();
                foreach (var weeklyOfficeHours in employee.ActiveWorkingContract.WeeklyOfficeHours)
                {
                    L5EM_GEALRDFIDL_1138_WeeklyOfficeHour weeklyOfficeHourInterval = new L5EM_GEALRDFIDL_1138_WeeklyOfficeHour();
                    weeklyOfficeHourInterval.CMN_CAL_WeeklyOfficeHours_IntervalID = weeklyOfficeHours.CMN_CAL_WeeklyOfficeHours_IntervalID;
                    weeklyOfficeHourInterval.IsWholeDay         = weeklyOfficeHours.IsWholeDay;
                    weeklyOfficeHourInterval.TimeFrom_InMinutes = weeklyOfficeHours.TimeFrom_InMinutes;
                    weeklyOfficeHourInterval.TimeTo_InMinutes   = weeklyOfficeHours.TimeTo_InMinutes;
                    weeklyOfficeHourInterval.IsMonday           = weeklyOfficeHours.IsMonday;
                    weeklyOfficeHourInterval.IsTuesday          = weeklyOfficeHours.IsTuesday;
                    weeklyOfficeHourInterval.IsWednesday        = weeklyOfficeHours.IsWednesday;
                    weeklyOfficeHourInterval.IsThursday         = weeklyOfficeHours.IsThursday;
                    weeklyOfficeHourInterval.IsFriday           = weeklyOfficeHours.IsFriday;
                    weeklyOfficeHourInterval.IsSaturday         = weeklyOfficeHours.IsSaturday;
                    weeklyOfficeHourInterval.IsSunday           = weeklyOfficeHours.IsSunday;
                    weeklyOfficeHoursResult.Add(weeklyOfficeHourInterval);
                }
                result.WeeklyOfficeHours = weeklyOfficeHoursResult.ToArray();
                P_L5EM_GAFE_1216 adjustmentsParam = new P_L5EM_GAFE_1216();
                adjustmentsParam.EmployeeID = employeeID;
                L5EM_GAFE_1216[] adjustmentsForEmployee = cls_get_Adjustments_For_Employee.Invoke(Connection, Transaction, adjustmentsParam, securityTicket).Result;
                List <L5EM_GEALRDFIDL_1138_WorkingContract2LeaveRequest> workingContract2LeaveRequestResult = new List <L5EM_GEALRDFIDL_1138_WorkingContract2LeaveRequest>();

                List <L5EM_GEALRDFIDL_1138_EmployeeWorkplaceHistory> employeeWorkplaceAssignments = new List <L5EM_GEALRDFIDL_1138_EmployeeWorkplaceHistory>();


                foreach (var workplaceAssignemns in employee.EmployeeWorkplaceHistory)
                {
                    L5EM_GEALRDFIDL_1138_EmployeeWorkplaceHistory item = new L5EM_GEALRDFIDL_1138_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_WorkplaceAssignmentID;
                    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();

                foreach (var absence in employee.ActiveWorkingContract.WorkingContract2LeaveRequest)
                {
                    L5EM_GEALRDFIDL_1138_WorkingContract2LeaveRequest workingContract2LeaveRequest = new L5EM_GEALRDFIDL_1138_WorkingContract2LeaveRequest();
                    L5AR_GART_1118 reason = allReasons.Where(x => x.CMN_BPT_STA_AbsenceReasonID == absence.STA_AbsenceReason_RefID).FirstOrDefault();

                    if (reason == null)
                    {
                        continue;
                    }

                    workingContract2LeaveRequest.CMN_BPT_EMP_Employee_WorkingContract_AllowedAbsenceReasonID = absence.CMN_BPT_EMP_Employee_WorkingContract_AllowedAbsenceReasonID;
                    workingContract2LeaveRequest.IsAbsenceCalculated_InDays       = absence.IsAbsenceCalculated_InDays;
                    workingContract2LeaveRequest.IsAbsenceCalculated_InHours      = absence.IsAbsenceCalculated_InHours;
                    workingContract2LeaveRequest.ContractAllowedAbsence_per_Month = absence.ContractAllowedAbsence_per_Month;
                    workingContract2LeaveRequest.AbsenceReasonName               = reason.ReasonName;
                    workingContract2LeaveRequest.CMN_BPT_STA_AbsenceReasonID     = reason.CMN_BPT_STA_AbsenceReasonID;
                    workingContract2LeaveRequest.AbsenceReason_ParentID          = reason.Parent_RefID;
                    workingContract2LeaveRequest.IsAuthorizationRequired         = reason.IsAuthorizationRequired;
                    workingContract2LeaveRequest.IsIncludedInCapacityCalculation = reason.IsIncludedInCapacityCalculation;
                    workingContract2LeaveRequest.IsAllowedAbsence   = reason.IsAllowedAbsence;
                    workingContract2LeaveRequest.IsDeactivated      = reason.IsDeactivated;
                    workingContract2LeaveRequest.IsCarryOverEnabled = reason.IsCarryOverEnabled;

                    L5EM_GAFE_1216[] adjustmentsForAbsenceReason = adjustmentsForEmployee.Where(x => x.CMN_BPT_STA_AbsenceReasonID == workingContract2LeaveRequest.CMN_BPT_STA_AbsenceReasonID).ToArray();

                    List <L5EM_GEALRDFIDL_1138_adjustments> adjustmentsResult = new List <L5EM_GEALRDFIDL_1138_adjustments>();

                    foreach (var adjustment in adjustmentsForAbsenceReason)
                    {
                        L5EM_GEALRDFIDL_1138_adjustments adjustmentResult = new L5EM_GEALRDFIDL_1138_adjustments();
                        adjustmentResult.CMN_BPT_EMP_ContractAbsenceAdjustmentID = adjustment.CMN_BPT_EMP_ContractAbsenceAdjustmentID;
                        adjustmentResult.AbsenceTime_InMinutes = adjustment.AbsenceTime_InMinutes;
                        adjustmentResult.ContractAbsenceAdjustment_Group_RefID = adjustment.CMN_BPT_EMP_ContractAbsenceAdjustment_GroupID;
                        adjustmentResult.IsManual = adjustment.IsManual;
                        adjustmentResult.TriggeringAccount_RefID = adjustment.TriggeringAccount_RefID;
                        adjustmentResult.AdjustmentComment       = adjustment.AdjustmentComment;
                        adjustmentResult.AdjustmentDate          = adjustment.AdjustmentDate;
                        adjustmentsResult.Add(adjustmentResult);
                    }

                    workingContract2LeaveRequest.Adjustments = adjustmentsResult.ToArray();
                    workingContract2LeaveRequestResult.Add(workingContract2LeaveRequest);
                }
                result.WorkingContract2LeaveRequest = workingContract2LeaveRequestResult.ToArray();
                resultList.Add(result);
            }
            returnValue.Result = resultList.ToArray();
            return(returnValue);

            #endregion UserCode
        }
Пример #2
0
        protected static FR_L5AR_GART_1118_Array Execute(DbConnection Connection, DbTransaction Transaction, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null)
        {
            var returnStatus = new FR_L5AR_GART_1118_Array();

            DbCommand command = Connection.CreateCommand();

            command.Connection  = Connection;
            command.Transaction = Transaction;
            var commandLocation = "CL5_VacationPlanner_Absence.Atomic.Retrieval.SQL.cls_Get_AbsenceReasons_For_Tenant.sql";

            command.CommandText = new System.IO.StreamReader(System.Reflection.Assembly.GetExecutingAssembly().GetManifestResourceStream(commandLocation)).ReadToEnd();
            CSV2Core_MySQL.Support.DBSQLSupport.SetParameter(command, "ticket", securityTicket);
            command.CommandTimeout = QueryTimeout;
            List <L5AR_GART_1118> results = new List <L5AR_GART_1118>();
            var loader = new CSV2Core_MySQL.Dictionaries.MultiTable.Loader.DictionaryLoader(Connection, Transaction);
            var reader = new CSV2Core_MySQL.Support.DBSQLReader(command.ExecuteReader());

            try
            {
                reader.SetOrdinals(new string[] { "CMN_BPT_STA_AbsenceReasonID", "Parent_RefID", "ShortName", "ColorCode", "IsIncludedInCapacityCalculation", "IsAuthorizationRequired", "IsAllowedAbsence", "IsCarryOverEnabled", "IsDeactivated", "Creation_Timestamp", "Name_DictID", "Description_DictID", "IsLeaveTimeReducing_WorkingHours", "IsLeaveTimeReducingOverTime" });
                while (reader.Read())
                {
                    L5AR_GART_1118 resultItem = new L5AR_GART_1118();
                    //0:Parameter CMN_BPT_STA_AbsenceReasonID of type Guid
                    resultItem.CMN_BPT_STA_AbsenceReasonID = reader.GetGuid(0);
                    //1:Parameter Parent_RefID of type Guid
                    resultItem.Parent_RefID = reader.GetGuid(1);
                    //2:Parameter ShortName of type String
                    resultItem.ShortName = reader.GetString(2);
                    //3:Parameter ColorCode of type String
                    resultItem.ColorCode = reader.GetString(3);
                    //4:Parameter IsIncludedInCapacityCalculation of type bool
                    resultItem.IsIncludedInCapacityCalculation = reader.GetBoolean(4);
                    //5:Parameter IsAuthorizationRequired of type bool
                    resultItem.IsAuthorizationRequired = reader.GetBoolean(5);
                    //6:Parameter IsAllowedAbsence of type bool
                    resultItem.IsAllowedAbsence = reader.GetBoolean(6);
                    //7:Parameter IsCarryOverEnabled of type Boolean
                    resultItem.IsCarryOverEnabled = reader.GetBoolean(7);
                    //8:Parameter IsDeactivated of type Boolean
                    resultItem.IsDeactivated = reader.GetBoolean(8);
                    //9:Parameter Creation_Timestamp of type DateTime
                    resultItem.Creation_Timestamp = reader.GetDate(9);
                    //10:Parameter ReasonName of type Dict
                    resultItem.ReasonName             = reader.GetDictionary(10);
                    resultItem.ReasonName.SourceTable = "cmn_bpt_sta_absencereasons";
                    loader.Append(resultItem.ReasonName);
                    //11:Parameter ReasonDescription of type Dict
                    resultItem.ReasonDescription             = reader.GetDictionary(11);
                    resultItem.ReasonDescription.SourceTable = "cmn_bpt_sta_absencereasons";
                    loader.Append(resultItem.ReasonDescription);
                    //12:Parameter IsLeaveTimeReducing_WorkingHours of type bool
                    resultItem.IsLeaveTimeReducing_WorkingHours = reader.GetBoolean(12);
                    //13:Parameter IsLeaveTimeReducingOverTime of type bool
                    resultItem.IsLeaveTimeReducingOverTime = reader.GetBoolean(13);

                    results.Add(resultItem);
                }
            }
            catch (Exception ex)
            {
                reader.Close();
                throw ex;
            }
            reader.Close();
            //Load all the dictionaries from the datatables
            loader.Load();

            returnStatus.Result = results.ToArray();
            return(returnStatus);
        }