Files
N_XLJC--MX/CPMLInfo.aspx.cs
T
2026-08-21 17:02:49 +08:00

366 lines
13 KiB
C#

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_XLJC
{
public partial class CPMLInfo : SingleCardBase
{
CPML entity = new CPML();
protected void Page_Load(object sender, EventArgs e)
{
this.UMID = 101421007;
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("XLXSCPML_CPMLID", PageParam.GetRTrimString("XLXSCPML_CPMLID"));
}
else
{
this.CurEntity.Param.Add("XLXSCPML_CPMLID", txtOLDCPMLID.Value);
}
base.LoadRecord();
}
protected override void OnNewRecorder()
{
base.OnNewRecorder();
datQYSJ.Text = CMISproConvert.ConvertDate(DateTime.Now.ToString());
chkTYBZ.Checked = false;
txtWHR.Text = tSession.UserName;
txtWHRID.Value = tSession.UserId;
datWHSJ.Value = CMISproConvert.ConvertTime(DateTime.Now);
chkSJY.Checked = true;
chkBJY.Checked = true;
chkTJY.Checked = true;
}
protected override void OnCopyRecorder()
{
base.OnCopyRecorder();
datQYSJ.Text = CMISproConvert.ConvertDate(DateTime.Now.ToString());
chkTYBZ.Checked = false;
datTYSJ.Text = "";
txtWHR.Text = tSession.UserName;
txtWHRID.Value = tSession.UserId;
datWHSJ.Value = CMISproConvert.ConvertTime(DateTime.Now);
}
protected override bool DataLogicValid()
{
if (cbxCPMLLX.SelectedValue.Trim().Equals("Y"))//组合
{
if (cbxCPMLIDS.SelectedValue.Trim().Equals(""))
{
ShowMessage("请选择组合产品目录包含的单一产品目录!");
return false;
}
}
if (datQYSJ.Text.Trim() != "" && datTYSJ.Text.Trim() != "")
{
if (Convert.ToDateTime(datQYSJ.Text.Trim()) > Convert.ToDateTime(datTYSJ.Text.Trim()))
{
ShowMessage("停用日期不允许小于启用日期!");
return false;
}
}
if ((!chkSJY.Checked) && (!chkBJY.Checked) && (!chkTJY.Checked))
{
ShowMessage("【设计】、【对外展示】、【调价】不允许同时不勾!");
return false;
}
if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from XLXSCPML where XLXSCPML_CPMLMC ='{0}' and XLXSCPML_CPMLID <>'{1}' ", txtCPMLMC.Text.Trim(), txtOLDCPMLID.Value.Trim())))
{
ShowMessage(string.Format("已存在产品目录名称为【{0}】的记录,不允许保存!", txtCPMLMC.Text.Trim()));
return false;
}
return base.DataLogicValid();
}
protected override bool Master_BeforeDeleteAction(object sender, EventArgs e)
{
if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from XLXSCPML where isnull(XLXSCPML_CPMLIDS,' ')<>' ' and ','||rtrim(XLXSCPML_CPMLIDS)||',' like '{0}'",
"%," + txtCPMLID.Text.Trim() + ",%")))
{
ShowMessage("已被组合产品目录引用,不允许删除!");
return false;
}
string sCPMLID = txtCPMLID.Text.Trim();
//XLXSCLQD_CPMLID
string sSQL = string.Format("select top 1 XLXSCLQD_JGCZBID from XLXSCLQD where XLXSCLQD_CPMLID = '{0}' ",
sCPMLID);
if (CMISproDataBase.ExistsRecord("DBERP", sSQL))
{
ShowMessage("已被线缆销售材料清单使用,不允许删除!");
return false;
}
//XLJGCZBML_CPMLID
sSQL = string.Format("select top 1 XLJGCZBML_JGCZBID from XLJGCZBML where XLJGCZBML_CPMLID = '{0}' ",
sCPMLID);
if (CMISproDataBase.ExistsRecord("DBERP", sSQL))
{
ShowMessage("已被线缆结构尺重表目录使用,不允许删除!");
return false;
}
//XLXSBJXHML_CPMLID
sSQL = string.Format("select top 1 XLXSBJXHML_XLXHID from XLXSBJXHML where XLXSBJXHML_CPMLID = '{0}' ",
sCPMLID);
if (CMISproDataBase.ExistsRecord("DBERP", sSQL))
{
ShowMessage("已被线缆销售报价型号目录使用,不允许删除!");
return false;
}
//XLXSBJTJXHML_CPMLID
sSQL = string.Format("select top 1 XLXSBJTJXHML_XLXHID from XLXSBJTJXHML where XLXSBJTJXHML_CPMLID = '{0}' ",
sCPMLID);
if (CMISproDataBase.ExistsRecord("DBERP", sSQL))
{
ShowMessage("已被线缆销售报价调价型号目录使用,不允许删除!");
return false;
}
return base.Master_BeforeDeleteAction(sender, e);
}
protected override void BeforeSave(TDatabase db, ref bool ActionIsDone)
{
txtWHR.Text = tSession.UserName;
txtWHRID.Value = tSession.UserId;
datWHSJ.Value = CMISproConvert.ConvertTime(DateTime.Now);
base.BeforeSave(db, ref ActionIsDone);
}
protected override void SetControlState()
{
base.SetControlState();
txtWHR.Enabled = false;
datWHSJ.Enabled = false;
if (ControlState != TControlState.ctsBrowse)
{
if (cbxCPMLLX.SelectedValue.Trim().Equals("Y"))//组合
{
cbxCPMLIDS.Enabled = true;
}
else
{
cbxCPMLIDS.Enabled = false;
}
}
string sCPMLID = txtCPMLID.Text.Trim();
if (ControlState == TControlState.ctsEdit)
{
//已被组合产品目录、线缆销售报价型号目录、线缆销售报价调价型号目录引用
string sSQL_XLXSCPML=string.Format("select 1 from XLXSCPML where isnull(XLXSCPML_CPMLIDS,' ')<>' ' and ','||rtrim(XLXSCPML_CPMLIDS)||',' like '{0}'",
"%," + sCPMLID + ",%");
string sSQL_XLXSBJXHML = string.Format("select top 1 XLXSBJXHML_XLXHID from XLXSBJXHML where XLXSBJXHML_CPMLID = '{0}' ",sCPMLID);
string sSQL_XLXSBJTJXHML = string.Format("select top 1 XLXSBJTJXHML_XLXHID from XLXSBJTJXHML where XLXSBJTJXHML_CPMLID = '{0}' ", sCPMLID);
bool bCPMLYY = CMISproDataBase.ExistsRecord("DBERP", sSQL_XLXSCPML);
bool bXHMLYY = CMISproDataBase.ExistsRecord("DBERP", sSQL_XLXSBJXHML);
bool bTJXHMLYY = CMISproDataBase.ExistsRecord("DBERP", sSQL_XLXSBJTJXHML);
if (bCPMLYY || bXHMLYY || bTJXHMLYY)
{
txtCPMLID.Enabled = false;
cbxCPMLLX.Enabled = false;
if (bXHMLYY)
chkBJY.Enabled = false;
if (bTJXHMLYY)
chkTJY.Enabled = false;
}
//产品目录已被XLXSCLQD_CPMLID、XLJGCZBML_CPMLID使用
string sSQL_XLXSCLQD = string.Format("select top 1 XLXSCLQD_JGCZBID from XLXSCLQD where XLXSCLQD_CPMLID = '{0}' ",
sCPMLID);
string sSQL_XLJGCZBML = string.Format("select top 1 XLJGCZBML_JGCZBID from XLJGCZBML where XLJGCZBML_CPMLID = '{0}' ",
sCPMLID);
if (CMISproDataBase.ExistsRecord("DBERP", sSQL_XLXSCLQD) || CMISproDataBase.ExistsRecord("DBERP", sSQL_XLJGCZBML))
{
txtCPMLID.Enabled = false;
}
}
else if (ControlState == TControlState.ctsInsert || ControlState == TControlState.ctsCopy)
{
txtCPMLID.Enabled = true;
chkBJY.Enabled = true;
chkTJY.Enabled = true;
}
}
protected override void AfterSave(TDatabase db, ref bool ActionIsDone)
{
TSQL SQL = new TSQL(db);
SQL.Clear();
SQL.Add(" merge into XLXSCPML a ");
SQL.Add(" using ");
SQL.Add("( ");
SQL.Add("select ");
SQL.Add(" XLXSCPML_CPMLID, ");
SQL.Add(" row_number() ");
SQL.Add(" over(order by XLXSCPML_XSXH,XLXSCPML_CPMLID) as XH ");
SQL.Add(" from XLXSCPML");
SQL.Add(" where 1=1 ");
SQL.Add(" ) b ");
SQL.Add(" on( ");
SQL.Add(" a.XLXSCPML_CPMLID=b.XLXSCPML_CPMLID ");
SQL.Add(" ) ");
SQL.Add(" when matched then update set a.XLXSCPML_XSXH=b.XH ");
db.ExecSQL(SQL);
SQL.Clear();
SQL.Add("select XLXSCPML_XSXH from XLXSCPML where XLXSCPML_CPMLID=:pCPMLID");
SQL.ParamByName("pCPMLID").Value = txtCPMLID.Text.Trim();
DataSet ds = db.OpenDataSet(SQL);
if (ds.Tables[0].Rows.Count > 0)
{
txtXSXH.Value = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["XLXSCPML_XSXH"].ToString());
}
base.AfterSave(db, ref ActionIsDone);
}
protected override void SetComboxItems()
{
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
TSQL sql = new TSQL(dberp);
if (ControlState == TControlState.ctsBrowse)
{
sql.Clear();
sql.Add("select XLXSCPML_CPMLID,XLXSCPML_CPMLMC from XLXSCPML where 1=1 and " + CMISproDataBase.GetWhereEqual("XLXSCPML_CPMLID", cbxCPMLIDS.SelectedValue.Trim()) + " order by XLXSCPML_CPMLID");
DataSet ds = dberp.OpenDataSet(sql);
cbxCPMLIDS.ClearItems();
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
cbxCPMLIDS.Items.Add(new ListItem(ds.Tables[0].Rows[i]["XLXSCPML_CPMLMC"].ToString().Trim(), ds.Tables[0].Rows[i]["XLXSCPML_CPMLID"].ToString().Trim()));
}
}
else
{
//被组合产品目录引用的单一产品目录一定只能是基价价格表模型的
sql.Clear();
sql.Add("select XLXSCPML_CPMLID,XLXSCPML_CPMLMC from XLXSCPML where XLXSCPML_CPMLLX='N' and isnull(XLXSCPML_TYBZ,' ')<>'Y' order by XLXSCPML_CPMLID");
DataSet ds = dberp.OpenDataSet(sql);
cbxCPMLIDS.ClearItems();
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
cbxCPMLIDS.Items.Add(new ListItem(ds.Tables[0].Rows[i]["XLXSCPML_CPMLMC"].ToString().Trim(), ds.Tables[0].Rows[i]["XLXSCPML_CPMLID"].ToString().Trim()));
}
}
base.SetComboxItems();
}
protected override bool Master_AfterSaveAction(object sender, EventArgs e)
{
txtOLDCPMLID.Value = txtCPMLID.Text.Trim();
return base.Master_AfterSaveAction(sender, e);
}
#endregion
#region 自定义事件
private void InitControls()
{
cbxCPMLLX.ClearItems();
cbxCPMLLX.Items.Add(new ListItem("组合产品目录", "Y"));
cbxCPMLLX.Items.Add(new ListItem("单一产品目录", "N"));
}
#endregion
#region 控件事件
protected void cbxCPMLLX_SelectedIndexChanged(object sender, EventArgs e)
{
if (cbxCPMLLX.SelectedValue.Trim().Equals("Y"))//组合
{
cbxCPMLIDS.Enabled = true;
}
else
{
cbxCPMLIDS.SelectedValue = "";
cbxCPMLIDS.Enabled = false;
}
}
protected void chkTYBZ_CheckedChanged(object sender, EventArgs e)
{
if (chkTYBZ.Checked)
{
if (datTYSJ.Text.Trim().Equals(""))
{
datTYSJ.Text = CMISproConvert.ConvertDate(DateTime.Now.ToString());
}
}
else if (chkTYBZ.Checked == false)
{
datQYSJ.Text = CMISproConvert.ConvertDate(DateTime.Now.ToString());
datTYSJ.Text = "";
}
}
protected void datTYSJ_TextChanged(object sender, EventArgs e)
{
if (!datTYSJ.Text.Trim().Equals(""))
{
if (chkTYBZ.Checked == false)
{
chkTYBZ.Checked = true;
}
}
}
#endregion
}
}