342 lines
18 KiB
C#
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
|
|
}
|
|
}
|