Files
2026-10-09 10:30:49 +08:00

2180 lines
107 KiB
C#

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using GThinking.N_MISPRO;
using GThinking.N_MODEL.Page;
using GThinking.N_MISPRO.Utility;
using GThinking.N_CONTROL;
using GThinking.N_MISPRO.Data;
using GThinking.N_MISPRO.TableCache;
using GThinking.N_PUBLIC;
using GThinking.N_MISPRO.Caching;
using System.Collections.Generic;
using GThinking.N_MISPROAS.SysData;
namespace GThinking.N_XLXSBJ
{
public partial class JGBMLInfo : SingleCardBase
{
JGBML entity = new JGBML();
#region PageLoad事件
protected void Page_Load(object sender, EventArgs e)
{
this.UMID = 100860018;
this.UMName = "线缆销售报价价格目录";
this.CurMaster = Master;
this.CurEntity = entity;
this.PageWidth = 580;
this.PageHeight = 450;
txtTBJCLID.DecimalPlaces = XLBJDUtils.BJCLPriceDecimal;
txtLBJCLID.DecimalPlaces = XLBJDUtils.BJCLPriceDecimal;
base.InitPage();
}
#endregion
#region 模板继承事件
protected override bool CanInsert()
{
if (txtMXBH.Value.Trim().Equals("JGD"))
return false;
return base.CanInsert();
}
protected override bool CanEdit()
{
if (txtMXBH.Value.Trim().Equals("JGD"))
return false;
if (txtJGBID.Text.Trim().Equals("00000000"))//00000000|价格表调价因子价格表
{
return false;
}
return base.CanEdit();
}
protected override bool CanDelete()
{
if (txtMXBH.Value.Trim().Equals("JGD"))
return false;
if (txtJGBID.Text.Trim().Equals("00000000"))//00000000|价格表调价因子价格表
{
return false;
}
return base.CanDelete();
}
protected override void SetControlState()
{
base.SetControlState();
txtJGBID.Enabled = false;
datWHSJ.Enabled = false;
txtWHR.Enabled = false;
cbxTJR.Enabled = false;
cbxTJZT.Enabled = false;
cbxDRZT.Enabled = false;
datTJKSSJ.Enabled = false;
datTJWCSJ.Enabled = false;
btnXLXSJGBMX.Enabled = ControlState == TControlState.ctsBrowse;
lblTBJCLID.Enabled = ControlState == TControlState.ctsBrowse;
lblLBJCLID.Enabled = ControlState == TControlState.ctsBrowse;
btnTBZXSJGB.Enabled = ControlState == TControlState.ctsBrowse;
btnQXTJ.Enabled = (ControlState == TControlState.ctsBrowse && cbxTJR.SelectedValue.Trim().Equals(tSession.UserId));
if (cbxTJZT.SelectedValue.Trim().Equals("W") || cbxTJZT.SelectedValue.Trim().Equals("J"))
btnQXTJ.Visible = true;
else
btnQXTJ.Visible = false;
btnBJJGB.Enabled = ControlState == TControlState.ctsBrowse;
if (txtMXBH.Value.Trim().Equals("JGC"))
btnBJJGB.Visible = true;
else
btnBJJGB.Visible = false;
if ((txtMXBH.Value.Trim().Equals("JGB") || txtMXBH.Value.Trim().Equals("JGC")) && CheckXSJGB())
btnTBZXSJGB.Visible = true;
else
btnTBZXSJGB.Visible = false;
txtTBJCLID.Enabled = false;
txtLBJCLID.Enabled = false;
if (ControlState != TControlState.ctsBrowse && ControlState != TControlState.ctsNull)
{
if (txtMXBH.Value.Trim().Equals("JGB") || txtMXBH.Value.Trim().Equals("JGC"))
{
if (cbxJJLY.SelectedValue.Trim() == "D" && txtJGBIDS.Value.Trim().Equals(""))
{
txtTBJCLID.Enabled = true;
txtLBJCLID.Enabled = true;
}
}
}
if (ControlState == TControlState.ctsEdit)
{
if (txtMXBH.Value.Trim().Equals("JGB") || txtMXBH.Value.Trim().Equals("JGC"))
{
cbxJJLY.Enabled = true;
if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from XLXSJGBPZJGB where XLXSJGBPZJGB_JGBID='{0}'", txtJGBID.Text.Trim())))
{
cbxTJYS.Enabled = false;
}
string sSQL1 = string.Format("select TOP 1 XLXSJGBMX_JGBID from XLXSJGBMX where XLXSJGBMX_JGBID='{0}'", txtJGBID.Text.Trim());
//string sSQL2 = string.Format("SELECT 1 FROM XLXSJGB LEFT JOIN XLXSCPML ON XLXSCPML_CPMLID = XLXSJGB_CPMLID where XLXSCPML_CPMLLX='Y' and XLXSJGB_JGBID = '{0}' and XLXSJGB_MXBH = 'JGB' ", txtJGBID.Text.Trim());
//存在价格表明细
bool bExistsXLXSJGBMX = CMISproDataBase.ExistsRecord("DBERP", sSQL1);
//值域:Y|组合产品目录、N|单一产品目录
//bool bZHCPMLLX = CMISproDataBase.ExistsRecord("DBERP", sSQL2);
//if (bExistsXLXSJGBMX || bZHCPMLLX)
if (bExistsXLXSJGBMX)
{
cbxBJLY.Enabled = false;
}
else
{
cbxBJLY.Enabled = true;
}
if (bExistsXLXSJGBMX)
{
cbxTJYS.Enabled = false;
cbxJJLY.Enabled = false;
}
if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from XLXSJGB where ','||rtrim(isnull(XLXSJGB_JGCIDS,' '))||',' like '{0}'", "%," + txtJGBID.Text.Trim() + ",%"))
|| CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from XLXSJGB where isnull(XLXSJGB_JGCIDS,' ')<>' ' and XLXSJGB_JGBID='{0}'", txtJGBID.Text.Trim())))
{
cbxCPMLID.Enabled = false;
}
else
cbxCPMLID.Enabled = true;
}
else
{
cbxJJLY.Enabled = false;
cbxBJLY.Enabled = false;
cbxCPMLID.Enabled = false;
}
}
else if (ControlState == TControlState.ctsInsert || ControlState == TControlState.ctsCopy)
{
txtJGBMC.Enabled = true;
if (txtMXBH.Value.Trim().Equals("JGB") || txtMXBH.Value.Trim().Equals("JGC"))
{
cbxJJLY.Enabled = true;
cbxBJLY.Enabled = true;
cbxCPMLID.Enabled = true;
}
else
{
cbxJJLY.Enabled = false;
cbxBJLY.Enabled = false;
cbxCPMLID.Enabled = false;
}
}
if (ControlState != TControlState.ctsBrowse)
{
if (cbxBJLY.SelectedValue.Trim().Equals("J"))
cbxJSBLFS.Enabled = true;
else
cbxJSBLFS.Enabled = false;
//if (cbxBJLY.SelectedValue.Trim().Equals("C"))
// cbxJGCIDS.Enabled = true;
//else
//{
// cbxJGCIDS.Enabled = false;
//}
}
if (cbxTJYS.SelectedValue.Trim().Equals("1") && cbxBJLY.SelectedValue.Trim().Equals("J") && cbxJJLY.SelectedValue.Equals("A"))
{
cbxWSJGLY.ClearItems();
cbxWSJGLY.Items.Add(new ListItem("1|无税材料价格", "1"));
cbxWSJGLY.Items.Add(new ListItem("2|含税价格×(1-税率%)", "2"));
lblWSJGLY.Visible = true;
cbxWSJGLY.Visible = true;
lblSL.Visible = true;
txtSL.Visible = true;
lblFH.Visible = true;
}
else
{
cbxWSJGLY.SelectedValue = "";
txtSL.Value = 0;
lblWSJGLY.Visible = false;
cbxWSJGLY.Visible = false;
lblSL.Visible = false;
txtSL.Visible = false;
lblFH.Visible = false;
}
if (txtMXBH.Value.Trim().Equals("JGE"))
{
datYXQS.Enabled = false;
datYXQZ.Enabled = false;
cbxTJYS.Enabled = false;
}
if (txtMXBH.Value.Trim().Equals("JGB") || txtMXBH.Value.Trim().Equals("JGC") || txtMXBH.Value.Trim().Equals("JGF"))
{
btnXLXSJGBMX.Enabled = true;
}
else
btnXLXSJGBMX.Enabled = false;
if (txtMXBH.Value.Trim().Equals("JGF"))
{
cbxTJYS.Enabled = false;
cbxJJLY.Enabled = false;
cbxBJLY.Enabled = false;
cbxJSBLFS.Enabled = false;
lblTBJCLID.Enabled = false;
lblLBJCLID.Enabled = false;
}
if (txtMXBH.Value.Trim().Equals("JGB") && cbxTJYS.SelectedValue.Trim().Equals("3") && ControlState == TControlState.ctsBrowse)
{
btnCOPY3.Visible = true;
}
else
btnCOPY3.Visible = false;
if ((cbxJJLY.SelectedValue.Trim().Equals("D") && txtJGBIDS.Value.Trim().Equals("")) || cbxBJLY.SelectedValue.Trim().Equals("D"))
cbxMXPXFS.Enabled = false;
}
protected override void LoadRecord()
{
if (!IsPostBack)
{
entity.Param.Add("XLXSJGB_MXBH", PageParam.GetRTrimString("XLXSJGB_MXBH"));
entity.Param.Add("XLXSJGB_JGBID", PageParam.GetRTrimString("XLXSJGB_JGBID"));
}
else
{
entity.Param.Add("XLXSJGB_MXBH", txtMXBH.Value.Trim());
entity.Param.Add("XLXSJGB_JGBID", txtJGBID.Text.Trim());
}
base.LoadRecord();
InitJSGS();
txtOLDTJYS.Value = cbxTJYS.SelectedValue.Trim().Equals("") ? " " : cbxTJYS.SelectedValue.Trim();
txtOLDJGBMC.Value = txtJGBMC.Text.Trim();
txtOLDBJLY.Value = cbxBJLY.SelectedValue.Trim();
txtMXPXFS.Value = cbxMXPXFS.SelectedValue.Trim();
string sTBJCLID = "";
string sLBJCLID = "";
string sJGBID = txtJGBID.Text.Trim();
if (txtMXBH.Value.Equals("JGB") || txtMXBH.Value.Equals("JGC"))
{
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
TSQL SQL = new TSQL(dberp);
GetTLBJCLID(dberp, SQL, ref sTBJCLID, ref sLBJCLID);
if (!sTBJCLID.Equals(""))
{
SQL.Clear();
SQL.Add("SELECT XLXSCLHQ_HSJG from XLXSCLHQ where XLXSCLHQ_JGBID=:pJGBID and XLXSCLHQ_BJCLID=:pBJCLID and XLXSCLHQ_YXQS = convert(datetime,'1900-01-01 00:00:00')");
SQL.ParamByName("pJGBID").Value = sJGBID;
SQL.ParamByName("pBJCLID").Value = sTBJCLID;
DataSet ds = dberp.OpenDataSet(SQL);
if (ds.Tables[0].Rows.Count > 0)
{
txtTBJCLID.Value = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0][0].ToString().Trim());
}
}
if (!sLBJCLID.Equals(""))
{
SQL.Clear();
SQL.Add("SELECT XLXSCLHQ_HSJG from XLXSCLHQ where XLXSCLHQ_JGBID=:pJGBID and XLXSCLHQ_BJCLID=:pBJCLID and XLXSCLHQ_YXQS = convert(datetime,'1900-01-01 00:00:00')");
SQL.ParamByName("pJGBID").Value = sJGBID;
SQL.ParamByName("pBJCLID").Value = sLBJCLID;
DataSet ds = dberp.OpenDataSet(SQL);
if (ds.Tables[0].Rows.Count > 0)
{
txtLBJCLID.Value = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0][0].ToString().Trim());
}
}
}
}
protected override void OnNewRecorder()
{
base.OnNewRecorder();
txtJSGS.Value = "";
txtWHR.Text = tSession.UserName.ToString().Trim();
txtWHRID.Value = tSession.UserId.ToString().Trim();
datWHSJ.Value = CMISproConvert.ConvertTime(System.DateTime.Now.ToString());
txtMXBH.Value = PageParam.GetRTrimString("FLID");
if (txtMXBH.Value.Equals(""))
txtMXBH.Value = PageParam.GetRTrimString("XLXSJGB_MXBH");
if (txtMXBH.Value.Trim().Equals("JGB") || txtMXBH.Value.Trim().Equals("JGC"))
{
cbxBJLY.SelectedValue = "J";
cbxJSBLFS.SelectedValue = "R";
}
else
{
cbxBJLY.SelectedValue = "";
cbxJSBLFS.SelectedValue = "";
}
if (txtMXBH.Value.Trim().Equals("JGF"))
{
cbxBJLY.SelectedValue = "D";
}
if (PageParam.GetRTrimString("FROM").Equals("BJJGBList"))//新建组合产品目录价格表
{
cbxTJYS.SelectedValue = "1";//1|表价(出厂价)=基价(材料价)&调价
cbxTJYS_SelectedIndexChanged(null, null);
cbxBJLY.SelectedValue = "C";//C|基价价格表表价
cbxCPMLID.SelectedValue = PageParam.GetRTrimString("DefCPMLID");
}
if (!txtMXBH.Value.Trim().Equals("JGE"))
datYXQS.Text = CMISproConvert.ConvertDate(System.DateTime.Today);
if(IsJGBMRBSX())
datYXQS.Text = CMISproConvert.ConvertDate(CMISproConvert.StrToDateTime("2099-01-01").Date);
}
protected override void OnCopyRecorder()
{
base.OnCopyRecorder();
txtMXBH.Value = PageParam.GetRTrimString("FLID");
if (txtMXBH.Value.Equals(""))
txtMXBH.Value = PageParam.GetRTrimString("XLXSJGB_MXBH");
if (!txtMXBH.Value.Trim().Equals("JGE"))
datYXQS.Text = CMISproConvert.ConvertDate(System.DateTime.Today);
datYXQZ.Text = "";
cbxTJR.SelectedValue = "";
cbxTJZT.SelectedValue = "";
cbxDRZT.SelectedValue = "";
datTJKSSJ.Text = "";
datTJWCSJ.Text = "";
txtWHR.Text = tSession.UserName.ToString().Trim();
txtWHRID.Value = tSession.UserId.ToString().Trim();
datWHSJ.Value = CMISproConvert.ConvertTime(System.DateTime.Now.ToString());
txtCOPYJGBID.Value = txtOLDJGBID.Value;
if (IsJGBMRBSX())
datYXQS.Text = CMISproConvert.ConvertDate(CMISproConvert.StrToDateTime("2099-01-01").Date);
}
protected override bool DataLogicValid()
{
if (!base.DataLogicValid()) return false;
if (datYXQS.Text.Trim().Equals("") && !txtMXBH.Value.Trim().Equals("JGE"))
{
ShowMessage("有效期始不允许为空!");
return false;
}
if (!datYXQS.Text.Trim().Equals("") && !datYXQZ.Text.Trim().Equals("") && CMISproConvert.StrToDateTime(datYXQS.Text) > CMISproConvert.StrToDateTime(datYXQZ.Text))
{
ShowMessage("有效期始不允许大于有效期止!");
return false;
}
//报价单/价格表--调价表、JGE不再校验调价因素
if (!txtMXBH.Value.Trim().Equals("JZJ") && !txtMXBH.Value.Trim().Equals("BJD") && !txtMXBH.Value.Trim().Equals("JGE") && !txtMXBH.Value.Trim().Equals("JGF"))
{
if (cbxTJYS.SelectedValue.Trim().Equals(""))
{
ShowMessage("调价因素不允许为空!");
return false;
}
}
if (!cbxTJYS.SelectedValue.Trim().Equals(txtOLDTJYS.Value.Trim()) && (txtMXBH.Value.Trim().Equals("JGB") || txtMXBH.Value.Trim().Equals("JGC")))
{
if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from XLXSJGBMX where XLXSJGBMX_JGBID='{0}'", txtJGBID.Text.Trim())))
{
ShowMessage("已有明细记录不能修改调价因素!");
return false;
}
}
//另外,若调价因素为“2|表价(区域价)=基价(出厂价)&调价”,价格表已维护“基价(出厂价)”或“适用区域”,也要有相应提示,也不能修改。
if(txtOLDTJYS.Value.Trim().Equals("2") && !cbxTJYS.SelectedValue.Trim().Equals("2"))
{
if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from XLXSJGB where XLXSJGB_MXBH='{0}' and XLXSJGB_JGBID='{1}' and (ISNULL(XLXSJGB_JGBIDS,' ')<>' ' or ISNULL(XLXSJGB_XSQYIDS,' ')<>' ')", txtMXBH.Value.Trim(), txtJGBID.Text.Trim())))
{
ShowMessage("价格表已维护“基价(出厂价)”或“适用区域”,不允许修改调价因素!");
return false;
}
}
//
if (txtMXBH.Value.Trim().Equals("JGB") || txtMXBH.Value.Trim().Equals("JGC"))
{
if (cbxBJLY.SelectedValue.Trim().Equals(""))
{
ShowMessage("表价来源不允许为空!");
return false;
}
if (cbxJJLY.SelectedValue.Trim().Equals(""))
{
ShowMessage("基价来源不允许为空!");
return false;
}
if (cbxBJLY.SelectedValue.Trim().Equals("J") && cbxJSBLFS.SelectedValue.Trim().Equals(""))
{
ShowMessage("表价来源为“J|按调价因素计算”,计算保留方式--不允许为空!");
return false;
}
string sSQL = string.Format("select 1 from XLXSJGBYZ where XLXSJGBYZ_JGBID = '{0}' ", txtJGBID.Text.Trim());
if (CMISproDataBase.ExistsRecord("DBERP", sSQL) && cbxBJLY.SelectedValue.Trim().Equals("D"))
{
ShowMessage("表价来源为直接导入时,不允许设置调价因子,请先删除调价因子!");
return false;
}
if (cbxBJLY.SelectedValue.Trim().Equals("C"))
{
if (cbxCPMLID.SelectedValue.Trim().Equals(""))
{
ShowMessage("“表价来源”为“C|基价价格表表价”时,产品目录不允许为空!");
return false;
}
else
{
string sSQL1 = string.Format("SELECT 1 FROM XLXSCPML where ISNULL(XLXSCPML_CPMLLX,' ') <> 'Y' and XLXSCPML_CPMLID = '{0}' ", cbxCPMLID.SelectedValue.Trim());
if (CMISproDataBase.ExistsRecord("DBERP", sSQL1))
{
ShowMessage("“表价来源”为“C|基价价格表表价”时,必须选择组合产品目录!");
return false;
}
}
}
if (ControlState == TControlState.ctsCopy)
{
if(!txtOLDBJLY.Value.Trim().Equals(cbxBJLY.SelectedValue.Trim()))
{
ShowMessage("只允许复制相同表价来源的价格目录!");
return false;
}
}
}
if (ControlState == TControlState.ctsCopy)
{
ctrlState.Value = "C";
if (IsJGBMRBSX())
{
ctrlState.Value = "CN";
}
else
{
if (!txtMXBH.Value.Trim().Equals("JGE") && !txtMXBH.Value.Trim().Equals("JGF"))
{
string sbefore_JGBID = PageParam.GetRTrimString("XLXSJGB_JGBID");
//被复制的价格表与当前价格表存在交集
if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from XLXSJGB where XLXSJGB_MXBH='{2}' and XLXSJGB_JGBID='{0}' and XLXSJGB_YXQS<='{1}' and (XLXSJGB_YXQZ is null or XLXSJGB_YXQZ>='{1}')",
sbefore_JGBID, datYXQS.Text, txtMXBH.Value.Trim())))
{
Confirm.Register("ask", string.Format("被复制价格表[{0}]是否需要自动失效?", sbefore_JGBID));
Confirm.ShowBtnText = TConfirm.cBtnText.Yes_No;
if (Confirm.GetValue("ask").Trim().Equals(""))
{
Confirm.Ask("ask");
return false;
}
else if (Confirm.GetValue("ask").Trim().Equals("N"))
{
Confirm.Clear();
ctrlState.Value = "CN";
}
else if (Confirm.GetValue("ask").Trim().Equals("Y"))
{
Confirm.Clear();
ctrlState.Value = "CY";
}
}
}
}
}
else if (ControlState == TControlState.ctsInsert)
{
ctrlState.Value = "I";
}
else if (ControlState == TControlState.ctsEdit)
{
ctrlState.Value = "E";
}
if (txtMXBH.Value.Trim().Equals("JGF"))
{
if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from XLXSJGB where XLXSJGB_MXBH='{2}' and XLXSJGB_JGBID<>'{0}' and XLXSJGB_YXQS= '{1}'",
txtJGBID.Text.Trim(), datYXQS.Text, txtMXBH.Value.Trim())))
{
ShowMessage("已存在相同有效期始的价格表,不允许保存!");
return false;
}
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
TSQL SQL = new TSQL(dberp);
SQL.Add(string.Format("select XLXSJGB_JGBID from XLXSJGB where XLXSJGB_MXBH='{2}' and XLXSJGB_JGBID<>'{0}' and XLXSJGB_YXQS<'{1}' and (XLXSJGB_YXQZ is null or XLXSJGB_YXQZ>='{1}')",
txtJGBID.Text.Trim(), datYXQS.Text, txtMXBH.Value.Trim()));
DataSet ds = dberp.OpenDataSet(SQL);
if (ds.Tables[0].Rows.Count > 0)
{
string sOldJGBID = ds.Tables[0].Rows[0]["XLXSJGB_JGBID"].ToString().Trim();
Confirm.Register("ask", string.Format("有效期重叠的价格表[{0}]需要自动设置有效期止,是否确认?", sOldJGBID));
Confirm.ShowBtnText = TConfirm.cBtnText.Yes_No;
if (Confirm.GetValue("ask").Trim().Equals(""))
{
Confirm.Ask("ask");
return false;
}
else if (Confirm.GetValue("ask").Trim().Equals("N"))
{
Confirm.Clear();
return false;
}
else if (Confirm.GetValue("ask").Trim().Equals("Y"))
{
ctrlState.Value = "IY";
Confirm.Clear();
}
}
if (ControlState == TControlState.ctsCopy)
{
ctrlState.Value = "CY";
}
}
return true;
}
protected override bool Master_BeforeSaveAction(object sender, EventArgs e)
{
//if (txtMXBH.Value.Trim().Equals("JZJ") || txtMXBH.Value.Trim().Equals("BJD"))
//{
// if (cbxTJYS.SelectedValue.Trim().Equals(""))
// {
// ShowMessage("调价因素--不允许为空!");
// return false;
// }
//}
if (ControlState == TControlState.ctsInsert || ControlState == TControlState.ctsCopy)
{
if (txtMXBH.Value.Trim().Equals("JGB") || txtMXBH.Value.Trim().Equals("JGC") || txtMXBH.Value.Trim().Equals("JGE") || txtMXBH.Value.Trim().Equals("JGF"))//不管JGB\JGC\JGE\JGF,都按JGB进行编码,否则两者编码重复,后续所有明细表都得加MXBH
txtJGBID.Text = getNewJGBBH();
else if (txtMXBH.Value.Trim().Equals("JZJ") || txtMXBH.Value.Trim().Equals("BJD"))
txtJGBID.Text = getNewTJBBH(txtMXBH.Value.Trim(), cbxTJYS.SelectedValue.Trim());
}
else
{
if (txtMXBH.Value.Trim().Equals("JZJ") || txtMXBH.Value.Trim().Equals("BJD"))
{
if (!txtOLDTJYS.Value.Trim().Equals(cbxTJYS.SelectedValue.Trim()))
{
txtJGBID.Text = getNewTJBBH(txtMXBH.Value.Trim(), cbxTJYS.SelectedValue.Trim());
}
}
}
txtWHR.Text = tSession.UserName.Trim();
txtWHRID.Value = tSession.UserId.Trim();
datWHSJ.Value = CMISproConvert.ConvertTime(System.DateTime.Now.ToString());
return base.Master_BeforeSaveAction(sender, e);
}
protected override void AfterSave(TDatabase db, ref bool ActionIsDone)
{
TSQL SQL = new TSQL(db);
if (txtMXBH.Value.Trim().Equals("JGB") || txtMXBH.Value.Trim().Equals("JGC"))
{
if (!txtOLDJGBMC.Value.Equals(txtJGBMC.Text.Trim()) && ControlState == TControlState.ctsEdit)
{
SQL.Clear();
SQL.Add(" update XLXSJGBPZJGB set XLXSJGBPZJGB_JGBMC=:pJGBMC where XLXSJGBPZJGB_JGBID=:pJGBID ");
SQL.ParamByName("pJGBMC").Value = txtJGBMC.Text.Trim();
SQL.ParamByName("pJGBID").Value = txtJGBID.Text.Trim();
db.ExecSQL(SQL);
}
}
base.AfterSave(db, ref ActionIsDone);
}
protected override bool Master_AfterSaveAction(object sender, EventArgs e)
{
txtOLDJGBID.Value = txtJGBID.Text.Trim();
txtOLDJGBMC.Value = txtJGBMC.Text.Trim();
txtOLDTJYS.Value = cbxTJYS.SelectedValue.Trim().Equals("") ? " " : cbxTJYS.SelectedValue.Trim();
txtOLDBJLY.Value = cbxBJLY.SelectedValue.Trim();
btnGXGS_Click(null, null);
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
TSQL SQL = new TSQL(dberp);
string sJGBID = txtJGBID.Text.Trim();
string sJJLY = cbxJJLY.SelectedValue.Trim();
string sTJYS = cbxTJYS.SelectedValue.Trim();
string sTBJCLID = "";
string sLBJCLID = "";
GetTLBJCLID(dberp, SQL, ref sTBJCLID, ref sLBJCLID);
if (sJJLY.Equals("D")&&txtJGBIDS.Value.Trim().Equals(""))
{
if (!sTBJCLID.Equals(""))
{
SQL.Clear();
SQL.Add("delete from XLXSCLHQ where XLXSCLHQ_JGBID=:pJGBID and XLXSCLHQ_BJCLID=:pBJCLID and XLXSCLHQ_YXQS = convert(datetime,'1900-01-01 00:00:00') ");
SQL.ParamByName("pJGBID").Value = sJGBID;
SQL.ParamByName("pBJCLID").Value = sTBJCLID;
dberp.ExecSQL(SQL);
SQL.Clear();
SQL.Add("insert into XLXSCLHQ(XLXSCLHQ_JGBID,XLXSCLHQ_BJCLID,XLXSCLHQ_HSJG,XLXSCLHQ_WSJG,XLXSCLHQ_WSJGF,XLXSCLHQ_HSJGF,");
SQL.Add(" XLXSCLHQ_JGYBJCLID1,XLXSCLHQ_HSJG1,XLXSCLHQ_WSJG1,XLXSCLHQ_JGBL1,");
SQL.Add(" XLXSCLHQ_YXQS,XLXSCLHQ_YXQZ,XLXSCLHQ_BZ,XLXSCLHQ_WHRID,XLXSCLHQ_WHR,XLXSCLHQ_WHSJ) ");
SQL.Add("select :pJGBID as JGBID,XLXSBJCL_BJCLID as BJCLID,:pHSJG as HSJG,round(:pHSJG/(1+XLXSBJCL_ZZSL/100),3) as CLJG,0.0 as WSJGF,0.0 as HSJGF,");
SQL.Add(" ' ' as JGYBJCLID1,:pHSJG as HSJG1,round(:pHSJG/(1+XLXSBJCL_ZZSL),3) as WSJG1,1 as JGBL1, ");
SQL.Add(" convert(datetime,'1900-01-01 00:00:00') as YXQS,convert(datetime,'1900-01-01 00:00:00') as YXQZ,");
SQL.Add(" ' ' as BZ,:pWHRID as WHRID,:pWHR as WHR,:pWHSJ as WHSJ ");
SQL.Add("from XLXSBJCL ");
SQL.Add("where XLXSBJCL_BJCLID=:pBJCLID ");
SQL.ParamByName("pJGBID").Value = sJGBID;
SQL.ParamByName("pHSJG").Value = txtTBJCLID.Value;
SQL.ParamByName("pWHR").Value = tSession.UserName;
SQL.ParamByName("pWHRID").Value = tSession.UserId;
SQL.ParamByName("pWHSJ").Value = DateTime.Now;
SQL.ParamByName("pBJCLID").Value = sTBJCLID;
dberp.ExecSQL(SQL);
}
if (!sLBJCLID.Equals(""))
{
SQL.Clear();
SQL.Add("delete from XLXSCLHQ where XLXSCLHQ_JGBID=:pJGBID and XLXSCLHQ_BJCLID=:pBJCLID and XLXSCLHQ_YXQS = convert(datetime,'1900-01-01 00:00:00') ");
SQL.ParamByName("pJGBID").Value = sJGBID;
SQL.ParamByName("pBJCLID").Value = sLBJCLID;
dberp.ExecSQL(SQL);
SQL.Clear();
SQL.Add("insert into XLXSCLHQ(XLXSCLHQ_JGBID,XLXSCLHQ_BJCLID,XLXSCLHQ_HSJG,XLXSCLHQ_WSJG,XLXSCLHQ_WSJGF,XLXSCLHQ_HSJGF,");
SQL.Add(" XLXSCLHQ_JGYBJCLID1,XLXSCLHQ_HSJG1,XLXSCLHQ_WSJG1,XLXSCLHQ_JGBL1,");
SQL.Add(" XLXSCLHQ_YXQS,XLXSCLHQ_YXQZ,XLXSCLHQ_BZ,XLXSCLHQ_WHRID,XLXSCLHQ_WHR,XLXSCLHQ_WHSJ) ");
SQL.Add("select :pJGBID as JGBID,XLXSBJCL_BJCLID as BJCLID,:pHSJG as HSJG,round(:pHSJG/(1+XLXSBJCL_ZZSL/100),3) as CLJG,0.0 as WSJGF,0.0 as HSJGF,");
SQL.Add(" ' ' as JGYBJCLID1,:pHSJG as HSJG1,round(:pHSJG/(1+XLXSBJCL_ZZSL),3) as WSJG1,1 as JGBL1, ");
SQL.Add(" convert(datetime,'1900-01-01 00:00:00') as YXQS,convert(datetime,'1900-01-01 00:00:00') as YXQZ,");
SQL.Add(" ' ' as BZ,:pWHRID as WHRID,:pWHR as WHR,:pWHSJ as WHSJ ");
SQL.Add("from XLXSBJCL ");
SQL.Add("where XLXSBJCL_BJCLID=:pBJCLID ");
SQL.ParamByName("pJGBID").Value = sJGBID;
SQL.ParamByName("pHSJG").Value = txtLBJCLID.Value;
SQL.ParamByName("pWHR").Value = tSession.UserName;
SQL.ParamByName("pWHRID").Value = tSession.UserId;
SQL.ParamByName("pWHSJ").Value = DateTime.Now;
SQL.ParamByName("pBJCLID").Value = sLBJCLID;
dberp.ExecSQL(SQL);
}
}
if (ctrlState.Value.Equals("C") || ctrlState.Value.Equals("CN") || ctrlState.Value.Equals("CY"))//复制保存
{
string sbefore_JGBID = txtCOPYJGBID.Value;
if (txtMXBH.Value.Trim().Equals("JGB") || txtMXBH.Value.Trim().Equals("JGC"))
{
if (!sJJLY.Equals("D"))
{
//复制主表记录时,同步复制明细记录
SQL.Clear();
SQL.Add("insert into XLXSJGBMX(XLXSJGBMX_JGBID,XLXSJGBMX_XH,XLXSJGBMX_YXQS,XLXSJGBMX_YXQZ,XLXSJGBMX_HSJJ,XLXSJGBMX_WSJJ,XLXSJGBMX_HSBJ,XLXSJGBMX_WSBJ,XLXSJGBMX_HSJJM,XLXSJGBMX_HSBJM,XLXSJGBMX_WSJJM,XLXSJGBMX_WSBJM,");
SQL.Add(" XLXSJGBMX_XLXHID,XLXSJGBMX_XLGGID,XLXSJGBMX_XLBZID,XLXSJGBMX_DYDJID,XLXSJGBMX_WHR,XLXSJGBMX_WHRID,XLXSJGBMX_WHSJ,XLXSJGBMX_SYXH,XLXSJGBMX_BZ,XLXSJGBMX_JLDW,XLXSJGBMX_YSJDZ,XLXSJGBMX_CLCBYSJDZ,XLXSJGBMX_XSXH)");
SQL.Add(" select :pJGBID,XLXSJGBMX_XH,:pYXQS,:pYXQZ,XLXSJGBMX_HSJJ,XLXSJGBMX_WSJJ,XLXSJGBMX_HSBJ,XLXSJGBMX_WSBJ,XLXSJGBMX_HSJJM,XLXSJGBMX_HSBJM,XLXSJGBMX_WSJJM,XLXSJGBMX_WSBJM,");
SQL.Add(" XLXSJGBMX_XLXHID,XLXSJGBMX_XLGGID,XLXSJGBMX_XLBZID,XLXSJGBMX_DYDJID,:pWHR,:pWHRID,:pWHSJ,XLXSJGBMX_SYXH,XLXSJGBMX_BZ,XLXSJGBMX_JLDW,XLXSJGBMX_YSJDZ,XLXSJGBMX_CLCBYSJDZ,XLXSJGBMX_XSXH");
SQL.Add(" from XLXSJGBMX where XLXSJGBMX_JGBID=:pbeforeJGBID ");
SQL.ParamByName("pJGBID").Value = txtJGBID.Text.Trim();
SQL.ParamByName("pYXQS").Value = datYXQS.Text;
SQL.ParamByName("pYXQZ").Value = datYXQZ.Text;
SQL.ParamByName("pWHR").Value = tSession.UserName.ToString().Trim();
SQL.ParamByName("pWHRID").Value = tSession.UserId.ToString().Trim();
SQL.ParamByName("pWHSJ").Value = CMISproConvert.ConvertTime(System.DateTime.Now.ToString());
SQL.ParamByName("pbeforeJGBID").Value = sbefore_JGBID;
dberp.ExecSQL(SQL);
//同步复制XLXSJGBYZZ0
SQL.Clear();
SQL.Add("insert into XLXSJGBYZZ0(XLXSJGBYZZ0_JGBID,XLXSJGBYZZ0_XH");
for (int i = 1; i <= 20; i++)
{
string num = i.ToString("D2"); // 格式化为两位数字:01, 02, ... 20
SQL.Add(string.Format(",XLXSJGBYZZ0_YZZ{0}", num));
}
SQL.Add(" ) ");
SQL.Add(" select :pJGBID,XLXSJGBYZZ0_XH ");
for (int i = 1; i <= 20; i++)
{
string num = i.ToString("D2"); // 格式化为两位数字:01, 02, ... 20
SQL.Add(string.Format(",XLXSJGBYZZ0_YZZ{0}", num));
}
SQL.Add(" from XLXSJGBYZZ0 ");
SQL.Add(" where XLXSJGBYZZ0_JGBID=:pbeforeJGBID ");
SQL.ParamByName("pJGBID").Value = txtJGBID.Text.Trim();
SQL.ParamByName("pbeforeJGBID").Value = sbefore_JGBID;
dberp.ExecSQL(SQL);
if (!sTJYS.Equals("2"))
{
//取材料行情插入新价格表的材料行情
SQL.Clear();
SQL.Add("insert into XLXSCLHQ(XLXSCLHQ_JGBID,XLXSCLHQ_BJCLID,XLXSCLHQ_HSJG,XLXSCLHQ_WSJG,XLXSCLHQ_WSJGF,XLXSCLHQ_HSJGF,");
SQL.Add(" XLXSCLHQ_JGYBJCLID1,XLXSCLHQ_HSJG1,XLXSCLHQ_WSJG1,XLXSCLHQ_JGBL1,");
SQL.Add(" XLXSCLHQ_YXQS,XLXSCLHQ_YXQZ,XLXSCLHQ_BZ,XLXSCLHQ_WHRID,XLXSCLHQ_WHR,XLXSCLHQ_WHSJ) ");
SQL.Add("select :pJGBID as JGBID,XLXSBJCL_BJCLID as BJCLID,isnull(HSJG,0.0) as HSJG,isnull(CLJG,0.0) as CLJG,isnull(WSJGF,0.0) as WSJGF,isnull(HSJGF,0.0) as HSJGF,");
SQL.Add(" isnull(JGYBJCLID1,' ') as JGYBJCLID1,isnull(HSJG1,0.0) as HSJG1,isnull(WSJG1,0.0) as WSJG1,isnull(JGBL1,0.0) as JGBL1, ");
SQL.Add(" convert(datetime,'1900-01-01 00:00:00') as YXQS,convert(datetime,'1900-01-01 00:00:00') as YXQZ,");
SQL.Add(" ' ' as BZ,:pWHRID as WHRID,:pWHR as WHR,:pWHSJ as WHSJ ");
SQL.Add("from XLXSBJCL left join ");
SQL.Add("(");
SQL.Add("select XLXSCLHQ_BJCLID as BJCLID,XLXSCLHQ_HSJG as HSJG,XLXSCLHQ_WSJG as CLJG,XLXSCLHQ_WSJGF as WSJGF, XLXSCLHQ_HSJGF as HSJGF, ");
SQL.Add(" XLXSCLHQ_JGYBJCLID1 as JGYBJCLID1,XLXSCLHQ_HSJG1 as HSJG1,XLXSCLHQ_WSJG1 as WSJG1,XLXSCLHQ_JGBL1 as JGBL1 ");
SQL.Add("from XLXSCLHQ ");
SQL.Add("where XLXSCLHQ_JGBID=:pOLDJGBID ");
SQL.Add("and XLXSCLHQ_YXQS=convert(datetime,'1900-01-01 00:00:00') ");
SQL.Add(") a on BJCLID=XLXSBJCL_BJCLID ");
SQL.Add("where isnull(XLXSBJCL_BJCLMC,' ')<>' ' ");
SQL.Add("and not exists (select 1 from XLXSCLHQ where XLXSCLHQ_JGBID=:pJGBID and XLXSCLHQ_BJCLID=XLXSBJCL_BJCLID and XLXSCLHQ_YXQS=convert(datetime,'1900-01-01 00:00:00')) ");
SQL.ParamByName("pJGBID").Value = txtJGBID.Text.Trim();
SQL.ParamByName("pWHRID").Value = tSession.UserId;
SQL.ParamByName("pWHR").Value = tSession.UserName;
SQL.ParamByName("pWHSJ").Value = DateTime.Now;
SQL.ParamByName("pOLDJGBID").Value = sbefore_JGBID;
dberp.ExecSQL(SQL);
if (XLBJDUtils.HasJGBWLHQ(txtJGBID.Text.Trim()))//判断价格表是否记录物料行情
{
SQL.Clear();
SQL.Add("insert into XLXSWLHQ(XLXSWLHQ_JGBID,XLXSWLHQ_WLID,XLXSWLHQ_HSJG,XLXSWLHQ_WSJG,XLXSWLHQ_WSJGF,XLXSWLHQ_HSJGF,");
SQL.Add(" XLXSWLHQ_JGYBJCLID1,XLXSWLHQ_HSJG1,XLXSWLHQ_WSJG1,XLXSWLHQ_JGBL1,");
SQL.Add(" XLXSWLHQ_YXQS,XLXSWLHQ_YXQZ,XLXSWLHQ_BZ,XLXSWLHQ_WHRID,XLXSWLHQ_WHR,XLXSWLHQ_WHSJ) ");
SQL.Add("select :pJGBID as JGBID,XLXSBJCLWL_WLID as WLID,isnull(HSJG,0.0) as HSJG,isnull(CLJG,0.0) as CLJG,isnull(WSJGF,0.0) as WSJGF,isnull(HSJGF,0.0) as HSJGF,");
SQL.Add(" isnull(JGYBJCLID1,' ') as JGYBJCLID1,isnull(HSJG1,0.0) as HSJG1,isnull(WSJG1,0.0) as WSJG1,isnull(JGBL1,0.0) as JGBL1, ");
SQL.Add(" convert(datetime,'1900-01-01 00:00:00') as YXQS,convert(datetime,'1900-01-01 00:00:00') as YXQZ,");
SQL.Add(" ' ' as BZ,:pWHRID as WHRID,:pWHR as WHR,:pWHSJ as WHSJ ");
SQL.Add("from XLXSBJCLWL left join ");
SQL.Add("(");
SQL.Add("select XLXSWLHQ_WLID as WLID,XLXSWLHQ_HSJG as HSJG,XLXSWLHQ_WSJG as CLJG,XLXSWLHQ_WSJGF as WSJGF, XLXSWLHQ_HSJGF as HSJGF, ");
SQL.Add(" XLXSWLHQ_JGYBJCLID1 as JGYBJCLID1,XLXSWLHQ_HSJG1 as HSJG1,XLXSWLHQ_WSJG1 as WSJG1,XLXSWLHQ_JGBL1 as JGBL1 ");
SQL.Add("from XLXSWLHQ ");
SQL.Add("where XLXSWLHQ_JGBID=:pOLDJGBID ");
SQL.Add("and XLXSWLHQ_YXQS=convert(datetime,'1900-01-01 00:00:00') ");
SQL.Add(") a on WLID=XLXSBJCLWL_WLID ");
SQL.Add("where exists(select 1 from XLXSBJCL where XLXSBJCL_BJCLID=XLXSBJCLWL_BJCLID and XLXSBJCL_BJHQ='2') ");
SQL.Add("and not exists (select 1 from XLXSWLHQ where XLXSWLHQ_JGBID=:pJGBID and XLXSWLHQ_WLID=XLXSBJCLWL_WLID and XLXSWLHQ_YXQS=convert(datetime,'1900-01-01 00:00:00')) ");
SQL.ParamByName("pJGBID").Value = txtJGBID.Text.Trim();
SQL.ParamByName("pWHRID").Value = tSession.UserId;
SQL.ParamByName("pWHR").Value = tSession.UserName;
SQL.ParamByName("pWHSJ").Value = DateTime.Now;
SQL.ParamByName("pOLDJGBID").Value = sbefore_JGBID;
dberp.ExecSQL(SQL);
}
}
}
}
else if (txtMXBH.Value.Trim().Equals("JGF"))
{
//复制主表记录时,同步复制明细记录
SQL.Clear();
SQL.Add("insert into XLXSJGBMX(XLXSJGBMX_JGBID,XLXSJGBMX_XH,XLXSJGBMX_YXQS,XLXSJGBMX_YXQZ,XLXSJGBMX_HSJJ,XLXSJGBMX_WSJJ,XLXSJGBMX_HSBJ,XLXSJGBMX_WSBJ,XLXSJGBMX_HSJJM,XLXSJGBMX_HSBJM,XLXSJGBMX_WSJJM,XLXSJGBMX_WSBJM,");
SQL.Add(" XLXSJGBMX_XLXHID,XLXSJGBMX_XLGGID,XLXSJGBMX_XLBZID,XLXSJGBMX_DYDJID,XLXSJGBMX_WHR,XLXSJGBMX_WHRID,XLXSJGBMX_WHSJ,XLXSJGBMX_SYXH,XLXSJGBMX_BZ,XLXSJGBMX_JLDW,XLXSJGBMX_YSJDZ,XLXSJGBMX_CLCBYSJDZ,XLXSJGBMX_XSXH)");
SQL.Add(" select :pJGBID,XLXSJGBMX_XH,:pYXQS,:pYXQZ,XLXSJGBMX_HSJJ,XLXSJGBMX_WSJJ,XLXSJGBMX_HSBJ,XLXSJGBMX_WSBJ,XLXSJGBMX_HSJJM,XLXSJGBMX_HSBJM,XLXSJGBMX_WSJJM,XLXSJGBMX_WSBJM,");
SQL.Add(" XLXSJGBMX_XLXHID,XLXSJGBMX_XLGGID,XLXSJGBMX_XLBZID,XLXSJGBMX_DYDJID,:pWHR,:pWHRID,:pWHSJ,XLXSJGBMX_SYXH,XLXSJGBMX_BZ,XLXSJGBMX_JLDW,XLXSJGBMX_YSJDZ,XLXSJGBMX_CLCBYSJDZ,XLXSJGBMX_XSXH");
SQL.Add(" from XLXSJGBMX where XLXSJGBMX_JGBID=:pbeforeJGBID ");
SQL.ParamByName("pJGBID").Value = txtJGBID.Text.Trim();
SQL.ParamByName("pYXQS").Value = datYXQS.Text;
SQL.ParamByName("pYXQZ").Value = datYXQZ.Text;
SQL.ParamByName("pWHR").Value = tSession.UserName.ToString().Trim();
SQL.ParamByName("pWHRID").Value = tSession.UserId.ToString().Trim();
SQL.ParamByName("pWHSJ").Value = CMISproConvert.ConvertTime(System.DateTime.Now.ToString());
SQL.ParamByName("pbeforeJGBID").Value = sbefore_JGBID;
dberp.ExecSQL(SQL);
//同步复制XLXSJGBYZZ0
SQL.Clear();
SQL.Add("insert into XLXSJGBYZZ0(XLXSJGBYZZ0_JGBID,XLXSJGBYZZ0_XH");
for (int i = 1; i <= 20; i++)
{
string num = i.ToString("D2"); // 格式化为两位数字:01, 02, ... 20
SQL.Add(string.Format(",XLXSJGBYZZ0_YZZ{0}", num));
}
SQL.Add(" ) ");
SQL.Add(" select :pJGBID,XLXSJGBYZZ0_XH ");
for (int i = 1; i <= 20; i++)
{
string num = i.ToString("D2"); // 格式化为两位数字:01, 02, ... 20
SQL.Add(string.Format(",XLXSJGBYZZ0_YZZ{0}", num));
}
SQL.Add(" from XLXSJGBYZZ0 ");
SQL.Add(" where XLXSJGBYZZ0_JGBID=:pbeforeJGBID ");
SQL.ParamByName("pJGBID").Value = txtJGBID.Text.Trim();
SQL.ParamByName("pbeforeJGBID").Value = sbefore_JGBID;
dberp.ExecSQL(SQL);
}
if (ctrlState.Value.Equals("CY"))
{
//更新原价格表的有效期止
SQL.Clear();
SQL.Add("update XLXSJGB set XLXSJGB_YXQZ=:pRQ where XLXSJGB_MXBH=:pMXBH and XLXSJGB_JGBID=:pJGBID ");
SQL.ParamByName("pRQ").Value = DateTime.Today.AddDays(-1);
SQL.ParamByName("pMXBH").Value = txtMXBH.Value.Trim();
SQL.ParamByName("pJGBID").Value = sbefore_JGBID;
dberp.ExecSQL(SQL);
if (txtMXBH.Value.Trim().Equals("JGB") || txtMXBH.Value.Trim().Equals("JGF") || txtMXBH.Value.Trim().Equals("JGC"))
{
//更新原价格表明细的有效期止
SQL.Clear();
SQL.Add("update XLXSJGBMX set XLXSJGBMX_YXQZ=:XLXSJGBMX_YXQZ where XLXSJGBMX_JGBID=:XLXSJGBMX_JGBID");
SQL.ParamByName("XLXSJGBMX_YXQZ").Value = DateTime.Today.AddDays(-1);
SQL.ParamByName("XLXSJGBMX_JGBID").Value = sbefore_JGBID;
dberp.ExecSQL(SQL);
}
}
//复制主表时同步复制价格表使用的调价因子
SQL.Clear();
SQL.Add("insert into XLXSJGBYZ(XLXSJGBYZ_JGBID,XLXSJGBYZ_YZID,XLXSJGBYZ_BZ,XLXSJGBYZ_WHR,XLXSJGBYZ_WHRID,XLXSJGBYZ_WHSJ)");
SQL.Add(" select :pJGBID,XLXSJGBYZ_YZID, XLXSJGBYZ_BZ, XLXSJGBYZ_WHR,XLXSJGBYZ_WHRID,XLXSJGBYZ_WHSJ from XLXSJGBYZ where XLXSJGBYZ_JGBID=:pbeforeJGBID");
SQL.ParamByName("pJGBID").Value = txtJGBID.Text.Trim();
SQL.ParamByName("pbeforeJGBID").Value = sbefore_JGBID;
dberp.ExecSQL(SQL);
CacheNotify.TableIsUpdated("DBERP", "XLXSJGBYZ");
}
else if (ctrlState.Value.Equals("I"))//新建保存
{
if (txtMXBH.Value.Trim().Equals("JGB") || txtMXBH.Value.Trim().Equals("JGC"))
{
if (!sJJLY.Equals("D"))
{
//取材料行情插入新价格表的材料行情
SQL.Clear();
SQL.Add("insert into XLXSCLHQ(XLXSCLHQ_JGBID,XLXSCLHQ_BJCLID,XLXSCLHQ_HSJG,XLXSCLHQ_WSJG,XLXSCLHQ_WSJGF,XLXSCLHQ_HSJGF, ");
SQL.Add(" XLXSCLHQ_JGYBJCLID1,XLXSCLHQ_HSJG1,XLXSCLHQ_WSJG1,XLXSCLHQ_JGBL1, ");
SQL.Add(" XLXSCLHQ_YXQS,XLXSCLHQ_YXQZ,XLXSCLHQ_BZ,XLXSCLHQ_WHRID,XLXSCLHQ_WHR,XLXSCLHQ_WHSJ) ");
SQL.Add("select :pJGBID as JGBID,XLXSBJCL_BJCLID as BJCLID,isnull(HSJG,0.0) as HSJG,isnull(CLJG,0.0) as CLJG,isnull(WSJGF,0.0) as WSJGF,isnull(HSJGF,0.0) as HSJGF, ");
SQL.Add(" isnull(JGYBJCLID1,' ') as JGYBJCLID1,isnull(HSJG1,0.0) as HSJG1,isnull(WSJG1,0.0) as WSJG1,isnull(JGBL1,0.0) as JGBL1, ");
SQL.Add(" convert(datetime,'1900-01-01 00:00:00') as YXQS,convert(datetime,'1900-01-01 00:00:00') as YXQZ,");
SQL.Add(" ' ' as BZ,:pWHRID as WHRID,:pWHR as WHR, :pWHSJ as WHSJ ");
SQL.Add("from XLXSBJCL left join ");
SQL.Add("(");
SQL.Add("select XLXSCLHQ_BJCLID as BJCLID,XLXSCLHQ_HSJG as HSJG,XLXSCLHQ_WSJG as CLJG,XLXSCLHQ_WSJGF as WSJGF,XLXSCLHQ_HSJGF as HSJGF, ");
SQL.Add(" XLXSCLHQ_JGYBJCLID1 as JGYBJCLID1,XLXSCLHQ_HSJG1 as HSJG1,XLXSCLHQ_WSJG1 as WSJG1,XLXSCLHQ_JGBL1 as JGBL1 ");
SQL.Add("from XLXSCLHQ, ");
SQL.Add("(");
SQL.Add("select XLXSCLHQ_BJCLID as BJCLID,max(XLXSCLHQ_YXQS) as maxYXQS ");
SQL.Add("from XLXSCLHQ ");
SQL.Add("where XLXSCLHQ_JGBID='ZZZZZZZZ' ");
SQL.Add("and XLXSCLHQ_YXQS<=:pYXQS ");
if (datYXQZ.Text.Trim().Equals(""))
SQL.Add("and XLXSCLHQ_YXQZ is null ");
else
SQL.Add("and (XLXSCLHQ_YXQZ is null or XLXSCLHQ_YXQZ>=:pYXQZ) ");
SQL.Add("group by XLXSCLHQ_BJCLID ");
SQL.Add(") a ");
SQL.Add("where XLXSCLHQ_JGBID='ZZZZZZZZ' ");
SQL.Add("and XLXSCLHQ_BJCLID=BJCLID ");
SQL.Add("and XLXSCLHQ_YXQS=maxYXQS ");
SQL.Add(") b on BJCLID=XLXSBJCL_BJCLID ");
SQL.Add("where isnull(XLXSBJCL_BJCLMC,' ')<>' ' and isnull(XLXSBJCL_TYBZ,'N') <> 'Y' ");
SQL.Add("and not exists (select 1 from XLXSCLHQ where XLXSCLHQ_JGBID=:pJGBID and XLXSCLHQ_BJCLID=XLXSBJCL_BJCLID and XLXSCLHQ_YXQS=convert(datetime,'1900-01-01 00:00:00')) ");
SQL.ParamByName("pJGBID").Value = txtJGBID.Text.Trim();
SQL.ParamByName("pWHRID").Value = tSession.UserId;
SQL.ParamByName("pWHR").Value = tSession.UserName;
SQL.ParamByName("pWHSJ").Value = DateTime.Now;
SQL.ParamByName("pYXQS").Value = datYXQS.Text.Trim();
if (!datYXQZ.Text.Trim().Equals(""))
SQL.ParamByName("pYXQZ").Value = datYXQZ.Text.Trim();
dberp.ExecSQL(SQL);
if (XLBJDUtils.HasJGBWLHQ(txtJGBID.Text.Trim()))//判断价格表是否记录物料行情
{
//取物料行情插入新价格表的物料行情
SQL.Clear();
SQL.Add("insert into XLXSWLHQ(XLXSWLHQ_JGBID,XLXSWLHQ_WLID,XLXSWLHQ_HSJG,XLXSWLHQ_WSJG,XLXSWLHQ_WSJGF,XLXSWLHQ_HSJGF, ");
SQL.Add(" XLXSWLHQ_JGYBJCLID1,XLXSWLHQ_HSJG1,XLXSWLHQ_WSJG1,XLXSWLHQ_JGBL1,");
SQL.Add(" XLXSWLHQ_YXQS,XLXSWLHQ_YXQZ,XLXSWLHQ_BZ,XLXSWLHQ_WHRID,XLXSWLHQ_WHR,XLXSWLHQ_WHSJ) ");
SQL.Add("select :pJGBID as JGBID,XLXSBJCLWL_WLID as WLID,isnull(HSJG,0.0) as HSJG,isnull(CLJG,0.0) as CLJG,isnull(WSJGF,0.0) as WSJGF,isnull(HSJGF,0.0) as HSJGF, ");
SQL.Add(" isnull(JGYBJCLID1,' ') as JGYBJCLID1,isnull(HSJG1,0.0) as HSJG1,isnull(WSJG1,0.0) as WSJG1,isnull(JGBL1,0.0) as JGBL1, ");
SQL.Add(" convert(datetime,'1900-01-01 00:00:00') as YXQS,convert(datetime,'1900-01-01 00:00:00') as YXQZ,");
SQL.Add(" ' ' as BZ,:pWHRID as WHRID,:pWHR as WHR, :pWHSJ as WHSJ ");
SQL.Add("from XLXSBJCLWL left join ");
SQL.Add("(");
SQL.Add("select XLXSWLHQ_WLID as WLID,XLXSWLHQ_HSJG as HSJG,XLXSWLHQ_WSJG as CLJG,XLXSWLHQ_WSJGF as WSJGF,XLXSWLHQ_HSJGF as HSJGF, ");
SQL.Add(" XLXSWLHQ_JGYBJCLID1 as JGYBJCLID1,XLXSWLHQ_HSJG1 as HSJG1,XLXSWLHQ_WSJG1 as WSJG1,XLXSWLHQ_JGBL1 as JGBL1 ");
SQL.Add("from XLXSWLHQ, ");
SQL.Add("(");
SQL.Add("select XLXSWLHQ_WLID as WLID,max(XLXSWLHQ_YXQS) as maxYXQS ");
SQL.Add("from XLXSWLHQ ");
SQL.Add("where XLXSWLHQ_JGBID=' ' ");
SQL.Add("and XLXSWLHQ_YXQS<=:pYXQS ");
if (datYXQZ.Text.Trim().Equals(""))
SQL.Add("and XLXSWLHQ_YXQZ is null ");
else
SQL.Add("and (XLXSWLHQ_YXQZ is null or XLXSWLHQ_YXQZ>=:pYXQZ) ");
SQL.Add("group by XLXSWLHQ_WLID ");
SQL.Add(") a ");
SQL.Add("where XLXSWLHQ_JGBID=' ' ");
SQL.Add("and XLXSWLHQ_WLID=WLID ");
SQL.Add("and XLXSWLHQ_YXQS=maxYXQS ");
SQL.Add(") b on WLID=XLXSBJCLWL_WLID ");
SQL.Add("where exists(select 1 from XLXSBJCL where XLXSBJCL_BJCLID=XLXSBJCLWL_BJCLID and XLXSBJCL_BJHQ='2') ");
SQL.Add("and not exists (select 1 from XLXSWLHQ where XLXSWLHQ_JGBID=:pJGBID and XLXSWLHQ_WLID=XLXSBJCLWL_WLID and XLXSWLHQ_YXQS=convert(datetime,'1900-01-01 00:00:00')) ");
SQL.ParamByName("pJGBID").Value = txtJGBID.Text.Trim();
SQL.ParamByName("pWHRID").Value = tSession.UserId;
SQL.ParamByName("pWHR").Value = tSession.UserName;
SQL.ParamByName("pWHSJ").Value = DateTime.Now;
SQL.ParamByName("pYXQS").Value = datYXQS.Text.Trim();
if (!datYXQZ.Text.Trim().Equals(""))
SQL.ParamByName("pYXQZ").Value = datYXQZ.Text.Trim();
dberp.ExecSQL(SQL);
}
}
}
}
else if (ctrlState.Value.Equals("IY"))//JGF价格表更新重叠价格表的有效期止
{
SQL.Clear();
SQL.Add(string.Format("select XLXSJGB_JGBID from XLXSJGB where XLXSJGB_MXBH='{2}' and XLXSJGB_JGBID<>'{0}' and XLXSJGB_YXQS<'{1}' and (XLXSJGB_YXQZ is null or XLXSJGB_YXQZ>='{1}')",
txtJGBID.Text.Trim(), datYXQS.Text, txtMXBH.Value.Trim()));
DataSet ds = dberp.OpenDataSet(SQL);
if (ds.Tables[0].Rows.Count > 0)
{
string sOldJGBID = ds.Tables[0].Rows[0]["XLXSJGB_JGBID"].ToString().Trim();
//更新重叠价格表的有效期止
SQL.Clear();
SQL.Add("update XLXSJGB set XLXSJGB_YXQZ=:pRQ where XLXSJGB_MXBH=:pMXBH and XLXSJGB_JGBID=:pJGBID ");
SQL.ParamByName("pRQ").Value = CMISproConvert.StrToDateTime(datYXQS.Text).AddDays(-1);
SQL.ParamByName("pMXBH").Value = txtMXBH.Value.Trim();
SQL.ParamByName("pJGBID").Value = sOldJGBID;
dberp.ExecSQL(SQL);
//更新重叠价格表明细的有效期止
SQL.Clear();
SQL.Add("update XLXSJGBMX set XLXSJGBMX_YXQZ=:XLXSJGBMX_YXQZ where XLXSJGBMX_JGBID=:XLXSJGBMX_JGBID");
SQL.ParamByName("XLXSJGBMX_YXQZ").Value = CMISproConvert.StrToDateTime(datYXQS.Text).AddDays(-1);
SQL.ParamByName("XLXSJGBMX_JGBID").Value = sOldJGBID;
dberp.ExecSQL(SQL);
}
}
//排序方式变更判断
if (!txtMXPXFS.Value.Trim().Equals(cbxMXPXFS.SelectedValue.Trim()))
UpdateJGBMXXSXH(dberp, txtJGBID.Text.Trim(), txtMXBH.Value.Trim(), cbxMXPXFS.SelectedValue.Trim());
txtMXPXFS.Value = cbxMXPXFS.SelectedValue.Trim();
if (txtMXBH.Value.Trim().Equals("JGF"))//JGF更新当前有效期止避免与未来有效的价格表重叠
{
SQL.Clear();
SQL.Add(string.Format("select XLXSJGB_YXQS from XLXSJGB where XLXSJGB_MXBH='{2}' and XLXSJGB_JGBID<>'{0}' and XLXSJGB_YXQS>'{1}' ",
txtJGBID.Text.Trim(), datYXQS.Text, txtMXBH.Value.Trim()));
DataSet ds = dberp.OpenDataSet(SQL);
if (ds.Tables[0].Rows.Count > 0)
{
DateTime futureDate = CMISproConvert.StrToDateTime(ds.Tables[0].Rows[0]["XLXSJGB_YXQS"].ToString().Trim());
SQL.Clear();
SQL.Add("update XLXSJGB set XLXSJGB_YXQZ=:pRQ where XLXSJGB_MXBH=:pMXBH and XLXSJGB_JGBID=:pJGBID ");
SQL.ParamByName("pRQ").Value = futureDate.AddDays(-1);
SQL.ParamByName("pMXBH").Value = txtMXBH.Value.Trim();
SQL.ParamByName("pJGBID").Value = txtJGBID.Text.Trim();
dberp.ExecSQL(SQL);
SQL.Clear();
SQL.Add("update XLXSJGBMX set XLXSJGBMX_YXQZ=:XLXSJGBMX_YXQZ where XLXSJGBMX_JGBID=:XLXSJGBMX_JGBID");
SQL.ParamByName("XLXSJGBMX_YXQZ").Value = futureDate.AddDays(-1);
SQL.ParamByName("XLXSJGBMX_JGBID").Value = txtJGBID.Text.Trim();
dberp.ExecSQL(SQL);
datYXQZ.Text = futureDate.AddDays(-1).ToShortDateString().Trim();
ShowMessage("已更新当前价格表有效期止避免有效期重叠!");
}
}
if (txtMXBH.Value.Trim().Equals("JGB") || txtMXBH.Value.Trim().Equals("JGF") || txtMXBH.Value.Trim().Equals("JGC"))
{
if (YXQChanged())
{
SQL.Clear();
SQL.Add("update XLXSJGBMX set XLXSJGBMX_YXQS=:XLXSJGBMX_YXQS, XLXSJGBMX_YXQZ=:XLXSJGBMX_YXQZ where XLXSJGBMX_JGBID=:XLXSJGBMX_JGBID");
SQL.ParamByName("XLXSJGBMX_YXQS").Value = CMISproConvert.StrToDateTime(datYXQS.Text);
if (datYXQZ.Text.Trim().Equals(""))
SQL.ParamByName("XLXSJGBMX_YXQZ").Clear();
else
SQL.ParamByName("XLXSJGBMX_YXQZ").Value = CMISproConvert.StrToDateTime(datYXQZ.Text.Trim());
SQL.ParamByName("XLXSJGBMX_JGBID").Value = txtJGBID.Text.Trim();
dberp.ExecSQL(SQL);
}
if (!sTBJCLID.Equals(""))
{
SQL.Clear();
SQL.Add("SELECT XLXSCLHQ_HSJG from XLXSCLHQ where XLXSCLHQ_JGBID=:pJGBID and XLXSCLHQ_BJCLID=:pBJCLID and XLXSCLHQ_YXQS = convert(datetime,'1900-01-01 00:00:00')");
SQL.ParamByName("pJGBID").Value = sJGBID;
SQL.ParamByName("pBJCLID").Value = sTBJCLID;
DataSet ds = dberp.OpenDataSet(SQL);
if (ds.Tables[0].Rows.Count > 0)
{
txtTBJCLID.Value = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0][0].ToString().Trim());
}
}
if (!sLBJCLID.Equals(""))
{
SQL.Clear();
SQL.Add("SELECT XLXSCLHQ_HSJG from XLXSCLHQ where XLXSCLHQ_JGBID=:pJGBID and XLXSCLHQ_BJCLID=:pBJCLID and XLXSCLHQ_YXQS = convert(datetime,'1900-01-01 00:00:00')");
SQL.ParamByName("pJGBID").Value = sJGBID;
SQL.ParamByName("pBJCLID").Value = sLBJCLID;
DataSet ds = dberp.OpenDataSet(SQL);
if (ds.Tables[0].Rows.Count > 0)
{
txtLBJCLID.Value = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0][0].ToString().Trim());
}
}
}
CacheNotify.TableIsUpdated("DBERP", "XLXSJGB");
return base.Master_AfterSaveAction(sender, e);
}
protected override bool Master_AfterDeleteAction(object sender, EventArgs e)
{
if (txtMXBH.Value.Trim().Equals("JGB") || txtMXBH.Value.Trim().Equals("JGC") || txtMXBH.Value.Trim().Equals("JGE") || txtMXBH.Value.Trim().Equals("JGF"))
{
TDatabase db = TContextDatabases.GetDatabase("DBERP");
TSQL tSQL = new TSQL(db);
tSQL.Clear();
tSQL.Add("delete from XLXSJGBMX where XLXSJGBMX_JGBID = :XLXSJGBMX_JGBID ");
tSQL.ParamByName("XLXSJGBMX_JGBID").Value = txtJGBID.Text.Trim();
db.ExecSQL(tSQL);
tSQL.Clear();
tSQL.Add("delete from XLXSJGBYZZ0 where XLXSJGBYZZ0_JGBID = :XLXSJGBYZZ0_JGBID ");
tSQL.ParamByName("XLXSJGBYZZ0_JGBID").Value = txtJGBID.Text.Trim();
db.ExecSQL(tSQL);
tSQL.Clear();
tSQL.Add("delete from XLXSJGBYZ where XLXSJGBYZ_JGBID = :XLXSJGBYZ_JGBID ");
tSQL.ParamByName("XLXSJGBYZ_JGBID").Value = txtJGBID.Text.Trim();
db.ExecSQL(tSQL);
tSQL.Clear();
tSQL.Add("delete from XLXSCLHQ where XLXSCLHQ_JGBID = :XLXSCLHQ_JGBID ");
tSQL.ParamByName("XLXSCLHQ_JGBID").Value = txtJGBID.Text.Trim();
db.ExecSQL(tSQL);
tSQL.Clear();
tSQL.Add("delete from XLXSWLHQ where XLXSWLHQ_JGBID = :XLXSWLHQ_JGBID ");
tSQL.ParamByName("XLXSWLHQ_JGBID").Value = txtJGBID.Text.Trim();
db.ExecSQL(tSQL);
tSQL.Clear();
tSQL.Add("update XLXSJGBPZJGB set XLXSJGBPZJGB_JGBID=null,XLXSJGBPZJGB_JGBMC=null where XLXSJGBPZJGB_JGBID=:pJGBID");
tSQL.ParamByName("pJGBID").Value = txtJGBID.Text.Trim();
db.ExecSQL(tSQL);
tSQL.Clear();
tSQL.Add("delete from XLXSJGBCLHQFD where XLXSJGBCLHQFD_MXBH=:pMXBH and XLXSJGBCLHQFD_JGBID=:pJGBID");
tSQL.ParamByName("pMXBH").Value = txtMXBH.Value.Trim();
tSQL.ParamByName("pJGBID").Value = txtJGBID.Text.Trim();
db.ExecSQL(tSQL);
tSQL.Clear();
tSQL.Add("delete from XLXSJGBCLQD where XLXSJGBCLQD_JGBID = :XLXSJGBCLQD_JGBID ");
tSQL.ParamByName("XLXSJGBCLQD_JGBID").Value = txtJGBID.Text.Trim();
db.ExecSQL(tSQL);
tSQL.Clear();
tSQL.Add("delete from XLXSJGBCLQDWL where XLXSJGBCLQDWL_JGBID = :XLXSJGBCLQDWL_JGBID ");
tSQL.ParamByName("XLXSJGBCLQDWL_JGBID").Value = txtJGBID.Text.Trim();
db.ExecSQL(tSQL);
tSQL.Clear();
tSQL.Add("delete from XLXSJGBYLLM where XLXSJGBYLLM_JGBID = :XLXSJGBYLLM_JGBID ");
tSQL.ParamByName("XLXSJGBYLLM_JGBID").Value = txtJGBID.Text.Trim();
db.ExecSQL(tSQL);
}
if (txtMXBH.Value.Trim().Equals("JZJ"))
{
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
TSQL sSQL = new TSQL(dberp);
for (int i = 1; i <= 7; i++)
{
sSQL.Clear();
sSQL.Add(string.Format("delete from XLXSJGBYZZ{0} where XLXSJGBYZZ{0}_JGBID = :pJGBID ",i.ToString().Trim()));
sSQL.ParamByName("pJGBID").Value = txtJGBID.Text.Trim();
dberp.ExecSQL(sSQL);
}
}
if (txtMXBH.Value.Trim().Equals("BJD"))
{
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
TSQL sSQL = new TSQL(dberp);
for (int i = 1; i <= 14; i++)
{
string sHZ = i.ToString().Trim();
switch (i)
{
case 10:
sHZ = "A";
break;
case 11:
sHZ = "B";
break;
case 12:
sHZ = "C";
break;
case 13:
sHZ = "D";
break;
case 14:
sHZ = "E";
break;
default:
break;
}
sSQL.Clear();
sSQL.Add(string.Format("delete from XLXSBJDYZZ{0} where XLXSBJDYZZ{0}_JGBID = :pJGBID ", sHZ));
sSQL.ParamByName("pJGBID").Value = txtJGBID.Text.Trim();
dberp.ExecSQL(sSQL);
}
}
CacheNotify.TableIsUpdated("DBERP", "XLXSJGBYZ");
CacheNotify.TableIsUpdated("DBERP", "XLXSJGB");
return base.Master_AfterDeleteAction(sender, e);
}
protected override bool Master_BeforeDeleteAction(object sender, EventArgs e)
{
if (txtMXBH.Value.Trim().Equals("JGB") || txtMXBH.Value.Trim().Equals("JGC") || txtMXBH.Value.Trim().Equals("JGE") || txtMXBH.Value.Trim().Equals("JGF"))
{
if (txtMXBH.Value.Trim().Equals("JGB") || txtMXBH.Value.Trim().Equals("JGE"))
{
if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from XLXSBJD where XLXSBJD_JGBID='{0}'", txtJGBID.Text.Trim())))
{
ShowMessage("已被报价单使用,不允许删除!");
return false;
}
}
if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select top 1 XLXSJGB_JGBID from XLXSJGB where ','||rtrim(isnull(XLXSJGB_JGBIDS,' '))||',' like '{0}'", "%," + txtJGBID.Text.Trim() + ",%")))
{
ShowMessage("已被其他价格表作为所依出厂价,不允许删除!");
return false;
}
if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from XLXSJGB where ','||rtrim(isnull(XLXSJGB_JGCIDS,' '))||',' like '{0}'", "%," + txtJGBID.Text.Trim() + ",%")))
{
ShowMessage("已被报价价格表引用,不允许删除!");
return false;
}
if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from XLXSJGBMX where XLXSJGBMX_JGBID='{0}' ", txtJGBID.Text.Trim())))
{
Confirm.Register("CheckDel", "存在价格表明细记录,确定删除?");
if (Confirm.GetValue("CheckDel").Trim().Equals(""))
{
Confirm.Ask("CheckDel");
return false;
}
else if (Confirm.GetValue("CheckDel").Trim().Equals("N"))
{
//表示进行了提示并选择了取消,直接返回或其他处理
Confirm.Clear();
return false;
}
else if (Confirm.GetValue("CheckDel").Trim().Equals("Y"))
{
//表示进行了提示并选择了确认
Confirm.Clear();
}
}
}
else if (txtMXBH.Value.Trim().Equals("JZJ"))
{
Dictionary<string, string> dic = XLBJDUtils.GetALLYZIDDic();
foreach (string sYZID in dic.Keys)
{
TZYZXX yzxx = XLBJDUtils.GetYZXXByYZID(sYZID);
if (!string.IsNullOrEmpty(yzxx.XLXSTZYZ_JGBID) && yzxx.XLXSTZYZ_JGBID.Equals(txtJGBID.Text.Trim())&&yzxx.XLXSTZYZ_MXBH=="JZJ")
{
ShowMessage("被价格表调价因子使用,不允许删除!");
return false;
}
}
Confirm.Register("CheckDel", "将同步删除当前调价表设置的因子值记录,是否继续?");
if (Confirm.GetValue("CheckDel").Trim().Equals(""))
{
Confirm.Ask("CheckDel");
return false;
}
else if (Confirm.GetValue("CheckDel").Trim().Equals("N"))
{
//表示进行了提示并选择了取消,直接返回或其他处理
Confirm.Clear();
return false;
}
else if (Confirm.GetValue("CheckDel").Trim().Equals("Y"))
{
//表示进行了提示并选择了确认
Confirm.Clear();
}
}
else if (txtMXBH.Value.Trim().Equals("BJD"))
{
Dictionary<string, string> dic = XLBJDUtils.GetALLYZIDDic();
foreach (string sYZID in dic.Keys)
{
TZYZXX yzxx = XLBJDUtils.GetYZXXByYZID(sYZID);
if (!string.IsNullOrEmpty(yzxx.XLXSTZYZ_JGBID) && yzxx.XLXSTZYZ_JGBID.Equals(txtJGBID.Text.Trim()) && yzxx.XLXSTZYZ_MXBH == "BJD")
{
ShowMessage("被报价单调价因子使用,不允许删除!");
return false;
}
}
Confirm.Register("CheckDel", "将同步删除当前调价表设置的因子值记录,是否继续?");
if (Confirm.GetValue("CheckDel").Trim().Equals(""))
{
Confirm.Ask("CheckDel");
return false;
}
else if (Confirm.GetValue("CheckDel").Trim().Equals("N"))
{
//表示进行了提示并选择了取消,直接返回或其他处理
Confirm.Clear();
return false;
}
else if (Confirm.GetValue("CheckDel").Trim().Equals("Y"))
{
//表示进行了提示并选择了确认
Confirm.Clear();
}
}
return base.Master_BeforeDeleteAction(sender, e);
}
protected override void SetComboxItems()
{
if (txtMXBH.Value.Trim().Equals("JGB") || txtMXBH.Value.Trim().Equals("JGC") || txtMXBH.Value.Trim().Equals("JGF"))
{
cbxTJYS.ClearItems();
cbxTJYS.Items.Add(new ListItem("1|表价(出厂价)=基价(材料价)&调价", "1"));
if (txtMXBH.Value.Trim().Equals("JGB"))
{
cbxTJYS.Items.Add(new ListItem("2|表价(区域价)=基价(出厂价)&调价", "2"));
cbxTJYS.Items.Add(new ListItem("3|表价(现行价)=基价(出厂价+材料价价差)&调价", "3"));
}
if (ControlState == TControlState.ctsBrowse)
{
cbxJJLY.ClearItems();
cbxJJLY.Items.Add(new ListItem("A|sum(材料用量*材料价格)", "A"));
cbxJJLY.Items.Add(new ListItem("B|出厂价", "B"));
cbxJJLY.Items.Add(new ListItem("C|出厂价+材料价价差", "C"));
cbxJJLY.Items.Add(new ListItem("D|直接导入", "D"));
}
else
{
cbxTJYS_SelectedIndexChanged(null, null);
}
cbxBJLY.ClearItems();
cbxBJLY.Items.Add(new ListItem("J|按调价因素计算", "J"));
cbxBJLY.Items.Add(new ListItem("D|直接导入", "D"));
if (txtMXBH.Value.Trim().Equals("JGB"))
{
cbxBJLY.Items.Add(new ListItem("C|基价价格表表价", "C"));
}
cbxJSBLFS.ClearItems();
cbxJSBLFS.Items.Add(new ListItem("R|四舍五入法", "R"));
cbxJSBLFS.Items.Add(new ListItem("C1|进一法(材料价各分项进一)", "C1"));
cbxJSBLFS.Items.Add(new ListItem("C2|进一法(材料价汇总进一)", "C2"));
cbxJSBLFS.Items.Add(new ListItem("C3|材料价汇总进一+表价进一到十位", "C3"));
cbxWSJGLY.ClearItems();
cbxWSJGLY.Items.Add(new ListItem("1|无税材料价格", "1"));
cbxWSJGLY.Items.Add(new ListItem("2|含税价格×(1-税率%)", "2"));
if (ControlState == TControlState.ctsBrowse)
{
TComboBox.SetComboBox("DBERP", cbxCPMLID, string.Format("select XLXSCPML_CPMLID,XLXSCPML_CPMLMC from XLXSCPML where XLXSCPML_CPMLID='{0}'", cbxCPMLID.SelectedValue.Trim()), true);
}
else
{
if (txtMXBH.Value.Trim().Equals("JGB"))//JGB加载组合产品目录
{
if (!GetOption("BJU016").Equals(""))
{
TComboBox.SetComboBox("DBERP", cbxCPMLID, @"select XLXSCPML_CPMLID,XLXSCPML_CPMLMC from XLXSCPML
where isnull(XLXSCPML_CPMLLX,' ')='Y' and isnull(XLXSCPML_TYBZ,' ')<>'Y'
and " + CMISproDataBase.GetWhereEqual("XLXSCPML_CPMLID", GetOption("BJU016")) + " order by XLXSCPML_CPMLID", true);
}
else
{
TComboBox.SetComboBox("DBERP", cbxCPMLID, @"select XLXSCPML_CPMLID,XLXSCPML_CPMLMC from XLXSCPML
where isnull(XLXSCPML_CPMLLX,' ')='Y' and isnull(XLXSCPML_TYBZ,' ')<>'Y'
order by XLXSCPML_CPMLID", true);
}
}
else if (txtMXBH.Value.Trim().Equals("JGC"))//JGC加载单一产品目录
{
if (!GetOption("BJU016").Equals(""))
{
TComboBox.SetComboBox("DBERP", cbxCPMLID, @"select XLXSCPML_CPMLID,XLXSCPML_CPMLMC from XLXSCPML
where isnull(XLXSCPML_CPMLLX,' ')<>'Y' and isnull(XLXSCPML_TYBZ,' ')<>'Y'
and " + CMISproDataBase.GetWhereEqual("XLXSCPML_CPMLID", GetOption("BJU016")) + " order by XLXSCPML_CPMLID", true);
}
else
{
TComboBox.SetComboBox("DBERP", cbxCPMLID, @"select XLXSCPML_CPMLID,XLXSCPML_CPMLMC from XLXSCPML
where isnull(XLXSCPML_CPMLLX,' ')<>'Y' and isnull(XLXSCPML_TYBZ,' ')<>'Y'
order by XLXSCPML_CPMLID", true);
}
}
}
}
else if (txtMXBH.Value.Trim().Equals("JZJ"))
{
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"));
}
else if (txtMXBH.Value.Trim().Equals("BJD"))
{
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"));
}
cbxTJZT.ClearItems();
cbxTJZT.Items.Add(new ListItem("", ""));
cbxTJZT.Items.Add(new ListItem("等待", "W"));
cbxTJZT.Items.Add(new ListItem("计算", "J"));
cbxTJZT.Items.Add(new ListItem("成功", "S"));
cbxTJZT.Items.Add(new ListItem("失败", "F"));
cbxTJZT.Items.Add(new ListItem("取消", "C"));
cbxDRZT.ClearItems();
cbxDRZT.Items.Add(new ListItem("", ""));
cbxDRZT.Items.Add(new ListItem("等待", "W"));
cbxDRZT.Items.Add(new ListItem("导入", "J"));
cbxDRZT.Items.Add(new ListItem("成功", "S"));
cbxDRZT.Items.Add(new ListItem("失败", "F"));
cbxDRZT.Items.Add(new ListItem("取消", "C"));
cbxMXPXFS.ClearItems();
cbxMXPXFS.Items.Add(new ListItem("序号", "A"));
cbxMXPXFS.Items.Add(new ListItem("型号+标准+规格序号+电压等级", "B"));
cbxMXPXFS.Items.Add(new ListItem("型号+电压等级+规格序号+标准", "C"));
cbxMXPXFS.Items.Add(new ListItem("标准+型号+规格序号+电压等级", "D"));
cbxMXPXFS.Items.Add(new ListItem("型号+电压等级+标准+规格", "E"));
cbxMXPXFS.Items.Add(new ListItem("型号+电压等级+芯数截面", "F"));
TRYXX.SetComboBox_GH(cbxTJR, "", true, true);
base.SetComboxItems();
}
#endregion
#region 私有函数
//不管JGB\JGC\JGE\JGF,都按JGB进行编码,否则两者编码重复,后续所有明细表都得加MXBH
public static string getNewJGBBH()
{
string sPrefix = DateTime.Now.Year.ToString().Substring(2, 2) + DateTime.Now.Month.ToString().PadLeft(2, '0');
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
TSQL SQL = new TSQL(dberp);
SQL.Add("select max(XLXSJGB_JGBID) from XLXSJGB where XLXSJGB_MXBH in ('JGB','JGC','JGE','JGF') and XLXSJGB_JGBID like :pPrefix");
SQL.ParamByName("pPrefix").Value = sPrefix + '%';
DataSet ds = dberp.OpenDataSet(SQL);
if (!string.IsNullOrEmpty(ds.Tables[0].Rows[0][0].ToString().Trim()))
{
double dTemp = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0][0].ToString().Trim().Substring(4, 4));
return sPrefix + Convert.ToString(dTemp + 1).PadLeft(4, '0');
}
else
{
return sPrefix + "0001";
}
}
private string getNewTJBBH(string sMXBH, string sTJYS)
{
string sRet = "00000001";
sTJYS = sTJYS.Trim().Equals("") ? " " : sTJYS.Trim();
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
TSQL SQL = new TSQL(dberp);
SQL.Add("select max(SUBSTRING(XLXSJGB_JGBID,2,7)) from XLXSJGB where XLXSJGB_MXBH=:pMXBH and XLXSJGB_TJYS = :pTJYS");
SQL.ParamByName("pMXBH").Value = sMXBH;
SQL.ParamByName("pTJYS").Value = sTJYS;
DataSet ds = dberp.OpenDataSet(SQL);
if (!string.IsNullOrEmpty(ds.Tables[0].Rows[0][0].ToString().Trim()))
{
double dTemp = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0][0].ToString().Trim());
if (sTJYS.Trim().Equals(""))
{
sRet = "0" + Convert.ToString(dTemp + 1).PadLeft(7, '0');
}
else
{
sRet = sTJYS + Convert.ToString(dTemp + 1).PadLeft(7, '0');
}
}
else
{
if (sTJYS.Trim().Equals(""))
sRet = "00000001";
else
sRet = sTJYS.Trim() + "0000001";
}
return sRet;
}
private bool YXQChanged()
{
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
TSQL SQL = new TSQL(dberp);
SQL.Clear();
SQL.Add("select distinct XLXSJGBMX_YXQS,XLXSJGBMX_YXQZ from XLXSJGBMX where XLXSJGBMX_JGBID=:pJGBID ");
SQL.ParamByName("pJGBID").Value = txtJGBID.Text.Trim();
DataSet ds = dberp.OpenDataSet(SQL);
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
string sYXQS = ds.Tables[0].Rows[i]["XLXSJGBMX_YXQS"].ToString().Trim();
string sYXQZ = ds.Tables[0].Rows[i]["XLXSJGBMX_YXQZ"].ToString().Trim();
if (!sYXQS.Equals(datYXQS.Text.Trim()) || !sYXQZ.Equals(datYXQZ.Text.Trim()))
{
return true;
}
}
return false;
}
public static void GetTLBJCLID(TDatabase dberp, TSQL SQL, ref string sTBJCLID, ref string sLBJCLID)
{
XLXSBJPZXX pzxx = XLBJDUtils.GetXLXSBJPZXX(100860018);
if (!string.IsNullOrEmpty(pzxx.XLXSBJPZ_TBJCLID))
sTBJCLID = pzxx.XLXSBJPZ_TBJCLID;
if (!string.IsNullOrEmpty(pzxx.XLXSBJPZ_LBJCLID))
sLBJCLID = pzxx.XLXSBJPZ_LBJCLID;
}
public static bool IsJGBMRBSX()
{
XLXSBJPZXX pzxx = XLBJDUtils.GetXLXSBJPZXX(100860018);
if (pzxx.XLXSBJPZ_JGBMRBSX == "Y")
return true;
return false;
}
public static void UpdateJGBMXXSXH(TDatabase dberp, string sJGBID, string sMXBH, string sPXFS)
{
TSQL SQL = new TSQL(dberp);
SQL.Clear();
SQL.Add(" update XLXSJGB set XLXSJGB_MXPXFS = :pPXFS where XLXSJGB_JGBID = :pJGBID and XLXSJGB_MXBH = :pMXBH ");
SQL.ParamByName("pPXFS").Value = sPXFS;
SQL.ParamByName("pJGBID").Value = sJGBID;
SQL.ParamByName("pMXBH").Value = sMXBH;
dberp.ExecSQL(SQL);
SQL.Clear();
SQL.Add(" merge into XLXSJGBMX tag ");
SQL.Add(" using ( ");
SQL.Add(" select XLXSJGBMX_JGBID,XLXSJGBMX_XH ,");
if (sPXFS.Equals("A"))
SQL.Add(" row_number() over(order by XLXSJGBMX_XH) as XH");
else if (sPXFS.Equals("B"))
SQL.Add(" row_number() over(order by XLXSJGBMX_XLXHID,XLXSJGBMX_XLBZID,XLGGB_XH,XLXSJGBMX_XLGGID,XLXSJGBMX_DYDJID) as XH ");
else if (sPXFS.Equals("C"))
SQL.Add(" row_number() over(order by XLXSJGBMX_XLXHID,XLXSJGBMX_DYDJID,XLGGB_XH,XLXSJGBMX_XLGGID,XLXSJGBMX_XLBZID) as XH ");
else if (sPXFS.Equals("D"))
SQL.Add(" row_number() over(order by XLXSJGBMX_XLBZID,XLXSJGBMX_XLXHID,XLGGB_XH,XLXSJGBMX_XLGGID,XLXSJGBMX_DYDJID) as XH ");
else if (sPXFS.Equals("E"))
SQL.Add(@" row_number() over(order by XLXSJGBMX_XLXHID,XLXSJGBMX_DYDJID,XLXSJGBMX_XLBZID,
XLXXJGB_SFXD7,XLXXJGB_SFXD6,XLXXJGB_SFXD5,XLXXJGB_SFXD4,XLXXJGB_SFXD3,XLXXJGB_SFXD2,XLXXJGB_SFXD1,XLXXJGB_SL7,XLXXJGB_SL6,
XLXXJGB_SL5,XLXXJGB_SL4,XLXXJGB_SL3,XLXXJGB_SL2,XLXXJGB_SL1,
XLDTJMZHB_DTJM1,XLDTJMZHB_DTJM2,XLDTJMZHB_DTJM3,XLDTJMZHB_DTJM4,XLDTJMZHB_DTJM5,XLDTJMZHB_DTJM6,XLDTJMZHB_DTJM7,XLXSJGBMX_XLGGID) as XH ");
else if (sPXFS.Equals("F"))
SQL.Add(@" row_number() over(order by XLXSJGBMX_XLXHID,XLXSJGBMX_DYDJID,
XLXXJGB_SFXD7,XLXXJGB_SFXD6,XLXXJGB_SFXD5,XLXXJGB_SFXD4,XLXXJGB_SFXD3,XLXXJGB_SFXD2,XLXXJGB_SFXD1,XLXXJGB_SL7,XLXXJGB_SL6,
XLXXJGB_SL5,XLXXJGB_SL4,XLXXJGB_SL3,XLXXJGB_SL2,XLXXJGB_SL1,
XLDTJMZHB_DTJM1,XLDTJMZHB_DTJM2,XLDTJMZHB_DTJM3,XLDTJMZHB_DTJM4,XLDTJMZHB_DTJM5,XLDTJMZHB_DTJM6,XLDTJMZHB_DTJM7,XLXSJGBMX_XLGGID) as XH,XLXSJGBMX_XLBZID ");
else
SQL.Add(" row_number() over(order by XLXSJGBMX_XLXHID,XLXSJGBMX_XLBZID,XLGGB_XH,XLXSJGBMX_XLGGID,XLXSJGBMX_DYDJID) as XH ");
SQL.Add(" from XLXSJGBMX ");
if (!sPXFS.Equals("A"))
{
SQL.Add(" left join XLXHB on XLXHB_XLXHID=XLXSJGBMX_XLXHID");
SQL.Add(" left join XLXSBJXLGGTHB on XLXSBJXLGGTHB_XLGGID = XLXSJGBMX_XLGGID ");
SQL.Add(" left join XLGGB on XLGGB_XLGGID = XLXSBJXLGGTHB_XLGGIDCH and XLGGB_XLGGJDGZ = isnull(XLXHB_XLGGJDGZ,'0') ");
}
if (sPXFS.Equals("E") || sPXFS.Equals("F"))
{
SQL.Add(" left join XLXXJGB on XLXXJGB_XXJGID=XLGGB_XXJGID ");
SQL.Add(" left join XLDTJMZHB on XLDTJMZHB_DTJMZHID=XLGGB_DTJMZHID ");
}
SQL.Add(" where 1=1 and XLXSJGBMX_JGBID = :pJGBID ");
SQL.Add(" ) sor ");
SQL.Add(" on (sor.XLXSJGBMX_JGBID = tag.XLXSJGBMX_JGBID and sor.XLXSJGBMX_XH = tag.XLXSJGBMX_XH ) ");
SQL.Add(" when matched then update set tag.XLXSJGBMX_XSXH = sor.XH ");
SQL.ParamByName("pJGBID").Value = sJGBID;
dberp.ExecSQL(SQL);
}
public static void UpdateJGBMXXSXH(TDatabase dberp, string sJGBID, string sMXBH)
{
TSQL SQL = new TSQL(dberp);
SQL.Clear();
SQL.Add(" select XLXSJGB_MXPXFS from XLXSJGB where XLXSJGB_JGBID = :pJGBID ");
if (!sMXBH.Trim().Equals(""))
{
SQL.Add(" and XLXSJGB_MXBH = :pMXBH ");
SQL.ParamByName("pMXBH").Value = sMXBH;
}
SQL.ParamByName("pJGBID").Value = sJGBID;
DataSet ds = dberp.OpenDataSet(SQL);
if (ds.Tables[0].Rows.Count > 0)
{
string sPXFS = ds.Tables[0].Rows[0]["XLXSJGB_MXPXFS"].ToString().Trim();
UpdateJGBMXXSXH(dberp, sJGBID, sMXBH, sPXFS);
}
}
//是否有100458003模块权限
private bool CheckXSJGB()
{
UserRight UR = OpRightUtils.GetUserRight(tSession.UserId, 100458003);
return (DSActiveModule.IsActiveModule(100458003) && UR.Open);
}
#endregion
#region 控件事件
protected void cbxBJLY_SelectedIndexChanged(object sender, EventArgs e)
{
if (cbxBJLY.SelectedValue.Trim().Equals("J"))
cbxJSBLFS.Enabled = true;
else
{
cbxJSBLFS.SelectedValue = "";
cbxJSBLFS.Enabled = false;
}
int rows = 0;
txtBZ.Rows = 4;
if (cbxTJYS.SelectedValue.Trim().Equals("1"))
{
rows = rows + 2;
txtBZ.Rows = 4 - rows;
}
if (cbxTJYS.SelectedValue.Trim().Equals("1") && cbxBJLY.SelectedValue.Trim().Equals("J") && cbxJJLY.SelectedValue.Equals("A"))
{
cbxWSJGLY.ClearItems();
cbxWSJGLY.Items.Add(new ListItem("1|无税材料价格", "1"));
cbxWSJGLY.Items.Add(new ListItem("2|含税价格×(1-税率%)", "2"));
if (cbxWSJGLY.SelectedValue.Equals(""))
cbxWSJGLY.SelectedValue = "1";
lblWSJGLY.Visible = true;
cbxWSJGLY.Visible = true;
lblSL.Visible = true;
txtSL.Visible = true;
lblFH.Visible = true;
trWSJGLY.Visible = true;
rows++;
txtBZ.Rows = 4 - rows;
}
else
{
cbxWSJGLY.SelectedValue = "";
txtSL.Value = 0;
lblWSJGLY.Visible = false;
cbxWSJGLY.Visible = false;
lblSL.Visible = false;
txtSL.Visible = false;
lblFH.Visible = false;
trWSJGLY.Visible = false;
}
if (IsPostBack)
{
if ((cbxJJLY.SelectedValue.Trim().Equals("D") && txtJGBIDS.Value.Trim().Equals("")) || cbxBJLY.SelectedValue.Trim().Equals("D"))
{
cbxMXPXFS.Enabled = false;
cbxMXPXFS.SelectedValue = "A";
}
else
{
cbxMXPXFS.Enabled = true;
if (ControlState == TControlState.ctsInsert)
cbxMXPXFS.SelectedValue = "B";
}
}
//if (cbxBJLY.SelectedValue.Trim().Equals("C"))
// cbxJGCIDS.Enabled = true;
//else
//{
// cbxJGCIDS.SelectedValue = "";
// cbxJGCIDS.Enabled = false;
//}
}
protected void cbxTJYS_SelectedIndexChanged(object sender, EventArgs e)
{
lblTJR.Visible = false;
lblTJZT.Visible = false;
cbxTJR.Visible = false;
cbxTJZT.Visible = false;
cbxDRZT.Visible = false;
lblTJKSSJ.Visible = false;
lblTJWCSJ.Visible = false;
datTJKSSJ.Visible = false;
datTJWCSJ.Visible = false;
trTJR.Visible = false;
trTJSJ.Visible = false;
int rows = 0;
txtBZ.Rows = 4;
if (txtMXBH.Value.Trim().Equals("JGB") || txtMXBH.Value.Trim().Equals("JGC"))
{
cbxJJLY.ClearItems();
if (cbxTJYS.SelectedValue.Trim().Equals("0"))
{
cbxJJLY.Items.Add(new ListItem("A|sum(材料用量*材料价格)", "A"));
if (ControlState == TControlState.ctsInsert || ControlState == TControlState.ctsCopy)
{
cbxJJLY.SelectedValue = "A";
}
else if (ControlState == TControlState.ctsEdit)
{
cbxJJLY.SelectedValue = "A";
}
}
else if (cbxTJYS.SelectedValue.Trim().Equals("1"))
{
lblTJR.Visible = true;
lblTJZT.Visible = true;
cbxTJR.Visible = true;
cbxTJZT.Visible = true;
cbxDRZT.Visible = true;
lblTJKSSJ.Visible = true;
lblTJWCSJ.Visible = true;
datTJKSSJ.Visible = true;
datTJWCSJ.Visible = true;
trTJR.Visible = true;
trTJSJ.Visible = true;
rows = rows + 2;
txtBZ.Rows = 4 - rows;
cbxJJLY.Items.Add(new ListItem("A|sum(材料用量*材料价格)", "A"));
cbxJJLY.Items.Add(new ListItem("D|直接导入", "D"));
if (ControlState == TControlState.ctsInsert)
{
cbxJJLY.SelectedValue = "A";
}
}
else if (cbxTJYS.SelectedValue.Trim().Equals("2"))
{
cbxJJLY.Items.Add(new ListItem("B|出厂价", "B"));
if (ControlState == TControlState.ctsInsert || ControlState == TControlState.ctsCopy)
{
cbxJJLY.SelectedValue = "B";
}
else if (ControlState == TControlState.ctsEdit)
{
cbxJJLY.SelectedValue = "B";
}
}
else if (cbxTJYS.SelectedValue.Trim().Equals("3"))
{
cbxJJLY.Items.Add(new ListItem("C|出厂价+材料价价差", "C"));
if (ControlState == TControlState.ctsInsert || ControlState == TControlState.ctsCopy)
{
cbxJJLY.SelectedValue = "C";
}
else if (ControlState == TControlState.ctsEdit)
{
cbxJJLY.SelectedValue = "C";
}
}
}
if (cbxTJYS.SelectedValue.Trim().Equals("1") && cbxBJLY.SelectedValue.Trim().Equals("J") && cbxJJLY.SelectedValue.Equals("A"))
{
cbxWSJGLY.ClearItems();
cbxWSJGLY.Items.Add(new ListItem("1|无税材料价格", "1"));
cbxWSJGLY.Items.Add(new ListItem("2|含税价格×(1-税率%)", "2"));
if (cbxWSJGLY.SelectedValue.Equals(""))
cbxWSJGLY.SelectedValue = "1";
lblWSJGLY.Visible = true;
cbxWSJGLY.Visible = true;
lblSL.Visible = true;
txtSL.Visible = true;
lblFH.Visible = true;
trWSJGLY.Visible = true;
rows++;
txtBZ.Rows = 4 - rows;
}
else
{
cbxWSJGLY.SelectedValue = "";
txtSL.Value = 0;
lblWSJGLY.Visible = false;
cbxWSJGLY.Visible = false;
lblSL.Visible = false;
txtSL.Visible = false;
lblFH.Visible = false;
trWSJGLY.Visible = false;
}
if (IsPostBack)
{
if ((cbxJJLY.SelectedValue.Trim().Equals("D") && txtJGBIDS.Value.Trim().Equals("")) || cbxBJLY.SelectedValue.Trim().Equals("D"))
{
cbxMXPXFS.Enabled = false;
cbxMXPXFS.SelectedValue = "A";
}
else
{
cbxMXPXFS.Enabled = true;
if (ControlState == TControlState.ctsInsert)
cbxMXPXFS.SelectedValue = "B";
}
}
}
protected void cbxJJLY_SelectedIndexChanged(object sender, EventArgs e)
{
int rows = 0;
txtBZ.Rows = 4;
if (cbxTJYS.SelectedValue.Trim().Equals("1"))
{
rows = rows + 2;
txtBZ.Rows = 4 - rows;
}
if (cbxTJYS.SelectedValue.Trim().Equals("1") && cbxBJLY.SelectedValue.Trim().Equals("J") && cbxJJLY.SelectedValue.Equals("A"))
{
cbxWSJGLY.ClearItems();
cbxWSJGLY.Items.Add(new ListItem("1|无税材料价格", "1"));
cbxWSJGLY.Items.Add(new ListItem("2|含税价格×(1-税率%)", "2"));
if (cbxWSJGLY.SelectedValue.Equals(""))
cbxWSJGLY.SelectedValue = "1";
lblWSJGLY.Visible = true;
cbxWSJGLY.Visible = true;
lblSL.Visible = true;
txtSL.Visible = true;
lblFH.Visible = true;
trWSJGLY.Visible = true;
rows++;
txtBZ.Rows = 4 - rows;
}
else
{
cbxWSJGLY.SelectedValue = "";
txtSL.Value = 0;
lblWSJGLY.Visible = false;
cbxWSJGLY.Visible = false;
lblSL.Visible = false;
txtSL.Visible = false;
lblFH.Visible = false;
trWSJGLY.Visible = false;
}
if (cbxJJLY.SelectedValue.Trim() == "D" && txtJGBIDS.Value.Trim().Equals(""))
{
txtTBJCLID.Enabled = false;
txtLBJCLID.Enabled = false;
if (ControlState != TControlState.ctsBrowse && ControlState != TControlState.ctsNull)
{
if (txtMXBH.Value.Trim().Equals("JGB") || txtMXBH.Value.Trim().Equals("JGC"))
{
txtTBJCLID.Enabled = true;
txtLBJCLID.Enabled = true;
}
}
}
if (IsPostBack)
{
if ((cbxJJLY.SelectedValue.Trim().Equals("D") && txtJGBIDS.Value.Trim().Equals("")) || cbxBJLY.SelectedValue.Trim().Equals("D"))
{
cbxMXPXFS.Enabled = false;
cbxMXPXFS.SelectedValue = "A";
}
else
{
cbxMXPXFS.Enabled = true;
if (ControlState == TControlState.ctsInsert)
cbxMXPXFS.SelectedValue = "B";
}
}
}
//铜价标签
protected void llblTBJCLID_Click(object sender, EventArgs e)
{
string sMXBH = txtMXBH.Value;
string sJGBID = txtJGBID.Text.Trim();
string sCPMLLX = "";
string sJGBIDS = "";
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
TSQL SQL = new TSQL(dberp);
SQL.Clear();
SQL.Add(" SELECT XLXSCPML_CPMLLX,XLXSJGB_JGBIDS FROM XLXSJGB ");
SQL.Add(" LEFT JOIN XLXSCPML ON XLXSCPML_CPMLID = XLXSJGB_CPMLID ");
SQL.Add(" where 1=1 and XLXSJGB_JGBID = :pJGBID ");
SQL.Add(" and XLXSJGB_MXBH = :pMXBH ");
SQL.ParamByName("pJGBID").Value = sJGBID;
SQL.ParamByName("pMXBH").Value = sMXBH;
DataSet ds = dberp.OpenDataSet(SQL);
if (ds.Tables[0].Rows.Count > 0)
{
sCPMLLX = ds.Tables[0].Rows[0]["XLXSCPML_CPMLLX"].ToString().Trim();
sJGBIDS = ds.Tables[0].Rows[0]["XLXSJGB_JGBIDS"].ToString().Trim();
}
TPageParams pageParams = new TPageParams();
pageParams.UrlPath = "XLJGB_CLJGTZList.aspx";
pageParams.AddString("FromJGBML", "FromJGBML");
pageParams.AddString("XLXSJGBMX_JGBID", sJGBID);
pageParams.AddString("MXBH", sMXBH);
pageParams.AddString("BJLY", cbxBJLY.SelectedValue.Trim());
pageParams.AddString("CPMLLX", sCPMLLX);
pageParams.AddString("XLXSJGBMX_JGBIDS", sJGBIDS);
pageParams.AddString("TJYS", cbxTJYS.SelectedValue.Trim());
pageParams.AddString("JSBLFS", cbxJSBLFS.SelectedValue.Trim());
OpenFuncModuleDialog(100860001, pageParams, btnLoarRecord.ClientID);
}
//铝价标签
protected void lblLBJCLID_Click(object sender, EventArgs e)
{
string sMXBH = txtMXBH.Value;
string sJGBID = txtJGBID.Text.Trim();
string sCPMLLX = "";
string sJGBIDS = "";
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
TSQL SQL = new TSQL(dberp);
SQL.Clear();
SQL.Add(" SELECT XLXSCPML_CPMLLX,XLXSJGB_JGBIDS FROM XLXSJGB ");
SQL.Add(" LEFT JOIN XLXSCPML ON XLXSCPML_CPMLID = XLXSJGB_CPMLID ");
SQL.Add(" where 1=1 and XLXSJGB_JGBID = :pJGBID ");
SQL.Add(" and XLXSJGB_MXBH = :pMXBH ");
SQL.ParamByName("pJGBID").Value = sJGBID;
SQL.ParamByName("pMXBH").Value = sMXBH;
DataSet ds = dberp.OpenDataSet(SQL);
if (ds.Tables[0].Rows.Count > 0)
{
sCPMLLX = ds.Tables[0].Rows[0]["XLXSCPML_CPMLLX"].ToString().Trim();
sJGBIDS = ds.Tables[0].Rows[0]["XLXSJGB_JGBIDS"].ToString().Trim();
}
TPageParams pageParams = new TPageParams();
pageParams.UrlPath = "XLJGB_CLJGTZList.aspx";
pageParams.AddString("FromJGBML", "FromJGBML");
pageParams.AddString("XLXSJGBMX_JGBID", sJGBID);
pageParams.AddString("MXBH", sMXBH);
pageParams.AddString("JSBLFS", cbxJSBLFS.SelectedValue.Trim());
pageParams.AddString("BJLY", cbxBJLY.SelectedValue.Trim());
pageParams.AddString("CPMLLX", sCPMLLX);
pageParams.AddString("XLXSJGBMX_JGBIDS", sJGBIDS);
pageParams.AddString("TJYS", cbxTJYS.SelectedValue.Trim());
OpenFuncModuleDialog(100860001, pageParams, btnLoarRecord.ClientID);
}
protected void btnXLXSJGBMX_Click(object sender, EventArgs e)
{
string sMXBH = txtMXBH.Value;
string sJGBID = txtJGBID.Text.Trim();
TPageParams param = new TPageParams();
param.UrlPath = "XLJGB_JGBMXList.aspx";
param.AddString("FromJGBML", "FromJGBML");
param.AddString("JGBID", sJGBID);
param.AddString("MXBH", sMXBH);
OpenFuncModuleDialog(100860001, param, btnLoarRecord.ClientID);
}
//刷新
protected void btnLoarRecord_Click(object sender, EventArgs e)
{
LoadRecord();
RefreshForm();
SetControlState();
MenuAreaUpdate();
FormAreaUpdate();
}
protected void btnQXTJ_Click(object sender, EventArgs e)
{
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
TSQL SQL = new TSQL(dberp);
SQL.Clear();
SQL.Add(" update XLXSJGB set XLXSJGB_TJZT='C' where XLXSJGB_JGBID = :pJGBID and XLXSJGB_MXBH= :pMXBH ");
SQL.ParamByName("pJGBID").Value = txtJGBID.Text.Trim();
SQL.ParamByName("pMXBH").Value = txtMXBH.Value.Trim();
dberp.ExecSQL(SQL);
CacheNotify.TableIsUpdated("DBERP", "XLXSJGB");
btnLoarRecord_Click(null, null);
}
protected void btnBJJGB_Click(object sender, EventArgs e)
{
string sMXBH = txtMXBH.Value;
string sJGBID = txtJGBID.Text.Trim();
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
TSQL SQL = new TSQL(dberp);
SQL.Clear();
SQL.Add(" select XLXSJGB_CPMLID from XLXSJGB where XLXSJGB_JGBID = :pJGBID and XLXSJGB_MXBH= :pMXBH ");
SQL.ParamByName("pJGBID").Value = sJGBID;
SQL.ParamByName("pMXBH").Value = sMXBH;
DataSet ds = dberp.OpenDataSet(SQL);
if (ds.Tables[0].Rows.Count > 0)
{
string sCPMLID = ds.Tables[0].Rows[0]["XLXSJGB_CPMLID"].ToString().Trim();
if (sCPMLID.Equals(""))
{
ShowMessage("请先维护产品目录!");
return;
}
SQL.Clear();
SQL.Add("select XLXSCPML_CPMLID from XLXSCPML where ','||rtrim(isnull(XLXSCPML_CPMLIDS,' '))||',' like :pCPMLID order by XLXSCPML_CPMLID");
SQL.ParamByName("pCPMLID").Value = "%," + sCPMLID + ",%";
DataSet dsML = dberp.OpenDataSet(SQL);
string multiCPMLIDS = "";//组合产品目录
for (int i = 0; i < dsML.Tables[0].Rows.Count; i++)
{
multiCPMLIDS += dsML.Tables[0].Rows[i]["XLXSCPML_CPMLID"].ToString().Trim() + ",";
}
multiCPMLIDS = multiCPMLIDS.TrimEnd(',');
if (!multiCPMLIDS.Equals(""))
{
TPageParams param = new TPageParams();
param.UrlPath = "JGBML_BJJGBList.aspx";
param.AddString("JGBID", sJGBID);
param.AddString("MXBH", sMXBH);
param.AddString("singleCPMLID", sCPMLID);//单一产品目录
param.AddString("multiCPMLIDS", multiCPMLIDS);//组合产品目录
OpenDialog(param);
}
else
{
ShowMessage("未找到包含当前产品目录的组合产品目录!");
return;
}
}
else
{
ShowMessage("当前记录不存在,请刷新后重试!");
return;
}
}
protected void btnCOPY3_Click(object sender, EventArgs e)
{
TPageParams param = new TPageParams();
param.UrlPath = "JGBML_YJFZInfo.aspx";
param.AddString("TJ", txtTBJCLID.Value.ToString());
param.AddString("LJ", txtLBJCLID.Value.ToString());
param.AddString("JGBID", txtJGBID.Text.Trim());
OpenDialog(param);
}
protected void btnTBZXSJGB_Click(object sender, EventArgs e)
{
string sMXBH = txtMXBH.Value;
string sJGBID = txtJGBID.Text.Trim();
string sJGBMC = txtJGBMC.Text.Trim();
string sYXQS = datYXQS.Text.Trim();
string sYXQZ = datYXQZ.Text.Trim();
TPageParams param = new TPageParams();
param.UrlPath = "JGBML_TBZXSJGBInfo.aspx";
param.AddString("JGBID", sJGBID);
param.AddString("JGBMC", sJGBMC);
param.AddString("MXBH", sMXBH);
param.AddString("YXQS", sYXQS);
param.AddString("YXQZ", sYXQZ);
OpenDialog(param);
}
private void InitJSGS()
{
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
TSQL SQL = new TSQL(dberp);
SQL.Clear();
SQL.Add("select CJGS from dbo.JGBCJGS where JGBID=:JGBID ");
SQL.ParamByName("JGBID").Value = txtJGBID.Text.Trim();
DataSet ds = dberp.OpenDataSet(SQL);
if (ds.Tables[0].Rows.Count > 0)
txtJGGS.Text = ConvertCodeToName(ds.Tables[0].Rows[0]["CJGS"].ToString().Trim());
}
protected void btnGXGS_Click(object sender, EventArgs e)
{
string sJGBID = txtJGBID.Text.Trim();
string sCodeFormula = ConvertNameToCode(txtJGGS.Text.Trim());
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
TSQL SQL = new TSQL(dberp);
SQL.Clear();
SQL.Add("delete from dbo.JGBCJGS where JGBID=:JGBID ");
SQL.ParamByName("JGBID").Value = sJGBID;
dberp.ExecSQL(SQL);
SQL.Clear();
SQL.Add("INSERT INTO dbo.JGBCJGS (JGBID, CJGS) VALUES(:pJGBID,:pJSGS) ");
SQL.ParamByName("pJSGS").Value = sCodeFormula;
SQL.ParamByName("pJGBID").Value = sJGBID;
dberp.ExecSQL(SQL);
txtJGGS.Text = ConvertCodeToName(sCodeFormula);
//ShowMessage("公式已更新!");
}
private string ConvertCodeToName(string sFormula)
{
if (string.IsNullOrEmpty(sFormula))
return sFormula;
string sResult = sFormula.Replace("CLCB", "成本").Replace("WSCB", "无税成本");
Dictionary<string, string> dicYZ = GetYZIDNameMap();
foreach (KeyValuePair<string, string> kvp in dicYZ)
{
sResult = sResult.Replace(kvp.Key, kvp.Value);
}
return sResult;
}
private string ConvertNameToCode(string sFormula)
{
if (string.IsNullOrEmpty(sFormula))
return sFormula;
string sResult = sFormula.Replace("无税成本", "WSCB").Replace("成本", "CLCB");
Dictionary<string, string> dicYZ = GetYZIDNameMap();
//按名称长度降序替换,避免短名称被长名称包含时误替换
List<KeyValuePair<string, string>> lstYZ = new List<KeyValuePair<string, string>>(dicYZ);
lstYZ.Sort(delegate(KeyValuePair<string, string> a, KeyValuePair<string, string> b)
{
return b.Value.Length.CompareTo(a.Value.Length);
});
foreach (KeyValuePair<string, string> kvp in lstYZ)
{
sResult = sResult.Replace(kvp.Value, kvp.Key);
}
return sResult;
}
private Dictionary<string, string> GetYZIDNameMap()
{
Dictionary<string, string> dic = new Dictionary<string, string>();
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
TSQL SQL = new TSQL(dberp);
SQL.Clear();
SQL.Add("select XLXSTZYZ_YZID from XLXSTZYZ where XLXSTZYZ_MXBH='JZJ' ");
DataSet ds = dberp.OpenDataSet(SQL);
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
string sYZID = ds.Tables[0].Rows[i]["XLXSTZYZ_YZID"].ToString().Trim();
TZYZXX yzxx = XLBJDUtils.GetYZXXByYZID(sYZID);
string sYZMC = yzxx.XLXSTZYZ_YZMC.Trim();
if (!dic.ContainsKey(sYZID))
dic.Add(sYZID, sYZMC);
}
return dic;
}
#endregion
}
}