Beispiel #1
0
    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

    }
Beispiel #2
0
 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;
 }