Ejemplo n.º 1
0
        /// <summary>
        /// 計算配量
        /// </summary>
        /// <param name="ParameterList"> s_DIS_NO, s_ITEM, s_PERIOD, s_CAL_NONEFF, s_USER_ID, s_DIS_TYPE, s_ROOT_NO</param>
        /// <param name="strResult"></param>
        /// <param name="strErrMsg"></param>
        /// <param name="RootDBT"></param>
        /// <returns></returns>
        public bool ProcessCalculateDisQtyFor131(ArrayList ParameterList, out string strResult, out string strErrMsg, DbTransaction RootDBT)
        {
            #region
            bool bResult = false;
            bool IsRootTranscation = false;
            strResult = "";
            strErrMsg = "";

            try
            {
                VDS_ALO_CONFIRM_COMM_DBO DBO = new VDS_ALO_CONFIRM_COMM_DBO(ref USEDB);

                #region 取消判斷 Transaction
                ////判斷是否有傳入Root Transcation 
                //IsRootTranscation = (RootDBT == null) ? true : false;

                //#region 啟動交易或指定RootTranscation

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

                //#endregion

                #endregion

                string s_DIS_NO, s_ITEM, s_PERIOD, s_CAL_NONEFF, s_USER_ID, s_DIS_TYPE, s_ROOT_NO;

                s_DIS_NO = ParameterList[0].ToString().Trim();
                s_ITEM = ParameterList[1].ToString().Trim();
                s_PERIOD = ParameterList[2].ToString().Trim();
                s_CAL_NONEFF = ParameterList[3].ToString().Trim();
                s_USER_ID = ParameterList[4].ToString().Trim();
                s_DIS_TYPE = ParameterList[5].ToString().Trim();
                s_ROOT_NO = ParameterList[6].ToString().Trim();

                //計算配量
                try
                {
                    bResult = ProcessCalculateDisQty(s_DIS_NO, s_ITEM, s_PERIOD, s_CAL_NONEFF, s_USER_ID, s_DIS_TYPE, s_ROOT_NO, RootDBT);
                }
                catch (Exception ex)
                {
                    strErrMsg = s_DIS_NO + ex.Message;
                    bResult = false;
                }

                if (bResult)
                {
                    MaintainDisAssist BCO2 = new MaintainDisAssist(ConnectionDB);
                    ParameterList.Clear();
                    ParameterList.Add(s_DIS_NO);
                    ParameterList.Add(s_ITEM);
                    ParameterList.Add(s_PERIOD);
                    ParameterList.Add(null);
                    DataTable dtDisAssistMain = BCO2.QueryDisAssistMain(ParameterList);

                    //判斷輔助項目是否有設定,有值則繼續計算配量
                    if (dtDisAssistMain != null && dtDisAssistMain.Rows.Count > 0)
                    {
                        ParameterList.Clear();
                        ParameterList.Add(s_DIS_NO);
                        ParameterList.Add(s_ITEM);
                        ParameterList.Add(s_PERIOD);
                        ParameterList.Add("0");
                        ParameterList.Add(s_USER_ID);

                        bResult = CalculateForAssistInfo(ParameterList);

                        if (!bResult) 
                        {
                            strErrMsg = "計算輔助項目配量失敗";
                        }
                    }

                }
                else 
                {
                    if (strErrMsg == "")
                    {
                        strErrMsg = "計算基本項目配量失敗";
                    }
                }

                #region 交易成功

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

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

                bResult = false;

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

                #endregion

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

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

                #endregion

            }

            return bResult;
            #endregion
        }
Ejemplo n.º 2
0
        /// <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
        }
Ejemplo n.º 3
0
        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
        }
