Esempio n. 1
0
    protected void btn_Save_Click(object sender, EventArgs e)
    {
        #region
        try
        {
            ErrorMsgLabel.Text = "";
            ResultMsgLabel.Text = "";
            hiddenErrMsg.Value = "";

            DateTime ProcessingDateTime = DateTime.Now;

            string strItem = SLP_SKU1.Text;
            string strPeriod = SLP_ItemPeriod1.Text;
            string strDisType = SLP_PARAM1.Text;
            string strDisDate = SLP_SLPDate1.Text;
            string strStAcceptDate = SLP_SLPDate2.Text;
            string strUserId = Session["UID"].ToString();
            string strErrMsgTmp = "";
            #region


            if (!GetItemPeriodDisStateByItemPeriod(strItem, strPeriod, strStAcceptDate, out strErrMsgTmp))
            {
                ErrorMsgLabel.Text = strErrMsgTmp;
                return;
            }

            //如果Rank類別=109 且未設定pattern等級設定則不繼續執行
            if (strDisType == "109" && (dtDisTypeTmp109 == null || dtDisTypeTmp109.Rows.Count <= 0))
            {
                ErrorMsgLabel.Text = "無設定等級資料,請確認配本方式或重新設定";
                return;
            }

            SetDisTmpRec(strDisDate, strStAcceptDate, strItem, strPeriod, strDisType, strUserId, ProcessingDateTime);
            SetDisMain(strDisDate, strStAcceptDate, strUserId, ProcessingDateTime);
            SetDisItem(strItem, strPeriod, strDisType, strUserId, ProcessingDateTime);
            SetDisChan(strItem, strPeriod, strStAcceptDate, strDisType, strUserId, ProcessingDateTime);

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

            //當為新增模式時,或編輯模式下改變配本方式
            if (CurrentPageMode == PageCurrentMode.Insert || (CurrentPageMode == PageCurrentMode.Edit && s_DIS_TYPE_Original != strDisType))
            {
                if (strDisType == "101" || strDisType == "103" || strDisType == "104")
                {
                    dtDisItemRefer = BCO.QueryDisItemReferByDisType(dtParam, dtDisItem, strDisType, strItem, strPeriod, vItemReferCount);

                    currentGvMode = CurrentGridviewMode.View;
                    gv_ItemRefer.DataSource = dtDisItemRefer;
                    gv_ItemRefer.DataBind();
                    hiddenDtDisItemReferCounts.Value = dtDisItemRefer.Rows.Count.ToString();
                    CalculateReferRateSum();

                    ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "", string.Format("SwitchControlDisplay('{0}','{1}',1);", Panel_ItemRefer.ClientID, hiddenItemReferDisplayMode.ClientID), true);
                }
            }

            SetDisItemRefer(strUserId, ProcessingDateTime);
            #endregion

            if (CurrentPageMode == PageCurrentMode.Insert)
            {
                #region

                ALOModel.ALOCommon BCOCommon = new ALOModel.ALOCommon();
                System.Data.Common.DbTransaction DBT = BCOCommon.OpenAndGetConnection(ConnectionDB).BeginTransaction();
                try
                {
                    string strDisNo = BCO.CreateDisRecordFor131(dtDisTmpRec, dtDisMain, dtDisItem, dtDisChan, dtDisItemRefer, dtDisTypeTmp109, dtDisTypeTmp, strItem, strPeriod, strUserId, DBT);

                    if (strDisNo != "")
                    {
                        ALOModel.MaintainDisTmpRec BCO2 = new ALOModel.MaintainDisTmpRec(ConnectionDB);
                        BCO2.CreateDisTmpRec(dtDisTmpRec, strDisNo, DBT);
                    }


                    DBT.Commit();//交易成功

                }
                catch (Exception ex)
                {
                    DBT.Rollback();//交易失敗
                    throw ex;
                }

                QueryData();

                ResultMsgLabel.Text = "新增成功";
                #endregion
            }
            else if (CurrentPageMode == PageCurrentMode.Edit)
            {
                #region

                SetPrimaryKeyForDataTable();

                ALOModel.ALOCommon BCOCommon = new ALOModel.ALOCommon();
                System.Data.Common.DbTransaction DBT = BCOCommon.OpenAndGetConnection(ConnectionDB).BeginTransaction();
                try
                {

                    bool bResult = BCO.UpdateDisRecordFor131(dtDisTmpRec, dtDisTmpRecOld,
                      dtDisMain, dtDisMainOld, dtDisItem, dtDisItemOld,
                      dtDisChan, dtDisChanOld, dtDisItemRefer, dtDisItemReferOld,
                      dtDisTypeTmp109, dtDisType109TmpOld,
                      dtDisTypeTmp, dtDisTypeTmpOld, null, s_DISNO, strItem, strPeriod, strUserId, strStAcceptDate, DBT);

                    if (bResult)
                    {
                        ALOModel.MaintainDisTmpRec BCO2 = new ALOModel.MaintainDisTmpRec(ConnectionDB);
                        BCO2.UpdateDisTmpRec(dtDisTmpRec, dtDisTmpRecOld, s_DISNO, DBT);
                    }


                    DBT.Commit();//交易成功

                }
                catch (Exception ex)
                {
                    DBT.Rollback();//交易失敗
                    throw ex;
                }

                QueryData();

                ResultMsgLabel.Text = "更新成功";
                #endregion
            }

            ScriptManager.RegisterStartupScript(this, this.GetType(), "SwitchControlDisplay", string.Format("SwitchControlDisplay('{0}','{1}',0);", Panel_AddNewItem.ClientID, hiddenDisplayMode.ClientID), true);

            SwitchSaveCancelButton(false);

        }
        catch (Exception ex)
        {
            ErrorMsgLabel.Text = ex.Message;
        }
        #endregion
    }
