Files
N_XLXSBJ----MX/CLYL_DRInfo.aspx.cs
2026-08-21 17:03:02 +08:00

342 lines
18 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_MISPRO.Data;
using GThinking.N_MODEL.Page;
using GThinking.N_MISPRO.Utility;
using GThinking.N_CONTROL;
using GThinking.N_PUBLIC;
using System.Collections.Generic;
using GThinking.N_MISPRO.MISPROAS;
using GThinking.N_WORKFLOW;
namespace GThinking.N_XLXSBJ
{
public partial class CLYL_DRInfo : OperationBase
{
CLYL_DR entity = new CLYL_DR();
protected void Page_Load(object sender, EventArgs e)
{
this.UMID = 100860014;
this.UMName = "线缆销售报价材料用量";
this.CurMaster = Master;
this.Tabs = Tab;
this.PageHeight = 600;
this.PageWidth = 750;
AddListSetMap(new ListSet(pagSHD.ID, null, grdSHD, entity, UPSHD));
if (!IsPostBack)
{
this.Master.PnlQuery.GroupingText = "查询条件";
this.Master.PnlBill.GroupingText = "单据信息";
InitControls();
}
CustomPageSize = 1000;
base.InitPage();
}
#region 模板继承事件
protected override void Master_OnQuery()
{
entity.sPIID = cbxPIID.SelectedValue.Trim();
entity.sWLID = txtXLWLID.Text.Trim();
entity.sWLMC = txtWLMC.Text.Trim();
entity.sGGXH = txtGGXH.Text.Trim();
entity.sTH = txtTH.Text.Trim();
entity.sCZ = txtCZ.Text.Trim();
entity.sXLXHID = cbxXLXHID.SelectedValue.Trim();
entity.sXLGGID = txtXLGGID.Text.Trim();
entity.sXLBZID = cbxXLBZID.SelectedValue.Trim();
entity.sDYDJID = cbxDYDJID.SelectedValue.Trim();
base.Master_OnQuery();
}
protected override void GridDataBind()
{
base.GridDataBind();
}
protected override bool Master_OnBeforeOK(object sender, EventArgs e)
{
return base.Master_OnBeforeOK(sender, e);
}
protected override bool QueryValid()
{
if (cbxPIID.SelectedValue.Trim().Equals(""))
{
ShowMessage("请选择物料类别进行查询!");
return false;
}
return base.QueryValid();
}
protected override bool DataLogicValid()
{
if (grdSHD.CheckedRows.Equals(""))
{
ShowMessage("请勾选线缆物料记录!");
return false;
}
if (cbxGCID.SelectedValue.Trim().Equals(""))
{
ShowMessage("请指定工厂!");
return false;
}
if (cbxCPMLID.SelectedValue.Trim().Equals(""))
{
ShowMessage("请指定产品目录!");
return false;
}
if (cbxJGCZB.SelectedValue.Trim().Equals(""))
{
ShowMessage("请指定结构尺重表!");
return false;
}
string[] sTempArr = grdSHD.CheckedRows.Split(',');
Dictionary<string, string> dicWL = new Dictionary<string, string>();
string tmpKey = "";
foreach (string sIndex in sTempArr)
{
string sValue = grdSHD.GetValueByFieldName("XLXLB_WLID", grdSHD.NewRows[CMISproConvert.StrToInt(sIndex)]).Trim();
string sKey = grdSHD.GetValueByFieldName("XLXLB_XLXHID", grdSHD.NewRows[CMISproConvert.StrToInt(sIndex)]).Trim()
+ "|" + grdSHD.GetValueByFieldName("XLXLB_XLGGID", grdSHD.NewRows[CMISproConvert.StrToInt(sIndex)]).Trim()
+ "|" + grdSHD.GetValueByFieldName("XLBZ", grdSHD.NewRows[CMISproConvert.StrToInt(sIndex)]).Trim().Split('|')[0].Trim()
+ "|" + grdSHD.GetValueByFieldName("XLXLB_DYDJID", grdSHD.NewRows[CMISproConvert.StrToInt(sIndex)]).Trim();
if (dicWL.ContainsKey(sKey))
{
tmpKey = sKey;
dicWL[sKey] = dicWL[sKey] + "," + sValue;
}
else
{
dicWL.Add(sKey, sValue);
}
}
if (!tmpKey.Trim().Equals(""))
{
ShowMessage("以下物料的型号、规格、标准、电压等级相同,只能选择其中一个进行导入:" + "\r\n" + dicWL[tmpKey].Trim());
return false;
}
return base.DataLogicValid();
}
protected override bool Master_OnOK()
{
TDatabase DBERP = null;
try
{
DBERP = TContextDatabases.GetDatabase("DBERP");
DBERP.BeginTrans();
InsertXLXSCLQD(DBERP);
DBERP.CommitTrans();
ShowMessage("导入成功!");
//CloseWindow();
//重新查询
Master_OnQuery();
GridDataBind();
FormAreaUpdate();
}
catch (Exception ex)
{
ShowMessage(ex.Message);
DBERP.RollbackTrans();
return false;
}
return true;
}
protected override void Grid_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
}
base.Grid_RowDataBound(sender, e);
}
#endregion
#region 自定义函数
private void InitControls()
{
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
string sSQL = "select PL_PIID,PL_MC from PL where 1=1 and isnull(PL_TYBZ,'N')<>'Y' order by PL_PIID ";
DataSet ds = dberp.OpenDataSet(sSQL);
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
string sID = ds.Tables[0].Rows[i]["PL_PIID"].ToString().Trim();
string sNAME = ds.Tables[0].Rows[i]["PL_MC"].ToString().Trim();
cbxPIID.Items.Add(new ListItem(sNAME, sID));
}
TComboBox.SetComboBox("DBERP", cbxXLXHID, "select XLXHB_XLXHID as ID,XLXHB_XLXHID as Name from XLXHB where isnull(XLXHB_TYBZ,'N')<>'Y' order by ID ", true);
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);
TComboBox.SetComboBox("DBERP", cbxXLBZID, "select XLBZ_XLBZID,XLBZ_XLBZLXMC from XLBZ order by XLBZ_PX,XLBZ_XLBZID", true);
TComboBox.SetComboBox("DBERP", cbxGCID, "select GC_GCID,GC_GCMC from GC where isnull(GC_TYBZ,'N')<>'Y' order by GC_GCID ", false);
if (cbxGCID.ItemsCount == 1)
cbxGCID.SelectedIndex = 0;
TComboBox.SetComboBox("DBERP", cbxCPMLID, "SELECT XLXSCPML_CPMLID,XLXSCPML_CPMLMC FROM XLXSCPML where isnull(XLXSCPML_TYBZ,'N')<>'Y' order by XLXSCPML_CPMLID ", false);
TSQL sql = new TSQL(dberp);
sql.Add("select XLJGCZBML_JGCZBID,XLJGCZBML_JGCZBMC, XLJGCZBML_JGCZBBBID ");
sql.Add(" from XLJGCZBML ");
sql.Add(" where XLJGCZBML_CZBLX = 'A'");
sql.Add(" order by XLJGCZBML_JGCZBID");
ds = null;
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 (cbxJGCZB.ItemsCount == 1)
cbxJGCZB.SelectedIndex = 0;
else
{
if (!PageParam.GetRTrimString("JGCZBID").Equals(""))
cbxJGCZB.SelectedValue = PageParam.GetRTrimString("JGCZBID") + "|" + PageParam.GetRTrimString("JGCZBBBID");
}
}
private void InsertXLXSCLQD(TDatabase dberp)
{
TSQL sSQL = new TSQL(dberp);
if (!grdSHD.CheckedRows.Equals(""))
{
string[] sTempArr = grdSHD.CheckedRows.Split(',');
foreach (string sIndex in sTempArr)
{
string sXLXHID = grdSHD.GetValueByFieldName("XLXLB_XLXHID", grdSHD.NewRows[CMISproConvert.StrToInt(sIndex)]).Trim();
string sXLGGID = grdSHD.GetValueByFieldName("XLXLB_XLGGID", grdSHD.NewRows[CMISproConvert.StrToInt(sIndex)]).Trim();
string sXLBZID = grdSHD.GetValueByFieldName("XLBZ", grdSHD.NewRows[CMISproConvert.StrToInt(sIndex)]).Trim().Split('|')[0].Trim();
string sDYDJID = grdSHD.GetValueByFieldName("XLXLB_DYDJID", grdSHD.NewRows[CMISproConvert.StrToInt(sIndex)]).Trim();
sDYDJID = sDYDJID.Equals("") ? " " : sDYDJID;
string sWLID = grdSHD.GetValueByFieldName("XLXLB_WLID", grdSHD.NewRows[CMISproConvert.StrToInt(sIndex)]).Trim();
sSQL.Clear();
sSQL.Add("insert into XLXSCLQD (XLXSCLQD_XLXHID,XLXSCLQD_XLGGID,XLXSCLQD_XLBZID,XLXSCLQD_DYDJID,XLXSCLQD_WLID,XLXSCLQD_GCID,XLXSCLQD_BZ,XLXSCLQD_WHR,XLXSCLQD_WHRID,XLXSCLQD_WHSJ,XLXSCLQD_JGCZBID,XLXSCLQD_JGCZBBBID,XLXSCLQD_CPMLID,");
sSQL.Add(" XLXSCLQD_CLJGBL01,XLXSCLQD_CLJGBL02,XLXSCLQD_CLJGBL03,XLXSCLQD_CLJGBL04,XLXSCLQD_CLJGBL05,XLXSCLQD_CLJGBL06,XLXSCLQD_CLJGBL07,XLXSCLQD_CLJGBL08,XLXSCLQD_CLJGBL09,XLXSCLQD_CLJGBL10,");
sSQL.Add(" XLXSCLQD_CLJGBL11,XLXSCLQD_CLJGBL12,XLXSCLQD_CLJGBL13,XLXSCLQD_CLJGBL14,XLXSCLQD_CLJGBL15,XLXSCLQD_CLJGBL16,XLXSCLQD_CLJGBL17,XLXSCLQD_CLJGBL18,XLXSCLQD_CLJGBL19,XLXSCLQD_CLJGBL20,");
sSQL.Add(" XLXSCLQD_CLJGBL21,XLXSCLQD_CLJGBL22,XLXSCLQD_CLJGBL23,XLXSCLQD_CLJGBL24,XLXSCLQD_CLJGBL25,XLXSCLQD_CLJGBL26,XLXSCLQD_CLJGBL27,XLXSCLQD_CLJGBL28,XLXSCLQD_CLJGBL29,XLXSCLQD_CLJGBL30,");
sSQL.Add(" XLXSCLQD_CLJGBL31,XLXSCLQD_CLJGBL32,XLXSCLQD_CLJGBL33,XLXSCLQD_CLJGBL34,XLXSCLQD_CLJGBL35,XLXSCLQD_CLJGBL36,XLXSCLQD_CLJGBL37,XLXSCLQD_CLJGBL38,XLXSCLQD_CLJGBL39,XLXSCLQD_CLJGBL40,");
sSQL.Add(" XLXSCLQD_CLJGBL41,XLXSCLQD_CLJGBL42,XLXSCLQD_CLJGBL43,XLXSCLQD_CLJGBL44,XLXSCLQD_CLJGBL45,XLXSCLQD_CLJGBL46,XLXSCLQD_CLJGBL47,XLXSCLQD_CLJGBL48,XLXSCLQD_CLJGBL49,XLXSCLQD_CLJGBL50,");
sSQL.Add(" XLXSCLQD_CLJGBL51,XLXSCLQD_CLJGBL52,XLXSCLQD_CLJGBL53,XLXSCLQD_CLJGBL54,XLXSCLQD_CLJGBL55,XLXSCLQD_CLJGBL56,XLXSCLQD_CLJGBL57,XLXSCLQD_CLJGBL58,XLXSCLQD_CLJGBL59,XLXSCLQD_CLJGBL60,");
sSQL.Add(" XLXSCLQD_CLJGBL61,XLXSCLQD_CLJGBL62,XLXSCLQD_CLJGBL63,XLXSCLQD_CLJGBL64,XLXSCLQD_CLJGBL65,XLXSCLQD_CLJGBL66,XLXSCLQD_CLJGBL67,XLXSCLQD_CLJGBL68,XLXSCLQD_CLJGBL69,XLXSCLQD_CLJGBL70,");
sSQL.Add(" XLXSCLQD_CLJGBL71,XLXSCLQD_CLJGBL72,XLXSCLQD_CLJGBL73,XLXSCLQD_CLJGBL74,XLXSCLQD_CLJGBL75,XLXSCLQD_CLJGBL76,XLXSCLQD_CLJGBL77,XLXSCLQD_CLJGBL78,XLXSCLQD_CLJGBL79,XLXSCLQD_CLJGBL80)");
sSQL.Add(" values (:XLXSCLQD_XLXHID,:XLXSCLQD_XLGGID,:XLXSCLQD_XLBZID,:XLXSCLQD_DYDJID,:XLXSCLQD_WLID,:XLXSCLQD_GCID,:XLXSCLQD_BZ,:XLXSCLQD_WHR,:XLXSCLQD_WHRID,:XLXSCLQD_WHSJ,:XLXSCLQD_JGCZBID,:XLXSCLQD_JGCZBBBID,:XLXSCLQD_CPMLID,");
sSQL.Add(" 1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,");
sSQL.Add(" 1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,");
sSQL.Add(" 1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,");
sSQL.Add(" 1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,");
sSQL.Add(" 1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,");
sSQL.Add(" 1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,");
sSQL.Add(" 1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,");
sSQL.Add(" 1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0)");
sSQL.ParamByName("XLXSCLQD_XLXHID").Value = sXLXHID;
sSQL.ParamByName("XLXSCLQD_XLGGID").Value = sXLGGID;
sSQL.ParamByName("XLXSCLQD_XLBZID").Value = sXLBZID;
sSQL.ParamByName("XLXSCLQD_DYDJID").Value = sDYDJID;
sSQL.ParamByName("XLXSCLQD_WLID").Value = sWLID;
sSQL.ParamByName("XLXSCLQD_GCID").Value = cbxGCID.SelectedValue.Trim();
sSQL.ParamByName("XLXSCLQD_BZ").Value = "从线缆物料导入";
sSQL.ParamByName("XLXSCLQD_WHRID").Value = CurSession.UserId;
sSQL.ParamByName("XLXSCLQD_WHR").Value = CurSession.UserName;
sSQL.ParamByName("XLXSCLQD_WHSJ").Value = DateTime.Now;
sSQL.ParamByName("XLXSCLQD_JGCZBID").Value = cbxJGCZB.SelectedValue.Trim().Split('|')[0].Trim();
sSQL.ParamByName("XLXSCLQD_JGCZBBBID").Value = cbxJGCZB.SelectedValue.Trim().Split('|')[1].Trim();
sSQL.ParamByName("XLXSCLQD_CPMLID").Value = cbxCPMLID.SelectedValue.Trim();
dberp.ExecSQL(sSQL);
//更新工作流
string sQXCurUser = CurSession.UserId;
TWorkflow awf = new TWorkflow(CurSession, Cache);
awf.UMID = 100860014;
awf.WFNewInst(awf.GetWFID("XLXSBJCLYL"), sQXCurUser);
dberp.ExecSQL(string.Format("update XLXSCLQD set XLXSCLQD_WPID='{0}', XLXSCLQD_WFAWAITER='{1}',XLXSCLQD_WFHANDLER='{2}' ,XLXSCLQD_WFINST={3},XLXSCLQD_WFID='{4}',XLXSCLQD_ACTNAME='{5}' where XLXSCLQD_XLXHID='{6}' and XLXSCLQD_XLGGID='{7}' and XLXSCLQD_XLBZID='{8}' and XLXSCLQD_DYDJID='{9}' ",
awf.WPID, awf.Awaiter, awf.Handler, awf.WFInst, awf.WFID, awf.GetWFActionName(TWFAction.wfaNewInst), sXLXHID, sXLGGID, sXLBZID, sDYDJID));
if (!sWLID.Trim().Equals(""))
{
sSQL.Clear();
sSQL.Add("select CLYLJSJG_CPWLID as WLID, ");
for (int i = 1; i < 80; i++)
{
sSQL.Add(string.Format("sum(case when XLXSBJCLWL_BJCLID='{0}' then CLYLJSJG_SL else 0.0 end) as SL{1}, ", "BJCL" + i.ToString().PadLeft(2, '0') + "0000", i.ToString().PadLeft(2, '0')));
}
sSQL.Add("sum(case when XLXSBJCLWL_BJCLID='BJCL800000' then CLYLJSJG_SL else 0.0 end) as SL80 ");
sSQL.Add(" from CLYLJSJG,XLXSBJCLWL ");
sSQL.Add(" where CLYLJSJG_GCID=:pGCID ");
sSQL.Add(" and CLYLJSJG_CPWLID=:pCPWLID ");
sSQL.Add(" and CLYLJSJG_WLID=XLXSBJCLWL_WLID ");
sSQL.Add("group by CLYLJSJG_CPWLID");
sSQL.ParamByName("pGCID").Value = cbxGCID.SelectedValue.Trim();
sSQL.ParamByName("pCPWLID").Value = sWLID.Trim();
DataSet ds = dberp.OpenDataSet(sSQL);
if (ds.Tables[0].Rows.Count > 0)
{
sSQL.Clear();
sSQL.Add("update XLXSCLQD set ");
for (int i = 1; i < 80; i++)
{
double fSL = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["SL" + i.ToString().PadLeft(2, '0')].ToString());
string sSL = "0";
if (fSL.ToString().ToUpper().Contains("E"))//科学记数法
{
sSL = fSL.ToString("0.000000");//显示6位小数
}
else
sSL = fSL.ToString();
sSQL.Add(string.Format("XLXSCLQD_SL{0}={1},XLXSCLQD_SHL{0}=0.0,XLXSCLQD_CLJGBL{0}=1.0, ", i.ToString().PadLeft(2, '0'), sSL));
}
double fSL80 = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["SL80"].ToString());
string sSL80 = "0";
if (fSL80.ToString().ToUpper().Contains("E"))//科学记数法
{
sSL80 = fSL80.ToString("0.000000");//显示6位小数
}
else
sSL80 = fSL80.ToString();
sSQL.Add(string.Format("XLXSCLQD_SL80={0},XLXSCLQD_SHL80=0.0,XLXSCLQD_CLJGBL80=1.0 ", sSL80));
sSQL.Add("where XLXSCLQD_XLXHID=:pXLXHID and XLXSCLQD_XLGGID=:pXLGGID and XLXSCLQD_XLBZID=:pXLBZID and XLXSCLQD_DYDJID=:pDYDJID");
sSQL.ParamByName("pXLXHID").Value = sXLXHID;
sSQL.ParamByName("pXLGGID").Value = sXLGGID;
sSQL.ParamByName("pXLBZID").Value = sXLBZID;
sSQL.ParamByName("pDYDJID").Value = sDYDJID;
dberp.ExecSQL(sSQL);
}
}
}
}
}
#endregion
}
}