Esempio n. 1
0
    /* 다면평가 평가 거부 프로세스
     * 1. 현재 피평가자 기준의 평가자 리스트가 평가 최소 인원(middle) 보다 큰가?
     * 2. 만약 1번을 만족하면 평가자 삭제만 한다.
     * 3. 그렇지 않으면 풀에 데이터가 잇는지를 판단한다.
     * 4. 풀에 데이터가 있다면 평가 거부와 동시에 풀에서 데이터를 랜덤으로 가져온다.
     *
     * */

    protected void iBtnReject_Click(object sender, ImageClickEventArgs e)
    {
        MicroBSC.Integration.MUL.Biz.Biz_Mul_Basic_Info bizMulBasicInfo = new MicroBSC.Integration.MUL.Biz.Biz_Mul_Basic_Info();

        DataTable dtMulBasicInfo = bizMulBasicInfo.Get_Mul_Basic_Info(COMP_ID, EST_ID, ESTTERM_REF_ID, ESTTERM_SUB_ID);

        int max    = 0;
        int middle = 0;
        int min    = 0;

        if (dtMulBasicInfo.Rows.Count > 0)
        {
            max    = DataTypeUtility.GetToInt32(dtMulBasicInfo.Rows[0]["MAX_EST_EMP_CNT"]);
            middle = DataTypeUtility.GetToInt32(dtMulBasicInfo.Rows[0]["MID_EST_EMP_CNT"]);
            min    = DataTypeUtility.GetToInt32(dtMulBasicInfo.Rows[0]["MIN_EST_EMP_CNT"]);
        }

        MicroBSC.Integration.EST.Biz.Biz_Est_Data bizEstData = new MicroBSC.Integration.EST.Biz.Biz_Est_Data();

        // 현재 평가 갯수(피평가자 기준)
        DataTable dtEstData = bizEstData.GetEstData(COMP_ID
                                                    , EST_ID
                                                    , ESTTERM_REF_ID
                                                    , ESTTERM_SUB_ID
                                                    , ESTTERM_STEP_ID
                                                    , ConstDIRECTION_TYPE
                                                    , 0
                                                    , TGT_EMP_ID);


        MicroBSC.Integration.MUL.Biz.Biz_Mul_Est_Target_Pool bizEstTargetPool = new MicroBSC.Integration.MUL.Biz.Biz_Mul_Est_Target_Pool();

        DataTable dtEstTargetPool = bizEstTargetPool.GetMulEstTargetPool_DB(COMP_ID
                                                                            , EST_ID
                                                                            , ESTTERM_REF_ID
                                                                            , ESTTERM_SUB_ID
                                                                            , TGT_EMP_ID
                                                                            , "N");

        string msg = string.Empty;

        //1.
        if (dtEstData.Rows.Count > middle)
        {
            msg = bizEstData.RemoveEstData(COMP_ID
                                           , EST_ID
                                           , ESTTERM_REF_ID
                                           , ESTTERM_SUB_ID
                                           , ESTTERM_STEP_ID
                                           , EST_EMP_ID
                                           , TGT_EMP_ID
                                           , ConstDIRECTION_TYPE);
        }
        else //2.
        {
            //3.
            if (dtEstTargetPool.Rows.Count <= 0)
            {
                ltrScript.Text = JSHelper.GetAlertScript("다면평가을 위한 평가자 피평가자 풀에 데이터가 없습니다.", false);
                return;
            }

            //4.
            if (dtEstData.Rows.Count <= min)
            {
                ltrScript.Text = JSHelper.GetAlertScript(string.Format("평가 최소 인원이 {0}명 되지 못하여 평가거부 할 수 없습니다. 관리자에게 문의하세요 ", min), false);
                return;
            }
            else
            {
                Random rnd    = new Random();
                int    rndCnt = rnd.Next(0, dtEstTargetPool.Rows.Count - 1);

                int rnd_est_dept_id = DataTypeUtility.GetToInt32(dtEstTargetPool.Rows[rndCnt]["DEPT_REF_ID"]); // 평가자 부서
                int rnd_est_emp_id  = DataTypeUtility.GetToInt32(dtEstTargetPool.Rows[rndCnt]["EST_EMP_ID"]);  // 평가자

                MicroBSC.Integration.EST.Biz.Biz_Est_Emp_Est_Target_Map bizEstEmpTargetMap = new MicroBSC.Integration.EST.Biz.Biz_Est_Emp_Est_Target_Map();

                DataTable dtEstEmpTargetMap = bizEstEmpTargetMap.GetEstEmpEstTargetMap_DB(COMP_ID
                                                                                          , ESTTERM_REF_ID
                                                                                          , ESTTERM_SUB_ID
                                                                                          , ESTTERM_STEP_ID
                                                                                          , EST_ID
                                                                                          , TGT_EMP_ID);

                msg = bizEstData.RemoveEstDataWithRandomEstEmp(dtEstEmpTargetMap
                                                               , COMP_ID
                                                               , EST_ID
                                                               , ESTTERM_REF_ID
                                                               , ESTTERM_SUB_ID
                                                               , ESTTERM_STEP_ID
                                                               , EST_DEPT_ID
                                                               , EST_EMP_ID
                                                               , TGT_DEPT_ID
                                                               , TGT_EMP_ID
                                                               , rnd_est_dept_id
                                                               , rnd_est_emp_id
                                                               , ConstDIRECTION_TYPE
                                                               , DateTime.Now
                                                               , this.gUserInfo.Emp_Ref_ID);
            }
        }

        if (msg.Equals(""))
        {
            ltrScript.Text = JSHelper.GetAlertOpenerControlCallBackScript("정상적으로 처리 되었습니다.", "lbnReload", true);
        }
        else
        {
            ltrScript.Text = JSHelper.GetAlertScript(msg, false);
        }
    }
