//#13753 POS MOT음성 기능 추가 개발요청 start,phj
//#13753 POS MOT음성 기능 추가 개발요청 end,phj
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

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

namespace Cosmos.Win
{
    public partial class frmSoundMotSetting : Form
    {
        #region 변수 선언
        private SManager sManager = new SManager();
        private PosStatus m_cPosStatus = new PosStatus();                           // 기본정보 참조
        private StateServer StateObject = (StateServer)StateServer.GetInstance();   // StateObject : StateServer Object (객체)
        
        private IMasterUs m_cMstService = null;                                     // 마스터 인터페이스
        private IDatabaseSQL m_cSqlDbService = null;                                // 데이터베이스 관리
        protected IDataCommonUs m_cDataCommon = null;                               // 판매공통 모듈

        //private readonly Color m_clrSelectFont = Color.FromArgb(255, 255, 255);
        //private readonly Color m_clrSelectback = Color.FromArgb(109, 110, 113);
        //private readonly Color m_clrNonSelectFont = Color.FromArgb(109, 110, 113);
        //private readonly Color m_clrNonSelectback = Color.FromArgb(255, 255, 255);
        
        #endregion 변수 선언

        #region 생성자 & 소멸자
        public frmSoundMotSetting()
        {
            InitializeComponent();
            base.SetStyle(ControlStyles.OptimizedDoubleBuffer | ControlStyles.AllPaintingInWmPaint | ControlStyles.ResizeRedraw, true);
            m_cPosStatus = (PosStatus)StateObject.POS;      // POS 기본정보
            m_cDataCommon = (IDataCommonUs)sManager.InitServiceInstance(ServiceLists.ASV_DATA_PROCESS.DLL, ServiceLists.ASV_DATA_PROCESS.DATA_COMMON);
            m_cMstService = (IMasterUs)sManager.InitServiceInstance(ServiceLists.ASV_MASTER.DLL, ServiceLists.ASV_MASTER.POS_MASTER);
            m_cSqlDbService = (IDatabaseSQL)sManager.InitServiceInstance(ServiceLists.AGENT_DATABASE.DLL, ServiceLists.AGENT_DATABASE.DATABASE_MSSQL);
        }

