Example #1
0
    /// <summary>
    /// UP BUTTON 存檔鈕

    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void but_up_Save_Click(object sender, EventArgs e)
    {
        try
        {
            System.Text.StringBuilder sb = new System.Text.StringBuilder();
            sb.Remove(0, sb.Length);

            #region 檢查所有必填欄位是否為空值


            if (this.slp_up_CHAN_NO.Text.Trim() == string.Empty)
            { sb.Append("[通路]欄位為必填欄位\\r\\n"); }
            if (this.slp_up_STORE.Text.Trim() == string.Empty)
            { sb.Append("[門市]欄位為必填欄位\\r\\n"); }
            if (this.slp_up_Z_O.Text.Trim() == string.Empty)
            { sb.Append("[營業所]欄位為必填欄位\\r\\n"); }
            if (this.slp_up_BUSDATE.Text.Trim() == string.Empty)
            { sb.Append("[訂單日期]欄位為必填欄位\\r\\n"); }
            if (this.slp_up_SALE_ID.Text.Trim() == string.Empty)
            { sb.Append("[營業人員]欄位為必填欄位\\r\\n"); }
            if (this.slp_up_BUSUID.Text.Trim() == string.Empty)
            { sb.Append("[訂單維護者]欄位為必填欄位\\r\\n"); }
            if (this.drop_up_ORDER_TYPE.Text == string.Empty)
            { sb.Append("[訂單來源]欄位為必填欄位\\r\\n"); }
            if (this.txt_up_CODE.Text.Trim() == string.Empty)
            { sb.Append("[訂單編號]欄位為必填欄位\\r\\n"); }
            //if (this.txt_up_CRM_NO.Text.Trim() == string.Empty)
            //{ sb.Append("[流水編號]欄位為必填欄位\\r\\n"); }
            if (GetStringLen(txt_up_PO_SOURCE_NO.Text.Trim()) > 20)
            { sb.Append("[PO單號預設]欄位輸入資料長度過長\\r\\n"); }

            if (sb.ToString() != string.Empty)
            {
                ScriptManager.RegisterStartupScript(this.up_Up_Button, typeof(UpdatePanel), "CRM041", "alert('" + sb.ToString() + "');", true);
                return;
            }

            #endregion

            #region 檢查是否有明細資料


            int i_dt_Detail_Count = 0;
            if (dt_Detail != null)
            {
                if (dt_Detail.GetChanges(DataRowState.Deleted) == null)
                { i_dt_Detail_Count = dt_Detail.Rows.Count; }
                else
                { i_dt_Detail_Count = dt_Detail.Rows.Count - dt_Detail.GetChanges(DataRowState.Deleted).Rows.Count; }
            }

            if (dt_Detail == null || i_dt_Detail_Count == 0)
            { sb.Append("無明細資料"); }

            if (sb.ToString() != string.Empty)
            {
                ScriptManager.RegisterStartupScript(this.up_Up_Button, typeof(UpdatePanel), "CRM041", "alert('" + sb.ToString() + "');", true);
                return;
            }

            #endregion

            int i_Id = 0;
            BCO.RecordCRMOrder bco = new BCO.RecordCRMOrder(ConntionDB);
            ArrayList ParameterList = new ArrayList();//20091117

            if (this.hid_PageStatus.Value == "INSERT")
            {
                #region 儲存新增資料

                DateTime d_Now = DateTime.Now;

                ParameterList.Clear();
                ParameterList.Add(GetValueSetParameter(this.slp_up_BUSDATE.Text, "date"));//訂單日期
                ParameterList.Add(GetValueSetParameter(this.slp_up_BUSUID.Text, "string"));//訂單維護者

                ParameterList.Add(d_Now);//CREATEDATE
                ParameterList.Add(Session["UID"].ToString());//CREATEUID
                ParameterList.Add(d_Now);//UPDATEDATE
                ParameterList.Add(Session["UID"].ToString());//UPDATEUID
                ParameterList.Add(25);//結案狀態(Status)=25(未結案)
                ParameterList.Add(1);//ENABLE
                ParameterList.Add(GetValueSetParameter(this.txt_up_CRM_NO.Text, "string"));//流水編號
                ParameterList.Add(GetValueSetParameter(this.slp_up_CHAN_NO.Text, "string"));//通路
                ParameterList.Add(GetValueSetParameter(this.slp_up_STORE.Text, "string"));//門市

                ParameterList.Add(System.DBNull.Value);//CLOSE_DATE
                ParameterList.Add(GetValueSetParameter(this.txt_up_PO_SOURCE_NO.Text, "string"));//PO單號預設
                ParameterList.Add(GetValueSetParameter(this.drop_up_ORDER_TYPE.Text, "int"));//訂單來源
                ParameterList.Add(Session["UID"].ToString());//建立單位(Create_Role)= [@登入者]所屬角色

                ParameterList.Add(Session["UID"].ToString());

                i_Id = bco.CreateCRMOrder(ParameterList, null, dt_Detail);

                #endregion
            }
            else if (this.hid_PageStatus.Value == "EDIT")
            {
                i_Id = int.Parse(dt_Master.Rows[0]["ID"].ToString());

                #region 取得異動資料

                DataTable dt_Detail_Changes_Delete = new DataTable();
                DataTable dt_Detail_Changes_Add = new DataTable();
                DataTable dt_Detail_Changes_Modify = new DataTable();

                dt_Detail_Changes_Delete = dt_Detail.GetChanges(DataRowState.Deleted);
                dt_Detail_Changes_Add = dt_Detail.GetChanges(DataRowState.Added);
                dt_Detail_Changes_Modify = dt_Detail.GetChanges(DataRowState.Modified);

                #endregion

                #region 將異動資料寫入資料庫

                ParameterList.Clear();
                ParameterList.Add(Session["UID"].ToString());
                ParameterList.Add(DateTime.Now);
                ParameterList.Add(i_Id);

                bco.UpdateCRMOrder(ParameterList, null, dt_Detail_Changes_Delete, dt_Detail_Changes_Add, dt_Detail_Changes_Modify, dt_Detail_Original);

                #endregion
            }

            #region 清空靜態變數

            // dtChainPOSetting = null;//異動欄位[門市]

            dtStock = null;//異動欄位[期別]
            s_PMA = string.Empty;//大分類(異動欄位[品號/品名])
            s_ROOT_NO = string.Empty;//群分類(異動欄位[品號/品名])
            s_SRC_LOCATE_TYPE = string.Empty;//建議儲區類別(異動欄位[訂貨量])

            dt_Detail = null;
            //Session["CRM041_dt_Detail" + PageTimeStamp.Value] = null;
            dt_Master = null;
            dt_Detail_Original = null;

            #endregion

            #region 重新從資料庫抓取資料

            DataSet ds_Return = new DataSet();

            ParameterList.Clear();
            ParameterList.Add(i_Id);
            ParameterList.Add(Session["UID"].ToString());

            ds_Return = bco.QUERY_CRM041_MAIN_AND_DETL(ParameterList);

            dt_Master = ds_Return.Tables["VDS_CRM_ORDER_MAIN"].Copy();
            dt_Detail = ds_Return.Tables["VDS_CRM_ORDER_DETL"].Copy();
            //Session["CRM041_dt_Detail" + PageTimeStamp.Value] = dt_Detail;
            dt_Detail_Original = ds_Return.Tables["VDS_CRM_ORDER_DETL"].Copy();

            ds_Return.Clear();
            ds_Return.Dispose();

            #endregion

            #region 檢查今日該門市是否已有訂單擷轉記錄


            if (this.hid_PageStatus.Value == "INSERT")
            {
                ParameterList.Clear();
                ParameterList.Add(GetValueSetParameter(this.slp_up_BUSDATE.Text, "date"));//訂單擷轉日(放系統日)
                ParameterList.Add(GetValueSetParameter(this.slp_up_CHAN_NO.Text, "string"));//通路
                ParameterList.Add(GetValueSetParameter(this.slp_up_STORE.Text, "string"));//門市

                ParameterList.Add(Session["UID"].ToString());

                BCO.MaintainCRMOrderTransfer bco_Transfer = new BCO.MaintainCRMOrderTransfer(ConntionDB);
                if (bco_Transfer.QueryCountsByStore(ParameterList) > 0)
                {
                    sb.Append("當天訂單已結轉,到店時間將會延後");
                    ScriptManager.RegisterStartupScript(this.up_Up_Button, typeof(UpdatePanel), "CRM041", "alert('" + sb.ToString() + "');", true);
                }
            }

            #endregion

            #region 寫入訊息

            if (this.hid_PageStatus.Value == "INSERT")
            { this.RightMsgLabel.Text = "新增成功"; }
            else if (this.hid_PageStatus.Value == "EDIT")
            { this.RightMsgLabel.Text = "修改儲存成功"; }


            #endregion

            #region 新增後處理


            this.hid_PageStatus.Value = "VIEW";
            this.txt_PageStatus.Text = "VIEW";
            SetPageStatus();

            #endregion

            #region 將資料寫入頁面


            #region MAIN

            this.slp_up_CHAN_NO.Text = dt_Master.Rows[0]["CHAN_NO"].ToString();//通路
            this.slp_up_STORE.Text = dt_Master.Rows[0]["STORE"].ToString();//門市

            this.slp_up_Z_O.Text = dt_Master.Rows[0]["Z_O"].ToString();//營業所
            this.slp_up_BUSDATE.Text = dt_Master.Rows[0]["BUSDATE"].ToString();//訂單日期
            this.slp_up_SALE_ID.Text = dt_Master.Rows[0]["SAL_ID"].ToString();//營業人員
            this.slp_up_BUSUID.Text = dt_Master.Rows[0]["BUSUID"].ToString();//訂單維護者

            this.drop_up_ORDER_TYPE.Text = dt_Master.Rows[0]["ORDER_TYPE"].ToString();//訂單來源
            this.txt_up_PO_SOURCE_NO.Text = dt_Master.Rows[0]["PO_SOURCE_NO"].ToString();//PO單號預設
            this.txt_up_CODE.Text = dt_Master.Rows[0]["CODE"].ToString();//訂單編號
            this.txt_up_CRM_NO.Text = dt_Master.Rows[0]["CRM_NO"].ToString();//流水編號

            //記錄靜態變數 門市、通路
            s_CHAN_NO = this.slp_up_CHAN_NO.Text;
            s_STORE = this.slp_up_STORE.Text;

            #endregion

            #region DETL

            this.gv_Detail.DataSource = dt_Detail;
            this.gv_Detail.PageSize = 10;
            this.gv_Detail.PageIndex = 0;
            this.gv_Detail.DataBind();
            Panel1.Height = gv_Detail.Rows.Count * 45 + 60;

            #endregion

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