Esempio n. 2
0
    protected void btn_ConfirmItemRefer_Click(object sender, EventArgs e)
    {
        #region


        DateTime ProcessingDateTime = DateTime.Now;
        string strItem = SLP_SKU1.Text;
        string strPeriod = SLP_ItemPeriod1.Text;
        string strDisType = SLP_PARAM1.Text;
        string strDisTypeName = SLP_PARAM1.TextBox_Name.Text;
        string strUserId = Session["UID"].ToString();


        if (hiddenDtDisItemReferCounts.Value != "0" && hiddenItemReferRateSum.Value != "100")
        {
            ErrorMsgLabel.Text = "參照比率%合計需為100%";
            ScriptManager.RegisterStartupScript(this, this.GetType(), "", "$get('ctl00_CPH_TabContainer1_TabPanel1_btn_ConfirmItemRefer').disabled=false", true);
            //ScriptManager.RegisterStartupScript(this, this.GetType(), "", "$get('ctl00_CPH_TabContainer1_TabPanel1_btn_SaveDisSetting').disabled=true", true);
            btn_SaveDisSetting.Enabled = false;
            return;
        }

        if (strDisType == "109" && (dtDisTypeTmp109 == null || dtDisTypeTmp109.Rows.Count <= 0))
        {
            //如果Rank類別=109 且未設定pattern等級設定則不繼續執行
            ErrorMsgLabel.Text = "無設定等級資料,請確認配本方式或重新設定";
            ScriptManager.RegisterStartupScript(this, this.GetType(), "", "$get('ctl00_CPH_TabContainer1_TabPanel1_btn_ConfirmItemRefer').disabled=false", true);
            //ScriptManager.RegisterStartupScript(this, this.GetType(), "", "$get('ctl00_CPH_TabContainer1_TabPanel1_btn_SaveDisSetting').disabled=true", true);
            btn_SaveDisSetting.Enabled = false;
            return;
        }


        SetDisItem(strItem, strPeriod, strDisType, strUserId, ProcessingDateTime);

        CurrentEditingGridview = EditingGridview.None;
        currentGvMode = CurrentGridviewMode.View;

        
        //當為新增模式時,或編輯模式下改變配本方式
        if (CurrentPageMode == PageCurrentMode.Insert || (CurrentPageMode == PageCurrentMode.Edit && s_DIS_TYPE_Original != strDisType))
        {
            if (strDisType == "101" || strDisType == "103" || strDisType == "104")
            {
                ALOModel.MaintainDisRecord BCO = new ALOModel.MaintainDisRecord(ConnectionDB);
                dtDisItemRefer = BCO.QueryDisItemReferByDisType(dtParam, dtDisItem, strDisType, strItem, strPeriod, vItemReferCount);
                gv_ItemRefer.DataSource = dtDisItemRefer;
                gv_ItemRefer.DataBind();
            }
            else if (strDisType == "110")
            {
                for (Int32 i = dtDisItemRefer.Rows.Count - 1; i >= 0; i--)
                {
                    dtDisItemRefer.Rows.RemoveAt(i);
                }
                gv_ItemRefer.DataBind();
            }
        }

        CalculateReferRateSum();

        hiddenDtDisItemReferCounts.Value = dtDisItemRefer.Rows.Count.ToString();

        #region
        if (dtDisChan != null)
        {
            for (Int32 i = 0; i <= dtDisChan.Rows.Count - 1; i++)
            {
                dtDisChan.Rows[i]["DIS_TYPE"] = strDisType;
                dtDisChan.Rows[i]["DIS_TYPE_NAME"] = strDisTypeName;
            }
        }

        gv_Chan.DataSource = dtDisChan;
        gv_Chan.DataBind();

        hiddenChanReferCounts.Value = dtDisChan.Rows.Count.ToString();

        UpdatePanel1.Update();

        #endregion

        s_DIS_TYPE_Original = SLP_PARAM1.Text.Trim();

        ResultMsgLabel.Text = "確認參照資料完成";

        ConfirmItemReferPressed = true;

        SwitchUIControlsEnabled(true, true, false);

        #endregion
    }
