/// <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 }
/// <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 }
/// <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 }
/// <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 }
/// <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 }