Exemple #1
0
    /// <summary>
    /// 二段碼
    /// </summary>
    /// <param name="strChan"></param>
    /// <param name="strBarcode"></param>
    /// <param name="strPeriodBarcode"></param>
    /// <param name="strUserID"></param>
    /// <param name="strPageTimeStamp"></param>
    /// <returns></returns>
    private string GetValueByPageMethod_PERIODBARCODE(string strChan, string strBarcode, string strPeriodBarcode, string strUserID, string strPageTimeStamp)
    {
        #region
        string strRtn = "", strTemp1 = "", strTemp2 = "";

        try
        {
            #region 從資料庫查詢資料:群分類、品號、期別
            ArrayList ParameterList = new ArrayList();
            ParameterList.Clear();
            ParameterList.Add(strChan);//通路
            ParameterList.Add(strBarcode);//一段碼
            ParameterList.Add(strPeriodBarcode);//二段碼
            ParameterList.Add(strUserID);

            DataTable dt_Return = new DataTable();
            BCO_CRM.QueryCRMCommon BCO1 = new BCO_CRM.QueryCRMCommon(ConntionDB);
            dt_Return = BCO1.QueryItemPeriodInfoByBarcode(ParameterList);
            BCO1.CloseConnection();

            #endregion

            if (dt_Return.Rows.Count == 0)
            {
                strTemp1 = string.Format("此一段碼/二段碼不存在對應商品期別資訊,請重新輸入");
            }
            else
            {

                //期別或品號有異動時,重取庫存
                if (Session[string.Format("CRM041_s_ITEM_{0}", strPageTimeStamp)].ToString() != dt_Return.Rows[0]["ITEM"].ToString() ||
                    Session[string.Format("CRM041_s_PERIOD_{0}", strPageTimeStamp)].ToString() != dt_Return.Rows[0]["PERIOD"].ToString())
                {
                    Session[string.Format("CRM041_dtStock_{0}", strPageTimeStamp)] = null;
                }

                Session[string.Format("CRM041_s_ROOT_NO_{0}", strPageTimeStamp)] = dt_Return.Rows[0]["ROOT_NO"].ToString();
                Session[string.Format("CRM041_s_ITEM_{0}", strPageTimeStamp)] = dt_Return.Rows[0]["ITEM"].ToString();
                Session[string.Format("CRM041_s_PERIOD_{0}", strPageTimeStamp)] = dt_Return.Rows[0]["PERIOD"].ToString();


                strTemp2 = string.Format("{0}-{1}-{2}",
                            Session[string.Format("CRM041_s_ITEM_{0}", strPageTimeStamp)].ToString(),
                            Session[string.Format("CRM041_s_PERIOD_{0}", strPageTimeStamp)].ToString(),
                            DateTime.Parse(dt_Return.Rows[0]["RTN_DDL"].ToString()).ToString("yyyy/MM/dd"));

                GetStockByPageMethod(Session[string.Format("CRM041_s_ROOT_NO_{0}", strPageTimeStamp)].ToString(), Session[string.Format("CRM041_s_ITEM_{0}", strPageTimeStamp)].ToString(), Session[string.Format("CRM041_s_PERIOD_{0}", strPageTimeStamp)].ToString(), strUserID, strPageTimeStamp);
            }

        }
        catch (Exception ex)
        {
            throw ex;
        }
        return strRtn = string.Format("{0};{1}", strTemp1, strTemp2);
        #endregion
    }
Exemple #2
0
    /// <summary>
    /// 一段碼
    /// </summary>
    /// <param name="strChan"></param>
    /// <param name="strStore"></param>
    /// <param name="strBarcode"></param>
    /// <param name="strUserID"></param>
    /// <param name="strPageTimeStamp"></param>
    /// <returns></returns>
    private string GetValueByPageMethod_BARCODE(string strChan, string strStore, string strBarcode, string strUserID, string strPageTimeStamp)
    {
        #region

        string strRtn = "", strTemp1 = "", strTemp2 = "";

        try
        {
            #region  根據一段碼帶出品號,最大發行期別,二段碼
            ArrayList ParameterList = new ArrayList();
            ParameterList.Clear();
            ParameterList.Add(strChan);//通路
            ParameterList.Add(strStore);//門市
            ParameterList.Add(strBarcode);//一段碼
            ParameterList.Add("");//二段碼
            ParameterList.Add(strUserID);

            DataTable dt_Return = new DataTable();
            BCO_CRM.QueryCRMCommon BCO1 = new BCO_CRM.QueryCRMCommon(ConntionDB);
            dt_Return = BCO1.QueryItemPeriodInfoByBarcode2(ParameterList);
            BCO1.CloseConnection();

            #endregion

            if (dt_Return.Rows.Count == 0)
            {
                strTemp1 = string.Format("FALSE");
                strTemp2 = string.Format("此一段碼不存在已發行對應商品期別資訊,請重新輸入");
            }
            else
            {
                if (dt_Return.Rows[0]["CAN_DELIVER"].ToString() == "1")
                {
                    #region
                    //期別或品號有異動時,重取庫存
                    Session[string.Format("CRM041_dtStock_{0}", strPageTimeStamp)] = null;
                    Session[string.Format("CRM041_s_ROOT_NO_{0}", strPageTimeStamp)] = dt_Return.Rows[0]["ROOT_NO"].ToString();
                    Session[string.Format("CRM041_s_ITEM_{0}", strPageTimeStamp)] = dt_Return.Rows[0]["ITEM"].ToString();
                    Session[string.Format("CRM041_s_PERIOD_{0}", strPageTimeStamp)] = dt_Return.Rows[0]["PERIOD"].ToString();

                    GetStockByPageMethod(Session[string.Format("CRM041_s_ROOT_NO_{0}", strPageTimeStamp)].ToString(), Session[string.Format("CRM041_s_ITEM_{0}", strPageTimeStamp)].ToString(), Session[string.Format("CRM041_s_PERIOD_{0}", strPageTimeStamp)].ToString(), strUserID, strPageTimeStamp);

                    strTemp1 = string.Format("TRUE");
                    strTemp2 = string.Format("{0}-{1}-{2}-{3}",
                        Session[string.Format("CRM041_s_ITEM_{0}", strPageTimeStamp)].ToString(),
                        Session[string.Format("CRM041_s_PERIOD_{0}", strPageTimeStamp)].ToString(),
                        dt_Return.Rows[0]["PERIOD_BARCODE"].ToString(),
                        DateTime.Parse(dt_Return.Rows[0]["RTN_DDL"].ToString()).ToString("yyyy/MM/dd"));
                    #endregion
                }
                else
                {
                    #region
                    strTemp1 = string.Format("FALSE");
                    strTemp2 = string.Format("此一段碼對應品號:[{0}]客服區域限制不可出貨,請重新輸入",
                        Session[string.Format("CRM041_s_ITEM_{0}", strPageTimeStamp)].ToString());
                    #endregion
                }
            }

        }
        catch (Exception ex)
        {
            throw ex;
        }

        return strRtn = string.Format("{0};{1}", strTemp1, strTemp2);
        #endregion
    }
