Exemplo n.º 1
0
        ///<summary>
        /// Method Invocation of wrapper classes
        ///<summary>
        protected static FR_L5LR_GLRFSP_1532_Array Invoke(DbConnection Connection, DbTransaction Transaction, string ConnectionString, P_L5LR_GLRFSP_1532 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null)
        {
            bool cleanupConnection  = Connection == null;
            bool cleanupTransaction = Transaction == null;

            FR_L5LR_GLRFSP_1532_Array functionReturn = new FR_L5LR_GLRFSP_1532_Array();

            try
            {
                if (cleanupConnection == true)
                {
                    Connection = CSV2Core_MySQL.Support.DBSQLSupport.CreateConnection(ConnectionString);
                    Connection.Open();
                }
                if (cleanupTransaction == true)
                {
                    Transaction = Connection.BeginTransaction();
                }

                functionReturn = Execute(Connection, Transaction, Parameter, securityTicket);


                #region Cleanup Connection/Transaction
                //Commit the transaction
                if (cleanupTransaction == true)
                {
                    Transaction.Commit();
                }
                //Close the connection
                if (cleanupConnection == true)
                {
                    Connection.Close();
                }
                #endregion
            }
            catch (Exception ex)
            {
                try
                {
                    if (cleanupTransaction == true && Transaction != null)
                    {
                        Transaction.Rollback();
                    }
                }
                catch { }

                try
                {
                    if (cleanupConnection == true && Connection != null)
                    {
                        Connection.Close();
                    }
                }
                catch { }

                throw ex;
            }
            return(functionReturn);
        }
