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

328 lines
12 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_CONTROL;
using GThinking.N_PUBLIC;
using GThinking.N_PUBLIC2;
using GThinking.N_MISPRO.Caching;
using GThinking.N_MISPRO.Utility;
namespace GThinking.N_XLXSBJ
{
public partial class CLYL_DRYLList : OperationBase
{
CLYL_DRYL entity = new CLYL_DRYL();
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;
//CurMaster.BtnQueryVisible = false;
//CurMaster.BtnReportVisible = false;
AddListSetMap(new ListSet(pagSHD.ID, null, grdSHD, entity, UPSHD));
if (!IsPostBack)
{
this.Master.PnlQuery.GroupingText = "查询条件";
//this.Master.PnlBill.GroupingText = "单据信息";
InitControls();
}
//CurMaster.BtnReportVisible = false;
if (PageParam.GetRTrimString("CanE").Equals("Y"))
{
grdSHD.ShowPager = false;
grdSHD.ReadOnly = false;
grdSHD.EnabledToolBar = false;
grdSHD.FindColumnByFieldName("CLYLJSJG_CPWLID").ReadOnly = true;
grdSHD.FindColumnByFieldName("CPWLXX").ReadOnly = true;
grdSHD.FindColumnByFieldName("CLYLJSJG_WLID").ReadOnly = true;
grdSHD.FindColumnByFieldName("WLXX").ReadOnly = true;
grdSHD.FindColumnByFieldName("BJCL").ReadOnly = true;
CustomPageSize = 1000;
}
else
{
CurMaster.BtnOK.Visible = false;
CurMaster.BtnCancel.Visible = false;
grdSHD.ShowPager = true;
grdSHD.ReadOnly = true;
grdSHD.EnabledToolBar = true;
}
if (PageParam.GetRTrimString("FromPage").Equals("CLYL_CLYLList") || PageParam.GetRTrimString("FromPage").Equals("CLYLList"))
{
cbxGCID.SelectedValue = PageParam.GetRTrimString("GCID");
txtCP_WLID.Text = PageParam.GetRTrimString("CPWLID");
cbxGCID.Enabled = false;
txtCP_WLID.Enabled = false;
txtCP_WLID.Tag = gtTextBox.DTagStates.None;
//cbxPIID.Enabled = false;
}
base.InitPage();
CurMaster.PnlBill.Visible = false;
if (IsPostBack)
{
Master_OnQuery();
GridDataBind();
}
else
{
if (!cbxGCID.SelectedValue.Trim().Equals(""))
{
Master_OnQuery();
GridDataBind();
}
}
}
#region 模板继承事件
protected override void Master_OnQuery()
{
entity.sGCID = cbxGCID.SelectedValue.Trim();
entity.sCPPIID = cbxPIID.SelectedValue.Trim();
entity.sCPWLID = txtCP_WLID.Text.Trim();
entity.sCPWLMC = txtCPWLMC.Text.Trim();
entity.sCPWLGG = txtCPWLGG.Text.Trim();
entity.sWLID = txtWLID.Text.Trim();
entity.sWLMC = txtWLMC.Text.Trim();
entity.sWLGG = txtWLGG.Text.Trim();
entity.sFromPage = PageParam.GetRTrimString("FromPage");
base.Master_OnQuery();
//grdSHD.SelectedIndex = -1;
}
protected override void GridDataBind()
{
base.GridDataBind();
}
protected override bool QueryValid()
{
if (cbxGCID.SelectedValue.Trim().Equals(""))
{
ShowMessage("请选择工厂进行查询!");
return false;
}
//if (cbxPIID.SelectedValue.Trim().Equals(""))
//{
// ShowMessage("请选择物料类别进行查询!");
// return false;
//}
return base.QueryValid();
}
protected override bool DataLogicValid()
{
return base.DataLogicValid();
}
protected override bool Master_OnOK()
{
bool bResult = base.Master_OnOK();
if (!bResult) return false;
string sAnswer = "";
Confirm.Register("IsQD", "是否需要用最新材料物料用量更新各线缆产品的材料用量?");
if (Confirm.GetValue("IsQD").Trim().Equals(""))
{
Confirm.Ask("IsQD");
return false;
}
else if (Confirm.GetValue("IsQD").Trim().Equals("N"))
{
//表示进行了提示并选择了取消,直接返回或其他处理
Confirm.Clear();
sAnswer = "N";
}
else if (Confirm.GetValue("IsQD").Trim().Equals("Y"))
{
//表示进行了提示并选择了确认
Confirm.Clear();
sAnswer = "Y";
}
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
TSQL sSQL = new TSQL(dberp);
try
{
dberp.BeginTrans();
InsertXLXSCLWLYL(dberp, sSQL);
if (sAnswer.Equals("Y"))
{
UpdateXLXSCLQD(dberp, sSQL);
}
dberp.CommitTrans();
if (sAnswer.Equals("Y"))
ShowMessage("完成材料物料用量调整,并同步更新了各线缆产品的材料用量!");
else
ShowMessage("完成材料物料用量调整!");
CloseWindow();
}
catch (Exception ex)
{
dberp.RollbackTrans();
ShowMessage(ex.Message);
}
return true;
}
protected override void Grid_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
}
base.Grid_RowDataBound(sender, e);
}
#endregion
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", 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;
}
private void UpdateXLXSCLQD(TDatabase dberp, TSQL sSQL)
{
sSQL.Clear();
sSQL.Add("update XLXSCLQD set ");
for (int i = 1; i < 80; i++)
{
sSQL.Add(string.Format("XLXSCLQD_SL{0}=SL{0},", i.ToString().PadLeft(2, '0')));
}
sSQL.Add("XLXSCLQD_SL80=SL80 ");
sSQL.Add(" from (");
sSQL.Add("select XLXSCLWLYL_CPWLID as WLID, ");
for (int i = 1; i < 80; i++)
{
sSQL.Add(string.Format("sum(case when XLXSBJCLWL_BJCLID='{0}' then XLXSCLWLYL_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 XLXSCLWLYL_SL else 0.0 end) as SL80 ");
sSQL.Add(" from XLXSCLWLYL,XLXSBJCLWL ");
sSQL.Add(" where XLXSCLWLYL_GCID=:pGCID ");
sSQL.Add(" and XLXSCLWLYL_WLID=XLXSBJCLWL_WLID ");
sSQL.Add("group by XLXSCLWLYL_CPWLID");
sSQL.Add(") a ");
sSQL.Add("where XLXSCLQD_GCID=:pGCID and a.WLID=XLXSCLQD_WLID ");
sSQL.ParamByName("pGCID").Value = cbxGCID.SelectedValue.Trim();
dberp.ExecSQL(sSQL);
}
private void InsertXLXSCLWLYL(TDatabase dberp, TSQL sSQL)
{
int KeyRun = 500;
int tmpRun = 1;//循环KeyRun次执行1次SQL
TSQL sqlDel = new TSQL(dberp);
string strDel = "";
string strIns = "";
string sWHR = CurSession.UserName;
string sWHRID = CurSession.UserId;
string sWHSJ = DateTime.Now.ToString();
foreach (GridViewRow Row in grdSHD.NewRows)
{
string sCPWLID = grdSHD.GetValueByFieldName("CLYLJSJG_CPWLID", Row).Trim();
string sWLID = grdSHD.GetValueByFieldName("CLYLJSJG_WLID", Row).Trim();
double fSL = CMISproConvert.StrToFloat(grdSHD.GetValueByFieldName("SL", Row), 0);
if (!sCPWLID.Equals("") && !sWLID.Equals(""))
{
if (strDel.Trim().Equals(""))
strDel = string.Format("(XLXSCLWLYL_CPWLID='{0}' and XLXSCLWLYL_WLID='{1}')", sCPWLID, sWLID);
else
strDel += string.Format(" or (XLXSCLWLYL_CPWLID='{0}' and XLXSCLWLYL_WLID='{1}')", sCPWLID, sWLID);
if (strIns.Trim().Equals(""))
strIns = string.Format("select '{0}' as GC,'{1}' as CPWL,'{2}' as WL,{3} as SL,'{4}' as WHR,'{5}' as WHRID,'{6}' as WHSJ ",
cbxGCID.SelectedValue.Trim(), sCPWLID, sWLID, fSL, sWHR, sWHRID, sWHSJ);
else
{
strIns += "\r\n" + " union all " + "\r\n";
strIns += string.Format("select '{0}' as GC,'{1}' as CPWL,'{2}' as WL,{3} as SL,'{4}' as WHR,'{5}' as WHRID,'{6}' as WHSJ ",
cbxGCID.SelectedValue.Trim(), sCPWLID, sWLID, fSL, sWHR, sWHRID, sWHSJ);
}
}
if (tmpRun >= KeyRun && (tmpRun % KeyRun == 0))
{
if (!strDel.Trim().Equals(""))
{
sqlDel.Clear();
sqlDel.Add("delete from XLXSCLWLYL where XLXSCLWLYL_GCID=:pGCID ");
sqlDel.Add(" and (" + strDel + ")");
sqlDel.ParamByName("pGCID").Value = cbxGCID.SelectedValue.Trim();
dberp.ExecSQL(sqlDel);
strDel = "";
}
if (!strIns.Trim().Equals(""))
{
sSQL.Clear();
sSQL.Add("insert into XLXSCLWLYL(XLXSCLWLYL_GCID,XLXSCLWLYL_CPWLID,XLXSCLWLYL_WLID,XLXSCLWLYL_SL,XLXSCLWLYL_WHR,XLXSCLWLYL_WHRID,XLXSCLWLYL_WHSJ) ");
sSQL.Add(strIns);
dberp.ExecSQL(sSQL);
strIns = "";
}
}
tmpRun++;
}
if (!strDel.Trim().Equals(""))
{
sqlDel.Clear();
sqlDel.Add("delete from XLXSCLWLYL where XLXSCLWLYL_GCID=:pGCID ");
sqlDel.Add(" and (" + strDel + ")");
sqlDel.ParamByName("pGCID").Value = cbxGCID.SelectedValue.Trim();
dberp.ExecSQL(sqlDel);
strDel = "";
}
if (!strIns.Trim().Equals(""))
{
sSQL.Clear();
sSQL.Add("insert into XLXSCLWLYL(XLXSCLWLYL_GCID,XLXSCLWLYL_CPWLID,XLXSCLWLYL_WLID,XLXSCLWLYL_SL,XLXSCLWLYL_WHR,XLXSCLWLYL_WHRID,XLXSCLWLYL_WHSJ) ");
sSQL.Add(strIns);
dberp.ExecSQL(sSQL);
strIns = "";
}
}
}
}