1265 lines
56 KiB
C#
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
|
|
}
|
|
}
|
|
|
|
|