Esempio n. 3
0
    /// <summary>
    /// 處理配本方式為前期比例(101)、實績加重(103)、移行指數(104)
    /// </summary>
    private void Call101_103_104Process()
    {
        DataTable Dt2 = new DataTable();
        ALOModel.MaintainDisRecord MDR = new ALOModel.MaintainDisRecord(ConnectionDB);

        #region 抓取dtParam

        //Session名稱
        SeesionIDAndParam = "ALO111ItemParam_" + PageTimeStamp.Value;

        DataTable dtParam = (DataTable)Session[SeesionIDAndParam];

        #endregion

        #region 抓取前一期到前六期的資料

        string[] Period = B1ToB6PeriodHidden.Value.Split(',');

        #endregion

        if (Period.Length > 0)
        {
            DataSet Ds = new DataSet();

            DataTable resultDt = MDR.QueryDisItemReferByDisType(dtParam,
                                                                Period[0],
                                                                Period[1],
                                                                Period[2],
                                                                Period[3],
                                                                Period[4],
                                                                Period[5],
                                                                SLP_PARAM1.Text,
                                                                SLP_SKU1.Text,
                                                                SLP_ItemPeriod1.Text,
                                                                int.Parse(PARAMRefItemCountHidden.Value)
                                                                );

            if (resultDt.DataSet == null)
            {
                Ds.Tables.Add(resultDt);
            }

            XML_RefItemList.InnerHtml = resultDt.DataSet.GetXml();

            GridView_RefItemList.DataSource = resultDt;
            GridView_RefItemList.DataBind();

            RefItemListCountHidden.Value = resultDt.Rows.Count.ToString();

        }
        else
        {
            throw new Exception("尚無前一期到前六期的資料!");
        }


    }