//private SickLeaveCat2BalanceProcess CAT2Process = null;
        public SickLeaveBalanceProcess(DatabaseConnection dbConn, int EmpID)
            : base(dbConn, EmpID, 0)
        {
            EntitlePeriodUnit   = "M";
            allowEntitleProrata = false;
            m_LeaveTypeID       = ELeaveType.SLCAT1_LEAVE_TYPE(dbConn).LeaveTypeID;

            ELeaveType Cat2LeaveType = ELeaveType.SLCAT2_LEAVE_TYPE(dbConn);

            if (Cat2LeaveType != null)
            {
                leaveTypeIDSLCat2       = Cat2LeaveType.LeaveTypeID;
                leaveTypeDisabledSLCat2 = Cat2LeaveType.LeaveTypeIsDisabled;


                // Start 2013-12-02, Ricky So, pretend CAT2 always enabled to retain Jimmy's calculation.
                leaveTypeDisabledSLCat2 = false;
                // End 2013-12-02, Ricky So, pretend CAT2 always enabled to retain Jimmy's calculation.
            }
        }
Exemplo n.º 2
0
        public ArrayList getCurrentBalanceList(bool forESSOnly)
        {
            ArrayList balanceList = new ArrayList();


            foreach (LeaveBalanceProcess balanceProcess in leaveBalanceProcessList.Values)
            {
                ELeaveBalance leaveBalance = balanceProcess.getLatestLeaveBalance();
                if (leaveBalance != null)
                {
                    //bool addToList = true;
                    if (forESSOnly)
                    {
                        ELeaveType leaveType = new ELeaveType();
                        leaveType.LeaveTypeID = leaveBalance.LeaveTypeID;
                        if (!ELeaveType.db.select(dbConn, leaveType))
                        {
                            continue;
                        }
                        if (leaveType.LeaveTypeIsESSHideLeaveBalance)
                        {
                            continue;
                        }
                        DBFilter countESSLeaveCodeFilter = new DBFilter();
                        countESSLeaveCodeFilter.add(new Match("LeaveTypeID", leaveBalance.LeaveTypeID));
                        countESSLeaveCodeFilter.add(new Match("LeaveCodeHideInESS", false));
                        if (ELeaveCode.db.count(dbConn, countESSLeaveCodeFilter) <= 0)
                        {
                            continue;
                        }
                        //addToList = false;
                    }

                    //if (addToList)
                    {
                        LoadLeaveTypeAndRounding(leaveBalance);
                        if (leaveBalance.LeaveBalanceEntitled != 0 || leaveBalance.getBalance() != 0 || leaveBalance.Taken != 0 || leaveBalance.Reserved != 0)
                        {
                            balanceList.Add(leaveBalance);
                        }
                    }
                }

                // Start 2013-12-02, Ricky So, Avoid showing CAT2 Sick Leave entry
                if ((ELeaveType.SLCAT2_LEAVE_TYPE(dbConn)).LeaveTypeIsDisabled == false)
                {
                    if (balanceProcess is SickLeaveBalanceProcess)
                    {
                        leaveBalance = ((SickLeaveBalanceProcess)balanceProcess).getLatestCAT2LeaveBalance();
                        if (leaveBalance != null)
                        {
                            bool addToList = true;
                            if (forESSOnly)
                            {
                                DBFilter countESSLeaveCodeFilter = new DBFilter();
                                countESSLeaveCodeFilter.add(new Match("LeaveTypeID", leaveBalance.LeaveTypeID));
                                countESSLeaveCodeFilter.add(new Match("LeaveCodeHideInESS", false));
                                if (ELeaveCode.db.count(dbConn, countESSLeaveCodeFilter) <= 0)
                                {
                                    addToList = false;
                                }
                            }

                            if (addToList)
                            {
                                LoadLeaveTypeAndRounding(leaveBalance);
                                if (leaveBalance.LeaveBalanceEntitled != 0 || leaveBalance.getBalance() != 0 || leaveBalance.Taken != 0 || leaveBalance.Reserved != 0)
                                {
                                    balanceList.Add(leaveBalance);
                                }
                            }
                        }
                    }
                }
                //if (balanceProcess is SickLeaveBalanceProcess)
                //{
                //    leaveBalance = ((SickLeaveBalanceProcess)balanceProcess).getLatestCAT2LeaveBalance();
                //    if (leaveBalance != null)
                //    {
                //        bool addToList = true;
                //        if (forESSOnly)
                //        {
                //            DBFilter countESSLeaveCodeFilter = new DBFilter();
                //            countESSLeaveCodeFilter.add(new Match("LeaveTypeID", leaveBalance.LeaveTypeID));
                //            countESSLeaveCodeFilter.add(new Match("LeaveCodeHideInESS", false));
                //            if (ELeaveCode.db.count(dbConn, countESSLeaveCodeFilter) <= 0)
                //                addToList = false;
                //        }

                //        if (addToList)
                //        {
                //            LoadLeaveTypeAndRounding(leaveBalance);
                //            if (leaveBalance.LeaveBalanceEntitled != 0 || leaveBalance.getBalance() != 0 || leaveBalance.Taken != 0 || leaveBalance.Reserved != 0)
                //                balanceList.Add(leaveBalance);
                //        }
                //    }
                //}


                // End 2013-12-02, Ricky So, Avoid showing CAT2 Sick Leave entry
            }

            return(balanceList);
        }
