Files
N_XLXSBJ----MX/TZYZBJInfo.aspx.cs
2026-10-09 10:30:49 +08:00

1265 lines
56 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 TZYZBJInfo : SingleCardBase
{
XLXSTZYZ entity = new XLXSTZYZ();
#region Page类事件继承
protected void Page_Load(object sender, EventArgs e)
{
this.UMID = 100860005;
this.UMName = "线缆销售报价报价单调价因子";
this.CurMaster = Master;
this.CurEntity = entity;
this.PageHeight = 500;
this.PageWidth = 500;
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;
//是否注册100860122|报价产品辐照工序模块且配置辐照费因子ID
if (DSActiveModule.IsActiveModule(100860122))
{
chkSFFZF.Visible = true;
}
else
chkSFFZF.Visible = false;
if (ControlState != TControlState.ctsBrowse)
{
if (cbxTJYS.SelectedValue.Equals("A"))
{
chkSFFZF.Enabled = true;
}
else
{
chkSFFZF.Enabled = false;
}
if (YZIDisUsed(txtYZID.Text.Trim()))
cbxTJLX.Enabled = false;
else
cbxTJLX.Enabled = true;
//因子值只读控制只读事务
if (chkYZZZD.Checked)
{
cbxZDWPIDLIST.Enabled = true;
}
else
{
cbxZDWPIDLIST.Enabled = false;
}
}
if (ControlState == TControlState.ctsEdit)
{
if (cbxTJLX.SelectedValue.Trim().Equals("2"))//调因子值
{
cbxTYZZYZID.Enabled = false;
chkHCBZ.Checked = false;
chkHCBZ.Enabled = false;
chkBCYTJ.Checked = false;
chkBCYTJ.Enabled = false;
cbxWPIDLIST.Enabled = false;
}
else//调价格
{
cbxTYZZYZID.Enabled = true;
chkHCBZ.Enabled = true;
chkBCYTJ.Enabled = true;
cbxWPIDLIST.Enabled = true;
}
}
if (cbxJJFS.SelectedValue.Trim().Equals("MX") || cbxJJFS.SelectedValue.Trim().Equals("DX"))
{
txtZDYZZ.DecimalPlaces = 4;
txtZXYZZ.DecimalPlaces = 4;
}
else
{
txtZDYZZ.DecimalPlaces = 2;
txtZXYZZ.DecimalPlaces = 2;
}
if (!cbxTJYS.SelectedValue.Trim().Equals("7") && !cbxTJYS.SelectedValue.Trim().Equals("E") && !cbxTJYS.SelectedValue.Trim().Equals("M") && !cbxTJYS.SelectedValue.Trim().Equals("A"))
cbxMRTBYZ.Enabled = false;
}
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 = "BJD";
txtXSXH.Value = getNewXH();
chkBCYTJ.Checked = false;
chkHCBZ.Checked = false;
cbxTJLX.SelectedValue = "1";
txtWHR.Text = tSession.UserName;
txtWHRID.Value = tSession.UserId;
datWHSJ.Text = CMISproConvert.ConvertTime(DateTime.Now);
}
protected override void OnCopyRecorder()
{
base.OnCopyRecorder();
cbxMXBH.Text = "BJD";
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;
if (cbxTYZZYZID.SelectedValue.Split(',').Length > 2)
{
ShowMessage("调因子值方式选择因子大于2个,不允许保存!");
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 (!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;
}
}
//若调价因素选择“6|报价数量区间调价米数/报价数量”,保存时控制调价方式必须是“JD|加点”
if (cbxTJYS.SelectedValue.Trim().Equals("6"))
{
if (!cbxJJFS.SelectedValue.Trim().Equals("JD"))
{
ShowMessage("当前调价因素暂时只支持“乘以(1+加点(%))”一种调价方式!");
return false;
}
}
//若调价因素选择“F|导体材料&电压&芯线结构&报价数量区间/报价数量”,保存时控制调价方式必须是“JJ|加价”
if (cbxTJYS.SelectedValue.Trim().Equals("F") || cbxTJYS.SelectedValue.Trim().Equals("H") || cbxTJYS.SelectedValue.Trim().Equals("K"))
{
if (!cbxJJFS.SelectedValue.Trim().Equals("JJ"))
{
ShowMessage("当前调价因素暂时只支持“加价(元)”一种调价方式!");
return false;
}
}
if (cbxTJMK.SelectedValue.Equals("102585000"))
{
if (!cbxJJFS.SelectedValue.Trim().Equals("JJ"))
{
ShowMessage("当前调价模块暂时只支持“加价(元)”一种调价方式!");
return false;
}
}
if (chkABJCPJYYZZ.Checked)
{
if (!cbxTJYS.SelectedValue.Trim().Equals("F") && !cbxTJYS.SelectedValue.Trim().Equals("E") && !cbxTJYS.SelectedValue.Trim().Equals("G") && !cbxTJYS.SelectedValue.Trim().Equals("H")
&& !cbxTJYS.SelectedValue.Trim().Equals("2") && !cbxTJYS.SelectedValue.Trim().Equals("3") && !cbxTJYS.SelectedValue.Trim().Equals("6"))
{
ShowMessage("按报价产品校验因子值仅调价因素包含报价数量才可以勾选!");
return false;
}
}
//校验
/*
select XLXSBJFLYZ_BJFLID,XLXSBJFLYZ_YZID,XLXSTZYZ_JJFS,
case when XLXSTZYZ_JJFS= 'JJ' then 0 else 1 end as CCC,XLXSTZYZ_XSXH from XLXSBJFLYZ
left join XLXSTZYZ on XLXSTZYZ_YZID = XLXSBJFLYZ_YZID
where 1=1
and isnull(XLXSTZYZ_BCYTJ,'N') <> 'Y'
AND XLXSBJFLYZ_BJFLID in (
select XLXSBJFLYZ_BJFLID from XLXSBJFLYZ
left join XLXSTZYZ on XLXSTZYZ_YZID = XLXSBJFLYZ_YZID
where 1=1
and isnull(XLXSTZYZ_BCYTJ,'N') <> 'Y'
AND XLXSTZYZ_JJFS = 'JJ'
)
and XLXSBJFLYZ_YZID <>' '
order by XLXSBJFLYZ_BJFLID,XLXSTZYZ_XSXH
*/
Dictionary<string, string> dicXLXSTZYZ = new Dictionary<string, string>();
int flag = 0;
string sBJFLID = "";
sql.Clear();
sql.Add(" select distinct XLXSBJFLYZ_BJFLID from XLXSBJFLYZ ");
sql.Add(" left join XLXSTZYZ on XLXSTZYZ_YZID = XLXSBJFLYZ_YZID ");
sql.Add(" where 1=1 ");
//反向逻辑存在需要把不参与调价的加进来
sql.Add(" and XLXSBJFLYZ_YZID=:pYZID ");
sql.Add(" order by XLXSBJFLYZ_BJFLID ");
sql.ParamByName("pYZID").Value = txtYZID.Text.Trim();
DataSet dsBJDYZ = dberp.OpenDataSet(sql);
if (dsBJDYZ.Tables[0].Rows.Count > 0)
{
for (int i = 0; i < dsBJDYZ.Tables[0].Rows.Count; i++)
{
sBJFLID = dsBJDYZ.Tables[0].Rows[i]["XLXSBJFLYZ_BJFLID"].ToString().Trim();
if (IsQYGS(sBJFLID))
continue;
dicXLXSTZYZ.Clear();
sql.Clear();
sql.Add(" select XLXSBJFLYZ_YZID,XLXSTZYZ_JJFS,XLXSTZYZ_XSXH from XLXSBJFLYZ ");
sql.Add(" left join XLXSTZYZ on XLXSTZYZ_YZID = XLXSBJFLYZ_YZID ");
sql.Add(" where XLXSBJFLYZ_BJFLID =:pJGBID and XLXSTZYZ_TJLX='1' ");
sql.Add(" and XLXSBJFLYZ_YZID <> :pYZID ");
sql.Add(" and isnull(XLXSTZYZ_BCYTJ,'N') <> 'Y' ");
sql.Add(" order by XLXSTZYZ_XSXH ");
sql.ParamByName("pJGBID").Value = sBJFLID;
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("BJ", "")) < CMISproConvert.StrToFloat(data.Tables[0].Rows[j]["XLXSBJFLYZ_YZID"].ToString().Trim().Replace("BJ", "")) && chkBCYTJ.Checked == false)
{
dicXLXSTZYZ.Add(txtYZID.Text.Trim(), cbxJJFS.SelectedValue.Trim());
}
dicXLXSTZYZ.Add(data.Tables[0].Rows[j]["XLXSBJFLYZ_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()) && chkBCYTJ.Checked == false)
{
dicXLXSTZYZ.Add(txtYZID.Text.Trim(), cbxJJFS.SelectedValue.Trim());
}
dicXLXSTZYZ.Add(data.Tables[0].Rows[j]["XLXSBJFLYZ_YZID"].ToString().Trim(), data.Tables[0].Rows[j]["XLXSTZYZ_JJFS"].ToString().Trim());
}
else
{
dicXLXSTZYZ.Add(data.Tables[0].Rows[j]["XLXSBJFLYZ_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("当前因子在报价分类【" + sBJFLID + "|" + getBJFLMC(sBJFLID) + "】不满足“加价因子必须全部在加点/扣点因子之前或者之后”规则,不允许调整顺序!");
return false;
}
}
string sMRTJFW = "," + drpMRTJFW.SelectedValue.Trim() + ",";
if (sMRTJFW.Contains(",2,") && sMRTJFW.Contains(",3,"))
{
ShowMessage("默认调价范围不允许同时选择外购产品和非外购产品!");
return false;
}
if (!cbxTJYS.SelectedValue.Trim().Equals("") && !drpMRTJFW.SelectedValue.Trim().Equals(""))
{
ShowMessage("调价因素不为空时,默认调价范围不允许设置!");
return false;
}
if (!cbxTJYS.SelectedValue.Trim().Equals("") && !cbxTJMK.SelectedValue.Trim().Equals("0") && !cbxTJMK.SelectedValue.Trim().Equals(""))
{
ShowMessage("调价因素不为空时,调价模块不允许设置!");
return false;
}
if (cbxTJMK.SelectedValue.Trim().Equals("100860080") && !cbxJJFS.SelectedValue.Trim().Equals("JJ"))
{
ShowMessage("调价模块为线缆销售报价单盘费时,调价方式必须为“加价(元)”!");
return false;
}
//100860124|按包装长度包装方式调盘费
if (cbxTJMK.SelectedValue.Trim().Equals("100860124") && !cbxJJFS.SelectedValue.Trim().Equals("JJ"))
{
ShowMessage("调价模块为按包装长度包装方式调盘费时,调价方式必须为“加价(元)”!");
return false;
}
//100860162|按产品外径报价数量区间调盘费
if (cbxTJMK.SelectedValue.Trim().Equals("100860162") && !cbxJJFS.SelectedValue.Trim().Equals("JJ"))
{
ShowMessage("调价模块为按产品外径报价数量区间调盘费时,调价方式必须为“加价(元)”!");
return false;
}
if (cbxTJMK.SelectedValue.Trim().Equals("100860124") || cbxTJMK.SelectedValue.Trim().Equals("100860162"))
{
if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from XLXSTZYZ WHERE XLXSTZYZ_MXBH='BJD' AND XLXSTZYZ_YZID<>'{0}' AND XLXSTZYZ_TJMDID IN (100860124,100860080,100860162)",
txtYZID.Text.Trim())))
{
ShowMessage("存在其他调价因子调价模块为线缆销售报价单盘费、按包装长度包装方式调盘费、按产品外径报价数量区间调盘费,不允许保存!");
return false;
}
}
if (cbxTJMK.SelectedValue.Trim().Equals("100860080"))
{
if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from XLXSTZYZ WHERE XLXSTZYZ_MXBH='BJD' AND XLXSTZYZ_YZID<>'{0}' AND XLXSTZYZ_TJMDID IN (100860124,100860162)",
txtYZID.Text.Trim())))
{
ShowMessage("存在其他调价因子调价模块为按包装长度包装方式调盘费,不允许保存!");
return false;
}
}
if (cbxJJFS.SelectedValue.Trim() == "SX")
{
string sSQL = string.Format("select 1 from XLXSBJFL left join XLXSBJFLYZ on XLXSBJFLYZ_BJFLID=XLXSBJFL_BJFLID where XLXSBJFLYZ_YZID='{0}' and isnull(XLXSBJFL_TZQCPBJGS,' ')<>' '", txtYZID.Text.Trim());
if (CMISproDataBase.ExistsRecord("DBERP", sSQL))
{
ShowMessage("存在启用公式的报价分类使用当前调价因子,不允许修改调价方式为【上点除、下点乘】!");
return false;
}
}
if (cbxTJMK.SelectedValue.Trim().Equals("100860080"))
{
if (XLBJDUtils.GetXLXSBJPZXX(100860000).XLXSBJPZ_PFBJRBJ=="Y")
{
ShowMessage("已配置盘费不计入报价,不允许配置盘费因子!");
return false;
}
}
if (chkBJSDTZFSYZZ.Checked)
{
sql.Clear();
sql.Add(" select XLXSTZYZ_YZMC from XLXSTZYZ where XLXSTZYZ_MXBH = 'BJD' and isnull(XLXSTZYZ_BJSDTZFSYZZ,'N') = 'Y' and XLXSTZYZ_YZID <> :pYZID ");//SQL语句自测:刘青棚 2025/04/01 23:30:00
sql.ParamByName("pYZID").Value = txtYZID.Text.Trim();
dsBJDYZ = dberp.OpenDataSet(sql);
if (dsBJDYZ.Tables[0].Rows.Count>0)
{
ShowMessage(dsBJDYZ.Tables[0].Rows[0]["XLXSTZYZ_YZMC"].ToString().Trim() + "已勾选报价手动调整反算因子值,不允许重复勾选!");
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,'BJD',: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("D"))
sJGBMC = "报价单调价因子价格表-颜色&主芯截面范围";
else if (cbxTJYS.SelectedValue.Trim().Equals("E"))
sJGBMC = "报价单调价因子价格表-型号&电压&主芯截面范围&报价数量区间";
else if (cbxTJYS.SelectedValue.Trim().Equals("F"))
sJGBMC = "报价单调价因子价格表-导体材料&电压&芯线结构&报价数量区间加价/报价数量";
else if (cbxTJYS.SelectedValue.Trim().Equals("G"))
sJGBMC = "报价单调价因子价格表-电压&芯线结构&导体&主芯截面&报价数量";
else if (cbxTJYS.SelectedValue.Trim().Equals("H"))
sJGBMC = "报价单调价因子价格表-型号&电压等级&颜色&主芯截面范围&报价数量区间加价/报价数量";
else if (cbxTJYS.SelectedValue.Trim().Equals("I"))
sJGBMC = "报价单调价因子价格表-工艺分类&导体类型&电压等级&主芯截面范围";
else if (cbxTJYS.SelectedValue.Trim().Equals("J"))
sJGBMC = "报价单调价因子价格表-线缆特征类型&特征";
else if (cbxTJYS.SelectedValue.Trim().Equals("K"))
sJGBMC = "报价单调价因子价格表-导体类型&电压等级/材料重量";
else if (cbxTJYS.SelectedValue.Trim().Equals("M"))
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();
}
base.AfterSave(db, ref ActionIsDone);
}
protected override bool Master_AfterSaveAction(object sender, EventArgs e)
{
CacheNotify.TableIsUpdated("DBERP", "XLXSTZYZ");
if (NeedChangeJSGS())
{
TDatabase db = TContextDatabases.GetDatabase("DBERP");
TSQL sql = new TSQL(db);
string sMessage = string.Empty;
sql.Clear();
sql.Add("select XLXSBJFLYZ_BJFLID,XLXSBJFL_BJFLMC from XLXSBJFLYZ left join XLXSBJFL on XLXSBJFLYZ_BJFLID=XLXSBJFL_BJFLID where XLXSBJFLYZ_YZID=:pYZID and isnull(XLXSBJFL_TZQCPBJGS,' ') <> ' ' ");
sql.ParamByName("pYZID").Value = txtYZID.Text.Trim();
DataSet ds = db.OpenDataSet(sql);
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
string sBJFLID = ds.Tables[0].Rows[i]["XLXSBJFLYZ_BJFLID"].ToString().Trim();
string sBJFLMC = ds.Tables[0].Rows[i]["XLXSBJFL_BJFLMC"].ToString().Trim();
string sTZQCPBJGS = GetJSGS(sBJFLID);
sql.Clear();
sql.Add("update XLXSBJFL set XLXSBJFL_TZQCPBJGS=:pTZQCPBJGS where XLXSBJFL_BJFLID=:pBJFLID");
sql.ParamByName("pTZQCPBJGS").Value = sTZQCPBJGS;
sql.ParamByName("pBJFLID").Value = sBJFLID;
db.ExecSQL(sql);
sMessage += "【" + sBJFLID + "|" + sBJFLMC + "】已重新生成公式!\r\n";
}
ShowMessage(sMessage);
}
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()
{
List<JGBMLXX> jgbxx_List = XLBJDUtils.GetXLXSJGBXXList("BJD");
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;
}
if (ControlState == TControlState.ctsBrowse)
{
TComboBox.SetComboBox("DBERP", cbxTJYZID, "select XLXSTZYZ_YZID as ID,XLXSTZYZ_YZID as Name from XLXSTZYZ where XLXSTZYZ_MXBH='BJD' order by XLXSTZYZ_XSXH,ID", false);
setcbxTYZZYZID();
cbxJJFS.ClearItems();
cbxJJFS.Items.Add(new ListItem("乘以(1+加点(%))", "JD"));
if (cbxTJLX.SelectedValue.Trim().Equals("2"))//调因子值
cbxJJFS.Items.Add(new ListItem("加点", "JJ"));
else
cbxJJFS.Items.Add(new ListItem("加价(元)", "JJ"));
cbxJJFS.Items.Add(new ListItem("除以(1-扣点(%))", "KD"));
cbxJJFS.Items.Add(new ListItem("乘以(系数)", "MX"));
cbxJJFS.Items.Add(new ListItem("乘以(%)", "MP"));
cbxJJFS.Items.Add(new ListItem("除以(系数)", "DX"));
cbxJJFS.Items.Add(new ListItem("上点除、下点乘", "SX"));
cbxJJFS.Items.Add(new ListItem("乘以(1-下点(%))", "MD"));
cbxJJFS.Items.Add(new ListItem("除以(1+上点(%))", "DD"));
}
else if (ControlState == TControlState.ctsEdit)
{
if (cbxTJLX.SelectedValue.Trim().Equals("2"))//调因子值
{
cbxTJYZID.ClearItems();
cbxTJYZID.Items.Add(new ListItem(txtYZID.Text.Trim(), txtYZID.Text.Trim()));
cbxTJYZID.SelectedValue = txtYZID.Text.Trim();
cbxJJFS.ClearItems();
cbxJJFS.Items.Add(new ListItem("乘以(1+加点(%))", "JD"));
cbxJJFS.Items.Add(new ListItem("加点", "JJ"));
cbxJJFS.Items.Add(new ListItem("除以(1-扣点(%))", "KD"));
}
else//调价格
{
TComboBox.SetComboBox("DBERP", cbxTJYZID, "select XLXSTZYZ_YZID as ID,XLXSTZYZ_YZID as Name from XLXSTZYZ where XLXSTZYZ_MXBH='BJD' and XLXSTZYZ_TJLX='1' order by XLXSTZYZ_XSXH,ID", false);
setcbxTYZZYZID();
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("乘以(系数)", "MX"));
cbxJJFS.Items.Add(new ListItem("乘以(%)", "MP"));
cbxJJFS.Items.Add(new ListItem("除以(系数)", "DX"));
cbxJJFS.Items.Add(new ListItem("上点除、下点乘", "SX"));
cbxJJFS.Items.Add(new ListItem("乘以(1-下点(%))", "MD"));
cbxJJFS.Items.Add(new ListItem("除以(1+上点(%))", "DD"));
}
}
drpMRTJFW.ClearItems();
drpMRTJFW.Items.Add(new ListItem("有表价产品", "1"));
drpMRTJFW.Items.Add(new ListItem("外购产品", "2"));
drpMRTJFW.Items.Add(new ListItem("非外购产品", "3"));
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 = 'JZJ' ");
if (cbxTJYS.SelectedValue.Trim().Equals("7") || cbxTJYS.SelectedValue.Trim().Equals("E"))
SQL.Add(" and XLXSTZYZ_TJYS='4' ");
else if (cbxTJYS.SelectedValue.Trim().Equals("A"))
SQL.Add(" and XLXSTZYZ_TJYS='1' ");
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("BJD"));
cbxMXBH.ShowValue = false;
cbxTJLX.ClearItems();
cbxTJLX.Items.Add(new ListItem("调价格", "1"));
cbxTJLX.Items.Add(new ListItem("调因子值", "2"));
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("乘以(%)", "MP"));
cbxTYZZFS.Items.Add(new ListItem("除以(系数)", "DX"));
cbxTYZZFS.Items.Add(new ListItem("上点除、下点乘", "SX"));
cbxTYZZFS.Items.Add(new ListItem("乘以(1-下点(%))", "MD"));
cbxTYZZFS.Items.Add(new ListItem("除以(1+上点(%))", "DD"));
cbxTJMK.ClearItems();
cbxTJMK.Items.Add(new ListItem("", "0"));
if (DSActiveModule.IsActiveModule(100860071))
cbxTJMK.Items.Add(new ListItem("100860071|线缆销售报价单运费", "100860071"));
if (DSActiveModule.IsActiveModule(100860080))
cbxTJMK.Items.Add(new ListItem("100860080|线缆销售报价单盘费", "100860080"));
if (DSActiveModule.IsActiveModule(100860124))
cbxTJMK.Items.Add(new ListItem("100860124|按包装长度包装方式调盘费", "100860124"));
if (DSActiveModule.IsActiveModule(100860162))
cbxTJMK.Items.Add(new ListItem("100860162|按产品外径报价数量区间调盘费", "100860162"));
if (DSActiveModule.IsActiveModule(102577028))
cbxTJMK.Items.Add(new ListItem("102577028|中标服务费", "102577028"));
if (DSActiveModule.IsActiveModule(102585000))
cbxTJMK.Items.Add(new ListItem("102585000|开机费", "102585000"));
//cbxJJFS.ClearItems();
//cbxJJFS.Items.Add(new ListItem("乘以(1+加点(%))", "JD"));
//cbxJJFS.Items.Add(new ListItem("加价(元)", "JJ"));
//cbxJJFS.Items.Add(new ListItem("除以(1-扣点(%))", "KD"));
cbxTJYS.ClearItems();
cbxTJYS.Items.Add(new ListItem("", ""));
if (DSActiveModule.IsActiveModule(100860019))
cbxTJYS.Items.Add(new ListItem("1|付款方式", "1"));
if (DSActiveModule.IsActiveModule(100860021))
cbxTJYS.Items.Add(new ListItem("2|导体材料&电压区间&报价数量区间", "2"));
if (DSActiveModule.IsActiveModule(100860022))
cbxTJYS.Items.Add(new ListItem("3|产品用途&电压等级分类&报价数量区间", "3"));
if (DSActiveModule.IsActiveModule(100860028))
cbxTJYS.Items.Add(new ListItem("4|型号", "4"));
if (DSActiveModule.IsActiveModule(100860029))
cbxTJYS.Items.Add(new ListItem("5|销售区域&型号&标准&电压等级&主芯截面范围", "5"));
if (DSActiveModule.IsActiveModule(100860030))
cbxTJYS.Items.Add(new ListItem("6|报价数量区间调价米数/报价数量", "6"));
if (DSActiveModule.IsActiveModule(100860031))
cbxTJYS.Items.Add(new ListItem("7|型号&电压等级&芯线结构&主芯截面范围", "7"));
if (DSActiveModule.IsActiveModule(100860039))
cbxTJYS.Items.Add(new ListItem("8|付款期限", "8"));
if (DSActiveModule.IsActiveModule(100860040))
cbxTJYS.Items.Add(new ListItem("9|导体材料&产品用途&电压等级分类&产品特性", "9"));
if (DSActiveModule.IsActiveModule(100860041))
cbxTJYS.Items.Add(new ListItem("A|型号&规格&电压&标准", "A"));
if (DSActiveModule.IsActiveModule(100860054))
cbxTJYS.Items.Add(new ListItem("B|销售单位", "B"));
if (DSActiveModule.IsActiveModule(100860072))
cbxTJYS.Items.Add(new ListItem("C|产品目录&主芯截面范围&产品特性", "C"));
if (DSActiveModule.IsActiveModule(100860085))
cbxTJYS.Items.Add(new ListItem("D|颜色&主芯截面范围", "D"));
if (DSActiveModule.IsActiveModule(100860086))
cbxTJYS.Items.Add(new ListItem("E|型号&电压&主芯截面范围&报价数量区间", "E"));
if (DSActiveModule.IsActiveModule(100860089))
cbxTJYS.Items.Add(new ListItem("F|导体材料&电压&芯线结构&报价数量区间加价/报价数量", "F"));
if (DSActiveModule.IsActiveModule(100860133))
cbxTJYS.Items.Add(new ListItem("G|电压&芯线结构&导体材料&主芯截面范围&报价数量区间", "G"));
if (DSActiveModule.IsActiveModule(100860135))
cbxTJYS.Items.Add(new ListItem("H|型号&电压等级&颜色&主芯截面范围&报价数量区间加价/报价数量", "H"));
if (DSActiveModule.IsActiveModule(100860149))
cbxTJYS.Items.Add(new ListItem("I|工艺分类&导体类型&电压等级&主芯截面范围", "I"));
if (DSActiveModule.IsActiveModule(100860150))
cbxTJYS.Items.Add(new ListItem("J|线缆特征类型&特征", "J"));
if (DSActiveModule.IsActiveModule(100860152))
cbxTJYS.Items.Add(new ListItem("K|导体类型&电压等级/材料重量", "K"));
if (DSActiveModule.IsActiveModule(100860178))
cbxTJYS.Items.Add(new ListItem("M|型号&电压&规格&报价数量区间", "M"));
cbxTJYS.ShowValue = false;
//TComboBox.SetComboBox("DBERP", cbxTJYZID, "select XLXSTZYZ_YZID as ID,XLXSTZYZ_YZID as Name from XLXSTZYZ where XLXSTZYZ_MXBH='BJD' and XLXSTZYZ_TJLX='1' order by XLXSTZYZ_XSXH,ID", false);
//TComboBox.SetComboBox("DBERP", cbxTYZZYZID, "select XLXSTZYZ_YZID as ID,XLXSTZYZ_YZID as Name from XLXSTZYZ where XLXSTZYZ_MXBH='BJD' and XLXSTZYZ_TJLX='2' order by XLXSTZYZ_XSXH,ID", false);
WorkFlowUtils.SetCheckedDropDownList_WFPROC("XLXSBJ_BJD", cbxWPIDLIST);
WorkFlowUtils.SetCheckedDropDownList_WFPROC("XLXSBJ_BJD", cbxZDWPIDLIST);
}
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 'BJD'");
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()) + 100;
}
else
{
return 100;
}
}
private string getBJFLMC(string sBJFLID)
{
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
TSQL SQL = new TSQL(dberp);
SQL.Clear();
SQL.Add("SELECT XLXSBJFL_BJFLMC FROM XLXSBJFL WHERE 1=1 and XLXSBJFL_BJFLID = :pBJFLID ");
SQL.ParamByName("pBJFLID").Value = sBJFLID;
DataSet ds = dberp.OpenDataSet(SQL);
if (ds.Tables[0].Rows.Count > 0)
{
return ds.Tables[0].Rows[0][0].ToString().Trim();
}
else
{
return "";
}
}
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 XLXSBJFLYZ where XLXSBJFLYZ_YZID='{0}'", sYZID);
if (CMISproDataBase.ExistsRecord("DBERP", sSQL))
return true;
return false;
}
private bool IsQYGS(string sBJFLID)
{
if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from XLXSBJFL where XLXSBJFL_BJFLID='{0}' and isnull(XLXSBJFL_TZQCPBJGS,' ') <> ' ' ", sBJFLID)))
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='BJD' 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));
}
}
}
public static void GetTJBYZZFW(string sYZID, ref double dYZZXX, ref double dYZZSX)
{
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
TSQL SQL = new TSQL(dberp);
SQL.Add(" select XLXSTZYZ_TJBZXYZZ,XLXSTZYZ_TJBZDYZZ from XLXSTZYZ where XLXSTZYZ_MXBH = 'BJD' and XLXSTZYZ_YZID = :pYZID ");
SQL.ParamByName("pYZID").Value = sYZID;
DataSet ds = dberp.OpenDataSet(SQL);
if (ds.Tables[0].Rows.Count > 0)
{
dYZZXX = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["XLXSTZYZ_TJBZXYZZ"].ToString().Trim());
dYZZSX = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["XLXSTZYZ_TJBZDYZZ"].ToString().Trim());
}
}
#endregion
#region 控件事件
protected void cbxTJYS_SelectedIndexChanged(object sender, EventArgs e)
{
List<JGBMLXX> jgbxx_List = XLBJDUtils.GetXLXSJGBXXList("BJD");
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;
}
if (cbxTJYS.SelectedValue.Equals("A"))
{
chkSFFZF.Enabled = true;
}
else
{
chkSFFZF.Checked = false;
chkSFFZF.Enabled = false;
}
}
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;
chkHCBZ.Checked = false;
chkHCBZ.Enabled = false;
chkBCYTJ.Checked = false;
chkBCYTJ.Enabled = false;
cbxWPIDLIST.SelectedValue = "";
cbxWPIDLIST.Enabled = false;
cbxTJYZID.ClearItems();
cbxTJYZID.Items.Add(new ListItem(txtYZID.Text.Trim(), txtYZID.Text.Trim()));
cbxTJYZID.SelectedValue = txtYZID.Text.Trim();
cbxJJFS.ClearItems();
cbxJJFS.Items.Add(new ListItem("乘以(1+加点(%))", "JD"));
cbxJJFS.Items.Add(new ListItem("加点", "JJ"));
cbxJJFS.Items.Add(new ListItem("除以(1-扣点(%))", "KD"));
}
else//调价格
{
cbxTYZZYZID.Enabled = true;
chkHCBZ.Enabled = true;
chkBCYTJ.Enabled = true;
cbxWPIDLIST.Enabled = true;
setcbxTYZZYZID();
TComboBox.SetComboBox("DBERP", cbxTJYZID, "select XLXSTZYZ_YZID as ID,XLXSTZYZ_YZID as Name from XLXSTZYZ where XLXSTZYZ_MXBH='BJD' and (XLXSTZYZ_TJLX='1' or XLXSTZYZ_YZID='" + txtYZID.Text.Trim() + "') order by XLXSTZYZ_XSXH,ID", false);
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("乘以(系数)", "MX"));
cbxJJFS.Items.Add(new ListItem("乘以(%)", "MP"));
cbxJJFS.Items.Add(new ListItem("除以(系数)", "DX"));
cbxJJFS.Items.Add(new ListItem("上点除、下点乘", "SX"));
cbxJJFS.Items.Add(new ListItem("乘以(1-下点(%))", "MD"));
cbxJJFS.Items.Add(new ListItem("除以(1+上点(%))", "DD"));
}
}
}
protected void chkYZZZD_OnCheckedChanged(object sender, EventArgs e)
{
if (ControlState == TControlState.ctsInsert
|| ControlState == TControlState.ctsCopy
|| ControlState == TControlState.ctsEdit)
{
if (chkYZZZD.Checked)
{
cbxZDWPIDLIST.Enabled = true;
}
else
{
cbxZDWPIDLIST.SelectedValue = "";
cbxZDWPIDLIST.Enabled = false;
}
}
}
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='BJD' 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 = "";
}
}
protected void cbxJJFS_SelectedIndexChanged(object sender, EventArgs e)
{
if (cbxJJFS.SelectedValue.Trim().Equals("MX") || cbxJJFS.SelectedValue.Trim().Equals("DX"))
{
txtZDYZZ.DecimalPlaces = 4;
txtZXYZZ.DecimalPlaces = 4;
}
else
{
txtZDYZZ.DecimalPlaces = 2;
txtZXYZZ.DecimalPlaces = 2;
}
}
#endregion
#region 公用方法后续需要移至公用单元
private List<BJFLYZXX> GetBJFLYZXX(string sBJFLID, out Dictionary<string, string> YZJJFS)
{
YZJJFS = new Dictionary<string, string>();
List<BJFLYZXX> BJFLYZXX_List = new List<BJFLYZXX>();
List<XLXSBJFLYZXX> bjflYZ = XLBJDUtils.GetBJFLYZXXByBJFLID(sBJFLID);
if (bjflYZ.Count > 0)
{
foreach (XLXSBJFLYZXX sYZ in bjflYZ)
{
TZYZXX yzxx = XLBJDUtils.GetYZXXByYZID(sYZ.XLXSBJFLYZ_YZID);
BJFLYZXX bjFLYZXX = new BJFLYZXX();
bjFLYZXX.YZID = yzxx.XLXSTZYZ_YZID;
bjFLYZXX.JSXH = CMISproConvert.StrToFloat(yzxx.XLXSTZYZ_XSXH);
bjFLYZXX.TJLX = yzxx.XLXSTZYZ_TJLX;
bjFLYZXX.TJYZID = yzxx.XLXSTZYZ_TJYZID;
bjFLYZXX.TYZZYZID = yzxx.XLXSTZYZ_TYZZYZID;
bjFLYZXX.JJFS = yzxx.XLXSTZYZ_JJFS;
bjFLYZXX.YZZGS = yzxx.XLXSTZYZ_YZID;
BJFLYZXX_List.Add(bjFLYZXX);
YZJJFS[bjFLYZXX.YZID] = bjFLYZXX.JJFS;
}
}
if (IsTZZDXJContained(sBJFLID))
{
string sTZQCPBJGS = string.Empty;
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
TSQL SQL = new TSQL(dberp);
SQL.Clear();
SQL.Add("select XLXSBJFL_TZQCPBJGS from XLXSBJFL where XLXSBJFL_BJFLID=:pBJFLID");
SQL.ParamByName("pBJFLID").Value = sBJFLID;
DataSet ds = dberp.OpenDataSet(SQL);
if (ds.Tables[0].Rows.Count > 0)
{
double iTZZDXJXH = 0;
string sYZID = "TZZDXJ";
sTZQCPBJGS = ds.Tables[0].Rows[0][0].ToString().Trim();
// 查找 TZZDXJ 的索引
int tzzdxjIndex = sTZQCPBJGS.IndexOf("TZZDXJ");
int bjIndex = sTZQCPBJGS.Substring(0, tzzdxjIndex).LastIndexOf("BJ");
while (bjIndex != -1)
{
string sBJYZID = sTZQCPBJGS.Substring(bjIndex, 4);
if (XLBJDUtils.GetYZXXByYZID(sBJYZID).XLXSTZYZ_TJLX == "1" && XLBJDUtils.GetYZXXByYZID(sBJYZID).XLXSTZYZ_TJYZID.Equals(sBJYZID))
{
iTZZDXJXH = CMISproConvert.StrToFloat(XLBJDUtils.GetYZXXByYZID(sBJYZID).XLXSTZYZ_XSXH, 0) + 0.5;
break;
}
else
bjIndex = sTZQCPBJGS.Substring(0, bjIndex).LastIndexOf("BJ");
}
BJFLYZXX bjFLYZXX = new BJFLYZXX();
bjFLYZXX.YZID = sYZID;
bjFLYZXX.JSXH = iTZZDXJXH;
bjFLYZXX.TJLX = "1";
bjFLYZXX.TJYZID = sYZID;
bjFLYZXX.TYZZYZID = "";
bjFLYZXX.JJFS = "JD";
bjFLYZXX.YZZGS = sYZID;
BJFLYZXX_List.Add(bjFLYZXX);
YZJJFS[bjFLYZXX.YZID] = bjFLYZXX.JJFS;
}
}
BJFLYZXX_List.Sort(new BJFLYZXXComparer());
return BJFLYZXX_List;
}
private string GetJSGS(string sBJFLID)
{
Dictionary<string, string> YZJJFS = new Dictionary<string, string>();
List<BJFLYZXX> BJFLYZXX_List = GetBJFLYZXX(sBJFLID, out YZJJFS);
string formula = "JGBBJ";
//先调因子值
foreach (BJFLYZXX item in BJFLYZXX_List)
{
if ((!string.IsNullOrEmpty(item.TYZZYZID)) && item.TJLX == "1")
{
string[] sTZYZZYZIDList = item.TYZZYZID.Split(',');
for (int i = 0; i < sTZYZZYZIDList.Length; i++)
{
if (YZJJFS.ContainsKey(sTZYZZYZIDList[i]))
item.YZZGS = GetJSGSbyJJFS(item.YZZGS, sTZYZZYZIDList[i], YZJJFS[sTZYZZYZIDList[i]]);
}
}
}
//再按分组相加
Dictionary<string, BJFLYZXX> groupedSums = new Dictionary<string, BJFLYZXX>();
foreach (BJFLYZXX item in BJFLYZXX_List)
{
if (item.TJLX == "1")
{
if (groupedSums.ContainsKey(item.TJYZID))
{
groupedSums[item.TJYZID].YZZGS = "(" + groupedSums[item.TJYZID].YZZGS + "+" + item.YZZGS + ")";
}
else
{
groupedSums[item.TJYZID] = item;
}
}
}
//生成计算公式
foreach (BJFLYZXX item in groupedSums.Values)
{
formula = GetJSGSbyJJFS(formula, item);
}
return formula;
}
private string GetJSGSbyJJFS(string sformula, string sYZZGS, string sJJFS)
{
switch (sJJFS)
{
case "JD": return sformula + "*(1+" + sYZZGS + "/100)";
case "KD": return sformula + "/(1-" + sYZZGS + "/100)";
case "DD": return sformula + "/(1+" + sYZZGS + "/100)";
case "MD": return sformula + "*(1-" + sYZZGS + "/100)";
case "JJ": return "(" + sformula + "+" + sYZZGS + ")";
case "MX": return sformula + "*" + sYZZGS;
case "MP": return sformula + "*(" + sYZZGS + "/100.00)";
case "DX": return sformula + "/(" + sYZZGS + ")";
default: return sformula;
}
}
private string GetJSGSbyJJFS(string sformula, BJFLYZXX bJFLYZXX)
{
return GetJSGSbyJJFS(sformula, bJFLYZXX.YZZGS, bJFLYZXX.JJFS);
}
private bool IsTZZDXJContained(string sBJFLID)
{
if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from XLXSBJFL where XLXSBJFL_TZQCPBJGS like '%TZZDXJ%' and XLXSBJFL_BJFLID='{0}'", sBJFLID)))
return true;
return false;
}
#endregion
}
}