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 }
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 }
/// <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("尚無前一期到前六期的資料!"); } }