Exemplo n.º 2
0
        protected static FR_L5LR_GLRFSP_1532_Array Execute(DbConnection Connection, DbTransaction Transaction, P_L5LR_GLRFSP_1532 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null)
        {
            #region UserCode
            var returnValue = new FR_L5LR_GLRFSP_1532_Array();

            List <L5LR_GLRFSP_1532> resultList = new List <L5LR_GLRFSP_1532>();
            Parameter.EmployeeIDList = Parameter.EmployeeIDList.Select(i => i).Distinct().ToArray();

            foreach (var employeeID in Parameter.EmployeeIDList)
            {
                ORM_CMN_BPT_EMP_Employee employee = new ORM_CMN_BPT_EMP_Employee();
                employee.Load(Connection, Transaction, employeeID);
                if (employee.CMN_BPT_EMP_EmployeeID == Guid.Empty)
                {
                    continue;
                }



                //Covers
                ORM_CMN_BPT_EMP_Employee_LeaveRequest.Query leaveRequestQuery = new ORM_CMN_BPT_EMP_Employee_LeaveRequest.Query();
                leaveRequestQuery.RequestedFor_Employee_RefID = employee.CMN_BPT_EMP_EmployeeID;
                leaveRequestQuery.Tenant_RefID = securityTicket.TenantID;
                leaveRequestQuery.IsDeleted    = false;
                List <ORM_CMN_BPT_EMP_Employee_LeaveRequest> leaveRequests = ORM_CMN_BPT_EMP_Employee_LeaveRequest.Query.Search(Connection, Transaction, leaveRequestQuery);
                foreach (var leaveRequest in leaveRequests)
                {
                    L5LR_GLRFSP_1532 result = new L5LR_GLRFSP_1532();
                    result.ForEmployeeID = employee.CMN_BPT_EMP_EmployeeID;
                    result.ForEmployee_BusinessParticipant_RefID = employee.BusinessParticipant_RefID;
                    result.ForEmployee_Staff_Number     = employee.Staff_Number;
                    result.ForEmployee_StandardFunction = employee.StandardFunction;
                    result.LeaveRequestCreationSource   = leaveRequest.LeaveRequestCreationSource;
                    ORM_CMN_BPT_BusinessParticipant bpart = new ORM_CMN_BPT_BusinessParticipant();
                    bpart.Load(Connection, Transaction, employee.BusinessParticipant_RefID);

                    ORM_CMN_PER_PersonInfo per = new ORM_CMN_PER_PersonInfo();
                    per.Load(Connection, Transaction, bpart.IfNaturalPerson_CMN_PER_PersonInfo_RefID);
                    result.FirstName = per.FirstName;
                    result.LastName  = per.LastName;

                    result.CMN_CAL_Event_RefID          = leaveRequest.CMN_CAL_Event_RefID;
                    result.CMN_CAL_Event_Approval_RefID = leaveRequest.CMN_CAL_Event_Approval_RefID;
                    result.CMN_CAL_Event_Approval_RefID = leaveRequest.CMN_BPT_STA_AbsenceReason_RefID;
                    result.Comment = leaveRequest.Comment;
                    result.RequestedBy_Employee_RefID          = leaveRequest.RequestedBy_Employee_RefID;
                    result.CMN_BPT_EMP_Employee_LeaveRequestID = leaveRequest.CMN_BPT_EMP_Employee_LeaveRequestID;
                    ORM_CMN_BPT_EMP_Employee_LeaveRequest_EmployeeCover.Query covers = new ORM_CMN_BPT_EMP_Employee_LeaveRequest_EmployeeCover.Query();
                    covers.CMN_BPT_EMP_Employee_LeaveRequests = leaveRequest.CMN_BPT_EMP_Employee_LeaveRequestID;
                    covers.Tenant_RefID = securityTicket.TenantID;
                    covers.IsDeleted    = false;
                    List <ORM_CMN_BPT_EMP_Employee_LeaveRequest_EmployeeCover> employeeCovers = ORM_CMN_BPT_EMP_Employee_LeaveRequest_EmployeeCover.Query.Search(Connection, Transaction, covers);
                    result.Cover = new L5LR_GLRFSP_1532_Cover();
                    if (employeeCovers.Count != 0)
                    {
                        ORM_CMN_BPT_EMP_Employee_LeaveRequest_EmployeeCover employeeCover = employeeCovers[0];
                        result.Cover.CMN_BPT_EMP_EmployeeID = employeeCover.EmployeeCover_RefID;
                        result.Cover.CMN_BPT_EMP_Employee_LeaveRequest_EmployeeCoverID = employeeCover.CMN_BPT_EMP_Employee_LeaveRequest_EmployeeCoverID;
                        result.Cover.SequenceNumber = employeeCover.SequenceNumber;
                    }

                    ORM_CMN_BPT_STA_AbsenceReason absenceReason = new ORM_CMN_BPT_STA_AbsenceReason();
                    absenceReason.Load(Connection, Transaction, leaveRequest.CMN_BPT_STA_AbsenceReason_RefID);
                    if (absenceReason.CMN_BPT_STA_AbsenceReasonID == Guid.Empty)
                    {
                        continue;
                    }
                    result.CMN_BPT_STA_AbsenceReason_RefID = absenceReason.CMN_BPT_STA_AbsenceReasonID;
                    result.ShortName  = absenceReason.ShortName;
                    result.ReasonName = absenceReason.Name;
                    result.ReasonDesc = absenceReason.Description;
                    result.AbsenceReason_Type_RefID = absenceReason.AbsenceReason_Type_RefID;
                    result.ColorCode                            = absenceReason.ColorCode;
                    result.Parent_RefID                         = absenceReason.Parent_RefID;
                    result.IsAuthorizationRequired              = absenceReason.IsAuthorizationRequired;
                    result.IsIncludedInCapacityCalculation      = absenceReason.IsIncludedInCapacityCalculation;
                    result.IsAllowedAbsence                     = absenceReason.IsAllowedAbsence;
                    result.IsDeactivated                        = absenceReason.IsDeactivated;
                    result.IsCarryOverEnabled                   = absenceReason.IsCarryOverEnabled;
                    result.IsCaryOverLimited                    = absenceReason.IsCaryOverLimited;
                    result.IfCarryOverLimited_MaximumAmount_Hrs = absenceReason.IfCarryOverLimited_MaximumAmount_Hrs;

                    ORM_CMN_CAL_Event Event = new ORM_CMN_CAL_Event();
                    Event.Load(Connection, Transaction, leaveRequest.CMN_CAL_Event_RefID);
                    if (Event.CMN_CAL_EventID == Guid.Empty)
                    {
                        continue;
                    }

                    result.CalendarInstance_RefID = Event.CalendarInstance_RefID;
                    result.StartTime           = Event.StartTime;
                    result.EndTime             = Event.EndTime;
                    result.R_EventDuration_sec = Event.R_EventDuration_sec;

                    ORM_CMN_CAL_Event_Approval eventApproval = new ORM_CMN_CAL_Event_Approval();
                    eventApproval.Load(Connection, Transaction, leaveRequest.CMN_CAL_Event_Approval_RefID);
                    if (eventApproval.CMN_CAL_Event_ApprovalID == Guid.Empty)
                    {
                        continue;
                    }

                    result.Action = new L5LR_GLRFSP_1532_Action();

                    result.IsApproved = eventApproval.IsApproved;
                    result.IsApprovalProcessOpened = eventApproval.IsApprovalProcessOpened;
                    result.IsApprovalProcessDenied = eventApproval.IsApprovalProcessDenied;

                    if (eventApproval.IsApprovalProcessCanceledByUser)
                    {
                        continue;
                    }

                    ORM_CMN_CAL_Event_Approval_Action.Query approvalQuery = new ORM_CMN_CAL_Event_Approval_Action.Query();
                    approvalQuery.EventApproval_RefID = eventApproval.CMN_CAL_Event_ApprovalID;
                    approvalQuery.Tenant_RefID        = securityTicket.TenantID;
                    approvalQuery.IsDeleted           = false;
                    List <ORM_CMN_CAL_Event_Approval_Action> apporvalActions = ORM_CMN_CAL_Event_Approval_Action.Query.Search(Connection, Transaction, approvalQuery);
                    if (apporvalActions.Count != 0)
                    {
                        ORM_CMN_CAL_Event_Approval_Action approvalAction = apporvalActions[0];
                        result.Action.ActionTriggeredBy_Account_RefID = approvalAction.ActionTriggeredBy_Account_RefID;
                        result.Action.CMN_CAL_Event_Approval_ActionID = approvalAction.CMN_CAL_Event_Approval_ActionID;
                        result.Action.IsApproval              = approvalAction.IsApproval;
                        result.Action.IsRevocation            = approvalAction.IsRevocation;
                        result.Action.IsDenial                = approvalAction.IsDenial;
                        result.Action.Approval_Action_Commnet = approvalAction.Comment;
                    }
                    if (!result.Action.IsRevocation)
                    {
                        resultList.Add(result);
                    }
                }
            }
            returnValue.Result = resultList.ToArray();
            //Put your code here
            return(returnValue);

            #endregion UserCode
        }