/// <summary> /// 將變更後的內部變量this.CallBackValue返回給前台JavaScript方法ReceiveServerData(string Value)。 /// </summary> /// <returns></returns> string ICallbackEventHandler.GetCallbackResult() { if (CallBackValue != string.Empty) { try { #region 取得頁面元件 TextBox txt_up_CHAN_NO = (TextBox)((ASP.stm_slp_slp_storechain_ascx)slp_up_CHAN_NO).FindControl("TextBoxCode");//通路 TextBox txt_up_CHAN_NAME = (TextBox)((ASP.stm_slp_slp_storechain_ascx)slp_up_CHAN_NO).FindControl("TextBoxName");//通路名稱 TextBox txt_up_STORE = (TextBox)((ASP.stm_slp_slp_store_ascx)slp_up_STORE).FindControl("TextBoxCode");//門市 TextBox txt_up_Z_O = (TextBox)((ASP.sys_slp_slp_codefile_ascx)slp_up_Z_O).FindControl("TextBoxCode");//營業所 TextBox txt_up_Z_O_NAME = (TextBox)((ASP.sys_slp_slp_codefile_ascx)slp_up_Z_O).FindControl("TextBoxName");//營業所名稱 TextBox txt_up_BUSDATE = (TextBox)((ASP.wui_slp_slp_slpdate_ascx)slp_up_BUSDATE).FindControl("TextBoxCode");//訂單日期 TextBox txt_up_SALE_ID = (TextBox)((ASP.sys_slp_slp_user_ascx)slp_up_SALE_ID).FindControl("TextBoxCode");//營業人員 TextBox txt_up_SALE_NAME = (TextBox)((ASP.sys_slp_slp_user_ascx)slp_up_SALE_ID).FindControl("TextBoxName");//營業人員名稱 TextBox txt_up_BUSUID = (TextBox)((ASP.sys_slp_slp_user_ascx)slp_up_BUSUID).FindControl("TextBoxCode");//訂單維護者 Image img_up_CHAN_NO = (Image)((ASP.stm_slp_slp_storechain_ascx)slp_up_CHAN_NO).FindControl("Image1");//通路img Image img_up_STORE = (Image)((ASP.stm_slp_slp_store_ascx)slp_up_STORE).FindControl("Image1");//門市img Image img_up_BUSDATE = (Image)((ASP.wui_slp_slp_slpdate_ascx)slp_up_BUSDATE).FindControl("Image1");//訂單日期img Image img_up_SALE_ID = (Image)((ASP.sys_slp_slp_user_ascx)slp_up_SALE_ID).FindControl("Image1");//營業人員img Image img_up_BUSUID = (Image)((ASP.sys_slp_slp_user_ascx)slp_up_BUSUID).FindControl("Image1");//訂單維護者img Image img_down_ITEM = (Image)((ASP.itm_slp_slp_sku_ascx)slp_down_ITEM).FindControl("Image1");//品號img Image img_down_REQUEST_QTY = (Image)((ASP.wui_slp_slp_slpquantity_ascx)slp_down_REQUEST_QTY).FindControl("Image1");//訂貨量img Image img_down_RTN_DDL = (Image)((ASP.wui_slp_slp_slpdate_ascx)slp_down_RTN_DDL).FindControl("Image1");//退書截止日img TextBox txt_down_ITEM = (TextBox)((ASP.itm_slp_slp_sku_ascx)slp_down_ITEM).FindControl("TextBoxCode");//品號 TextBox txt_down_ITEM_NAME = (TextBox)((ASP.itm_slp_slp_sku_ascx)slp_down_ITEM).FindControl("TextBoxName");//品名 TextBox txt_down_REQUEST_QTY = (TextBox)((ASP.wui_slp_slp_slpquantity_ascx)slp_down_REQUEST_QTY).FindControl("TextBoxCode");//訂貨量 TextBox txt_down_REQUEST_QTY_NAME = (TextBox)((ASP.wui_slp_slp_slpquantity_ascx)slp_down_REQUEST_QTY).FindControl("TextBoxName");//訂貨量名稱 TextBox txt_down_RTN_DDL = (TextBox)((ASP.wui_slp_slp_slpdate_ascx)slp_down_RTN_DDL).FindControl("TextBoxCode");//退書截止日 CheckBox chk_down_IS_OVERDUE = (CheckBox)((ASP.wui_slp_slp_boolean_ascx)slp_down_IS_OVERDUE).FindControl("C1");//逾期客訂 #endregion System.Text.StringBuilder sb = new System.Text.StringBuilder(); sb.Remove(0, sb.Length); CallBackValue = CallBackValue.Trim(); string[] s_Client_String = System.Text.RegularExpressions.Regex.Split(CallBackValue, "<partition>", System.Text.RegularExpressions.RegexOptions.IgnoreCase); ArrayList ParameterList = new ArrayList();//20091117 #region 新增模式下異動欄位[門市] if (s_Client_String[0] == "新增模式下異動欄位[門市]") { if (dtChainPOSetting != null) { dtChainPOSetting = null; } s_STORE = s_Client_String[1].ToString().Trim();//門市 s_CHAN_NO = s_Client_String[2].ToString().Trim();//通路 #region 從資料庫查詢資料 ParameterList.Clear(); ParameterList.Add(s_Client_String[1]);//門市 ParameterList.Add(s_Client_String[2]);//通路 ParameterList.Add(Session["UID"].ToString()); DataTable dt_Return = new DataTable(); BCO.MaintainStore bco = new BCO.MaintainStore(ConntionDB); dt_Return = bco.QUERY_STORE_BY_STOREANDCHAN(ParameterList); #endregion #region 設定回傳Client端資訊 if (dt_Return.Rows.Count == 0) { sb.Append("新增模式下異動欄位[門市]<partition>"); sb.Append("FALSE<partition>"); sb.Append("查無門市資料<partition>"); sb.Append(txt_up_STORE.ClientID + "<partition>");//設定焦點的欄位 sb.Append(txt_up_CHAN_NO.ClientID + "<partition>"); sb.Append(txt_up_Z_O.ClientID + "<partition>"); sb.Append(txt_up_SALE_ID.ClientID); } else { sb.Append("新增模式下異動欄位[門市]<partition>"); sb.Append("TRUE<partition>"); sb.Append(dt_Return.Rows[0]["CHAN_NO"].ToString() + "<partition_Detail>" + txt_up_CHAN_NO.ClientID + "<partition>"); sb.Append(dt_Return.Rows[0]["Z_O"].ToString() + "<partition_Detail>" + txt_up_Z_O.ClientID + "<partition>"); //sb.Append(dt_Return.Rows[0]["SAL_ID"].ToString() + "<partition_Detail>" + txt_up_SALE_ID.ClientID); sb.Append(dt_Return.Rows[0]["SAL_ID"].ToString() + "<partition_Detail>" + txt_up_SALE_ID.ClientID + "<partition>"); sb.Append("<partition_Detail>" + txt_up_CHAN_NAME.ClientID + "<partition>"); sb.Append("<partition_Detail>" + txt_up_Z_O_NAME.ClientID + "<partition>"); sb.Append("<partition_Detail>" + txt_up_SALE_NAME.ClientID); #region 取得通路PO控制設定 GetChainPOSetting(dt_Return.Rows[0]["CHAN_NO"].ToString(), dt_Return.Rows[0]["STORE"].ToString()); #endregion } #endregion } #endregion #region 新增或編輯模式下異動欄位[二段碼] else if (s_Client_String[0] == "新增或編輯模式下異動欄位[二段碼]") { #region 從資料庫查詢資料:群分類、品號、期別 ParameterList.Clear(); ParameterList.Add(s_Client_String[1]);//通路 ParameterList.Add(s_Client_String[2]);//一段碼 ParameterList.Add(s_Client_String[3]);//二段碼 ParameterList.Add(Session["UID"].ToString()); DataTable dt_Return = new DataTable(); BCO.QueryCRMCommon bco = new BCO.QueryCRMCommon(ConntionDB); dt_Return = bco.QueryItemPeriodInfoByBarcode(ParameterList); #endregion if (dt_Return.Rows.Count == 0) { sb.Append("新增或編輯模式下異動欄位[二段碼]<partition>"); sb.Append("FALSE<partition>"); sb.Append("此一段碼/二段碼不存在對應商品期別資訊,請重新輸入<partition>"); sb.Append(this.txt_down_BARCODE.ClientID + "<partition>");//設定焦點的欄位 sb.Append(this.txt_down_PERIOD_BARCODE.ClientID + "<partition>"); sb.Append(txt_down_ITEM.ClientID + "<partition>"); sb.Append(this.txt_down_PERIOD.ClientID + "<partition>"); sb.Append(txt_down_RTN_DDL.ClientID); } else { sb.Append("新增或編輯模式下異動欄位[二段碼]<partition>"); sb.Append("TRUE<partition>"); sb.Append(dt_Return.Rows[0]["ITEM"].ToString() + "<partition_Detail>" + txt_down_ITEM.ClientID + "<partition>"); sb.Append(dt_Return.Rows[0]["PERIOD"].ToString() + "<partition_Detail>" + this.txt_down_PERIOD.ClientID + "<partition>"); sb.Append(DateTime.Parse(dt_Return.Rows[0]["RTN_DDL"].ToString()).ToString("yyyy/MM/dd") + "<partition_Detail>" + txt_down_RTN_DDL.ClientID); //期別或品號有異動時,重取庫存 if (s_ITEM != dt_Return.Rows[0]["ITEM"].ToString() || s_PERIOD != dt_Return.Rows[0]["PERIOD"].ToString() ) { dtStock = null; } s_ROOT_NO = dt_Return.Rows[0]["ROOT_NO"].ToString(); s_ITEM = dt_Return.Rows[0]["ITEM"].ToString(); s_PERIOD = dt_Return.Rows[0]["PERIOD"].ToString(); GetStock(s_ROOT_NO, s_ITEM, s_PERIOD); } } #endregion #region 新增或編輯模式下異動欄位[一段碼]onchange else if (s_Client_String[0] == "新增或編輯模式下異動欄位[一段碼]onchange") { #region 根據一段碼帶出品號,最大發行期別,二段碼 ParameterList.Clear(); ParameterList.Add(s_Client_String[1]);//通路 ParameterList.Add(s_STORE);//通路 ParameterList.Add(s_Client_String[3]);//一段碼 ParameterList.Add(string.Empty);//二段碼 ParameterList.Add(Session["UID"].ToString()); DataTable dt_Return = new DataTable(); BCO.QueryCRMCommon bco = new BCO.QueryCRMCommon(ConntionDB); dt_Return = bco.QueryItemPeriodInfoByBarcode2(ParameterList); #endregion if (dt_Return.Rows.Count == 0) { sb.Append("新增或編輯模式下異動欄位[一段碼]onchange<partition>"); sb.Append("FALSE<partition>"); sb.Append("此一段碼不存在已發行對應商品期別資訊,請重新輸入<partition>"); sb.Append(this.txt_down_PERIOD_BARCODE.ClientID + "<partition>"); sb.Append(txt_down_ITEM.ClientID + "<partition>"); sb.Append(this.txt_down_PERIOD.ClientID + "<partition>"); sb.Append(txt_down_RTN_DDL.ClientID + "<partition>"); sb.Append(this.txt_down_RECOMMAND_LOCATION.ClientID + "<partition>");//建議儲區 sb.Append(this.txt_down_BARCODE.ClientID);//設定焦點的欄位 } else { if (dt_Return.Rows[0]["CAN_DELIVER"].ToString() == "1") { //期別或品號有異動時,重取庫存 dtStock = null; s_ROOT_NO = dt_Return.Rows[0]["ROOT_NO"].ToString(); s_ITEM = dt_Return.Rows[0]["ITEM"].ToString(); s_PERIOD = dt_Return.Rows[0]["PERIOD"].ToString(); GetStock(s_ROOT_NO, s_ITEM, s_PERIOD); sb.Append("新增或編輯模式下異動欄位[一段碼]onchange<partition>");//找到對應商品期別資訊,設定商品期別 sb.Append("TRUE<partition>"); sb.Append(s_ITEM + "<partition_Detail>" + txt_down_ITEM.ClientID + "<partition>"); sb.Append(dt_Return.Rows[0]["PERIOD_BARCODE"].ToString() + "<partition_Detail>" + this.txt_down_PERIOD_BARCODE.ClientID + "<partition>"); sb.Append(DateTime.Parse(dt_Return.Rows[0]["RTN_DDL"].ToString()).ToString("yyyy/MM/dd") + "<partition_Detail>" + txt_down_RTN_DDL.ClientID + "<partition>"); sb.Append(s_PERIOD + "<partition_Detail>" + this.txt_down_PERIOD.ClientID); } else { sb.Append("新增或編輯模式下異動欄位[一段碼]onchange<partition>"); sb.Append("FALSE<partition>"); sb.Append("此一段碼對應品號" + s_ITEM + "客服區域限制不可出貨,請重新輸入<partition>"); sb.Append(this.txt_down_PERIOD_BARCODE.ClientID + "<partition>"); sb.Append(txt_down_ITEM.ClientID + "<partition>"); sb.Append(this.txt_down_PERIOD.ClientID + "<partition>"); sb.Append(txt_down_RTN_DDL.ClientID + "<partition>"); sb.Append(this.txt_down_RECOMMAND_LOCATION.ClientID + "<partition>");//建議儲區 sb.Append(this.txt_down_BARCODE.ClientID);//設定焦點的欄位 } } //sb.Append("新增或編輯模式下異動欄位[一段碼]onchange<partition>"); //sb.Append("TRUE<partition>"); //sb.Append(txt_down_ITEM.ClientID + "<partition>"); //異動一段碼時,清空 Item、 Period 、退貨日、儲區、逾期客訂,設定焦點到ITEM //sb.Append(this.txt_down_PERIOD.ClientID + "<partition>"); //期別 //sb.Append(this.txt_down_PERIOD_BARCODE.ClientID + "<partition>"); //二段碼 //sb.Append(txt_down_RTN_DDL.ClientID + "<partition>"); //預定退貨日 //sb.Append(this.txt_down_RECOMMAND_LOCATION);//建議儲區 } #endregion #region 新增或編輯模式下異動欄位[品號/品名] else if (s_Client_String[0] == "新增或編輯模式下異動欄位[品號/品名]") { //s_PMA = string.Empty;//大分類 //s_ROOT_NO = string.Empty;//群分類 s_ITEM = s_Client_String[1].ToString().Trim();//品號 #region 從資料庫查詢資料 ParameterList.Clear(); ParameterList.Add(s_Client_String[1]);//品號 ParameterList.Add(s_CHAN_NO);//通路 ParameterList.Add(s_STORE);//門市 ParameterList.Add(Session["UID"].ToString()); DataTable dt_Return_1 = new DataTable(); BCO.QueryCRMCommon bco = new BCO.QueryCRMCommon(ConntionDB); dt_Return_1 = bco.GetMaxDeiveryPeriod2(ParameterList); #endregion if (dt_Return_1 == null || dt_Return_1.Rows.Count == 0 || dt_Return_1.Rows[0]["PERIOD"].ToString() == string.Empty) { sb.Length = 0; sb.Append("新增或編輯模式下異動欄位[品號/品名]<partition>"); sb.Append("FALSE<partition>"); sb.Append("查無資料<partition>"); sb.Append(txt_down_ITEM.ClientID);//設定焦點的欄位 } else { //設定品號、期別 s_ITEM = s_Client_String[1]; s_PERIOD = dt_Return_1.Rows[0]["PERIOD"].ToString(); //設定群分類、大分類 s_PMA = dt_Return_1.Rows[0]["PMA"].ToString();//大分類 s_ROOT_NO = dt_Return_1.Rows[0]["ROOT_NO"].ToString();//群分類 if (dt_Return_1.Rows[0]["CAN_DELIVER"].ToString() == "1") { sb.Length = 0; sb.Append("新增或編輯模式下異動欄位[品號/品名]<partition>"); sb.Append("TRUE<partition>"); sb.Append(dt_Return_1.Rows[0]["PERIOD"].ToString() + "<partition_Detail>" + this.txt_down_PERIOD.ClientID); } else { sb.Length = 0; sb.Append("新增或編輯模式下異動欄位[品號/品名]<partition>"); sb.Append("FALSE<partition>"); sb.Append("客服區域限制不可出貨<partition>"); sb.Append(txt_down_ITEM.ClientID);//設定焦點的欄位 } #region OLD 取得商品主檔資訊 //DataTable dt_Return_2 = new DataTable(); //ParameterList.Clear(); //BCO_ITM.SQLHelper.SQLWhere(ref ParameterList, DbType.String, "MA.ITEM", s_Client_String[1], "=", "and"); //BCO_ITM.MaintainSKU bco_itm = new BCO_ITM.MaintainSKU(ConntionDB); //dt_Return_2 = bco_itm.QuerySKUByFind_1(ParameterList); //if (dt_Return_2 != null && dt_Return_2.Rows.Count != 0) //{ // s_PMA = dt_Return_2.Rows[0]["PMA"].ToString();//大分類 // s_ROOT_NO = dt_Return_2.Rows[0]["ROOT_NO"].ToString();//群分類 //} //else //{ // sb = sb.Remove(0, sb.Length); // sb.Append("新增或編輯模式下異動欄位[品號/品名]<partition>"); // sb.Append("FALSE<partition>"); // sb.Append("商品主檔中無對應品號<partition>"); // sb.Append(txt_down_ITEM.ClientID);//設定焦點的欄位 //} #endregion } } #endregion #region 新增或編輯模式下異動欄位[期別] else if (s_Client_String[0] == "新增或編輯模式下異動欄位[期別]") { //期別或品號有異動時,重取庫存 if (s_ITEM != s_Client_String[3].ToString().Trim() || s_PERIOD != s_Client_String[4].ToString().Trim() ) { dtStock = null; } s_CHAN_NO = s_Client_String[1].ToString().Trim();//通路 s_STORE = s_Client_String[2].ToString().Trim();//門市 if (s_ITEM != s_Client_String[3].ToString().Trim()) { } s_ITEM = s_Client_String[3].ToString().Trim();//品號 s_PERIOD = s_Client_String[4].ToString().Trim();//期別 #region 檢查書店是否有未結案同品項訂單 if (s_Client_String[8] == string.Empty) { #region 從資料庫查詢資料 ParameterList.Clear(); ParameterList.Add(s_Client_String[1]);//通路 ParameterList.Add(s_Client_String[2]);//門市 ParameterList.Add(s_Client_String[3]);//品號 ParameterList.Add(s_Client_String[4]);//期別 ParameterList.Add(Session["UID"].ToString()); ParameterList.Add(this.txt_up_CODE.Text);//訂單單號 DataTable dt_Return_1 = new DataTable(); BCO.RecordCRMOrder bco_Record = new BCO.RecordCRMOrder(ConntionDB); dt_Return_1 = bco_Record.CheckOrderItemExist(ParameterList); #endregion if (dt_Return_1.Rows.Count > 0) { sb.Append("新增或編輯模式下異動欄位[期別]<partition>"); sb.Append("檢查書店是否有未結案同品項訂單<partition>"); sb.Append("該門市已存在未結案之同品項訂單於訂單標號:[" + dt_Return_1.Rows[0]["CRM_REQUEST_NO"].ToString() + "],不可新增<partition>"); sb.Append(this.txt_down_PO_SOURCE_NO.ClientID + "<partition>");//設定焦點的欄位 sb.Append(chk_down_IS_OVERDUE.ClientID + "<partition>");//逾期客訂 sb.Append(this.txt_down_PO_SOURCE_NO.ClientID + "<partition>");//PO單號 sb.Append(this.txt_down_BARCODE.ClientID + "<partition>");//一段碼 sb.Append(this.txt_down_PERIOD_BARCODE.ClientID + "<partition>");//二段碼 sb.Append(txt_down_ITEM.ClientID + "<partition>");//品號 sb.Append(txt_down_ITEM_NAME.ClientID + "<partition>");//品名 sb.Append(this.txt_down_PERIOD.ClientID + "<partition>");//期別 sb.Append(txt_down_REQUEST_QTY.ClientID + "<partition>");//訂貨量 sb.Append(txt_down_REQUEST_QTY_NAME.ClientID + "<partition>");//訂貨量名稱 sb.Append(txt_down_RTN_DDL.ClientID + "<partition>");//退書截止日 sb.Append(this.txt_down_RECOMMAND_LOCATION.ClientID);//建議儲區 return sb.ToString(); } } #endregion #region 檢查牌價是否已經正確建立 ParameterList.Clear(); ParameterList.Add(s_Client_String[2]);//門市 ParameterList.Add(s_Client_String[3]);//品號 ParameterList.Add(s_Client_String[4]);//期別 ParameterList.Add(DateTime.Today.ToString("yyyy/MM/dd")); // 系統日 ParameterList.Add(Session["UID"].ToString()); PIC.VDS2G.BSM.ALO.ProcessALOCommon co_process = new PIC.VDS2G.BSM.ALO.ProcessALOCommon(ConntionDB); string sRes = co_process.CheckStAcceptDisPrice(ParameterList); //bool bRes = co_process.CheckStAcceptDisPrice(ParameterList, null); if (sRes != string.Empty) { sb.Append("新增或編輯模式下異動欄位[期別]<partition>"); sb.Append("檢查牌價是否已經正確建立<partition>"); sb.Append("期別" + s_PERIOD + "牌價未生效[" + sRes + "],不可新增<partition>"); sb.Append(this.txt_down_PERIOD.ClientID + "<partition>");//設定焦點的欄位 sb.Append(chk_down_IS_OVERDUE.ClientID + "<partition>");//逾期客訂 sb.Append(this.txt_down_PO_SOURCE_NO.ClientID + "<partition>");//PO單號 sb.Append(this.txt_down_BARCODE.ClientID + "<partition>");//一段碼 sb.Append(this.txt_down_PERIOD_BARCODE.ClientID + "<partition>");//二段碼 sb.Append(txt_down_ITEM.ClientID + "<partition>");//品號 sb.Append(txt_down_ITEM_NAME.ClientID + "<partition>");//品名 sb.Append(this.txt_down_PERIOD.ClientID + "<partition>");//期別 sb.Append(txt_down_REQUEST_QTY.ClientID + "<partition>");//訂貨量 sb.Append(txt_down_REQUEST_QTY_NAME.ClientID + "<partition>");//訂貨量名稱 sb.Append(txt_down_RTN_DDL.ClientID + "<partition>");//退書截止日 sb.Append(this.txt_down_RECOMMAND_LOCATION.ClientID);//建議儲區 return sb.ToString(); } #endregion #region 設定二段碼、退書截止日與逾期客訂 string s_down_BARCODE = string.Empty;//一段碼 string s_down_PERIOD_BARCODE = string.Empty;//二段碼 string s_down_RTN_DDL = string.Empty;//退書截止日 s_down_BARCODE = s_Client_String[5]; s_down_PERIOD_BARCODE = s_Client_String[6]; s_down_RTN_DDL = s_Client_String[7]; BCO.QueryCRMCommon bco_Common = new BCO.QueryCRMCommon(ConntionDB); // 不管原來有沒有值,只要品號改變,都重新查詢 //if (s_Client_String[5] == string.Empty ||//一段碼 // s_Client_String[6] == string.Empty ||//二段碼 // s_Client_String[7] == string.Empty)//退書截止日 //{ ParameterList.Clear(); ParameterList.Add(s_Client_String[1]);//通路 ParameterList.Add(s_Client_String[3]);//品號 ParameterList.Add(s_Client_String[4]);//期別 ParameterList.Add(Session["UID"].ToString()); DataTable dt_Return_2 = new DataTable(); dt_Return_2 = bco_Common.QueryItemPeriodInfo(ParameterList); 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//查無資料 { sb.Append("新增或編輯模式下異動欄位[期別]<partition>"); sb.Append("設定二段碼、退書截止日與逾期客訂<partition>"); sb.Append("查無[一段碼][二段碼][退書截止日],無法新增<partition>"); sb.Append(this.txt_down_PO_SOURCE_NO.ClientID + "<partition>");//設定焦點的欄位 sb.Append(chk_down_IS_OVERDUE.ClientID + "<partition>");//逾期客訂 sb.Append(this.txt_down_PO_SOURCE_NO.ClientID + "<partition>");//PO單號 sb.Append(this.txt_down_BARCODE.ClientID + "<partition>");//一段碼 sb.Append(this.txt_down_PERIOD_BARCODE.ClientID + "<partition>");//二段碼 sb.Append(txt_down_ITEM.ClientID + "<partition>");//品號 sb.Append(txt_down_ITEM_NAME.ClientID + "<partition>");//品名 sb.Append(this.txt_down_PERIOD.ClientID + "<partition>");//期別 sb.Append(txt_down_REQUEST_QTY.ClientID + "<partition>");//訂貨量 sb.Append(txt_down_REQUEST_QTY_NAME.ClientID + "<partition>");//訂貨量名稱 sb.Append(txt_down_RTN_DDL.ClientID + "<partition>");//退書截止日 sb.Append(this.txt_down_RECOMMAND_LOCATION.ClientID);//建議儲區 return sb.ToString(); } //} #endregion #region 逾期客訂確認 TimeSpan time = new TimeSpan(11, 00, 00); bool b_down_IS_OVERDUE = false; 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).ToShortDateString().CompareTo(d_Now.ToShortDateString()) <= 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).ToShortDateString().CompareTo(d_Now.ToShortDateString()) <= 0) 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) { sb.Append("新增或編輯模式下異動欄位[期別]<partition>"); sb.Append("[逾期客訂]檢查結果為TRUE<partition>"); sb.Append(chk_down_IS_OVERDUE.ClientID + "<partition>");//逾期客訂 sb.Append(s_ROOT_NO + "<partition>");//群分類 sb.Append(s_Client_String[3] + "<partition>");//品號 sb.Append(s_Client_String[4] + "<partition>");//期別 sb.Append(s_down_BARCODE + "<partition_Detail>" + this.txt_down_BARCODE.ClientID + "<partition>");//一段碼 sb.Append(s_down_PERIOD_BARCODE + "<partition_Detail>" + this.txt_down_PERIOD_BARCODE.ClientID + "<partition>");//二段碼 sb.Append(s_down_RTN_DDL + "<partition_Detail>" + txt_down_RTN_DDL.ClientID);//退書截止日 return sb.ToString(); } else { sb.Append("新增或編輯模式下異動欄位[期別]<partition>"); sb.Append("[逾期客訂]檢查結果為FALSE<partition>"); sb.Append(chk_down_IS_OVERDUE.ClientID + "<partition>");//逾期客訂 sb.Append(s_down_BARCODE + "<partition_Detail>" + this.txt_down_BARCODE.ClientID + "<partition>");//一段碼 sb.Append(s_down_PERIOD_BARCODE + "<partition_Detail>" + this.txt_down_PERIOD_BARCODE.ClientID + "<partition>");//二段碼 sb.Append(s_down_RTN_DDL + "<partition_Detail>" + txt_down_RTN_DDL.ClientID);//退書截止日 } #endregion #region 取得庫存資訊 GetStock(s_ROOT_NO, s_Client_String[3], s_Client_String[4]); #endregion } #endregion #region 新增或編輯模式下異動欄位[期別]Confirm後 else if (s_Client_String[0] == "新增或編輯模式下異動欄位[期別]Confirm後") { if (dtStock != null) { dtStock = null; } if (s_Client_String[1] == "TRUE")//繼續編輯。 { #region 取得商品主檔資訊 if (s_PMA == String.Empty || s_ROOT_NO == String.Empty) { DataTable dt_Return_2 = new DataTable(); ParameterList.Clear(); BCO_ITM.SQLHelper.SQLWhere(ref ParameterList, DbType.String, "MA.ITEM", slp_down_ITEM.Text, "=", "and"); BCO_ITM.MaintainSKU bco_itm = new BCO_ITM.MaintainSKU(ConntionDB); dt_Return_2 = bco_itm.QuerySKUByFind_1(ParameterList); if (dt_Return_2 != null && dt_Return_2.Rows.Count != 0) { s_PMA = dt_Return_2.Rows[0]["PMA"].ToString();//大分類 s_ROOT_NO = dt_Return_2.Rows[0]["ROOT_NO"].ToString();//群分類 } else { sb = sb.Remove(0, sb.Length); sb.Append("新增或編輯模式下異動欄位[期別]Confirm後<partition>"); sb.Append("FALSE<partition>"); sb.Append("商品主檔中無對應品號<partition>"); sb.Append(txt_down_ITEM.ClientID);//設定焦點的欄位 } } #endregion #region 取得庫存資訊 GetStock(s_ROOT_NO, s_Client_String[3], s_Client_String[4]); #endregion } else if (s_Client_String[1] == "FALSE")//取消本筆明細新增。 { #region 清空靜態變數 dtStock = null;//異動欄位[期別] s_PMA = string.Empty;//大分類(異動欄位[品號/品名]) s_ROOT_NO = string.Empty;//群分類(異動欄位[品號/品名]) s_SRC_LOCATE_TYPE = string.Empty;//建議儲區類別(異動欄位[訂貨量]) #endregion #region 計算 dt_Detail 的筆數 int i_dt_Detail_Count = 0; if (dt_Detail != null) { if (dt_Detail.GetChanges(DataRowState.Deleted) == null) { i_dt_Detail_Count = dt_Detail.Rows.Count; } else { i_dt_Detail_Count = dt_Detail.Rows.Count - dt_Detail.GetChanges(DataRowState.Deleted).Rows.Count; } } #endregion sb.Append("新增或編輯模式下異動欄位[期別]Confirm後<partition>"); sb.Append(i_dt_Detail_Count.ToString() + "<partition>");//dt_Detail的筆數 sb.Append(this.hid_PageStatus.ClientID + "<partition>");//hid_PageStatus sb.Append(this.panel_Down_AddDetail.ClientID + "<partition>");//panel_Down_AddDetail sb.Append(this.panel_Down_Button.ClientID + "<partition>");//panel_Down_Button sb.Append(chk_down_IS_OVERDUE.ClientID + "<partition>");//逾期客訂 sb.Append(this.txt_down_PO_SOURCE_NO.ClientID + "<partition>");//PO單號 sb.Append(this.txt_down_BARCODE.ClientID + "<partition>");//一段碼 sb.Append(this.txt_down_PERIOD_BARCODE.ClientID + "<partition>");//二段碼 sb.Append(txt_down_ITEM.ClientID + "<partition>");//品號 sb.Append(txt_down_ITEM_NAME.ClientID + "<partition>");//品名 sb.Append(this.txt_down_PERIOD.ClientID + "<partition>");//期別 sb.Append(txt_down_REQUEST_QTY.ClientID + "<partition>");//訂貨量 sb.Append(txt_down_REQUEST_QTY_NAME.ClientID + "<partition>");//訂貨量名稱 sb.Append(txt_down_RTN_DDL.ClientID + "<partition>");//退書截止日 sb.Append(this.txt_down_RECOMMAND_LOCATION.ClientID + "<partition>");//建議儲區 sb.Append(txt_up_CHAN_NO.ClientID + "<partition>");//通路 sb.Append(txt_up_STORE.ClientID + "<partition>");//門市 sb.Append(txt_up_Z_O.ClientID + "<partition>");//營業所 sb.Append(txt_up_BUSDATE.ClientID + "<partition>");//訂單日期 sb.Append(txt_up_SALE_ID.ClientID + "<partition>");//營業人員 sb.Append(txt_up_BUSUID.ClientID + "<partition>");//訂單維護者 sb.Append(((DropDownList)((ASP.sys_slp_slp_enumbase_ascx)drop_up_ORDER_TYPE).FindControl("D1")).ClientID + "<partition>");//訂單來源 sb.Append(this.txt_up_PO_SOURCE_NO.ClientID + "<partition>");//PO單號預設 sb.Append(this.txt_up_CODE.ClientID + "<partition>");//訂單編號 sb.Append(this.txt_up_CRM_NO.ClientID + "<partition>");//流水編號 sb.Append(img_up_CHAN_NO.ClientID + "<partition>");//通路img sb.Append(img_up_STORE.ClientID + "<partition>");//門市img sb.Append(img_up_BUSDATE.ClientID + "<partition>");//訂單日期img sb.Append(img_up_SALE_ID.ClientID + "<partition>");//營業人員img sb.Append(img_up_BUSUID.ClientID);//訂單維護者img } } #endregion #region 新增或編輯模式下異動欄位[訂貨量] else if (s_Client_String[0] == "新增或編輯模式下異動欄位[訂貨量]") { #region 判斷庫存是否足夠 if ((dtStock == null) || (dtStock.Rows.Count < 1)) { GetStock(s_ROOT_NO, s_ITEM, s_PERIOD); } if (((dtStock == null) || (dtStock.Rows.Count < 1)) && (s_ROOT_NO != "2")) { sb.Append("新增或編輯模式下異動欄位[訂貨量]<partition>"); sb.Append("FALSE<partition>"); sb.Append("庫存量不足,請取消新增<partition>"); sb.Append(txt_down_REQUEST_QTY.ClientID + "<partition>");//設定焦點的欄位 sb.Append(this.txt_down_RECOMMAND_LOCATION.ClientID); return sb.ToString(); } #endregion DataView dvStock = new DataView(dtStock.Copy()); s_SRC_LOCATE_TYPE = string.Empty; int i_REQUEST_QTY = 0;//畫面上使用者輸入的"訂貨量" int i_ONHD_QTY = 0;//現有庫存量 int i_RESERVE_QTY = 0;//配本保留數 int i_Final_QTY = 0;//庫存儲區可配量 int i_DIS_ENABLE = 0;//可配量 string s_SRC_LOCATE_NO = string.Empty;//VDS_CRM_ORDER_DETL.SRC_LOCATE_NO欄位 i_REQUEST_QTY = int.Parse(s_Client_String[1]); // 2009-07-30 cyshu 修改,逾期客訂可取退貨儲區庫存 #region [@群分類]=1(雜誌) 時 //if (s_ROOT_NO == "1" && s_Client_String[2] == "false") if (s_ROOT_NO == "1") { #region 先檢查庫存儲區可用庫存 dvStock.RowFilter = "LOCATETYPE = '2'"; dvStock.Sort = "ONHD_QTY DESC"; #region Old Source //if (dvStock.Count > 0) //{ // i_ONHD_QTY = 0; // i_RESERVE_QTY = 0; // for (int i = 0; i < dvStock.Count; i++) // { // i_ONHD_QTY += int.Parse(dvStock[i]["ONHD_QTY"].ToString()); // i_RESERVE_QTY += int.Parse(dvStock[i]["RESERVE_QTY"].ToString()); // } //} #endregion #region new code i_ONHD_QTY = 0; i_RESERVE_QTY = 0; bool b_Locate_Stock = false; //庫存儲區 for (int i = 0; i < dvStock.Count; i++) { i_ONHD_QTY = int.Parse(dvStock[i]["ONHD_QTY"].ToString()); i_RESERVE_QTY = int.Parse(dvStock[i]["RESERVE_QTY"].ToString()); i_Final_QTY = i_ONHD_QTY - i_RESERVE_QTY;//庫存儲區可配量 if (i_Final_QTY >= i_REQUEST_QTY) { s_SRC_LOCATE_TYPE = "2"; s_SRC_LOCATE_NO = dvStock[i]["LOCATE_NO"].ToString();//現有庫存儲區 try { i_DIS_ENABLE = int.Parse(dvStock[0]["ONHD_QTY"].ToString()) - int.Parse(dvStock[0]["RESERVE_QTY"].ToString()); } catch { i_DIS_ENABLE = 0; } b_Locate_Stock = true; break; } } if (!b_Locate_Stock) //庫存儲區庫存不足 { if (s_PMA == "13" || s_PMA == "14" || s_PMA == "15" || s_PMA == "16") { #region 外雜 sb.Append("新增或編輯模式下異動欄位[訂貨量]<partition>"); sb.Append("FALSE<partition>"); sb.Append("外雜D儲區庫存量不足,無法新增訂單<partition>"); sb.Append(txt_down_REQUEST_QTY.ClientID + "<partition>");//設定焦點的欄位 sb.Append(this.txt_down_RECOMMAND_LOCATION.ClientID); return sb.ToString(); #endregion } else { #region 檢查退貨儲區可用庫存 i_ONHD_QTY = 0; i_RESERVE_QTY = 0; i_Final_QTY = 0; i_DIS_ENABLE = 0; s_SRC_LOCATE_NO = string.Empty; dvStock.RowFilter = "LOCATETYPE = '1'"; for (int i = 0; i < dvStock.Count; i++) { i_ONHD_QTY += int.Parse(dvStock[i]["ONHD_QTY"].ToString()); i_RESERVE_QTY += int.Parse(dvStock[i]["RESERVE_QTY"].ToString()); } i_Final_QTY = i_ONHD_QTY - i_RESERVE_QTY; if (i_Final_QTY >= i_REQUEST_QTY) { s_SRC_LOCATE_TYPE = "1";//退貨儲區 s_SRC_LOCATE_NO = dvStock[0]["LOCATE_NO"].ToString();//現有庫存量最大的儲區 i_DIS_ENABLE = int.Parse(dvStock[0]["ONHD_QTY"].ToString()) - int.Parse(dvStock[0]["RESERVE_QTY"].ToString()); } else { sb.Append("新增或編輯模式下異動欄位[訂貨量]<partition>"); sb.Append("FALSE<partition>"); sb.Append("庫存量不足,請取消新增<partition>"); sb.Append(txt_down_REQUEST_QTY.ClientID + "<partition>");//設定焦點的欄位 sb.Append(this.txt_down_RECOMMAND_LOCATION.ClientID); return sb.ToString(); } #endregion } } #endregion new code #region old code2 //i_Final_QTY = i_ONHD_QTY - i_RESERVE_QTY;//庫存儲區可配量 //// 庫存儲區可配量 >= 訂量時,設定建議儲區 = 庫存儲區 //if (i_Final_QTY >= i_REQUEST_QTY) //{ // s_SRC_LOCATE_TYPE = "2";//庫存儲區 // s_SRC_LOCATE_NO = dvStock[0]["LOCATE_NO"].ToString();//現有庫存量最大的儲區 // try // { // i_DIS_ENABLE = int.Parse(dvStock[0]["ONHD_QTY"].ToString()) - int.Parse(dvStock[0]["RESERVE_QTY"].ToString()); // } // catch { i_DIS_ENABLE = 0; } //} //else //{ // if (s_PMA == "13" || // s_PMA == "14" || // s_PMA == "15" || // s_PMA == "16") // { // sb.Append("新增或編輯模式下異動欄位[訂貨量]<partition>"); // sb.Append("FALSE<partition>"); // sb.Append("外雜D儲區庫存量不足,無法新增訂單<partition>"); // sb.Append(txt_down_REQUEST_QTY.ClientID + "<partition>");//設定焦點的欄位 // sb.Append(this.txt_down_RECOMMAND_LOCATION.ClientID); // return sb.ToString(); // } // else // { // #region 檢查退貨儲區可用庫存 // i_ONHD_QTY = 0; // i_RESERVE_QTY = 0; // i_Final_QTY = 0; // i_DIS_ENABLE = 0; // s_SRC_LOCATE_NO = string.Empty; // dvStock.RowFilter = "LOCATETYPE = '1'"; // for (int i = 0; i < dvStock.Count; i++) // { // i_ONHD_QTY += int.Parse(dvStock[i]["ONHD_QTY"].ToString()); // i_RESERVE_QTY += int.Parse(dvStock[i]["RESERVE_QTY"].ToString()); // } // i_Final_QTY = i_ONHD_QTY - i_RESERVE_QTY; // if (i_Final_QTY >= i_REQUEST_QTY) // { // s_SRC_LOCATE_TYPE = "1";//退貨儲區 // s_SRC_LOCATE_NO = dvStock[0]["LOCATE_NO"].ToString();//現有庫存量最大的儲區 // i_DIS_ENABLE = int.Parse(dvStock[0]["ONHD_QTY"].ToString()) - int.Parse(dvStock[0]["RESERVE_QTY"].ToString()); // } // else // { // sb.Append("新增或編輯模式下異動欄位[訂貨量]<partition>"); // sb.Append("FALSE<partition>"); // sb.Append("庫存量不足,請取消新增<partition>"); // sb.Append(txt_down_REQUEST_QTY.ClientID + "<partition>");//設定焦點的欄位 // sb.Append(this.txt_down_RECOMMAND_LOCATION.ClientID); // return sb.ToString(); // } // #endregion // } //} #endregion old code2 #endregion } #endregion #region [@群分類]=2(圖書) else { dvStock.RowFilter = "LOCATETYPE = '2'"; dvStock.Sort = "ONHD_QTY DESC"; if (dvStock.Count > 0) { // 先作預設值 s_SRC_LOCATE_TYPE = "2"; // 庫存儲區 s_SRC_LOCATE_NO = dvStock[0]["LOCATE_NO"].ToString();//現有庫存量最大的儲區 for (int i = 0; i < dvStock.Count; i++) { i_ONHD_QTY += int.Parse(dvStock[i]["ONHD_QTY"].ToString()); i_RESERVE_QTY += int.Parse(dvStock[i]["RESERVE_QTY"].ToString()); } i_Final_QTY = i_ONHD_QTY - i_RESERVE_QTY; if (i_Final_QTY >= i_REQUEST_QTY) { s_SRC_LOCATE_TYPE = "2";//庫存儲區 s_SRC_LOCATE_NO = dvStock[0]["LOCATE_NO"].ToString();//現有庫存量最大的儲區 i_DIS_ENABLE = int.Parse(dvStock[0]["ONHD_QTY"].ToString()) - int.Parse(dvStock[0]["RESERVE_QTY"].ToString()); } else //圖書庫存不足仍可新增 { s_SRC_LOCATE_TYPE = "2";//庫存儲區 s_SRC_LOCATE_NO = "D"; i_DIS_ENABLE = 0; sb.Append("新增或編輯模式下異動欄位[訂貨量]<partition>"); sb.Append("TRUE_ALERT<partition>"); sb.Append("圖書庫存不足,確認要新增?<partition>"); sb.Append(s_SRC_LOCATE_NO + "<partition_Detail>" + this.txt_down_RECOMMAND_LOCATION.ClientID + "<partition>"); sb.Append(i_DIS_ENABLE.ToString() + "<partition_Detail>" + this.hid_DIS_ENABLE.ClientID); return sb.ToString(); } } else //圖書庫存不足仍可新增 { #region 圖書庫存不足仍可新增 s_SRC_LOCATE_TYPE = "2";//庫存儲區 s_SRC_LOCATE_NO = "D"; i_DIS_ENABLE = 0; sb.Append("新增或編輯模式下異動欄位[訂貨量]<partition>"); sb.Append("TRUE_ALERT<partition>"); sb.Append("圖書庫存不足,確認要新增?<partition>"); sb.Append(s_SRC_LOCATE_NO + "<partition_Detail>" + this.txt_down_RECOMMAND_LOCATION.ClientID + "<partition>"); sb.Append(i_DIS_ENABLE.ToString() + "<partition_Detail>" + this.hid_DIS_ENABLE.ClientID); return sb.ToString(); #endregion } } #endregion if (sb.ToString() == string.Empty) { if (i_REQUEST_QTY > 100) { sb.Append("新增或編輯模式下異動欄位[訂貨量]<partition>"); sb.Append("TRUE_ALERT<partition>"); sb.Append("訂貨量大於100<partition>"); sb.Append(s_SRC_LOCATE_NO + "<partition_Detail>" + this.txt_down_RECOMMAND_LOCATION.ClientID + "<partition>"); sb.Append(i_DIS_ENABLE.ToString() + "<partition_Detail>" + this.hid_DIS_ENABLE.ClientID); return sb.ToString(); } else { sb.Append("新增或編輯模式下異動欄位[訂貨量]<partition>"); sb.Append("TRUE_NO_ALERT<partition>"); sb.Append(s_SRC_LOCATE_NO + "<partition_Detail>" + this.txt_down_RECOMMAND_LOCATION.ClientID + "<partition>"); sb.Append(i_DIS_ENABLE.ToString() + "<partition_Detail>" + this.hid_DIS_ENABLE.ClientID); return sb.ToString(); } } } #endregion #region 新增或編輯模式按下明細區[取消]鈕 else if (s_Client_String[0] == "新增或編輯模式按下明細區[取消]鈕") { #region 清空靜態變數 dtStock = null;//異動欄位[期別] s_PMA = string.Empty;//大分類(異動欄位[品號/品名]) s_ROOT_NO = string.Empty;//群分類(異動欄位[品號/品名]) s_SRC_LOCATE_TYPE = string.Empty;//建議儲區類別(異動欄位[訂貨量]) sb.Remove(0, sb.Length); #endregion #region 計算 dt_Detail 的筆數 int i_dt_Detail_Count = 0; if (dt_Detail != null) { if (dt_Detail.GetChanges(DataRowState.Deleted) == null) { i_dt_Detail_Count = dt_Detail.Rows.Count; } else { i_dt_Detail_Count = dt_Detail.Rows.Count - dt_Detail.GetChanges(DataRowState.Deleted).Rows.Count; } } #endregion sb.Append("新增或編輯模式按下明細區[取消]鈕<partition>"); sb.Append(i_dt_Detail_Count.ToString() + "<partition>");//dt_Detail的筆數 sb.Append(this.hid_PageStatus.ClientID + "<partition>");//hid_PageStatus sb.Append(this.panel_Down_AddDetail.ClientID + "<partition>");//panel_Down_AddDetail sb.Append(this.panel_Down_Button.ClientID + "<partition>");//panel_Down_Button sb.Append(chk_down_IS_OVERDUE.ClientID + "<partition>");//逾期客訂 sb.Append(this.txt_down_PO_SOURCE_NO.ClientID + "<partition>");//PO單號 sb.Append(this.txt_down_BARCODE.ClientID + "<partition>");//一段碼 sb.Append(this.txt_down_PERIOD_BARCODE.ClientID + "<partition>");//二段碼 sb.Append(txt_down_ITEM.ClientID + "<partition>");//品號 sb.Append(txt_down_ITEM_NAME.ClientID + "<partition>");//品名 sb.Append(this.txt_down_PERIOD.ClientID + "<partition>");//期別 sb.Append(txt_down_REQUEST_QTY.ClientID + "<partition>");//訂貨量 //sb.Append(txt_down_REQUEST_QTY_NAME.ClientID + "<partition>");//訂貨量名稱 sb.Append(txt_down_RTN_DDL.ClientID + "<partition>");//退書截止日 sb.Append(this.txt_down_RECOMMAND_LOCATION.ClientID + "<partition>");//建議儲區 sb.Append(txt_up_CHAN_NO.ClientID + "<partition>");//通路 sb.Append(txt_up_STORE.ClientID + "<partition>");//門市 sb.Append(txt_up_Z_O.ClientID + "<partition>");//營業所 sb.Append(txt_up_BUSDATE.ClientID + "<partition>");//訂單日期 sb.Append(txt_up_SALE_ID.ClientID + "<partition>");//營業人員 sb.Append(txt_up_BUSUID.ClientID + "<partition>");//訂單維護者 sb.Append(((DropDownList)((ASP.sys_slp_slp_enumbase_ascx)drop_up_ORDER_TYPE).FindControl("D1")).ClientID + "<partition>");//訂單來源 sb.Append(this.txt_up_PO_SOURCE_NO.ClientID + "<partition>");//PO單號預設 sb.Append(this.txt_up_CODE.ClientID + "<partition>");//訂單編號 sb.Append(this.txt_up_CRM_NO.ClientID + "<partition>");//流水編號 sb.Append(img_up_CHAN_NO.ClientID + "<partition>");//通路img sb.Append(img_up_STORE.ClientID + "<partition>");//門市img sb.Append(img_up_BUSDATE.ClientID + "<partition>");//訂單日期img sb.Append(img_up_SALE_ID.ClientID + "<partition>");//營業人員img sb.Append(img_up_BUSUID.ClientID);//訂單維護者img } #endregion #region 新增或編輯模式按下GridView[編輯]鈕 else if (s_Client_String[0] == "新增或編輯模式按下GridView[編輯]鈕") { DataRow dRow = dt_Detail.Select("ID = " + s_Client_String[1])[0]; string s_IS_OVERDUE; //改為已擷轉仍可修改 //if (dRow["TRANS_RESULT"].ToString() == "1")//已擷轉 //{ sb.Append("此筆訂單品項已擷轉,不可編輯或刪除\r\n"); } if (dRow["STATUS"].ToString() == "75")//已結案 { sb.Append("此筆訂單品項已結案,不可編輯或刪除\r\n"); } #region 編輯前檢查錯誤 if (sb.ToString() != string.Empty) { sb.Insert(0, "新增或編輯模式按下GridView[編輯]鈕_編輯前檢查FALSE<partition>"); return sb.ToString(); } #endregion #region 取得庫存 i_Curr_Order_Qty = 0; s_ROOT_NO = dRow["ROOT_NO"].ToString(); //群分類 s_ITEM = dRow["ITEM"].ToString(); //品號 s_PERIOD = dRow["PERIOD"].ToString(); //期別 i_Curr_Order_Qty = (dRow["REQUEST_QTY"].ToString().Trim() == string.Empty) ? 0 : int.Parse(dRow["REQUEST_QTY"].ToString().Trim()); s_SRC_LOCATE_NO = dRow["SRC_LOCATE_NO"].ToString();//原儲區 //取得目前庫存 dtStock = null; GetStock(s_ROOT_NO, s_ITEM, s_PERIOD); //編輯模式下,可用庫存應加上原訂單需求量 AddStockForEditMode(s_SRC_LOCATE_NO, i_Curr_Order_Qty); #endregion #region 編輯前檢查正確 s_IS_OVERDUE = (dRow["IS_OVERDUE"].ToString() == "0") ? "false" : "true"; sb.Append("新增或編輯模式按下GridView[編輯]鈕_編輯前檢查TRUE<partition>"); sb.Append(txt_up_CHAN_NO.ClientID + "<partition>");//通路 sb.Append(txt_up_STORE.ClientID + "<partition>");//門市 sb.Append(txt_down_ITEM.ClientID + "<partition>");//品號 sb.Append(this.txt_down_PERIOD.ClientID + "<partition>");//期別 sb.Append(this.txt_down_BARCODE.ClientID + "<partition>");//一段碼 sb.Append(this.txt_down_PERIOD_BARCODE.ClientID + "<partition>");//二段碼 sb.Append(txt_down_RTN_DDL.ClientID + "<partition>");//退書截止日 sb.Append(this.panel_Down_AddDetail.ClientID + "<partition>");//panel_Down_AddDetail sb.Append(this.panel_Down_Button.ClientID + "<partition>");//panel_Down_Button sb.Append(s_IS_OVERDUE + "<partition_Detail>" + chk_down_IS_OVERDUE.ClientID + "<partition>");//逾期客訂 sb.Append(dRow["PO_SOURCE_NO"].ToString() + "<partition_Detail>" + this.txt_down_PO_SOURCE_NO.ClientID + "<partition>");//PO單號 sb.Append(dRow["BARCODE"].ToString() + "<partition_Detail>" + this.txt_down_BARCODE.ClientID + "<partition>");//一段碼 sb.Append(dRow["PERIOD_BARCODE"].ToString() + "<partition_Detail>" + this.txt_down_PERIOD_BARCODE.ClientID + "<partition>");//二段碼 sb.Append(dRow["ITEM"].ToString() + "<partition_Detail>" + txt_down_ITEM.ClientID + "<partition>");//品號 sb.Append(dRow["ITEM_NAME"].ToString() + "<partition_Detail>" + txt_down_ITEM_NAME.ClientID + "<partition>");//品名 sb.Append(dRow["PERIOD"].ToString() + "<partition_Detail>" + this.txt_down_PERIOD.ClientID + "<partition>");//期別 sb.Append(dRow["REQUEST_QTY"].ToString() + "<partition_Detail>" + txt_down_REQUEST_QTY.ClientID + "<partition>");//訂貨量 //sb.Append(dRow["REQUEST_QTY"].ToString() + ".0000<partition_Detail>" + txt_down_REQUEST_QTY_NAME.ClientID + "<partition>");//訂貨量名稱 sb.Append(DateTime.Parse(dRow["RTN_DDL"].ToString()).ToString("yyyy/MM/dd") + "<partition_Detail>" + txt_down_RTN_DDL.ClientID + "<partition>");//退書截止日 sb.Append(dRow["SRC_LOCATE_NO"].ToString() + "<partition_Detail>" + this.txt_down_RECOMMAND_LOCATION.ClientID + "<partition>");//建議儲區 sb.Append(dRow["ID"].ToString() + "<partition_Detail>" + this.hid_ID.ClientID);//hid_ID #endregion } #endregion #region 新增或編輯模式按下明細區[新增明細]鈕 else if (s_Client_String[0] == "新增或編輯模式按下明細區[新增明細]鈕") { #region 清空靜態變數 dtStock = null;//異動欄位[期別] s_PMA = string.Empty;//大分類(異動欄位[品號/品名]) s_ROOT_NO = string.Empty;//群分類(異動欄位[品號/品名]) s_SRC_LOCATE_TYPE = string.Empty;//建議儲區類別(異動欄位[訂貨量]) #endregion } #endregion #region 新增模式異動欄位[流水編號] else if (s_Client_String[0] == "新增模式異動欄位[流水編號]") { #region 檢查是否為有效流水編號 DataTable dt_Return = new DataTable(); ParameterList.Clear(); ParameterList.Add(s_Client_String[1]);//流水編號 ParameterList.Add(Session["UID"].ToString()); ParameterList.Add(DateTime.Now); BCO.RecordCRMRecord bco = new BCO.RecordCRMRecord(ConntionDB); dt_Return = bco.QueryCRMRecordByCode_CheckExist(ParameterList); if (dt_Return.Rows.Count == 0) { sb.Append("新增模式異動欄位[流水編號]<partition>"); sb.Append("FALSE<partition>"); sb.Append(this.txt_up_CRM_NO.ClientID + "<partition>"); sb.Append("[流水編號]不為存在的有效編號"); } #endregion } #endregion CallBackValue = sb.ToString(); } catch (Exception ex) { CallBackValue = "發生例外錯誤<partition>" + ex.Message; } } return CallBackValue; }
/// <summary> /// 將變更後的內部變量this.CallBackValue返回給前台JavaScript方法ReceiveServerData(string Value)。 /// </summary> /// <returns></returns> string ICallbackEventHandler.GetCallbackResult() { if (CallBackValue != string.Empty) { try { TextBox txt_CHAN_NO = (TextBox)((ASP.stm_slp_slp_storechain_ascx)slp_CHAN_NO).FindControl("TextBoxCode");//通路 TextBox txt_STORE = (TextBox)((ASP.stm_slp_slp_store_ascx)slp_STORE).FindControl("TextBoxCode");//門市 TextBox txt_ITEM = (TextBox)((ASP.itm_slp_slp_sku_ascx)slp_ITEM).FindControl("TextBoxCode");//品號 TextBox txt_PERIOD = (TextBox)((ASP.itm_slp_slp_itemperiod_ascx)slp_PERIOD).FindControl("TextBoxCode");//期別 System.Text.StringBuilder sb = new System.Text.StringBuilder(); CallBackValue = CallBackValue.Trim(); string[] s_Client_String = System.Text.RegularExpressions.Regex.Split(CallBackValue, "<partition>", System.Text.RegularExpressions.RegexOptions.IgnoreCase); ArrayList ParameterList = new ArrayList();//20091117 #region 離開欄位[@門市] if (s_Client_String[0] == "離開欄位[@門市]") { #region 從資料庫查詢資料 ParameterList.Clear(); ParameterList.Add(s_Client_String[1]);//門市 ParameterList.Add(string.Empty);//通路 ParameterList.Add(Session["UID"].ToString()); DataTable dt_Return = new DataTable(); BCO.MaintainStore bco = new BCO.MaintainStore(ConntionDB); dt_Return = bco.QUERY_STORE_BY_STOREANDCHAN(ParameterList); #endregion if (dt_Return.Rows.Count == 0) { sb.Append("離開欄位[@門市]<partition>"); sb.Append("FALSE<partition>"); sb.Append("查無資料<partition>"); sb.Append(txt_STORE.ClientID + "<partition>");//設定焦點的欄位 sb.Append(txt_CHAN_NO.ClientID); } else { sb.Append("離開欄位[@門市]<partition>"); sb.Append("TRUE<partition>"); sb.Append(dt_Return.Rows[0]["CHAN_NO"].ToString() + "<partition_Detail>" + txt_CHAN_NO.ClientID); } } #endregion #region 異動欄位[@二段碼]設定值後 else if (s_Client_String[0] == "異動欄位[@二段碼]設定值後") { #region 從資料庫查詢資料 ParameterList.Clear(); ParameterList.Add(s_Client_String[1]);//通路 ParameterList.Add(s_Client_String[2]);//一段碼 ParameterList.Add(s_Client_String[3]);//二段碼 ParameterList.Add(Session["UID"].ToString()); DataTable dt_Return = new DataTable(); BCO.QueryCRMCommon bco = new BCO.QueryCRMCommon(ConntionDB); dt_Return = bco.QueryItemPeriodInfoByBarcode(ParameterList); #endregion if (dt_Return.Rows.Count == 0) { sb.Append("異動欄位[@二段碼]設定值後<partition>"); sb.Append("FALSE<partition>"); sb.Append("此一段碼/二段碼不存在對應商品期別資訊,請重新輸入<partition>"); sb.Append(this.txt_BARCODE.ClientID + "<partition>");//設定焦點的欄位 sb.Append(this.txt_PERIOD_BARCODE.ClientID + "<partition>"); sb.Append(txt_ITEM.ClientID + "<partition>"); sb.Append(txt_PERIOD.ClientID); } else { sb.Append("異動欄位[@二段碼]設定值後<partition>"); sb.Append("TRUE<partition>"); sb.Append(dt_Return.Rows[0]["ITEM"].ToString() + "<partition_Detail>" + txt_ITEM.ClientID + "<partition>"); sb.Append(dt_Return.Rows[0]["PERIOD"].ToString() + "<partition_Detail>" + txt_PERIOD.ClientID); } } #endregion #region 異動欄位[@品號/品名]設定值後 else if (s_Client_String[0] == "異動欄位[@品號/品名]設定值後") { #region 從資料庫查詢資料 ParameterList.Clear(); ParameterList.Add(s_Client_String[1]);//品號 ParameterList.Add(Session["UID"].ToString()); DataTable dt_Return_1 = new DataTable(); BCO.QueryCRMCommon bco = new BCO.QueryCRMCommon(ConntionDB); dt_Return_1 = bco.GetMaxDeiveryPeriod(ParameterList); #endregion if (dt_Return_1.Rows[0]["PERIOD"].ToString() == string.Empty) { sb.Append("異動欄位[@品號/品名]設定值後<partition>"); sb.Append("FALSE<partition>"); sb.Append("查無資料<partition>"); sb.Append(txt_ITEM.ClientID);//設定焦點的欄位 } else { sb.Append("異動欄位[@品號/品名]設定值後<partition>"); sb.Append("TRUE<partition>"); sb.Append(dt_Return_1.Rows[0]["PERIOD"].ToString() + "<partition_Detail>" + txt_PERIOD.ClientID); } } #endregion CallBackValue = sb.ToString(); } catch (Exception ex) { CallBackValue = "發生例外錯誤<partition>" + ex.Message; } } return CallBackValue; }
/// <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="strChanNo"></param> /// <param name="strBarcode"></param> /// <param name="strPeriodBarcode"></param> /// <param name="strUserID"></param> /// <returns></returns> private DataTable GetItemPeriodByBarCode(string strChanNo, string strBarcode, string strPeriodBarcode, string strUserID) { #region try { ArrayList ParameterList = new ArrayList(); ParameterList.Clear(); ParameterList.Add(strChanNo);//通路 ParameterList.Add(strBarcode);//一段碼 ParameterList.Add(strPeriodBarcode);//二段碼 ParameterList.Add(strUserID); CRMModel.QueryCRMCommon BCO = new CRMModel.QueryCRMCommon(ConnectionDB); return BCO.QueryItemPeriodInfoByBarcode(ParameterList); } catch (Exception ex) { throw ex; } #endregion }