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_MODEL.Dialog; using GThinking.N_MISPRO.Utility; namespace GThinking.N_XLXSBJ { public partial class JGBPZInfo : SingleCardBase { JGBPZ entity = new JGBPZ(); protected void Page_Load(object sender, EventArgs e) { this.UMID = 100860036; this.UMName = "线缆销售报价价格目录配置"; this.CurMaster = Master; this.CurEntity = entity; this.PageHeight = 400; this.PageWidth = 500; this.Master.EnableAttachBtn = false; if (!IsPostBack) { InitControls(); } base.InitPage(); } #region 模板事件继承 protected override void LoadRecord() { if (!IsPostBack) { this.CurEntity.Param.Add("XLXSJGBPZ_JGBPZDH", PageParam.GetRTrimString("XLXSJGBPZ_JGBPZDH")); } else { this.CurEntity.Param.Add("XLXSJGBPZ_JGBPZDH", txtOLDJGBPZDH.Value.Trim()); } base.LoadRecord(); txtOLDBJCLIDS.Value = cbxBJCLIDS.SelectedValue.Trim(); } protected override void OnNewRecorder() { base.OnNewRecorder(); txtWHR.Text = tSession.UserName; txtWHRID.Value = tSession.UserId; datWHSJ.Value = CMISproConvert.ConvertTime(DateTime.Now); } protected override void OnCopyRecorder() { base.OnCopyRecorder(); txtWHR.Text = tSession.UserName; txtWHRID.Value = tSession.UserId; datWHSJ.Value = CMISproConvert.ConvertTime(DateTime.Now); } protected override bool DataLogicValid() { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Clear(); SQL.Add("select 1 from XLXSJGBPZ where XLXSJGBPZ_CPMLID=:pCPMLID"); if (ControlState == TControlState.ctsEdit) { SQL.Add(" and XLXSJGBPZ_JGBPZDH<>:pJGBPZDH"); SQL.ParamByName("pJGBPZDH").Value = txtOLDJGBPZDH.Value.Trim(); } SQL.ParamByName("pCPMLID").Value = cbxCPMLID.SelectedValue.Trim(); DataSet dsTmp = dberp.OpenDataSet(SQL); if (dsTmp.Tables[0].Rows.Count > 0) { ShowMessage("同一产品目录不允许维护多条配置记录!"); return false; } SQL.Clear(); SQL.Add("select XLXSCPML_CPMLLX,XLXSCPML_CPMLIDS"); SQL.Add(" from XLXSCPML"); SQL.Add(" where XLXSCPML_CPMLID=:pCPMLID"); SQL.ParamByName("pCPMLID").Value = cbxCPMLID.SelectedValue.Trim(); DataSet dsCPML = dberp.OpenDataSet(SQL); if (dsCPML.Tables[0].Rows.Count > 0) { string sCPMLLX = dsCPML.Tables[0].Rows[0]["XLXSCPML_CPMLLX"].ToString().Trim(); string sCPMLIDS = dsCPML.Tables[0].Rows[0]["XLXSCPML_CPMLIDS"].ToString().Trim(); if (sCPMLLX.Equals("Y"))//组合 { //组合产品目录一定包含其引用的单一产品目录的所有材料 if (!cbxBJCLIDS.SelectedValue.Trim().Equals("")) { string curBJCLIDs = "," + cbxBJCLIDS.SelectedValue.Trim() + ","; //把单一产品目录的‘行情分段材料’找出来 SQL.Clear(); SQL.Add("select XLXSJGBPZ_JGBPZDH,XLXSJGBPZ_CPMLID,XLXSJGBPZ_BJCLIDS from XLXSJGBPZ where " + CMISproDataBase.GetWhereEqual("XLXSJGBPZ_CPMLID", sCPMLIDS)); if (ControlState == TControlState.ctsEdit) { SQL.Add(" and XLXSJGBPZ_JGBPZDH<>:pJGBPZDH"); SQL.ParamByName("pJGBPZDH").Value = txtOLDJGBPZDH.Value.Trim(); } SQL.Add(" order by XLXSJGBPZ_JGBPZDH"); DataSet dsML = dberp.OpenDataSet(SQL); for (int i = 0; i < dsML.Tables[0].Rows.Count; i++) { string sJGBPZDH = dsML.Tables[0].Rows[i]["XLXSJGBPZ_JGBPZDH"].ToString().Trim(); string sDYCPMLID = dsML.Tables[0].Rows[i]["XLXSJGBPZ_CPMLID"].ToString().Trim(); string[] sBJCLIDs = dsML.Tables[0].Rows[i]["XLXSJGBPZ_BJCLIDS"].ToString().Trim().Split(','); for (int j = 0; j < sBJCLIDs.Length; j++) { if (!curBJCLIDs.Contains("," + sBJCLIDs[j].Trim() + ",")) { ShowMessage("漏选产品目录[" + sDYCPMLID + "]对应配置记录[" + sJGBPZDH + "]包含的行情分段材料[" + sBJCLIDs[j].Trim() + "],不允许保存!"); return false; } } } } } } return base.DataLogicValid(); } protected override bool Master_BeforeDeleteAction(object sender, EventArgs e) { // if (CMISproDataBase.ExistsRecord("DBERP", string.Format(@"select 1 from XLXSJGBPZ left join XLXSCPML on XLXSCPML_CPMLID=XLXSJGBPZ_CPMLID // where isnull(XLXSCPML_CPMLIDS,' ')<>' ' and ','||rtrim(XLXSCPML_CPMLIDS)||',' like '{0}'", // "%," + cbxCPMLID.SelectedValue.Trim() + ",%"))) // { // ShowMessage("当前产品目录存在引用的组合产品目录的配置记录,不允许删除!"); // return false; // } string sJGBPZDH = txtJGBPZDH.Text.Trim(); string sSQL = string.Format("select top 1 XLXSJGBPZJGB_CLHQZH from XLXSJGBPZJGB where XLXSJGBPZJGB_JGBPZDH = '{0}' and isnull(XLXSJGBPZJGB_JGBID,' ')<>' '", sJGBPZDH); if (CMISproDataBase.ExistsRecord("DBERP", sSQL)) { ShowMessage("已派生价格表,不允许删除!"); return false; } return base.Master_BeforeDeleteAction(sender, e); } protected override bool Master_BeforeSaveAction(object sender, EventArgs e) { txtJGBPZDH.Text = cbxMXBH.SelectedValue.Trim() + cbxTJYS.SelectedValue.Trim() + cbxCPMLID.SelectedValue.Trim(); txtWHR.Text = tSession.UserName; txtWHRID.Value = tSession.UserId; datWHSJ.Value = CMISproConvert.ConvertTime(DateTime.Now); return base.Master_BeforeSaveAction(sender, e); } protected override void SetControlState() { base.SetControlState(); txtJGBPZDH.Enabled = false; txtWHR.Enabled = false; datWHSJ.Enabled = false; if (ControlState == TControlState.ctsEdit) { if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select top 1 XLXSJGBPZJGB_CLHQZH from XLXSJGBPZJGB where XLXSJGBPZJGB_JGBPZDH = '{0}' and isnull(XLXSJGBPZJGB_JGBID,' ')<>' '", txtJGBPZDH.Text.Trim()))) { cbxCPMLID.Enabled = false; cbxBJCLIDS.Enabled = false; cbxMXBH.Enabled = false; cbxTJYS.Enabled = false; } } } protected override void AfterSave(TDatabase db, ref bool ActionIsDone) { TSQL SQL = new TSQL(db); if (ControlState == TControlState.ctsEdit && !txtOLDBJCLIDS.Value.Equals(cbxBJCLIDS.SelectedValue.Trim())) { /*删除修改前产品目录的材料行情分段*/ SQL.Clear(); SQL.Add("delete from XLXSJGBPZCLHQFD where XLXSJGBPZCLHQFD_JGBPZDH=:pJGBPZDH"); SQL.ParamByName("pJGBPZDH").Value = txtOLDJGBPZDH.Value.Trim(); db.ExecSQL(SQL); /*删除修改前产品目录的价格表记录*/ SQL.Clear(); SQL.Add("delete from XLXSJGBPZJGB where XLXSJGBPZJGB_JGBPZDH=:pJGBPZDH"); SQL.ParamByName("pJGBPZDH").Value = txtOLDJGBPZDH.Value.Trim(); db.ExecSQL(SQL); } base.AfterSave(db, ref ActionIsDone); } protected override bool Master_AfterSaveAction(object sender, EventArgs e) { txtOLDBJCLIDS.Value = cbxBJCLIDS.SelectedValue.Trim(); txtOLDJGBPZDH.Value = txtJGBPZDH.Text.Trim(); return base.Master_AfterSaveAction(sender, e); } protected override void AfterDelete(TDatabase db, ref bool ActionIsDone) { base.AfterDelete(db, ref ActionIsDone); db.ExecSQL(string.Format("delete from XLXSJGBPZJGB where XLXSJGBPZJGB_JGBPZDH='{0}'", txtJGBPZDH.Text.Trim())); db.ExecSQL(string.Format("delete from XLXSJGBPZCLHQFD where XLXSJGBPZCLHQFD_JGBPZDH='{0}'", txtJGBPZDH.Text.Trim())); } protected override void SetComboxItems() { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL sql = new TSQL(dberp); if (ControlState == TControlState.ctsBrowse) { TComboBox.SetComboBox("DBERP", cbxCPMLID, string.Format("select XLXSCPML_CPMLID,XLXSCPML_CPMLMC from XLXSCPML where XLXSCPML_CPMLID='{0}' order by XLXSCPML_CPMLID", cbxCPMLID.SelectedValue.Trim()), false); sql.Clear(); sql.Add("select XLXSBJCL_BJCLID,XLXSBJCL_BJCLMC from XLXSBJCL where 1=1 "); sql.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJCL_BJCLID", cbxBJCLIDS.SelectedValue.Trim())); sql.Add(" order by XLXSBJCL_BJCLID"); DataSet ds = dberp.OpenDataSet(sql); cbxBJCLIDS.ClearItems(); for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { cbxBJCLIDS.Items.Add(new ListItem(ds.Tables[0].Rows[i]["XLXSBJCL_BJCLMC"].ToString().Trim(), ds.Tables[0].Rows[i]["XLXSBJCL_BJCLID"].ToString().Trim())); } } else { TComboBox.SetComboBox("DBERP", cbxCPMLID, "select XLXSCPML_CPMLID,XLXSCPML_CPMLMC from XLXSCPML where isnull(XLXSCPML_TYBZ,' ')<>'Y' and XLXSCPML_SJY = 'Y' order by XLXSCPML_CPMLID", false); sql.Clear(); sql.Add("select XLXSBJCL_BJCLID,XLXSBJCL_BJCLMC from XLXSBJCL where XLXSBJCL_CLHQFD='Y' and isnull(XLXSBJCL_TYBZ,'N') <> 'Y' "); sql.Add(" order by XLXSBJCL_BJCLID"); DataSet ds = dberp.OpenDataSet(sql); cbxBJCLIDS.ClearItems(); for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { cbxBJCLIDS.Items.Add(new ListItem(ds.Tables[0].Rows[i]["XLXSBJCL_BJCLMC"].ToString().Trim(), ds.Tables[0].Rows[i]["XLXSBJCL_BJCLID"].ToString().Trim())); } } base.SetComboxItems(); } #endregion #region 自定义事件 private void InitControls() { cbxMXBH.ClearItems(); cbxMXBH.Items.Add(new ListItem("报价价格表", "JGB")); cbxMXBH.Items.Add(new ListItem("基价价格表", "JGC")); cbxTJYS.ClearItems(); cbxTJYS.Items.Add(new ListItem("表价(出厂价)=基价(材料价)&调价", "1")); cbxTJYS.Items.Add(new ListItem("表价(区域价)=基价(出厂价)&调价", "2")); } #endregion #region 控件事件 #endregion } }