public bool UpdateDisCRMRecord(
            DataTable dtDisMain, 
            DataTable dtDisItemNew, DataTable dtDisItemOld,
            DataTable dtDisStoreNew, DataTable dtDisStoreOld,
            string strDIS_NO,
            DbTransaction RootDBT)
        {
            #region

            bool bResult = false;
            bool IsRootTranscation = false;
            ArrayList ParameterList = new ArrayList();
            DataCompare dc = new DataCompare();
            DataTable dtDisMainDiff = null;

            DataTable dtDisItemDiff = null;
            DataTable dtDisItemAdd = null;
            DataTable dtDisItemDelete = null;

            DataTable dtDisStoreDiff = null;
            DataTable dtDisStoreAdd = null;
            DataTable dtDisStoreDelete = null;

            try
            {
                //判斷是否有傳入Root Transcation 
                IsRootTranscation = (RootDBT == null) ? true : false;


                #region 啟動交易或指定RootTranscation

                //4.1) 控制 Begin Transaction
                if (IsRootTranscation)
                {
                    //獨立呼叫啟動Transcation
                    Conn = USEDB.CreateConnection();
                    Conn.Open();
                    DBT = Conn.BeginTransaction();
                }
                else
                {
                    DBT = RootDBT;
                }

                #endregion

                #region biz logical


                #region 4.2) 更新配本主檔並記

                if (dtDisMain != null && dtDisMain.Rows.Count > 0)
                {
                    MaintainDisMain BCODisMain = new MaintainDisMain(ConnectionDB);
                    bResult = BCODisMain.UpdateDisMainFor111(dtDisMain, DBT);
                }
                else
                {
                    bResult = true;
                }

                if (!bResult)
                    throw new Exception(string.Format("MaintainDisCRMRecord.UpdateDisMainFor111:Step{0} 發生錯誤", "4.2"));
                #endregion

                #region 4.3) 更新配本商品與配本通路

                #region 比較新舊值
                dc.Clear();
                dc.CompareA = dtDisItemNew;
                dc.CompareB = dtDisItemOld;
                dc.CompareField.AddCompareFieldRow("DIS_NO", "", true);
                dc.CompareField.AddCompareFieldRow("ITEM", "", true);
                dc.CompareField.AddCompareFieldRow("PERIOD", "", true);
                dc.CompareField.AddCompareFieldRow("INCLUDE_NON_EFF", "", false);
                dc.CompareData();

                dtDisItemDiff = dc.ADiff;
                dtDisItemAdd = dc.AOnly;
                dtDisItemDelete = dc.BOnly;

                #endregion

                //處理新增  
                if (dtDisItemAdd != null && dtDisItemAdd.Rows.Count > 0)
                {
                    #region
                    MaintainDisItem BCODisItem = new MaintainDisItem(ConnectionDB);
                    MaintainDisChan BCODisChan = new MaintainDisChan(ConnectionDB);

                    bResult = BCODisItem.CreateDisItem(dtDisItemAdd, strDIS_NO, DBT);
                    if (!bResult)
                        throw new Exception(string.Format("MaintainDisItem.CreateDisItem:Step{0} 發生錯誤", "4.3"));


                    foreach (DataRow dr in dtDisItemAdd.Rows)
                    {
                        ParameterList.Clear();
                        ParameterList.Add(strDIS_NO);
                        ParameterList.Add(dr["ITEM"]);
                        ParameterList.Add(dr["PERIOD"]);
                        ParameterList.Add(dtDisMain.Rows[0]["RCHAN_NO"]);
                        ParameterList.Add(DBNull.Value);
                        ParameterList.Add(dr["CREATEDATE"]);
                        ParameterList.Add(dr["CREATEUID"]);
                        ParameterList.Add(DBNull.Value);
                        ParameterList.Add(dtDisMain.Rows[0]["ST_ACCEPT_DATE"]);
                        bResult = BCODisChan.CreateDisChan(ParameterList, DBT);

                        if (!bResult)
                            throw new Exception(string.Format("MaintainDisChan.CreateDisChan:Step{0} 發生錯誤", "4.3"));
                    }
                }
                else
                {
                    bResult = true;
                    #endregion
                }

                //處理更新  
                if (dtDisItemDiff != null && dtDisItemDiff.Rows.Count > 0)
                {
                    #region
                    MaintainDisItem BCODisItem = new MaintainDisItem(ConnectionDB);
                    MaintainDisChan BCODisChan = new MaintainDisChan(ConnectionDB);

                    bResult = BCODisItem.UpdateDisItemFor111(dtDisItemDiff, DBT);

                    if (!bResult)
                        throw new Exception(string.Format("MaintainDisItem.UpdateDisItemFor111:Step{0} 發生錯誤", "4.3"));


                    foreach (DataRow dr in dtDisItemDiff.Rows)
                    {
                        ParameterList.Clear();
                        //new
                        ParameterList.Add(dr["CODE", DataRowVersion.Current]);
                        ParameterList.Add(dr["UPDATEDATE", DataRowVersion.Current]);
                        ParameterList.Add(dr["UPDATEUID", DataRowVersion.Current]);
                        ParameterList.Add(dr["DIS_NO", DataRowVersion.Current]);
                        ParameterList.Add(dr["ITEM", DataRowVersion.Current]);
                        ParameterList.Add(dr["PERIOD", DataRowVersion.Current]);
                        ParameterList.Add(dr["CHAN_NO", DataRowVersion.Current]);
                        ParameterList.Add(dr["PLAN_RETURN_DATE", DataRowVersion.Current]);
                        ParameterList.Add(dr["DIS_TYPE", DataRowVersion.Current]);
                        ParameterList.Add(dr["PATTERN_NO", DataRowVersion.Current]);
                        ParameterList.Add(dr["DIS_BRATE", DataRowVersion.Current]);
                        ParameterList.Add(dr["DIS_STO_CQTY", DataRowVersion.Current]);
                        ParameterList.Add(dr["DIS_PRE_CQTY", DataRowVersion.Current]);
                        ParameterList.Add(dr["DIS_TOT_QTY", DataRowVersion.Current]);
                        ParameterList.Add(dr["DIS_TOT_OQTY", DataRowVersion.Current]);
                        ParameterList.Add(dr["DIS_TOT_PQTY", DataRowVersion.Current]);
                        ParameterList.Add(dr["IS_LOCK", DataRowVersion.Current]);
                        //old
                        ParameterList.Add(dr["ID", DataRowVersion.Original]);
                        ParameterList.Add(dr["CODE", DataRowVersion.Original]);
                        ParameterList.Add(dr["CREATEDATE", DataRowVersion.Original]);
                        ParameterList.Add(dr["CREATEUID", DataRowVersion.Original]);
                        ParameterList.Add(dr["UPDATEDATE", DataRowVersion.Original]);
                        ParameterList.Add(dr["UPDATEUID", DataRowVersion.Original]);
                        ParameterList.Add(dr["DIS_NO", DataRowVersion.Original]);
                        ParameterList.Add(dr["ITEM", DataRowVersion.Original]);
                        ParameterList.Add(dr["PERIOD", DataRowVersion.Original]);
                        ParameterList.Add(dr["CHAN_NO", DataRowVersion.Original]);
                        ParameterList.Add(dr["PLAN_RETURN_DATE", DataRowVersion.Original]);
                        ParameterList.Add(dr["DIS_TYPE", DataRowVersion.Original]);
                        ParameterList.Add(dr["PATTERN_NO", DataRowVersion.Original]);
                        ParameterList.Add(dr["DIS_BRATE", DataRowVersion.Original]);
                        ParameterList.Add(dr["DIS_STO_CQTY", DataRowVersion.Original]);
                        ParameterList.Add(dr["DIS_PRE_CQTY", DataRowVersion.Original]);
                        ParameterList.Add(dr["DIS_TOT_QTY", DataRowVersion.Original]);
                        ParameterList.Add(dr["DIS_TOT_OQTY", DataRowVersion.Original]);
                        ParameterList.Add(dr["DIS_TOT_PQTY", DataRowVersion.Original]);
                        ParameterList.Add(dr["IS_LOCK", DataRowVersion.Original]);

                        bResult = BCODisChan.UpdateDisChan(ParameterList, DBT);

                        if (!bResult)
                            throw new Exception(string.Format("MaintainDisChan.UpdateDisChan:Step{0} 發生錯誤", "4.3"));
                    }
                }
                else
                {
                    bResult = true;
                    #endregion
                }

                //處理刪除  
                if (dtDisItemDelete != null && dtDisItemDelete.Rows.Count > 0)
                {
                    #region
                    MaintainDisItem BCODisItem = new MaintainDisItem(ConnectionDB);

                    foreach (DataRow dr in dtDisItemDelete.Rows)
                    {
                        #region old
                        //ParameterList.Clear();
                        //ParameterList.Add(dr["ID", DataRowVersion.Original]);
                        //ParameterList.Add(dr["CODE", DataRowVersion.Original]);
                        //ParameterList.Add(dr["CREATEDATE", DataRowVersion.Original]);
                        //ParameterList.Add(dr["CREATEUID", DataRowVersion.Original]);
                        //ParameterList.Add(dr["UPDATEDATE", DataRowVersion.Original]);
                        //ParameterList.Add(dr["UPDATEUID", DataRowVersion.Original]);
                        //ParameterList.Add(dr["DIS_NO", DataRowVersion.Original]);
                        //ParameterList.Add(dr["ITEM", DataRowVersion.Original]);
                        //ParameterList.Add(dr["PERIOD", DataRowVersion.Original]);
                        //ParameterList.Add(dtDisMain.Rows[0]["RCHAN_NO"]);
                        //ParameterList.Add(dr["MEMO", DataRowVersion.Original]);

                        //bResult = BCODisItem.DeleteDisCRMItem(ParameterList, DBT);

                        //if (!bResult)
                        //    throw new Exception(string.Format("MaintainDisItem.DeleteDisCRMItem:Step{0} 發生錯誤", "4.3"));
                        #endregion

                        //20090930 modified
                        ParameterList.Clear();
                        ParameterList.Add(dr["UPDATEDATE", DataRowVersion.Original]);
                        ParameterList.Add(dr["UPDATEUID", DataRowVersion.Original]);
                        ParameterList.Add(dr["DIS_NO", DataRowVersion.Original]);
                        ParameterList.Add(dr["ITEM", DataRowVersion.Original]);
                        ParameterList.Add(dr["PERIOD", DataRowVersion.Original]);
                        bResult = BCODisItem.DeleteDisItemFor111(ParameterList, DBT);

                        if (!bResult)
                            throw new Exception(string.Format("MaintainDisItem.DeleteDisItemFor111:Step{0} 發生錯誤", "4.3"));
                    }
                }
                else
                {
                    bResult = true;
                    #endregion
                }


                #endregion

                #region 4.4) 更新配本門市檔

                #region 比較新舊值
                dc.Clear();
                dc.CompareA = dtDisStoreNew;
                dc.CompareB = dtDisStoreOld;
                dc.CompareField.AddCompareFieldRow("CODE", "", true);
                dc.CompareField.AddCompareFieldRow("ROUTE", "", false);
                dc.CompareField.AddCompareFieldRow("STEP", "", false);
                dc.CompareField.AddCompareFieldRow("DIS_QTY", "", false);
                dc.CompareData();

                dtDisStoreDiff = dc.ADiff;
                dtDisStoreAdd = dc.AOnly;
                dtDisStoreDelete = dc.BOnly;

                #endregion

                //處理新增  
                if (dtDisStoreAdd != null && dtDisStoreAdd.Rows.Count > 0)
                {
                    #region
                    MaintainDisStore BCODisStore = new MaintainDisStore(ConnectionDB);

                    foreach (DataRow dr in dtDisStoreAdd.Rows)
                    {

                        ParameterList.Clear();
                        ParameterList.Add(dr["CODE", DataRowVersion.Current]);
                        ParameterList.Add(dr["UPDATEDATE", DataRowVersion.Current]);
                        ParameterList.Add(dr["UPDATEUID", DataRowVersion.Current]);
                        ParameterList.Add(dr["DIS_NO", DataRowVersion.Current]);
                        ParameterList.Add(dr["ITEM", DataRowVersion.Current]);
                        ParameterList.Add(dr["PERIOD", DataRowVersion.Current]);
                        ParameterList.Add(dr["CHAN_NO", DataRowVersion.Current]);
                        ParameterList.Add(dr["STORE", DataRowVersion.Current]);
                        ParameterList.Add(dr["DIS_QTY", DataRowVersion.Current]);
                        ParameterList.Add(dr["PO_SOURCE_NO", DataRowVersion.Current]);
                        ParameterList.Add(dtDisMain.Rows[0]["ST_ACCEPT_DATE"]);
                        bResult = BCODisStore.CreateDisCRMStore(ParameterList, DBT);

                        if (!bResult)
                            throw new Exception(string.Format("MaintainDisStore.CreateDisCRMStore:Step{0} 發生錯誤", "4.4"));
                    
                    }
                }
                else
                {
                    bResult = true;
                    #endregion
                }

                //處理更新  
                if (dtDisStoreDiff != null && dtDisStoreDiff.Rows.Count > 0)
                {
                    #region
                    MaintainDisStore BCODisStore = new MaintainDisStore(ConnectionDB);

                    foreach (DataRow dr in dtDisStoreDiff.Rows)
                    {

                        ParameterList.Clear();
                        ParameterList.Add(dr["CODE", DataRowVersion.Current]);
                        ParameterList.Add(dr["UPDATEDATE", DataRowVersion.Current]);
                        ParameterList.Add(dr["UPDATEUID", DataRowVersion.Current]);
                        ParameterList.Add(dr["DIS_NO", DataRowVersion.Current]);
                        ParameterList.Add(dr["ITEM", DataRowVersion.Current]);
                        ParameterList.Add(dr["PERIOD", DataRowVersion.Current]);
                        ParameterList.Add(dr["CHAN_NO", DataRowVersion.Current]);
                        ParameterList.Add(dr["STORE", DataRowVersion.Current]);
                        ParameterList.Add(dr["DIS_QTY", DataRowVersion.Current]);
                        ParameterList.Add(dr["PO_SOURCE_NO", DataRowVersion.Current]);
                        ParameterList.Add(dtDisMain.Rows[0]["ST_ACCEPT_DATE"]);
                        bResult = BCODisStore.CreateDisCRMStore(ParameterList, DBT);

                        if (!bResult)
                            throw new Exception(string.Format("MaintainDisStore.CreateDisCRMStore:Step{0} 發生錯誤", "4.4"));
                    
                    }
                }
                else
                {
                    bResult = true;
                    #endregion
                }

                //處理刪除  
                if (dtDisStoreDelete != null && dtDisStoreDelete.Rows.Count > 0)
                {
                    #region
                    MaintainDisStore BCODisStore = new MaintainDisStore(ConnectionDB);

                    foreach (DataRow dr in dtDisStoreDelete.Rows)
                    {
                        ParameterList.Clear();
                        ParameterList.Add(dr["ID", DataRowVersion.Original]);
                        ParameterList.Add(dr["CODE", DataRowVersion.Original]);
                        ParameterList.Add(dr["CREATEDATE", DataRowVersion.Original]);
                        ParameterList.Add(dr["CREATEUID", DataRowVersion.Original]);
                        ParameterList.Add(dr["UPDATEDATE", DataRowVersion.Original]);
                        ParameterList.Add(dr["UPDATEUID", DataRowVersion.Original]);
                        ParameterList.Add(dr["DIS_NO", DataRowVersion.Original]);
                        ParameterList.Add(dr["ITEM", DataRowVersion.Original]);
                        ParameterList.Add(dr["PERIOD", DataRowVersion.Original]);
                        ParameterList.Add(dr["CHAN_NO", DataRowVersion.Original]);
                        ParameterList.Add(dr["STORE", DataRowVersion.Original]);
                        ParameterList.Add(dr["DIS_QTY", DataRowVersion.Original]);
                        ParameterList.Add(dr["PO_SOURCE_NO", DataRowVersion.Original]);

                        bResult = BCODisStore.DeleteDisStore(ParameterList, DBT);

                        if (!bResult)
                            throw new Exception(string.Format("MaintainDisStore.DeleteDisStore:Step{0} 發生錯誤", "4.4"));
                    }
                }
                else
                {
                    bResult = true;
                    #endregion
                }

                #endregion


                #region  4.5) 呼叫 PKG_VDS_ALO_COMM.lf_area_qty

                if (dtDisItemOld != null && dtDisItemOld.Rows.Count > 0)
                {
                    ParameterList.Clear();
                    ParameterList.Add(strDIS_NO);
                    ParameterList.Add(dtDisItemOld.Rows[0]["ITEM"]);
                    ParameterList.Add(dtDisItemOld.Rows[0]["PERIOD"]);
                    ParameterList.Add(dtDisMain.Rows[0]["RCHAN_NO"]);
                    ParameterList.Add("X");
                    VDS_ALO_COMMON_DBO DBO_COMM = new VDS_ALO_COMMON_DBO(ref USEDB);
                    bResult = DBO_COMM.doLp_area_disqty(ParameterList, DBT);
                }

                if (!bResult)
                    throw new Exception(string.Format("{0} 發生失敗", "呼叫 PKG_VDS_ALO_COMM.lf_area_qty"));
                #endregion


                #region 4.6) 異動其他相關資料表

                if (dtDisItemOld != null && dtDisItemOld.Rows.Count > 0)
                {
                    ParameterList.Clear();
                    ParameterList.Add(strDIS_NO);
                    ParameterList.Add(dtDisItemOld.Rows[0]["ITEM"]);
                    ParameterList.Add(dtDisItemOld.Rows[0]["PERIOD"]);
                    ParameterList.Add(dtDisItemOld.Rows[0]["ROOT_NO"]);
                    ProcessALOCommon BCOProcessCommon = new ProcessALOCommon(ConnectionDB);
                    bResult = BCOProcessCommon.UpdateOtherTables(ParameterList, DBT);
                }

                if (!bResult)
                    throw new Exception(string.Format("ProcessALOCommon.UpdateOtherTables:Step{0} 發生錯誤", "4.6"));

                #endregion


                #endregion

                #region 交易成功

                if (IsRootTranscation)
                {
                    //獨立呼叫Transcation成立
                    DBT.Commit();
                }

                #endregion

            }
            catch (Exception ex)
            {
                #region 交易失敗

                if (IsRootTranscation)
                {
                    //獨立呼叫Transcation失敗
                    DBT.Rollback();
                }

                #endregion

                bResult = false;

                throw GetNewException(ex);
            }
            finally
            {
                #region 判斷是否關閉交易連線

                if (IsRootTranscation)
                {
                    //獨立呼叫Transcation,關閉連線
                    if (Conn.State == ConnectionState.Connecting)
                    {
                        Conn.Close();
                    }
                }

                #endregion

            }


            return bResult;

            #endregion
        }
        /// <summary>
        /// 依條件,產生配本記錄(含配本主檔、配本商品、配本通路、配本參照設定、配本通路參照) 
        /// </summary>
        /// <param name="dtDisTmpRec">配本輔助項目設定</param>
        /// <param name="dtDisMain">新增配本主檔</param>
        /// <param name="dtDisItem">新增配本商品</param>
        /// <param name="dtDisChan">新增配本通路</param>
        /// <param name="dtDisItemRefer">新增配本參照</param>
        /// <param name="dtDisType109Tmp">109等級配本設定</param>
        /// <param name="dtDisTypeTmp">105類似配本/110定額配本設定</param>
        /// <param name="vItem">品號</param>
        /// <param name="vPeriod">期別</param>
        /// <param name="vUserID">使用者</param>
        /// <param name="RootDBT"></param>
        /// <returns></returns>
        public string CreateDisRecordFor131(
            DataTable dtDisTmpRec, DataTable dtDisMain, DataTable dtDisItem, DataTable dtDisChan,
            DataTable dtDisItemRefer, DataTable dtDisType109Tmp, DataTable dtDisTypeTmp,
            string vItem, string vPeriod, string vUserID, DbTransaction RootDBT)
        {
            #region
            string strDisNo = "";

            bool bResult = false;
            bool IsRootTranscation = false;
            ArrayList ParameterList = new ArrayList();

            try
            {
                //判斷是否有傳入Root Transcation 
                IsRootTranscation = (RootDBT == null) ? true : false;


                #region 啟動交易或指定RootTranscation

                //4.1) 控制 Begin Transaction
                if (IsRootTranscation)
                {
                    //獨立呼叫啟動Transcation
                    Conn = USEDB.CreateConnection();
                    Conn.Open();
                    DBT = Conn.BeginTransaction();
                }
                else
                {
                    DBT = RootDBT;
                }

                #endregion

                #region biz logical


                #region 4.2) 新增配本主檔並記錄回傳配本序號
                if (dtDisMain != null && dtDisMain.Rows.Count > 0)
                {
                    MaintainDisMain BCODisMain = new MaintainDisMain(ConnectionDB);
                    bResult = BCODisMain.CreateDisMainFor111(dtDisMain, ref strDisNo, DBT);
                }
                else
                {
                    bResult = true;
                }

                if (!bResult)
                    throw new Exception(string.Format("MaintainDisRecord.CreateDisRecordFor131:Step{0} 發生錯誤", "4.2"));
                #endregion

                #region 4.3) 新增配本商品檔
                if (dtDisItem != null && dtDisItem.Rows.Count > 0)
                {
                    MaintainDisItem BCODisItem = new MaintainDisItem(ConnectionDB);
                    bResult = BCODisItem.CreateDisItemFor131(dtDisItem, strDisNo, DBT);
                }
                else
                {
                    bResult = true;
                }


                if (!bResult)
                    throw new Exception(string.Format("MaintainDisRecord.CreateDisRecordFor131:Step{0} 發生錯誤", "4.3"));

                #endregion

                #region 4.4) 新增配本通路檔
                if (dtDisChan != null && dtDisChan.Rows.Count > 0)
                {
                    MaintainDisChan BCODisChan = new MaintainDisChan(ConnectionDB);
                    bResult = BCODisChan.CreateDisChanFor131(dtDisChan, strDisNo, DBT);
                }
                else
                {
                    bResult = true;
                }

                if (!bResult)
                    throw new Exception(string.Format("MaintainDisRecord.CreateDisRecordFor131:Step{0} 發生錯誤", "4.4"));
                #endregion

                #region 4.5) 新增配本參照設定
                if (dtDisItemRefer != null && dtDisItemRefer.Rows.Count > 0)
                {
                    MaintainDisItemRefer BCODisItemRefer = new MaintainDisItemRefer(ConnectionDB);
                    bResult = BCODisItemRefer.CreateDisItemReferForAll(dtDisItemRefer, dtDisChan, strDisNo, vItem, vPeriod, DBT);
                }
                else
                {
                    bResult = true;
                }

                if (!bResult)
                    throw new Exception(string.Format("MaintainDisItemRefer.CreateDisRecordFor131:Step{0} 發生錯誤", "4.5"));
                #endregion

                #region 4.6) 維護配本輔助項目設定
                if (dtDisTmpRec != null && dtDisTmpRec.Rows.Count > 0)
                {
                    #region

                    MaintainDisAssist BCODisAssist = new MaintainDisAssist(ConnectionDB);
                    DataTable dtDisAssist = BCODisAssist.GetDisAssistMainSchema();
                    #endregion



                    //a) 判斷是否需新增特殊調整
                    if (dtDisTmpRec.Rows[0]["SP_CHANGE"] != null && dtDisTmpRec.Rows[0]["SP_CHANGE"].ToString().Trim() != "0")
                    {
                        #region 新增特殊調整(ASSIST_CODE='09')
                        DataRow dr = dtDisAssist.NewRow();
                        dr["DIS_NO"] = strDisNo;
                        dr["ITEM"] = vItem;
                        dr["PERIOD"] = vPeriod;
                        dr["CHAN_NO"] = "0";//新增時固定為0
                        dr["ASSIST_CODE"] = "09";
                        dr["OPERATOR1"] = DBNull.Value;
                        dr["OP_VALUE1"] = DBNull.Value;
                        dr["OPERATOR2"] = DBNull.Value;
                        dr["OP_VALUE2"] = DBNull.Value;
                        dr["CHANGE_TYPE"] = DBNull.Value;
                        dr["CHANGE_RATE"] = DBNull.Value;
                        dr["ORDER_CHANGE"] = DBNull.Value;
                        dr["UPDATEDATE"] = DateTime.Now;
                        dr["UPDATEUID"] = vUserID;
                        dtDisAssist.Rows.Add(dr);

                        bResult = BCODisAssist.CreateDisAssist(dtDisAssist, null, DBT);

                        #endregion
                    }

                    //b) 判斷是否需新增訂單匯入

                    if (dtDisTmpRec.Rows[0]["ORDER_CHANGE"] != null && dtDisTmpRec.Rows[0]["ORDER_CHANGE"].ToString().Trim() != "0")
                    {
                        #region 新增訂單匯入(ASSIST_CODE='10'),
                        DataRow dr = dtDisAssist.NewRow();
                        dr["DIS_NO"] = strDisNo;
                        dr["ITEM"] = vItem;
                        dr["PERIOD"] = vPeriod;
                        dr["CHAN_NO"] = "0";//新增時固定為0
                        dr["ASSIST_CODE"] = "10";
                        dr["OPERATOR1"] = DBNull.Value;
                        dr["OP_VALUE1"] = DBNull.Value;
                        dr["OPERATOR2"] = DBNull.Value;
                        dr["OP_VALUE2"] = DBNull.Value;
                        dr["CHANGE_TYPE"] = DBNull.Value;
                        dr["CHANGE_RATE"] = DBNull.Value;
                        dr["ORDER_CHANGE"] = dtDisTmpRec.Rows[0]["ORDER_CHANGE"].ToString().Trim();
                        dr["UPDATEDATE"] = DateTime.Now;
                        dr["UPDATEUID"] = vUserID;
                        dtDisAssist.Rows.Add(dr);

                        bResult = BCODisAssist.CreateDisAssist(dtDisAssist, null, DBT);

                        #endregion
                    }
                }
                else
                {
                    bResult = true;
                }

                if (!bResult)
                    throw new Exception(string.Format("MaintainDisAssist.CreateDisAssist:Step{0} 發生錯誤", "4.6"));
                #endregion

                #region 4.7) 若dtDisItem.Rows.DIS_TYPE ='109' =>需判斷是否記錄109等級配本設定
                if (dtDisItem != null && dtDisItem.Rows.Count > 0)
                {
                    if (dtDisItem.Rows[0]["DIS_TYPE"].ToString().Trim() == "109")
                    {
                        if (dtDisType109Tmp != null && dtDisType109Tmp.Rows.Count > 0)
                        {
                            MaintainDisType109Tmp BCODisType109 = new MaintainDisType109Tmp(ConnectionDB);
                            bResult = BCODisType109.SaveDisType109Tmp(dtDisType109Tmp, strDisNo, vItem, vPeriod, DBT);
                        }

                    }
                }
                else
                {
                    bResult = true;
                }

                if (!bResult)
                    throw new Exception(string.Format("MaintainDisType109Tmp.SaveDisType109Tmp:Step{0} 發生錯誤", "4.7"));

                #endregion

                #region 4.8) 若dtDisItem.Rows.DIS_TYPE in ('105','110') =>需判斷是否記錄105類似配本/110定額配本設定記錄
                if (dtDisItem != null && dtDisItem.Rows.Count > 0)
                {
                    if (dtDisItem.Rows[0]["DIS_TYPE"].ToString().Trim() == "105" || dtDisItem.Rows[0]["DIS_TYPE"].ToString().Trim() == "110")
                    {
                        if (dtDisTypeTmp != null && dtDisTypeTmp.Rows.Count > 0)
                        {
                            MaintainDisTypeTmp BCODisType = new MaintainDisTypeTmp(ConnectionDB);
                            bResult = BCODisType.SaveDisTypeTmp(dtDisTypeTmp, strDisNo, vItem, vPeriod, DBT);
                        }

                    }
                }
                else
                {
                    bResult = true;
                }

                if (!bResult)
                    throw new Exception(string.Format("MaintainDisTypeTmp.SaveDisTypeTmp:Step{0} 發生錯誤", "4.8"));

                #endregion

                #region 4.9) 異動其他相關資料表
                ParameterList.Clear();
                ParameterList.Add(strDisNo);
                ParameterList.Add(vItem);
                ParameterList.Add(vPeriod);
                ParameterList.Add(vUserID);

                ProcessALOCommon BCOProcessCommon = new ProcessALOCommon(ConnectionDB);

                bResult = BCOProcessCommon.UpdateOtherTables(ParameterList, DBT);

                if (!bResult)
                    throw new Exception(string.Format("ProcessALOCommon.UpdateOtherTables:Step{0} 發生錯誤", "4.9"));

                #endregion


                #endregion

                #region 交易成功

                if (IsRootTranscation)
                {
                    //獨立呼叫Transcation成立
                    DBT.Commit();
                }

                #endregion

            }
            catch (Exception ex)
            {
                #region 交易失敗

                if (IsRootTranscation)
                {
                    //獨立呼叫Transcation失敗
                    DBT.Rollback();
                }

                #endregion

                strDisNo = "";

                throw GetNewException(ex);
            }
            finally
            {
                #region 判斷是否關閉交易連線

                if (IsRootTranscation)
                {
                    //獨立呼叫Transcation,關閉連線
                    if (Conn.State == ConnectionState.Connecting)
                    {
                        Conn.Close();
                    }
                }

                #endregion

            }


            return strDisNo;
            #endregion
        }
        public bool UpdateDisRecordFor131(
            DataTable dtDisTmpRecNew, DataTable dtDisTmpRecOld,
            DataTable dtDisMainNew, DataTable dtDisMainOld,
            DataTable dtDisItemNew, DataTable dtDisItemOld,
            DataTable dtDisChanNew, DataTable dtDisChanOld,
            DataTable dtDisItemReferNew, DataTable dtDisItemReferOld,
            DataTable dtDisType109TmpNew, DataTable dtDisType109TmpOld,
            DataTable dtDisTypeTmpNew, DataTable dtDisTypeTmpOld, DataTable dtDisChanReferNEW,
            string vDisNo, string vItem, string vPeriod, string vUserID, string vStAcceptDate, DbTransaction RootDBT)
        {
            #region

            bool bResult = false;
            bool IsRootTranscation = false;
            ArrayList ParameterList = new ArrayList();
            DataCompare dc = new DataCompare();
            DataTable dtDisMainDiff = null;
            DataTable dtDisItemDiff = null;

            DataTable dtDisChanDiff = null;
            DataTable dtDisChanAdd = null;
            DataTable dtDisChanDelete = null;

            DataTable dtDisItemReferDiff = null;
            DataTable dtDisItemReferAdd = null;
            DataTable dtDisItemReferDelete = null;

            DataTable dtDisTmpRecDiff = null;
            DataTable dtDisTypeTmpDiff = null;
            DataTable dtDisTypeTmpDelete = null;

            DataTable dtDisType109TmpDiff = null;

            try
            {
                //判斷是否有傳入Root Transcation 
                IsRootTranscation = (RootDBT == null) ? true : false;


                #region 啟動交易或指定RootTranscation

                //4.1) 控制 Begin Transaction
                if (IsRootTranscation)
                {
                    //獨立呼叫啟動Transcation
                    Conn = USEDB.CreateConnection();
                    Conn.Open();
                    DBT = Conn.BeginTransaction();
                }
                else
                {
                    DBT = RootDBT;
                }

                #endregion

                #region biz logical


                #region 4.2) 更新配本主檔並記

                #region 比較新舊值
                dc.Clear();
                dc.CompareA = dtDisMainNew;
                dc.CompareB = dtDisMainOld;
                dc.CompareField.AddCompareFieldRow("DIS_NO", "", true);
                dc.CompareField.AddCompareFieldRow("ST_ACCEPT_DATE", "", false);
                dc.CompareData();
                dtDisMainDiff = dc.ADiff;
                #endregion

                if (dtDisMainDiff != null && dtDisMainDiff.Rows.Count > 0)
                {
                    MaintainDisMain BCODisMain = new MaintainDisMain(ConnectionDB);
                    bResult = BCODisMain.UpdateDisMainFor111(dtDisMainDiff, DBT);
                }
                else
                {
                    bResult = true;
                }

                if (!bResult)
                    throw new Exception(string.Format("MaintainDisRecord.UpdateDisMainFor111:Step{0} 發生錯誤", "4.2"));
                #endregion

                #region 4.3) 更新配本商品檔

                #region 比較新舊值
                dc.Clear();
                dc.CompareA = dtDisItemNew;
                dc.CompareB = dtDisItemOld;
                dc.CompareField.AddCompareFieldRow("DIS_NO", "", true);
                dc.CompareField.AddCompareFieldRow("ITEM", "", true);
                dc.CompareField.AddCompareFieldRow("PERIOD", "", true);
                dc.CompareField.AddCompareFieldRow("INCLUDE_NON_EFF", "", false);
                dc.CompareField.AddCompareFieldRow("DIS_TYPE", "", false);
                dc.CompareField.AddCompareFieldRow("DIS_PRE_QTY", "", false);
                dc.CompareField.AddCompareFieldRow("DIS_QTY", "", false);
                dc.CompareField.AddCompareFieldRow("CHAN_TYPE", "", false);


                dc.CompareData();
                dtDisItemDiff = dc.ADiff;
                #endregion

                if (dtDisItemDiff != null && dtDisItemDiff.Rows.Count > 0)
                {
                    MaintainDisItem BCODisItem = new MaintainDisItem(ConnectionDB);
                    bResult = BCODisItem.UpdateDisItemFor111(dtDisItemDiff, DBT);
                }
                else
                {
                    bResult = true;
                }


                if (!bResult)
                    throw new Exception(string.Format("MaintainDisRecord.UpdateDisItemFor111:Step{0} 發生錯誤", "4.3"));

                #endregion

                #region 4.4) 更新配本通路檔

                #region 比較新舊值
                dc.Clear();
                dc.CompareA = dtDisChanNew;
                dc.CompareB = dtDisChanOld;
                dc.CompareField.AddCompareFieldRow("DIS_NO", "", true);
                dc.CompareField.AddCompareFieldRow("ITEM", "", true);
                dc.CompareField.AddCompareFieldRow("PERIOD", "", true);
                dc.CompareField.AddCompareFieldRow("CHAN_NO", "", true);
                dc.CompareField.AddCompareFieldRow("DIS_TYPE", "", false);
                dc.CompareField.AddCompareFieldRow("DIS_PRE_CQTY", "", false);
                dc.CompareField.AddCompareFieldRow("ID", "", false);

                dc.CompareData();
                dtDisChanDiff = dc.ADiff;
                dtDisChanAdd = dc.AOnly;
                dtDisChanDelete = dc.BOnly;
                #endregion

                if ((dtDisChanDiff != null && dtDisChanDiff.Rows.Count > 0) ||
                    (dtDisChanAdd != null && dtDisChanAdd.Rows.Count > 0) ||
                    (dtDisChanDelete != null && dtDisChanDelete.Rows.Count > 0))
                {
                    MaintainDisChan BCODisChan = new MaintainDisChan(ConnectionDB);
                    bResult = BCODisChan.UpdateDisChanFor131(dtDisChanDiff, dtDisChanAdd, dtDisChanDelete, vStAcceptDate, DBT);
                }
                else
                {
                    bResult = true;
                }

                if (!bResult)
                    throw new Exception(string.Format("MaintainDisRecord.CreateDisRecordFor131:Step{0} 發生錯誤", "4.4"));
                #endregion

                #region 4.5) 更新配本參照設定

                #region 比較新舊值
                dc.Clear();
                dc.CompareA = dtDisItemReferNew;
                dc.CompareB = dtDisItemReferOld;
                dc.CompareField.AddCompareFieldRow("DIS_NO", "", true);
                dc.CompareField.AddCompareFieldRow("ITEM", "", true);
                dc.CompareField.AddCompareFieldRow("PERIOD", "", true);
                dc.CompareField.AddCompareFieldRow("RITEM", "", true);
                dc.CompareField.AddCompareFieldRow("RPERIOD", "", true);
                dc.CompareField.AddCompareFieldRow("REFER_RATE", "", false);
                dc.CompareField.AddCompareFieldRow("ID", "", false);

                dc.CompareData();
                dtDisItemReferDiff = dc.ADiff;
                dtDisItemReferAdd = dc.AOnly;
                dtDisItemReferDelete = dc.BOnly;
                #endregion

                if ((dtDisItemReferDiff != null && dtDisItemReferDiff.Rows.Count > 0) ||
                    (dtDisItemReferAdd != null && dtDisItemReferAdd.Rows.Count > 0) ||
                    (dtDisItemReferDelete != null && dtDisItemReferDelete.Rows.Count > 0))
                {
                    MaintainDisItemRefer BCODisItemRefer = new MaintainDisItemRefer(ConnectionDB);
                    bResult = BCODisItemRefer.UpdateItemAndChanRefer(dtDisItemReferDiff, dtDisItemReferAdd, dtDisItemReferDelete, dtDisChanOld, dtDisChanNew, dtDisItemReferNew, vItem, vPeriod, DBT);
                }
                else
                {
                    bResult = true;
                }

                if (!bResult)
                    throw new Exception(string.Format("MaintainDisItemRefer.CreateDisRecordFor131:Step{0} 發生錯誤", "4.5"));
                #endregion

                #region 4.5.2) 更新通路參照

                if (dtDisChanReferNEW != null)
                {
                    MaintainDisChanRefer BCOChanRef = new MaintainDisChanRefer(ConnectionDB);

                    bResult = BCOChanRef.UpdateDisChanReferFor(dtDisChanReferNEW,
                                                                  vDisNo,
                                                                  vItem,
                                                                  vPeriod,
                                                                  vUserID,
                                                                  DBT
                                                                  );

                    if (!bResult)
                        throw new Exception(string.Format("MaintainDisChanRefer.UpdateDisChanReferFor:Step{0} 發生錯誤", "4.5.2"));

                }
                #endregion


                #region 4.6) 維護配本輔助項目設定

                #region 比較新舊值
                dc.Clear();
                dc.CompareA = dtDisTmpRecNew;
                dc.CompareB = dtDisTmpRecOld;
                dc.CompareField.AddCompareFieldRow("ID", "", true);
                dc.CompareField.AddCompareFieldRow("CODE", "", true);
                dc.CompareField.AddCompareFieldRow("SP_CHANGE", "", false);
                dc.CompareField.AddCompareFieldRow("ORDER_CHANGE", "", false);
                dc.CompareField.AddCompareFieldRow("DIS_TYPE", "", false);
                dc.CompareData();
                dtDisTmpRecDiff = dc.ADiff;
                #endregion

                if (dtDisTmpRecDiff != null && dtDisTmpRecDiff.Rows.Count > 0)
                {
                    #region

                    MaintainDisAssist BCODisAssist = new MaintainDisAssist(ConnectionDB);
                    DataTable dtDisAssist = BCODisAssist.GetDisAssistMainSchema();


                    ParameterList.Clear();
                    ParameterList.Add(dtDisTmpRecDiff.Rows[0]["DIS_NO"]);
                    ParameterList.Add(dtDisTmpRecDiff.Rows[0]["ITEM"]);
                    ParameterList.Add(dtDisTmpRecDiff.Rows[0]["PERIOD"]);
                    ParameterList.Add(DBNull.Value);//CHAN_NO
                    ParameterList.Add(dtDisTmpRecDiff.Rows[0]["UPDATEDATE"]);
                    ParameterList.Add(dtDisTmpRecDiff.Rows[0]["UPDATEUID"]);

                    BCODisAssist.DeleteOldDisAssist(ParameterList, DBT);
                    #endregion



                    //a) 判斷是否需更新特殊調整
                    if (dtDisTmpRecDiff.Rows[0]["SP_CHANGE"] != null && dtDisTmpRecDiff.Rows[0]["SP_CHANGE"].ToString().Trim() != "0")
                    {
                        #region 更新特殊調整(ASSIST_CODE='09')
                        DataRow dr = dtDisAssist.NewRow();
                        dr["DIS_NO"] = vDisNo;
                        dr["ITEM"] = vItem;
                        dr["PERIOD"] = vPeriod;
                        dr["CHAN_NO"] = "0";//更新時固定為0
                        dr["ASSIST_CODE"] = "09";
                        dr["OPERATOR1"] = DBNull.Value;
                        dr["OP_VALUE1"] = DBNull.Value;
                        dr["OPERATOR2"] = DBNull.Value;
                        dr["OP_VALUE2"] = DBNull.Value;
                        dr["CHANGE_TYPE"] = DBNull.Value;
                        dr["CHANGE_RATE"] = DBNull.Value;
                        dr["ORDER_CHANGE"] = DBNull.Value;
                        dr["UPDATEDATE"] = DateTime.Now;
                        dr["UPDATEUID"] = vUserID;
                        dtDisAssist.Rows.Add(dr);

                        bResult = BCODisAssist.CreateDisAssist(dtDisAssist, null, DBT);

                        #endregion
                    }

                    //b) 判斷是否需更新訂單匯入

                    if (dtDisTmpRecDiff.Rows[0]["ORDER_CHANGE"] != null && dtDisTmpRecDiff.Rows[0]["ORDER_CHANGE"].ToString().Trim() != "0")
                    {
                        #region 更新訂單匯入(ASSIST_CODE='10'),
                        DataRow dr = dtDisAssist.NewRow();
                        dr["DIS_NO"] = vDisNo;
                        dr["ITEM"] = vItem;
                        dr["PERIOD"] = vPeriod;
                        dr["CHAN_NO"] = "0";//更新時固定為0
                        dr["ASSIST_CODE"] = "10";
                        dr["OPERATOR1"] = DBNull.Value;
                        dr["OP_VALUE1"] = DBNull.Value;
                        dr["OPERATOR2"] = DBNull.Value;
                        dr["OP_VALUE2"] = DBNull.Value;
                        dr["CHANGE_TYPE"] = DBNull.Value;
                        dr["CHANGE_RATE"] = DBNull.Value;
                        dr["ORDER_CHANGE"] = dtDisTmpRecDiff.Rows[0]["ORDER_CHANGE"].ToString().Trim();
                        dr["UPDATEDATE"] = DateTime.Now;
                        dr["UPDATEUID"] = vUserID;
                        dtDisAssist.Rows.Add(dr);

                        bResult = BCODisAssist.CreateDisAssist(dtDisAssist, null, DBT);

                        #endregion
                    }
                }
                else
                {
                    bResult = true;
                }

                if (!bResult)
                    throw new Exception(string.Format("MaintainDisAssist.CreateDisAssist:Step{0} 發生錯誤", "4.6"));
                #endregion

                #region 4.7) 若dtDisItem.Rows.DIS_TYPE ='109' =>需判斷是否記錄109等級配本設定

                #region 比較新舊值
                dc.Clear();
                dc.CompareA = dtDisType109TmpNew;
                dc.CompareB = dtDisType109TmpOld;
                dc.CompareField.AddCompareFieldRow("DIS_NO", "", true);
                dc.CompareField.AddCompareFieldRow("ITEM", "", true);
                dc.CompareField.AddCompareFieldRow("PERIOD", "", true);
                dc.CompareField.AddCompareFieldRow("RANK_CODE", "", true);
                dc.CompareField.AddCompareFieldRow("RANK_LEVEL", "", true);
                //dc.CompareField.AddCompareFieldRow("VENDOR", "", true);
                dc.CompareField.AddCompareFieldRow("PATTERN_NO", "", true);
                dc.CompareField.AddCompareFieldRow("RANK_DIS_QTY", "", false);

                dc.CompareData();
                dtDisType109TmpDiff = dc.ADiff;
                #endregion

                if (dtDisTmpRecNew != null && dtDisTmpRecNew.Rows.Count > 0)
                {
                    if (dtDisTmpRecNew.Rows[0]["DIS_TYPE"].ToString().Trim() == "109")
                    {
                        //if (dtDisType109TmpDiff != null && dtDisType109TmpDiff.Rows.Count > 0)
                        //{
                        //    MaintainDisType109Tmp BCODisType109 = new MaintainDisType109Tmp(ConnectionDB);
                        //    bResult = BCODisType109.SaveDisType109Tmp(dtDisType109TmpDiff, vDisNo, vItem, vPeriod, DBT);
                        //}

                        if (dtDisType109TmpNew != null && dtDisType109TmpNew.Rows.Count > 0)//20090811 added
                        {
                            MaintainDisType109Tmp BCODisType109 = new MaintainDisType109Tmp(ConnectionDB);
                            bResult = BCODisType109.SaveDisType109Tmp(dtDisType109TmpNew, vDisNo, vItem, vPeriod, DBT);
                        }
                    }
                }
                else
                {
                    bResult = true;
                }

                if (!bResult)
                    throw new Exception(string.Format("MaintainDisType109Tmp.SaveDisType109Tmp:Step{0} 發生錯誤", "4.7"));

                #endregion

                #region 4.8) 若dtDisItem.Rows.DIS_TYPE in ('105','110') =>需判斷是否記錄105類似配本/110定額配本設定記錄

                #region 比較新舊值
                dc.Clear();
                dc.CompareA = dtDisTypeTmpNew;
                dc.CompareB = dtDisTypeTmpOld;
                dc.CompareField.AddCompareFieldRow("DIS_NO", "", true);
                dc.CompareField.AddCompareFieldRow("ITEM", "", true);
                dc.CompareField.AddCompareFieldRow("PERIOD", "", true);
                dc.CompareField.AddCompareFieldRow("DIS_TYPE", "", true);
                dc.CompareField.AddCompareFieldRow("DIS_QTY", "", false);

                dc.CompareData();
                dtDisTypeTmpDiff = dc.ADiff;
                dtDisTypeTmpDelete = dc.BOnly;

                #endregion

                if (dtDisTmpRecNew != null && dtDisTmpRecNew.Rows.Count > 0)
                {
                    if (dtDisTmpRecNew.Rows[0]["DIS_TYPE"].ToString().Trim() == "105" || dtDisTmpRecNew.Rows[0]["DIS_TYPE"].ToString().Trim() == "110")
                    {
                        //if (dtDisTypeTmpDiff != null && dtDisTypeTmpDiff.Rows.Count > 0)
                        //{
                        //    MaintainDisTypeTmp BCODisType = new MaintainDisTypeTmp(ConnectionDB);
                        //    bResult = BCODisType.SaveDisTypeTmp(dtDisTypeTmpDiff, vDisNo, vItem, vPeriod, DBT);
                        //}

                        if (dtDisTypeTmpNew != null && dtDisTypeTmpNew.Rows.Count > 0)//20090812 added
                        {
                            MaintainDisTypeTmp BCODisType = new MaintainDisTypeTmp(ConnectionDB);
                            bResult = BCODisType.SaveDisTypeTmp(dtDisTypeTmpNew, vDisNo, vItem, vPeriod, DBT);
                        }
                    }
                    else
                    {
                        if (dtDisTypeTmpDelete != null && dtDisTypeTmpDelete.Rows.Count > 0)//20090820 added
                        {
                            MaintainDisTypeTmp BCODisType = new MaintainDisTypeTmp(ConnectionDB);
                            bResult = BCODisType.DeleteDisTypeTmp(vDisNo, vItem, vPeriod, DBT);
                        }

                    }
                }
                else
                {
                    bResult = true;
                }

                if (!bResult)
                    throw new Exception(string.Format("MaintainDisTypeTmp.SaveDisTypeTmp:Step{0} 發生錯誤", "4.8"));

                #endregion

                #region 4.9) 異動其他相關資料表
                ParameterList.Clear();
                ParameterList.Add(vDisNo);
                ParameterList.Add(vItem);
                ParameterList.Add(vPeriod);
                ParameterList.Add(vUserID);

                ProcessALOCommon BCOProcessCommon = new ProcessALOCommon(ConnectionDB);

                bResult = BCOProcessCommon.UpdateOtherTables(ParameterList, DBT);

                if (!bResult)
                    throw new Exception(string.Format("ProcessALOCommon.UpdateOtherTables:Step{0} 發生錯誤", "4.9"));

                #endregion


                #endregion

                #region 交易成功

                if (IsRootTranscation)
                {
                    //獨立呼叫Transcation成立
                    DBT.Commit();
                }

                #endregion

            }
            catch (Exception ex)
            {
                #region 交易失敗

                if (IsRootTranscation)
                {
                    //獨立呼叫Transcation失敗
                    DBT.Rollback();
                }

                #endregion

                bResult = false;

                throw GetNewException(ex);
            }
            finally
            {
                #region 判斷是否關閉交易連線

                if (IsRootTranscation)
                {
                    //獨立呼叫Transcation,關閉連線
                    if (Conn.State == ConnectionState.Connecting)
                    {
                        Conn.Close();
                    }
                }

                #endregion

            }


            return bResult;

            #endregion
        }