Exemplo n.º 3
0
    protected void btnGenerate_Click(object sender, EventArgs e)
    {
        PageErrors errors = PageErrors.getErrors(db, Page.Master);

        errors.clear();

        DateTime currentDate = AppUtils.ServerDateTime().Date;
        DateTime asOfDate    = currentDate;

        if (!DateTime.TryParse(BalanceAsOfDate.Value, out asOfDate))
        {
            asOfDate = currentDate;
        }
        ESSAuthorizationProcess    authProcess = new ESSAuthorizationProcess(dbConn);
        List <EAuthorizationGroup> groupList   = authProcess.GetAuthorizerAuthorizationGroupList(CurID);
        ArrayList EmpIDList = new ArrayList();

        if (groupList.Count > 0)
        {
            DBFilter authWorkFlowDetailFilter = new DBFilter();
            string   authGroupIDList          = string.Empty;
            foreach (EAuthorizationGroup group in groupList)
            {
                if (string.IsNullOrEmpty(authGroupIDList))
                {
                    authGroupIDList = group.AuthorizationGroupID.ToString();
                }
                else
                {
                    authGroupIDList += ", " + group.AuthorizationGroupID.ToString();
                }
            }
            authWorkFlowDetailFilter.add(new IN("AuthorizationGroupID", authGroupIDList, null));

            DBFilter empPosFilter = EEmpPositionInfo.CreateDateRangeDBFilter("epi", currentDate, currentDate);
            empPosFilter.add(new IN("epi.AuthorizationWorkFlowIDLeaveApp", "SELECT DISTINCT awfd.AuthorizationWorkFlowID FROM " + EAuthorizationWorkFlowDetail.db.dbclass.tableName + " awfd", authWorkFlowDetailFilter));

            DBFilter empInfoFilter = new DBFilter();
            empInfoFilter.add(new IN("EmpID", "SELECT DISTINCT epi.EmpID FROM " + EEmpPositionInfo.db.dbclass.tableName + " epi", empPosFilter));

            DBFilter empTermFilter = new DBFilter();
            empTermFilter.add(new Match("EmpTermLastDate", "<", currentDate < asOfDate?currentDate:asOfDate));
            empInfoFilter.add(new IN("NOT EMPID", "SELECT et.EmpID FROM " + EEmpTermination.db.dbclass.tableName + " et", empTermFilter));

            ArrayList EmpList = EEmpPersonalInfo.db.select(dbConn, empInfoFilter);
            foreach (EEmpPersonalInfo empInfo in EmpList)
            {
                EmpIDList.Add(empInfo.EmpID);
            }
        }

        // Start Ricky So, 0000119, 2014/10/28
        EmpIDList.Add(WebUtils.GetCurUser(Session).EmpID);
        // End Ricky So, 0000119, 2014/10/28

        if (EmpIDList.Count > 0)
        {
            ArrayList leaveTypeList = new ArrayList();
            leaveTypeList.Add(ELeaveType.ANNUAL_LEAVE_TYPE(dbConn));
            // Start 0000057, Ricky So, 2014/07/03


            DBFilter m_leaveTypeFilter = new DBFilter();
            DBFilter m_leaveCodeFilter = new DBFilter();

            OR m_orLeaveType = new OR();
            m_orLeaveType.add(new Match("LeaveType", "SLCAT1"));
            m_orLeaveType.add(new Match("LeaveType", "SLCAT2"));

            m_leaveTypeFilter.add(m_orLeaveType);

            m_leaveCodeFilter.add(new IN("LeaveTypeID", "SELECT LeaveTypeID FROM LeaveType", m_leaveTypeFilter));

            ArrayList m_leaveCodeList = ELeaveCode.db.select(dbConn, m_leaveCodeFilter);
            if (m_leaveCodeList.Count > 0)
            {
                leaveTypeList.Add(ELeaveType.SLCAT1_LEAVE_TYPE(dbConn));
                leaveTypeList.Add(ELeaveType.SLCAT2_LEAVE_TYPE(dbConn));
            }

            // End 0000057, Ricky So, 2014/07/03
            HROne.Reports.Employee.LeaveBalanceProcess rpt = new HROne.Reports.Employee.LeaveBalanceProcess(dbConn, EmpIDList, asOfDate, leaveTypeList);
            string reportFileName = WebUtils.GetLocalizedReportFile(Server.MapPath("~/Report_Employee_LeaveBalance.rpt"));
            WebUtils.ReportExport(Response, rpt, reportFileName, "PDF", "LeaveBalance");
        }
        else
        {
            errors.addError("No employee can be generated");
        }
    }