/// <summary>
        /// 현금결제처리
        /// </summary>
        private void fnPay110_Reg()
        {
            try
            {
                bool IsAgreeCash = false;
                bool IsClose     = BizCommon.Gneral_D.IsRoomClose();
                if (PayInfo.useKind == UseKind.Room && IsClose)
                {
                    Basic.ShowMessage(1, "현재 마감작업중입니다. \n\r마감이 끝난후 작업을 계속하십시요");
                    return;
                }

                int amt = int.Parse(Basic.MaskReplace(txtCashAmt.Text.Trim()));
                if (amt <= 0)
                {
                    Basic.ShowMessage(1, "결제금액을 입력하여 주십시요.");
                    txtCashAmt.Focus();
                    return;
                }


                _Pay_UserCheck = "";
                //담당자체크기능 //
                DAHAH05 f = new DAHAH05(Parm.CurrentUserInformation.roomTask.gsDFacility, "fn_Room_UserCheck");
                f.Owner = this;
                f.ShowDialog();

                if (_Pay_UserCheck == "")
                {
                    Basic.ShowMessage(1, "담당자 확인이 되지 않았습니다.");
                    return;
                }
                string empno = _Pay_UserCheck;



                if (Basic.MaskReplace(Num.GetNumberOnly(PayInfomation.RoomInfo.C_Facipart)) + Basic.MaskReplace(Num.GetNumberOnly(PayInfomation.RoomInfo.C_RoomNo)).Trim() == "")
                {
                    Basic.ShowMessage(2, "Bill 번호를 생성 할 수 없습니다.\n\r\n\r동코드:" + PayInfomation.RoomInfo.C_Facipart + "\r\n객실번호:" + PayInfomation.RoomInfo.C_RoomNo);
                    return;
                }

                Van.RecivedData Cashreqdata = new RecivedData();
                //현금영수증 선택되었을대
                if (chkCashBillYn.Checked)
                {
                    /* if (lupCashBill_IdCode.EditValue.ToString() == "0")
                     * {
                     *   DataRow[] dr = Parm.mDataTable.dtZx010ms.Select("HEAD = 'Z0028' AND DETAIL = '0' AND USE_YN = 'Y' ");
                     *
                     *   if (dr.Length >= 0) txtCashBillRegNo.Text = dr[0]["ITEM1"].ToString();
                     * }
                     *
                     * if(lupCashBill_IdCode.EditValue.ToString() == "")
                     * {
                     *   //현금영수증
                     *   Basic.ShowMessage(1, "현금영수증 구분을 선택하여 주십시요");
                     *   lupCashBill_IdCode.Focus();
                     *   return;
                     * }
                     * else if(!chkCashSignPad.Checked && txtCashBillRegNo.Text.Trim().Length < 7)
                     * {
                     *   //현금영수증
                     *   Basic.ShowMessage(1, "식별번호를 정확하게 입력하여 주십시요");
                     *   txtCashBillRegNo.Focus();
                     *   return;
                     * }
                     */
                    Van.RecivedData reqdata = new RecivedData();
                    //식별번호를 싸인패드로 받는다면
                    if (chkCashSignPad.Checked)
                    {
                        using (BizVanComunication regNumber = new BizVanComunication())
                        {
                            reqdata = regNumber.GetCashRegNumber("PROJECT_D",
                                                                 int.Parse(Basic.MaskReplace(txtCashAmt.Text.Trim()))
                                                                 );
                            regNumber.Dispose();
                        }
                        txtCashBillRegNo.Text = reqdata.CashRegNumber;
                    }

                    /* if(txtCashBillRegNo.Text.Trim().Length < 7)
                     * {
                     *   //현금영수증
                     *   Basic.ShowMessage(1, "식별번호를 정확하게 입력하여 주십시요");
                     *   txtCashBillRegNo.Focus();
                     *   return;
                     * }
                     */
                    //현금영수증 승인요청
                    /***********************************************************************************************************************************************/
                    // if(BizCommon.CheckVan.CheckMode() == DialogResult.No) return;

                    using (BizVanComunication bizVan = new BizVanComunication())
                    {
                        Cashreqdata = bizVan.SendData("PROJECT_D",
                                                      JobKind.RegCash,
                                                      optCashBillKind.SelectedIndex < 1 ? Van.CashKind.Persnal :Van.CashKind.Company,
                                                      txtCashBillRegNo.Text.Trim(),
                                                      "",
                                                      "",
                                                      Basic.MaskReplace(txtCashAmt.Text.Trim()),
                                                      "",
                                                      "",
                                                      "",
                                                      "",
                                                      lupCashBill_IdCode.EditValue.ToString() == "1" ? CashGbn.Card : CashGbn.None);
                        bizVan.Dispose();
                    }

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

                    if (Cashreqdata.IsAgreeError)
                    {
                        Basic.ShowMessage(1, Cashreqdata.Message);
                        return;
                    }

                    //승인여부
                    //DB 작업 실패시 삭제하기위해서
                    IsAgreeCash = true;
                }
                else
                {
                    if (cAutoReg.Checked)
                    {
                        DataRow[] dr        = Parm.mDataTable.dtZx010ms.Select("HEAD = 'Z0028' AND DETAIL = '0' AND USE_YN = 'Y' ");
                        Int32     _intInput = 0;
                        Int32     _intZ0028 = 0;
                        try
                        {
                            _intInput = Convert.ToInt32(txtCashAmt.Text.Replace(",", ""));
                        }
                        catch (Exception ex)
                        {
                            _intInput = -1;
                        }

                        try
                        {
                            _intZ0028 = Convert.ToInt32(dr[0]["ITEM2"].ToString());
                        }
                        catch (Exception)
                        {
                            _intZ0028 = 0;
                        }

                        if (_intInput >= _intZ0028)
                        {
                            using (BizVanComunication bizVan = new BizVanComunication())
                            {
                                Cashreqdata = bizVan.SendData("PROJECT_D",
                                                              JobKind.RegCash,
                                                              optCashBillKind.SelectedIndex < 1 ? Van.CashKind.Persnal : Van.CashKind.Company,
                                                              dr[0]["ITEM1"].ToString(),
                                                              "",
                                                              "",
                                                              Basic.MaskReplace(txtCashAmt.Text.Trim()),
                                                              "",
                                                              "",
                                                              "",
                                                              "", CashGbn.None);
                                bizVan.Dispose();
                            }

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

                            if (Cashreqdata.IsAgreeError)
                            {
                                Basic.ShowMessage(1, Cashreqdata.Message);
                                return;
                            }

                            //승인여부
                            //DB 작업 실패시 삭제하기위해서
                            IsAgreeCash = true;
                        }
                    }
                }

                string cashAgreeNo = Cashreqdata.AgreeNo;
                this.Cursor = Cursors.WaitCursor;
                //현금결제 루틴을 태운다.

                string v_ret = fn_110(amt.ToString(), IsAgreeCash, BizCommon.Parm_Pay.PAY_CODE_CASH, cashAgreeNo, empno, PayInfomation.RoomInfo.C_Reference);
                this.Cursor = Cursors.Default;
                if (v_ret != "OK")
                {
                    Basic.ShowMessage(1, v_ret);

                    if (IsAgreeCash)
                    {
                        //현금영수증 승인건이라면
                        //현금영수증을 취소한다.
                        /***********************************************************************************************************************************************/

                        Van.RecivedData CashCancelreq = new RecivedData();
                        using (BizVanComunication bizVan = new BizVanComunication())
                        {
                            CashCancelreq = bizVan.SendData("PROJECT_D",
                                                            JobKind.CancelCash,
                                                            optCashBillKind.SelectedIndex < 1 ? Van.CashKind.Persnal :Van.CashKind.Company,
                                                            txtCashBillRegNo.Text.Trim(),
                                                            "",
                                                            "",
                                                            Basic.MaskReplace(txtCashAmt.Text.Trim()),
                                                            "",
                                                            "",
                                                            "",
                                                            "",
                                                            lupCashBill_IdCode.EditValue.ToString() == "1" ? CashGbn.Card : CashGbn.None);
                            bizVan.Dispose();
                        }

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

                        if (CashCancelreq.IsAgreeError)
                        {
                            //cashAgreeNo
                            Basic.ShowMessage(1, "현금영수증 승인 후 DB 저장시 에러입니다.\n\r" +
                                              "현금영수증 승인 취소시 아래와 같은 에러로 취소하지 못하였습니다.\n\r\n\r" +
                                              "에러내용:\n\r" +
                                              CashCancelreq.Message + "\n\r\n\r" +
                                              "전산실에 문의하여 수기 취소바랍니다. \n\r\n\r" +
                                              "승인번호 : " + cashAgreeNo);

                            Van.Log.Log.SaveLog("[현금영수증승인후 - DB 저장시에러 - 현금영수증 승인취소시 -에러 ] - 승인번호 : " + cashAgreeNo);
                        }
                    }
                    return;
                }

                txtCashAmt.Text       = "0";
                txtCashBillRegNo.Text = "";
                Basic.ShowMessage(1, "저장 하였습니다.");
                RaiseDataReflashEvent(true);
            }
            catch (Exception ex)
            {
                Basic.ShowMessage(3, ex.Message);
            }
            finally
            {
                this.Cursor = Cursors.Default;
            }
        }
Esempio n. 2
0
        /// <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;
            }
        }