Beispiel #4
0
    /// <summary>
    /// 查詢配本通路
    /// </summary>
    /// <param name="dis_no">配本序號</param>
    /// <param name="item">配本商品品號</param>
    /// <param name="period">配本商品期別</param>
    private void getDis_Chan(string dis_no, string item, string period)
    {
        try
        {
            ArrayList ParameterList = new ArrayList();//20091113

            ParameterList.Clear();
            ParameterList.Add(dis_no); //配本序號
            ParameterList.Add(item); //配本商品品號
            ParameterList.Add(period); //配本商品期別
            BCO.MaintainDisChan bco = new BCO.MaintainDisChan(ConnectionDB);
            DataTable dt = new DataTable();
            dt = bco.QueryDisChanFor111(ParameterList);
            SLP_CHAN_NO1.Text = "";
            chkIS_LOCK.Checked = false;
            btnConfirm4.Enabled = false;
            btnRelease4.Enabled = false;
            hidChan_No.Value = "";
            hidNum_Chan.Value = "";
            lblChan_No_Count.Text = dt.Rows.Count.ToString();
            lblChan_No.Text = "";
            if (dt.Rows.Count == 0)
            {
                btnPrev3.Enabled = false;
                btnNext3.Enabled = false;
                btnQuery3.Enabled = false;
                btnQuery4.Enabled = false;
            }
            else
            {
                if (SLP_APPROVE_DATE.Text == "")
                {
                    btnPrev3.Enabled = true;
                    btnNext3.Enabled = true;
                    btnQuery3.Enabled = true;
                    btnQuery4.Enabled = true;
                }
            }

            string SessionIDName = "ALO121_dt3" + PageTimeStamp.Value;
            Session[SessionIDName] = dt;
        }
        catch (Exception ex) { this.lblErrorQ1.Text = ex.Message; lblErrorQ1.Visible = true; }
    }
