/// <summary>
        /// 현금결제처리
        /// </summary>
        /// <param name="amt">금액</param>
        /// <param name="IsCheckBill">현금영수증<c>true</c> [is check bill].</param>
        /// <param name="paycodeInput">입금코드</param>
        /// <param name="agreeno">현금영수증승인번호</param>
        /// <param name="empNo">The emp no.</param>
        /// <returns></returns>
        /// <remarks>
        /// 현금결제인데도 불구하고 현금영수증 여부나 입금코드를 받는 이유는
        /// 객실 선수금일때 카드결제시에도 현금 로직을 태워야되기때문이다.
        /// </remarks>
        private string  fn_110(string amt, bool IsCheckBill, string paycodeInput, string agreeno, string empNo, string references)
        {
            string strReturn = "";
            /*-------------------------------------------------------------------------------------------------------*/
            // 현금영수증
            /*-------------------------------------------------------------------------------------------------------*/
            string bill_saledate     = "";      //영업일자
            string bill_bizcode      = "";      //사업장코드
            string bill_facilitycode = "";      //영업장코드
            string bill_posno        = "";      //포스번호
            string bill_biilno       = "";      //전표번호
            string bill_saleyn       = "";      //판매여부
            string bill_payseq       = "0";     //순번 // 현금영수증이 있으면 체번한 값을 없으면 Default 0 값이 들어간다.
            string bill_agreeyn      = "";      //승인번호
            string bill_saleamt      = "";      //판매금액
            string bill_pe_co_code   = "";      //법인개인구분
            string bill_id_no_code   = "";      //식별코드
            string bill_id_no        = "";      //식별번호
            string bill_agreeno      = "";      //승인번호
            string bill_keyinyn      = "";      //이지체여부
            string bill_date         = "";      //정의없음


            try
            {
                //현금영수증 체크
                if (IsCheckBill)
                {
                    if (Basic.MaskReplace(Num.GetNumberOnly(PayInfomation.RoomInfo.C_Facipart)) + Basic.MaskReplace(Num.GetNumberOnly(PayInfomation.RoomInfo.C_RoomNo)).Trim() == "")
                    {
                        return("Bill 번호를 생성 할 수 없습니다.\n\r\n\r동코드:" + PayInfomation.RoomInfo.C_Facipart + "\r\n객실번호:" + PayInfomation.RoomInfo.C_RoomNo);
                    }



                    bill_saledate     = PayInfomation.RoomInfo.C_Taskdate;                                                                                                               //영업일자
                    bill_bizcode      = PayInfomation.RoomInfo.C_Bizcode;                                                                                                                //사업장코드
                    bill_facilitycode = PayInfomation.RoomInfo.C_Facilitycode;                                                                                                           //영업장코드
                    bill_posno        = "01";                                                                                                                                            //포스번호
                    bill_biilno       = Basic.MaskReplace(Num.GetNumberOnly(PayInfomation.RoomInfo.C_Facipart)) + Basic.MaskReplace(Num.GetNumberOnly(PayInfomation.RoomInfo.C_RoomNo)); //전표번호
                    bill_saleyn       = "Y";                                                                                                                                             //판매여부
                    bill_payseq       = "일련번호-체번한다.";                                                                                                                                    //순번
                    bill_agreeyn      = "Y";                                                                                                                                             //승인여부
                    switch (TabControl.SelectedTabPage.Name)
                    {
                    case "tp_1":                                                          //현금
                        bill_saleamt    = Basic.MaskReplace(txtCashAmt.Text.Trim());      //판매금액
                        bill_pe_co_code = optCashBillKind.SelectedIndex < 1 ? "P" : "C";  //법인C 개인구분 P
                        bill_id_no_code = lupCashBill_IdCode.EditValue.ToString().Trim(); //식별코드
                        bill_id_no      = txtCashBillRegNo.Text.Trim();                   //식별번호
                        break;

                    case "tp_10":                                                             // 예금
                        bill_saleamt    = Basic.MaskReplace(txtBankAmt.Text.Trim());          //판매금액
                        bill_pe_co_code = optBankCashBillKind.SelectedIndex < 1 ? "P" : "C";  //법인C 개인구분 P
                        bill_id_no_code = lupBankCashBill_IdCode.EditValue.ToString().Trim(); //식별코드
                        bill_id_no      = txtBankCashBillRegNo.Text.Trim();                   //식별번호
                        break;
                    }

                    if (bill_id_no.Length <= 0)
                    {
                        DataRow[] dr = Parm.mDataTable.dtZx010ms.Select("HEAD = 'Z0028' AND DETAIL = '0' AND USE_YN = 'Y' ");
                        if (dr.Length > 0 && int.Parse(dr[0]["ITEM2"].ToString()) < int.Parse(bill_saleamt))
                        {
                            bill_id_no_code = "0";
                            bill_id_no      = dr[0]["ITEM1"].ToString();
                        }
                    }



                    bill_agreeno = agreeno;  //승인번호
                    bill_keyinyn = "N";      //이지체크를 통해 들어왔는지
                    bill_date    = "";       //정의없음

                    DataTable dtParmBill = DataLayer.GetDataTableParameter(DataLayer.DatatableStyle.Parameter);
                    dtParmBill.Rows.Add(new object[] { "V_BIZ_CODE", bill_bizcode });
                    dtParmBill.Rows.Add(new object[] { "V_FACILITY_CODE", bill_facilitycode });
                    dtParmBill.Rows.Add(new object[] { "V_POS_NO", bill_posno });
                    dtParmBill.Rows.Add(new object[] { "V_SALE_DATE", bill_saledate });
                    dtParmBill.Rows.Add(new object[] { "V_BILL_NO", bill_biilno });
                    dtParmBill.Rows.Add(new object[] { "V_SALE_YN", "Y" });

                    string billSeq = DataLayer.ExecuteSpScala("PKG_DAZAZ02.PR_IAA031MS_PAYSEQ", dtParmBill, DataLayer.MessageEncoding.Default);
                    bill_payseq = billSeq;
                }

                if (PayInfomation.useKind == UseKind.Room)
                {
                    /*-------------------------------------------------------------------------------------------------------*/
                    //  Room 일때
                    /*-------------------------------------------------------------------------------------------------------*/
                    string bizcode      = "";    //사업장코드
                    string facilitycode = "";    //영업장코드
                    string mngno        = "";    //관리번호
                    string mngseq       = "";    //관리순번
                    string taskdate     = "";    //작업일자
                    string keyseq       = "";    //일련번호
                    string rasiecode    = "";    //발생코드
                    string paycode      = "";    //결제코드
                    string payamt       = "";    //결제금액
                    string itemstat     = "";    //상태
                    string facipart     = "";    //동코드
                    string reference    = "";    //참고(카드번호,승인번호/락카번호/연회번호/상품권번호/회원번호)
                    string seqno        = "";    //순번
                    string rmrk         = "";    //비고

                    string co_facilitycode = ""; //이체영업장코드
                    string co_mngcode      = ""; //이체관리번호
                    string co_mngseq       = ""; //이체관리순번
                    string co_taskdate     = ""; //이체영업일자
                    string co_keyseq       = ""; //이체일련번호

                    string st_facilitycode = ""; //최초영업장코드
                    string st_mngno        = ""; //최초관리번호
                    string st_mngseq       = ""; //최초관리순번
                    string st_taskdate     = ""; //최초영업일자
                    string st_keyseq       = ""; //최초일련번호

                    //string empno           = ""; //사원번호
                    string ip         = "";      //아이피
                    string editstatus = "";      //작업구분


                    bizcode      = PayInfomation.RoomInfo.C_Bizcode;
                    facilitycode = PayInfomation.RoomInfo.C_Facilitycode;
                    mngno        = PayInfomation.RoomInfo.C_Mngno;
                    mngseq       = PayInfomation.RoomInfo.C_Mngseq;
                    taskdate     = PayInfomation.RoomInfo.C_Taskdate;
                    keyseq       = "일련번호";
                    rasiecode    = ((int)PayInfomation.RaseCode).ToString();
                    paycode      = paycodeInput;
                    payamt       = amt;
                    itemstat     = "N";
                    facipart     = PayInfomation.RoomInfo.C_Facipart;
                    reference    = references;
                    seqno        = bill_payseq;
                    rmrk         = agreeno;

                    co_facilitycode = PayInfomation.RoomInfo.CO_Facilitycode;
                    co_mngcode      = PayInfomation.RoomInfo.CO_Mngcode;
                    co_mngseq       = PayInfomation.RoomInfo.CO_Mngseq;
                    co_taskdate     = PayInfomation.RoomInfo.CO_Taskdate;
                    co_keyseq       = PayInfomation.RoomInfo.CO_Keyseq;

                    st_facilitycode = PayInfomation.RoomInfo.ST_Facilitycode;
                    st_mngno        = PayInfomation.RoomInfo.ST_Mngno;
                    st_mngseq       = PayInfomation.RoomInfo.ST_Mngseq;
                    st_taskdate     = PayInfomation.RoomInfo.ST_Taskdate;
                    st_keyseq       = PayInfomation.RoomInfo.ST_Keyseq;

                    //empno           = Parm.CurrentUserInformation.id;
                    ip         = Parm.CurrentUserInformation.ip;
                    editstatus = "2";



                    //seqno 순번을 가져와서 할당한다.
                    //입금테이블 [DCA030MS]
                    // 사업장코드 // 영업장코드 //관리번호 //관리순번// 영업일자 // == 일련번호//
                    // 순번을 가져온다
                    //PR_KEY_SEQ
                    DataTable dtParm = DataLayer.GetDataTableParameter(DataLayer.DatatableStyle.Parameter);

                    dtParm.Rows.Add(new object[] { "V_BIZ_CODE", bizcode });
                    dtParm.Rows.Add(new object[] { "V_FACILITY_CODE", facilitycode });
                    dtParm.Rows.Add(new object[] { "V_MNG_NO", mngno });
                    dtParm.Rows.Add(new object[] { "V_MNG_SEQ", mngseq });
                    dtParm.Rows.Add(new object[] { "V_TASK_DATE", taskdate });

                    keyseq = DataLayer.ExecuteSpScala("PKG_DAZAZ02.PR_DCA030MS_KEY_SEQ", dtParm, DataLayer.MessageEncoding.Default);

                    // 선수금일때 최초영업장과 //이체영업장을 설정한다.
                    if (PayInfomation.RaseCode == RaseCodeInfo.Deposit)
                    {
                        co_keyseq = co_keyseq == "" ? keyseq : co_keyseq;
                        st_keyseq = st_keyseq == "" ? keyseq : st_keyseq;
                    }
                    else
                    {
                        co_keyseq = keyseq;
                        st_keyseq = keyseq;
                    }

                    DataTable dtcash = Pay.Room_110(bizcode,
                                                    facilitycode,
                                                    mngno,
                                                    mngseq,
                                                    taskdate,
                                                    keyseq,
                                                    rasiecode,
                                                    paycode,
                                                    payamt,
                                                    itemstat,
                                                    facipart, reference,
                                                    seqno,
                                                    rmrk,
                                                    co_facilitycode,
                                                    co_mngcode,
                                                    co_mngseq,
                                                    co_taskdate,
                                                    co_keyseq,
                                                    st_facilitycode,
                                                    st_mngno,
                                                    st_mngseq,
                                                    st_taskdate,
                                                    st_keyseq,
                                                    empNo,
                                                    ip,
                                                    editstatus);

                    DataTable[] dtArry = null;
                    //현금영수증이 없다면 // 현금내역만 담고
                    //그렇지 않으면 현금영수증 내역까지 담아서 트랜잭션처리한다.
                    if (!IsCheckBill)
                    {
                        dtArry = new DataTable[] { dtcash };
                    }
                    else
                    {
                        DataTable dtcashBill = Pay.PayAddBill(bill_saledate,
                                                              bill_bizcode,
                                                              bill_facilitycode,
                                                              bill_posno,
                                                              bill_biilno,
                                                              bill_saleyn,
                                                              bill_payseq,
                                                              bill_agreeyn,
                                                              bill_saleamt,
                                                              bill_pe_co_code,
                                                              bill_id_no_code,
                                                              bill_id_no,
                                                              bill_agreeno,
                                                              bill_saledate,
                                                              bill_keyinyn,   // 이지체크여부에 N을 넘긴다.
                                                              empNo,
                                                              bill_date,
                                                              ip);

                        dtArry = new DataTable[] { dtcash, dtcashBill };
                    }

                    //Application.DoEvents();
                    DataSet dsTmp = DataLayer.AddProdedcure(dtArry);
                    string  v_ret = DataLayer.ExecuteSpScalaTransaction(dsTmp, "OK", DataLayer.MessageEncoding.Default);

                    strReturn = v_ret;
                }
            }
            catch (Exception ex)
            {
                strReturn = ex.Message;
            }

            return(strReturn);
        }
