/* 다면평가 평가 거부 프로세스 * 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); } }
//평가 거부 버튼 보이기 유무, 다면평가 평가자 수 조사 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); }