Beispiel #5
0
    /// <summary>
    /// 查詢合計欄位:通路店數、通路合計配量
    /// </summary>
    /// <param name="dis_no">配本序號</param>
    /// <param name="date">門市進貨日</param>
    /// <param name="item">配本商品品號</param>
    /// <param name="period">配本商品期別</param>
    /// <param name="type">判斷是要寫入通路還是路線:0->全寫、1->通路、2->路線</param>
    private void getTotal_Chan(string dis_no, string date, string item, string period, string chan_no, string route_s, string route_e, char type)
    {
        try
        {
            ArrayList ParameterList = new ArrayList();//20091113

            ParameterList.Clear();
            ParameterList.Add(dis_no); //配本序號
            ParameterList.Add(date); //門市進貨日
            ParameterList.Add(item); //配本商品品號
            ParameterList.Add(period); //配本商品期別
            ParameterList.Add(chan_no); //通路
            ParameterList.Add(route_s); //路線起
            ParameterList.Add(route_e); //路線迄
            DataTable dt = new DataTable();
            BCO.MaintainDisChan bco = new BCO.MaintainDisChan(ConnectionDB);
            dt = bco.QueryDisRouteInfoFor121(ParameterList);
            if (dt.Rows.Count > 0)
            {
                if (type == '0')
                {
                    txtDIS_STO_CQTY.Text = dt.Rows[0]["N_DIS_STO_CQTY"].ToString() == "" ? "0" : dt.Rows[0]["N_DIS_STO_CQTY"].ToString();
                    txtDIS_TOT_OQTY.Text = dt.Rows[0]["N_DIS_TOT_QTY"].ToString() == "" ? "0" : dt.Rows[0]["N_DIS_TOT_QTY"].ToString();
                    txtN_DIS_STO_CQTY.Text = dt.Rows[0]["N_DIS_STO_CQTY"].ToString() == "" ? "0" : dt.Rows[0]["N_DIS_STO_CQTY"].ToString();
                    txtN_DIS_TOT_QTY.Text = dt.Rows[0]["N_DIS_TOT_QTY"].ToString() == "" ? "0" : dt.Rows[0]["N_DIS_TOT_QTY"].ToString();
                }
                else if (type == '1')
                {
                    txtDIS_STO_CQTY.Text = dt.Rows[0]["N_DIS_STO_CQTY"].ToString() == "" ? "0" : dt.Rows[0]["N_DIS_STO_CQTY"].ToString();
                    txtDIS_TOT_OQTY.Text = dt.Rows[0]["N_DIS_TOT_QTY"].ToString() == "" ? "0" : dt.Rows[0]["N_DIS_TOT_QTY"].ToString();
                }
                else if (type == '2')
                {
                    txtN_DIS_STO_CQTY.Text = dt.Rows[0]["N_DIS_STO_CQTY"].ToString() == "" ? "0" : dt.Rows[0]["N_DIS_STO_CQTY"].ToString();
                    txtN_DIS_TOT_QTY.Text = dt.Rows[0]["N_DIS_TOT_QTY"].ToString() == "" ? "0" : dt.Rows[0]["N_DIS_TOT_QTY"].ToString();
                }

                string SessionIDName = "ALO121_dt4" + PageTimeStamp.Value;
                Session[SessionIDName] = dt;
            }
        }
        catch (Exception ex) { this.lblErrorQ1.Text = ex.Message; lblErrorQ1.Visible = true; }
    }
 private void GetDropDownListData()
 {
     #region
     ALOModel.MaintainDisChan BCO = new ALOModel.MaintainDisChan(ConnectionDB);
     dtForDisChanAvailable = BCO.QueryDisChanAvailable();
     #endregion
 }
    private void GetCurrentDisChan()
    {
        #region
        ALOModel.MaintainDisChan BCO = new ALOModel.MaintainDisChan(ConnectionDB);
        ArrayList ParameterList = new ArrayList();//20091113
        ParameterList.Clear();
        ParameterList.Add(DIS_NO);
        ParameterList.Add(ITEM);
        ParameterList.Add(PERIOD);
        dtForCurrentDisChan = BCO.QueryDisChanFor111(ParameterList);

        if (dtForCurrentDisChan != null && dtForCurrentDisChan.Rows.Count > 0)
        {
            for (Int32 i = 0; i <= gv_Result.Rows.Count - 1; i++) 
            {
                CheckBox chk_CHAN_NO_Sgl = (CheckBox)gv_Result.Rows[i].FindControl("chk_CHAN_NO_Sgl");

                for (Int32 k = 0; k <= dtForCurrentDisChan.Rows.Count - 1; k++) 
                {

                    if (chk_CHAN_NO_Sgl.Text.Trim() == dtForCurrentDisChan.Rows[k]["CHAN_NO"].ToString().Trim()) 
                    {
                        chk_CHAN_NO_Sgl.Checked = true;
                        break;                    
                    }
                }
            }        
        }


        #endregion
    }
