protected bool loadObject()
    {
        obj       = new EEmpPersonalInfo();
        obj.EmpID = CurID;
        if (!db.select(dbConn, obj))
        {
            return(false);
        }

        ESSAuthorizationProcess authorizationProcess = new ESSAuthorizationProcess(dbConn);
        int groupCount = authorizationProcess.GetAuthorizerAuthorizationGroupList(CurID).Count;

        if (groupCount > 0)
        {
            Emp_Authorize_List_Form1.Visible = true;
        }
        else
        {
            Emp_Authorize_List_Form1.Visible = false;
        }
        //------------------------------------------------------

        return(true);
    }
    //public void loadState()
    //{
    //    info = new ListInfo();
    //    int page = 0;
    //    if (!CurPage.Value.Equals(""))
    //        page = Int32.Parse(CurPage.Value);
    //    info.loadState(Request, page);
    //    info.order = Order.Value.Equals("True");
    //    info.orderby = OrderBy.Value;
    //    if (info.orderby == "")
    //        info.orderby = null;
    //    info.recordPerPage = -1;
    //}
    public DataView loadData(ListInfo info, DBManager db, Repeater repeater)
    {
        ESSAuthorizationProcess    authorization = new ESSAuthorizationProcess(dbConn);
        List <EAuthorizationGroup> authGroupList = authorization.GetAuthorizerAuthorizationGroupList(CurID);

        if (authGroupList.Count > 0)
        {
            DBFilter filter = binding.createFilter();

            DateTime dtPeriodFr, dtPeriodTo;
            if (DateTime.TryParse(EmpRequestFromDate.Value, out dtPeriodFr))
            {
                filter.add(new Match("EmpRequestCreateDate", ">=", dtPeriodFr));
            }
            if (DateTime.TryParse(EmpRequestToDate.Value, out dtPeriodTo))
            {
                filter.add(new Match("EmpRequestCreateDate", "<", dtPeriodTo.AddDays(1)));
            }

            //if (info != null && info.orderby != null && !info.orderby.Equals(""))
            //    filter.add(info.orderby, info.order);

            filter.add(new Match("R.EmpRequestStatus", "<>", EEmpRequest.STATUS_CANCELLED));
            filter.add(new Match("R.EmpRequestStatus", "<>", EEmpRequest.STATUS_REJECTED));
            filter.add(new Match("R.EmpRequestStatus", "<>", EEmpRequest.STATUS_APPROVED));

            DBFilter workFlowDetailFilter = new DBFilter();
            OR       orWorkFlowIndexTerms = new OR();
            if (EmpRequestStatus2.SelectedValue == "Y")
            {
                orWorkFlowIndexTerms.add(new MatchField("awfd.AuthorizationWorkFlowIndex", "=", "R.EmpRequestLastAuthorizationWorkFlowIndex + 1"));
            }
            else if (EmpRequestStatus2.SelectedValue == "O")
            {
                orWorkFlowIndexTerms.add(new MatchField("awfd.AuthorizationWorkFlowIndex", ">", "R.EmpRequestLastAuthorizationWorkFlowIndex + 1"));
            }
            else
            {
                orWorkFlowIndexTerms.add(new MatchField("awfd.AuthorizationWorkFlowIndex", ">", "R.EmpRequestLastAuthorizationWorkFlowIndex"));
            }
            AND andMaxWorkFlowIndexTerms = new AND();
            andMaxWorkFlowIndexTerms.add(new MatchField("awfd.AuthorizationWorkFlowIndex", "=", "(SELECT MAX(maxAWFD.AuthorizationWorkFlowIndex) FROM " + EAuthorizationWorkFlowDetail.db.dbclass.tableName + " maxAWFD WHERE maxAWFD.AuthorizationWorkFlowID=awfd.AuthorizationWorkFlowID)"));
            andMaxWorkFlowIndexTerms.add(new MatchField("R.EmpRequestLastAuthorizationWorkFlowIndex", ">=", "awfd.AuthorizationWorkFlowIndex"));

            orWorkFlowIndexTerms.add(andMaxWorkFlowIndexTerms);
            workFlowDetailFilter.add(orWorkFlowIndexTerms);
            DBFilter authorizerFilter = new DBFilter();

            string strAuthGroupInList = string.Empty;
            foreach (EAuthorizationGroup authGroup in authGroupList)
            {
                if (string.IsNullOrEmpty(strAuthGroupInList))
                {
                    strAuthGroupInList = authGroup.AuthorizationGroupID.ToString();
                }
                else
                {
                    strAuthGroupInList += "," + authGroup.AuthorizationGroupID.ToString();
                }
            }
            workFlowDetailFilter.add(new IN("awfd.AuthorizationGroupID", strAuthGroupInList, null));

            AND andLeaveApplicationTerms = new AND();
            andLeaveApplicationTerms.add(new IN("R.EmpRequestType", new string[] { EEmpRequest.TYPE_EELEAVEAPP, EEmpRequest.TYPE_EELEAVECANCEL }));
            andLeaveApplicationTerms.add(new IN("EP.AuthorizationWorkFlowIDLeaveApp", "SELECT awfd.AuthorizationWorkFlowID FROM " + EAuthorizationWorkFlowDetail.db.dbclass.tableName + " awfd", workFlowDetailFilter));

            //andLeaveApplicationTerms.add(new Match("AuthorizationGroupIsApproveLeave", "<>", false));

            AND andEEProfileTerms = new AND();
            andEEProfileTerms.add(new Match("R.EmpRequestType", EEmpRequest.TYPE_EEPROFILE));
            andEEProfileTerms.add(new IN("EP.AuthorizationWorkFlowIDEmpInfoModified", "SELECT awfd.AuthorizationWorkFlowID FROM " + EAuthorizationWorkFlowDetail.db.dbclass.tableName + " awfd", workFlowDetailFilter));

            // Start 0000060, Miranda, 2014-07-13
            AND andOTClaimTerms = new AND();
            andOTClaimTerms.add(new IN("R.EmpRequestType", new string[] { EEmpRequest.TYPE_EEOTCLAIM, EEmpRequest.TYPE_EEOTCLAIMCANCEL }));
            andOTClaimTerms.add(new IN("EP.AuthorizationWorkFlowIDOTClaims", "SELECT awfd.AuthorizationWorkFlowID FROM " + EAuthorizationWorkFlowDetail.db.dbclass.tableName + " awfd", workFlowDetailFilter));
            // End 0000060, Miranda, 2014-07-13

            // Start 0000112, Miranda, 2014-12-10
            AND andLateWaiveTerms = new AND();
            andLateWaiveTerms.add(new IN("R.EmpRequestType", new string[] { EEmpRequest.TYPE_EELATEWAIVE, EEmpRequest.TYPE_EELATEWAIVECANCEL }));
            andLateWaiveTerms.add(new IN("EP.AuthorizationWorkFlowIDLateWaive", "SELECT awfd.AuthorizationWorkFlowID FROM " + EAuthorizationWorkFlowDetail.db.dbclass.tableName + " awfd", workFlowDetailFilter));
            // End 0000112, Miranda, 2014-12-10

            OR orAuthorizationGrpApplicationTerms = new OR();
            orAuthorizationGrpApplicationTerms.add(andLeaveApplicationTerms);
            orAuthorizationGrpApplicationTerms.add(andEEProfileTerms);
            // Start 0000060, Miranda, 2014-07-13
            orAuthorizationGrpApplicationTerms.add(andOTClaimTerms);
            // End 0000060, Miranda, 2014-07-13
            // Start 0000112, Miranda, 2014-12-10
            orAuthorizationGrpApplicationTerms.add(andLateWaiveTerms);
            // End 0000112, Miranda, 2014-12-10
            filter.add(orAuthorizationGrpApplicationTerms);
            //string select = "R.*, E.EmpNo, E.EmpEngSurname, E.EmpEngOtherName, E.EmpAlias ";
            //string from = "from (select * from [" + db.dbclass.tableName + "] where EmpRequestStatus = '"
            //    + EEmpRequest.STATUS_USRSUBMIT.ToString() + "' or EmpRequestStatus = '"
            //    + EEmpRequest.STATUS_FSTAPP.ToString() + "' ) R LEFT JOIN " + EEmpPersonalInfo.db.dbclass.tableName + " E on R.EmpID = E.EmpID AND  R.EmpID in (Select P.EmpID From "
            //    + EEmpPositionInfo.db.dbclass.tableName + " P where P.EmpPosEffFr < '" + DateTime.Today.ToString("yyyy-MM-dd") + "' and ( P.EmpPosEffFr > '" + DateTime.Today.ToString("yyyy-MM-dd") + "' or P.EmpPosEffTo is Null ) and ( P.EmpFirstAuthorizationGp in ( Select A.AuthorizationGroupID From "
            //    + EAuthorizer.db.dbclass.tableName + " A where A.EmpID = " + CurID + " and R.EmpRequestStatus = '"
            //    + EEmpRequest.STATUS_USRSUBMIT.ToString() + "')) or ( P.EmpSecondAuthorizationGp in ( Select A.AuthorizationGroupID From "
            //    + EAuthorizer.db.dbclass.tableName + " A where A.EmpID = " + CurID + " and (R.EmpRequestStatus = '"
            //    + EEmpRequest.STATUS_FSTAPP.ToString() + "' or R.EmpRequestStatus = '"
            //    + EEmpRequest.STATUS_USRSUBMIT.ToString() + "'))))";

            // Start 0000105, KuangWei, 2014-10-21
            // Start 0000232, Miranda, 2015-07-02
            string select = "R.*, E.EmpNo, E.EmpEngSurname, E.EmpEngOtherName, E.EmpAlias, ISNULL ( L.LeaveCode , L2.LeaveCode ) as LeaveCode, ISNULL ( L.LeaveCodeDesc , L2.LeaveCodeDesc) as LeaveCodeDesc";
            // End 0000232, Miranda, 2015-07-02
            string from = "from " + db.dbclass.tableName + " R "
                          + " LEFT JOIN " + EEmpPersonalInfo.db.dbclass.tableName + " E on R.EmpID = E.EmpID "
                          + " Left Join " + EEmpPositionInfo.db.dbclass.tableName + " EP on EP.EmpID = E.EmpID "
                          + " and EP.EmpPosEffFr <= '" + DateTime.Today.ToString("yyyy-MM-dd") + "' AND (EP.EmpPosEffTO >= '" + DateTime.Today.ToString("yyyy-MM-dd") + "' or EP.EmpPosEffTo is Null )"
                          // Start 0000112, Miranda, 2015-01-11
                          // Start 0000232, Miranda, 2015-07-02
                          + " LEFT JOIN " + ERequestLeaveApplication.db.dbclass.tableName + " C on R.EmpRequestRecordID = C.RequestLeaveAppID and R.EmpRequestType = '" + EEmpRequest.TYPE_EELEAVEAPP + "'"
                          + " LEFT JOIN " + ERequestLeaveApplicationCancel.db.dbclass.tableName + " CC on R.EmpRequestRecordID = CC.RequestLeaveAppCancelID and R.EmpRequestType = '" + EEmpRequest.TYPE_EELEAVECANCEL + "'"
                          + " LEFT JOIN " + ELeaveApplication.db.dbclass.tableName + " LA on LA.LeaveAppID = CC.LeaveAppID"
                          // End 0000112, Miranda, 2015-01-11
                          + " LEFT JOIN " + ELeaveCode.db.dbclass.tableName + " L on C .RequestLeaveCodeID = L.LeaveCodeID "
                          + " LEFT JOIN " + ELeaveCode.db.dbclass.tableName + " L2 on LA.LeaveCodeID = L2.LeaveCodeID";
            // End 0000232, Miranda, 2015-07-02
            // End 0000105, KuangWei, 2014-10-21

            //DBFilter authorizerFilter = new DBFilter();
            //authorizerFilter.add(new Match("EmpID", CurID));

            //OR orFirstGrpStatusTerms = new OR();
            //orFirstGrpStatusTerms.add(new Match("R.EmpRequestStatus", EEmpRequest.STATUS_SUBMITTED));

            //DBFilter firstGrpFilter = new DBFilter();
            //firstGrpFilter.add(orFirstGrpStatusTerms);
            //firstGrpFilter.add(orAuthorizationGrpApplicationTerms);
            //firstGrpFilter.add(new IN("AuthorizationGroupID", "Select AuthorizationGroupID from " + EAuthorizer.db.dbclass.tableName, authorizerFilter));


            //OR orSecondGrpStatusTerms = new OR();
            //orSecondGrpStatusTerms.add(new Match("R.EmpRequestStatus", EEmpRequest.STATUS_SUBMITTED));
            //orSecondGrpStatusTerms.add(new Match("R.EmpRequestStatus", EEmpRequest.STATUS_ACCEPTED));

            //DBFilter secondGrpFilter = new DBFilter();
            //secondGrpFilter.add(orSecondGrpStatusTerms);
            //secondGrpFilter.add(orAuthorizationGrpApplicationTerms);
            //secondGrpFilter.add(new IN("AuthorizationGroupID", "Select AuthorizationGroupID from " + EAuthorizer.db.dbclass.tableName, authorizerFilter));

            //OR orAuthorizationGrpFilter = new OR();
            //orAuthorizationGrpFilter.add(new IN("EP.EmpFirstAuthorizationGp", "Select AuthorizationGroupID from " + EAuthorizationGroup.db.dbclass.tableName, firstGrpFilter));
            //orAuthorizationGrpFilter.add(new IN("EP.EmpSecondAuthorizationGp", "Select AuthorizationGroupID from " + EAuthorizationGroup.db.dbclass.tableName, secondGrpFilter));
            //filter.add(orAuthorizationGrpFilter);

            DataTable table = filter.loadData(dbConn, info, select, from);


            view = new DataView(table);

            ListFooter.Refresh();

            if (repeater != null)
            {
                repeater.DataSource = view;
                repeater.DataBind();
            }
            return(view);
        }
        else
        {
            return(null);
        }
    }
