protected void btnAdd_Click(object sender, EventArgs e) { #region 檢查輸入值 hid_Bill_Ini.Value = ""; ErrorMsgLabel.Text = ""; string strErr = ""; try { string SessionIDName = "IVM11_DTL_" + PageTimeStamp.Value; IVMModel.MaintainAdjustData BCO = new IVMModel.MaintainAdjustData(ConntionDB); if (SLP_SKU1.Text == string.Empty) { strErr = "請輸入品號 "; ScriptManager.RegisterStartupScript(this.UpdatePanel1, typeof(UpdatePanel), "IVM112", "alert('" + strErr + "');", true); TextBox txtItem = (TextBox)this.SLP_SKU1.FindControl("TextBoxCode"); ScriptManager.RegisterStartupScript(this.UpdatePanel1, typeof(UpdatePanel), "隨便寫", "document.getElementById('" + txtItem.ClientID + "').focus();", true); return; } if (SLP_ItemPeriod1.Text == string.Empty) { strErr = "請輸入期間 "; ScriptManager.RegisterStartupScript(this.UpdatePanel1, typeof(UpdatePanel), "IVM112", "alert('" + strErr + "');", true); TextBox txtPeriod = (TextBox)this.SLP_ItemPeriod1.FindControl("TextBoxCode"); ScriptManager.RegisterStartupScript(this.UpdatePanel1, typeof(UpdatePanel), "隨便寫", "document.getElementById('" + txtPeriod.ClientID + "').focus();", true); return; } TextBox txtLocate = (TextBox)this.SLP_LocateSec1.FindControl("TextBoxCode"); TextBox txtLocateSec = (TextBox)this.SLP_LocateSec1.FindControl("TextBoxCode2"); if (txtLocate.Text == "") { strErr = "請輸入儲區"; ScriptManager.RegisterStartupScript(this.UpdatePanel1, typeof(UpdatePanel), "IVM112", "alert('" + strErr + "');", true); ScriptManager.RegisterStartupScript(this.UpdatePanel1, typeof(UpdatePanel), "隨便寫", "document.getElementById('" + txtLocate.ClientID + "').focus();", true); return; } if (txtLocateSec.Text == "") { strErr = "請輸入儲位"; ScriptManager.RegisterStartupScript(this.UpdatePanel1, typeof(UpdatePanel), "IVM112", "alert('" + strErr + "');", true); ScriptManager.RegisterStartupScript(this.UpdatePanel1, typeof(UpdatePanel), "隨便寫", "document.getElementById('" + txtLocateSec.ClientID + "').focus();", true); return; } if (txtAdjQty.Text == string.Empty) { strErr = "請輸入調整數量 "; ScriptManager.RegisterStartupScript(this.UpdatePanel1, typeof(UpdatePanel), "IVM112", "alert('" + strErr + "');", true); ScriptManager.RegisterStartupScript(this.UpdatePanel1, typeof(UpdatePanel), "隨便寫", "document.getElementById('" + txtAdjQty.ClientID + "').focus();", true); return; } else { int i = 0; bool Result = int.TryParse(txtAdjQty.Text, out i); if (Result == false) { strErr = "請輸入正確數值 "; ScriptManager.RegisterStartupScript(this.UpdatePanel1, typeof(UpdatePanel), "IVM112", "alert('" + strErr + "');", true); ScriptManager.RegisterStartupScript(this.UpdatePanel1, typeof(UpdatePanel), "隨便寫", "document.getElementById('" + txtAdjQty.ClientID + "').focus();", true); return; } else { if (int.Parse(txtAdjQty.Text) == 0) { strErr ="請輸入有效調整數量 "; ScriptManager.RegisterStartupScript(this.UpdatePanel1, typeof(UpdatePanel), "IVM112", "alert('" + strErr + "');", true); ScriptManager.RegisterStartupScript(this.UpdatePanel1, typeof(UpdatePanel), "隨便寫", "document.getElementById('" + txtAdjQty.ClientID + "').focus();", true); return; } } } #endregion #region 如果沒有資料取得空DATASET DataTable Dt = (DataTable)Session[SessionIDName]; if (Dt == null) { //從DB讀取一空table回來 ParameterList.Clear(); Dt = BCO.QueryAdjustDataEmpty(); } //檢查是否有重複的品項、期別、儲位 for (int i = 0 ; i <= Dt.Rows.Count - 1; i++) { if ((Dt.Rows[i]["item"].ToString() == SLP_SKU1.Text) && (Dt.Rows[i]["locate_name"].ToString().Split(' ')[0] == SLP_LocateSec1.Text) && (Dt.Rows[i]["period"].ToString() == SLP_ItemPeriod1.Text)) { strErr = "此調整明細已存在! "; ScriptManager.RegisterStartupScript(this.UpdatePanel1, typeof(UpdatePanel), "IVM112", "alert('" + strErr + "');", true); return; } } #region 取得庫存成本 bool Getdata = false; string strItem = string.Empty; string strperiod = string.Empty; double dblCost = 0; string Item_Cost = ""; Getdata = BCO.GetBarCodeData(txtBarCode.Text, out strItem, out strperiod, out dblCost); if (txtBarCode.Text != string.Empty) { Item_Cost = dblCost.ToString(); } else { IVMModel.MaintainRemoveDataDetail dbo = new IVMModel.MaintainRemoveDataDetail(ConntionDB); bool haveData = dbo.GetItemPeriodCost(SLP_SKU1.Text, SLP_ItemPeriod1.Text, out dblCost); if (haveData == false) { ErrorMsgLabel.Text="產品編號" + SLP_SKU1.Text + "期別編號" + SLP_ItemPeriod1.Text + "查無成本資料"; } Item_Cost = dblCost.ToString(); } #endregion tempID = 0; DataView tempDT = new DataView(); tempDT.Table = Dt.Copy(); tempDT.Sort = "ID ASC"; if (Dt.Rows.Count != 0) { tempID = Convert.ToInt32(tempDT[Dt.Rows.Count - 1]["ID"].ToString()); } #region 取得開單庫存 ParameterList.Clear(); ParameterList.Add(SLP_LocateSec1.Text); ParameterList.Add(SLP_SKU1.Text); ParameterList.Add(SLP_ItemPeriod1.Text); DataTable dtQty = BCO.QueryNewOnhdQty(ParameterList); int NowOnhdQty = 0; if (dtQty.Rows.Count > 0) NowOnhdQty = int.Parse(dtQty.Rows[0]["onhd_qty"].ToString()); if (NowOnhdQty + int.Parse(txtAdjQty.Text) < 0) { strErr = "調整後數量<0 "; ScriptManager.RegisterStartupScript(this.UpdatePanel1, typeof(UpdatePanel), "IVM112", "alert('" + strErr + "');", true); ScriptManager.RegisterStartupScript(this.UpdatePanel1, typeof(UpdatePanel), "隨便寫", "document.getElementById('" + txtAdjQty.ClientID + "').focus();", true); return; } #endregion DataRow dRow = Dt.NewRow(); //ID和CODE暫自訂, 真正寫入CO時會重取 int v_ID = tempID + 1; int v_CODE = tempID + 1; dRow["ID"] = v_ID; dRow["BarCode"] = this.txtBarCode.Text; dRow["item"] = SLP_SKU1.Text; dRow["locate_no"] = SLP_LocateSec1.Text.Substring(0, 1); dRow["locate_section"] = SLP_LocateSec1.Text; dRow["Locate_name"] = SLP_LocateSec1.Text + " " + SLP_LocateSec1.Name; dRow["period"] = SLP_ItemPeriod1.Text; if (SLP_SKU1.Name == string.Empty) { dRow["item_name"] = hid_ItemName.Value; } else { dRow["item_name"] = SLP_SKU1.Name; } dRow["onhd_qty"] = NowOnhdQty; dRow["adjust_qty"] = txtAdjQty.Text; dRow["cost"] = double.Parse(Item_Cost); Dt.Rows.Add(dRow); //} hid_ItemName.Value = ""; txtBarCode.Text = ""; //SLP_LocateSec1.Text = ""; SLP_SKU1.Text = ""; SLP_ItemPeriod1.Text = string.Empty; txtAdjQty.Text = ""; GridView1.DataSource = Dt; GridView1.DataBind(); Session[SessionIDName] = Dt; } catch (Exception ex) { ErrorMsgLabel.Text = ex.Message; } #endregion }
public static string GetBarCodeData(string txtBarCodeText) { string item = string.Empty; string period = string.Empty; double Cost = 0; string ItemName = string.Empty; IVMModel.MaintainAdjustData BCO = new IVMModel.MaintainAdjustData(ConntionDB); BCO.GetBarCodeData(txtBarCodeText, out item, out period, out Cost, out ItemName); return item + "," + period + "," + Cost.ToString() + "," + ItemName; }