Ejemplo n.º 1
0
        /// <summary>
        /// 입금삭제
        /// </summary>
        /// <param name="sender">The source of the event.</param>
        /// <param name="e">The <see cref="System.EventArgs"/> instance containing the event data.</param>
        private void btnDelete_Click(object sender, EventArgs e)
        {
            try
            {
                //데이터가 없거나
                if (this.gridView.RowCount <= 0 || dt.Rows.Count <= 0 || this.gridView.FocusedRowHandle < 0)
                {
                    return;
                }
                //전체합계가
                int isum = int.Parse(dt.Compute("SUM(PAY_AMT)", "").ToString().Trim());
                //0이라면
                if (isum <= 0)
                {
                    return;
                }

                string msg = "발생일자 : {0}" + System.Environment.NewLine +
                             "입금구분 : {1}" + System.Environment.NewLine +
                             "입금금액 : {2}" + System.Environment.NewLine + System.Environment.NewLine +
                             "입금된 항목을 삭제 하시겠습니까?";

                string taskdate    = this.gridView.GetRowCellValue(this.gridView.FocusedRowHandle, "TASK_DATE").ToString().Trim();
                string paycodename = this.gridView.GetRowCellValue(this.gridView.FocusedRowHandle, "PAY_CODE_NAME").ToString().Trim();
                string payamt      = Num.SetCommaNumber(this.gridView.GetRowCellValue(this.gridView.FocusedRowHandle, "PAY_AMT").ToString().Trim());



                msg = string.Format(msg, taskdate, paycodename, payamt);

                if (Basic.ShowMessageQuestion(msg) == DialogResult.No)
                {
                    return;
                }

                //로우가 이지체크라면
                if (this.gridView.GetRowCellValue(this.gridView.FocusedRowHandle, "PAY_CODE").ToString().Trim() == Parm_Pay.RAISE_CODE_RSVAMT)
                {
                    Basic.ShowMessage(3, "입금취소된 예약금은 재입실시 재사용됩니다." + System.Environment.NewLine +
                                      "예약금 환불시에는 [퇴실정산]의 예약금환불 계정을 사용하십시요.");
                    return;
                }

                //전일자에 대한 삭제는 막는다.
                //TASK_DATE 와 비교한다.  //appdate

                string strTaskDate = Basic.MaskReplace(this.gridView.GetRowCellValue(this.gridView.FocusedRowHandle, "TASK_DATE").ToString().Trim());

                if (int.Parse(strTaskDate) < int.Parse(Appdate))
                {
                    Basic.ShowMessage(1, "전일자에 입금된 항목은 입금삭제가 불가능 합니다.");
                    return;
                }


                _Pay_UserMemo = "";
                //작업사유를 입력받는다.
                DAHAH06 f = new DAHAH06("확인", "참고사항 입력", "GetReturnFunction");
                f.Owner = this;
                f.ShowDialog();

                if (_Pay_UserMemo == "")
                {
                    //Basic.ShowMessage(1, "취소사유가 입력되지 않았습니다.");
                    return;
                }
                string memo         = _Pay_UserMemo;
                int    iRow         = this.gridView.GetDataSourceRowIndex(this.gridView.FocusedRowHandle);
                string facilitycode = dt.Rows[iRow]["FACILITY_CODE"].ToString().Trim();

                _Pay_UserCheck = "";
                //담당자체크기능 //
                DAHAH05 ff = new DAHAH05(facilitycode, "fn_Room_UserCheck");
                ff.Owner = this;
                ff.ShowDialog();

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


                string paycode = dt.Rows[iRow]["PAY_CODE"].ToString().Trim();

                _Pay_UserMemo  = "";
                _Pay_UserCheck = "";

                switch (paycode)
                {
                case BizCommon.Parm_Pay.PAY_CODE_CARD:     //120 카드
                    fn_120(dt.Rows[iRow], empno, memo);
                    break;

                case BizCommon.Parm_Pay.PAY_CODE_CARD2:    //125 이지체크
                    fn_125(dt.Rows[iRow], empno, memo);
                    break;

                case BizCommon.Parm_Pay.PAY_CODE_CASH:     //110 현금
                    fn_110(dt.Rows[iRow], empno, memo, "0");
                    break;

                case BizCommon.Parm_Pay.PAY_CODE_BANK:     // 115 예금
                    fn_115(dt.Rows[iRow], empno, memo, "0");
                    break;

                case BizCommon.Parm_Pay.PAY_CODE_RSV_AMT:     // 210 예약선수금
                    fn_210(dt.Rows[iRow], empno, memo, "0");
                    break;

                //case BizCommon.Parm_Pay.PAY_CODE_GOLF_DEFER: // 140 락카후불
                //    fn_140(dt.Rows[iRow] , empno , memo, "0");
                //    break;
                case BizCommon.Parm_Pay.PAY_CODE_GROUP_DEFER:     // 150 단체후불
                    fn_150(dt.Rows[iRow], empno, memo, "0");
                    break;

                case BizCommon.Parm_Pay.PAY_CODE_TRUST:     // 170 단체후불
                    fn_170(dt.Rows[iRow], empno, memo, "0");
                    break;

                case BizCommon.Parm_Pay.PAY_POINT:     // 181 포인트
                    fn_181(dt.Rows[iRow], empno, memo, "0");
                    break;

                default:
                    Basic.ShowMessage(1, "입금 취소 기능을 제공하지 않습다");
                    break;
                }
            }
            catch (Exception ex)
            {
                Basic.ShowMessage(3, ex.Message);
            }
        }
        /// <summary>
        ///125 - [이지체크] 항목삭제
        /// </summary>
        /// <param name="r">The r.</param>
        /// <param name="emp">The emp.</param>
        /// <param name="memo">The memo.</param>
        private void fn_125(DataRow r, string emp, string memo)
        {
            try
            {
                #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


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

                //원승인번호를 받는다.
                _Pay_UserMemo = "";
                DAHAH06 f = new DAHAH06("이지체크", "승인번호", "GetReturnFunction");
                f.Owner = this;
                f.ShowDialog();
                if (_Pay_UserMemo.Trim() == "")
                {
                    Basic.ShowMessage(1, "승인번호가 없습니다.");
                    return;
                }
                string checkregno = _Pay_UserMemo;


                //카드정보를 읽어온다.
                DataTable dtParm1 = DataLayer.GetDataTableParameter(DataLayer.DatatableStyle.Parameter);
                dtParm1.Rows.Add(new object[] { "V_BIZ_CODE", Parm.CurrentUserInformation.BizInfo.BizCode });
                dtParm1.Rows.Add(new object[] { "V_AGREE_NO", r["AGREE_NO"].ToString().Trim() });
                DataSet dsCardinfo = DataLayer.ExecuteSpDataset("PKG_DAZAZ02.PR_CARD_INFO", dtParm1, DataLayer.MessageEncoding.Default);

                if (dsCardinfo.Tables[0].Rows.Count <= 0)
                {
                    Basic.ShowMessage(1, "카드정보가 없습니다.");
                    return;
                }


                // 같은 승인 번호의 여러 결제건 처리
                string filter = " SALE_DATE = " + Basic.MaskReplace(r["TASK_DATE"].ToString().Trim())
                                + " AND BIZ_CODE = " + Parm.CurrentUserInformation.BizInfo.BizCode
                                + " AND FACILITY_CODE = " + r["FACILITY_CODE"].ToString().Trim()
                                + " AND POS_NO = " + "01"
                                + " AND BILL_NO = " + Basic.MaskReplace(Num.GetNumberOnly(Faci)) + Basic.MaskReplace(Num.GetNumberOnly(RoomNo))
                                + " AND PAY_SEQ = " + r["SEQ_NO"].ToString().Trim();
                DataRow[] drCardInfo = dsCardinfo.Tables[0].Select(filter);

                if (drCardInfo == null || drCardInfo.Length <= 0)
                {
                    Basic.ShowMessage(1, "해당 카드 결제 정보가 없습니다.");
                    return;
                }

                string saledate      = Appdate;
                string bizcode       = Parm.CurrentUserInformation.BizInfo.BizCode;
                string facilitycode  = r["FACILITY_CODE"].ToString().Trim();
                string billno        = Basic.MaskReplace(Num.GetNumberOnly(Faci)) + Basic.MaskReplace(Num.GetNumberOnly(RoomNo));
                string saleyn        = "Y";
                string payseq        = "일련번호현금의 seqno 에넎는다";
                string agreeyn       = "N";
                string saleamt       = (int.Parse(r["PAY_AMT"].ToString().Trim()) * -1).ToString().Trim();
                string cardno        = r["CARD_NO"].ToString().Trim();
                string validthru     = r["VALID_THRU"].ToString().Trim();
                string installentcnt = r["INSTALLMENT_CNT"].ToString().Trim();
                string agreeno       = checkregno;
                string orgagreeno    = r["AGREE_NO"].ToString().Trim();

                string card_co_code = drCardInfo[0]["CARD_CO_CODE"].ToString().Trim();
                string card_co_name = drCardInfo[0]["CARD_CO_NAME"].ToString().Trim();
                string issu_co_code = drCardInfo[0]["ISSU_CO_CODE"].ToString().Trim();
                string issu_co_name = drCardInfo[0]["ISSU_CO_NAME"].ToString().Trim();
                string card_join_no = drCardInfo[0]["CARD_JOIN_NO"].ToString().Trim();
                string agreedate    = "";
                string agreetime    = "";
                string track_Two    = "";
                string easyyn       = "Y";
                string tid          = "";
                string empno        = emp;
                string ip           = Parm.CurrentUserInformation.ip;


                //채번한다.
                DataTable dtParm = DataLayer.GetDataTableParameter(DataLayer.DatatableStyle.Parameter);
                dtParm.Rows.Add(new object[] { "V_SALE_DATE", saledate });
                dtParm.Rows.Add(new object[] { "V_BIZ_CODE", bizcode });
                dtParm.Rows.Add(new object[] { "V_FACILITY_CODE", facilitycode });
                dtParm.Rows.Add(new object[] { "V_POS_NO", "01" });
                dtParm.Rows.Add(new object[] { "V_BILL_NO", billno });
                dtParm.Rows.Add(new object[] { "V_SALE_YN", saleyn });

                payseq = DataLayer.ExecuteSpScala("PKG_DAZAZ02.PR_IAA030MS_KEY_SEQ", dtParm, DataLayer.MessageEncoding.Default);


                //일단 넘길테이블에 담는다.
                DataTable dtCard = Pay.CreditCard(saledate,
                                                  bizcode,
                                                  facilitycode,
                                                  billno,
                                                  saleyn,
                                                  payseq,
                                                  agreeyn,
                                                  saleamt,
                                                  cardno,
                                                  validthru,
                                                  installentcnt,
                                                  agreeno,
                                                  orgagreeno,
                                                  card_co_code,
                                                  card_co_name,
                                                  issu_co_code,
                                                  issu_co_name,
                                                  card_join_no,
                                                  agreedate,
                                                  agreetime,
                                                  track_Two,
                                                  easyyn,
                                                  tid,
                                                  empno,
                                                  ip);

                //카드정보는 담았다
                //현금정보를 동반해야되기때문에 현금정보를 담는다.



                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     = payseq;                                                    //순번
                string rmrk      = "[승인번호:" + agreeno + "] 사유:" + 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 editstatus      = "3";                                                 //작업구분


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

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

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


                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);

                DataSet dsTmp = DataLayer.AddProdedcure(new DataTable[] { dtcash, dtCard });

                string v_ret = DataLayer.ExecuteSpScalaTransaction(dsTmp, "OK", DataLayer.MessageEncoding.Default);

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

                fnSelect();

                Basic.ShowMessage(1, "취소 하였습니다.");
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 데이터를 인서트 합니다.
        /// </summary>
        private void fnInsert()
        {
            try
            {
                if (!btnInsert.Enabled)
                {
                    return;
                }
                int amt = int.Parse(this.txtAmt.Text.Trim().Replace(",", ""));

                if (ds == null)
                {
                    Basic.ShowMessage(1, "데이터가 조회되지 않았습니다.");
                    return;
                }
                else if (ds.Tables.Count < 2)
                {
                    Basic.ShowMessage(1, "조회 중 알수 없는 오류가 있었습니다. (DataTable 오류)\r\n재 조회 후 다시 처리 합십시요");
                    return;
                }
                else if (int.Parse(this.txtFrom_AfterAmt.Text.Trim().Replace(",", "")) < 0)
                {
                    Basic.ShowMessage(1, "보내는 객실 잔액이 0보다 작을 수 없습니다.");
                    return;
                }
                else if (ds.Tables[0].Rows.Count <= 0)
                {
                    Basic.ShowMessage(1, "보내는 객실정보가 없습니다.");
                    return;
                }
                else if (ds.Tables[1].Rows.Count <= 0)
                {
                    Basic.ShowMessage(1, "받는 객실정보가 없습니다.");
                    return;
                }
                else if (amt <= 0)
                {
                    Basic.ShowMessage(1, "금액은 0보다 커야됩니다.");
                    this.txtAmt.Focus();
                    return;
                }
                else if (ds.Tables[0].Rows.Count > 1)
                {
                    Basic.ShowMessage(1, "보내는 객실정보가 1건 이상 입니다. \r\n전산담당자에게 문의 바랍니다.");
                    return;
                }
                else if (ds.Tables[0].Rows.Count > 2)
                {
                    Basic.ShowMessage(1, "받는 객실정보가 1건 이상 입니다. \r\n전산담당자에게 문의 바랍니다.");
                    return;
                }


                _Pay_UserMemo = "";
                //작업사유를 입력받는다.
                DAHAH06 f = new DAHAH06("금액기반매출이체", "매출이체사유", "GetReturnFunction");
                f.Owner = this;
                f.ShowDialog();

                if (_Pay_UserMemo == "")
                {
                    //Basic.ShowMessage(1, "매출이체사유가 입력되지 않았습니다.");
                    return;
                }
                string memo = _Pay_UserMemo;

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

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

                _Pay_UserMemo  = "";
                _Pay_UserCheck = "";


                string ProcName = "";
                //프로시져호출
                //영업장이 같은때와 // 영업장이 틀릴때 구분하여 호출한다.
                DataTable dtParm = DataLayer.GetDataTableParameter(DataLayer.DatatableStyle.Parameter);
                if (_FromFacility == _ToFacility)
                {
                    dtParm.Rows.Add(new object[] { "V_BIZ_CODE", Parm.CurrentUserInformation.BizInfo.BizCode });
                    dtParm.Rows.Add(new object[] { "V_TASK_DATE", Parm.CurrentUserInformation.roomTask.gsTaskDate });
                    dtParm.Rows.Add(new object[] { "V_FROM_FACI_PART", _FromFaci });
                    dtParm.Rows.Add(new object[] { "V_FROM_FACILITY", _FromFacility });
                    dtParm.Rows.Add(new object[] { "V_FROM_MNG_NO", _FromMngNo });
                    dtParm.Rows.Add(new object[] { "V_FROM_MNG_SEQ", _FromMngSeq });
                    dtParm.Rows.Add(new object[] { "V_TO_FACI_PART", _ToFaci });
                    dtParm.Rows.Add(new object[] { "V_TO_FACILITY", _ToFacility });
                    dtParm.Rows.Add(new object[] { "V_TO_MNG_NO", _ToMngNo });
                    dtParm.Rows.Add(new object[] { "V_TO_MNG_SEQ", _ToMngSeq });
                    dtParm.Rows.Add(new object[] { "V_TRANS_AMT", amt.ToString() });
                    dtParm.Rows.Add(new object[] { "V_TRANS_REASON", memo });
                    dtParm.Rows.Add(new object[] { "V_EMP_NO", empno });
                    dtParm.Rows.Add(new object[] { "V_IP", Parm.CurrentUserInformation.ip });
                    ProcName = "PKG_DAHAH16.PR_03";
                }
                else
                {
                    dtParm.Rows.Add(new object[] { "V_BIZ_CODE", Parm.CurrentUserInformation.BizInfo.BizCode });
                    dtParm.Rows.Add(new object[] { "V_TASK_DATE", Parm.CurrentUserInformation.roomTask.gsTaskDate });
                    dtParm.Rows.Add(new object[] { "V_FROM_FACILITY", _FromFacility });
                    dtParm.Rows.Add(new object[] { "V_FROM_MNG_NO", _FromMngNo });
                    dtParm.Rows.Add(new object[] { "V_FROM_MNG_SEQ", _FromMngSeq });
                    dtParm.Rows.Add(new object[] { "V_TO_FACI_PART", _ToFaci });
                    dtParm.Rows.Add(new object[] { "V_TO_FACILITY", _ToFacility });
                    dtParm.Rows.Add(new object[] { "V_TO_MNG_NO", _ToMngNo });
                    dtParm.Rows.Add(new object[] { "V_TO_MNG_SEQ", _ToMngSeq });
                    dtParm.Rows.Add(new object[] { "V_TRANS_AMT", amt.ToString() });
                    dtParm.Rows.Add(new object[] { "V_TRANS_REASON", memo });
                    dtParm.Rows.Add(new object[] { "V_EMP_NO", empno });
                    dtParm.Rows.Add(new object[] { "V_IP", Parm.CurrentUserInformation.ip });
                    ProcName = "PKG_DAHAH16.PR_04";
                }

                string v_ret = DataLayer.ExecuteSpScala(ProcName, dtParm, DataLayer.MessageEncoding.Default);

                if (v_ret != "OK")
                {
                    Basic.ShowMessage(3, v_ret);
                    return;
                }
                SetClear();
                fnSelect();
                RaiseAmtReplaceEvent(int.Parse(txtFrom_AfterAmt.Text.Trim().Replace(",", "")));
                Basic.ShowMessage(1, "저장하였습니다.");
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }