#region 功能说明 /* * 参数说明: * 注意事项: * 更新记录: */ #endregion using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using GThinking.N_MISPRO; using GThinking.N_MISPRO.Data; using GThinking.N_MODEL.Page; using GThinking.N_MISPRO.Utility; using GThinking.N_PUBLIC; using GThinking.N_MODEL.Dialog; using GThinking.N_MISPRO.TableCache; using System.Collections.Generic; using GThinking.N_MISPRO.Caching; namespace GThinking.N_XLXSBJ { public partial class TZYZJJInfo : SingleCardBase { XLXSTZYZ entity = new XLXSTZYZ(); #region Page类事件继承 protected void Page_Load(object sender, EventArgs e) { this.UMID = 100860004; this.UMName = "线缆销售报价价格表调价因子"; this.CurMaster = Master; this.CurEntity = entity; this.PageHeight = 400; this.PageWidth = 550; this.Master.EnableInsertBtn = false; this.Master.EnableCopyBtn = false; this.Master.EnableDeleteBtn = false; if (!this.IsPostBack) { InitControls(); } base.InitPage(); } #endregion #region 模板事件继承 protected override void SetControlState() { base.SetControlState(); txtWHR.Enabled = false; datWHSJ.Enabled = false; txtYZID.Enabled = false; cbxMXBH.Enabled = false; cbxTYZZFS.Enabled = false; if (cbxJJFS.SelectedValue.Trim().Equals("SX") || cbxTJYS.SelectedValue.Trim().Equals("")) { chkFGQCP.Enabled = false; } if ((!cbxTJYS.SelectedValue.Trim().Equals("1")) || (!cbxJJFS.SelectedValue.Trim().Equals("JJ"))) { cbxBJCLID.Enabled = false; } if (!cbxTJYS.SelectedValue.Trim().Equals("1") && !cbxTJYS.SelectedValue.Trim().Equals("4") && !cbxTJYS.SelectedValue.Trim().Equals("8") && !cbxTJYS.SelectedValue.Trim().Equals("9")) cbxMRTBYZ.Enabled = false; if (ControlState != TControlState.ctsBrowse) { if (YZIDisUsed(txtYZID.Text.Trim())) cbxTJLX.Enabled = false; else cbxTJLX.Enabled = true; } if (ControlState == TControlState.ctsEdit) { if (cbxTJLX.SelectedValue.Trim().Equals("2"))//调因子值 { cbxTYZZYZID.Enabled = false; } else//调价格 { cbxTYZZYZID.Enabled = true; } } } protected override void LoadRecord() { if (!IsPostBack) { if (string.IsNullOrEmpty(PageParam.GetRTrimString("XLXSTZYZ_MXBH"))) { entity.Param.Add("OLD_XLXSTZYZ_MXBH", ""); } else { entity.Param.Add("OLD_XLXSTZYZ_MXBH", PageParam.GetRTrimString("XLXSTZYZ_MXBH")); } if (string.IsNullOrEmpty(PageParam.GetRTrimString("XLXSTZYZ_YZID"))) { entity.Param.Add("OLD_XLXSTZYZ_YZID", ""); } else { entity.Param.Add("OLD_XLXSTZYZ_YZID", PageParam.GetRTrimString("XLXSTZYZ_YZID")); } } else { entity.Param.Add("OLD_XLXSTZYZ_MXBH", txtOLD_MXBH.Value); entity.Param.Add("OLD_XLXSTZYZ_YZID", txtOLD_YZID.Value); } base.LoadRecord(); txtOLD_MXBH.Value = cbxMXBH.Text.Trim(); txtOLD_YZID.Value = txtYZID.Text.Trim(); txtOLD_YZMC.Value = txtYZMC.Text.Trim(); txtOLD_TJYZID.Value = cbxTJYZID.SelectedValue.Trim(); txtOLD_TYZZYZID.Value = cbxTYZZYZID.SelectedValue.Trim(); txtOLD_JJFS.Value = cbxJJFS.SelectedValue.Trim(); } protected override void OnNewRecorder() { base.OnNewRecorder(); cbxMXBH.Text = "JZJ"; txtXSXH.Value = getNewXH(); txtWHR.Text = tSession.UserName; txtWHRID.Value = tSession.UserId; datWHSJ.Text = CMISproConvert.ConvertTime(DateTime.Now); cbxTJYS.SelectedValue = " "; cbxTJLX.SelectedValue = "1"; } protected override void OnCopyRecorder() { base.OnCopyRecorder(); cbxMXBH.Text = "JZJ"; txtXSXH.Value = getNewXH(); txtWHR.Text = tSession.UserName; txtWHRID.Value = tSession.UserId; datWHSJ.Text = CMISproConvert.ConvertTime(DateTime.Now); } protected override bool DataLogicValid() { if (!base.DataLogicValid()) return false; TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL sql = new TSQL(dberp); sql.Clear(); if ((ControlState == TControlState.ctsInsert) || (ControlState == TControlState.ctsCopy)) { if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from XLXSTZYZ where XLXSTZYZ_MXBH='{0}' and XLXSTZYZ_YZID='{1}' ", cbxMXBH.Text, txtYZID.Text.Trim()))) { ShowMessage("已存在编号相同的记录,不允许保存!"); return false; } if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from XLXSTZYZ where XLXSTZYZ_MXBH='{0}' and XLXSTZYZ_YZMC='{1}' ", cbxMXBH.Text, txtYZMC.Text.Trim()))) { ShowMessage("调价因子名称已存在,不允许保存!"); return false; } } if (ControlState == TControlState.ctsEdit) { if (!txtYZMC.Text.Trim().Equals(txtOLD_YZMC.Value.Trim())) { if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from XLXSTZYZ where XLXSTZYZ_MXBH='{0}' and XLXSTZYZ_YZMC='{1}' ", cbxMXBH.Text, txtYZMC.Text.Trim()))) { ShowMessage("调价因子名称已存在,不允许保存!"); return false; } } } if (cbxJGBID.ItemsCount > 0) { if (cbxJGBID.SelectedValue.Trim().Equals("")) { ShowMessage("调价表为空,不允许保存!"); return false; } } if (chkYZZBT.Checked && chkFGQCP.Checked) { ShowMessage("“因子值不为0”与“覆盖全产品”不能同时勾选!"); return false; } if (!cbxBJCLID.SelectedValue.Trim().Equals("")) { if ((!cbxTJYS.SelectedValue.Trim().Equals("1")) || (!cbxJJFS.SelectedValue.Trim().Equals("JJ"))) { ShowMessage("调价因素为1且调价方式为“加价(元)”时才可以指定报价材料!"); return false; } } if (!cbxTJYZID.SelectedValue.Trim().Equals(txtYZID.Text.Trim())) { if (!CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from XLXSTZYZ where XLXSTZYZ_YZID='{0}' and XLXSTZYZ_JJFS='{1}'", cbxTJYZID.SelectedValue.Trim(), cbxJJFS.SelectedValue.Trim()))) { ShowMessage(cbxTJYZID.SelectedValue.Trim() + "因子的调价方式与当前" + txtYZID.Text.Trim() + "因子的调价方式不一致,不允许保存!"); return false; } } if (cbxTJYS.SelectedValue.Trim().Equals("8") && !cbxJJFS.SelectedValue.Trim().Equals("JJ")) { ShowMessage("当前调价因素暂时只支持“加价(元)”一种调价方式!"); return false; } if (cbxTJYS.SelectedValue.Trim().Equals("2") || cbxTJYS.SelectedValue.Trim().Equals("6") || cbxTJYS.SelectedValue.Trim().Equals("7"))//材料损耗系数暂时只支持维护一个 { if (!cbxJJFS.SelectedValue.Trim().Equals("JD")) { ShowMessage("当前调价因素暂时只支持“乘以(1+加点(%))”一种调价方式!"); return false; } sql.Clear(); sql.Add("select distinct XLXSTZYZ_TJYZID from XLXSTZYZ where XLXSTZYZ_MXBH='JZJ' and XLXSTZYZ_TJYS=:pTJYS and XLXSTZYZ_YZID<>:pYZID"); sql.ParamByName("pYZID").Value = txtYZID.Text.Trim(); if (cbxTJYS.SelectedValue.Trim().Equals("2")) { sql.ParamByName("pTJYS").Value = "6"; DataSet ds = dberp.OpenDataSet(sql); if (ds.Tables[0].Rows.Count > 0) { ShowMessage("已存在设置报价材料损耗率调价因素【6|型号&电压等级&报价材料】,不允许多个调价因素并存!"); return false; } sql.ParamByName("pTJYS").Value = "7"; ds = dberp.OpenDataSet(sql); if (ds.Tables[0].Rows.Count > 0) { ShowMessage("已存在设置报价材料损耗率调价因素【7|报价材料】,不允许多个调价因素并存!"); return false; } } else if (cbxTJYS.SelectedValue.Trim().Equals("6")) { sql.ParamByName("pTJYS").Value = "2"; DataSet ds = dberp.OpenDataSet(sql); if (ds.Tables[0].Rows.Count > 0) { ShowMessage("已存在设置报价材料损耗率调价因素【2|产品用途&电压等级分类&报价材料】,不允许多个调价因素并存!"); return false; } sql.ParamByName("pTJYS").Value = "7"; ds = dberp.OpenDataSet(sql); if (ds.Tables[0].Rows.Count > 0) { ShowMessage("已存在设置报价材料损耗率调价因素【7|报价材料】,不允许多个调价因素并存!"); return false; } } else { sql.ParamByName("pTJYS").Value = "2"; DataSet ds = dberp.OpenDataSet(sql); if (ds.Tables[0].Rows.Count > 0) { ShowMessage("已存在设置报价材料损耗率调价因素【2|产品用途&电压等级分类&报价材料】,不允许多个调价因素并存!"); return false; } sql.ParamByName("pTJYS").Value = "6"; ds = dberp.OpenDataSet(sql); if (ds.Tables[0].Rows.Count > 0) { ShowMessage("已存在设置报价材料损耗率调价因素【6|型号&电压等级&报价材料】,不允许多个调价因素并存!"); return false; } } if ((ControlState == TControlState.ctsInsert) || (ControlState == TControlState.ctsCopy)) { sql.Clear(); sql.Add("select distinct XLXSTZYZ_TJYZID from XLXSTZYZ where XLXSTZYZ_MXBH='JZJ' and (XLXSTZYZ_TJYS='2' or XLXSTZYZ_TJYS='6' or XLXSTZYZ_TJYS='7') and XLXSTZYZ_TJYZID<>:pTJYZID "); sql.ParamByName("pTJYZID").Value = cbxTJYZID.SelectedValue.Trim(); DataSet ds = dberp.OpenDataSet(sql); if (ds.Tables[0].Rows.Count > 0) { ShowMessage("当前调价因素暂时只支持维护一组调价因子!"); return false; } } else { sql.Clear(); sql.Add("select distinct XLXSTZYZ_TJYZID from XLXSTZYZ where XLXSTZYZ_MXBH='JZJ' and (XLXSTZYZ_TJYS='2' or XLXSTZYZ_TJYS='6' or XLXSTZYZ_TJYS='7') and XLXSTZYZ_YZID<>:pYZID "); sql.ParamByName("pYZID").Value = txtYZID.Text.Trim(); DataSet ds = dberp.OpenDataSet(sql); if (ds.Tables[0].Rows.Count > 0) { if (ds.Tables[0].Rows.Count > 1) { ShowMessage("当前调价因素暂时只支持维护一组调价因子!"); return false; } else { string sTJYZID = ds.Tables[0].Rows[0][0].ToString().Trim(); if (!sTJYZID.Equals(cbxTJYZID.SelectedValue.Trim())) { ShowMessage("当前调价因素暂时只支持维护一组调价因子!"); return false; } } } } } //校验 /* select XLXSJGBYZ_JGBID,XLXSJGBYZ_YZID,XLXSTZYZ_JJFS, case when XLXSTZYZ_JJFS= 'JJ' then 0 else 1 end as CCC,XLXSTZYZ_XSXH from XLXSJGBYZ left join XLXSTZYZ on XLXSTZYZ_YZID = XLXSJGBYZ_YZID where 1=1 and isnull(XLXSTZYZ_BCYTJ,'N') <> 'Y' AND XLXSJGBYZ_JGBID in ( select XLXSJGBYZ_JGBID from XLXSJGBYZ left join XLXSTZYZ on XLXSTZYZ_YZID = XLXSJGBYZ_YZID where 1=1 and isnull(XLXSTZYZ_BCYTJ,'N') <> 'Y' AND XLXSTZYZ_JJFS = 'JJ' ) and XLXSJGBYZ_YZID <>' ' order by XLXSJGBYZ_JGBID,XLXSTZYZ_XSXH */ Dictionary dicXLXSTZYZ = new Dictionary(); int flag = 0; string sJGBID = ""; sql.Clear(); sql.Add(" select distinct XLXSJGBYZ_JGBID from XLXSJGBYZ "); sql.Add(" left join XLXSTZYZ on XLXSTZYZ_YZID = XLXSJGBYZ_YZID "); sql.Add(" where 1=1 "); sql.Add(" and XLXSJGBYZ_YZID=:pYZID "); sql.Add(" order by XLXSJGBYZ_JGBID "); sql.ParamByName("pYZID").Value = txtYZID.Text.Trim(); DataSet dsJGBYZ = dberp.OpenDataSet(sql); if (dsJGBYZ.Tables[0].Rows.Count > 0) { for (int i = 0; i < dsJGBYZ.Tables[0].Rows.Count; i++) { sJGBID = dsJGBYZ.Tables[0].Rows[i]["XLXSJGBYZ_JGBID"].ToString().Trim(); if (IsQYGS(sJGBID)) continue; dicXLXSTZYZ.Clear(); sql.Clear(); sql.Add(" select XLXSJGBYZ_YZID,XLXSTZYZ_JJFS,XLXSTZYZ_XSXH from XLXSJGBYZ "); sql.Add(" left join XLXSTZYZ on XLXSTZYZ_YZID = XLXSJGBYZ_YZID "); sql.Add(" where XLXSJGBYZ_JGBID =:pJGBID "); sql.Add(" and XLXSJGBYZ_YZID <> :pYZID "); sql.Add(" and isnull(XLXSTZYZ_BCYTJ,'N') <> 'Y' "); sql.Add(" order by XLXSTZYZ_XSXH "); sql.ParamByName("pJGBID").Value = sJGBID; sql.ParamByName("pYZID").Value = txtYZID.Text.Trim(); DataSet data = dberp.OpenDataSet(sql); for (int j = 0; j < data.Tables[0].Rows.Count; j++) { //此处增加校验 if (txtXSXH.Value == CMISproConvert.StrToFloat(data.Tables[0].Rows[j]["XLXSTZYZ_XSXH"].ToString().Trim())) { if (CMISproConvert.StrToFloat(txtYZID.Text.Trim().Replace("JZ", "")) < CMISproConvert.StrToFloat(data.Tables[0].Rows[j]["XLXSJGBYZ_YZID"].ToString().Trim().Replace("JZ", ""))) { dicXLXSTZYZ.Add(txtYZID.Text.Trim(), cbxJJFS.SelectedValue.Trim()); } dicXLXSTZYZ.Add(data.Tables[0].Rows[j]["XLXSJGBYZ_YZID"].ToString().Trim(), data.Tables[0].Rows[j]["XLXSTZYZ_JJFS"].ToString().Trim()); } else if (txtXSXH.Value < CMISproConvert.StrToFloat(data.Tables[0].Rows[j]["XLXSTZYZ_XSXH"].ToString().Trim())) { if (!dicXLXSTZYZ.ContainsKey(txtYZID.Text.Trim())) { dicXLXSTZYZ.Add(txtYZID.Text.Trim(), cbxJJFS.SelectedValue.Trim()); } dicXLXSTZYZ.Add(data.Tables[0].Rows[j]["XLXSJGBYZ_YZID"].ToString().Trim(), data.Tables[0].Rows[j]["XLXSTZYZ_JJFS"].ToString().Trim()); } else { dicXLXSTZYZ.Add(data.Tables[0].Rows[j]["XLXSJGBYZ_YZID"].ToString().Trim(), data.Tables[0].Rows[j]["XLXSTZYZ_JJFS"].ToString().Trim()); } } List lst = new List(); lst.Clear(); //如果是扣点/加点,则加入 1 如果是加价则加入 0,最终形成:空或者01或者10或者1或者0,不能形成101形式或者010形式或者1010等大于2个数据的形式 foreach (KeyValuePair kvp in dicXLXSTZYZ) { if (kvp.Value.Equals("JJ")) { if (lst.Count == 0) { lst.Add("0"); } else if (lst[lst.Count - 1] == "1") { lst.Add("0"); } else if (lst[lst.Count - 1] == "0") { //不处理 } } else { //JD KD MX if (lst.Count == 0) { lst.Add("1"); } else if (lst[lst.Count - 1] == "1") { //不处理 } else if (lst[lst.Count - 1] == "0") { lst.Add("1"); } } } if (lst.Count >= 3) { flag = 1; break; } } if (1 == flag) { ShowMessage("当前因子在价格表【" + sJGBID + "|" + getJGBMC(sJGBID) + "】不满足“加价因子必须全部在加点/扣点因子之前或者之后”规则,不允许调整顺序!"); return false; } } if (cbxJJFS.SelectedValue.Trim() == "SX") { string sSQL = string.Format("select 1 from XLXSJGB left join XLXSJGBYZ on XLXSJGBYZ_JGBID=XLXSJGB_JGBID where XLXSJGBYZ_YZID='{0}' and isnull(XLXSJGB_JSGS,' ')<>' '", txtYZID.Text.Trim()); if (CMISproDataBase.ExistsRecord("DBERP", sSQL)) { ShowMessage("存在启用公式的价格表使用当前调价因子,不允许修改调价方式为【上点除、下点乘】!"); return false; } } return true; } protected override bool Master_BeforeSaveAction(object sender, EventArgs e) { if (!base.Master_BeforeSaveAction(sender, e)) return false; txtWHR.Text = tSession.UserName; txtWHRID.Value = tSession.UserId; datWHSJ.Text = CMISproConvert.ConvertTime(System.DateTime.Now); if ((ControlState == TControlState.ctsInsert) || (ControlState == TControlState.ctsCopy)) { txtOLD_MXBH.Value = cbxMXBH.Text.Trim(); txtOLD_YZID.Value = txtYZID.Text.Trim(); } return true; } protected override void AfterSave(TDatabase db, ref bool ActionIsDone) { if (cbxJGBID.ItemsCount == 0) { //新增一条“00000000|价格表调价因子价格表”记录。 string sJGBID = "00000000"; if(!cbxTJYS.SelectedValue.Trim().Equals("")) { sJGBID = cbxTJYS.SelectedValue.Trim() + "1".PadLeft(8 - cbxTJYS.SelectedValue.Trim().Length, '0'); } TSQL SQL = new TSQL(db); SQL.Add("insert into XLXSJGB(XLXSJGB_JGBID,XLXSJGB_YXQS,XLXSJGB_YXQZ,XLXSJGB_JGBMC,XLXSJGB_WHRID,XLXSJGB_WHR,XLXSJGB_WHSJ,XLXSJGB_MXBH,XLXSJGB_TJYS)"); SQL.Add(" values(:pJGBID,null,null,:pJGBMC,:pWHRID,:pWHR,:pWHSJ,'JZJ',:pTJYS)"); SQL.ParamByName("pJGBID").Value = sJGBID; string sJGBMC = ""; if (cbxTJYS.SelectedValue.Trim().Equals("1")) sJGBMC = "价格表调价因子价格表-型号&规格&电压&标准"; else if (cbxTJYS.SelectedValue.Trim().Equals("2")) sJGBMC = "价格表调价因子价格表-产品用途&电压等级分类&报价材料"; else if (cbxTJYS.SelectedValue.Trim().Equals("3")) sJGBMC = "价格表调价因子价格表-销售区域&导体材料&线缆型号&主芯截面"; else if (cbxTJYS.SelectedValue.Trim().Equals("4")) sJGBMC = "价格表调价因子价格表-型号&电压等级&芯线结构&主芯截面范围"; else if (cbxTJYS.SelectedValue.Trim().Equals("5")) sJGBMC = "价格表调价因子价格表-型号&电压等级&主芯截面范围&总芯数范围"; else if (cbxTJYS.SelectedValue.Trim().Equals("6")) sJGBMC = "价格表调价因子价格表-型号&电压等级&报价材料"; else if (cbxTJYS.SelectedValue.Trim().Equals("7")) sJGBMC = "价格表调价因子价格表-报价材料"; else if (cbxTJYS.SelectedValue.Trim().Equals("8")) sJGBMC = "价格表调价因子价格表-每吨加价*材料重量"; else if (cbxTJYS.SelectedValue.Trim().Equals("9")) sJGBMC = "价格表调价因子价格表-型号&规格&电压等级"; else if (cbxTJYS.SelectedValue.Trim().Equals("A")) sJGBMC = "价格表调价因子价格表-产品目录&主芯截面"; else if (cbxTJYS.SelectedValue.Trim().Equals("B")) sJGBMC = "价格表调价因子价格表-主芯截面范围"; else if (cbxTJYS.SelectedValue.Trim().Equals("C")) sJGBMC = "价格表调价因子价格表-产品特性"; else if (cbxTJYS.SelectedValue.Trim().Equals("")) sJGBMC = "价格表调价因子价格表"; else sJGBMC = "价格表调价因子价格表-自定义"; SQL.ParamByName("pJGBMC").Value = sJGBMC; SQL.ParamByName("pWHRID").Value = tSession.UserId; SQL.ParamByName("pWHR").Value = tSession.UserName; SQL.ParamByName("pWHSJ").Value = DateTime.Now; SQL.ParamByName("pTJYS").Value = cbxTJYS.SelectedValue.Trim().Equals("") ? " " : cbxTJYS.SelectedValue.Trim(); db.ExecSQL(SQL); db.ExecSQL(string.Format("update XLXSTZYZ set XLXSTZYZ_JGBID='{0}' where XLXSTZYZ_MXBH='{1}' and XLXSTZYZ_YZID='{2}'", sJGBID, cbxMXBH.Text.Trim(), txtYZID.Text.Trim())); cbxJGBID.Items.Add(new ListItem(sJGBID + "|--至--|" + sJGBMC, sJGBID)); cbxJGBID.SelectedValue = sJGBID; FormAreaUpdate(); } CacheNotify.TableIsUpdated("DBERP", "XLXSTZYZ"); if (NeedChangeJSGS()) { TSQL sql = new TSQL(db); string sMessage = string.Empty; sql.Clear(); sql.Add("select XLXSJGBYZ_JGBID,XLXSJGB_JGBMC from XLXSJGBYZ left join XLXSJGB on XLXSJGB_JGBID=XLXSJGBYZ_JGBID where XLXSJGBYZ_YZID=:pYZID and isnull(XLXSJGB_JSGS,' ') <> ' ' "); sql.ParamByName("pYZID").Value = txtYZID.Text.Trim(); DataSet ds = db.OpenDataSet(sql); for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { string sJGBID = ds.Tables[0].Rows[i]["XLXSJGBYZ_JGBID"].ToString().Trim(); string sJGBMC = ds.Tables[0].Rows[i]["XLXSJGB_JGBMC"].ToString().Trim(); string sJSGS = JGBML_TJYZList.GetJSGS(sJGBID); sql.Clear(); sql.Add("update XLXSJGB set XLXSJGB_JSGS=:pXLXSJGB_JSGS where XLXSJGB_JGBID=:pJGBID"); sql.ParamByName("pXLXSJGB_JSGS").Value = sJSGS; sql.ParamByName("pJGBID").Value = sJGBID; db.ExecSQL(sql); sMessage += "【" + sJGBID + "|" + sJGBMC + "】已重新生成公式!\r\n"; } ShowMessage(sMessage); CacheNotify.TableIsUpdated("DBERP", "XLXSJGB"); } base.AfterSave(db, ref ActionIsDone); } protected override bool Master_AfterSaveAction(object sender, EventArgs e) { txtOLD_MXBH.Value = cbxMXBH.Text.Trim(); txtOLD_YZID.Value = txtYZID.Text.Trim(); txtOLD_YZMC.Value = txtYZMC.Text.Trim(); txtOLD_TJYZID.Value = cbxTJYZID.SelectedValue.Trim(); txtOLD_TYZZYZID.Value = cbxTYZZYZID.SelectedValue.Trim(); txtOLD_JJFS.Value = cbxJJFS.SelectedValue.Trim(); CacheNotify.TableIsUpdated("DBERP", "XLXSJGB"); return base.Master_AfterSaveAction(sender, e); } protected override void SetComboxItems() { cbxTJLX.ClearItems(); cbxTJLX.Items.Add(new ListItem("调价格", "1")); cbxTJLX.Items.Add(new ListItem("调因子值", "2")); cbxJJFS.ClearItems(); cbxJJFS.Items.Add(new ListItem("乘以(1+加点(%))", "JD")); cbxJJFS.Items.Add(new ListItem("加价(元)", "JJ")); cbxJJFS.Items.Add(new ListItem("除以(1-扣点(%))", "KD")); cbxJJFS.Items.Add(new ListItem("上点除、下点乘", "SX")); cbxJJFS.ShowValue = false; if (ControlState == TControlState.ctsBrowse) setcbxTYZZYZID(); if (cbxTJLX.SelectedValue.Trim().Equals("2")) { cbxTJYZID.ClearItems(); cbxTJYZID.Items.Add(new ListItem(txtYZID.Text.Trim(), txtYZID.Text.Trim())); cbxTJYZID.SelectedValue = txtYZID.Text.Trim(); } else { setcbxTYZZYZID(); TComboBox.SetComboBox("DBERP", cbxTJYZID, "select XLXSTZYZ_YZID as ID,XLXSTZYZ_YZID as Name from XLXSTZYZ where XLXSTZYZ_MXBH='JZJ' and (isnull(XLXSTZYZ_TJLX,'1')<>'2' or XLXSTZYZ_YZID='" + txtYZID.Text.Trim() + "') order by XLXSTZYZ_XSXH,ID", false); } string sBJCLID_SQL = "select XLXSBJCL_BJCLID,XLXSBJCL_BJCLMC from XLXSBJCL where XLXSBJCL_BJJZ<>'Y' and XLXSBJCL_TYBZ<>'Y' order by XLXSBJCL_BJCLID"; TComboBox.SetComboBox("DBERP", cbxBJCLID, sBJCLID_SQL, true); List jgbxx_List = XLBJDUtils.GetXLXSJGBXXList("JZJ"); cbxJGBID.ClearItems(); string sTJYS = cbxTJYS.SelectedValue.Trim(); foreach (JGBMLXX jgbxx in jgbxx_List) { if (jgbxx.XLXSJGB_TJYS.Equals(sTJYS)) { string sJGBID = jgbxx.XLXSJGB_JGBID; string sYXQS = jgbxx.XLXSJGB_YXQS; string sYXQZ = jgbxx.XLXSJGB_YXQZ; string sJGBMC = jgbxx.XLXSJGB_JGBMC; if (sYXQS.Equals("")) sYXQS = "--"; else sYXQS = CMISproConvert.ConvertDate(sYXQS); if (sYXQZ.Equals("")) sYXQZ = "--"; else sYXQZ = CMISproConvert.ConvertDate(sYXQZ); if (sJGBMC.Equals("")) cbxJGBID.Items.Add(new ListItem(sJGBID + "|" + sYXQS + "至" + sYXQZ, sJGBID)); else cbxJGBID.Items.Add(new ListItem(sJGBID + "|" + sYXQS + "至" + sYXQZ + "|" + sJGBMC, sJGBID)); } } if (cbxJGBID.ItemsCount > 0) { cbxJGBID.Tag = GThinking.N_CONTROL.gtComboBox.DTagStates.Star; } else { cbxJGBID.Tag = GThinking.N_CONTROL.gtComboBox.DTagStates.None; } cbxMRTBYZ.Items.Clear(); cbxMRTBYZ.Items.Add(new ListItem("", "")); TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Clear(); SQL.Add("select XLXSTZYZ_YZID, XLXSTZYZ_YZMC "); SQL.Add(" from XLXSTZYZ"); SQL.Add(" where XLXSTZYZ_MXBH = 'BJD' "); if (cbxTJYS.SelectedValue.Trim().Equals("4")) SQL.Add(" and XLXSTZYZ_TJYS='7' "); else if (cbxTJYS.SelectedValue.Trim().Equals("1") || cbxTJYS.SelectedValue.Trim().Equals("8")) SQL.Add(" and XLXSTZYZ_TJYS='A' "); else SQL.Add(" and 1<>1 "); SQL.Add("order by XLXSTZYZ_YZID,XLXSTZYZ_XSXH"); DataSet ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count > 0) { foreach (DataRow trow in ds.Tables[0].Rows) { string sYZID = trow["XLXSTZYZ_YZID"].ToString().Trim(); string sYZMC = trow["XLXSTZYZ_YZMC"].ToString().Trim(); cbxMRTBYZ.Items.Add(new ListItem(sYZMC, sYZID)); } } base.SetComboxItems(); } #endregion #region 自定义函数 private void InitControls() { cbxMXBH.ClearItems(); cbxMXBH.Items.Add(new ListItem("JZJ")); cbxMXBH.ShowValue = false; cbxTJYS.ClearItems(); cbxTJYS.Items.Add(new ListItem("", "")); if (DSActiveModule.IsActiveModule(100860017)) cbxTJYS.Items.Add(new ListItem("1|型号&规格&电压&标准", "1")); if (DSActiveModule.IsActiveModule(102579011)) cbxTJYS.Items.Add(new ListItem("2|产品用途&电压等级分类&报价材料", "2")); if (DSActiveModule.IsActiveModule(100860026)) cbxTJYS.Items.Add(new ListItem("3|销售区域&导体材料&线缆型号&主芯截面", "3")); if (DSActiveModule.IsActiveModule(100860047)) cbxTJYS.Items.Add(new ListItem("4|型号&电压等级&芯线结构&主芯截面范围", "4")); if (DSActiveModule.IsActiveModule(100860058)) cbxTJYS.Items.Add(new ListItem("5|型号&电压等级&主芯截面范围&总芯数范围", "5")); if (DSActiveModule.IsActiveModule(102579010)) cbxTJYS.Items.Add(new ListItem("6|型号&电压等级&报价材料", "6")); if (DSActiveModule.IsActiveModule(102579009)) cbxTJYS.Items.Add(new ListItem("7|报价材料", "7")); if (DSActiveModule.IsActiveModule(100860096)) cbxTJYS.Items.Add(new ListItem("8|每吨加价*材料重量", "8")); if (DSActiveModule.IsActiveModule(100860160)) cbxTJYS.Items.Add(new ListItem("9|型号&规格&电压等级", "9")); if (DSActiveModule.IsActiveModule(100860164)) cbxTJYS.Items.Add(new ListItem("A|产品目录&主芯截面", "A")); if (DSActiveModule.IsActiveModule(100860165)) cbxTJYS.Items.Add(new ListItem("B|主芯截面范围", "B")); if (DSActiveModule.IsActiveModule(100860166)) cbxTJYS.Items.Add(new ListItem("C|产品特性", "C")); cbxTJYS.ShowValue = false; cbxTYZZFS.ClearItems(); cbxTYZZFS.Items.Add(new ListItem("乘以(1+加点(%))", "JD")); cbxTYZZFS.Items.Add(new ListItem("加点", "JJ")); cbxTYZZFS.Items.Add(new ListItem("除以(1-扣点(%))", "KD")); cbxTYZZFS.Items.Add(new ListItem("乘以(系数)", "MX")); cbxTYZZFS.Items.Add(new ListItem("除以(系数)", "DX")); //TComboBox.SetComboBox("DBERP", cbxTJYZID, "select XLXSTZYZ_YZID as ID,XLXSTZYZ_YZID as Name from XLXSTZYZ where XLXSTZYZ_MXBH='JZJ' order by XLXSTZYZ_XSXH,ID", false); } private double getNewXH() { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Add("select max(XLXSTZYZ_XSXH) from XLXSTZYZ where XLXSTZYZ_MXBH like 'JZJ'"); DataSet ds = dberp.OpenDataSet(SQL); if (!string.IsNullOrEmpty(ds.Tables[0].Rows[0][0].ToString().Trim())) { return CMISproConvert.StrToFloat(ds.Tables[0].Rows[0][0].ToString()) + 10; } else { return 10; } } private string getJGBMC(string sJGBID) { return XLBJDUtils.GetXLXSJGBXXByJGBID(sJGBID).XLXSJGB_JGBMC; } private bool IsQYGS(string sJGBID) { if (XLBJDUtils.GetXLXSJGBXXByJGBID(sJGBID).IsQYGS()) return true; return false; } private bool NeedChangeJSGS() { if (txtOLD_JJFS.Value.Trim() != cbxJJFS.SelectedValue.Trim() || txtOLD_TYZZYZID.Value.Trim() != cbxTYZZYZID.SelectedValue.Trim() || txtOLD_TJYZID.Value != cbxTJYZID.SelectedValue.Trim()) return true; return false; } private bool YZIDisUsed(string sYZID) { string sSQL = string.Format("select 1 from XLXSJGBYZ where XLXSJGBYZ_YZID='{0}'", sYZID); if (CMISproDataBase.ExistsRecord("DBERP", sSQL)) return true; return false; } private void setcbxTYZZYZID() { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Clear(); SQL.Add("select XLXSTZYZ_YZID as ID,XLXSTZYZ_YZID as Name from XLXSTZYZ where XLXSTZYZ_MXBH='JZJ' and XLXSTZYZ_TJLX='2' and XLXSTZYZ_YZID<>'" + txtYZID.Text.Trim() + "' order by XLXSTZYZ_XSXH,ID"); DataSet ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count > 0) { cbxTYZZYZID.ClearItems(); for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { string sID = ds.Tables[0].Rows[i]["ID"].ToString().Trim(); string sName = ds.Tables[0].Rows[i]["Name"].ToString().Trim(); cbxTYZZYZID.Items.Add(new ListItem(sName, sID)); } } } #endregion #region 控件事件 protected void cbxTJLX_SelectedIndexChanged(object sender, EventArgs e) { if (ControlState == TControlState.ctsEdit) { if (cbxTJLX.SelectedValue.Trim().Equals("2"))//调因子值 { cbxTYZZYZID.SelectedValue = ""; cbxTYZZFS.SelectedValue = ""; cbxTYZZYZID.Enabled = false; cbxTJYZID.ClearItems(); cbxTJYZID.Items.Add(new ListItem(txtYZID.Text.Trim(), txtYZID.Text.Trim())); cbxTJYZID.SelectedValue = txtYZID.Text.Trim(); } else//调价格 { cbxTYZZYZID.Enabled = true; setcbxTYZZYZID(); TComboBox.SetComboBox("DBERP", cbxTJYZID, "select XLXSTZYZ_YZID as ID,XLXSTZYZ_YZID as Name from XLXSTZYZ where XLXSTZYZ_MXBH='JZJ' and (isnull(XLXSTZYZ_TJLX,'1')<>'2' or XLXSTZYZ_YZID='" + txtYZID.Text.Trim() + "') order by XLXSTZYZ_XSXH,ID", false); } } } protected void cbxJJFS_SelectedIndexChanged(object sender, EventArgs e) { if (cbxJJFS.SelectedValue.Trim().Equals("JJ") && cbxTJYS.SelectedValue.Trim().Equals("1")) { cbxBJCLID.Enabled = true; } else { cbxBJCLID.Enabled = false; cbxBJCLID.SelectedValue = ""; } if (cbxJJFS.SelectedValue.Trim().Equals("SX") || cbxTJYS.SelectedValue.Trim().Equals("")) { chkFGQCP.Checked = false; chkFGQCP.Enabled = false; } else { chkFGQCP.Enabled = true; } } protected void cbxTJYS_SelectedIndexChanged(object sender, EventArgs e) { if (cbxJJFS.SelectedValue.Trim().Equals("JJ") && cbxTJYS.SelectedValue.Trim().Equals("1")) { cbxBJCLID.Enabled = true; } else { cbxBJCLID.Enabled = false; cbxBJCLID.SelectedValue = ""; } if (cbxJJFS.SelectedValue.Trim().Equals("SX") || cbxTJYS.SelectedValue.Trim().Equals("")) { chkFGQCP.Checked = false; chkFGQCP.Enabled = false; } else { chkFGQCP.Enabled = true; } List jgbxx_List = XLBJDUtils.GetXLXSJGBXXList("JZJ"); cbxJGBID.ClearItems(); string sTJYS = cbxTJYS.SelectedValue.Trim(); foreach (JGBMLXX jgbxx in jgbxx_List) { if (jgbxx.XLXSJGB_TJYS.Equals(sTJYS)) { string sJGBID = jgbxx.XLXSJGB_JGBID; string sYXQS = jgbxx.XLXSJGB_YXQS; string sYXQZ = jgbxx.XLXSJGB_YXQZ; string sJGBMC = jgbxx.XLXSJGB_JGBMC; if (sYXQS.Equals("")) sYXQS = "--"; else sYXQS = CMISproConvert.ConvertDate(sYXQS); if (sYXQZ.Equals("")) sYXQZ = "--"; else sYXQZ = CMISproConvert.ConvertDate(sYXQZ); if (sJGBMC.Equals("")) cbxJGBID.Items.Add(new ListItem(sJGBID + "|" + sYXQS + "至" + sYXQZ, sJGBID)); else cbxJGBID.Items.Add(new ListItem(sJGBID + "|" + sYXQS + "至" + sYXQZ + "|" + sJGBMC, sJGBID)); } } if (cbxJGBID.ItemsCount > 0 && cbxTJYS.SelectedValue.Trim().Equals("")) cbxJGBID.SelectedIndex = 0; if (cbxJGBID.ItemsCount > 0) { cbxJGBID.Tag = GThinking.N_CONTROL.gtComboBox.DTagStates.Star; } else { cbxJGBID.Tag = GThinking.N_CONTROL.gtComboBox.DTagStates.None; } } protected void cbxTYZZYZID_SelectedIndexChanged(object sender, EventArgs e) { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Add("select XLXSTZYZ_JJFS from XLXSTZYZ where XLXSTZYZ_MXBH='JZJ' and XLXSTZYZ_YZID=:pYZID"); SQL.ParamByName("pYZID").Value = cbxTYZZYZID.SelectedValue.Trim(); DataSet ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count > 0) { if (ds.Tables[0].Rows[0][0].ToString().Trim().Contains(",")) { cbxTYZZFS.SelectedValue = ""; cbxTYZZFS.Visible = false; } else { cbxTYZZFS.SelectedValue = ds.Tables[0].Rows[0][0].ToString().Trim(); cbxTYZZFS.Visible = true; } } else { cbxTYZZFS.SelectedValue = ""; } } #endregion } }