Files
N_XLXSBJ----MX/TZYZJJInfo.aspx.cs
T
2026-08-21 17:03:02 +08:00

929 lines
40 KiB
C#

#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<string, string> dicXLXSTZYZ = new Dictionary<string, string>();
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<string> lst = new List<string>();
lst.Clear();
//如果是扣点/加点,则加入 1 如果是加价则加入 0,最终形成:空或者01或者10或者1或者0,不能形成101形式或者010形式或者1010等大于2个数据的形式
foreach (KeyValuePair<string, string> 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<JGBMLXX> 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<JGBMLXX> 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
}
}