Esempio n. 2
0
    //평가 거부 버튼 보이기 유무, 다면평가 평가자 수 조사
    protected bool isPossible_Reject()
    {
        MicroBSC.Integration.MUL.Biz.Biz_Mul_Basic_Info bizMulBasicInfo = new MicroBSC.Integration.MUL.Biz.Biz_Mul_Basic_Info();

        DataTable dtMulBasicInfo = bizMulBasicInfo.Get_Mul_Basic_Info(COMP_ID, EST_ID, ESTTERM_REF_ID, ESTTERM_SUB_ID);

        int max    = 0;
        int middle = 0;
        int min    = 0;

        if (dtMulBasicInfo.Rows.Count > 0)
        {
            max    = DataTypeUtility.GetToInt32(dtMulBasicInfo.Rows[0]["MAX_EST_EMP_CNT"]);
            middle = DataTypeUtility.GetToInt32(dtMulBasicInfo.Rows[0]["MID_EST_EMP_CNT"]);
            min    = DataTypeUtility.GetToInt32(dtMulBasicInfo.Rows[0]["MIN_EST_EMP_CNT"]);
        }

        MicroBSC.Integration.EST.Biz.Biz_Est_Data bizEstData = new MicroBSC.Integration.EST.Biz.Biz_Est_Data();

        // 현재 평가 갯수(피평가자 기준)
        DataTable dtEstData = bizEstData.GetEstData(COMP_ID
                                                    , EST_ID
                                                    , ESTTERM_REF_ID
                                                    , ESTTERM_SUB_ID
                                                    , ESTTERM_STEP_ID
                                                    , ConstDIRECTION_TYPE
                                                    , 0
                                                    , TGT_EMP_ID);


        MicroBSC.Integration.MUL.Biz.Biz_Mul_Est_Target_Pool bizEstTargetPool = new MicroBSC.Integration.MUL.Biz.Biz_Mul_Est_Target_Pool();

        DataTable dtEstTargetPool = bizEstTargetPool.GetMulEstTargetPool_DB(COMP_ID
                                                                            , EST_ID
                                                                            , ESTTERM_REF_ID
                                                                            , ESTTERM_SUB_ID
                                                                            , TGT_EMP_ID
                                                                            , "N");

        string msg = string.Empty;

        //1.
        bool result = false;

        if (dtEstData.Rows.Count > middle)
        {
            result = true;
        }
        else //2.
        {
            //3.
            if (dtEstTargetPool.Rows.Count <= 0)
            {
                //ltrScript.Text = JSHelper.GetAlertScript("다면평가을 위한 평가자 피평가자 풀에 데이터가 없습니다.", false);
                result = false;
            }

            //4.
            if (dtEstData.Rows.Count <= min)
            {
                //ltrScript.Text = JSHelper.GetAlertScript(string.Format("평가 최소 인원이 {0}명 되지 못하여 평가거부 할 수 없습니다. 관리자에게 문의하세요 ", min), false);
                result = false;
            }
            else
            {
                result = true;
            }
        }

        return(result);
    }