Пример #1
0
    protected void btn_Save_Click(object sender, EventArgs e)
    {
        #region
        Int32 iResult = 0;

        try
        {
            if (dtMultiSaveClassAndItem.Rows.Count > 0)
            {
                Hashtable htTemp = new Hashtable();
                Hashtable htParams = new Hashtable();

                htTemp.Clear();
                htTemp.Add("ChanNo", SLP_StoreChain1.Text.Trim());
                htTemp.Add("Store", SLP_Store1.Text.Trim());
                htTemp.Add("StartDate", SLP_SLPDate2.Text.Trim());
                htTemp.Add("EndDate", SLP_SLPDate3.Text.Trim());

                if (CheckSpecTypeAndValue() && CheckDetailDataIsNotNull() && CheckPATTERNSPECCanAdd(htTemp) )
                {
                    #region
                    DataTable dtForUpdate = dtDetailData;//.GetChanges(DataRowState.Added);

                    ALOModel.MaintainPatternSpec BCO = new ALOModel.MaintainPatternSpec(ConnectionDB);
                    string strCode = "";

                    strErrMsgAfterChecked = "";//清空暫存錯誤訊息

                    for (Int32 i = 0; i <= dtMultiSaveClassAndItem.Rows.Count - 1; i++)
                    {
                        #region Master

                        htTemp.Clear();
                        htTemp.Add("ChanNo", SLP_StoreChain1.Text.Trim());
                        htTemp.Add("Store", SLP_Store1.Text.Trim());
                        htTemp.Add("ROOT_NO", dtMultiSaveClassAndItem.Rows[i]["ROOT_NO"].ToString().Trim());
                        htTemp.Add("PMA", dtMultiSaveClassAndItem.Rows[i]["PMA"].ToString().Trim());

                        if (dtMultiSaveClassAndItem.Rows[i]["PATTERN"].ToString().Trim() == "")
                        {
                            htTemp.Add("PATTERN_NO", null);
                        }
                        else
                        {
                            htTemp.Add("PATTERN_NO", dtMultiSaveClassAndItem.Rows[i]["PATTERN"].ToString().Trim());
                        }

                        if (CheckPATTERNSPECExist(htTemp))
                        {
                            strCode = string.Format("{0}_{1}_{2}_{3}_{4}",
                            SLP_StoreChain1.Text.Trim(), SLP_Store1.Text.Trim(),
                            dtMultiSaveClassAndItem.Rows[i]["ROOT_NO"].ToString().Trim(),
                            dtMultiSaveClassAndItem.Rows[i]["PMA"].ToString().Trim(),
                            dtMultiSaveClassAndItem.Rows[i]["PATTERN"].ToString().Trim());

                            htParams.Clear();
                            htParams.Add("CODE", strCode);
                            htParams.Add("UserID", Session["UID"].ToString());
                            htParams.Add("ChanNO", SLP_StoreChain1.Text.Trim());
                            htParams.Add("STORE", SLP_Store1.Text.Trim());
                            htParams.Add("ROOT_NO", dtMultiSaveClassAndItem.Rows[i]["ROOT_NO"].ToString().Trim());
                            htParams.Add("PMA", dtMultiSaveClassAndItem.Rows[i]["PMA"].ToString().Trim());
                            htParams.Add("PATTERN_NO", dtMultiSaveClassAndItem.Rows[i]["PATTERN"].ToString().Trim());
                            htParams.Add("SPEC_TYPE", getSpecTypeChecked());
                            htParams.Add("SPEC_QTY", SLP_Number1.Text.Trim());
                            htParams.Add("S_START_DATE", SLP_SLPDate2.Text.Trim());
                            htParams.Add("S_END_DATE", SLP_SLPDate3.Text.Trim());
                            htParams.Add("REASON", strReason.Trim());

                            iResult = BCO.CreateMasterAndDetail(htParams, dtForUpdate, null);
                        }
                        #endregion
                    }

                    if (strErrMsgAfterChecked != "")
                    {
                        ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "ClientScript", string.Format("alert('{0}');", strErrMsgAfterChecked), true);
                    }

                    if (iResult == 0)
                    {
                        throw new Exception("新增0筆資料!");
                    }
                    else
                    {
                        if (dtForUpdate != null)
                            dtForUpdate.AcceptChanges();

                        dtDetailData = dtForUpdate;
                        dtForDetailDeleted.Clear();
                        ScriptManager.RegisterStartupScript(UpdatePanel2, this.GetType(), "ClientScript", string.Format("alert('新增完成');location.replace('ALO081.aspx?Code=ALO08&ChanNo={0}&Store={1}');", SLP_StoreChain1.Text, SLP_Store1.Text), true);
                    }
                    #endregion
                }
            }
            else
            {
                ScriptManager.RegisterStartupScript(UpdatePanel2, this.GetType(), "ClientScript", "alert('請先加入商品');", true);
            }
        }
        catch (Exception ex)
        {
            ErrorMsgLabel.Text = ex.Message;
        }
        #endregion
    }