Beispiel #8
0
    /// <summary>
    /// 取得原始資料庫資料
    /// </summary>
    private void GetAllOriginalDatatables()
    {
        #region
        try
        {
            #region

            ArrayList ParameterList1 = new ArrayList();//20091106
            ParameterList1.Clear();
            ParameterList1.Add(s_DISNO);
            ParameterList1.Add(s_ITEM);
            ParameterList1.Add(s_PERIOD);
            ParameterList1.Add(null);//CHAN_NO

            #region DIS_MAIN
            ALOModel.MaintainDisMain BCO1 = new ALOModel.MaintainDisMain(ConnectionDB);
            dtDisMainOld = BCO1.QueryByDisNo(ParameterList1);
            dtDisMain = dtDisMainOld.Copy();

            DataColumn[] PrimaryKeys11 = new DataColumn[1];
            PrimaryKeys11[0] = dtDisMainOld.Columns["DIS_NO"];
            dtDisMainOld.PrimaryKey = PrimaryKeys11;

            DataColumn[] PrimaryKeys12 = new DataColumn[1];
            PrimaryKeys12[0] = dtDisMain.Columns["DIS_NO"];
            dtDisMain.PrimaryKey = PrimaryKeys12;
            #endregion

            #region DIS_ITEM
            ALOModel.MaintainDisItem BCO2 = new ALOModel.MaintainDisItem(ConnectionDB);
            dtDisItemOld = BCO2.QueryByDisNo(ParameterList1);
            dtDisItem = dtDisItemOld.Copy();

            DataColumn[] PrimaryKeys21 = new DataColumn[3];
            PrimaryKeys21[0] = dtDisItemOld.Columns["DIS_NO"];
            PrimaryKeys21[1] = dtDisItemOld.Columns["ITEM"];
            PrimaryKeys21[2] = dtDisItemOld.Columns["PERIOD"];
            dtDisItemOld.PrimaryKey = PrimaryKeys21;

            DataColumn[] PrimaryKeys22 = new DataColumn[3];
            PrimaryKeys22[0] = dtDisItem.Columns["DIS_NO"];
            PrimaryKeys22[1] = dtDisItem.Columns["ITEM"];
            PrimaryKeys22[2] = dtDisItem.Columns["PERIOD"];
            dtDisItem.PrimaryKey = PrimaryKeys22;
            #endregion

            #region DIS_CHAN
            ALOModel.MaintainDisChan BCO3 = new ALOModel.MaintainDisChan(ConnectionDB);
            dtDisChanOld = BCO3.QueryDisChanFor111(ParameterList1);
            dtDisChan = dtDisChanOld.Copy();

            DataColumn[] PrimaryKeys31 = new DataColumn[4];
            PrimaryKeys31[0] = dtDisChanOld.Columns["DIS_NO"];
            PrimaryKeys31[1] = dtDisChanOld.Columns["ITEM"];
            PrimaryKeys31[2] = dtDisChanOld.Columns["PERIOD"];
            PrimaryKeys31[3] = dtDisChanOld.Columns["CHAN_NO"];
            dtDisChanOld.PrimaryKey = PrimaryKeys31;

            DataColumn[] PrimaryKeys32 = new DataColumn[4];
            PrimaryKeys32[0] = dtDisChan.Columns["DIS_NO"];
            PrimaryKeys32[1] = dtDisChan.Columns["ITEM"];
            PrimaryKeys32[2] = dtDisChan.Columns["PERIOD"];
            PrimaryKeys32[3] = dtDisChan.Columns["CHAN_NO"];
            dtDisChan.PrimaryKey = PrimaryKeys32;
            #endregion

            #region DIS_CHAN_REFER
            //ALOModel.MaintainDisChanRefer BCO9 = new ALOModel.MaintainDisChanRefer(ConnectionDB);
            //dtDisChanReferOld = BCO9.QueryDisChanReferByDisNo(ParameterList1);
            //dtDisChanRefer = dtDisChanReferOld.Copy();

            //DataColumn[] PrimaryKeys91 = new DataColumn[6];
            //PrimaryKeys91[0] = dtDisChanReferOld.Columns["DIS_NO"];
            //PrimaryKeys91[1] = dtDisChanReferOld.Columns["ITEM"];
            //PrimaryKeys91[2] = dtDisChanReferOld.Columns["PERIOD"];
            //PrimaryKeys91[3] = dtDisChanReferOld.Columns["CHAN_NO"];
            //PrimaryKeys91[4] = dtDisChanReferOld.Columns["RITEM"];
            //PrimaryKeys91[5] = dtDisChanReferOld.Columns["RPERIOD"];
            //dtDisChanReferOld.PrimaryKey = PrimaryKeys91;

            //DataColumn[] PrimaryKeys92 = new DataColumn[6];
            //PrimaryKeys92[0] = dtDisChanRefer.Columns["DIS_NO"];
            //PrimaryKeys92[1] = dtDisChanRefer.Columns["ITEM"];
            //PrimaryKeys92[2] = dtDisChanRefer.Columns["PERIOD"];
            //PrimaryKeys92[3] = dtDisChanRefer.Columns["CHAN_NO"];
            //PrimaryKeys92[4] = dtDisChanRefer.Columns["RITEM"];
            //PrimaryKeys92[5] = dtDisChanRefer.Columns["RPERIOD"];
            //dtDisChanRefer.PrimaryKey = PrimaryKeys92;
            #endregion

            #region DIS_ITEM_REFER
            ALOModel.MaintainDisItemRefer BCO4 = new ALOModel.MaintainDisItemRefer(ConnectionDB);
            dtDisItemReferOld = BCO4.QueryDisItemReferFor111(ParameterList1);
            dtDisItemRefer = dtDisItemReferOld.Copy();

            DataColumn[] PrimaryKeys41 = new DataColumn[5];
            PrimaryKeys41[0] = dtDisItemReferOld.Columns["DIS_NO"];
            PrimaryKeys41[1] = dtDisItemReferOld.Columns["ITEM"];
            PrimaryKeys41[2] = dtDisItemReferOld.Columns["PERIOD"];
            PrimaryKeys41[3] = dtDisItemReferOld.Columns["RITEM"];
            PrimaryKeys41[4] = dtDisItemReferOld.Columns["RPERIOD"];
            dtDisItemReferOld.PrimaryKey = PrimaryKeys41;

            DataColumn[] PrimaryKeys42 = new DataColumn[5];
            PrimaryKeys42[0] = dtDisItemRefer.Columns["DIS_NO"];
            PrimaryKeys42[1] = dtDisItemRefer.Columns["ITEM"];
            PrimaryKeys42[2] = dtDisItemRefer.Columns["PERIOD"];
            PrimaryKeys42[3] = dtDisItemRefer.Columns["RITEM"];
            PrimaryKeys42[4] = dtDisItemRefer.Columns["RPERIOD"];
            dtDisItemRefer.PrimaryKey = PrimaryKeys42;

            #endregion

            #region DIS_TYPE_TMP
            ALOModel.MaintainDisTypeTmp BCO5 = new ALOModel.MaintainDisTypeTmp(ConnectionDB);
            dtDisTypeTmpOld = BCO5.QueryDisTypeTmp(ParameterList1);
            dtDisTypeTmp = dtDisTypeTmpOld.Copy();

            DataColumn[] PrimaryKeys51 = new DataColumn[4];
            PrimaryKeys51[0] = dtDisTypeTmpOld.Columns["DIS_NO"];
            PrimaryKeys51[1] = dtDisTypeTmpOld.Columns["ITEM"];
            PrimaryKeys51[2] = dtDisTypeTmpOld.Columns["PERIOD"];
            PrimaryKeys51[3] = dtDisTypeTmpOld.Columns["DIS_TYPE"];
            dtDisTypeTmpOld.PrimaryKey = PrimaryKeys51;

            DataColumn[] PrimaryKeys52 = new DataColumn[4];
            PrimaryKeys52[0] = dtDisTypeTmp.Columns["DIS_NO"];
            PrimaryKeys52[1] = dtDisTypeTmp.Columns["ITEM"];
            PrimaryKeys52[2] = dtDisTypeTmp.Columns["PERIOD"];
            PrimaryKeys52[3] = dtDisTypeTmp.Columns["DIS_TYPE"];
            dtDisTypeTmp.PrimaryKey = PrimaryKeys52;
            #endregion

            #region DIS_TYPE_109_TMP
            ALOModel.MaintainDisType109Tmp BCO6 = new ALOModel.MaintainDisType109Tmp(ConnectionDB);
            dtDisType109TmpOld = BCO6.QueryDisType109Tmp(ParameterList1);
            dtDisTypeTmp109 = dtDisType109TmpOld.Copy();

            DataColumn[] PrimaryKeys61 = new DataColumn[6];
            PrimaryKeys61[0] = dtDisType109TmpOld.Columns["DIS_NO"];
            PrimaryKeys61[1] = dtDisType109TmpOld.Columns["ITEM"];
            PrimaryKeys61[2] = dtDisType109TmpOld.Columns["PERIOD"];
            PrimaryKeys61[3] = dtDisType109TmpOld.Columns["RANK_CODE"];
            PrimaryKeys61[4] = dtDisType109TmpOld.Columns["RANK_LEVEL"];
            PrimaryKeys61[5] = dtDisType109TmpOld.Columns["PATTERN_NO"];
            dtDisType109TmpOld.PrimaryKey = PrimaryKeys61;

            DataColumn[] PrimaryKeys62 = new DataColumn[6];
            PrimaryKeys62[0] = dtDisTypeTmp109.Columns["DIS_NO"];
            PrimaryKeys62[1] = dtDisTypeTmp109.Columns["ITEM"];
            PrimaryKeys62[2] = dtDisTypeTmp109.Columns["PERIOD"];
            PrimaryKeys62[3] = dtDisTypeTmp109.Columns["RANK_CODE"];
            PrimaryKeys62[4] = dtDisTypeTmp109.Columns["RANK_LEVEL"];
            PrimaryKeys62[5] = dtDisTypeTmp109.Columns["PATTERN_NO"];
            dtDisTypeTmp109.PrimaryKey = PrimaryKeys62;
            #endregion

            #region DIS_ASSIST
            ALOModel.MaintainDisAssist BCO7 = new ALOModel.MaintainDisAssist(ConnectionDB);
            dtDisAssistMainOld = BCO7.QueryDisAssistMainWithoutChan(ParameterList1);
            dtDisAssistMain = dtDisAssistMainOld.Copy();

            DataColumn[] PrimaryKeys71 = new DataColumn[4];
            PrimaryKeys71[0] = dtDisAssistMainOld.Columns["DIS_NO"];
            PrimaryKeys71[1] = dtDisAssistMainOld.Columns["ITEM"];
            PrimaryKeys71[2] = dtDisAssistMainOld.Columns["PERIOD"];
            PrimaryKeys71[3] = dtDisAssistMainOld.Columns["ASSIST_CODE"];
            dtDisAssistMainOld.PrimaryKey = PrimaryKeys71;

            DataColumn[] PrimaryKeys72 = new DataColumn[4];
            PrimaryKeys72[0] = dtDisAssistMain.Columns["DIS_NO"];
            PrimaryKeys72[1] = dtDisAssistMain.Columns["ITEM"];
            PrimaryKeys72[2] = dtDisAssistMain.Columns["PERIOD"];
            PrimaryKeys72[3] = dtDisAssistMain.Columns["ASSIST_CODE"];
            dtDisAssistMain.PrimaryKey = PrimaryKeys72;

            //20090818 added
            dtDisAssistDetlAll = BCO7.QueryDisAssistDetlWithoutChan(ParameterList1);
            #endregion

            #region DIS_REC
            ALOModel.MaintainDisTmpRec BCO8 = new ALOModel.MaintainDisTmpRec(ConnectionDB);
            ParameterList1.Clear();
            ParameterList1.Add(s_ID_DisRec);
            dtDisTmpRecOld = BCO8.QueryById(ParameterList1);
            dtDisTmpRec = dtDisTmpRecOld.Copy();

            DataColumn[] PrimaryKeys81 = new DataColumn[2];
            PrimaryKeys81[0] = dtDisTmpRecOld.Columns["ID"];
            PrimaryKeys81[1] = dtDisTmpRecOld.Columns["CODE"];
            dtDisTmpRecOld.PrimaryKey = PrimaryKeys81;

            DataColumn[] PrimaryKeys82 = new DataColumn[2];
            PrimaryKeys82[0] = dtDisTmpRec.Columns["ID"];
            PrimaryKeys82[1] = dtDisTmpRec.Columns["CODE"];
            dtDisTmpRec.PrimaryKey = PrimaryKeys82;
            #endregion

            #endregion
        }
        catch (Exception ex)
        {
            ErrorMsgLabel.Text = ex.Message;
        }
        #endregion
    }