Exemplo n.º 2
0
        /// <summary>
        /// [현금]  항목 삭제
        /// </summary>
        /// <param name="r">입금정보</param>
        /// <param name="emp">사번.</param>
        /// <param name="memo">사유.</param>
        private void fn_110(DataRow r, string emp, string memo, string seqnos)
        {
            string _BenRegNo = "";

            try
            {
                //객실일때 마감여부 확인
                bool IsClose = BizCommon.Gneral_D.IsRoomClose();
                if (info.useKind == DAZAZ02.UseKind.Room && IsClose)
                {
                    Basic.ShowMessage(1, "현재 마감작업중입니다. \n\r마감이 끝난후 작업을 계속하십시요");
                    return;
                }


                if (Faci == "" || RoomNo == "")
                {
                    Basic.ShowMessage(1, "동코드와 객실번호는 전표번호를 생성하는 기초데이터 입니다.");
                    return;
                }

                #region DataRow 정보

                /*
                 *  dt.Columns.Add("FACILITY_CODE"     );
                 *  dt.Columns.Add("MNG_NO"            );
                 *  dt.Columns.Add("MNG_SEQ"           ,typeof(decimal));
                 *  dt.Columns.Add("TASK_DATE"         );
                 *  dt.Columns.Add("KEY_SEQ"           ,typeof(decimal));
                 *  dt.Columns.Add("RAISE_CODE"        );
                 *  dt.Columns.Add("RAISE_CODE_NAME");
                 *  dt.Columns.Add("PAY_CODE"          );
                 *  dt.Columns.Add("PAY_CODE_NAME");
                 *  dt.Columns.Add("PAY_AMT"           ,typeof(decimal));
                 *  dt.Columns.Add("RMRK"              );
                 *  dt.Columns.Add("REFERENCE"         );
                 *  dt.Columns.Add("SEQ_NO"            ,typeof(decimal));
                 *  dt.Columns.Add("TRACK_TWO"         );
                 *  dt.Columns.Add("CARD_NO"           );
                 *  dt.Columns.Add("VALID_THRU"        );
                 *  dt.Columns.Add("AGREE_NO"          );
                 *  dt.Columns.Add("AGREE_DATE"        );
                 *  dt.Columns.Add("INSTALLMENT_CNT"   ,typeof(decimal));
                 *  dt.Columns.Add("EASY_YN"           );
                 *
                 *  dt.Columns.Add("CO_FACILITY_CODE"  );
                 *  dt.Columns.Add("CO_MNG_NO"         );
                 *  dt.Columns.Add("CO_MNG_SEQ"        ,typeof(decimal));
                 *  dt.Columns.Add("CO_TASK_DATE"      );
                 *  dt.Columns.Add("CO_KEY_SEQ"        ,typeof(decimal));
                 */
                #endregion


                string bizcode      = Parm.CurrentUserInformation.BizInfo.BizCode;            //사업장코드
                string facilitycode = r["FACILITY_CODE"].ToString().Trim();                   //영업장코드
                string mngno        = r["MNG_NO"].ToString().Trim();                          //관리번호
                string mngseq       = r["MNG_SEQ"].ToString().Trim();                         //관리순번
                string taskdate     = Appdate;                                                //작업일자
                string keyseq       = "일련번호";                                                 //일련번호
                string rasiecode    = r["RAISE_CODE"].ToString().Trim();                      //발생코드
                string paycode      = r["PAY_CODE"].ToString().Trim();                        //결제코드
                string payamt       = r["PAY_AMT"].ToString().Trim();                         //결제금액
                string itemstat     = "";                                                     //상태
                string facipart     = Faci;                                                   //동코드
                string reference    = r["REFERENCE"].ToString().Trim();                       //참고(카드번호,승인번호/락카번호/연회번호/상품권번호/회원번호)
                string seqno        = seqnos;                                                 //순번
                string rmrk         = memo;                                                   //비고

                string co_facilitycode = "";                                                  //이체영업장코드
                string co_mngcode      = "";                                                  //이체관리번호
                string co_mngseq       = "";                                                  //이체관리순번
                string co_taskdate     = "";                                                  //이체영업일자
                string co_keyseq       = "";                                                  //이체일련번호

                string st_facilitycode = facilitycode;                                        //최초영업장코드
                string st_mngno        = mngno;                                               //최초관리번호
                string st_mngseq       = mngseq;                                              //최초관리순번
                string st_taskdate     = Basic.MaskReplace(r["TASK_DATE"].ToString().Trim()); //최초영업일자
                string st_keyseq       = r["KEY_SEQ"].ToString().Trim();                      //최초일련번호

                string empno      = emp;                                                      //사원번호
                string ip         = Parm.CurrentUserInformation.ip;                           //아이피
                string editstatus = "3";                                                      //작업구분

                /**********************************************
                 * 현금영수증 처리
                 **********************************************
                 * 1. 현금 연수증을 사용하지 않은처리
                 * 3. 현금영수증을 밴승인을 통한 처리
                 *********************************************/

                string bill_saledate     = "";   //영업일자
                string bill_bizcode      = "";   //사업장코드
                string bill_facilitycode = "";   //영업장코드
                string bill_posno        = "";   //포스번호
                string bill_biilno       = "";   //전표번호
                string bill_saleyn       = "";   //판매여부
                string bill_payseq       = "순번"; //순번
                string bill_agreeyn      = "";   //승인번호
                string bill_saleamt      = "";   //판매금액
                string bill_pe_co_code   = "";   //법인개인구분
                string bill_id_no_code   = "";   //식별코드
                string bill_id_no        = "";   //식별번호
                string bill_agreeno      = "";   //승인번호
                string bill_easyyn       = "";   //이지체크여부
                string bill_date         = "";   //정의없음
                string bill_agreedate    = "";   //원승인일자


                bool      IsBillYn = false;
                DataTable dtBill   = null;

                //승인번호가 있다면 // 현금영수증이 승인된 데이터 이다.
                if (r["AGREE_NO"].ToString().Trim() != "")
                {
                    //현금영수증이 있다고 마킹한다.
                    IsBillYn = true;


                    //아무튼. 현금영수증인 승인된건이기때문에
                    //현금영수증 테이블에 담는다.

                    /*
                     * 채번한다.
                     */
                    bill_saledate     = Appdate;                                                                                   //영업일자
                    bill_bizcode      = Parm.CurrentUserInformation.BizInfo.BizCode;                                               //사업장코드
                    bill_facilitycode = r["FACILITY_CODE"].ToString().Trim();                                                      //영업장코드
                    bill_posno        = "01";                                                                                      //포스번호
                    bill_biilno       = Basic.MaskReplace(Num.GetNumberOnly(Faci)) + Basic.MaskReplace(Num.GetNumberOnly(RoomNo)); //전표번호
                    bill_saleyn       = "Y";                                                                                       //판매여부
                    bill_payseq       = "순번";                                                                                      //순번
                    bill_agreeyn      = "N";                                                                                       //승인번호
                    bill_saleamt      = (int.Parse(r["PAY_AMT"].ToString().Trim()) * -1).ToString();                               //판매금액
                    bill_pe_co_code   = r["INSTALLMENT_CNT"].ToString().Trim();                                                    //법인개인구분
                    bill_id_no_code   = r["VALID_THRU"].ToString().Trim();                                                         //식별코드
                    bill_id_no        = r["REFERENCE"].ToString().Trim();                                                          //식별번호
                    bill_agreeno      = "";                                                                                        // _BenRegNo; //승인번호
                    bill_easyyn       = r["EASY_YN"].ToString().Trim();                                                            //키인여부
                    bill_date         = "";                                                                                        //정의없음

                    bill_agreeno   = r["AGREE_NO"].ToString().Trim();
                    bill_agreedate = r["AGREE_DATE"].ToString().Trim();


                    //밴을 이용한 승인취소건이다.
                    //승인을 취소한다.
                    //Ben통신을 한다.
                    /*☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★*/
                    _BenRegNo = "밴승인번호";
                    _BenRegNo = "";
                    //if(BizCommon.CheckVan.CheckMode() == DialogResult.No) return;
                    /***********************************************************************************************************************************************/
                    string str = "";



                    Van.RecivedData RegCashreq = new Van.RecivedData();
                    using (BizVanComunication bizVans = new BizVanComunication())
                    {
                        RegCashreq = bizVans.SendData("PROJECT_D",
                                                      JobKind.CancelCash,
                                                      bill_pe_co_code == "0" ? Van.CashKind.Persnal : Van.CashKind.Company,
                                                      bill_id_no,
                                                      "",
                                                      "",
                                                      payamt,
                                                      "",
                                                      "",
                                                      bill_agreeno,
                                                      //bill_agreedate.Substring(2, 6),
                                                      bill_agreedate,
                                                      bill_id_no_code == "1" ? CashGbn.Card : CashGbn.None);
                        bizVans.Dispose();
                    }

                    /***********************************************************************************************************************************************/

                    if (RegCashreq.IsAgreeError)
                    {
                        //if(

                        Basic.ShowMessage(1, "승인을 취소하지 못했습니다. \n\r\n\r" +
                                          "오류내용 : \n\r" +
                                          RegCashreq.Message);
                        return;
                    }

                    _BenRegNo    = RegCashreq.AgreeNo;
                    bill_agreeno = _BenRegNo;

                    this.Cursor = Cursors.WaitCursor;

                    DataTable dtParmBill = DataLayer.GetDataTableParameter(DataLayer.DatatableStyle.Parameter);
                    dtParmBill.Rows.Add(new object[] { "V_BIZ_CODE", bill_bizcode });
                    dtParmBill.Rows.Add(new object[] { "V_FACILITY_CODE", bill_facilitycode });
                    dtParmBill.Rows.Add(new object[] { "V_POS_NO", bill_posno });
                    dtParmBill.Rows.Add(new object[] { "V_SALE_DATE", bill_saledate });
                    dtParmBill.Rows.Add(new object[] { "V_BILL_NO", bill_biilno });
                    dtParmBill.Rows.Add(new object[] { "V_SALE_YN", "Y" });

                    string billSeq = DataLayer.ExecuteSpScala("PKG_DAZAZ02.PR_IAA031MS_PAYSEQ", dtParmBill, DataLayer.MessageEncoding.Default);
                    bill_payseq = billSeq;
                    seqno       = bill_payseq;

                    dtBill = Pay.PayAddBill(bill_saledate,
                                            bill_bizcode,
                                            bill_facilitycode,
                                            bill_posno,
                                            bill_biilno,
                                            bill_saleyn,
                                            bill_payseq,
                                            bill_agreeyn,
                                            bill_saleamt,
                                            bill_pe_co_code,
                                            bill_id_no_code,
                                            bill_id_no,
                                            bill_agreeno,
                                            bill_saledate,
                                            bill_easyyn,
                                            empno,
                                            bill_date,
                                            ip);
                }

                this.Cursor = Cursors.WaitCursor;

                //seqno 순번을 가져와서 할당한다.
                //입금테이블 [DCA030MS]
                // 사업장코드 // 영업장코드 //관리번호 //관리순번// 영업일자 // == 일련번호//
                // 순번을 가져온다
                //PR_KEY_SEQ
                DataTable dtParm = DataLayer.GetDataTableParameter(DataLayer.DatatableStyle.Parameter);

                dtParm.Rows.Add(new object[] { "V_BIZ_CODE", bizcode });
                dtParm.Rows.Add(new object[] { "V_FACILITY_CODE", facilitycode });
                dtParm.Rows.Add(new object[] { "V_MNG_NO", mngno });
                dtParm.Rows.Add(new object[] { "V_MNG_SEQ", mngseq });
                dtParm.Rows.Add(new object[] { "V_TASK_DATE", taskdate });

                keyseq = DataLayer.ExecuteSpScala("PKG_DAZAZ02.PR_DCA030MS_KEY_SEQ", dtParm, DataLayer.MessageEncoding.Default);

                string deleteMemo = "";
                if (r["AGREE_NO"].ToString().Trim() != "")
                {
                    deleteMemo = "[승인번호:" + r["AGREE_NO"].ToString().Trim() + "]  사유: ";
                }
                DataTable dtcash = Pay.Room_110(bizcode,
                                                facilitycode,
                                                mngno,
                                                mngseq,
                                                taskdate,
                                                keyseq,
                                                rasiecode,
                                                paycode,
                                                payamt,
                                                itemstat,
                                                facipart, reference,
                                                seqno,
                                                deleteMemo + memo,  //원승인번호 + 삭제 사유
                                                co_facilitycode,
                                                co_mngcode,
                                                co_mngseq,
                                                co_taskdate,
                                                co_keyseq,
                                                st_facilitycode,
                                                st_mngno,
                                                st_mngseq,
                                                st_taskdate,
                                                st_keyseq,
                                                empno,
                                                ip,
                                                editstatus);

                string v_ret = "실행정보 없음";

                try{
                    if (IsBillYn)    //현금영수증 건이 있다면
                    {
                        DataSet dsTmp = DataLayer.AddProdedcure(new DataTable[] { dtcash, dtBill });
                        v_ret = DataLayer.ExecuteSpScalaTransaction(dsTmp, "OK", DataLayer.MessageEncoding.Default);
                    }
                    else     // 현금건만 있다면
                    {
                        v_ret = DataLayer.ExecuteSpScala("PKG_DAZAZ02_DEV.PR_ROOM_110", dtcash, DataLayer.MessageEncoding.Default);
                    }
                }catch (Exception ex)
                {
                    // 현금 영수증 승인취소건이 있다면
                    // 현금영수증 승인을 시킨다.원복
                    MessageBox.Show(ex.Message);
                    goto _lblRegCash;
                }

                if (v_ret != "OK")
                {
                    Basic.ShowMessage(1, v_ret);
                    goto _lblRegCash;
                }

                fnSelect();

                Basic.ShowMessage(1, "취소 하였습니다.");


                /*********************************************************/
                return;

                /*********************************************************/



_lblRegCash:
                if (IsBillYn)  //현금 승인취소건이 있다 다시 현금영수증을 승인한다.
                {
                    //현금영수증 승인요청
                    /***********************************************************************************************************************************************/


                    Van.RecivedData Regregreq = new Van.RecivedData();
                    using (BizVanComunication bizVanreg = new BizVanComunication())
                    {
                        Regregreq = bizVanreg.SendData("PROJECT_D",
                                                       JobKind.RegCash,
                                                       bill_pe_co_code == "P" ? Van.CashKind.Persnal : Van.CashKind.Company,
                                                       bill_id_no,
                                                       "",
                                                       "",
                                                       payamt,
                                                       "",
                                                       "",
                                                       "",
                                                       "",
                                                       bill_id_no_code == "1" ? CashGbn.Card : CashGbn.None);
                        bizVanreg.Dispose();
                    }


                    /***********************************************************************************************************************************************/

                    if (Regregreq.IsAgreeError)
                    {
                        Basic.ShowMessage(3, "[전산담당자에게 문의하세요]\n\r\n\r" +
                                          "현금영수증 승인 취소후 자료갱신시 에러가 있었습니다.. \n\nr" +
                                          "취소된 현금영수증 금액을 다시 승인처리 하는 도중 \n\r" +
                                          "아래와 같이 에러가 발생하엿습니다.\n\r\n\r" +
                                          "에러내용 : " + Regregreq.Message + "\n\r" +
                                          "식별코드 : " + bill_id_no_code == "P"  ? "개인(P)" : "법인(C) \n\r" +
                                          "식별번호 : " + bill_id_no + "\n\r" +
                                          "금    액 : " + int.Parse(payamt).ToString("n0"));

                        Van.Log.Log.SaveLog("현금영수증 취소 후 DB에러 - 현금영수 재 승인시 에러 - " + "식별코드 - " + bill_id_no_code +
                                            " / 식별번호 -" + bill_id_no + " / 금액 -" + payamt);
                        return;
                    }
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                this.Cursor = Cursors.Default;
            }
        }