Ejemplo n.º 4
0
    protected void btn_SaveAssist_Click(object sender, EventArgs e)
    {
        #region
        try
        {
            DateTime ProcessingDateTime = OperationProcessingDateTime;
            string strUserId = Session["UID"].ToString();
            bool bResult = false;

            DataTable dtAssistMain = null;

            if (CheckAndSetAssistMainByAssistCodeChecked(ProcessingDateTime,strUserId,out dtAssistMain))
            {

                #region
                DataTable dtTemp = dtDisAssistDetlAll;

                if (dtTemp != null && dtTemp.Rows.Count > 0)
                {
                    string strChanNo = GetChanNo_AssistSetting();

                    foreach (DataRow dr in dtTemp.Rows)
                    {
                        if (dr.RowState != DataRowState.Deleted)
                        {
                            dr["CHAN_NO"] = strChanNo;
                        }
                    }

                    dtDisAssistDetlAll = dtTemp;
                }
                #endregion

                ALOModel.ALOCommon BCOCommon = new ALOModel.ALOCommon();
                System.Data.Common.DbTransaction DBT = BCOCommon.OpenAndGetConnection(ConnectionDB).BeginTransaction();

                ALOModel.MaintainDisAssist BCO = new ALOModel.MaintainDisAssist(ConnectionDB);

                ALOModel.MaintainDisItem BCO2 = new ALOModel.MaintainDisItem(ConnectionDB);

                ArrayList ParameterList = new ArrayList();//20091106
                ParameterList.Clear();
                ParameterList.Add(txt_DisNo.Text.Trim());
                ParameterList.Add(SLP_SKU1.Text.Trim());
                ParameterList.Add(SLP_ItemPeriod1.Text.Trim());
                ParameterList.Add(GetChanNo_AssistSetting());
                ParameterList.Add(ProcessingDateTime);
                ParameterList.Add(strUserId);



                try
                {
                    bResult = BCO.DeleteOldDisAssist(ParameterList, DBT);

                    if (bResult)
                    {
                        #region 重新將09、10類型之輔助項目填回DB
                        if (dtDisAssistMainALO131 != null && dtDisAssistMainALO131.Rows.Count > 0)
                        {
                            for (Int32 i = 0; i <= dtDisAssistMainALO131.Rows.Count - 1; i++)
                            {
                                if (dtDisAssistMainALO131.Rows[i]["ASSIST_CODE"].ToString().Trim() == "09" ||
                                    dtDisAssistMainALO131.Rows[i]["ASSIST_CODE"].ToString().Trim() == "10")
                                {

                                    ParameterList.Clear();
                                    ParameterList.Add(dtDisAssistMainALO131.Rows[i]["DIS_NO"]);
                                    ParameterList.Add(dtDisAssistMainALO131.Rows[i]["ITEM"]);
                                    ParameterList.Add(dtDisAssistMainALO131.Rows[i]["PERIOD"]);
                                    ParameterList.Add(dtDisAssistMainALO131.Rows[i]["CHAN_NO"]); 
                                    ParameterList.Add(dtDisAssistMainALO131.Rows[i]["ASSIST_CODE"]);
                                    ParameterList.Add(dtDisAssistMainALO131.Rows[i]["OPERATOR1"]);
                                    ParameterList.Add(dtDisAssistMainALO131.Rows[i]["OP_VALUE1"]);
                                    ParameterList.Add(dtDisAssistMainALO131.Rows[i]["OPERATOR2"]);
                                    ParameterList.Add(dtDisAssistMainALO131.Rows[i]["OP_VALUE2"]);
                                    ParameterList.Add(dtDisAssistMainALO131.Rows[i]["CHANGE_TYPE"]);
                                    ParameterList.Add(dtDisAssistMainALO131.Rows[i]["CHANGE_RATE"]);
                                    ParameterList.Add(dtDisAssistMainALO131.Rows[i]["ORDER_CHANGE"]);
                                    ParameterList.Add(dtDisAssistMainALO131.Rows[i]["UPDATEDATE"]);
                                    ParameterList.Add(dtDisAssistMainALO131.Rows[i]["UPDATEUID"]);
                                    bResult = BCO.CreateAssistMain(ParameterList, DBT);
                                }
                            }

                        }
                        #endregion

                        if (BCO.CreateAssistMain(dtAssistMain, DBT))
                        {
                            bResult = BCO.CreateAssistDetl(dtDisAssistDetlAll, DBT);

                            ArrayList ParameterList1 = new ArrayList();//20091106
                            ParameterList1.Clear();
                            ParameterList1.Add(txt_Remark.Text.Trim());
                            ParameterList1.Add(s_ID_DisItem);
                            ParameterList1.Add(s_UPDATEDATE);
                            ParameterList1.Add(s_UPDATEUID);
                            ParameterList1.Add(s_DISNO);
                            ParameterList1.Add(s_ITEM);
                            ParameterList1.Add(s_PERIOD);

                            BCO2.SaveAssistMemo(ParameterList1, DBT);
                        

                            ResultMsgLabel.Text = "存檔成功";

                        }
                    }

                    DBT.Commit();//交易成功


                }
                catch (Exception ex)
                {
                    DBT.Rollback();//交易失敗
                    throw ex;
                }
                finally 
                {
                    GetAssistMainAndDetl();
                }
            }
        }
        catch (Exception ex)
        {
            ErrorMsgLabel.Text = ex.Message;
        }
        #endregion
    }
