Пример #1
0
    // Save 事件
    protected void BtnSave_Click(object sender, EventArgs e)
    {
        gv_Detail_CacheUpdate();
        gv_Gift_CacheUpdate();

        DataTable NewDetail = null;
        DataTable NewGift = null;
        string strCheckMsg = string.Empty;
        ErrorMsgLabel.Text = "";
        try
        {
            if (!Page.IsValid)
                return;

            if (this.PUR_PURDate.Text.Trim() == "")
            {
                ErrorMsgLabel.Text = "請必須選取採購日期!!";  //ShowErrorMessage("請必須選取採購日期!!");
                return;
            }
            else
            {
                //DateTime dtChkDate = DateTime.ParseExact(DateTime.Parse(this.PUR_PURDate.Text.Trim()).ToString("yyyy/MM/dd"), "yyyy/MM/dd", null);
                //if (dtChkDate < DateTime.Today)
                //{
                //    ErrorMsgLabel.Text = "採購日期必須大於等於系統日!!";  //ShowErrorMessage("採購日期必須大於等於系統日!!");
                //    return;
                //}

                //判斷採購單的採購日是否己日結
                //VGIModel.CheckVendorAccountClose dbo = new PIC.VDS2G.LGT.VGI.CheckVendorAccountClose(ConntionDB);
                //string IsClosed = dbo.CheckVendorCloseStaus(DateTime.Parse(this.PUR_PURDate.Text).ToString("yyyyMMdd"));
                //if (IsClosed == "1")
                //{
                //    ErrorMsgLabel.Text = "該採購單日已日結,不可進行新增!!";
                //    return;
                //}
            }

            if (this.PUR_PurUser.Text.Trim() == "")
            {
                ErrorMsgLabel.Text = "請必須選取採購人員!!";  //ShowErrorMessage("請必須選取採購人員!!");
                return;
            }

            switch (this.hid_PageStatus.Value)
            {
                case "INSERT":

                    if (this.PUR_VendorCode.Text.Trim() == "")
                    {
                        ErrorMsgLabel.Text = "請必須選取供應商!!";  //ShowErrorMessage("請必須選取供應商!!");
                        break;
                    }

                    if (gv_Detail.Rows.Count <= 0)
                    {
                        ErrorMsgLabel.Text = "請必須輸入明細資料!!";  //ShowErrorMessage("請必須輸入明細資料!!");
                    }
                    else
                    {
                        NewDetail = this.getDetailData();
                        if (NewDetail == null)
                            break;

                        NewGift = this.getGiftData();
                        if (NewGift == null && gv_Gift.Rows.Count > 0)
                            break;

                        strCheckMsg = CheckSaveData();
                        if (strCheckMsg != "")
                        {
                            ErrorMsgLabel.Text = strCheckMsg;
                        }
                        else
                        {
                            MaintainPurchaseOrder bco = new MaintainPurchaseOrder(ConntionDB);
                            string v_PurchaseNo = "";
                            v_PurchaseNo = bco.CreateMasterAndDetail_Gift(this.getMasterParameterList(), DT_DelEmptyRow(NewDetail), NewGift, null);
                            if (v_PurchaseNo == "")
                            {
                                ErrorMsgLabel.Text = "新增 0 筆資料!";
                            }
                            else
                            {
                                Response.Redirect("PUR022.aspx?PURCHASE_NO=" + v_PurchaseNo + "&SSID=&mode=VIEW&Code=PUR02");
                            }
                        }
                    }

                    break;
                case "EDIT":


                    #region 取得更新前舊值

                    DataTable dtMasterOLD = (DataTable)ViewState["MasterOLDData"];

                    DataTable dtDetailOLD = (DataTable)ViewState["DetailOLDData"];

                    DataTable dtGiftOLD = (DataTable)ViewState["GiftOLDData"];
                    #endregion

                    if (dtMasterOLD.Rows.Count == 0)
                    {
                        ErrorMsgLabel.Text = "抓取不到Master舊值,更新失敗!";
                    }
                    if (dtDetailOLD.Rows.Count == 0)
                    {
                        ErrorMsgLabel.Text = "抓取不到Detail舊值,更新失敗!";
                    }

                    NewDetail = this.getDetailData();
                    if (NewDetail == null)
                        break;

                    NewGift = this.getGiftData();
                    if (NewGift == null)
                        break;

                    strCheckMsg = CheckSaveData();
                    if (strCheckMsg != "")
                    {
                        ErrorMsgLabel.Text = strCheckMsg;
                    }
                    else
                    {
                        MaintainPurchaseOrder bco = new MaintainPurchaseOrder(ConntionDB);
                        bco.UpdatePurMasterAndDetail_Gift(this.getMasterParameterList(), DT_DelEmptyRow(NewDetail), NewGift, null, dtMasterOLD, dtDetailOLD, dtGiftOLD);

                        Response.Redirect("PUR022.aspx?PURCHASE_NO=" + ViewState["PURCHASE_NO"].ToString() + "&SSID=" + ViewState["SSID"].ToString() + "&mode=VIEW&Code=PUR02");
                    }
                    break;
                default:
                    break;
            }
        }
        catch (Exception ex)
        {
            ErrorMsgLabel.Text = ex.Message;
        }
    }