Esempio n. 1
0
    /// <summary>
    ///  SetAppCancel
    ///     : 결재취소 처리
    /// </summary>
    private void SetAppCancel()
    {
        int    iChecked = 0;
        bool   bChecked = false;
        string sPrcKey  = "";

        string[,] saPrcKey;

        // 취소사유 확인
        string sRemark = GetValue(txtCancelRemark.Text);

        if (sRemark == "")
        {
            PageUtility.AlertMsgFocus("[취소사유]를 입력하셔야 합니다!", "txtCancelRemark");
            return;
        }

        UltraGridRow row;

        // 현재결재상태코드(V_CUR_APP_STATUS_CD), 전체결재상태코드(V_ALL_APP_STATUS_CD)
        // 문서번호(V_APP_REF_ID);문서타입(V_APP_CODE);KPI문서정보(V_EVENT_ID);KPI문서추가정보(V_EVENT_ADD_ID);평가기간코드(V_TERM_REF_ID);현재결재단계(V_APP_STEP);전체결재단계(V_MAX_APP_STEP)

        // 체크되어있는 사항 있는지 점검
        for (int i = 0; i < this.UltraWebGrid1.Rows.Count; i++)
        {
            row = UltraWebGrid1.Rows[i];

            if (Convert.ToBoolean(row.Cells.FromKey("SelChk").GetText()))
            {
                iChecked++;

                // 현재결재상태코드가 승인취소(C)가 아니면서 현재결재상태코드가 승인(E)가 아닐경우
                if (
                    GetValue(row.Cells.FromKey("V_CUR_APP_STATUS_CD").Value) != "C" &&
                    GetValue(row.Cells.FromKey("V_CUR_APP_STATUS_CD").Value) != "E" &&
                    GetValue(row.Cells.FromKey("V_APP_EMP_ID").Value) == GetValue(gUserInfo.Emp_Ref_ID)
                    )
                {
                    if (bChecked == false)
                    {
                        bChecked = true;
                    }

                    sPrcKey += GetValue(row.Cells.FromKey("V_APP_REF_ID").Value) + ";"
                               + GetValue(row.Cells.FromKey("V_APP_CODE").Value) + ";"
                               + GetValue(row.Cells.FromKey("V_EVENT_ID").Value) + ";"
                               + GetValue(row.Cells.FromKey("V_EVENT_ADD_ID").Value) + ";"
                               + GetValue(row.Cells.FromKey("V_TERM_REF_ID").Value) + ";"
                               + GetValue(row.Cells.FromKey("V_APP_STEP").Value) + ";"
                               + GetValue(row.Cells.FromKey("V_MAX_APP_STEP").Value) + ";"
                    ;
                }
                else
                {
                    // 앞에서 잘 선택되었더라도 하나라도 잘못 선택되었다면 다시해야 한다.
                    if (bChecked == true)
                    {
                        bChecked = false;
                    }

                    return;
                }
            }
        }

        if (!bChecked)
        {
            if (iChecked > 0)
            {
                PageUtility.AlertMessage("결재가 완료되었거나 승인취소된 건을 선택하시면 안됩니다!");
            }
            else
            {
                PageUtility.AlertMessage("[승인취소] 처리를 하시려면 먼저 선택하셔야 합니다!");
            }
            return;
        }
        else
        {
            saPrcKey = TypeUtility.GetSplit(sPrcKey, 7);

            int             iProcCnt = 0;
            Biz_app_app0000 biz      = new Biz_app_app0000();

            iProcCnt = biz.SetApprovalCancel(sRemark, saPrcKey);

            PageUtility.AlertMessage(
                string.Format
                (
                    "[{0}]건을 승인취소처리 하였습니다!"
                    , iProcCnt
                )
                );

            txtCancelRemark.Text = "";
            MenuControl1.CallApprovalInfo();
        }
    }