Пример #3
0
    private ArrayList GetRemoveMenuItemList(MenuItemCollection menuItemCollection)
    {
        HROne.ProductLicense productLicense         = WebUtils.productLicense(Session);
        EESSUser             essUser                = WebUtils.GetCurUser(Session);
        ArrayList            removeSubMenuItemArray = new ArrayList();

        foreach (MenuItem subMenuItem in menuItemCollection)
        {
            if (productLicense != null)
            {
                // ***** Start 2013/11/15, Ricky So, revise the show/hide menu routine
                // if (subMenuItem.Text.Equals("Leave Application", StringComparison.CurrentCultureIgnoreCase))
                if (subMenuItem.NavigateUrl.EndsWith("/ESS_EmpLeaveApplication.aspx", StringComparison.CurrentCultureIgnoreCase))
                {
                    // ***** End 2013/11/15, Ricky So, revise the show/hide menu routine
                    if (!(ESystemParameter.getParameter(dbConn, ESystemParameter.PARAM_CODE_ESS_FUNCTION_LEAVE_APPLICATION).Equals("N", StringComparison.CurrentCultureIgnoreCase) ? false : true))
                    {
                        removeSubMenuItemArray.Add(subMenuItem);
                    }
                }

                // ***** Start 2013/11/15, Ricky So, revise the show/hide menu routine
                // if (subMenuItem.Text.Equals("Request Status", StringComparison.CurrentCultureIgnoreCase))
                if (subMenuItem.NavigateUrl.EndsWith("/ESS_EmpRequestStatus.aspx", StringComparison.CurrentCultureIgnoreCase))
                {
                    // ***** End 2013/11/15, Ricky So, revise the show/hide menu routine
                    if (!(ESystemParameter.getParameter(dbConn, ESystemParameter.PARAM_CODE_ESS_FUNCTION_LEAVE_APPLICATION).Equals("N", StringComparison.CurrentCultureIgnoreCase) ? false : true)
                        //Start 0000060, Miranda, 2014-07-22
                        && !(ESystemParameter.getParameter(dbConn, ESystemParameter.PARAM_CODE_ESS_FUNCTION_OT_CLAIMS).Equals("N", StringComparison.CurrentCultureIgnoreCase) ? false : true)
                        //End 0000060, Miranda, 2014-07-22
                        && !(ESystemParameter.getParameter(dbConn, ESystemParameter.PARAM_CODE_ESS_FUNCTION_CHANGE_EE_INFO).Equals("N", StringComparison.CurrentCultureIgnoreCase) ? false : true)
                        )
                    {
                        removeSubMenuItemArray.Add(subMenuItem);
                    }
                }


                // ***** Start 2013/11/15, Ricky So, revise the show/hide menu routine
                // if (subMenuItem.Text.Equals("Application Approval", StringComparison.CurrentCultureIgnoreCase)
                //    || subMenuItem.NavigateUrl.EndsWith("/ESS_EmpSupervisorApproval.aspx", StringComparison.CurrentCultureIgnoreCase))
                if (subMenuItem.NavigateUrl.EndsWith("/ESS_EmpSupervisorApproval.aspx", StringComparison.CurrentCultureIgnoreCase))
                // ***** End 2013/11/15, Ricky So, revise the show/hide menu routine
                {
                    ESSAuthorizationProcess authorizationProcess = new ESSAuthorizationProcess(dbConn);
                    int groupCount = authorizationProcess.GetAuthorizerAuthorizationGroupList(user.EmpID).Count;
                    if (groupCount <= 0)
                    {
                        removeSubMenuItemArray.Add(subMenuItem);
                    }
                    else if (!(ESystemParameter.getParameter(dbConn, ESystemParameter.PARAM_CODE_ESS_FUNCTION_LEAVE_APPLICATION).Equals("N", StringComparison.CurrentCultureIgnoreCase) ? false : true)
                             //Start 0000060, Miranda, 2014-07-22
                             && !(ESystemParameter.getParameter(dbConn, ESystemParameter.PARAM_CODE_ESS_FUNCTION_OT_CLAIMS).Equals("N", StringComparison.CurrentCultureIgnoreCase) ? false : true)
                             //End 0000060, Miranda, 2014-07-22
                             && !(ESystemParameter.getParameter(dbConn, ESystemParameter.PARAM_CODE_ESS_FUNCTION_CHANGE_EE_INFO).Equals("N", StringComparison.CurrentCultureIgnoreCase) ? false : true)
                             )
                    {
                        removeSubMenuItemArray.Add(subMenuItem);
                    }
                }

                // ***** Start 2013/11/15, Ricky So, revise the show/hide menu routine
                // if (subMenuItem.Text.Equals("Leave Balance Enquiry", StringComparison.CurrentCultureIgnoreCase))
                if (subMenuItem.NavigateUrl.EndsWith("/ESS_EmpLeaveBalanceEnquiry.aspx", StringComparison.CurrentCultureIgnoreCase))
                {
                    // ***** End 2013/11/15, Ricky So, revise the show/hide menu routine
                    if (!(ESystemParameter.getParameter(dbConn, ESystemParameter.PARAM_CODE_ESS_FUNCTION_LEAVE_BALANCE_ENQUIRY).Equals("N", StringComparison.CurrentCultureIgnoreCase) ? false : true))
                    {
                        removeSubMenuItemArray.Add(subMenuItem);
                    }
                }



                // ***** Start 2013/11/15, Ricky So, revise the show/hide menu routine
                // if (subMenuItem.Text.Equals("Leave History Enquiry", StringComparison.CurrentCultureIgnoreCase))
                if (subMenuItem.NavigateUrl.EndsWith("/ESS_EmpLeaveHistoryEnquiry.aspx", StringComparison.CurrentCultureIgnoreCase))
                {
                    // ***** End 2013/11/15, Ricky So, revise the show/hide menu routine
                    if (!(ESystemParameter.getParameter(dbConn, ESystemParameter.PARAM_CODE_ESS_FUNCTION_LEAVE_HISTORY).Equals("N", StringComparison.CurrentCultureIgnoreCase) ? false : true))
                    {
                        removeSubMenuItemArray.Add(subMenuItem);
                    }
                }


                // ***** Start 2013/11/15, Ricky So, revise the show/hide menu routine
                // if (subMenuItem.Text.Equals("Leave Balance Report", StringComparison.CurrentCultureIgnoreCase))
                if (subMenuItem.NavigateUrl.EndsWith("/ESS_EmpLeaveBalanceReport.aspx", StringComparison.CurrentCultureIgnoreCase))
                {
                    // ***** End 2013/11/15, Ricky So, revise the show/hide menu routine
                    if (!(ESystemParameter.getParameter(dbConn, ESystemParameter.PARAM_CODE_ESS_FUNCTION_LEAVE_BALANCE_REPORT).Equals("N", StringComparison.CurrentCultureIgnoreCase) ? false : true))
                    {
                        removeSubMenuItemArray.Add(subMenuItem);
                    }
                    else
                    {
                        if (essUser != null)
                        {
                            ESSAuthorizationProcess authorization = new ESSAuthorizationProcess(dbConn);
                            int groupCount = authorization.GetAuthorizerAuthorizationGroupList(essUser.EmpID).Count;
                            if (groupCount <= 0)
                            {
                                removeSubMenuItemArray.Add(subMenuItem);
                            }
                        }
                    }
                }

                if (subMenuItem.NavigateUrl.EndsWith("/ESS_EmpLeaveApplicationList.aspx", StringComparison.CurrentCultureIgnoreCase))
                {
                    if (!(ESystemParameter.getParameter(dbConn, ESystemParameter.PARAM_CODE_ESS_FUNCTION_LEAVE_APPLICATION_LIST).Equals("N", StringComparison.CurrentCultureIgnoreCase) ? false : true))
                    {
                        removeSubMenuItemArray.Add(subMenuItem);
                    }
                }

                // ***** Start 2013/11/15, Ricky So, revise the show/hide menu routine
                // if (subMenuItem.Text.Equals("Payslip Printing", StringComparison.CurrentCultureIgnoreCase))
                if (subMenuItem.NavigateUrl.EndsWith("/ESS_EmpPayslipPrint.aspx", StringComparison.CurrentCultureIgnoreCase))
                {
                    // ***** End 2013/11/15, Ricky So, revise the show/hide menu routine
                    if (!(ESystemParameter.getParameter(dbConn, ESystemParameter.PARAM_CODE_ESS_FUNCTION_PRINT_PAYSLIP).Equals("N", StringComparison.CurrentCultureIgnoreCase) ? false : true))
                    {
                        removeSubMenuItemArray.Add(subMenuItem);
                    }
                }


                // ***** Start 2013/11/15, Ricky So, revise the show/hide menu routine
                // if (subMenuItem.Text.Equals("Tax Report Printing", StringComparison.CurrentCultureIgnoreCase))
                if (subMenuItem.NavigateUrl.EndsWith("/ESS_EmpTaxReport.aspx", StringComparison.CurrentCultureIgnoreCase))
                {
                    // ***** End 2013/11/15, Ricky So, revise the show/hide menu routine
                    if (!(ESystemParameter.getParameter(dbConn, ESystemParameter.PARAM_CODE_ESS_FUNCTION_PRINT_TAXREPORT).Equals("N", StringComparison.CurrentCultureIgnoreCase) ? false : true))
                    {
                        removeSubMenuItemArray.Add(subMenuItem);
                    }
                }

                // ***** Start 2013/11/15, Ricky So, revise the show/hide menu routine
                // if (subMenuItem.Text.Equals("Roster Table", StringComparison.CurrentCultureIgnoreCase))
                if (subMenuItem.NavigateUrl.EndsWith("/ESS_RosterTable_View.aspx", StringComparison.CurrentCultureIgnoreCase))
                {
                    // ***** End 2013/11/15, Ricky So, revise the show/hide menu routine
                    if (!productLicense.IsAttendance || !(ESystemParameter.getParameter(dbConn, ESystemParameter.PARAM_CODE_ESS_FUNCTION_ROSTER_TABLE).Equals("N", StringComparison.CurrentCultureIgnoreCase) ? false : true))
                    {
                        removeSubMenuItemArray.Add(subMenuItem);
                    }
                }

                if (subMenuItem.NavigateUrl.EndsWith("/ESS_EmpOverallPaymentSummary.aspx", StringComparison.CurrentCultureIgnoreCase))
                {
                    if (!(ESystemParameter.getParameter(dbConn, ESystemParameter.PARAM_CODE_ESS_FUNCTION_OVERALL_PAYMENT_SUMMARY).Equals("N", StringComparison.CurrentCultureIgnoreCase) ? false : true))
                    {
                        removeSubMenuItemArray.Add(subMenuItem);
                    }
                }

                // Start 0000057, KuangWei, 2014-07-09
                if (subMenuItem.NavigateUrl.EndsWith("/ESS_MonthlyAttendanceReport.aspx", StringComparison.CurrentCultureIgnoreCase))
                {
                    // Start 000118, Ricky So, 2014/12/24
                    //ESSAuthorizationProcess authorizationProcess = new ESSAuthorizationProcess(dbConn);
                    //int groupCount = authorizationProcess.GetAuthorizerAuthorizationGroupList(user.EmpID).Count;
                    //if (groupCount <= 0)
                    //    removeSubMenuItemArray.Add(subMenuItem);
                    //else
                    // End 000118, Ricky So, 2014/12/24
                    if ((!ESystemParameter.getParameter(dbConn, ESystemParameter.PARAM_CODE_ENABLE_MONTHLY_ATTENDANCE_REPORT).Equals("Y", StringComparison.CurrentCultureIgnoreCase)) ||
                        (!ESystemParameter.getParameter(dbConn, ESystemParameter.PARAM_CODE_ESS_FUNCTION_MONTHLY_ATTENDANCE_REPORT).Equals("Y", StringComparison.CurrentCultureIgnoreCase)))
                    {
                        removeSubMenuItemArray.Add(subMenuItem);
                    }
                }
                // End 0000057, KuangWei, 2014-07-09


                if (subMenuItem.NavigateUrl.EndsWith("/ESS_TimeCardRecord.aspx", StringComparison.CurrentCultureIgnoreCase))
                {
                    if ((!ESystemParameter.getParameter(dbConn, ESystemParameter.PARAM_CODE_ENABLE_TIMECARD_RECORD).Equals("Y", StringComparison.CurrentCultureIgnoreCase)) ||
                        (!ESystemParameter.getParameter(dbConn, ESystemParameter.PARAM_CODE_ESS_FUNCTION_TIMECARD_RECORD).Equals("Y", StringComparison.CurrentCultureIgnoreCase)))
                    {
                        removeSubMenuItemArray.Add(subMenuItem);
                    }
                }

                if (subMenuItem.NavigateUrl.EndsWith("/ESS_Attendance_TimeEntry_List.aspx", StringComparison.CurrentCultureIgnoreCase))
                {
                    if ((!ESystemParameter.getParameter(dbConn, ESystemParameter.PARAM_CODE_ENABLE_ATTENDANCE_TIMEENTRY_LIST).Equals("Y", StringComparison.CurrentCultureIgnoreCase)) ||
                        (!ESystemParameter.getParameter(dbConn, ESystemParameter.PARAM_CODE_ESS_FUNCTION_ATTENDANCE_TIMEENTRY_LIST).Equals("Y", StringComparison.CurrentCultureIgnoreCase)))
                    {
                        removeSubMenuItemArray.Add(subMenuItem);
                    }
                }

                // Start 0000076, Miranda, 2014-08-21
                if (subMenuItem.NavigateUrl.EndsWith("/ESS_AttendanceTimeEntryReport.aspx", StringComparison.CurrentCultureIgnoreCase))
                {
                    if ((!ESystemParameter.getParameter(dbConn, ESystemParameter.PARAM_CODE_ESS_FUNCTION_ATTENDANCE_TIMEENTRY_REPORT).Equals("Y", StringComparison.CurrentCultureIgnoreCase)))
                    {
                        removeSubMenuItemArray.Add(subMenuItem);
                    }
                }
                // End 0000076, Miranda, 2014-08-21

                removeSubMenuItemArray.AddRange(GetRemoveMenuItemList(subMenuItem.ChildItems));

                // ***** Start 2013/11/15, Ricky So, revise the show/hide menu routine
                // if (subMenuItem.Text.Equals("Approval History", StringComparison.CurrentCultureIgnoreCase))
                if (subMenuItem.NavigateUrl.EndsWith("/ESS_EmpSupervisorApprovalHistory.aspx", StringComparison.CurrentCultureIgnoreCase))
                {
                    // ***** End 2013/11/15, Ricky So, revise the show/hide menu routine
                    // ***** Start 0000208, Miranda, 2015-06-12
                    //{
                    //    DBFilter approvalHistoryFilter = new DBFilter();
                    //    approvalHistoryFilter.add(new Match("EmpRequestApprovalHistoryActionByEmpID", user.EmpID));
                    //    if (EEmpRequestApprovalHistory.db.count(dbConn,approvalHistoryFilter)<=0)
                    //        removeSubMenuItemArray.Add(subMenuItem);
                    //}
                    // ***** End 0000208, Miranda, 2015-06-12
                    // Start 0000060, Miranda, 2014-07-15
                    //if (subMenuItem.NavigateUrl.EndsWith("/ESS_EmpOTClaims.aspx", StringComparison.CurrentCultureIgnoreCase))
                    //    if (!(ESystemParameter.getParameter(dbConn, ESystemParameter.PARAM_CODE_ESS_ENABLE_OTCLAIM).Equals("N", StringComparison.CurrentCultureIgnoreCase) ? false : true))
                    //        removeSubMenuItemArray.Add(subMenuItem);
                    // End 0000060, Miranda, 2014-07-15
                    // Start 0000060, Miranda, 2014-07-22
                    if (subMenuItem.NavigateUrl.EndsWith("/ESS_EmpOTClaims.aspx", StringComparison.CurrentCultureIgnoreCase))
                    {
                        if ((!ESystemParameter.getParameter(dbConn, ESystemParameter.PARAM_CODE_ENABLE_OTCLAIM).Equals("Y", StringComparison.CurrentCultureIgnoreCase)) ||
                            (!ESystemParameter.getParameter(dbConn, ESystemParameter.PARAM_CODE_ESS_FUNCTION_OT_CLAIMS).Equals("Y", StringComparison.CurrentCultureIgnoreCase)))
                        {
                            removeSubMenuItemArray.Add(subMenuItem);
                        }
                    }
                }
                if (subMenuItem.NavigateUrl.EndsWith("/ESS_EmpOTClaimsHistory.aspx", StringComparison.CurrentCultureIgnoreCase))
                {
                    if ((!ESystemParameter.getParameter(dbConn, ESystemParameter.PARAM_CODE_ENABLE_OTCLAIM).Equals("Y", StringComparison.CurrentCultureIgnoreCase)) ||
                        (!ESystemParameter.getParameter(dbConn, ESystemParameter.PARAM_CODE_ESS_FUNCTION_OT_CLAIMS_HISTORY).Equals("Y", StringComparison.CurrentCultureIgnoreCase)))
                    {
                        removeSubMenuItemArray.Add(subMenuItem);
                    }
                }
                // End 0000060, Miranda, 2014-07-22
                // Start 0000112, Miranda, 2014-12-10
                if (subMenuItem.NavigateUrl.EndsWith("/ESS_EmpLateWaive.aspx", StringComparison.CurrentCultureIgnoreCase))
                {
                    if ((!ESystemParameter.getParameter(dbConn, ESystemParameter.PARAM_CODE_ENABLE_LATE_WAIVE).Equals("Y", StringComparison.CurrentCultureIgnoreCase)) ||
                        (!ESystemParameter.getParameter(dbConn, ESystemParameter.PARAM_CODE_ESS_FUNCTION_LATE_WAIVE).Equals("Y", StringComparison.CurrentCultureIgnoreCase)))
                    {
                        removeSubMenuItemArray.Add(subMenuItem);
                    }
                }
                if (subMenuItem.NavigateUrl.EndsWith("/ESS_EmpLateWaiveHistory.aspx", StringComparison.CurrentCultureIgnoreCase))
                {
                    if ((!ESystemParameter.getParameter(dbConn, ESystemParameter.PARAM_CODE_ENABLE_LATE_WAIVE).Equals("Y", StringComparison.CurrentCultureIgnoreCase)) ||
                        (!ESystemParameter.getParameter(dbConn, ESystemParameter.PARAM_CODE_ESS_FUNCTION_LATE_WAIVE_HISTORY).Equals("Y", StringComparison.CurrentCultureIgnoreCase)))
                    {
                        removeSubMenuItemArray.Add(subMenuItem);
                    }
                }
                // End 0000112, Miranda, 2014-12-10
            }
            else
            {
                removeSubMenuItemArray.Add(subMenuItem);
            }
        }
        return(removeSubMenuItemArray);
    }
    protected void btnGenerate_Click(object sender, EventArgs e)
    {
        PageErrors errors = PageErrors.getErrors(db, Page.Master);

        errors.clear();

        DateTime dtLeaveAppDateFr = new DateTime();
        DateTime dtLeaveAppDateTo = new DateTime();

        if (!DateTime.TryParse(periodFrom.Value, out dtLeaveAppDateFr))
        {
            dtLeaveAppDateFr = new DateTime(1940, 1, 1);
        }


        if (!DateTime.TryParse(periodTo.Value, out dtLeaveAppDateTo))
        {
            dtLeaveAppDateTo = AppUtils.ServerDateTime().Date;
        }



        // Start 0000182, Ricky So, 2015-04-06
        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", dtLeaveAppDateTo, dtLeaveAppDateTo);
            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", "<", dtLeaveAppDateTo));
            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);
            }
        }

        EmpIDList.Add(CurID);

        HROne.Reports.Employee.LeaveApplicationProcess rpt = new HROne.Reports.Employee.LeaveApplicationProcess(dbConn, EmpIDList, dtLeaveAppDateFr, dtLeaveAppDateTo);
        string reportFileName = WebUtils.GetLocalizedReportFile(Server.MapPath("~/LeaveApplicationProcessList.rpt"));

        WebUtils.ReportExport(Response, rpt, reportFileName, "PDF", "LeaveApplicationList");

        //ArrayList values = new ArrayList();

        //values.Add(CurID);

        //if (errors.isEmpty())
        //{
        //    HROne.Reports.Employee.LeaveApplicationProcess rpt = new HROne.Reports.Employee.LeaveApplicationProcess(dbConn, values, dtLeaveAppDateFr, dtLeaveAppDateTo);
        //    string reportFileName = WebUtils.GetLocalizedReportFile(Server.MapPath("~/LeaveApplicationProcessList.rpt"));
        //    //WebUtils.ReportExport(dbConn, user, errors, lblReportHeader.Text, Response, rpt, reportFileName, ((Button)sender).CommandArgument, "LeaveApplicationList", true);
        //    WebUtils.ReportExport(Response, rpt, reportFileName, "PDF", "LeaveApplicationList");
        //}

        // End 0000182, Ricky So, 2015-04-06
    }
Пример #5
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");
        }
    }