Пример #2
0
    protected void btn_Save_Click(object sender, EventArgs e)
    {
        #region
        if (CurrentPageMode == PageCurrentMode.Edit)
        {
            #region
            bool bResult = false;

            try
            {
                if (CheckSpecTypeAndValue() && CheckDetailDataIsNotNull())
                {
                    #region 取得畫面元件的值


                    DateTime processtime = DateTime.Now;
                    #endregion

                    #region 取得更新前舊值

                    if (dtForMaster == null || dtForMaster.Rows.Count == 0)
                    {
                        throw new Exception("抓取不到舊值,更新失敗!");
                    }


                    #endregion
                    DataTable dtForUpdate = dtDetailData.GetChanges();


                    DataTable dtMaster = dtForMaster;
                    string strUID = Session["UID"].ToString();

                    #region Master
                    htParams.Clear();
                    for (Int32 i = 0; i <= dtMaster.Rows.Count - 1; i++)
                    {
                        if (dtMaster.Rows[i].RowState != DataRowState.Deleted)
                        {
                            htParams.Add("ID", dtMaster.Rows[i]["ID"]);
                            htParams.Add("CODE", dtMaster.Rows[i]["CODE"]);
                            htParams.Add("CREATEDATE", dtMaster.Rows[i]["CREATEDATE"]);
                            htParams.Add("CREATEUID", dtMaster.Rows[i]["CREATEUID"]);
                            htParams.Add("UPDATEDATE", dtMaster.Rows[i]["UPDATEDATE"]);
                            htParams.Add("UPDATEUID", dtMaster.Rows[i]["UPDATEUID"]);
                            htParams.Add("ENABLE", dtMaster.Rows[i]["ENABLE"]);
                            htParams.Add("ChanN0", dtMaster.Rows[i]["CHAN_NO"]);
                            htParams.Add("STORE", dtMaster.Rows[i]["STORE"]);
                            htParams.Add("SPEC_TYPE", dtMaster.Rows[i]["SPEC_TYPE"]);
                            htParams.Add("SPEC_QTY", dtMaster.Rows[i]["SPEC_QTY"]);
                            htParams.Add("S_START_DATE", dtMaster.Rows[i]["S_START_DATE"]);
                            htParams.Add("S_END_DATE", dtMaster.Rows[i]["S_END_DATE"]);
                            htParams.Add("REASON", dtMaster.Rows[i]["REASON"]);
                            htParams.Add("ROOT_NO", dtMaster.Rows[i]["ROOT_NO"]);
                            htParams.Add("PMA", dtMaster.Rows[i]["PMA"]);
                            htParams.Add("PATTERN_NO", dtMaster.Rows[i]["PATTERN_NO"]);

                            //新的資料                
                            htParams.Add("NEW_UPDATEDATE", processtime);
                            htParams.Add("NEW_UPDATEUID", strUID);
                            htParams.Add("NEW_SPEC_TYPE", getSpecTypeChecked());
                            htParams.Add("NEW_SPEC_QTY", SLP_Number1.Text.Trim());
                            htParams.Add("NEW_S_START_DATE", SLP_SLPDate2.Text.Trim());
                            htParams.Add("NEW_S_END_DATE", SLP_SLPDate3.Text.Trim());
                            htParams.Add("NEW_REASON", strReason.Trim());

                            break;
                        }
                    }

                    htParams.Add("PIDForLog", dtMaster.Rows[0]["ID"]);
                    htParams.Add("UIDForLog", dtMaster.Rows[0]["CREATEUID"]);



                    #endregion

                    ALOModel.MaintainPatternSpec BCO = new ALOModel.MaintainPatternSpec(ConnectionDB);

                    bResult = BCO.UpdateMasterAndDetail(htParams, dtForUpdate, strUID, dtForDetailDeleted, null);

                    if (!bResult)
                    {
                        throw new Exception("更新0筆資料!");
                    }
                    else
                    {
                        dtDetailData.AcceptChanges();
                        dtForDetailDeleted.Clear();
                        //ScriptManager.RegisterStartupScript(UpdatePanel1, this.GetType(), "ClientScript", "alert('更改完成');", true);
                        ResultMsgLabel.Text = "更改完成";
                        QueryData();
                        CurrentPageMode = PageCurrentMode.Readonly;
                    }

                }
            }
            catch (Exception ex)
            {
                ErrorMsgLabel.Text = ex.Message;
            }
            #endregion
        }
        else if (CurrentPageMode == PageCurrentMode.Insert)
        {
            #region
            Int32 iResult = 0;

            try
            {
                htTemp.Clear();
                htTemp.Add("ChanNo",SLP_StoreChain2.Text.Trim());
                htTemp.Add("Store", SLP_Store2.Text.Trim());
                htTemp.Add("StartDate", SLP_SLPDate2.Text.Trim());
                htTemp.Add("EndDate", SLP_SLPDate3.Text.Trim());

                if (CheckSpecTypeAndValue() && CheckItemClassValid() && CheckDetailDataIsNotNull() && CheckPATTERNSPECCanAdd(htTemp))
                {
                    #region

                    htTemp.Clear();
                    htTemp.Add("ChanNo", SLP_StoreChain2.Text.Trim());
                    htTemp.Add("Store", SLP_Store2.Text.Trim());
                    htTemp.Add("ROOT_NO", SLP_RootNo2.Text.Trim());
                    htTemp.Add("PMA", SLP_PMA3.Text.Trim());

                    if (SLP_Pattern3.Text.Trim() == "")
                    {
                        htTemp.Add("PATTERN_NO", null);
                    }
                    else
                    {
                        htTemp.Add("PATTERN_NO", SLP_Pattern3.Text.Trim());
                    }

                    if (CheckPATTERNSPECExist(htTemp))
                    {
                        DataTable dtForUpdate = dtDetailData;//.GetChanges(DataRowState.Added);

                        #region Master
                        string strCode = string.Format("{0}_{1}_{2}_{3}_{4}",
                         SLP_StoreChain2.Text.Trim(), SLP_Store2.Text.Trim(), SLP_RootNo2.Text.Trim(), SLP_PMA3.Text.Trim(), SLP_Pattern3.Text.Trim());

                        htParams.Clear();
                        htParams.Add("CODE", strCode);
                        htParams.Add("UserID", Session["UID"].ToString());
                        htParams.Add("ChanNO", SLP_StoreChain2.Text.Trim());
                        htParams.Add("STORE", SLP_Store2.Text.Trim());
                        htParams.Add("ROOT_NO", SLP_RootNo2.Text.Trim());
                        htParams.Add("PMA", SLP_PMA3.Text.Trim());
                        htParams.Add("PATTERN_NO", SLP_Pattern3.Text.Trim());
                        htParams.Add("SPEC_TYPE", getSpecTypeChecked());
                        htParams.Add("SPEC_QTY", SLP_Number1.Text.Trim());
                        htParams.Add("S_START_DATE", SLP_SLPDate2.Text.Trim());
                        htParams.Add("S_END_DATE", SLP_SLPDate3.Text.Trim());
                        htParams.Add("REASON", strReason.Trim());

                        #endregion

                        ALOModel.MaintainPatternSpec BCO = new ALOModel.MaintainPatternSpec(ConnectionDB);

                        iResult = BCO.CreateMasterAndDetail(htParams, dtForUpdate, null);

                        if (iResult == 0)
                        {
                            throw new Exception("新增0筆資料!");
                        }
                        else
                        {
                            if (dtForUpdate != null)
                                dtForUpdate.AcceptChanges();

                            dtDetailData = dtForUpdate;
                            dtForDetailDeleted.Clear();
                            //ScriptManager.RegisterStartupScript(UpdatePanel1, this.GetType(), "ClientScript", "alert('新增完成');", true);
                            ResultMsgLabel.Text = "新增完成";
                            QueryData();
                            CurrentPageMode = PageCurrentMode.Readonly;

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