/// <summary> /// DOWN BUTTON 更新鈕 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void but_down_Update_Click(object sender, EventArgs e) { try { System.Text.StringBuilder sb = new System.Text.StringBuilder(); 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");//逾期客訂 //string SessionIDName = "CRM041_dt_Detail" + PageTimeStamp.Value; //if (Session[SessionIDName] != null) dt_Detail = (DataTable)Session[SessionIDName]; if (this.hid_PageStatus.Value == "INSERT" || this.hid_PageStatus.Value == "EDIT") { s_PMA = string.Empty; s_ROOT_NO = string.Empty; string s_Is_PO = string.Empty; sb.Remove(0, sb.Length); DataTable dt_Return = new DataTable(); ArrayList ParameterList = new ArrayList();//20091117 #region 依照品號取得所屬[群分類]、[大分類] ParameterList.Clear(); BCO_ITM.SQLHelper.SQLWhere(ref ParameterList, DbType.String, "MA.ITEM", this.slp_down_ITEM.Text, "=", "and"); BCO_ITM.MaintainSKU bco_itm = new BCO_ITM.MaintainSKU(ConntionDB); dt_Return = bco_itm.QuerySKUByFind_1(ParameterList); if (dt_Return != null && dt_Return.Rows.Count != 0) { s_PMA = dt_Return.Rows[0]["PMA"].ToString();//大分類 s_ROOT_NO = dt_Return.Rows[0]["ROOT_NO"].ToString();//群分類 } #endregion #region 判斷PO單號 //確定PO單號存在 GetChainPOSetting(this.slp_up_CHAN_NO.Text, this.slp_up_STORE.Text); DataView dvChainPOSetting = new DataView(dtChainPOSetting.Copy()); dvChainPOSetting.RowFilter = "PMA = '" + s_PMA + "' and ROOT_NO = '" + s_ROOT_NO + "'"; if (dvChainPOSetting.Count > 0) { if (dvChainPOSetting[0]["IS_DIS_BYPO"].ToString() == "1")//代表是依PO分單 { s_Is_PO = "TRUE"; } else if (dvChainPOSetting[0]["IS_DIS_BYPO"].ToString() == "0")//代表不是依PO分單 { s_Is_PO = "FALSE"; } // 2009-08-12 cyhsu add if (this.slp_up_CHAN_NO.Text == "CB" && s_ROOT_NO == "1") { //當通路=誠品, 群分類=雜誌時,不管通路設定檔設定為何,都先規定要輸入PO單號 s_Is_PO = "TRUE"; } } //s_Is_PO = TRUE 代表是依PO分單>>[PO單號]欄位一定要填 //s_Is_PO = FALSE 代表不是依PO分單>>[PO單號]欄位一定不能填 //s_Is_PO = NULL 代表是依PO分單>>[PO單號]欄位可填可不填 if (s_Is_PO == "TRUE") { if (this.txt_down_PO_SOURCE_NO.Text.ToString().Length == 0) //if (this.txt_down_PO_SOURCE_NO.Text.Trim() == string.Empty) { sb.Append("PO單號不可空白"); } } else if (s_Is_PO == "FALSE") { if (this.txt_down_PO_SOURCE_NO.Text.Trim() != string.Empty) { sb.Append("PO單號不可有值"); } } if (GetStringLen(txt_down_PO_SOURCE_NO.Text.Trim()) > 20) { sb.Append("PO單號欄位輸入資料過長"); } if (sb.ToString() != string.Empty) { ScriptManager.RegisterStartupScript(this.up_Down_Button, this.GetType(), "CRM041", "alert('" + sb.ToString() + "');document.all['" + this.txt_down_PO_SOURCE_NO.ClientID + "'].focus();", true); return; } #endregion #region 判斷一段碼、二段碼是否屬於該品號、期別 ParameterList.Clear(); ParameterList.Add(this.slp_down_ITEM.Text); // ITEM ParameterList.Add(this.txt_down_PERIOD.Text); // PERIOD ParameterList.Add(this.txt_down_BARCODE.Text); // 一段碼 ParameterList.Add(this.txt_down_PERIOD_BARCODE.Text); // 二段碼 ParameterList.Add(Session["UID"].ToString()); BCO.QueryCRMCommon co_common = new BCO.QueryCRMCommon(ConntionDB); bool b_CheckRes; b_CheckRes = co_common.CheckItemPeriodBarcode(ParameterList); if (!b_CheckRes) { sb.Remove(0, sb.Length); sb.AppendFormat("一段碼[{2}]、二段碼[{3}]不屬於品號[{0}]、期別[{1}]!", this.slp_down_ITEM.Text, this.txt_down_PERIOD.Text, this.txt_down_BARCODE.Text, this.txt_down_PERIOD_BARCODE.Text); } if (sb.ToString() != string.Empty) { ScriptManager.RegisterStartupScript(this.up_Down_Button, this.GetType(), "CRM041", "alert('" + sb.ToString() + "');document.all['" + this.txt_down_PO_SOURCE_NO.ClientID + "'].focus();", true); return; } #endregion #region 檢查是否可新增 bool bCheck = CheckOrderDetail(this.slp_down_ITEM.Text, this.txt_down_PERIOD.Text); if (!bCheck && hid_ID.Value == string.Empty) { sb.Remove(0, sb.Length); sb.AppendFormat("品號[{0}]、期別[{1}]已存在,不可重複新增!", this.slp_down_ITEM.Text, this.txt_down_PERIOD.Text); } if (sb.ToString() != string.Empty) { ScriptManager.RegisterStartupScript(this.up_Down_Button, this.GetType(), "CRM041", "alert('" + sb.ToString() + "');document.all['" + txt_down_ITEM.ClientID + "'].focus();", true); return; } string sCheck = CheckCanUpdate(s_CHAN_NO, s_STORE, this.slp_down_ITEM.Text, this.txt_down_PERIOD.Text, txt_down_RTN_DDL.Text, this.txt_up_CODE.Text); if (sCheck != string.Empty) { ScriptManager.RegisterStartupScript(this.up_Down_Button, this.GetType(), "CRM041", "alert('" + sCheck + "');document.all['" + txt_down_ITEM.ClientID + "'].focus();", true); return; } #endregion // 為了解決頁面儲區空白的問題先暫時設定睡眠對應。 for (int i = 0; i < 10; i++) { if (this.txt_down_RECOMMAND_LOCATION.Text != String.Empty) { break; } System.Threading.Thread.Sleep(500); } #region 更新明細暫存資訊 #region 新增狀態,若是第一筆資料,建立 TEMP TABLE if (this.hid_PageStatus.Value == "INSERT" && hid_ID.Value == string.Empty) { if (dt_Detail == null) { DataTable dtTmp = new DataTable(); ParameterList.Clear(); ParameterList.Add(Session["UID"].ToString()); BCO.RecordCRMOrder bco = new BCO.RecordCRMOrder(ConntionDB); dtTmp = bco.QUERY_CRM041_DETL_SCHEMA(ParameterList); DataColumn dcol1 = new DataColumn("BARCODE", System.Type.GetType("System.String"));//一段碼 DataColumn dcol2 = new DataColumn("PERIOD_BARCODE", System.Type.GetType("System.String"));//二段碼 DataColumn dcol3 = new DataColumn("ITEM_NAME", System.Type.GetType("System.String"));//品名 DataColumn dcol4 = new DataColumn("COLUMN_STATUS", System.Type.GetType("System.String"));//欄位狀態 dtTmp.Columns.Add(dcol1); dtTmp.Columns.Add(dcol2); dtTmp.Columns.Add(dcol3); dtTmp.Columns.Add(dcol4); dt_Detail = dtTmp.Copy(); dtTmp.Dispose(); } } #endregion if ((this.hid_PageStatus.Value == "INSERT" || this.hid_PageStatus.Value == "EDIT") && this.hid_ID.Value == string.Empty) { DataRow dRow = dt_Detail.NewRow(); if (dt_Detail.Rows.Count == 0) { dRow["ID"] = 0; } else { DataView dv_Detail = new DataView(dt_Detail.Copy()); dv_Detail.Sort = "ID ASC"; dRow["ID"] = int.Parse(dv_Detail[0]["ID"].ToString()) + 1; } dRow["ROOT_NO"] = s_ROOT_NO;//群分類 dRow["PMA"] = s_PMA;//大分類 dRow["PO_SOURCE_NO"] = this.txt_down_PO_SOURCE_NO.Text.Trim();//PO單號 dRow["BARCODE"] = this.txt_down_BARCODE.Text.Trim();//一段碼 dRow["PERIOD_BARCODE"] = this.txt_down_PERIOD_BARCODE.Text.Trim();//二段碼 dRow["ITEM"] = this.slp_down_ITEM.Text.Trim();//品號 dRow["ITEM_NAME"] = this.slp_down_ITEM.Name.Trim();//品名 //dRow["ITEM_NAME"] = ((TextBox)this.slp_down_ITEM.Controls[1].FindControl("TextBoxName")).Text.Trim();//品名 dRow["PERIOD"] = this.txt_down_PERIOD.Text.Trim();//期別 dRow["REQUEST_QTY"] = int.Parse(this.slp_down_REQUEST_QTY.Text.Trim());//訂貨量 dRow["RTN_DDL"] = DateTime.ParseExact(this.slp_down_RTN_DDL.Text.Trim(), "yyyy/MM/dd", null);//退書截止日 b_IS_OVERDUE = CheckIsOverDue(this.slp_down_RTN_DDL.Text.Trim()); if (b_IS_OVERDUE == true) { dRow["IS_OVERDUE"] = 1; }//逾期客訂有被勾選 else { dRow["IS_OVERDUE"] = 0; }//逾期客訂沒有被勾選 // todo cyhsu: 找外雜 Locate_type 與 locate_no 沒有設定的原因 if ((s_SRC_LOCATE_TYPE == String.Empty) && (s_ROOT_NO == "1") && ((s_PMA == "13") || (s_PMA == "14") || (s_PMA == "15") || (s_PMA == "16"))) { s_SRC_LOCATE_TYPE = "2"; this.txt_down_RECOMMAND_LOCATION.Text = "D"; } dRow["SRC_LOCATE_TYPE"] = s_SRC_LOCATE_TYPE;//建議儲區 dRow["SRC_LOCATE_NO"] = this.txt_down_RECOMMAND_LOCATION.Text.Trim();//建議儲區 dRow["PROC_DESC"] = 0;//處理狀態(0代表未擷轉) dRow["STATUS"] = 25;//結案狀態(25代表未結案,75代表已結案) dRow["DIS_ENABLE"] = int.Parse(this.hid_DIS_ENABLE.Value);//可配量 dt_Detail.Rows.Add(dRow); } else if ((this.hid_PageStatus.Value == "INSERT" || this.hid_PageStatus.Value == "EDIT") && this.hid_ID.Value != string.Empty) { //2009-02-04 cyhsu change DataTable dtTmp = dt_Detail.Copy(); //string s_FilterExpression = string.Empty; //s_FilterExpression = "ID = " + this.hid_ID.Value; //DataRow dRow = dt_Detail.Select(s_FilterExpression)[0]; //dRow["REQUEST_QTY"] = int.Parse(this.slp_down_REQUEST_QTY.Text.Trim());//訂貨量 //dRow["SRC_LOCATE_NO"] = this.txt_down_RECOMMAND_LOCATION.Text.Trim();//建議儲區 int i_index = -1; for (int i = 0; i < dtTmp.Rows.Count; i++) { if (dtTmp.Rows[i]["ID"].ToString() == this.hid_ID.Value) { i_index = i; break; } } if (i_index > -1) { dt_Detail.Rows[i_index]["REQUEST_QTY"] = int.Parse(this.slp_down_REQUEST_QTY.Text.Trim());//訂貨量 dt_Detail.Rows[i_index]["SRC_LOCATE_NO"] = this.txt_down_RECOMMAND_LOCATION.Text.Trim();//建議儲區 dt_Detail.Rows[i_index]["PO_SOURCE_NO"] = this.txt_down_PO_SOURCE_NO.Text.Trim();//建議儲區; } } this.gv_Detail.DataSource = dt_Detail; this.gv_Detail.PageSize = 10; this.gv_Detail.PageIndex = 0; this.gv_Detail.DataBind(); Panel1.Height = gv_Detail.Rows.Count * 45 + 60; //Session[SessionIDName] = dt_Detail; #region 清空 hid_ID,hid_DIS_ENABLE //this.hid_ID.Value = string.Empty;是否不應清空?2009-06-04 cyhsu this.hid_DIS_ENABLE.Value = string.Empty; #endregion #region 清空靜態變數 dtStock = null;//異動欄位[期別] s_PMA = string.Empty;//大分類(異動欄位[品號/品名]) s_ROOT_NO = string.Empty;//群分類(異動欄位[品號/品名]) s_SRC_LOCATE_TYPE = string.Empty;//建議儲區類別(異動欄位[訂貨量]) #endregion #region 設定畫面狀態 sb.Remove(0, sb.Length); sb.Append("新增或編輯模式按下明細區[更新]鈕<partition>"); sb.Append(dt_Detail.Rows.Count.ToString() + "<partition>");//dt_Detail筆數 sb.Append(this.panel_Middle.ClientID + "<partition>");//panel_Middle 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);//建議儲區 ScriptManager.RegisterStartupScript(this.up_Down_Button, this.GetType(), "CRM041", "but_down_Update_Click('" + sb.ToString() + "');", true); #endregion #endregion } } catch (Exception ex) { WaringLogProcess(ex.Message); this.ErrorMsgLabel.Text = ex.Message; } finally { } }