Ejemplo n.º 5
0
        public void QueryDisAssistInfoByDisNo(ArrayList ParameterList, out DataTable dtAssistMain, out DataTable dtAssistDetl)
        {
            #region
            try
            {

                MaintainDisAssist BCO = new MaintainDisAssist(ConnectionDB);

                dtAssistMain = BCO.QueryDisAssistMain(ParameterList);

                dtAssistDetl = BCO.QueryDisAssistDetl(ParameterList);
            }
            catch (Exception ex)
            {
                throw GetNewException(ex);
            }
            #endregion
        }
Ejemplo n.º 6
0
    /// <summary>
    /// 取得輔助項目主檔與明細檔
    /// </summary>
    private void GetAssistMainAndDetl()
    {
        #region
        try
        {
            #region
            DataTable dtMain, dtDetl;

            ArrayList ParameterList = new ArrayList();//20091106
            ParameterList.Clear();
            ParameterList.Add(Request.QueryString["DIS_NO"]);
            ParameterList.Add(Request.QueryString["ITEM"]);
            ParameterList.Add(Request.QueryString["PERIOD"]);
            ParameterList.Add(GetChanNo_AssistSetting());

            ALOModel.MaintainDisRecord BCO = new ALOModel.MaintainDisRecord(ConnectionDB);
            BCO.QueryDisAssistInfoByDisNo(ParameterList, out dtMain, out dtDetl);

            string[,] strAryAssistCode = new string[,] { { "01", "chk11" ,"","","","","","","","","","","",""}, 
                                                         { "02", "chk21" ,"","","","","","","","","","","",""}, 
                                                         { "03", "chk31" ,"rbtn311","rbtn312","SLP_SLPNumber1","","","","OP_VALUE_3W","OP_VALUE_3Y","OP_VALUE_3X","OP_VALUE_3Z","hiddenOPValueStatus3","" }, 
                                                         { "04", "chk41" ,"","","","","","","OP_VALUE_4W","OP_VALUE_4Y","OP_VALUE_4X","OP_VALUE_4Z","hiddenOPValueStatus4","" }, 
                                                         { "05", "chk51" ,"rbtn511","rbtn512","","rbtn521","rbtn522","SLP_SLPNumber2","OP_VALUE_5W","OP_VALUE_5Y","OP_VALUE_5X","OP_VALUE_5Z" ,"hiddenOPValueStatus5",""}, 
                                                         { "06", "chk61" ,"","","SLP_SLPNumber3","","","","OP_VALUE_6W","OP_VALUE_6Y","OP_VALUE_6X","OP_VALUE_6Z","hiddenOPValueStatus6","" }, 
                                                         { "07", "chk71" ,"","","SLP_SLPNumber4","rbtn721","rbtn722","SLP_SLPNumber5","OP_VALUE_7W","OP_VALUE_7Y","OP_VALUE_7X","OP_VALUE_7Z","hiddenOPValueStatus7","" }, 
                                                         { "08", "chk81" ,"","","","","","","OP_VALUE_8W","OP_VALUE_8Y","OP_VALUE_8X","OP_VALUE_8Z","hiddenOPValueStatus8",""} };

            Int32 index_OPERATOR1, index_OPERATOR2, index_OP_VALUE1, index_OP_VALUE2, index_CHANGE_TYPE, index_CHANGE_RATE;
            if (dtMain != null && dtMain.Rows.Count > 0)
            {

                for (Int32 k = 0; k <= strAryAssistCode.GetUpperBound(0); k++)
                {
                    ((CheckBox)this.TabContainer1.Tabs[1].FindControl(strAryAssistCode[k, 1])).Checked = false;
                }

                for (Int32 i = 0; i <= dtMain.Rows.Count - 1; i++)
                {

                    for (Int32 k = 0; k <= strAryAssistCode.GetUpperBound(0); k++)
                    {

                        //default index
                        index_OPERATOR1 = 2;//RadioButton
                        index_OP_VALUE1 = 4;//SLP_Number
                        index_OPERATOR2 = 5;//RadioButton
                        index_OP_VALUE2 = 7;//SLP_Number
                        index_CHANGE_TYPE = 8;//RadioButton
                        index_CHANGE_RATE = 10;//SLP_Number

                        if (dtMain.Rows[i]["ASSIST_CODE"].ToString() == strAryAssistCode[k, 0])
                        {
                            ((CheckBox)this.TabContainer1.Tabs[1].FindControl(strAryAssistCode[k, 1])).Checked = true;

                            #region
                            if (dtMain.Rows[i]["OPERATOR1"].ToString().Trim() == "1")// 大於等於(及)
                            {
                                index_OPERATOR1 = 2;
                            }
                            else if (dtMain.Rows[i]["OPERATOR1"].ToString().Trim() == "2")// 小於等於(或)
                            {
                                index_OPERATOR1 = 3;
                            }
                            else
                            {
                                index_OPERATOR1 = 13;//指定到空白控制項     
                            }

                            if (dtMain.Rows[i]["OPERATOR2"].ToString().Trim() == "1")// 大於等於(及)
                            {
                                index_OPERATOR2 = 5;
                            }
                            else if (dtMain.Rows[i]["OPERATOR2"].ToString().Trim() == "2")// 小於等於(或)
                            {
                                index_OPERATOR2 = 6;
                            }
                            else
                            {
                                index_OPERATOR2 = 13;//指定到空白控制項     
                            }


                            if (dtMain.Rows[i]["CHANGE_TYPE"].ToString().Trim() == "0")// 比例
                            {
                                index_CHANGE_TYPE = 8;

                                if (strAryAssistCode[k, 11] != "")
                                    ((Button)this.TabContainer1.Tabs[1].FindControl(strAryAssistCode[k, 11])).Enabled = false;

                                if (strAryAssistCode[k, 12] != "")
                                    ((System.Web.UI.HtmlControls.HtmlInputHidden)this.TabContainer1.Tabs[1].FindControl(strAryAssistCode[k, 12])).Value = "0";

                            }
                            else if (dtMain.Rows[i]["CHANGE_TYPE"].ToString().Trim() == "1")// 數量
                            {
                                index_CHANGE_TYPE = 9;

                                if (strAryAssistCode[k, 10] != "")
                                    ((WUI.SLP.SLPNumber)this.TabContainer1.Tabs[1].FindControl(strAryAssistCode[k, 10])).ReadOnly = true;

                                if (strAryAssistCode[k, 11] != "")
                                    ((Button)this.TabContainer1.Tabs[1].FindControl(strAryAssistCode[k, 11])).Enabled = true;

                                if (strAryAssistCode[k, 12] != "")
                                    ((System.Web.UI.HtmlControls.HtmlInputHidden)this.TabContainer1.Tabs[1].FindControl(strAryAssistCode[k, 12])).Value = "1";

                            }
                            else
                            {
                                index_CHANGE_TYPE = 13;//指定到空白控制項     
                            }

                            #endregion


                            if (strAryAssistCode[k, index_OPERATOR1] != "")
                                ((RadioButton)this.TabContainer1.Tabs[1].FindControl(strAryAssistCode[k, index_OPERATOR1])).Checked = true;

                            if (strAryAssistCode[k, index_OP_VALUE1] != "")
                                ((WUI.SLP.SLPNumber)this.TabContainer1.Tabs[1].FindControl(strAryAssistCode[k, index_OP_VALUE1])).Text = dtMain.Rows[i]["OP_VALUE1"].ToString().Trim();

                            if (strAryAssistCode[k, index_OPERATOR2] != "")
                                ((RadioButton)this.TabContainer1.Tabs[1].FindControl(strAryAssistCode[k, index_OPERATOR2])).Checked = true;

                            if (strAryAssistCode[k, index_OP_VALUE2] != "")
                                ((WUI.SLP.SLPNumber)this.TabContainer1.Tabs[1].FindControl(strAryAssistCode[k, index_OP_VALUE2])).Text = dtMain.Rows[i]["OP_VALUE2"].ToString().Trim();

                            if (strAryAssistCode[k, index_CHANGE_TYPE] != "")
                                ((RadioButton)this.TabContainer1.Tabs[1].FindControl(strAryAssistCode[k, index_CHANGE_TYPE])).Checked = true;

                            if (strAryAssistCode[k, index_CHANGE_RATE] != "")
                                ((WUI.SLP.SLPNumber)this.TabContainer1.Tabs[1].FindControl(strAryAssistCode[k, index_CHANGE_RATE])).Text = dtMain.Rows[i]["CHANGE_RATE"].ToString().Trim();

                            break;
                        }
                    }
                }

            }


            if (dtDetl != null && dtDetl.Rows.Count > 0)
            {
                dtDisAssistDetlAll = dtDetl.Copy();
            }

            #endregion

            #region

            ALOModel.MaintainDisAssist BCO2 = new ALOModel.MaintainDisAssist(ConnectionDB);

            ParameterList.Clear();
            ParameterList.Add(Request.QueryString["DIS_NO"]);
            ParameterList.Add(Request.QueryString["ITEM"]);
            ParameterList.Add(Request.QueryString["PERIOD"]);
            ParameterList.Add(null);
            dtDisAssistMainALO131 = BCO2.QueryDisAssistMain(ParameterList);
            #endregion
        }
        catch (Exception ex)
        {
            ErrorMsgLabel.Text = ex.Message;
        }

        #endregion
    }