Beispiel #9
0
    public static string GetChanPreQty(string Item,
                                       string Period,
                                       string ChainNO,
                                       string RootNo
                                       )
    {
        try
        {
            ALOModel.MaintainDisChan MDC = new ALOModel.MaintainDisChan(ConnectionDB);

            #region 輸入變數
            ArrayList ParameterList = new ArrayList();

            ParameterList.Clear();
            //品號
            ParameterList.Add(Item);
            //期別
            ParameterList.Add(Period);
            //通路
            ParameterList.Add(ChainNO);
            //群分類
            ParameterList.Add(RootNo);

            #endregion

            int PreQty = MDC.QueryChanPreQty(ParameterList);

            return PreQty.ToString();
        }
        catch (Exception ex)
        {
            throw ex;
        }
    }
Beispiel #10
0
    /// <summary>
    /// 驗證通路是否可配送商品
    /// </summary>
    /// <param name="source"></param>
    /// <param name="args"></param>
    protected void CustomValidateStoreChain_ServerValidate(object source, ServerValidateEventArgs args)
    {
        try
        {
            StoreChainErrorMsgLabel.Text = "";

            ALOModel.MaintainDisChan MDC = new ALOModel.MaintainDisChan(ConnectionDB);

            #region 輸入變數
            ArrayList ParameterList = new ArrayList();

            ParameterList.Clear();
            //商品
            ParameterList.Add(SLP_SKU1.Text);
            //期別
            ParameterList.Add(SLP_ItemPeriod1.Text);
            //通路
            ParameterList.Add(Chan_NOtxt.Text);
            //門市進貨日
            ParameterList.Add(DateTime.Parse(SLP_STAcceptDate.Text));
            #endregion

            args.IsValid = MDC.CheckDisChanCanAdd(ParameterList);
        }
        catch (Exception ex)
        {
            StoreChainErrorMsgLabel.Text = "驗證通路是否可配送商品發生錯誤!錯誤訊息:" + ex.Message;
        }
    }
