예제 #1
0
    protected void ibnDelEstData_Click(object sender, ImageClickEventArgs e)
    {
        //int cnt = UltraWebGrid1.Rows.Count;

        //string dept_ref_id_list = string.Empty;

        //for (int i = 0; i < cnt; i++)
        //{
        //    UltraGridRow row = UltraWebGrid1.Rows[i];

        //    TemplatedColumn selchk = (TemplatedColumn)row.Band.Columns.FromKey("selchk");
        //    CheckBox cBox = (CheckBox)((CellItem)selchk.CellItems[row.BandIndex]).FindControl("cBox");

        //    if (cBox.Checked || !cBox.Enabled)
        //    {
        //        dept_ref_id_list += "," + DataTypeUtility.GetValue(row.Cells.FromKey("DEPT_REF_ID").Value);
        //    }
        //}

        //if (dept_ref_id_list.Length > 0)
        //{
        //    dept_ref_id_list = dept_ref_id_list.Remove(0, 1);
        //}
        //else
        //{
        //    dept_ref_id_list = "-1";
        //}

        //DataTable dtEmp = DataTypeUtility.FilterSortDataTable(DT_ESTTARGETMAP, string.Format(" TGT_DEPT_ID  IN ({0}) AND DIRECTION_TYPE = '{1}' ", dept_ref_id_list, ConDIRECTION_TYPE));


        //전체 확정 취소
        DataTable dtEmp = DataTypeUtility.FilterSortDataTable(DT_ESTTARGETMAP, string.Format(" DIRECTION_TYPE = '{0}' ", ConDIRECTION_TYPE));

        DataTable dtDel = DataTypeUtility.GetGroupByDataTable(dtEmp.Copy(), new string[] { "TGT_EMP_ID" });

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

        string okMsg = bizEstData.RemoveEstData(dtDel
                                                , COMP_ID
                                                , EST_ID
                                                , ESTTERM_REF_ID
                                                , ESTTERM_SUB_ID
                                                , ConESTTERM_STEP_ID
                                                , ConDIRECTION_TYPE);

        if (okMsg.Length == 0)
        {
            ltrScript.Text = JSHelper.GetAlertScript("정상 처리 되었습니다.", false);

            DoBinding_Dept();
            DEPT_REF_ID = -1;
        }
        else
        {
            ltrScript.Text = JSHelper.GetAlertScript(okMsg);
        }
    }
예제 #2
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);
        }
    }