Files
2026-08-21 17:03:02 +08:00

506 lines
21 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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_MODEL.Page;
using GThinking.N_MISPRO.Utility;
using GThinking.N_MISPRO;
using GThinking.N_CONTROL;
using GThinking.N_MISPRO.Data;
using GThinking.N_WORKFLOW;
using System.Text;
using System.Collections.Generic;
namespace GThinking.N_XLXSBJ
{
public partial class CLCBInfo : BDOBillBase
{
CLCB_BDOBill entity = new CLCB_BDOBill();
Dictionary<string, string> aryTag = new Dictionary<string, string>();
protected void Page_Load(object sender, EventArgs e)
{
this.UMID = 100860034;
this.UMName = "线缆销售报价材料成本";
this.CurMaster = Master;
this.CurEntity = entity;
this.PageWidth = 750;
this.PageHeight = 600;
Master.BtnNewVisible = false;
Master.BtnCopyVisible = false;
Master.BtnEditVisible = false;
Master.BtnSaveVisible = false;
Master.BtnCancelVisible = false;
Master.BtnDeleteVisible = false;
AddListSetMap(new ListSet("", null, grdCLQDMX, entity.CLCBMX, null));
grdCLQDMX.FindColumnByFieldName("CLSL").HeaderText = "材料用量(Kg/" + GetOption("BJU003") + ")";
grdCLQDMX.FindColumnByFieldName("CLJE").HeaderText = "材料成本(元/" + GetOption("BJU003") + ")";
if (XLBJDUtils.GetDefaultBJU003(GetOption("BJU003")).Equals("M"))
{
txtCLCB.DecimalPlaces = 5;
grdCLQDMX.FindColumnByFieldName("CLJE").NumberDecimalPlace = 5;
}
if (!IsPostBack)
{
InitControls();
}
base.InitPage();
grdCLQDMX.EnabledToolBar = false;
if (!IsPostBack)
{
if (ControlState == TControlState.ctsInsert)
{
entity.CLCBMX.NewRecord = "Y";
}
else
{
entity.CLCBMX.NewRecord = "N";
}
InitGrid();
TComboBox.SetComboBox("DBERP", cbxST, "select XLBZ_XLBZID,XLBZ_XLBZLXMC from XLBZ order by XLBZ_PX,XLBZ_XLBZID", false);
}
grdCLQDMX.FindColumnByFieldName("CLJG").NumberDecimalPlace = XLBJDUtils.BJCLPriceDecimal;
}
#region 模板继承事件
protected override void SetControlState()
{
base.SetControlState();
if (ControlState == TControlState.ctsInsert || ControlState == TControlState.ctsCopy)
{
cbxXLXHID.Enabled = true;
txtXLGGID.Enabled = true;
}
else
{
cbxXLXHID.Enabled = false;
txtXLGGID.Enabled = false;
}
this.txtCLCB.Enabled = false;
this.txtCLZL.Enabled = false;
this.txtWHR.Enabled = false;
this.datWHSJ.Enabled = false;
}
protected override void LoadRecord()
{
entity.CLCBMX.NewRecord = "N";
if (!IsPostBack)
{
entity.XLXHID = PageParam.GetRTrimString("XLXSCLQD_XLXHID");
entity.XLGGID = PageParam.GetRTrimString("XLXSCLQD_XLGGID");
entity.ST = PageParam.GetRTrimString("XLXSCLQD_XLBZID");
entity.DYDJ = PageParam.GetRTrimString("XLXSCLQD_DYDJID");
txtOLD_XLXHID.Value = entity.XLXHID;
txtOLD_XLGGID.Value = entity.XLGGID;
txtOLD_ST.Value = entity.ST;
txtOLD_DYDJ.Value = entity.DYDJ;
entity.OLD_XLXHID = txtOLD_XLXHID.Value;
entity.OLD_XLGGID = txtOLD_XLGGID.Value;
entity.OLD_ST = txtOLD_ST.Value;
entity.OLD_DYDJ = txtOLD_DYDJ.Value;
entity.CLCBMX.XLXHID = PageParam.GetRTrimString("XLXSCLQD_XLXHID");
entity.CLCBMX.XLGGID = PageParam.GetRTrimString("XLXSCLQD_XLGGID");
entity.CLCBMX.ST = PageParam.GetRTrimString("XLXSCLQD_XLBZID");
entity.CLCBMX.DYDJ = PageParam.GetRTrimString("XLXSCLQD_DYDJID");
entity.CLCBMX.sHSJGBZ = PageParam.GetRTrimString("HSJGBZ");
txtOLD_HSJGBZ.Value = entity.CLCBMX.sHSJGBZ;
}
else
{
entity.XLXHID = txtOLD_XLXHID.Value;
entity.XLGGID = txtOLD_XLGGID.Value;
entity.ST = txtOLD_ST.Value;
entity.DYDJ = txtOLD_DYDJ.Value;
entity.CLCBMX.XLXHID = txtOLD_XLXHID.Value;
entity.CLCBMX.XLGGID = txtOLD_XLGGID.Value;
entity.CLCBMX.ST = txtOLD_ST.Value;
entity.CLCBMX.DYDJ = txtOLD_DYDJ.Value;
entity.CLCBMX.sHSJGBZ = PageParam.GetRTrimString("HSJGBZ");
}
base.LoadRecord();
txtOLD_XLXHID.Value = this.cbxXLXHID.SelectedValue.Trim();
txtOLD_XLGGID.Value = this.txtXLGGID.Text.Trim();
txtOLD_ST.Value = this.cbxST.SelectedValue.Trim();
txtOLD_DYDJ.Value = this.cbxDYDJID.SelectedValue.Trim();
entity.OLD_XLXHID = txtOLD_XLXHID.Value;
entity.OLD_XLGGID = txtOLD_XLGGID.Value;
entity.OLD_ST = txtOLD_ST.Value;
entity.OLD_DYDJ = txtOLD_DYDJ.Value;
cbxJGCZB.SelectedValue = txtJGCZBID.Value.Trim() + "|" + txtJGCZBBBID.Value.Trim();
double dCLCB = 0;
foreach (GridViewRow row in grdCLQDMX.Rows)
{
dCLCB = dCLCB + CMISproConvert.StrToFloat(grdCLQDMX.GetValueByFieldName("CLJE", row), 0);
}
txtCLCB.Value = dCLCB;
}
protected override void OnNewRecorder()
{
base.OnNewRecorder();
this.txtWHR.Text = CurSession.UserName.Trim();
this.txtWHRID.Value = CurSession.UserId.Trim();
this.datWHSJ.Value = CMISproConvert.ConvertTime(System.DateTime.Now.ToString());
entity.CLCBMX.NewRecord = "Y";
if (IsPostBack)
{
InitGrid();
}
}
protected override void OnCopyRecorder()
{
base.OnCopyRecorder();
if (!IsPostBack)
{
cbxXLXHID.SelectedValue = PageParam.GetRTrimString("XLXSCLQD_XLXHID");
txtXLGGID.Text = PageParam.GetRTrimString("XLXSCLQD_XLGGID");
cbxST.SelectedValue = PageParam.GetRTrimString("XLXSCLQD_XLBZID");
cbxDYDJID.SelectedValue = PageParam.GetRTrimString("XLXSCLQD_DYDJID");
}
else
{
cbxXLXHID.SelectedValue = txtOLD_XLXHID.Value;
txtXLGGID.Text = txtOLD_XLGGID.Value;
cbxST.SelectedValue = txtOLD_ST.Value;
cbxDYDJID.SelectedValue = txtOLD_DYDJ.Value;
}
this.txtWHR.Text = CurSession.UserName.Trim();
this.txtWHRID.Value = CurSession.UserId.Trim();
datWHSJ.Value = CMISproConvert.ConvertTime(System.DateTime.Now.ToString());
}
protected override void InitQueryString()
{
entity.CLCBMX.NewRecord = "N";
if (!IsPostBack)
{
string pXLXHID = PageParam.GetRTrimString("XLXSCLQD_XLXHID");
string pXLGGID = PageParam.GetRTrimString("XLXSCLQD_XLGGID");
string pST = PageParam.GetRTrimString("XLXSCLQD_XLBZID");
string pDYDJ = PageParam.GetRTrimString("XLXSCLQD_DYDJID");
entity.XLXHID = pXLXHID;
entity.XLGGID = pXLGGID;
entity.ST = pST;
entity.DYDJ = pDYDJ;
entity.CLCBMX.XLXHID = pXLXHID;
entity.CLCBMX.XLGGID = pXLGGID;
entity.CLCBMX.ST = pST;
entity.CLCBMX.DYDJ = pDYDJ;
}
else
{
entity.XLXHID = this.cbxXLXHID.SelectedValue.Trim();
entity.XLGGID = this.txtXLGGID.Text.Trim();
entity.ST = this.txtOLD_ST.Value;
entity.DYDJ = this.txtOLD_DYDJ.Value;
entity.CLCBMX.XLXHID = this.cbxXLXHID.SelectedValue.Trim();
entity.CLCBMX.XLGGID = this.txtXLGGID.Text.Trim();
entity.CLCBMX.ST = this.txtOLD_ST.Value;
entity.CLCBMX.DYDJ = this.txtOLD_DYDJ.Value;
entity.CLCBMX.sHSJGBZ = this.txtOLD_HSJGBZ.Value;
}
base.InitQueryString();
}
protected override bool Master_BeforeSaveAction(object sender, EventArgs e)
{
if (cbxJGCZB.SelectedValue.Trim().Equals(""))
{
ShowMessage("结构尺重表--不允许为空!");
return false;
}
else
{
txtJGCZBID.Value = cbxJGCZB.SelectedValue.Trim().Split('|')[0].Trim();
txtJGCZBBBID.Value = cbxJGCZB.SelectedValue.Trim().Split('|')[1].Trim();
}
this.txtWHR.Text = CurSession.UserName.Trim();
this.txtWHRID.Value = CurSession.UserId.Trim();
datWHSJ.Value = CMISproConvert.ConvertTime(System.DateTime.Now.ToString());
entity.XLXHID = this.cbxXLXHID.SelectedValue.Trim();
entity.XLGGID = this.txtXLGGID.Text.Trim();
entity.ST = this.cbxST.SelectedValue.Trim();
entity.DYDJ = this.cbxDYDJID.SelectedValue.Trim();
entity.OLD_XLXHID = txtOLD_XLXHID.Value;
entity.OLD_XLGGID = txtOLD_XLGGID.Value;
entity.OLD_ST = txtOLD_ST.Value;
entity.OLD_DYDJ = txtOLD_DYDJ.Value;
return base.Master_BeforeSaveAction(sender, e);
}
protected override bool Master_BeforeDeleteAction(object sender, EventArgs e)
{
if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from XLXSJGBMX where XLXSJGBMX_XLXHID='{0}' and XLXSJGBMX_XLGGID='{1}' and XLXSJGBMX_XLBZID='{2}' and XLXSJGBMX_DYDJID='{3}'", cbxXLXHID.SelectedValue.Trim(), txtXLGGID.Text.Trim(), cbxST.SelectedValue.Trim(), cbxDYDJID.SelectedValue.Trim())))
{
ShowMessage("当前记录已被销售价格表使用,不允许删除!");
return false;
}
entity.CLCBMX.NewRecord = "N";
entity.CLCBMX.XLXHID = this.cbxXLXHID.SelectedValue.Trim();
entity.CLCBMX.XLGGID = this.txtXLGGID.Text.Trim();
entity.CLCBMX.ST = this.cbxST.SelectedValue.Trim();
entity.CLCBMX.DYDJ = this.cbxDYDJID.SelectedValue.Trim();
return base.Master_BeforeDeleteAction(sender, e);
}
protected override bool Master_AfterSaveAction(object sender, EventArgs e)
{
txtOLD_XLXHID.Value = this.cbxXLXHID.SelectedValue.Trim();
txtOLD_XLGGID.Value = this.txtXLGGID.Text.Trim();
txtOLD_ST.Value = this.cbxST.SelectedValue.Trim();
txtOLD_DYDJ.Value = this.cbxDYDJID.SelectedValue.Trim();
//计算材料成本
//double fCLCB = 0.0;
//更新各材料清单列数量
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
dberp.BeginTrans();
try
{
if (grdCLQDMX.NewRows.Count > 0)
{
TSQL tmpSQL = new TSQL(dberp);
tmpSQL.Clear();
tmpSQL.Add(" update XLXSCLQD set ");
for (int i = 0; i < grdCLQDMX.NewRows.Count; i++)
{
int XH = CMISproConvert.StrToInt(grdCLQDMX.GetValueByFieldName("CLQDL", grdCLQDMX.NewRows[i]).ToString().Trim());
if (i != 0)
{
tmpSQL.Add(string.Format(" ,XLXSCLQD_SL" + XH.ToString().PadLeft(2, '0') + "={0},XLXSCLQD_SHL" + XH.ToString().PadLeft(2, '0') + "={1},XLXSCLQD_CLJGBL" + XH.ToString().PadLeft(2, '0') + "={2}"
, CMISproConvert.StrToFloat(grdCLQDMX.GetValueByFieldName("CLSL", grdCLQDMX.NewRows[i]).ToString().Trim())
, CMISproConvert.StrToFloat(grdCLQDMX.GetValueByFieldName("SHL", grdCLQDMX.NewRows[i]).ToString().Trim())
, CMISproConvert.StrToFloat(grdCLQDMX.GetValueByFieldName("CLJGBL", grdCLQDMX.NewRows[i]).ToString().Trim())));
}
else
{
tmpSQL.Add(string.Format(" XLXSCLQD_SL" + XH.ToString().PadLeft(2, '0') + "={0},XLXSCLQD_SHL" + XH.ToString().PadLeft(2, '0') + "={1},XLXSCLQD_CLJGBL" + XH.ToString().PadLeft(2, '0') + "={2}"
, CMISproConvert.StrToFloat(grdCLQDMX.GetValueByFieldName("CLSL", grdCLQDMX.NewRows[i]).ToString().Trim())
, CMISproConvert.StrToFloat(grdCLQDMX.GetValueByFieldName("SHL", grdCLQDMX.NewRows[i]).ToString().Trim())
, CMISproConvert.StrToFloat(grdCLQDMX.GetValueByFieldName("CLJGBL", grdCLQDMX.NewRows[i]).ToString().Trim())));
}
}
tmpSQL.Add(string.Format("where XLXSCLQD_XLXHID='{0}' and XLXSCLQD_XLGGID='{1}' and XLXSCLQD_XLBZID='{2}' and XLXSCLQD_DYDJID='{3}'"
, cbxXLXHID.SelectedValue.Trim()
, txtXLGGID.Text.Trim(), cbxST.SelectedValue.Trim(), cbxDYDJID.SelectedValue.Trim()));
dberp.ExecSQL(tmpSQL);
}
dberp.CommitTrans();
}
catch
{
dberp.RollbackTrans();
ShowMessage("操作数据集出错,请和系统管理员联系!");
return false;
}
//txtCLCB.Value = fCLCB;
entity.CLCBMX.NewRecord = "N";
entity.CLCBMX.XLXHID = this.cbxXLXHID.SelectedValue.Trim();
entity.CLCBMX.XLGGID = this.txtXLGGID.Text.Trim();
entity.CLCBMX.ST = this.cbxST.SelectedValue.Trim();
entity.CLCBMX.DYDJ = this.cbxDYDJID.SelectedValue.Trim();
entity.CLCBMX.Query();
grdCLQDMX.DataSource = entity.CLCBMX.Entites;
grdCLQDMX.DataBind();
grdCLQDMX.SaveDataInfo.SaveDataFlag = DSaveDataFlag.sdNormal;
FormAreaUpdate();
return base.Master_AfterSaveAction(sender, e);
}
protected override bool DataLogicValid()
{
if (ControlState == TControlState.ctsCopy || ControlState == TControlState.ctsInsert)
{
if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from XLXSCLQD where XLXSCLQD_XLXHID='{0}' and XLXSCLQD_XLGGID='{1}' and XLXSCLQD_XLBZID='{2}' and XLXSCLQD_DYDJID='{3}'", cbxXLXHID.SelectedValue.Trim(), txtXLGGID.Text.Trim(), cbxST.SelectedValue, cbxDYDJID.SelectedValue.Trim())))
{
ShowMessage("已存在相同型号、规格、标准、电压等级的记录,不允许保存!");
return false;
}
}
for (int i = 0; i < this.entity.CLCBMX.Entites.Rows.Count; i++)
{
if (grdCLQDMX.NewRows[i].Attributes["EditAction"].Equals("D"))
{
continue;
}
entity.CLCBMX.ActIndex = i;
if (CMISproConvert.StrToFloat(this.entity.CLCBMX.CLSL, 0) < 0)
{
ShowMessage("材料用量不允许小于0!");
return false;
}
else if (CMISproConvert.StrToFloat(this.entity.CLCBMX.CLSL, 0) > 0)
{
if (CMISproConvert.StrToFloat(this.entity.CLCBMX.CLJGBL, 0) <= 0)
{
ShowMessage("材料用量比例不允许小于等于0!");
return false;
}
else if (CMISproConvert.StrToFloat(this.entity.CLCBMX.CLJGBL, 0) > 1)
{
ShowMessage("材料用量比例不允许大于1!");
return false;
}
}
else
{
if (CMISproConvert.StrToFloat(this.entity.CLCBMX.CLJGBL, 0) < 0)
{
ShowMessage("材料用量比例不允许小于0!");
return false;
}
else if (CMISproConvert.StrToFloat(this.entity.CLCBMX.CLJGBL, 0) > 1)
{
ShowMessage("材料用量比例不允许大于1!");
return false;
}
}
if (CMISproConvert.StrToFloat(this.entity.CLCBMX.SHL, 0) < 0)
{
ShowMessage("材料损耗率不允许小于0!");
return false;
}
else if (CMISproConvert.StrToFloat(this.entity.CLCBMX.SHL, 0) >= 100)
{
ShowMessage("材料损耗率不允许大于等于100%!");
return false;
}
}
if (ControlState == TControlState.ctsEdit)
{
foreach (GridViewRow row in grdCLQDMX.NewRows)
{
row.Attributes["EditAction"] = "N";
}
}
else
{
foreach (GridViewRow row in grdCLQDMX.NewRows)
{
row.Attributes["EditAction"] = "D";
}
}
return base.DataLogicValid();
}
protected override void SetComboxItems()
{
if (ControlState == TControlState.ctsBrowse)
{
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
TSQL sql = new TSQL(dberp);
sql.Add("select XLJGCZBML_JGCZBID,XLJGCZBML_JGCZBMC,XLJGCZBML_JGCZBBBID ");
sql.Add(" from XLJGCZBML ");
sql.Add(" where XLJGCZBML_JGCZBID=:pJGCZBID and XLJGCZBML_JGCZBBBID=:pJGCZBBBID");
sql.Add(" order by XLJGCZBML_JGCZBID");
sql.ParamByName("pJGCZBID").Value = txtJGCZBID.Value;
sql.ParamByName("pJGCZBBBID").Value = txtJGCZBBBID.Value;
DataSet ds = dberp.OpenDataSet(sql);
cbxJGCZB.ClearItems();
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
string sJGCZBBBID = ds.Tables[0].Rows[i]["XLJGCZBML_JGCZBBBID"].ToString().Trim();
cbxJGCZB.Items.Add(new ListItem(ds.Tables[0].Rows[i]["XLJGCZBML_JGCZBID"].ToString().Trim() + "|" + ds.Tables[0].Rows[i]["XLJGCZBML_JGCZBMC"].ToString().Trim() + "|" + sJGCZBBBID
, ds.Tables[0].Rows[i]["XLJGCZBML_JGCZBID"].ToString().Trim() + "|" + sJGCZBBBID));
}
cbxXLXHID.ClearItems();
cbxXLXHID.Items.Add(new ListItem(cbxXLXHID.SelectedValue.Trim(), cbxXLXHID.SelectedValue.Trim()));
cbxDYDJID.ClearItems();
cbxDYDJID.Items.Add(new ListItem(cbxDYDJID.SelectedValue.Trim(), cbxDYDJID.SelectedValue.Trim()));
}
else if (ControlState == TControlState.ctsCopy || ControlState == TControlState.ctsInsert || ControlState == TControlState.ctsEdit)
{
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
TSQL sql = new TSQL(dberp);
sql.Add("select XLJGCZBML_JGCZBID,XLJGCZBML_JGCZBMC,XLJGCZBML_JGCZBBBID ");
sql.Add(" from XLJGCZBML ");
sql.Add(" where 1=1");
sql.Add(" order by XLJGCZBML_JGCZBID,XLJGCZBML_JGCZBBBID ");
DataSet ds = dberp.OpenDataSet(sql);
cbxJGCZB.ClearItems();
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
string sJGCZBBBID = ds.Tables[0].Rows[i]["XLJGCZBML_JGCZBBBID"].ToString().Trim();
cbxJGCZB.Items.Add(new ListItem(ds.Tables[0].Rows[i]["XLJGCZBML_JGCZBID"].ToString().Trim() + "|" + ds.Tables[0].Rows[i]["XLJGCZBML_JGCZBMC"].ToString().Trim() + "|" + sJGCZBBBID
, ds.Tables[0].Rows[i]["XLJGCZBML_JGCZBID"].ToString().Trim() + "|" + sJGCZBBBID));
}
if (ControlState == TControlState.ctsCopy || ControlState == TControlState.ctsInsert)
{
if (cbxJGCZB.ItemsCount == 1)
cbxJGCZB.SelectedIndex = 0;
}
TComboBox.SetComboBox("DBERP", cbxXLXHID, "select XLXHB_XLXHID as ID,XLXHB_XLXHID as Name from XLXHB where isnull(XLXHB_TYBZ,'N')<>'Y' order by ID ", false);
TComboBox.SetComboBox("DBERP", cbxDYDJID, "select distinct XLDYDJB_DYDJID as ID,XLDYDJB_DYDJID as Name from XLDYDJB where isnull(XLDYDJB_TYBZ,'N')<>'Y' order by ID ", true);
}
base.SetComboxItems();
}
#endregion
#region 自定义函数
private void InitControls()
{
}
#endregion
#region 控件事件
private void InitGrid()
{
grdCLQDMX.DataSource = entity.CLCBMX.Entites;
grdCLQDMX.DataBind();
grdCLQDMX.SaveDataInfo.SaveDataFlag = DSaveDataFlag.sdNormal;
}
#endregion
}
}