Beispiel #11
0
    /// <summary>
    /// 配本通路資料聯繫
    /// </summary>
    private void ALOStoreChainBind()
    {
        ALOModel.MaintainDisChan bco = new ALOModel.MaintainDisChan(ConnectionDB);

        #region 輸入變數
        ArrayList ParameterList = new ArrayList();
        ParameterList.Clear();
        ParameterList.Add(DISNOTxt.Text);
        ParameterList.Add(SLP_SKU1.Text);
        ParameterList.Add(SLP_ItemPeriod1.Text);

        #endregion

        DataTable Dt = bco.QueryDisChanFor111(ParameterList);

        #region 將空白的資料做處理

        for (int i = 0; i < Dt.Rows.Count; i++)
        {
            for (int j = 0; j < Dt.Columns.Count; j++)
            {
                if (Dt.Columns[j].DataType == typeof(System.String))
                {
                    if (Dt.Rows[i][j].GetType() == typeof(System.DBNull))
                    {
                        Dt.Rows[i][j] = "";
                    }
                }

                if (Dt.Columns[j].DataType == typeof(System.Decimal))
                {
                    if (Dt.Rows[i][j].GetType() == typeof(System.DBNull))
                    {
                        Dt.Rows[i][j] = 0;
                    }
                }

                if (Dt.Columns[j].DataType == typeof(System.DateTime))
                {
                    if (Dt.Rows[i][j].GetType() == typeof(System.DBNull))
                    {
                        Dt.Rows[i][j] = DateTime.Parse("1900/01/01");
                    }
                }
            }
        }

        #endregion

        #region 使用XML放置到前端資料

        //舊資料
        OLD_XMLStoreChainList.InnerHtml = (Dt.Rows.Count > 0) ? Dt.DataSet.GetXml() : "";
        XML_StoreChainList.InnerHtml = (Dt.Rows.Count > 0) ? Dt.DataSet.GetXml() : "";

        #endregion

        GridView_StoreChainList.DataSource = Dt;
        GridView_StoreChainList.DataBind();

        StoreChainListCountHidden.Value = Dt.Rows.Count.ToString();

        if (SLP_PARAM1.TextBox_Code.Text == "109") //如果為109紀錄通路
        {
            Call109Process();
        }
    }
