Exemple #1
0
    private void SaveForm()
    {
        ErrorMsgLabel.Text = "";

        //變數宣告
        string UserID = Session["UID"].ToString();

        string strNow = DateTime.Now.ToString("yyyyMMddHHmmss");

        string IsAdj = "";

        string MainID = "";

        string AdjustNo = "";

        string ReturnNo = "";

        string strErr = "";

        #region 檢查輸入完整性

        if (SLP_Vendor.Text == string.Empty)
        {
            strErr = "請輸入供應商 ";
            this.ErrorMsgLabel.Text = strErr;
            return;
        }

        DataSet Ds = new DataSet();

        if (MasterOLDData.InnerHtml != "")
        {
            System.IO.StringReader sr = new System.IO.StringReader(MasterOLDData.InnerHtml);
            Ds.ReadXml(sr);

            if (Ds.Tables.Count == 0)
            {
                ErrorMsgLabel.Text = "尚未輸入廠商退貨明細資料或退貨數量皆為零";
                return;
            }

        }
        else
        {
            ErrorMsgLabel.Text = "尚未輸入廠商退貨明細資料或退貨數量皆為零";
            return;
        }

        #endregion

        #region 廠退單建立
        //重新調整退貨單輸入數量回傳是否需要建立調整單
        try
        {
            //更新GridView上的廠退單資料
            //變更DATATABLE 資料內容
            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 lblOnhdQty = (Label)GridView1.Rows[i].FindControl("lblOnhdQty");
                TextBox txtReturnQty = (TextBox)GridView1.Rows[i].FindControl("txtReturnQty");

                for (int x = 0; x < Ds.Tables[0].Rows.Count; x++)
                {
                    string Item = Ds.Tables[0].Rows[x]["item"].ToString();
                    string Period = Ds.Tables[0].Rows[x]["period"].ToString();

                    if (lblItem.Text == Item && lblPeriod.Text == Period)
                    {
                        if (int.Parse(txtReturnQty.Text) + int.Parse(lblOnhdQty.Text) >= 0)
                        {
                            Ds.Tables[0].Rows[x]["return_qty"] = txtReturnQty.Text;
                        }
                        else
                        {
                            ScriptManager.RegisterStartupScript(this.UpdatePanel1, typeof(UpdatePanel), "隨便寫", "document.getElementById('" + txtReturnQty.ClientID + "').focus();", true);
                            return;
                        }
                        break;
                    }
                }
            }

            //剔除退貨數量是0的資料

            for (int i = Ds.Tables[0].Rows.Count; i > 0; i--)
            {
                if (Ds.Tables[0].Rows[i - 1]["return_qty"].ToString() == "0")
                {
                    Ds.Tables[0].Rows.Remove(Ds.Tables[0].Rows[i - 1]);
                }
            }

            if (Ds.Tables.Count == 0 || Ds.Tables[0].Rows.Count == 0)
            {
                ErrorMsgLabel.Text = "尚未輸入廠商退貨明細資料或退貨數量皆為零";
                return;
            }

            Ds.Tables[0].Columns.Remove("old_return_qty");

            VGRModel.MaintainReturnData BCOVGR = new VGRModel.MaintainReturnData(ConntionDB);

            DataTable dtDetail = BCOVGR.CheckAdjustQty(ReturnLocateSection, Ds.Tables[0],out IsAdj);

            //改由db計算
            //CalcuTotalTax(Ds.Tables[0]);

            ParameterList.Clear();
            ParameterList.Add(UserID);
            ParameterList.Add(strNow);
            ParameterList.Add(IsAdj);
            ParameterList.Add(ReturnLocateSection);
            ParameterList.Add(SLP_Vendor.Text);
            ParameterList.Add("S4");
            ParameterList.Add("E5");

            ParameterList.Add(0);
            ParameterList.Add(0);
            ParameterList.Add(0);
            ParameterList.Add(0);
            ParameterList.Add(0);

            dtDetail.Columns.Remove("item_name");
            dtDetail.Columns.Remove("remain_qty");
            dtDetail.Columns.Remove("id");
            

            BCOVGR.CreateReturnData(ParameterList, dtDetail, null, out ReturnNo, out MainID, out AdjustNo);

            ArrayList IDList = new ArrayList();
            IDList.Add(MainID);

            Session["VGR01QueryID"] = IDList;

            Response.Redirect(string.Format("VGR012.aspx?ID={0}&Code=VGR01&PageMode=1", MainID));

        }
        catch (Exception ex)
        {
            ErrorMsgLabel.Text = ex.Message;
        }

        #endregion
    }