Exemple #3
0
    /// <summary>
    /// 品號
    /// </summary>
    /// <param name="strChan"></param>
    /// <param name="strStore"></param>
    /// <param name="strItem"></param>
    /// <param name="strUserID"></param>
    /// <param name="strPageTimeStamp"></param>
    /// <returns></returns>
    private string GetValueByPageMethod_ITEM(string strChan, string strStore, string strItem, string strUserID, string strPageTimeStamp)
    {
        #region

        string strRtn = "", strTemp = "";
        bool bResult = false;

        try
        {
            #region
            //set s_ITEM by using PageMethod
            Session[string.Format("CRM041_s_ITEM_{0}", strPageTimeStamp)] = strItem;

            #region 從資料庫查詢資料

            ArrayList ParameterList = new ArrayList();
            ParameterList.Clear();
            ParameterList.Add(strItem);//品號
            ParameterList.Add(strChan);//通路
            ParameterList.Add(strStore);//門市                    
            ParameterList.Add(strUserID);

            DataTable dt_Return_1 = new DataTable();
            BCO_CRM.QueryCRMCommon BCO1 = new BCO_CRM.QueryCRMCommon(ConntionDB);
            dt_Return_1 = BCO1.GetMaxDeiveryPeriod2(ParameterList);
            BCO1.CloseConnection();
            #endregion

            if (dt_Return_1 == null || dt_Return_1.Rows.Count == 0 || dt_Return_1.Rows[0]["PERIOD"].ToString() == string.Empty)
            {
                #region
                bResult = false;
                strTemp = string.Format("{0};{1}", 0, "查無資料");
                #endregion
            }
            else
            {
                #region
                //設定品號、期別
                //s_ITEM
                //s_PERIOD    
                Session[string.Format("CRM041_s_ITEM_{0}", strPageTimeStamp)] = strItem;
                Session[string.Format("CRM041_s_PERIOD_{0}", strPageTimeStamp)] = dt_Return_1.Rows[0]["PERIOD"].ToString();

                //設定群分類、大分類
                //s_PMA
                //s_ROOT_NO
                Session[string.Format("CRM041_s_ROOT_NO_{0}", strPageTimeStamp)] = dt_Return_1.Rows[0]["ROOT_NO"].ToString();//群分類
                Session[string.Format("CRM041_s_PMA_{0}", strPageTimeStamp)] = dt_Return_1.Rows[0]["PMA"].ToString();//大分類

                if (dt_Return_1.Rows[0]["CAN_DELIVER"].ToString() == "1")
                {
                    bResult = true;
                    strTemp = string.Format("{0};{1}", 1, dt_Return_1.Rows[0]["PERIOD"].ToString());
                }
                else
                {
                    bResult = false;
                    strTemp = string.Format("{0};{1}", 2, "客服區域限制不可出貨");
                }
                #endregion
            }
            #endregion
        }
        catch (Exception ex)
        {
            throw ex;
        }

        return strRtn = string.Format("{0};{1}", bResult.ToString().ToUpper(), strTemp);
        #endregion
    }
