private void DoBinding() { if (ddlDraftTerm.Items.Count < 1) { ltrScript.Text = JSHelper.GetAlertScript("등록된 평가기간이 없습니다."); return; } MicroBSC.BSC.Biz.Biz_Bsc_Kpi_Info objBSC = new MicroBSC.BSC.Biz.Biz_Bsc_Kpi_Info(); DataSet ds = objBSC.GetKpiListForBatchDraft(DataTypeUtility.GetToInt32(PageUtility.GetIntByValueDropDownList(ddlDraftTerm)) , ddlDraftResultType.SelectedValue , PageUtility.GetByValueDropDownList(ddlDraftKpiType) , "Y" , gUserInfo.Emp_Ref_ID , ""); ugrdDraft.Clear(); ugrdDraft.DataSource = ds; ugrdDraft.DataBind(); }
/// <summary> /// 기안, 재기안, 수정기안 /// </summary> public void SetDraft() { string KPI_REF_ID = Request["KPI_REF_ID"].ToString(); string ymd = GetRequest("YMD", ""); Biz_Com_Approval_Info objApp = new Biz_Com_Approval_Info(); bool blnRtn = false; //결재완결처리 결재선이 하나인경우 완결처리 string sAppStatus = (ugrdAppLine.Rows.Count == 1) ? Biz_Type.app_status_complete : Biz_Type.app_status_draft; //기안 if (this.IDraft_Status == Biz_Type.app_draft_first) //최초기안 { if (GetRequest("KPI_REF_ID", "").Split(',').Length < 1) { ltrScript.Text = JSHelper.GetAlertScript("결재처리할 KPI코드를 확인하세요!"); return; } IDbConnection conn = MicroBSC.Data.DbAgentHelper.CreateDbConnection(); conn.Open(); IDbTransaction trx = conn.BeginTransaction(); string strTermid = GetRequest("ESTTERM_REF_ID"); //현재 시점에 결재여부 재확인 MicroBSC.BSC.Biz.Biz_Bsc_Kpi_Info objkpi = new MicroBSC.BSC.Biz.Biz_Bsc_Kpi_Info(); DataSet dsKPI = new DataSet(); if (this.IBiz_Type == Biz_Type.biz_type_kpi_docbatch) { dsKPI = objkpi.GetKpiListForBatchDraft(DataTypeUtility.GetToInt32(strTermid) , "", "", "Y", gUserInfo.Emp_Ref_ID, GetRequest("KPI_REF_ID")); } else if (this.IBiz_Type == Biz_Type.biz_type_kpi_rstbatch) { dsKPI = objkpi.GetKpiResultListForBatchDraft(DataTypeUtility.GetToInt32(strTermid) , ymd, "", "", "Y", gUserInfo.Emp_Ref_ID, GetRequest("KPI_REF_ID")); } else if (this.IBiz_Type == Biz_Type.biz_type_target_resultbatch) { dsKPI = objkpi.GetKpiResultListForBatchDraft(DataTypeUtility.GetToInt32(strTermid) , ymd, "", "", "N", gUserInfo.Emp_Ref_ID, GetRequest("KPI_REF_ID")); } if (dsKPI.Tables[0].Rows.Count > 0) { if (dsKPI.Tables[0].Rows.Count != KPI_REF_ID.Split(',').Length) { trx.Rollback(); conn.Close(); conn.Dispose(); this.IApp_Ref_Id = 0; this.IVersion_No = 0; ltrScript.Text = JSHelper.GetAlertScript("결재대상 KPI상태를 확인하세요!", true); return; } if (dsKPI.Tables[0].Select("APP_STATUS NOT IN('NFT', 'MFT', 'AFT', 'RFT')").Length > 0) { trx.Rollback(); conn.Close(); conn.Dispose(); this.IApp_Ref_Id = 0; this.IVersion_No = 0; ltrScript.Text = JSHelper.GetAlertScript("결재대상 KPI상태를 확인하세요!", true); return; } } else { trx.Rollback(); conn.Close(); conn.Dispose(); this.IApp_Ref_Id = 0; this.IVersion_No = 0; ltrScript.Text = JSHelper.GetAlertScript("결재대상 KPI상태를 확인하세요!", true); return; } foreach (string strKpiRefId in KPI_REF_ID.Split(',')) { blnRtn = false; try { NameValueCollection nvc = new NameValueCollection(); nvc.Add("ESTTERM_REF_ID", strTermid); nvc.Add("KPI_REF_ID", strKpiRefId); nvc.Add("YMD", ymd); string strTitle = ""; if (this.IBiz_Type == Biz_Type.biz_type_kpi_docbatch) { blnRtn = objApp.GetOriDocTitle(Biz_Type.biz_type_kpi_doc, nvc, out strTitle); } else if (this.IBiz_Type == Biz_Type.biz_type_kpi_rstbatch) { blnRtn = objApp.GetOriDocTitle(Biz_Type.biz_type_kpi_rst, nvc, out strTitle); } else if (this.IBiz_Type == Biz_Type.biz_type_target_resultbatch) { blnRtn = objApp.GetOriDocTitle(Biz_Type.biz_type_target_result, nvc, out strTitle); } if (blnRtn) { txtTitle.Text = strTitle; } else { trx.Rollback(); conn.Close(); conn.Dispose(); this.IApp_Ref_Id = 0; this.IVersion_No = 0; ltrScript.Text = JSHelper.GetAlertScript("결재처리 중 결재원문을 알수 없습니다.", true); return; } string queryURL = string.Empty; string strFullPath = ""; string strPath = ""; string strParam = string.Empty; if (this.IBiz_Type == Biz_Type.biz_type_kpi_docbatch) { strParam = "ESTTERM_REF_ID=" + strTermid + "&KPI_REF_ID=" + strKpiRefId + "&BIZ_TYPE=" + Biz_Type.biz_type_kpi_doc + "&APP_REF_ID=0&DRAFT_EMP_ID=" + gUserInfo.Emp_Ref_ID.ToString(); strPath = Biz_Com_Approval_Info.GetDraftPagePath(Biz_Type.biz_type_kpi_doc); } else if (this.IBiz_Type == Biz_Type.biz_type_kpi_rstbatch) { strParam = "ESTTERM_REF_ID=" + strTermid + "&KPI_REF_ID=" + strKpiRefId + "&YMD=" + ymd + "&BIZ_TYPE=" + Biz_Type.biz_type_kpi_rst + "&APP_REF_ID=0&DRAFT_EMP_ID=" + gUserInfo.Emp_Ref_ID.ToString(); strPath = Biz_Com_Approval_Info.GetDraftPagePath(Biz_Type.biz_type_kpi_rst); } else if (this.IBiz_Type == Biz_Type.biz_type_target_resultbatch) { strParam = "ESTTERM_REF_ID=" + strTermid + "&KPI_REF_ID=" + strKpiRefId + "&YMD=" + ymd + "&BIZ_TYPE=" + Biz_Type.biz_type_target_result + "&APP_REF_ID=0&DRAFT_EMP_ID=" + gUserInfo.Emp_Ref_ID.ToString(); strPath = Biz_Com_Approval_Info.GetDraftPagePath(Biz_Type.biz_type_kpi_rst); } string strVPath = Request.ApplicationPath; string strSHost = Request.Url.Host; string strSPort = Request.Url.Port.ToString(); string strProto = Request.Url.Scheme; strVPath = (strVPath == "/") ? "" : strVPath; strFullPath = strProto + "://" + strSHost + ":" + strSPort + strVPath + strPath + "?" + strParam; string strHtml = Server.HtmlDecode(Biz_Com_Approval_Info.GetHtmlSource(strFullPath)); string strPos = "{^0^}"; int iSPos = strHtml.IndexOf(strPos) + strPos.Length; int iEPos = strHtml.LastIndexOf(strPos); divArea_M.InnerHtml = strHtml.Substring(iSPos, iEPos - iSPos); NameValueCollection nvc2 = new NameValueCollection(); nvc2.Add("ESTTERM_REF_ID", strTermid); nvc2.Add("KPI_REF_ID", strKpiRefId); if (this.IBiz_Type == Biz_Type.biz_type_kpi_docbatch) { nvc2.Add("BIZ_TYPE", Biz_Type.biz_type_kpi_doc); } else if (this.IBiz_Type == Biz_Type.biz_type_kpi_rstbatch) { nvc2.Add("BIZ_TYPE", Biz_Type.biz_type_kpi_rst); nvc2.Add("YMD", ymd); } else if (this.IBiz_Type == Biz_Type.biz_type_target_resultbatch) { nvc2.Add("BIZ_TYPE", Biz_Type.biz_type_target_result); nvc2.Add("YMD", ymd); } nvc2.Add("APP_REF_ID", "0"); nvc2.Add("DRAFT_EMP_ID", gUserInfo.Emp_Ref_ID.ToString()); if (this.IBiz_Type == Biz_Type.biz_type_kpi_docbatch) { blnRtn = objApp.TxrDraftBatch(conn, trx, Server.HtmlEncode(divArea_M.InnerHtml) , txtTitle.Text , Biz_Type.biz_type_kpi_doc , sAppStatus , Biz_Type.app_draft_first , "" , gUserInfo.Emp_Ref_ID , this.GetAPPLine(), nvc2); } else if (this.IBiz_Type == Biz_Type.biz_type_kpi_rstbatch) { blnRtn = objApp.TxrDraftBatch(conn, trx, Server.HtmlEncode(divArea_M.InnerHtml) , txtTitle.Text , Biz_Type.biz_type_kpi_rst , sAppStatus , Biz_Type.app_draft_first , "" , gUserInfo.Emp_Ref_ID , this.GetAPPLine(), nvc2); } else if (this.IBiz_Type == Biz_Type.biz_type_target_resultbatch) { blnRtn = objApp.TxrDraftBatch(conn, trx, Server.HtmlEncode(divArea_M.InnerHtml) , txtTitle.Text , Biz_Type.biz_type_target_result , sAppStatus , Biz_Type.app_draft_first , "" , gUserInfo.Emp_Ref_ID , this.GetAPPLine(), nvc2); } if (!blnRtn) { trx.Rollback(); conn.Close(); conn.Dispose(); this.IApp_Ref_Id = 0; this.IVersion_No = 0; ltrScript.Text = JSHelper.GetAlertScript("결재 일괄처리 중 오류가 발생하였습니다."); ltrScript.Text = JSHelper.GetAlertOpenerControlCallBackScript(objApp.Transaction_Message, this.IAPP_CCB, true); return; } this.IApp_Ref_Id = objApp.IApp_Ref_Id; this.IVersion_No = objApp.IVersion_No; if (this.IHISTORY_YN == "Y") { DoInsertUpdateReason(); } } catch { trx.Rollback(); conn.Close(); conn.Dispose(); this.IApp_Ref_Id = 0; this.IVersion_No = 0; ltrScript.Text = JSHelper.GetAlertScript("결재 일괄처리 중 오류가 발생하였습니다."); ltrScript.Text = JSHelper.GetAlertOpenerControlCallBackScript(objApp.Transaction_Message, this.IAPP_CCB, true); return; } } trx.Commit(); conn.Close(); conn.Dispose(); try { bool bRtn = this.SendMailBatch(false); } catch { } ltrScript.Text = JSHelper.GetAlertOpenerControlCallBackScript(objApp.Transaction_Message, this.IAPP_CCB, true); } else { ltrScript.Text = JSHelper.GetAlertScript("결재형식이 올바르지 않습니다!"); return; } }
public bool SendMailBatch(bool isReturn) { if (PageUtility.GetAppConfig("Mail.UseDraftMailYN") == "N") { return(true); } string sC_EMP_MAIL = ""; string sP_EMP_MAIL = ""; string sN_EMP_MAIL = ""; string sFile = "Mail_Draft.htm"; EmpInfos objEmp = new EmpInfos(gUserInfo.Emp_Ref_ID); Biz_Com_Approval_Prc objPrc = new Biz_Com_Approval_Prc(); bool bRtn = objPrc.GetSendMailUser(this.IApp_Ref_Id, this.IVersion_No, gUserInfo.Emp_Ref_ID, out sC_EMP_MAIL, out sP_EMP_MAIL, out sN_EMP_MAIL); if (!bRtn) { return(false); } if (isReturn && (!PageUtility.CheckMailAddress(sC_EMP_MAIL) || !PageUtility.CheckMailAddress(sN_EMP_MAIL))) { return(false); } if (!isReturn && (!PageUtility.CheckMailAddress(sC_EMP_MAIL) || !PageUtility.CheckMailAddress(sP_EMP_MAIL))) { return(false); } DataTable dtMailParam = new DataTable("PARAM"); dtMailParam.Columns.Add("KEY", typeof(string)); dtMailParam.Columns.Add("VAL", typeof(string)); MicroBSC.BSC.Biz.Biz_Bsc_Kpi_Info objKPI = new MicroBSC.BSC.Biz.Biz_Bsc_Kpi_Info(); DataTable dtKpi = new DataTable(); if (this.IBiz_Type == Biz_Type.biz_type_kpi_docbatch) { dtKpi = objKPI.GetKpiListForBatchDraft(GetRequestByInt("ESTTERM_REF_ID"), "", "", "Y", gUserInfo.Emp_Ref_ID, GetRequest("KPI_REF_ID", "")).Tables[0]; } else if (this.IBiz_Type == Biz_Type.biz_type_kpi_rstbatch) { dtKpi = objKPI.GetKpiResultListForBatchDraft(GetRequestByInt("ESTTERM_REF_ID"), GetRequest("YMD"), "", "", "Y", gUserInfo.Emp_Ref_ID, GetRequest("KPI_REF_ID")).Tables[0]; } else if (this.IBiz_Type == Biz_Type.biz_type_target_resultbatch) { dtKpi = objKPI.GetKpiResultListForBatchDraft(GetRequestByInt("ESTTERM_REF_ID"), GetRequest("YMD"), "", "", "N", gUserInfo.Emp_Ref_ID, GetRequest("KPI_REF_ID")).Tables[0]; } bool rtnValue = false; foreach (DataRow drKpi in dtKpi.Rows) { Biz_Com_Approval_Info objMst = new Biz_Com_Approval_Info(DataTypeUtility.GetToDecimal(drKpi["APP_REF_ID"]), 1); string strVPath = Request.ApplicationPath; string strSHost = Request.Url.Host; string strSPort = Request.Url.Port.ToString(); string strProto = Request.Url.Scheme; strVPath = (strVPath == "/") ? "" : strVPath; string strFullPath = strProto + "://" + strSHost + ":" + strSPort + strVPath; DataRow dr = null; dr = dtMailParam.NewRow(); dr["KEY"] = "[SITE_URL]"; dr["VAL"] = strFullPath; dtMailParam.Rows.Add(dr); dr = dtMailParam.NewRow(); dr["KEY"] = "[BIZ_TYPE]"; dr["VAL"] = Biz_Com_Approval_Info.GetBizTypeName(Biz_Type.biz_type_kpi_doc); dtMailParam.Rows.Add(dr); dr = dtMailParam.NewRow(); dr["KEY"] = "[APP_CODE]"; dr["VAL"] = objMst.IApp_Code; dtMailParam.Rows.Add(dr); dr = dtMailParam.NewRow(); dr["KEY"] = "[TITLE]"; dr["VAL"] = objMst.ITitle; dtMailParam.Rows.Add(dr); dr = dtMailParam.NewRow(); dr["KEY"] = "[EMP_NAME]"; dr["VAL"] = objEmp.Emp_Name; dtMailParam.Rows.Add(dr); dr = dtMailParam.NewRow(); dr["KEY"] = "[DEPT_NAME]"; dr["VAL"] = objEmp.Dept_Name; dtMailParam.Rows.Add(dr); dr = dtMailParam.NewRow(); dr["KEY"] = "[TRX_DATE]"; dr["VAL"] = objMst.IUpdate_Date.ToShortDateString(); dtMailParam.Rows.Add(dr); dr = dtMailParam.NewRow(); dr["KEY"] = "[TODAY]"; dr["VAL"] = DateTime.Now.ToString(); dtMailParam.Rows.Add(dr); dr = dtMailParam.NewRow(); dr["KEY"] = "[DRAFT_TYPE]"; dr["VAL"] = (isReturn) ? "반려" : "승인요청"; dtMailParam.Rows.Add(dr); string sMailTitle = ""; if (this.IBiz_Type == Biz_Type.biz_type_kpi_docbatch) { sMailTitle = "[성과관리 - " + Biz_Com_Approval_Info.GetBizTypeName(Biz_Type.biz_type_kpi_doc) + " 건 알림메일]"; } else if (this.IBiz_Type == Biz_Type.biz_type_kpi_rstbatch) { sMailTitle = "[성과관리 - " + Biz_Com_Approval_Info.GetBizTypeName(Biz_Type.biz_type_kpi_rst) + " 건 알림메일]"; } else if (this.IBiz_Type == Biz_Type.biz_type_target_resultbatch) { sMailTitle = "[성과관리 - " + Biz_Com_Approval_Info.GetBizTypeName(Biz_Type.biz_type_target_result) + " 건 알림메일]"; } rtnValue = PageUtility.SendMail(dtMailParam, sC_EMP_MAIL, (isReturn) ? sN_EMP_MAIL : sP_EMP_MAIL, sMailTitle, sFile); } return(rtnValue); }