public void GetRequest(Van.RecivedData reqData) { try { _ReqData = reqData; } catch (Exception ex) { MessageBox.Show(ex.Message); } }
/// <summary> /// 벤dll 에서 리턴받을 리턴함수 /// </summary> /// <param name="reqData">The req data.</param> public void BizGetRequest(Van.RecivedData reqData) { try { _ReqData = reqData; } catch (Exception ex) { MessageBox.Show(ex.Message); } finally { IsLoop = false; } }
/// <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; } }
/// <summary> /// 싸인을 받습니다. /// </summary> /// <param name="tid">터미널아이디</param> /// <param name="svrIP">서버아이피</param> /// <param name="svrPort">서버포트</param> /// <param name="Amt">금액</param> /// <param name="ComPort">싸인패드포트</param> /// <param name="reqdata">응답데이터</param> public bool GetSign(string Project, int Amt, ref Van.RecivedData reqdata, string VanAgreeProtocal) { try { string svrIP = ""; string svrPort = ""; string tid = ""; SignPad pad = SignPad.NONE; string signcomport = ""; BizCommon.VanType rtype = BizVan.GetProjectVaninfo(Project, JobKind.None, ref svrIP, ref svrPort, ref tid, ref pad, ref signcomport); Van.VanType type = BizVan.ConvertToVanType(rtype); if (signcomport == "") { throw new Exception("싸인패드 포트가 등록되지 않았습니다."); } #region 서명모드 /******************************************************************************/ // 싸인패드가 체크 되어 있다면 서명모드 시작 /******************************************************************************/ //string str = Van.KICC.Reg( kind, // cashKind, // tid, // cardno, // scope, // Basic.MaskReplace(amtSplit.Trim()), // Basic.MaskReplace(amt.Trim())); _lblReTry: Van.frmVanLoading fCash = new Van.frmVanLoading("고객싸인요청", type, frmVanLoading.JobKind.Sign, "BizGetRequest"); try { fCash.Amount = Amt; fCash.SignPort = int.Parse(signcomport.Replace("COM", "")); fCash.VanServerIP = svrIP; fCash.VanServerPort = svrPort.Trim() == "" ? -999 : int.Parse(svrPort); fCash.SignPadReqdata = VanAgreeProtocal; fCash.Tid = tid; switch (pad) { case SignPad.EP791R: fCash.SignSpeed = 57600; break; case SignPad.KSP100S: fCash.SignSpeed = 34800; break; case SignPad.KISSP30: fCash.SignSpeed = 57600; break; case SignPad.NONE: throw new Exception("서명패드설정이 되어 있지 않습니다."); } } catch (Exception ex) { string strMsg = "싸인패드 설정 오류입니다. \n\r" + "거래내역은 아직 승인되지 않았습니다. \n\r" + "오류내용 : \n\r" + ex.Message; throw new Exception(strMsg); } IsLoop = true; fCash.Owner = this; fCash.ShowDialog(); Application.DoEvents(); while (IsLoop) { Application.DoEvents(); } reqdata = _ReqData; if (_ReqData.RequestCode == ((int)Van.frmVanLoading.RS232Err.PortError).ToString()) { if (MessageBox.Show("싸인패드 연결실패 입니다. - 싸인패드와 통신 상태를 확인하세요 \n\r" + "거래내역은 아직 승인되지 않았습니다. \n\r" + "싸인패드와 다시 연결을 시도 하시겠습니까? ", "확인", MessageBoxButtons.RetryCancel, MessageBoxIcon.Question) == DialogResult.Cancel) { //취소를 누르면 빠져나간다. return(false); } else { //재시도를 누르면 다시 싸인패드를 호출한다. goto _lblReTry; } } else if (_ReqData.RequestCode == ((int)Van.frmVanLoading.RS232Err.NotImage).ToString()) { if (MessageBox.Show("싸인이미지가 없습니다. \n\r" + "거래내역은 아직 승인되지 않았습니다. \n\r" + "싸인패드와 다시 연결을 시도 하시겠습니까? ", "확인", MessageBoxButtons.RetryCancel, MessageBoxIcon.Question) == DialogResult.Cancel) { //취소를 누르면 빠져나간다. return(false); } else { //재시도를 누르면 다시 싸인패드를 호출한다. goto _lblReTry; } } else if (_ReqData.RequestCode == ((int)Van.frmVanLoading.RS232Err.TimeOut).ToString()) { if (MessageBox.Show("제한시간 초과 입니다. \n\r" + "거래내역은 아직 승인되지 않았습니다. \n\r" + "싸인패드와 다시 연결을 시도 하시겠습니까? ", "확인", MessageBoxButtons.RetryCancel, MessageBoxIcon.Question) == DialogResult.Cancel) { //취소를 누르면 빠져나간다. return(false); } else { //재시도를 누르면 다시 싸인패드를 호출한다. goto _lblReTry; } } else if (_ReqData.RequestCode == ((int)Van.frmVanLoading.RS232Err.Communication).ToString()) { if (MessageBox.Show("싸인패드와 통신할 수 없습니다. \n\r" + "거래내역은 아직 승인되지 않았습니다.\n\r" + "싸인패드와 다시 연결을 시도 하시겠습니까? ", "확인", MessageBoxButtons.RetryCancel, MessageBoxIcon.Question) == DialogResult.Cancel) { //취소를 누르면 빠져나간다. return(false); } else { //재시도를 누르면 다시 싸인패드를 호출한다. goto _lblReTry; } } else if (_ReqData.RequestCode == ((int)Van.frmVanLoading.RS232Err.NotData).ToString()) { if (MessageBox.Show("리턴된 데이터가 없습니다. \n\r" + "거래내역은 아직 승인되지 않았습니다. \n\r" + "싸인패드와 다시 연결을 시도 하시겠습니까? ", "확인", MessageBoxButtons.RetryCancel, MessageBoxIcon.Question) == DialogResult.Cancel) { //취소를 누르면 빠져나간다. return(false); } else { //재시도를 누르면 다시 싸인패드를 호출한다. goto _lblReTry; } } //********************************************************************************* Image img = mImage.ByteArrayToImage(_ReqData.SignData); if (type != Van.VanType.KIS) { Van.SignViewer f = new SignViewer(img); f.ShowDialog(); Application.DoEvents(); } /******************************************************************************/ // 서명모드 종료 /******************************************************************************/ #endregion return(true); } catch (Exception ex) { throw ex; } }
/// <summary> /// 현금영수증 승인 /// </summary> private bool fnCashBill(bool cashbillyn , bool cashsignpadyn , string amt , CashKind cashbillkind , string cashbillregno , ref string refcashbillregno , ref string refIdNoCode , ref Van.RecivedData cashreqdata ) { try { bool IsClose = BizCommon.Gneral_D.IsRoomClose(); refIdNoCode = ""; //현금영수증 선택되었을대 if (cashbillyn) { Van.RecivedData reqdata = new RecivedData(); refcashbillregno = cashbillregno; //식별번호를 싸인패드로 받는다면 if (cashsignpadyn) { using (BizVanComunication regNumber = new BizVanComunication()) { reqdata = regNumber.GetCashRegNumber("PROJECT_D", int.Parse(Basic.MaskReplace(amt)) ); regNumber.Dispose(); } refcashbillregno = reqdata.CashRegNumber; } if (cashbillregno.Length < 7) { //현금영수증 Basic.ShowMessage(1, "식별번호를 정확하게 입력하여 주십시요"); return(false); } //현금영수증 승인요청 /***********************************************************************************************************************************************/ using (BizVanComunication bizVan = new BizVanComunication()) { cashreqdata = bizVan.SendData("PROJECT_D", JobKind.RegCash, cashbillkind, refcashbillregno.Trim(), "", "", Basic.MaskReplace(amt), "", "", "", "", lupCashBill_IdCode.EditValue.ToString() == "1" ? CashGbn.Card : CashGbn.None); bizVan.Dispose(); } /***********************************************************************************************************************************************/ if (cashreqdata.IsAgreeError) { Basic.ShowMessage(1, cashreqdata.Message); return(false); } //승인여부 //DB 작업 실패시 삭제하기위해서 //IsAgreeCash = true; } //자진 발급 else { DataRow[] dr = Parm.mDataTable.dtZx010ms.Select("HEAD = 'Z0028' AND DETAIL = '0' AND USE_YN = 'Y' "); int _intInput = 0; int _intZ0028 = 0; refcashbillregno = dr[0]["ITEM1"].ToString(); _intInput = int.Parse(amt.Replace(",", "")); refIdNoCode = dr[0]["DETAIL"].ToString(); try { _intZ0028 = int.Parse(dr[0]["ITEM2"].ToString()); } catch (Exception) { _intZ0028 = 0; } if (_intInput >= _intZ0028) { using (BizVanComunication bizVan = new BizVanComunication()) { cashreqdata = bizVan.SendData("PROJECT_D", JobKind.RegCash, cashbillkind, dr[0]["ITEM1"].ToString(), "", "", Basic.MaskReplace(amt.Trim()), "", "", "", "", CashGbn.None); bizVan.Dispose(); } if (cashreqdata.IsAgreeError) { Basic.ShowMessage(1, cashreqdata.Message); return(false); } //승인여부 //DB 작업 실패시 삭제하기위해서 //IsAgreeCash = true; } } //cashAgreeNo = Cashreqdata.AgreeNo; //cashAgreeDate = Cashreqdata.AgreeDate; this.Cursor = Cursors.WaitCursor; this.Cursor = Cursors.Default; return(true); } catch (Exception ex) { Basic.ShowMessage(3, ex.Message); return(false); } finally { this.Cursor = Cursors.Default; } }