Exemple #4
0
    /// <summary>
    /// 期別
    /// </summary>
    /// <param name="strChan"></param>
    /// <param name="strStore"></param>
    /// <param name="strItem"></param>
    /// <param name="strPeriod"></param>
    /// <param name="strBarcode"></param>
    /// <param name="strPeriodBarcode"></param>
    /// <param name="strRtnDdl"></param>
    /// <param name="strID"></param>
    /// <param name="strCode"></param>
    /// <param name="strUserID"></param>
    /// <param name="strPageTimeStamp"></param>
    /// <returns></returns>
    private string GetValueByPageMethod_PERIOD(string strChan, string strStore, string strItem, string strPeriod, string strBarcode, string strPeriodBarcode, string strRtnDdl, string strID, string strCode, string strUserID, string strPageTimeStamp)
    {
        #region

        string strRtn = "", strTemp1 = "", strTemp2 = "", strTemp3 = "", strTemp4 = "";

        try
        {
            //期別或品號有異動時,重取庫存
            if (Session[string.Format("CRM041_s_ITEM_{0}", strPageTimeStamp)].ToString() != strItem || Session[string.Format("CRM041_s_PERIOD_{0}", strPageTimeStamp)].ToString() != strPeriod)
            {
                Session[string.Format("CRM041_dtStock_{0}", strPageTimeStamp)] = null;
            }

            //s_CHAN_NO
            //s_STORE
            //s_ITEM
            //s_PERIOD
            Session[string.Format("CRM041_s_CHAN_NO_{0}", strPageTimeStamp)] = strChan;//通路
            Session[string.Format("CRM041_s_STORE_{0}", strPageTimeStamp)] = strStore;//門市
            Session[string.Format("CRM041_s_ITEM_{0}", strPageTimeStamp)] = strItem;//品號
            Session[string.Format("CRM041_s_PERIOD_{0}", strPageTimeStamp)] = strPeriod;//期別

            #region CHECK-1:檢查書店是否有未結案同品項訂單


            if (strID == string.Empty)
            {
                #region 從資料庫查詢資料
                ArrayList ParameterList = new ArrayList();

                ParameterList.Clear();
                ParameterList.Add(strChan);//通路
                ParameterList.Add(strStore);//門市
                ParameterList.Add(strItem);//品號
                ParameterList.Add(strPeriod);//期別
                ParameterList.Add(strUserID);
                ParameterList.Add(strCode);//訂單單號

                DataTable dt_Return_1 = new DataTable();
                BCO_CRM.RecordCRMOrder BCO1 = new BCO_CRM.RecordCRMOrder(ConntionDB);
                dt_Return_1 = BCO1.CheckOrderItemExist(ParameterList);
                BCO1.CloseConnection();
                System.Text.StringBuilder sb = new System.Text.StringBuilder();

                #endregion

                if (dt_Return_1.Rows.Count > 0)
                {
                    strTemp1 = string.Format("該門市已存在未結案之同品項訂單於訂單標號:[{0}],不可新增", dt_Return_1.Rows[0]["CRM_REQUEST_NO"].ToString());
                }
            }

            #endregion

            if (strTemp1 == "")
            {
                #region CHECK-2:檢查牌價是否已經正確建立

                ParameterList.Clear();
                ParameterList.Add(strStore);//門市
                ParameterList.Add(strItem);//品號
                ParameterList.Add(strPeriod);//期別
                ParameterList.Add(DateTime.Now.ToString("yyyy/MM/dd")); // 系統日
                ParameterList.Add(strUserID);
                BCO_ALO.ProcessALOCommon BCO2 = new BCO_ALO.ProcessALOCommon(ConntionDB);
                string sRes = BCO2.CheckStAcceptDisPrice(ParameterList);
                BCO2.CloseConnection();

                if (sRes != string.Empty)
                {
                    strTemp2 = string.Format("期別:[{0}],牌價未生效[{1}],不可新增", strPeriod, sRes);
                }

                #endregion

                if (strTemp2 == "")
                {
                    #region CHECK-3:設定二段碼、退書截止日與逾期客訂

                    string s_down_BARCODE = string.Empty;//一段碼
                    string s_down_PERIOD_BARCODE = string.Empty;//二段碼
                    string s_down_RTN_DDL = string.Empty;//退書截止日

                    s_down_BARCODE = strBarcode;
                    s_down_PERIOD_BARCODE = strPeriodBarcode;
                    s_down_RTN_DDL = strRtnDdl;

                    // 不管原來有沒有值,只要品號改變,都重新查詢
                    ParameterList.Clear();
                    ParameterList.Add(strChan);//通路
                    ParameterList.Add(strItem);//品號
                    ParameterList.Add(strPeriod);//期別
                    ParameterList.Add(strUserID);

                    DataTable dt_Return_2 = new DataTable();
                    BCO_CRM.QueryCRMCommon BCO3 = new BCO_CRM.QueryCRMCommon(ConntionDB);
                    dt_Return_2 = BCO3.QueryItemPeriodInfo(ParameterList);
                    BCO3.CloseConnection();

                    if (dt_Return_2.Rows.Count > 0)//有找到資料
                    {
                        s_down_BARCODE = dt_Return_2.Rows[0]["BARCODE"].ToString();
                        s_down_PERIOD_BARCODE = dt_Return_2.Rows[0]["PERIOD_BARCODE"].ToString();
                        s_down_RTN_DDL = DateTime.Parse(dt_Return_2.Rows[0]["RTN_DDL"].ToString()).ToString("yyyy/MM/dd");
                    }
                    else//查無資料
                    {
                        strTemp3 = string.Format("查無[一段碼][二段碼][退書截止日],無法新增");
                    }

                    #endregion

                    if (strTemp3 == "")
                    {
                        #region CHECK-4:逾期客訂確認

                        TimeSpan time = new TimeSpan(11, 00, 00);
                        bool b_down_IS_OVERDUE = false;
                        //20140515 家容提出移除逾期判斷
                        //DateTime d_Now;
                        //DateTime d_RTN_DDL;

                        //d_Now = DateTime.Now;
                        //d_RTN_DDL = DateTime.Parse(s_down_RTN_DDL);

                        //if (d_Now.DayOfWeek == DayOfWeek.Saturday || d_Now.DayOfWeek == DayOfWeek.Sunday ||
                        //    (d_Now.DayOfWeek == DayOfWeek.Friday && d_Now.TimeOfDay.CompareTo(time) >= 0))
                        //{
                        //    if (d_RTN_DDL.AddDays(-5).ToString("yyyy/MM/dd").CompareTo(d_Now.ToString("yyyy/MM/dd")) <= 0)
                        //    {
                        //        b_down_IS_OVERDUE = true;
                        //        b_IS_OVERDUE = true;
                        //    }
                        //}
                        //else
                        //{
                        //    if (d_RTN_DDL.AddDays(-2).ToString("yyyy/MM/dd").CompareTo(d_Now.ToString("yyyy/MM/dd")) <= 0)
                        //    {
                        //        b_down_IS_OVERDUE = true;
                        //        b_IS_OVERDUE = true;
                        //    }
                        //}

                        //[@逾期客訂].檢查結果為True時,顯示Confirm訊息『商品已逾期,不可退貨,確定要新增?』
                        //使用者確認要新增時,可繼續編輯。
                        //使用者選擇不新增時,取消本筆明細新增。

                        if (b_down_IS_OVERDUE == true)
                        {

                            strTemp4 = string.Format("TRUE-{0}-{1}-{2}-{3}-{4}-{5}",
                                Session[string.Format("CRM041_s_ROOT_NO_{0}", strPageTimeStamp)].ToString(), strItem, strPeriod, s_down_BARCODE, s_down_PERIOD_BARCODE, s_down_RTN_DDL);
                        }
                        else
                        {
                            strTemp4 = string.Format("FALSE-{0}-{1}-{2}-{3}-{4}-{5}",
                                Session[string.Format("CRM041_s_ROOT_NO_{0}", strPageTimeStamp)].ToString(), strItem, strPeriod, s_down_BARCODE, s_down_PERIOD_BARCODE, s_down_RTN_DDL);
                        }

                        #endregion

                        if (strTemp4.IndexOf("FALSE") != -1)
                        {
                            #region 取得庫存資訊

                            GetStockByPageMethod(Session[string.Format("CRM041_s_ROOT_NO_{0}", strPageTimeStamp)].ToString(), strItem, strPeriod, strUserID, strPageTimeStamp);

                            #endregion
                        }
                    }
                }
            }
        }
        catch (Exception ex)
        {
            throw ex;
        }

        return strRtn = string.Format("{0};{1};{2};{3}", strTemp1, strTemp2, strTemp3, strTemp4);
        #endregion
    }
