using System;
using System.Text;
using System.Drawing;
using System.Windows.Forms;
using System.Collections;
using System.Data;

using Cosmos.Win;
using Cosmos.BaseFrame;
using Cosmos.UserFrame;
using Cosmos.ServiceProvider;
using Cosmos.Common;
using Cosmos.CommonManager;

//#20181015 결제창 엑박 관련 이미지 미사용 처리 start
using System.Drawing.Drawing2D;
//#20181015 결제창 엑박 관련 이미지 미사용 처리 end

/*-----------------------------------------------------------------------------------------------*/
// 설      명 : 결제 팝업 백그라운드 화면
// 작  성  자 : 
// 변경  이력 : 
/*-----------------------------------------------------------------------------------------------*/
namespace Cosmos.Win
{
    public partial class frm_PayMainBack : Form
    {

        #region 변수 선언
        private PosStatus m_cPosStatus = new PosStatus();                           //기본정보 참조
        private StateServer StateObject = (StateServer)StateServer.GetInstance();   //StateObject : StateServer Object(객체)

        private SManager sManager = new SManager();                                 // 이 객체를 통해 업무 Service 호출
        private IDataCommonUs m_cDataCommon = null;                                 // POS 공통함수 인터페이스

        private ArrayList m_alMotDtl = new ArrayList();     // 결제 수단 정보 MOT 배열
        private int iMaxPage;                               // 결제 수단 정보 MOT 최대 페이지 수
        private int iNowPage;                               // 결제 수단 정보 MOT 현재 페이지
        private readonly string MotbtnName = "BtnMotPay";   // 결제 수단 기본 버튼명

        private string m_sFuncKey = "";                     // 결제 수단 기능키
        
        #endregion 변수 선언

        #region 생성자 & 소멸자 & 폼초기화
        public frm_PayMainBack()
        {
            InitializeComponent();

            base.SetStyle(ControlStyles.OptimizedDoubleBuffer | ControlStyles.AllPaintingInWmPaint | ControlStyles.ResizeRedraw, true);
            //this.UpdateStyles();   

            //#20181015 결제창 엑박 관련 이미지 미사용 처리 start
            this.picBack.Paint += new System.Windows.Forms.PaintEventHandler(this.picBack_Gradient);
            //#20181015 결제창 엑박 관련 이미지 미사용 처리 end
        }

        //#20181015 결제창 엑박 관련 이미지 미사용 처리 start
        #region picBack Paint 이벤트
        private void picBack_Gradient(object sender, PaintEventArgs e)
        {
            try
            {
                //picBack 그라데이션 처리
                #region picBack 그라데이션 처리
                Color startColor = Color.FromArgb(138, 147, 165);
                Color middleColor1 = Color.FromArgb(138, 147, 165);
                Color middleColor2 = Color.FromArgb(33, 44, 56);
                Color endColor = Color.FromArgb(33, 44, 56);

                LinearGradientBrush br = new LinearGradientBrush(this.picBack.ClientRectangle,
                                                                 System.Drawing.Color.FromArgb(255, 255, 255),
                                                                 System.Drawing.Color.Black,
                                                                 0,
                                                                 false);

                ColorBlend cb = new ColorBlend();
                //그라데이션 시작 위치 설정
                cb.Positions = new[] { 0, 1 / 10f, 1 / 2f, 1 };
                //그라데이션 시작 위치별 색상 설정
                cb.Colors = new[] { startColor, middleColor1, middleColor2, endColor };
                //그라데이션 처리 회전 각도
                br.RotateTransform(90);
                br.InterpolationColors = cb;

                e.Graphics.FillRectangle(br, this.picBack.ClientRectangle);
                #endregion picBack 그라데이션 처리
            }
            catch (Exception ex)
            {
                WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
                    System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message);
            }
        }
        #endregion picBack Paint 이벤트
        //#20181015 결제창 엑박 관련 이미지 미사용 처리 end