        private void frmSoundMotSetting_Load(object sender, EventArgs e)
        {
            UserLog.WriteLogFile(UserCom.LOG_IOS, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
                    System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", "");
            
            InitControl();
        }

        private void frmSoundMotSetting_FormClosing(object sender, FormClosingEventArgs e)
        {
            UserLog.WriteLogFile(UserCom.LOG_IOS, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
                    System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", lblTitle.Text);
        }
        #endregion 생성자 & 소멸자

        #region 폼 컨트롤 초기화
        /// <summary>
        /// 폼 컨트롤 초기화
        /// </summary>
        private void InitControl()
        {
            try
            {
                FormManager.SetFormAllControlFont(this, m_cPosStatus.Base.FONT);
                FormManager.SetTextBoxGlobalInfo(this, m_cPosStatus.Global.m_stCultureMaster.nGroupingDigits, m_cPosStatus.Global.m_stCultureMaster.strGroupingSymbol,
                                                 m_cPosStatus.Global.m_stCultureMaster.nDecimalDigits, m_cPosStatus.Global.m_stCultureMaster.strDecimalSymbol);
                picBack.Image = ImageManager.GetImage(BaseCom.NxImgPath, ImageManager.POP_SIZE_800X600);
                btnExit.Image = ImageManager.GetImage(BaseCom.NxImgPath, ImageManager.BTN_CLOSE);
                if (btnExit.Image != null) btnExit.Text = "";
                //
                lblTitle.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_1094);
                lblNameTitle.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_1094);

                //#20180220 설정 저장 또는 실패 시 팝업 띄우기 / radio 컴포넌트 변경 start,phj
                /*
                rdoBtn01.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_1093); //사용
                rdoBtn02.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_1088); //미사용
                rdoBtn03.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_1093); //사용
                rdoBtn04.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_1088); //미사용
                rdoBtn05.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_1093); //사용
                rdoBtn06.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_1088); //미사용
                rdoBtn07.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_1093); //사용
                rdoBtn08.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_1088); //미사용
                */
                //#20180220 설정 저장 또는 실패 시 팝업 띄우기 / radio 컴포넌트 변경 end,phj

                lb_Contents01.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_1089); //"맞이인사 & HP표준";//맞이인사 & HP표준 
                lb_Contents02.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_1090); //"해피포인트 사용";//해피포인트 사용
                lb_Contents03.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_1091); //"현금 영수증";//현금 영수증
                lb_Contents04.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_1092); //"구매 영수증";//구매 영수증
                // 
                UseYN_Setting();

                //#16232 환경부 1회용컵 사용줄이기 관련 테이크인아웃 설정 start
                lblTakeInOutTitle.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_1172);
                lb_Contents05.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_1173); //"맞이인사 & HP표준";//맞이인사 & HP표준 
                lb_Contents06.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_1174); //"해피포인트 사용";//해피포인트 사용

                LoadPosConfig_ProdTakeInOut();
                //#16232 환경부 1회용컵 사용줄이기 관련 테이크인아웃 설정 end

            }
            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 Control Event
        private void btnExit_Click(object sender, EventArgs e)
        {
            this.Close();
        }
        #endregion Control Event

        #region User Method
        private void UseYN_Setting()
        {
            string sSql = string.Empty;
            try
            {
                // 사용 또는 미사용 디폴트 값 셋팅
                rdoBtn02.Checked = true;
                rdoBtn04.Checked = true;
                rdoBtn06.Checked = true;
                rdoBtn08.Checked = true;

                sSql  = "SELECT * ";
                sSql += "  FROM POSMST..MST_MOT_MSG "; 
                sSql += " WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "'";
                sSql += "       AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "'";
                sSql += "       AND MSG_TYPE = '" + PosConst.MOT_MSG_TYPE.DSP_SCN_MSG + "'";
                sSql += "       AND ";
                sSql += "       (";
                sSql += "           CNNT_ID = '" + PosKey.MENU_KEY.FIRSTPLU_INPUT + "'";          //맞이인사&HP표준= 99021
                sSql += "           OR CNNT_ID = '" + PosKey.MENU_KEY.HPP_USE_INPUT + "'";        //해피포인트사용 = 99022
                //sSql += "           OR CNNT_ID = '" + PosKey.MENU_KEY.CASH_RECEIPT_INPUT + "'"; //현금영수증     = 99023
                sSql += "           OR CNNT_ID = '" + PosKey.MENU_KEY.CASH + "'";                 //현금영수증     = 00007 // 현금 기능키로 대체 
                sSql += "           OR CNNT_ID = '" + PosKey.MENU_KEY.PHRASE_RECEIPT_INPUT + "'"; //구매영수증     = 99024
                sSql += "       )";

                DataTable dtMotInfo = m_cMstService.Select(new string[] { sSql });

                if (dtMotInfo == null || dtMotInfo.Rows.Count == 0)
                {
                    return;
                }
                else
                {
                    if (dtMotInfo != null && dtMotInfo.Rows.Count > 0)
                    {
                        //DataRow drMot = dtMotInfo.Rows[0];
                        foreach (DataRow drMot in dtMotInfo.Rows)
                        {
                            if (CmUtil.GetDataRowStr(drMot, PosMst.MST_MOT_MSG.DATA.CNNT_ID) == PosKey.MENU_KEY.FIRSTPLU_INPUT)
                            {
                                if (CmUtil.GetDataRowStr(drMot, PosMst.MST_MOT_MSG.DATA.USE_YN) == "1")
                                {
                                    rdoBtn01.Checked = true;
                                }
                            }
                            else if (CmUtil.GetDataRowStr(drMot, PosMst.MST_MOT_MSG.DATA.CNNT_ID) == PosKey.MENU_KEY.HPP_USE_INPUT)
                            {
                                if (CmUtil.GetDataRowStr(drMot, PosMst.MST_MOT_MSG.DATA.USE_YN) == "1")
                                {
                                    rdoBtn03.Checked = true;
                                }
                            }
                            //else if (CmUtil.GetDataRowStr(drMot, PosMst.MST_MOT_MSG.DATA.CNNT_ID) == PosKey.MENU_KEY.CASH_RECEIPT_INPUT)
                            else if (CmUtil.GetDataRowStr(drMot, PosMst.MST_MOT_MSG.DATA.CNNT_ID) == PosKey.MENU_KEY.CASH) // 현금 기능키로 대체 
                            {
                                if (CmUtil.GetDataRowStr(drMot, PosMst.MST_MOT_MSG.DATA.USE_YN) == "1")
                                {
                                    rdoBtn05.Checked = true;
                                }
                            }
                            else if (CmUtil.GetDataRowStr(drMot, PosMst.MST_MOT_MSG.DATA.CNNT_ID) == PosKey.MENU_KEY.PHRASE_RECEIPT_INPUT)
                            {
                                if (CmUtil.GetDataRowStr(drMot, PosMst.MST_MOT_MSG.DATA.USE_YN) == "1")
                                {
                                    rdoBtn07.Checked = 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;
            }
        }

        private void UseYN_Update()
        {
            string sSql = string.Empty;

            //#20180220 설정 저장 또는 실패 시 팝업 띄우기 / radio 컴포넌트 변경 start,phj
            string sErrMsg = string.Empty;
            int iResult = 0;
            //#20180220 설정 저장 또는 실패 시 팝업 띄우기 / radio 컴포넌트 변경 end,phj

            try
            {
                //사용유무 포스 설정 값으로 업데이트 

                string sSendYN_01 = string.Empty;
                sSendYN_01 = rdoBtn01.Checked == true ? "1" : "0";
                //#20180214 마스터 수신 시 포스에서 설정한 MOT 값 변경안되도록 수정  start,phj
                //sSql = "UPDATE POSMST..MST_MOT_MSG SET USE_YN = '" + sSendYN_01 + "'";
                sSql = "UPDATE POSMST..MST_MOT_MSG SET USE_YN = '" + sSendYN_01 + "' ,FILLER5 = 'POSSAVE'";
                //#20180214 마스터 수신 시 포스에서 설정한 MOT 값 변경안되도록 수정  end,phj
                sSql += " WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "'";
                sSql += "   AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "'";
                sSql += "   AND MSG_TYPE = '" + PosConst.MOT_MSG_TYPE.DSP_SCN_MSG + "'";
                sSql += "   AND CNNT_ID = '" + PosKey.MENU_KEY.FIRSTPLU_INPUT + "'";

                iResult = m_cSqlDbService.DBExecuteNonQuery(new string[] { sSql });
                //#20180220 설정 저장 또는 실패 시 팝업 띄우기 / radio 컴포넌트 변경 start,phj
                if (iResult != 1) 
                {
                    sErrMsg = lb_Contents01.Text.Trim();
                    UserLog.WriteLogFile(UserCom.LOG_DEBUG, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
                            System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", "MST_MOT_MSG UPDATE ERROR : " + iResult.ToString() + " >>" + sSql);
                }
                //#20180220 설정 저장 또는 실패 시 팝업 띄우기 / radio 컴포넌트 변경 end,phj

                string sSendYN_02 = string.Empty;
                sSendYN_02 = rdoBtn03.Checked == true ? "1" : "0";
                //#20180214 마스터 수신 시 포스에서 설정한 MOT 값 변경안되도록 수정  start,phj
                //sSql = "UPDATE POSMST..MST_MOT_MSG SET USE_YN = '" + sSendYN_02 + "'";
                sSql = "UPDATE POSMST..MST_MOT_MSG SET USE_YN = '" + sSendYN_02 + "' ,FILLER5 = 'POSSAVE'";
                //#20180214 마스터 수신 시 포스에서 설정한 MOT 값 변경안되도록 수정  end,phj
                sSql += " WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "'";
                sSql += "   AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "'";
                sSql += "   AND MSG_TYPE = '" + PosConst.MOT_MSG_TYPE.DSP_SCN_MSG + "'";
                sSql += "   AND CNNT_ID = '" + PosKey.MENU_KEY.HPP_USE_INPUT + "'";

                iResult = m_cSqlDbService.DBExecuteNonQuery(new string[] { sSql });
                //#20180220 설정 저장 또는 실패 시 팝업 띄우기 / radio 컴포넌트 변경 start,phj
                if (iResult != 1)
                {
                    if (string.IsNullOrEmpty(sErrMsg) == false)
                    {
                        sErrMsg = sErrMsg + "," + lb_Contents02.Text.Trim();
                    }
                    else
                    {
                        sErrMsg = lb_Contents02.Text.Trim();
                    }
                    UserLog.WriteLogFile(UserCom.LOG_DEBUG, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
                            System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", "MST_MOT_MSG UPDATE ERROR : " + iResult.ToString() + " >>" + sSql);
                }
                //#20180220 설정 저장 또는 실패 시 팝업 띄우기 / radio 컴포넌트 변경 end,phj

                string sSendYN_03 = string.Empty;
                sSendYN_03 = rdoBtn05.Checked == true ? "1" : "0";
                //#20180214 마스터 수신 시 포스에서 설정한 MOT 값 변경안되도록 수정  start,phj
                //sSql = "UPDATE POSMST..MST_MOT_MSG SET USE_YN = '" + sSendYN_03 + "'";
                sSql = "UPDATE POSMST..MST_MOT_MSG SET USE_YN = '" + sSendYN_03 + "' ,FILLER5 = 'POSSAVE'";
                //#20180214 마스터 수신 시 포스에서 설정한 MOT 값 변경안되도록 수정  end,phj
                sSql += " WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "'";
                sSql += "   AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "'";
                sSql += "   AND MSG_TYPE = '" + PosConst.MOT_MSG_TYPE.DSP_SCN_MSG + "'";
                //sSql += "   AND CNNT_ID = '" + PosKey.MENU_KEY.CASH_RECEIPT_INPUT + "'";
                sSql += "   AND CNNT_ID = '" + PosKey.MENU_KEY.CASH + "'"; //현금 기능키로 대체 

                iResult = m_cSqlDbService.DBExecuteNonQuery(new string[] { sSql });
                //#20180220 설정 저장 또는 실패 시 팝업 띄우기 / radio 컴포넌트 변경 start,phj
                if (iResult != 1)
                {
                    if (string.IsNullOrEmpty(sErrMsg) == false)
                    {
                        sErrMsg = sErrMsg + "," + lb_Contents03.Text.Trim();
                    }
                    else
                    {
                        sErrMsg = lb_Contents03.Text.Trim();
                    }
                    UserLog.WriteLogFile(UserCom.LOG_DEBUG, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
                            System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", "MST_MOT_MSG UPDATE ERROR : " + iResult.ToString() + " >>" + sSql);
                }
                //#20180220 설정 저장 또는 실패 시 팝업 띄우기 / radio 컴포넌트 변경 end,phj

                string sSendYN_04 = string.Empty;
                sSendYN_04 = rdoBtn07.Checked == true ? "1" : "0";
                //#20180214 마스터 수신 시 포스에서 설정한 MOT 값 변경안되도록 수정  start,phj
                //sSql = "UPDATE POSMST..MST_MOT_MSG SET USE_YN = '" + sSendYN_04 + "'";
                sSql = "UPDATE POSMST..MST_MOT_MSG SET USE_YN = '" + sSendYN_04 + "' ,FILLER5 = 'POSSAVE'";
                //#20180214 마스터 수신 시 포스에서 설정한 MOT 값 변경안되도록 수정  end,phj
                sSql += " WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "'";
                sSql += "   AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "'";
                sSql += "   AND MSG_TYPE = '" + PosConst.MOT_MSG_TYPE.DSP_SCN_MSG + "'";
                sSql += "   AND CNNT_ID = '" + PosKey.MENU_KEY.PHRASE_RECEIPT_INPUT + "'";

                iResult = m_cSqlDbService.DBExecuteNonQuery(new string[] { sSql });
                //#20180220 설정 저장 또는 실패 시 팝업 띄우기 / radio 컴포넌트 변경 start,phj
                if (iResult != 1)
                {
                    if (string.IsNullOrEmpty(sErrMsg) == false)
                    {
                        sErrMsg = sErrMsg + "," + lb_Contents04.Text.Trim();
                    }
                    else
                    {
                        sErrMsg = lb_Contents04.Text.Trim();
                    }
                    UserLog.WriteLogFile(UserCom.LOG_DEBUG, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
                            System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", "MST_MOT_MSG UPDATE ERROR : " + iResult.ToString() + " >>" + sSql);
                }
                //#20180220 설정 저장 또는 실패 시 팝업 띄우기 / radio 컴포넌트 변경 end,phj

                //#20180220 설정 저장 또는 실패 시 팝업 띄우기 / radio 컴포넌트 변경 start,phj
                if (string.IsNullOrEmpty(sErrMsg) == false)
                {
                    WinManager.ConfirmMessage(sErrMsg + ((char)13) + ((char)10) +  MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0417));
                }
                else
                {
                    WinManager.ConfirmMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0415));
                }
                //#20180220 설정 저장 또는 실패 시 팝업 띄우기 / radio 컴포넌트 변경 end,phj

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

        private void btnSave_Click(object sender, EventArgs e)
        {
            UseYN_Update(); // 저장 
            UseYN_Setting(); // 조회 
        }
        
        #endregion User Method

        //#16232 환경부 1회용컵 사용줄이기 관련 테이크인아웃 설정 start
        #region SavePosConfig   Pos 환경설정정보 저장 (PosConfig.INI)
        /// <summary>
        /// POS환경설정정보 파일저장 (PosConfig.INI)
        /// </summary>
        /// <returns></returns>
        public string SavePosConfig_ProdTakeInOut()
        {
            string sRet = UserCom.RST_ERR;
            try
            {
                CmMessage cmPosConfig = CmMessage.MakeMessageFromFile(BaseCom.NxIniPath + PosConst.INI_FILE_NAME.PosConfig);

                cmPosConfig.GetMessage("PRODTAKEINOUT".Trim()).MakeMessageOverWrite("ProdTakeInOutUse".Trim(), m_cPosStatus.Base.ProdTakeInOutUse);
                cmPosConfig.GetMessage("PRODTAKEINOUT".Trim()).MakeMessageOverWrite("ProdTakeInOutDiv".Trim(), m_cPosStatus.Base.ProdTakeInOutDiv);

                // 파일저장
                cmPosConfig.MakeFileFromMessage(BaseCom.NxIniPath + PosConst.INI_FILE_NAME.PosConfig);

                LoadPosConfig_ProdTakeInOut();

                sRet = UserCom.RST_OK;
            }
            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 sRet;
        }
        #endregion

        #region LoadPosConfig   Pos 환경설정정보 읽기(PosConfig.INI)
        /// <summary>
        /// POS환경설정정보 파일읽기 (PosConfig.INI)
        /// </summary>
        /// <returns></returns>
        public string LoadPosConfig_ProdTakeInOut()
        {
            string sRet = UserCom.RST_ERR;
            string sQuery = "";
            string sCmmTakeInOutUse = "";
            string sCmmTakeInOutDiv = "";

            try
            {
                //환경설정 정보 파일 읽기
                CmMessage cmPosConfig = CmMessage.MakeMessageFromFile(BaseCom.NxIniPath + PosConst.INI_FILE_NAME.PosConfig);

                m_cPosStatus.Base.ProdTakeInOutUse = CmUtil.StringNullEmpty(cmPosConfig.GetMessage("PRODTAKEINOUT").GetMessageValue("ProdTakeInOutUse"));
                m_cPosStatus.Base.ProdTakeInOutDiv = CmUtil.StringNullEmpty(cmPosConfig.GetMessage("PRODTAKEINOUT").GetMessageValue("ProdTakeInOutDiv"));

                //환경설정 정보가 없으면 공통코드의 기본값으로 설정
                if (m_cPosStatus.Base.ProdTakeInOutUse.Trim() == "" || m_cPosStatus.Base.ProdTakeInOutDiv.Trim() == "")
                {
                    //공통코드의 해당 영업조직 기본값 가져오기
                    sQuery += "SELECT TOP 1 * FROM POSMST..MST_CMM \n";
                    sQuery += " WHERE CMP_CD       = '" + m_cPosStatus.Base.CmpCd + "' \n";
                    sQuery += "   AND CMM_GRP_CD   = 'T0040' \n";
                    sQuery += "   AND SALES_ORG_CD = '" + m_cPosStatus.Base.BrandCd + "' \n";
                    sQuery += "   AND USE_YN       = '" + PosConst.MST_USE_YN.YES + "'\n";

                    DataTable dtTakeInOutInfo = m_cMstService.Select(new string[] { sQuery });

                    if (dtTakeInOutInfo != null && dtTakeInOutInfo.Rows.Count > 0)
                    {
                        DataRow drData = dtTakeInOutInfo.Rows[0];

                        sCmmTakeInOutUse = CmUtil.GetDataRowStr(drData, PosMst.MST_COMMON.DATA.CHAR_VAL_TITLE_VAL_01);
                        sCmmTakeInOutDiv = CmUtil.GetDataRowStr(drData, PosMst.MST_COMMON.DATA.CHAR_VAL_TITLE_VAL_02);
                    }

                    //Take In/Out 사용여부
                    if (m_cPosStatus.Base.ProdTakeInOutUse.Trim() == "")
                    {
                        m_cPosStatus.Base.ProdTakeInOutUse = sCmmTakeInOutUse;
                    }
                    //Take In/Out 기본값
                    if (m_cPosStatus.Base.ProdTakeInOutDiv.Trim() == "")
                    {
                        m_cPosStatus.Base.ProdTakeInOutDiv = sCmmTakeInOutDiv;
                    }

                }

                //Take In/Out 사용여부(0:미사용, 1:사용)
                if (m_cPosStatus.Base.ProdTakeInOutUse == "0")
                {
                    rdoBtnTakeUse2.Checked = true;
                }
                else if (m_cPosStatus.Base.ProdTakeInOutUse == "1")
                {
                    rdoBtnTakeUse1.Checked = true;
                }
                else
                {
                    rdoBtnTakeUse1.Checked = false;
                    rdoBtnTakeUse2.Checked = false;
                }

                //Take In/Out 기본값(1:Take In, 2:Take Out)
                if (m_cPosStatus.Base.ProdTakeInOutDiv == "1")
                {
                    rdoBtnTake1.Checked = true;
                }
                else if (m_cPosStatus.Base.ProdTakeInOutDiv == "2")
                {
                    rdoBtnTake2.Checked = true;
                }
                else
                {
                    rdoBtnTake1.Checked = false;
                    rdoBtnTake2.Checked = false;
                }

                sRet = UserCom.RST_OK;
            }
            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 sRet;
        }
        #endregion

        #region btnSave_TakeInOut_Click
        private void btnSave_TakeInOut_Click(object sender, EventArgs e)
        {
            string sRet = UserCom.RST_ERR;

            try
            {
                //Take In/Out 사용여부(0:미사용, 1:사용)
                if (rdoBtnTakeUse1.Checked == true)
                {
                    m_cPosStatus.Base.ProdTakeInOutUse = "1";
                }
                else
                {
                    m_cPosStatus.Base.ProdTakeInOutUse = "0";
                }

                //Take In/Out 기본값(1:Take In, 2:Take Out)
                if (rdoBtnTake1.Checked == true)
                {
                    m_cPosStatus.Base.ProdTakeInOutDiv = "1";
                }
                else
                {
                    m_cPosStatus.Base.ProdTakeInOutDiv = "2";
                }

                sRet = SavePosConfig_ProdTakeInOut();

                if (sRet == UserCom.RST_ERR)
                {
                    WinManager.ConfirmMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0417));
                    return;
                }

                sRet = LoadPosConfig_ProdTakeInOut();

                if (sRet == UserCom.RST_ERR)
                {
                    WinManager.ConfirmMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0417));
                    return;
                }

                WinManager.ConfirmMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0415));
            }
            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 btnSave_TakeInOut_Click
        //#16232 환경부 1회용컵 사용줄이기 관련 테이크인아웃 설정 end

    }
}