Exemple #5
0
    /// <summary>
    /// 根據傳入參數取得商品庫存 by PageMethod 
    /// </summary>
    /// <param name="v_RootNo"></param>
    /// <param name="v_Item"></param>
    /// <param name="v_Period"></param>
    /// <param name="strUserID"></param>
    /// <param name="strPageTimeStamp"></param>
    private void GetStockByPageMethod(string v_RootNo, string v_Item, string v_Period, string strUserID, string strPageTimeStamp)
    {
        #region
        try
        {
            if (v_Item.Trim() == "" || v_Period.Trim() == "")
            {
                throw new Exception("輸入之品號、期別不完整");
            }

            ArrayList ParameterList = new ArrayList();

            if (v_RootNo.Trim() == "")
            {
                #region 依照品號取得所屬[群分類]、[大分類]

                ParameterList.Clear();
                BCO_ITM.SQLHelper.SQLWhere(ref ParameterList, DbType.String, "MA.ITEM", v_Item, "=", "and");
                BCO_ITM.MaintainSKU bco_itm = new BCO_ITM.MaintainSKU(ConntionDB);
                DataTable dt_Return = bco_itm.QuerySKUByFind_1(ParameterList);

                if (dt_Return != null && dt_Return.Rows.Count != 0)
                {
                    Session[string.Format("CRM041_s_PMA_{0}", strPageTimeStamp)] = dt_Return.Rows[0]["PMA"].ToString();//大分類
                    Session[string.Format("CRM041_s_ROOT_NO_{0}", strPageTimeStamp)] = dt_Return.Rows[0]["ROOT_NO"].ToString();//群分類
                    v_RootNo = Session[string.Format("CRM041_s_ROOT_NO_{0}", strPageTimeStamp)].ToString();
                }
                bco_itm = null;
                dt_Return.Dispose();

                #endregion
            }

            if (Session[string.Format("CRM041_dtStock_{0}", strPageTimeStamp)] == null)
            {
                ParameterList.Clear();
                ParameterList.Add(v_RootNo);
                ParameterList.Add(v_Item);
                ParameterList.Add(v_Period);
                ParameterList.Add(strUserID);
                BCO_CRM.QueryCRMCommon BCO = new BCO_CRM.QueryCRMCommon(ConntionDB);
                Session[string.Format("CRM041_dtStock_{0}", strPageTimeStamp)] = BCO.QueryCRMItemPeriodStock(ParameterList);
                BCO.CloseConnection();
            }
        }
        catch (Exception ex)
        {
            throw ex;
        }
        #endregion
    }