        protected void InitPayMainBack(PosStatus cPosStatus, IDataCommonUs cDataCommon, string sPosMenuKey, string sPAY_STEP, string sSeqNo)
        {
            m_cPosStatus = cPosStatus;
            m_cDataCommon = cDataCommon;

            picMotPayImg.Parent = pnlCardMot;

            m_sFuncKey = sPosMenuKey;

            //#20181015 결제창 엑박 관련 이미지 미사용 처리 start
            //변경
            //picBack.BackColor = Color.FromArgb(138, 147, 165);
            //#20181015 결제창 엑박 관련 이미지 미사용 처리 end

            btnExit.Image = ImageManager.GetImage(BaseCom.NxImgPath, ImageManager.BTN_CLOSE);
            if (btnExit.Image != null) btnExit.Text = "";

            string m_sEnterThemeColor = m_cPosStatus.ScnMst.ThemeColor;

            ////승인 종류 버튼 테마색상 적용!
            if (string.IsNullOrEmpty(m_sEnterThemeColor) == false)
            {
                if (m_sEnterThemeColor.Length == 9)
                    padInPut.ThemeColor = m_sEnterThemeColor;
            }
            padInPut.ClearBtnText = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0817);
            padInPut.SearchBtnText = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_1018);

            SetRichBoxMotMsg(rtbMotMain, PosConst.MOT_MSG_TYPE.DSP_SCN_MSG, sPosMenuKey, sSeqNo);

            //#15606 제휴서비스 결제 프로세스 개선 start
            //기능키를 넘겨 해당 기능키의 mot만 가져오도록 처리
            //기존
            //LoadMotPayHdr(m_cPosStatus.Sale.SaleMainPayStep); 
            //변경
            LoadMotPayHdr(m_cPosStatus.Sale.SaleMainPayStep, sPosMenuKey); 
            //#15606 제휴서비스 결제 프로세스 개선 end

            //LoadMotPayHdr(sPAY_STEP);            
        }
        #endregion

        #region 결제 MOT 처리
        /// <summary>
        /// 결제 MOT 초기화
        /// </summary>
        private void SetMotPayInit()
        {
            try
            {
                foreach (Control control in pnlCardMot.Controls)
                {
                    if (control is UI.CsmButton)
                    {
                        if (control.Text != "∧" && control.Text != " ∨")
                        {
                            control.Text = "";
                            control.Tag = "";
                            control.Visible = true;
                        }
                    }
                }

                rtbMotPayTxt.Text = "";
                picMotPayImg.Image = null;
            }
            catch (Exception ex)
            {
                WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
                   System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message);
            }
        }
        /// <summary>
        /// 결제 MOT 헤더 로드
        /// </summary>
        /// <param name="iStep"></param>
        //#15606 제휴서비스 결제 프로세스 개선 start
        //기능키를 넘겨 해당 기능키의 mot만 가져오도록 처리
        //기존
        //protected void LoadMotPayHdr(string sStep)
        //변경
        protected void LoadMotPayHdr(string sStep, string sPosMenuKey)
        //#15606 제휴서비스 결제 프로세스 개선 end
        {
            //헤더 로드
            m_alMotDtl.Clear();

            int iPage = 1;
            int iSeq = 1;

            SetMotPayInit();

            //#15606 제휴서비스 결제 프로세스 개선 start
            //기능키를 넘겨 해당 기능키의 mot만 가져오도록 처리
            //기존
            //DataTable dt = m_cDataCommon.SelectMOT(PosMst.MST_MOT_MSG.TABLE_NAME, sStep, "", "");
            //변경
            DataTable dt = m_cDataCommon.SelectMOT(PosMst.MST_MOT_MSG.TABLE_NAME, sStep, sPosMenuKey, "");
            //#15606 제휴서비스 결제 프로세스 개선 end

            if (dt == null || dt.Rows.Count <= 0) return;
            
            //배열 담기
            foreach (DataRow dr in dt.Rows)
            {
                if (iSeq == 6)
                {
                    iPage += 1;
                    iSeq = 1;
                }

                // 페이지 번호, 버튼명, 명, 태그 값
                m_alMotDtl.Add(new string[] { iPage.ToString(), string.Format("{0}{1:00}",MotbtnName,iSeq), CmUtil.GetDataRowStr(dr, PosMst.MST_MOT_MSG.DATA.MOT_NM)
                      ,string.Format("{0}^{1}^{2}^{3}",CmUtil.GetDataRowStr(dr, PosMst.MST_MOT_MSG.DATA.MSG_TYPE),CmUtil.GetDataRowStr(dr, PosMst.MST_MOT_MSG.DATA.CNNT_ID)
                                                     ,CmUtil.GetDataRowStr(dr, PosMst.MST_MOT_MSG.DATA.SEQ_NO),CmUtil.GetDataRowStr(dr, PosMst.MST_MOT_MSG.DATA.IMG_NM))
                      ,CmUtil.GetDataRowStr(dr, PosMst.MST_MOT_MSG.DATA.CNNT_ID)
                });

                //// 페이지 번호, 버튼명, 명, 태그 값
                //m_alMotDtl.Add(new string[] { iPage.ToString(), string.Format("{0}{1:00}",MotbtnName,iSeq), CmUtil.GetDataRowStr(dr, PosMst.MST_MOT_MSG.DATA.MOT_NM),
                //        CmUtil.GetDataRowStr(dr, PosMst.MST_MOT_MSG.DATA.MSG_TYPE) + CmUtil.GetDataRowStr(dr, PosMst.MST_MOT_MSG.DATA.CNNT_ID) + CmUtil.GetDataRowStr(dr, PosMst.MST_MOT_MSG.DATA.IMG_NM)});

                iSeq += 1;
            }

            // 보여주기
            iNowPage = 1;
            iMaxPage = iPage;

            SetBtnMotPay();

            //#15606 제휴서비스 결제 프로세스 개선 start
            //1:1 매칭인 경우에만 해당 mot 활성화
            //기존
            /*
            //2016-10-25 조성완과장 요청으로 신용카드 일때 선택 안함!
            if (m_sFuncKey != PosKey.MENU_KEY.CREDIT_CARD)
            {
                if (dt.Rows.Count > 0) FindFuncMot(); //BtnMotPay_Click(BtnMotPay01, null);
            }
            */
            //변경
            if (dt.Rows.Count == 1) FindFuncMot();
            //#15606 제휴서비스 결제 프로세스 개선 end

        }

        private void FindFuncMot()
        {
            try
            {
                if (m_alMotDtl == null || iMaxPage == 0) return;

                foreach (string[] atmp in m_alMotDtl)
                {
                    if (atmp[4] == m_sFuncKey)
                    {

                        BtnMotPay01.Text = atmp[2].ToString();
                        BtnMotPay01.Tag = atmp[3].ToString();
                        
                        iNowPage = CmUtil.IntParse(atmp[0]);
                        
                        string sTmp;

                        sTmp = BtnMotPay01.Tag.ToString();
                        
                        string[] aParam = sTmp.Split(new string[] { "^" }, StringSplitOptions.None);

                        string sCnntId = aParam[0];
                        string sMsgFlg = aParam[1];
                        string sSeqNo = aParam[2];
                        string sImgPath = aParam[3];

                        picMotPayImg.Image = ImageManager.GetImage(BaseCom.NxCDPPath + PosConst.MST_IMG_PATH.CDP_COM, sImgPath.Trim());

                        SetRichBoxMotMsg(rtbMotPayTxt, sCnntId, sMsgFlg, sSeqNo);

                        BtnMotPay02.Visible = false;
                        BtnMotPay03.Visible = false;
                        BtnMotPay04.Visible = false;
                        BtnMotPay05.Visible = false;

                        BtnMotPayUp.Enabled = true;
                        BtnMotPayDown.Enabled = true;

                        break;
                    }
                    
                }

            }
            catch (Exception ex)
            {
                WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
                   System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message);
            }
        }


        /// <summary>
        /// 결제 MOT 버튼 셋팅
        /// </summary>
        /// <returns></returns>
        public bool SetBtnMotPay()
        {
            try
            {
                SetMotPayInit();

                if (m_alMotDtl == null || iMaxPage == 0) return false;

                int iStrtNum = 1;
                foreach (string[] atmp in m_alMotDtl)
                {
                    if (atmp[0] == iNowPage.ToString())
                    {
                        Cosmos.UI.CsmButton btnCtl = (Cosmos.UI.CsmButton)pnlCardMot.Controls[atmp[1]];

                        if (btnCtl != null)
                        {
                            btnCtl.Text = atmp[2];
                            btnCtl.Tag = atmp[3];
                        }
                    }
                    iStrtNum += 1;
                }

                if (iNowPage == 1)
                {
                    BtnMotPayUp.Enabled = false;
                }
                else
                {
                    BtnMotPayUp.Enabled = true;
                }

                if (iMaxPage == iNowPage)
                {
                    BtnMotPayDown.Enabled = false;
                }
                else
                {
                    BtnMotPayDown.Enabled = true;
                }

                return true;
            }
            catch (Exception ex)
            {
                WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
                   System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message);

                return false;
            }
        }

        /// <summary>
        /// 결제 MOT 버튼 클릭
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void BtnMotPay_Click(object sender, EventArgs e)
        {
            try
            {
                if (((UI.CsmButton)sender).Text == "") return;

                if (BtnMotPay02.Visible == false)
                {
                    SetBtnMotPay();
                }
                else
                {

                    if (((UI.CsmButton)sender) == BtnMotPayUp)
                    {
                        if (iNowPage == 1) return;
                        iNowPage -= 1;
                        SetBtnMotPay();
                    }
                    else if (((UI.CsmButton)sender) == BtnMotPayDown)
                    {
                        if (iNowPage == iMaxPage) return;
                        iNowPage += 1;
                        SetBtnMotPay();
                    }
                    else
                    {
                        string sTmp;

                        BtnMotPay01.Text = ((UI.CsmButton)sender).Text;
                        BtnMotPay01.Tag = ((UI.CsmButton)sender).Tag;


                        sTmp = BtnMotPay01.Tag.ToString();


                        string[] aParam = sTmp.Split(new string[] { "^" }, StringSplitOptions.None);

                        string sCnntId = aParam[0];
                        string sMsgFlg = aParam[1];
                        string sSeqNo = aParam[2];
                        string sImgPath = aParam[3];

                        picMotPayImg.Image = ImageManager.GetImage(BaseCom.NxCDPPath + PosConst.MST_IMG_PATH.CDP_COM, sImgPath.Trim());

                        SetRichBoxMotMsg(rtbMotPayTxt, sCnntId, sMsgFlg, sSeqNo);


                        //sTmp = BtnMotPay01.Tag.ToString();

                        //picMotPayImg.Image = ImageManager.GetImage(BaseCom.NxCDPPath + PosConst.MST_IMG_PATH.CDP_COM, CmUtil.MidH(sTmp, 5, 50).Trim());

                        //SetRichBoxMotMsg(rtbMotPayTxt, CmUtil.MidH(sTmp, 0, 1), CmUtil.MidH(sTmp, 1, 4));

                        BtnMotPay02.Visible = false;
                        BtnMotPay03.Visible = false;
                        BtnMotPay04.Visible = false;
                        BtnMotPay05.Visible = false;
                        
                        BtnMotPayUp.Enabled = true;
                        BtnMotPayDown.Enabled = true;
                    }
                }

                try
                {
                    padInPut.ActiveControl.Focus();
                }
                catch { }
            }
            catch (Exception ex)
            {
                WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
                    System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message);
            }
        }
        #endregion

        #region 리치박스 MOT 텍스트 설정
        /// <summary>
        /// 리치박스 MOT 텍스트 설정
        /// </summary>
        /// <returns></returns>
        protected bool SetRichBoxMotMsg(RichTextBox rtbMot, string sMsgTp, string sMsgFlag, string sSeqNo)
        {
            try
            {
                rtbMot.Text = "";
                DataTable dtHead = m_cDataCommon.SelectMOT(PosMst.MST_MOT_MSG.TABLE_NAME, sMsgTp, sMsgFlag, sSeqNo);
                if (dtHead != null && dtHead.Rows.Count > 0)
                {
                    //#13753 POS MOT음성 기능 추가 개발요청 start,phj
                    //기존
                    /*
                    // 음성 사용 유무(0:미사용, 1:사용)
                    if (PosMstManager.GetPosOption(POS_OPTION.OPT309) != "0")
                    {
                        DataRow dr = dtHead.Rows[0];
                        if (CmUtil.GetDataRowStr(dr, PosMst.MST_MOT_MSG.DATA.SOUND_FILE_DIV) == "01")           // 00(없음), 01(WAVE), 02(TTS)
                        {
                            string sFilePath = BaseCom.NxCDPPath + PosConst.MST_IMG_PATH.CDP_COM + CmUtil.GetDataRowStr(dr, PosMst.MST_MOT_MSG.DATA.SOUND_FILE_NM);
                            CmUtil.PlaySound(sFilePath);
                        }
                        else if (CmUtil.GetDataRowStr(dr, PosMst.MST_MOT_MSG.DATA.SOUND_FILE_DIV) == "02")      // 00(없음), 01(WAVE), 02(TTS)
                        {
                            CmUtil.SpeakByTTSEngine(m_cPosStatus.Base.Country, CmUtil.GetDataRowStr(dr, PosMst.MST_MOT_MSG.DATA.TTS_DSCRP), 150);
                        }
                    }
                    */

                    //변경
                    // PCKR인 경우에는 직영만 음성파일 재생하도록 함! 
                    // PCKR이 아닌 경우에는 직영가맹 조건에 추가안함! 

                    //#20180214 마스터 수신 시 포스에서 설정한 MOT 값 변경안되도록 수정  start,phj
                    // 기존
                    /*
                    if (((m_cPosStatus.Mst.CntryDiv == ItemConst.CNTRY_DIV.KR && m_cPosStatus.Mst.CorpDiv == ItemConst.CORP_DIV.PC) == false) || //PCKR이 아니거나
                        (((m_cPosStatus.Mst.CntryDiv == ItemConst.CNTRY_DIV.KR && m_cPosStatus.Mst.CorpDiv == ItemConst.CORP_DIV.PC) == true) && m_cPosStatus.Mst.DrtFrcsDiv == "10")) //PCKR이고 직영일 때! 
                    {
                    */
                    //#20180214 마스터 수신 시 포스에서 설정한 MOT 값 변경안되도록 수정  end,phj

                    //#13753 POS MOT음성 기능 추가 개발요청 - 20180222 음성MOT 옵션처리 start,phj
                    if (((m_cPosStatus.Mst.CntryDiv == ItemConst.CNTRY_DIV.KR && m_cPosStatus.Mst.CorpDiv == ItemConst.CORP_DIV.PC) == false) || //PCKR이 아니거나
                        (((m_cPosStatus.Mst.CntryDiv == ItemConst.CNTRY_DIV.KR && m_cPosStatus.Mst.CorpDiv == ItemConst.CORP_DIV.PC) == true) &&
                         PosMstManager.GetPosOption(POS_OPTION.OPT331) == "1")) //PCKR이고 MOT옵션 사용 일 때! 
                    {
                    //#13753 POS MOT음성 기능 추가 개발요청 - 20180222 음성MOT 옵션처리 end,phj

                        // 음성 사용 유무(0:미사용, 1:사용)
                        if (PosMstManager.GetPosOption(POS_OPTION.OPT309) != "0")
                        {
                            DataRow dr = dtHead.Rows[0];
                            if (CmUtil.GetDataRowStr(dr, PosMst.MST_MOT_MSG.DATA.SOUND_FILE_DIV) == "01")           // 00(없음), 01(WAVE), 02(TTS)
                            {
                                string sFilePath = BaseCom.NxCDPPath + PosConst.MST_IMG_PATH.CDP_COM + CmUtil.GetDataRowStr(dr, PosMst.MST_MOT_MSG.DATA.SOUND_FILE_NM);
                                CmUtil.PlaySound(sFilePath);
                            }
                            else if (CmUtil.GetDataRowStr(dr, PosMst.MST_MOT_MSG.DATA.SOUND_FILE_DIV) == "02")      // 00(없음), 01(WAVE), 02(TTS)
                            {
                                CmUtil.SpeakByTTSEngine(m_cPosStatus.Base.Country, CmUtil.GetDataRowStr(dr, PosMst.MST_MOT_MSG.DATA.TTS_DSCRP), 150);
                            }
                        }
                    }
                    //#13753 POS MOT음성 기능 추가 개발요청 end,phj 
                }
                DataTable dtDetl = m_cDataCommon.SelectMOT(PosMst.MST_MOT_MSG_DTL.TABLE_NAME, sMsgTp, sMsgFlag, sSeqNo);
                if (dtDetl == null || dtDetl.Rows.Count <= 0) return false;
                
                int iStrtNum = 0;
                foreach (DataRow dr in dtDetl.Rows)
                {
                    string tmpStr = CmUtil.GetDataRowStr(dr, PosMst.MST_MOT_MSG_DTL.DATA.MSG);

                    //rtbMot.AppendText(tmpStr.Trim());
                    //rtbMot.Select(iStrtNum, tmpStr.Trim().Length);

                    rtbMot.AppendText(tmpStr);
                    rtbMot.Select(iStrtNum, tmpStr.Length);

                    rtbMot.SelectionColor = CmUtil.GetColorToString(CmUtil.GetDataRowStr(dr, PosMst.MST_MOT_MSG_DTL.DATA.FONT_COLOR));  // 백 컬러

                    int iFontSize = CmUtil.GetDataRowInt(dr, PosMst.MST_MOT_MSG_DTL.DATA.FONT_SIZE);

                    if (iFontSize <= 0)
                        iFontSize = 1;

                    rtbMot.SelectionFont = new Font(m_cPosStatus.Base.FONT, iFontSize);

                    if (CmUtil.GetDataRowStr(dr, PosMst.MST_MOT_MSG_DTL.DATA.NEW_LINE_YN) == "1")
                    {
                        rtbMot.AppendText("\n");
                        iStrtNum += 1;
                    }

                    //iStrtNum += tmpStr.Trim().Length; // +1; 
                    iStrtNum += tmpStr.Length; // +1; 
                }

                rtbMot.Select(0, 0);
                rtbMot.Refresh();

                return true;
            }
            catch (Exception ex)
            {
                WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
                   System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message);

                return false;
            }
        }
        #endregion

        private void rtbMotMain_Enter(object sender, EventArgs e)
        {
            padInPut.SetActiveFocus();
        }

        private void rtbMotPayTxt_Enter(object sender, EventArgs e)
        {
            padInPut.SetActiveFocus();
        }

        //#15606 제휴서비스 결제 프로세스 개선 start
        //제휴통합 창에서 상단 제휴사 선택시 mot및 음성mot 재설정
        
        #region 제휴통합 MOT 설정
        /// <summary>
        /// 제휴통합 MOT 설정
        /// </summary>
        public void SetMotMobileUnity(string sPosMenuKey, string sPAY_STEP)
        {
            try
            {
                m_sFuncKey = sPosMenuKey;

                SetRichBoxMotMsg(rtbMotMain, PosConst.MOT_MSG_TYPE.DSP_SCN_MSG, sPosMenuKey, "");

                LoadMotPayHdr(m_cPosStatus.Sale.SaleMainPayStep, sPosMenuKey);
            }
            catch (Exception ex)
            {
                WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
                   System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message);
            }
        }
        #endregion 제휴통합 MOT 설정
        
        //#15606 제휴서비스 결제 프로세스 개선 end
    }
}
