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

482 lines
20 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 CLQDInfo : BDOBillBase
{
CLQD_BDOBill entity = new CLQD_BDOBill();
Dictionary<string, string> aryTag = new Dictionary<string, string>();
#region 模板page类事件
protected void Page_Load(object sender, EventArgs e)
{
this.UMID = 100860002;
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;
AddListSetMap(new ListSet("", null, grdCLQDMX, entity.CLQDMX, null));
grdCLQDMX.FindColumnByFieldName("CLSL").HeaderText = "材料用量(Kg/" + GetOption("BJU003") + ")";
lblCLZL.Text = "材料重量(Kg/" + GetOption("BJU003") + "):";
//if (GetOption("BJU003").Equals("M"))
// txtCLCB.DecimalPlaces = 5;
if (!IsPostBack)
{
InitControls();
}
base.InitPage();
grdCLQDMX.EnabledToolBar = false;
if (!IsPostBack)
{
if (ControlState == TControlState.ctsInsert)
{
entity.CLQDMX.NewRecord = "Y";
}
else
{
entity.CLQDMX.NewRecord = "N";
}
InitGrid();
TComboBox.SetComboBox("DBERP", cbxST, "select XLBZ_XLBZID,XLBZ_XLBZLXMC from XLBZ order by XLBZ_PX,XLBZ_XLBZID", false);
}
}
#endregion
#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.CLQDMX.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.CLQDMX.XLXHID = PageParam.GetRTrimString("XLXSCLQD_XLXHID");
entity.CLQDMX.XLGGID = PageParam.GetRTrimString("XLXSCLQD_XLGGID");
entity.CLQDMX.ST = PageParam.GetRTrimString("XLXSCLQD_XLBZID");
entity.CLQDMX.DYDJ = PageParam.GetRTrimString("XLXSCLQD_DYDJID");
}
else
{
entity.XLXHID = txtOLD_XLXHID.Value;
entity.XLGGID = txtOLD_XLGGID.Value;
entity.ST = txtOLD_ST.Value;
entity.DYDJ = txtOLD_DYDJ.Value;
entity.CLQDMX.XLXHID = txtOLD_XLXHID.Value;
entity.CLQDMX.XLGGID = txtOLD_XLGGID.Value;
entity.CLQDMX.ST = txtOLD_ST.Value;
entity.CLQDMX.DYDJ = txtOLD_DYDJ.Value;
}
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();
}
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.CLQDMX.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.CLQDMX.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.CLQDMX.XLXHID = pXLXHID;
entity.CLQDMX.XLGGID = pXLGGID;
entity.CLQDMX.ST = pST;
entity.CLQDMX.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.CLQDMX.XLXHID = this.cbxXLXHID.SelectedValue.Trim();
entity.CLQDMX.XLGGID = this.txtXLGGID.Text.Trim();
entity.CLQDMX.ST = this.txtOLD_ST.Value;
entity.CLQDMX.DYDJ = this.txtOLD_DYDJ.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)
{
string sSQL = "";
sSQL = string.Format("select top 1 XLXSJGBMX_JGBID 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());
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
TSQL SQL = new TSQL(dberp);
SQL.Add(sSQL);
DataSet ds = dberp.OpenDataSet(SQL);
if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
{
ShowMessage("当前记录已被销售价格表【"+ds.Tables[0].Rows[0][0].ToString().Trim()+ "】使用,不允许删除!");
return false;
}
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}' and isnull(XLXSCLQD_WFHANDLER,' ')<>' '",
cbxXLXHID.SelectedValue.Trim(), txtXLGGID.Text.Trim(), cbxST.SelectedValue.Trim(), cbxDYDJID.SelectedValue.Trim())))
{
ShowMessage("已经过工作流转,不允许直接删除!");
return false;
}
entity.CLQDMX.NewRecord = "N";
entity.CLQDMX.XLXHID = this.cbxXLXHID.SelectedValue.Trim();
entity.CLQDMX.XLGGID = this.txtXLGGID.Text.Trim();
entity.CLQDMX.ST = this.cbxST.SelectedValue.Trim();
entity.CLQDMX.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.CLQDMX.NewRecord = "N";
entity.CLQDMX.XLXHID = this.cbxXLXHID.SelectedValue.Trim();
entity.CLQDMX.XLGGID = this.txtXLGGID.Text.Trim();
entity.CLQDMX.ST = this.cbxST.SelectedValue.Trim();
entity.CLQDMX.DYDJ = this.cbxDYDJID.SelectedValue.Trim();
entity.CLQDMX.Query();
grdCLQDMX.DataSource = entity.CLQDMX.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.CLQDMX.Entites.Rows.Count; i++)
{
if (grdCLQDMX.NewRows[i].Attributes["EditAction"].Equals("D"))
{
continue;
}
entity.CLQDMX.ActIndex = i;
if (CMISproConvert.StrToFloat(this.entity.CLQDMX.CLSL, 0) < 0)
{
ShowMessage("材料用量不允许小于0!");
return false;
}
else if (CMISproConvert.StrToFloat(this.entity.CLQDMX.CLSL, 0) > 0)
{
if (CMISproConvert.StrToFloat(this.entity.CLQDMX.CLJGBL, 0) <= 0)
{
ShowMessage("材料用量比例不允许小于等于0!");
return false;
}
else if (CMISproConvert.StrToFloat(this.entity.CLQDMX.CLJGBL, 0) > 1)
{
ShowMessage("材料用量比例不允许大于1!");
return false;
}
}
else
{
if (CMISproConvert.StrToFloat(this.entity.CLQDMX.CLJGBL, 0) < 0)
{
ShowMessage("材料用量比例不允许小于0!");
return false;
}
else if (CMISproConvert.StrToFloat(this.entity.CLQDMX.CLJGBL, 0) > 1)
{
ShowMessage("材料用量比例不允许大于1!");
return false;
}
}
if (CMISproConvert.StrToFloat(this.entity.CLQDMX.SHL, 0) < 0)
{
ShowMessage("材料损耗率不允许小于0!");
return false;
}
else if (CMISproConvert.StrToFloat(this.entity.CLQDMX.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()));
string sSQL = string.Format("SELECT XLXSCPML_CPMLID,XLXSCPML_CPMLMC FROM XLXSCPML where 1 = 1 and XLXSCPML_CPMLID = '{0}' ",cbxCPMLID.SelectedValue.Trim());
TComboBox.SetComboBox("DBERP", cbxCPMLID, sSQL, false);
}
base.SetComboxItems();
}
#endregion
#region 自定义函数
private void InitControls()
{
}
#endregion
#region 控件事件
private void InitGrid()
{
grdCLQDMX.DataSource = entity.CLQDMX.Entites;
grdCLQDMX.DataBind();
grdCLQDMX.SaveDataInfo.SaveDataFlag = DSaveDataFlag.sdNormal;
}
#endregion
}
}