Beispiel #12
0
    /// <summary>
    /// 當通路設定為全通路時,帶入全通路資料
    /// </summary>
    private void GetAllDisChainToStoreChainList()
    {
        ALOModel.MaintainDisChan MDC = new ALOModel.MaintainDisChan(ConnectionDB);

        #region 輸入變數
        ArrayList ParameterList = new ArrayList();
        ParameterList.Clear();
        //商品代碼
        ParameterList.Add(SLP_SKU1.Text);
        //期別代碼
        ParameterList.Add(SLP_ItemPeriod1.Text);
        //門市進貨日
        ParameterList.Add(DateTime.Parse(SLP_STAcceptDate.Text));

        #endregion

        DataTable Dt = MDC.QueryDisChanForAll(ParameterList);

        if (Dt.Rows.Count == 0)
        {
            throw new Exception("查無可配通路,請取消新增");
        }
        else
        {
            DataColumn Dc = null;

            #region 加入欠缺的欄位

            #region 定義欠缺的欄位
            //ID
            Dc = new DataColumn("ID");
            Dt.Columns.Add(Dc);
            //CODE
            Dc = new DataColumn("CODE");
            Dt.Columns.Add(Dc);
            //配本序號
            Dc = new DataColumn("DIS_NO");
            Dt.Columns.Add(Dc);
            //Pattern
            Dc = new DataColumn("PATTERN_NO");
            Dt.Columns.Add(Dc);
            //通路群組
            Dc = new DataColumn("N_GROUP_NO");
            Dt.Columns.Add(Dc);
            //配本方式
            Dc = new DataColumn("DIS_TYPE");
            Dt.Columns.Add(Dc);
            //方式名稱
            Dc = new DataColumn("DIS_TYPE_NAME");
            Dt.Columns.Add(Dc);
            //退貨容許率
            Dc = new DataColumn("DIS_BRATE");
            Dt.Columns.Add(Dc);
            //通路店數
            Dc = new DataColumn("DIS_STO_CQTY");
            Dt.Columns.Add(Dc);
            //合計實配數
            Dc = new DataColumn("DIS_TOT_QTY");
            Dt.Columns.Add(Dc);
            //合計原始計算數
            Dc = new DataColumn("DIS_TOT_OQTY");
            Dt.Columns.Add(Dc);
            //合計計算數
            Dc = new DataColumn("DIS_TOT_PQTY");
            Dt.Columns.Add(Dc);
            //是否鎖定
            Dc = new DataColumn("IS_LOCK");
            Dt.Columns.Add(Dc);
            //更新日期
            Dc = new DataColumn("UPDATEDATE");
            Dt.Columns.Add(Dc);
            //更新人員
            Dc = new DataColumn("UPDATEUID");
            Dt.Columns.Add(Dc);
            //新增日期
            Dc = new DataColumn("CREATEDATE");
            Dt.Columns.Add(Dc);
            //新增人員
            Dc = new DataColumn("CREATEUID");
            Dt.Columns.Add(Dc);

            #endregion

            #region 補上全部通路欠缺的欄位值

            //補上全部通路欠缺的欄位值
            for (int x = 0; x < Dt.Rows.Count; x++)
            {
                //配本序號
                Dt.Rows[x]["DIS_NO"] = DISNOTxt.Text;
                //Pattern_NO
                Dt.Rows[x]["PATTERN_NO"] = SLP_Pattern1.Text;
                //通路群組
                Dt.Rows[x]["N_GROUP_NO"] = Dt.Rows[x]["CHAN_NO"].ToString().Substring(0, 1);
                //配本方式
                Dt.Rows[x]["DIS_TYPE"] = SLP_PARAM1.TextBox_Code.Text;
                //方式名稱
                Dt.Rows[x]["DIS_TYPE_NAME"] = SLP_PARAM1.TextBox_Name.Text;
                //退貨容許率
                Dt.Rows[x]["DIS_BRATE"] = 0;
                //通路店數
                Dt.Rows[x]["DIS_STO_CQTY"] = 0;
                //合計實配數
                Dt.Rows[x]["DIS_TOT_QTY"] = 0;
                //合計原始計算數
                Dt.Rows[x]["DIS_TOT_OQTY"] = 0;
                //合計計算數
                Dt.Rows[x]["DIS_TOT_PQTY"] = 0;
                //是否鎖定
                Dt.Rows[x]["IS_LOCK"] = 0;
                //更新日期
                Dt.Rows[x]["UPDATEDATE"] = DateTime.Now;
                //更新人員
                Dt.Rows[x]["UPDATEUID"] = Session["UID"].ToString();
                //建立日期
                Dt.Rows[x]["CREATEDATE"] = DateTime.Now;
                //建立人員
                Dt.Rows[x]["CREATEUID"] = Session["UID"].ToString();
            }

            #endregion

            #endregion

            #region 將空白的資料做處理

            for (int i = 0; i < Dt.Rows.Count; i++)
            {
                for (int j = 0; j < Dt.Columns.Count; j++)
                {
                    if (Dt.Columns[j].DataType == typeof(System.String))
                    {
                        if (Dt.Rows[i][j].GetType() == typeof(System.DBNull))
                        {
                            Dt.Rows[i][j] = "";
                        }
                    }

                    if (Dt.Columns[j].DataType == typeof(System.Decimal))
                    {
                        if (Dt.Rows[i][j].GetType() == typeof(System.DBNull))
                        {
                            Dt.Rows[i][j] = 0;
                        }
                    }
                }
            }

            #endregion

            #region 使用XML放置到前端資料

            XML_StoreChainList.InnerHtml = Dt.DataSet.GetXml();

            #endregion

            GridView_StoreChainList.DataSource = Dt;
            GridView_StoreChainList.DataBind();

            StoreChainListCountHidden.Value = Dt.Rows.Count.ToString();
        }

    }