Ejemplo n.º 7
0
 private void MakeDataTableDisAssistDetl()
 {
     #region
     try
     {
         ALOModel.MaintainDisAssist BCO = new ALOModel.MaintainDisAssist(ConnectionDB);
         dtDisAssistDetlAll = BCO.GetDisAssistDetlSchema();
     }
     catch (Exception ex)
     {
         ErrorMsgLabel.Text = ex.Message;
     }
     #endregion
 }
Ejemplo n.º 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
    }
Ejemplo n.º 9
0
    private bool SaveAssitMaiAndDetl(DataTable DtMain, DataTable DtDetl, ArrayList Params)
    {
        #region
        bool bResult = false;
        try
        {
            ALOModel.MaintainDisAssist BCO = new ALOModel.MaintainDisAssist(ConnectionDB);
            bResult = BCO.SaveDisAssistInfo(DtMain, DtDetl, Params[0].ToString(), Params[1].ToString(), Params[2].ToString(), Params[5].ToString(), null);
        }
        catch (Exception ex)
        {
            throw ex;
        }

        return bResult;
        #endregion
    }
Ejemplo n.º 10
0
    /// <summary>
    /// 抓取頁面控制相需要的資料
    /// </summary>
    private void GetPageData()
    {
        //配本序號
        DISNOTxt.Text = Request.QueryString["DIS_NO"];

        ALOModel.MaintainDisAssist MDA = new ALOModel.MaintainDisAssist(ConnectionDB);

        #region 輸入變數

        ArrayList ParameterList = new ArrayList();//20091113

        ParameterList.Clear();
        //配本序號
        ParameterList.Add(Request.QueryString["DIS_NO"]);
        //配本項目商品
        ParameterList.Add(Request.QueryString["ITEM"]);
        //配本項目期別
        ParameterList.Add(Request.QueryString["PERIOD"]);
        //通路
        switch (StoreChainRadioButtonList.SelectedIndex)
        {
            case 0: //全部通路
                ParameterList.Add("0");
                break;
            case 1: //個別通路
                ParameterList.Add(SLP_StoreChain1.Text);
                break;
        }

        #endregion

        MDA.QueryDisAssistInfoByDisNO(ParameterList,
                                      ref dtAssistMain,
                                      ref dtAssistDetl
                                      );

        string SessionMainIDAndName = "ALO113dtAssistMain_" + PageTimeStamp.Value;

        Session[SessionMainIDAndName] = dtAssistMain;

        string DetailTmpSessionIDAndName = "ALO113AddistDetailTmp_" + PageTimeStamp.Value;

        Session[DetailTmpSessionIDAndName] = dtAssistDetl;


        #region 將Detail 暫時紀錄

        string DetailSessionIDAndName = "ALO113AddistDetail_" + PageTimeStamp.Value;

        Session[DetailSessionIDAndName] = dtAssistDetl;

        #endregion

        //設定Memo資訊
        SettingMemo();

        if (dtAssistMain.Rows.Count > 0)
        {
            //設定通路
            if (dtAssistMain.Rows[0]["CHAN_NO"].ToString() == "0")
            {
                StoreChainRadioButtonList.SelectedIndex = 0;
            }
            else
            {
                StoreChainRadioButtonList.SelectedIndex = 1;
            }

            //設定條件
            for (int x = 0; x < dtAssistMain.Rows.Count; x++)
            {
                //設定條件到網頁的控制項                
                SettingCondictionToControl(dtAssistMain.Rows[x]);
            }

        }
    }