/// <summary> /// 依照揀貨單號建立移轉單 /// </summary> /// <param name="UserID"></param> /// <param name="RemoveDate"></param> /// <param name="RemoveReason"></param> /// <param name="PickNo"></param> /// <param name="RootDBT"></param> /// <param name="RemoveNo"></param> /// <param name="ErrorList"></param> /// <returns></returns> public bool CreateRemoveByPick(string UserID, string RemoveDate, string RemoveReason, string FunNo, string PickNo,string UpdateTime, DbTransaction RootDBT, out string RemoveNo, out ArrayList ErrorList) { RemoveNo = string.Empty; string MainID = string.Empty; bool IsOK = false; bool IsRootTranscation = false; ArrayList ParameterList = new ArrayList(); ArrayList ItemQtyList = new ArrayList(); try { IsRootTranscation = (RootDBT == null) ? true : false; #region 啟動交易或指定RootTranscation if (IsRootTranscation) { //獨立呼叫啟動Transcation Conn = USEDB.CreateConnection(); Conn.Open(); DBT = Conn.BeginTransaction(); } else { DBT = RootDBT; } #endregion DBO.VDS_IVM16_DBO BCOIVM = new DBO.VDS_IVM16_DBO(ref USEDB); ParameterList.Clear(); ParameterList.Add(PickNo); DataTable dtCreate = BCOIVM.GetRemoveDataByPick(ParameterList); DBO.MaintainRemoveData BCO = new DBO.MaintainRemoveData(strConn); ParameterList.Clear(); ParameterList.Add(UserID); ParameterList.Add(RemoveDate); ParameterList.Add(RemoveReason); if (FunNo == "8" || FunNo == "6") { //拆開之前判斷有沒有空間 //建立新的DATATABLE儲存SUMMARY的移出儲位及儲位數量 DataTable dtSpace = new DataTable(); dtSpace.Columns.Add("OutLocateSection"); dtSpace.Columns.Add("InLocateSection"); //充數欄位 dtSpace.Columns.Add("Item"); dtSpace.Columns.Add("Period"); dtSpace.Columns.Add("Remove_Qty"); //計算移出欄位數量,並加總 for (int i = 0; i < dtCreate.Rows.Count; i++) { string OutLocateSection = dtCreate.Rows[i][0].ToString(); string InLocateSection = ""; string Item = dtCreate.Rows[i][2].ToString(); string Period = dtCreate.Rows[i][3].ToString(); string RemoveQty = dtCreate.Rows[i][4].ToString(); bool HaveSec = false; int U = -1; for (int x = 0; x < dtSpace.Rows.Count; x++) { if (OutLocateSection == dtSpace.Rows[x]["OutLocateSection"].ToString() && Item == dtSpace.Rows[x]["Item"].ToString() && Period == dtSpace.Rows[x]["Period"].ToString()) { HaveSec = true; U = x; } } if (HaveSec == true) { dtSpace.Rows[U]["Remove_Qty"] = int.Parse(dtSpace.Rows[U]["Remove_Qty"].ToString()) + int.Parse(RemoveQty); } else { DataRow drSpace = dtSpace.NewRow(); drSpace["OutLocateSection"] = OutLocateSection; drSpace["InLocateSection"] = InLocateSection; drSpace["Item"] = Item; drSpace["Period"] = Period; drSpace["Remove_Qty"] = RemoveQty; dtSpace.Rows.Add(drSpace); } } bool HaveSpace = BCO.CheckSpace(dtSpace, out ErrorList, out ItemQtyList); if (HaveSpace == true) { ParameterList.Add("Y"); DataTable dtResult = SplitSectionSecData(dtCreate); IsOK = BCO.CreateRemoveData(ParameterList, dtResult, DBT, out MainID, out RemoveNo, out ErrorList); } else { IsOK = false; } } else { IsOK = BCO.CreateRemoveData(ParameterList, dtCreate, DBT, out MainID, out RemoveNo, out ErrorList); } if (IsOK == false) { return false; } ParameterList.Clear(); ParameterList.Add(UserID); ParameterList.Add(PickNo); ParameterList.Add(RemoveNo); ParameterList.Add(RemoveDate); ParameterList.Add(UpdateTime); BCOIVM.UpdateRemoveNoByPickNo(ParameterList, DBT); #region 交易成功 if (IsRootTranscation) { //獨立呼叫Transcation成立 DBT.Commit(); } return true; #endregion } catch (Exception ex) { #region 交易失敗 if (IsRootTranscation) { //獨立呼叫Transcation失敗 DBT.Rollback(); } #endregion throw ex; } finally { #region 判斷是否關閉交易連線 if (IsRootTranscation) { //獨立呼叫Transcation,關閉連線 if (Conn.State == ConnectionState.Connecting) { Conn.Close(); } } #endregion } }
protected void btn_Save_Click(object sender, EventArgs e) { try { string par_AcceptDate = this.SLP_AcceptDate.Text; string par_ChanNo = this.ddlChanNo.SelectedValue; string par_Store = this.ddlStore.SelectedValue; string par_CREATEUID = Session["UID"].ToString(); #region 檢查 if (par_ChanNo.Trim() == string.Empty) { throw new Exception("通路未設定!!"); } if (par_Store.Trim() == string.Empty) { throw new Exception("廠商門市未設定!!"); } if (this.txt_PageStatus.Text != "QUERY" && (this.SLP_SKU.Text != string.Empty || this.SLP_Period.Text != string.Empty)) { QueryItemDataUpdate(); throw new Exception("明細資料在編輯狀態,不可儲存!!"); } #endregion #region 建立移轉單 if (Request["formtype"] == "1")//由驗收單畫面連過來 { //檢查是否需要建移轉單 //如果[出庫儲位庫存量] < [進貨數量],要建移轉單 if (checkNeedRemove()) { string strOutLS = string.Empty; string strInLS = string.Empty; if (CheckForRemove(out strOutLS, out strInLS)) { string strMainID = string.Empty; string strRemoveNo = string.Empty; ArrayList ErrList = new ArrayList(); bool result = false; DataTable Dt_Detail = MakeDetailTable(strOutLS, strInLS); ParameterList.Clear(); ParameterList.Add(par_CREATEUID); ParameterList.Add(par_AcceptDate); ParameterList.Add("M3"); PIC.VDS2G.VSM.IVM.MaintainRemoveData bco = new PIC.VDS2G.VSM.IVM.MaintainRemoveData(ConntionDB); result = bco.CreateRemoveData(ParameterList, Dt_Detail, null, out strMainID, out strRemoveNo, out ErrList); if (result == false) { throw new Exception("無足夠儲位,無法建立移轉單"); } } else { throw new Exception("查無儲格資料,無法建立移轉單"); } } } #endregion ParameterList.Clear(); ParameterList.Add(GetValueSetParameter(par_AcceptDate, "string")); ParameterList.Add(GetValueSetParameter(par_ChanNo, "string")); ParameterList.Add(GetValueSetParameter(par_Store, "string")); ParameterList.Add(GetValueSetParameter(par_CREATEUID, "string")); string sAssignNo = ""; string sAcceptNo = ""; string sOutNo = ""; string SessionIDName = "VGI022_" + PageTimeStamp.Value; DataTable dt = (DataTable)Session[SessionIDName]; if (dt.Rows.Count == 0) { throw new Exception("無明細項目資料!!"); } MaintainAssign BCO = new MaintainAssign(ConntionDB); BCO.CreateAssign(ParameterList, null, dt, out sAssignNo, out sAcceptNo, out sOutNo); this.txt_AssignNo.Text = sAssignNo; this.txt_AcceptNo.Text = sAcceptNo; this.txt_OutNo.Text = sOutNo; IDList.Clear(); if (Session["VGI02QueryID"] != null) { IDList = (ArrayList)Session["VGI02QueryID"]; IDList.Clear(); } Response.Redirect("VGI022.aspx?ID=" + txt_AssignNo.Text + "&mode=VIEW&Code=VGI02", false); } catch (Exception ex) { ErrorMsgLabel.Text = ex.Message; } #region 存檔後狀態設定 // this.hid_PageStatus.Value = "VIEW"; // this.txt_PageStatus.Text = "VIEW"; // SetPageStatus(); #endregion }
public static string GetSugLocate(string OutNo, string OutLocate, string item, string period) { string SugLocate = ""; IVMModel.MaintainRemoveData BCO = new IVMModel.MaintainRemoveData(ConntionDB); SugLocate = BCO.GetSugLocate(OutNo + OutLocate, item, period); return SugLocate; }
}//databind private void databind_Mst() { #region try { string SessionIDName = "IVM10_DTL_" + PageTimeStamp.Value; IVMModel.MaintainRemoveData BCO = new IVMModel.MaintainRemoveData(ConntionDB); ParameterList.Clear(); if (Request.QueryString["ID"] != null) { ParameterList.Add(Request.QueryString["ID"].ToString()); DataTable Dt = BCO.QueryRemoveMainByID(ParameterList); MasterDataBind(this.hid_Page_Status.Value, Dt); } } catch (Exception ex) { ErrorMsgLabel.Text = ex.Message; UpdatePanel6.Update(); } #endregion }
public static string GetBarCodeData(string txtBarCodeText, string OutNo, string OutLocate) { string ErroeCode = "0"; string item = string.Empty; string period = string.Empty; int OnHd_Qty = 0; Decimal Cost = 0; string TaxType = ""; IVMModel.MaintainRemoveData BCO = new IVMModel.MaintainRemoveData(ConntionDB); ErroeCode = BCO.GetBarCodeDataForIVM(txtBarCodeText, OutNo + OutLocate, out item, out period, out OnHd_Qty, out Cost, out TaxType); if (ErroeCode == "2") return ""; else return item + "," + period + "," + OnHd_Qty.ToString() + "," + Cost.ToString(); }
private void SaveForm() { string MainID = string.Empty; string RemoveNO = string.Empty; ArrayList ErrList = new ArrayList(); string SessionIDName = "IVM10_DTL_" + PageTimeStamp.Value; try { #region 確認必要欄位都已填寫 if (this.txtRemoveDate.Text == string.Empty || this.SLP_User1.Text == string.Empty || this.txtCreateDate.Text == string.Empty) { ErrorMsgLabel.Text = "請確認欄位都已填寫完成"; UpdatePanel6.Update(); return; } //檢查頁面上的DATATABLE資料都有齊全 if (GridView1.Rows.Count == 0) { ErrorMsgLabel.Text = "尚未輸入移轉單明細資料,新增失敗"; UpdatePanel6.Update(); return; } //DataSet Ds = new DataSet(); //System.IO.StringReader sr = new System.IO.StringReader(MasterOLDData.InnerHtml); //Ds.ReadXml(sr); //if (Ds.Tables.Count == 0 || Ds.Tables[0].Rows.Count == 0) //{ // ErrorMsgLabel.Text = "尚未輸入移轉單明細資料,新增失敗"; // return; //} DataTable Dt = (DataTable)Session[SessionIDName]; for (int i = 0; i < GridView1.Rows.Count; i++) { Label lblItem = (Label)GridView1.Rows[i].FindControl("lblItem"); Label lblPeriod = (Label)GridView1.Rows[i].FindControl("lblPeriod"); Label lblSecOut = (Label)GridView1.Rows[i].FindControl("lblSecOut"); Label lblSecIn = (Label)GridView1.Rows[i].FindControl("lblSecIn"); TextBox txtRemove_Qty = (TextBox)GridView1.Rows[i].FindControl("txtRemove_Qty"); int AdjQty = 0; if (int.TryParse(txtRemove_Qty.Text, out AdjQty) == true) { if (AdjQty == 0) { ErrorMsgLabel.Text = "新增失敗,請檢查明細區移轉數量是否為零"; UpdatePanel6.Update(); return; } } else { ErrorMsgLabel.Text = "新增失敗,請檢查明細區移轉數量是否為非零整數"; UpdatePanel6.Update(); return; } for (int x = 0; x < Dt.Rows.Count; x++) { if (Dt.Rows[x]["item"].ToString() == lblItem.Text && Dt.Rows[x]["period"].ToString() == lblPeriod.Text && Dt.Rows[x]["Out_locate_section"].ToString() == lblSecOut.Text && Dt.Rows[x]["In_locate_section"].ToString() == lblSecIn.Text) { Dt.Rows[x]["remove_qty"] = txtRemove_Qty.Text; } } } #endregion //新增主檔所需PARAMETERLIST DropDownList ddl = (DropDownList)SLP_CodeFile1.FindControl("D1"); ParameterList.Clear(); ParameterList.Add(Session["UID"].ToString()); ParameterList.Add(DateTime.Now.ToString("yyyyMMddHHmmss")); ParameterList.Add(ddl.SelectedValue); DataTable DtCreate = Dt.Copy(); //Ds.Tables[0].Columns.Remove("ROWNUM"); //Dt.Columns.Remove("Out_locate_no"); DtCreate.Columns.Remove("Out_Locate_Name"); //Dt.Columns.Remove("In_locate_no"); DtCreate.Columns.Remove("In_Locate_Name"); DtCreate.Columns.Remove("item_name"); DtCreate.Columns.Remove("onhd_qty"); DtCreate.Columns.Remove("id"); bool InsertOK = false; IVMModel.MaintainRemoveData DataCreate = new IVMModel.MaintainRemoveData(ConntionDB); InsertOK = DataCreate.CreateRemoveData(ParameterList, DtCreate, null, out MainID, out RemoveNO, out ErrList); if (InsertOK) { txtRemoveNo.Text = RemoveNO; databind(); GetPageDefault(); Session[SessionIDName] = null; ArrayList IDList = new ArrayList(); IDList.Add(MainID); Session["IVM10QueryID"] = IDList; Response.Redirect(string.Format("IVM102.aspx?ID={0}&PageMode=1&Code=IVM10", MainID)); } else { string strError = ""; for (int i = 0; i < ErrList.Count; i++) { if (i == ErrList.Count - 1) { strError += ErrList[i].ToString(); } else { strError += ErrList[i].ToString() + ","; } } //ScriptManager.RegisterStartupScript(this.UpdatePanel1, typeof(UpdatePanel), "IVM112", "alert('" + strError + "於指定儲位之庫存量不足');", true); ErrorMsgLabel.Text = strError + "於指定儲位(或儲區)庫存不足"; UpdatePanel6.Update(); return; } } catch (Exception ex) { ErrorMsgLabel.Text = ex.Message; UpdatePanel6.Update(); } #endregion }
private void InsertDetail() { ErrorMsgLabel.Text = ""; UpdatePanel6.Update(); string SessionIDName = "IVM10_DTL_" + PageTimeStamp.Value; hid_Bill_Ini.Value = "1"; TextBox txtOutNo = (TextBox)this.SLP_Out.FindControl("TextBoxCode"); TextBox txtOutSection = (TextBox)this.SLP_Out.FindControl("TextBoxCode2"); TextBox txtOutSectionName = (TextBox)this.SLP_Out.FindControl("TextBoxName"); TextBox txtInNo = (TextBox)this.SLP_In.FindControl("TextBoxCode"); TextBox txtInSection = (TextBox)this.SLP_In.FindControl("TextBoxCode2"); TextBox txtInSectionName = (TextBox)this.SLP_In.FindControl("TextBoxName"); #region 檢查輸入值 string strErr = ""; string SugLocate = ""; IVMModel.MaintainRemoveDataDetail BCO = new IVMModel.MaintainRemoveDataDetail(ConntionDB); int Qty = 0; if (txtOutNo.Text == string.Empty && txtOutSection.Text == string.Empty) { strErr = "請輸入移出儲位 "; ScriptManager.RegisterStartupScript(this.UpdatePanel1, typeof(UpdatePanel), "IVM102", "showErr('" + strErr + "');", true); return; } if (txtInNo.Text == string.Empty) { strErr = "請輸入移入儲區 "; ScriptManager.RegisterStartupScript(this.UpdatePanel1, typeof(UpdatePanel), "IVM102", "showErr('" + strErr + "');", true); return; } if (SLP_Out.Text == SLP_In.Text) { strErr = "移入移出儲位不得相同 "; SLP_In.Text = ""; ScriptManager.RegisterStartupScript(this.UpdatePanel1, typeof(UpdatePanel), "IVM102", "showErr('" + strErr + "');", true); return; } if (chkEnable.Checked == false && txtInSection.Text == string.Empty) { strErr = "請輸入移入儲位或勾選建議儲位 "; ScriptManager.RegisterStartupScript(this.UpdatePanel1, typeof(UpdatePanel), "IVM102", "showErr('" + strErr + "');", true); return; } if (int.TryParse(this.txtQty.Text, out Qty) == false) { strErr = "請輸入正確數值格式 "; ScriptManager.RegisterStartupScript(this.UpdatePanel1, typeof(UpdatePanel), "IVM102", "showErr('" + strErr + "');", true); return; } else { if (Qty <= 0) { strErr = "請輸入正整數 "; ScriptManager.RegisterStartupScript(this.UpdatePanel1, typeof(UpdatePanel), "IVM102", "showErr('" + strErr + "');", true); return; } } if (SLP_Item.Text == string.Empty) { strErr = "請輸入品號 "; ScriptManager.RegisterStartupScript(this.UpdatePanel1, typeof(UpdatePanel), "IVM102", "showErr('" + strErr + "');", true); return; } if (SLP_Period.Text == string.Empty) { strErr = "請輸入期別 "; ScriptManager.RegisterStartupScript(this.UpdatePanel1, typeof(UpdatePanel), "IVM102", "showErr('" + strErr + "');", true); return; } if (txtQty.Text == string.Empty) { strErr = "請輸入移轉數量 "; ScriptManager.RegisterStartupScript(this.UpdatePanel1, typeof(UpdatePanel), "IVM102", "showErr('" + strErr + "');", true); return; } else { int i = 0; bool Result = int.TryParse(txtQty.Text, out i); if (Result = false) { strErr = "請輸入正確數值 "; ScriptManager.RegisterStartupScript(this.UpdatePanel1, typeof(UpdatePanel), "IVM102", "showErr('" + strErr + "');", true); return; } else { if (int.Parse(txtQty.Text) == 0) { strErr = "請輸入有效移轉數量 "; ScriptManager.RegisterStartupScript(this.UpdatePanel1, typeof(UpdatePanel), "IVM102", "showErr('" + strErr + "');", true); return; } } } //判斷是否有建議儲格 if (chkEnable.Checked == true && txtInSection.Text == string.Empty) { IVMModel.MaintainRemoveData BCOMain = new IVMModel.MaintainRemoveData(ConntionDB); SugLocate = BCOMain.GetSugLocate(txtOutNo.Text + txtOutSection.Text, SLP_Item.Text, SLP_Period.Text); if (SugLocate == string.Empty) { strErr = "此商品無可建議儲格,請手動輸入移入儲格 "; ScriptManager.RegisterStartupScript(this.UpdatePanel1, typeof(UpdatePanel), "IVM102", "showErr('" + strErr + "');", true); return; } else { txtInNo.Text = SugLocate.Substring(0, 1); txtInSection.Text = SugLocate.Substring(1, 5); lblSugSec.Text = SugLocate.Substring(1, 5); } } #endregion #region 如果沒有資料取得空DATASET //DataTable Dt = null; //DataSet Ds = new DataSet(); //if (MasterOLDData.InnerHtml != "") //{ // System.IO.StringReader sr = new System.IO.StringReader(MasterOLDData.InnerHtml); // Ds.ReadXml(sr); //} DataTable Dt = (DataTable)Session[SessionIDName]; try { //string SessionIDName = "IVM10_DTL_" + PageTimeStamp.Value; if (Dt == null) { //從DB讀取一空table回來 ParameterList.Clear(); Dt = BCO.QueryRemoveDetlEmpty(); } //else //{ // Dt = Ds.Tables[0]; //} #region 取得庫存數 int NowOnhdQty = 0; if (txtBarCode.Text == "") { ParameterList.Clear(); INVModel.MaintainStockStatement dbo = new INVModel.MaintainStockStatement(ConntionDB); INVModel.SQLHelper.SQLWhere(ref ParameterList, DbType.String, "LOCATE_NO", txtOutNo.Text, "=", "and"); INVModel.SQLHelper.SQLWhere(ref ParameterList, DbType.String, "LOCATE_SECTION", txtOutNo.Text + txtOutSection.Text, "=", "and"); INVModel.SQLHelper.SQLWhere(ref ParameterList, DbType.String, "ITEM", SLP_Item.Text, "=", "and"); INVModel.SQLHelper.SQLWhere(ref ParameterList, DbType.String, "PERIOD", SLP_Period.Text, "=", "and"); DataTable dtResult = dbo.QueryStockStatementByFind_1(ParameterList); if (dtResult.Rows.Count != 1) { if (chkEnable.Checked == true) txtInSection.Text = ""; txtBarCode.Text = ""; //SLP_Item.Text = ""; //SLP_Period.Text = ""; strErr = "移出儲位的庫存數已不足! "; ScriptManager.RegisterStartupScript(this.UpdatePanel1, typeof(UpdatePanel), "IVM102", "showErr('" + strErr + "');", true); return; } else { NowOnhdQty = int.Parse(dtResult.Rows[0]["onhd_qty"].ToString()); } } else { NowOnhdQty = int.Parse(this.hid_StockQty.Value); } #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()); } if (NowOnhdQty - int.Parse(txtQty.Text) < 0) { if (chkEnable.Checked == true) txtInSection.Text = ""; txtBarCode.Text = ""; //SLP_Item.Text = ""; //SLP_Period.Text = ""; strErr = "移出儲位的庫存數已不足 "; ScriptManager.RegisterStartupScript(this.UpdatePanel1, typeof(UpdatePanel), "IVM102", "showErr('" + strErr + "');", true); return; } //如果出入庫儲位不相同需要取得入庫暫存儲位 //if(txtOutNo.Text != txtInNo.Text) //{ // IVMModel.MaintainRemoveByPick BCOStock = new IVMModel.MaintainRemoveByPick(ConntionDB); // ParameterList.Clear(); // ParameterList.Add(txtInNo.Text); // ParameterList.Add("1"); // string InLocateSec = BCOStock.GetLocateSecByAttr(ParameterList); // txtInNo.Text = InLocateSec.Substring(0, 1); // txtInSection.Text = InLocateSec.Substring(1,5); //} //檢查是否有重複的品項、期別、儲位,重複的數量必須要加總(既有+新輸入的值) bool HaveData = false; for (int i = 0; i <= Dt.Rows.Count - 1; i++) { if ((Dt.Rows[i]["item"].ToString() == SLP_Item.Text) && (Dt.Rows[i]["period"].ToString() == SLP_Period.Text) && (Dt.Rows[i]["out_locate_section"].ToString() == txtOutNo.Text + txtOutSection.Text) && (Dt.Rows[i]["in_locate_section"].ToString() == txtInNo.Text + txtInSection.Text)) { //明細已存在加總 int NewOnhdQty = int.Parse(Dt.Rows[i]["remove_qty"].ToString()) + int.Parse(txtQty.Text); if (NowOnhdQty - NewOnhdQty < 0) { if (chkEnable.Checked == true) txtInSection.Text = ""; txtBarCode.Text = ""; //SLP_Item.Text = ""; //SLP_Period.Text = ""; strErr = "移出儲位的庫存數已不足 "; ScriptManager.RegisterStartupScript(this.UpdatePanel1, typeof(UpdatePanel), "IVM102", "showErr('" + strErr + "');", true); return; } Dt.Rows[i]["remove_qty"] = NewOnhdQty; HaveData = true; } } if (HaveData == false) { IVMModel.MaintainRemoveDataDetail dboIVM = new IVMModel.MaintainRemoveDataDetail(ConntionDB); DataRow dRow = Dt.NewRow(); //ID和CODE暫自訂, 真正寫入CO時會重取 int v_ID = tempID + 1; int v_CODE = tempID + 1; dRow["item"] = SLP_Item.Text; dRow["period"] = SLP_Period.Text; if (txtBarCode.Text != string.Empty) { string ItemName = dboIVM.GetItemName(SLP_Item.Text); dRow["item_name"] = ItemName; } else { dRow["item_name"] = SLP_Item.Name; } dRow["Out_locate_no"] = SLP_Out.Text1; dRow["Out_locate_section"] = SLP_Out.Text; dRow["Out_Locate_Name"] = SLP_Out.Text + " " + SLP_Out.Name; dRow["In_locate_no"] = SLP_In.Text1; dRow["In_locate_section"] = SLP_In.Text; dRow["In_Locate_Name"] = SLP_In.Text + " " + SLP_In.Name; dRow["onhd_qty"] = NowOnhdQty; dRow["remove_qty"] = int.Parse(txtQty.Text); if (hidCost.Value != "") { dRow["cost"] = hidCost.Value; } else { //手動輸入需要取得成本資料 double Cost = 0; bool haveData = dboIVM.GetItemPeriodCost(SLP_Item.Text, SLP_Period.Text, out Cost); if (haveData == false) { ErrorMsgLabel.Text = "查無該商品成本資料"; UpdatePanel6.Update(); return; } else { hidCost.Value = Cost.ToString(); dRow["cost"] = Cost.ToString(); } } dRow["ID"] = v_ID; Dt.Rows.Add(dRow); } if (this.chkEnable.Checked == true) { txtInSection.Text = ""; this.chkEnable.Checked = true; } else { lblSugSec.Text = ""; this.txtBarCode.Text = ""; this.chkEnable.Checked = false; } this.SLP_Item.Text = ""; this.SLP_Period.Text = ""; this.txtQty.Text = ""; this.hidCost.Value = ""; this.txtBarCode.Text = ""; #region 使用XML放置到前端資料 //MasterOLDData.InnerHtml = Dt.DataSet.GetXml(); #endregion GridView1.DataSource = Dt; GridView1.DataBind(); Session[SessionIDName] = Dt; CalcuTotalRemove(Dt); this.txtQty.Text = "1"; } catch (Exception ex) { ErrorMsgLabel.Text = ex.Message; UpdatePanel6.Update(); } #endregion }
/// <summary> /// databind 繫結查詢資料到GridView1 /// </summary> private void databind() { //抓取本頁初次登記的時間 //TextBox txtOutLocateNo = (TextBox)SLP_OutLocateSection.FindControl("TextBoxCode"); string SessionIDName = "IVM101_" + PageTimeStamp.Value; IVMModel.MaintainRemoveData BCO = new IVMModel.MaintainRemoveData(ConntionDB); DataTable Dt; ParameterList.Clear(); ParameterList.Add(this.txtRemoveNo.Text); ParameterList.Add(this.SLP_RemoveDate.Text); ParameterList.Add(this.SLP_Reason.Text); //ParameterList.Add(txtOutLocateNo.Text); ParameterList.Add(this.SLP_OutLocateSection.Text + "%"); ParameterList.Add(this.SLP_InLocateSection.Text +"%"); ParameterList.Add(int.Parse(this.TextBoxRowCountLimit.Text)); Dt = BCO.QueryMainByFind(ParameterList); if (Dt.Rows.Count == 0) { ScriptManager.RegisterStartupScript(Page, this.GetType(), "IVM101.aspx", "alert(' 查無資料 ');", true); } Session[SessionIDName] = Dt; GridView1.DataSource = Dt; ArrayList IDList = new ArrayList(); for (int i = 0; i < Dt.Rows.Count; i++) { IDList.Add(Dt.Rows[i]["ID"].ToString()); } Session["IVM10QueryID"] = IDList; //設定分頁大小 GridView1.PageSize = (TextBoxPagesize.Text == "") ? 10 : (int.Parse(TextBoxPagesize.Text) < 0) ? 10 : int.Parse(TextBoxPagesize.Text); // GridView1.PageIndex = 0; GridView1.DataBind(); }
// 存檔 protected void btnSave_Click(object sender, EventArgs e) { try { string MainID = string.Empty; string RemoveNO = string.Empty; ArrayList ErrList = new ArrayList(); string SessionIDName = "IVM391_" + PageTimeStamp.Value; if (gv_Detail.Rows.Count <= 0 || Session["IVM391_" + PageTimeStamp.Value] == null) { ShowErr("請輸入資料~"); return; } else { DataTable Dt = (DataTable)Session["IVM391_" + PageTimeStamp.Value]; //新增主檔所需PARAMETERLIST ParameterList.Clear(); ParameterList.Add(Session["UID"].ToString()); ParameterList.Add(DateTime.Now.ToString("yyyyMMddHHmmss")); ParameterList.Add("M3"); //固定為一般庫存出貨移轉 DataTable DtCreate = new DataTable(); DtCreate.Columns.Add("OUT_LOCATE_NO"); DtCreate.Columns.Add("OUT_LOCATE_SECTION"); DtCreate.Columns.Add("IN_LOCATE_NO"); DtCreate.Columns.Add("IN_LOCATE_SECTION"); DtCreate.Columns.Add("ITEM"); DtCreate.Columns.Add("PERIOD"); DtCreate.Columns.Add("REMOVE_QTY"); DtCreate.Columns.Add("COST"); for(int i=0;i < Dt.Rows.Count;i++) { int REV_QTY = Convert.ToInt32(Dt.Rows[i]["REV_QTY"]); int RTN_QTY = Convert.ToInt32(Dt.Rows[i]["RTN_QTY"]); if (REV_QTY > 0) { DataRow drc = DtCreate.NewRow(); drc["OUT_LOCATE_NO"] = Dt.Rows[i]["OUTSECTION"].ToString().Substring(0, 1); drc["OUT_LOCATE_SECTION"] = Dt.Rows[i]["OUTSECTION"].ToString(); drc["IN_LOCATE_NO"] = Dt.Rows[i]["INSECTION"].ToString().Substring(0, 1); drc["IN_LOCATE_SECTION"] = Dt.Rows[i]["INSECTION"].ToString(); drc["ITEM"] = Dt.Rows[i]["ITEM"].ToString(); drc["PERIOD"] = Dt.Rows[i]["PERIOD"].ToString(); drc["REMOVE_QTY"] = Dt.Rows[i]["REV_QTY"].ToString(); drc["COST"] = Dt.Rows[i]["COST"].ToString(); DtCreate.Rows.Add(drc); } if (RTN_QTY > 0) { DataRow drc = DtCreate.NewRow(); drc["OUT_LOCATE_NO"] = Dt.Rows[i]["OUTSECTION"].ToString().Substring(0, 1); drc["OUT_LOCATE_SECTION"] = Dt.Rows[i]["OUTSECTION"].ToString(); drc["IN_LOCATE_NO"] = Dt.Rows[i]["RTNSECTION"].ToString().Substring(0, 1); drc["IN_LOCATE_SECTION"] = Dt.Rows[i]["RTNSECTION"].ToString(); drc["ITEM"] = Dt.Rows[i]["ITEM"].ToString(); drc["PERIOD"] = Dt.Rows[i]["PERIOD"].ToString(); drc["REMOVE_QTY"] = Dt.Rows[i]["RTN_QTY"].ToString(); drc["COST"] = Dt.Rows[i]["COST"].ToString(); DtCreate.Rows.Add(drc); } } bool InsertOK = false; IVMModel.MaintainRemoveData DataCreate = new IVMModel.MaintainRemoveData(ConntionDB); InsertOK = DataCreate.CreateRemoveData(ParameterList, DtCreate, null, out MainID, out RemoveNO, out ErrList); if (InsertOK) { lblRemoveNo.Text = RemoveNO; SetPageDefault(); } else { string strError = ""; for (int i = 0; i < ErrList.Count; i++) { if (i == ErrList.Count - 1) { strError += ErrList[i].ToString(); } else { strError += ErrList[i].ToString() + ","; } } ShowErr(strError + "於指定儲位(或儲區)庫存不足"); return; } } } catch (Exception ex) { ShowErr("儲存出現異常,請洽系統人員處理"); } }