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

265 lines
13 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_MISPRO.Caching;
using GThinking.N_MISPRO.Utility;
using System.Collections.Generic;
using System.Text;
namespace GThinking.N_XLXSBJ
{
[TableMap(DB = "DBERP", DbTableName = "XLXSBJDMX", Umid = 100860000, IsWorkFlow = false, UseWhr = false, IsAttach = false)]
public class XLBJD_YZ_KJF : EntityManager
{
}
public partial class XLBJD_YZ_KJFInfo : SingleGridBase
{
XLBJD_YZ_KJF entity = new XLBJD_YZ_KJF();
protected void Page_Load(object sender, EventArgs e)
{
this.UMID = 100860000;
this.UMName = "线缆销售报价单";
this.CurMaster = Master;
this.ModuleGV = grdContentGrid;
this.CurEntity = entity;
this.PageHeight = 600;
this.PageWidth = 700;
Master.EnableNewBtn = false;
Master.EnableEditBtn = false;
Master.EnableCopyBtn = false;
Master.EnableDeleteBtn = false;
Master.EnableViewBtn = false;
Master.EnableQueryBtn = false;
Master.EnablePrintBtn = false;
base.DataKeyNames = new string[] { "XLXHID", "XLGGID", "XLBZID", "DYDJID", "BJSL", "MMKJF" };
base.InitPage();
if (!IsPostBack)
{
double dKJF = CMISproConvert.StrToFloat(GetOption("BJU039"));
string sTSFS = GetOption("BJU047");
if (sTSFS == "T")
chkTS.Checked = true;
else
chkFGGS.Checked = true;
txtDCKJF.Value = dKJF;
txtDCKJF_OnTextChanged(null, null);
}
}
#region 模板事件继承
protected override void Master_OnStandardQuery(object sender, EventArgs e)
{
entity.EntityTable.QuerySelSql = GetSQL();
base.Master_OnStandardQuery(sender, e);
entity.GridDataBind(grdContentGrid, tSession);
}
protected override void moduleGV_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
double dBJSL = CMISproConvert.StrToFloat(grdContentGrid.DataKeys[e.Row.RowIndex]["BJSL"].ToString().Trim());
double dMMKJF = 0;
if (dBJSL > 0 && txtDCKJF.Value > 0)
{
dMMKJF = NumberUtils.RoundX(txtDCKJF.Value / dBJSL, 2);
}
e.Row.Cells[5].Text = dMMKJF.ToString("F2");
}
base.moduleGV_RowDataBound(sender, e);
}
protected override void moduleGV_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
entity.EntityTable.QuerySelSql = GetSQL();
grdContentGrid.SelectedIndex = -1;
base.moduleGV_PageIndexChanging(sender, e);
}
#endregion
#region 自定义函数
private string GetSQL()
{
string sBJDID = PageParam.GetRTrimString("BJDID");
StringBuilder sSQL = new StringBuilder();
sSQL.AppendLine("select XLXSBJDMX_XLXHID as XLXHID, XLXSBJDMX_XLGGID as XLGGID, XLXSBJDMX_XLBZID as XLBZID, XLXSBJDMX_DYDJID as DYDJID,");
sSQL.AppendLine(" sum(case when XLXSBJDMX_JLDW in ('千米','Km','公里') then XLXSBJDMX_BJSL*1000 when XLXSBJDMX_JLDW in ('百米') then XLXSBJDMX_BJSL*100 else XLXSBJDMX_BJSL end) as BJSL,");
sSQL.AppendLine(" 0.0 as MMKJF");
sSQL.AppendLine("from XLXSBJDMX ");
sSQL.AppendLine("left join XLXHB on XLXSBJDMX_XLXHID=XLXHB_XLXHID");
sSQL.AppendLine("left join XLXSBJXLGGTHB on XLXSBJXLGGTHB_XLGGID = XLXSBJDMX_XLGGID");
sSQL.AppendLine("left join XLGGB on XLGGB_XLGGID= XLXSBJXLGGTHB_XLGGIDCH and XLGGB_XLGGJDGZ=isnull(XLXHB_XLGGJDGZ,'0')");
sSQL.AppendLine("left join XLXSBJXHML XHMLA on XHMLA.XLXSBJXHML_XLXHID = XLXSBJDMX_XLXHID and XHMLA.XLXSBJXHML_DYDJID = isnull(XLXSBJDMX_DYDJID, ' ')");
sSQL.AppendLine("left join XLXSBJXHML XHMLB on XHMLB.XLXSBJXHML_XLXHID = XLXSBJDMX_XLXHID and XHMLB.XLXSBJXHML_DYDJID = ' ' ");
sSQL.AppendLine("left join XLXSCPML on XLXSCPML_CPMLID = case when ISNULL(XHMLA.XLXSBJXHML_CPMLID,' ') = ' ' then ISNULL(XHMLB.XLXSBJXHML_CPMLID,' ') else ISNULL(XHMLA.XLXSBJXHML_CPMLID,' ') end");
sSQL.AppendLine("where XLXSBJDMX_BJDID=:pBJDID and (XLGGB_GGZXS=3 or XLGGB_GGZXS=1) and XLXSCPML_CPMLMC like '%中压%'");
sSQL.AppendLine("group by XLXSBJDMX_XLXHID, XLXSBJDMX_XLGGID, XLXSBJDMX_XLBZID, XLXSBJDMX_DYDJID,XLGGB_GGZXS");
sSQL.AppendLine("having (XLGGB_GGZXS = 3 AND SUM(XLXSBJDMX_BJSL) < 300)");
sSQL.AppendLine(" OR (XLGGB_GGZXS = 1 AND SUM(XLXSBJDMX_BJSL) < 500)");
sSQL.AppendLine("order by XLXSBJDMX_XLXHID, XLXSBJDMX_DYDJID, XLXSBJDMX_XLGGID, XLXSBJDMX_XLBZID");
entity.Param.Add("pBJDID", sBJDID);
return sSQL.ToString();
}
#endregion
#region 自定义按钮
protected void btnOK_Click(object sender, EventArgs e)
{
string sBJDID = PageParam.GetRTrimString("BJDID");
string sYZID = PageParam.GetRTrimString("YZID");
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
TSQL SQL = new TSQL(dberp);
SQL.Clear();
SQL.Add(@" select sum(case when XLXSBJDMX_JLDW in ('千米','Km','公里') then XLXSBJDMX_BJSL*1000 when XLXSBJDMX_JLDW in ('百米') then XLXSBJDMX_BJSL*100 else XLXSBJDMX_BJSL end) as BJSL,XLXSBJDMX_XLXHID, XLXSBJDMX_XLGGID, XLXSBJDMX_XLBZID, XLXSBJDMX_DYDJID,XLGGB_GGZXS
from XLXSBJDMX
left join XLXHB on XLXSBJDMX_XLXHID=XLXHB_XLXHID
left join XLXSBJXLGGTHB on XLXSBJXLGGTHB_XLGGID = XLXSBJDMX_XLGGID
left join XLGGB on XLGGB_XLGGID= XLXSBJXLGGTHB_XLGGIDCH and XLGGB_XLGGJDGZ=isnull(XLXHB_XLGGJDGZ,'0')
left join XLXSBJXHML XHMLA on XHMLA.XLXSBJXHML_XLXHID = XLXSBJDMX_XLXHID and XHMLA.XLXSBJXHML_DYDJID = isnull(XLXSBJDMX_DYDJID, ' ')
left join XLXSBJXHML XHMLB on XHMLB.XLXSBJXHML_XLXHID = XLXSBJDMX_XLXHID and XHMLB.XLXSBJXHML_DYDJID = ' '
left join XLXSCPML on XLXSCPML_CPMLID = case when ISNULL(XHMLA.XLXSBJXHML_CPMLID,' ') = ' ' then ISNULL(XHMLB.XLXSBJXHML_CPMLID,' ') else ISNULL(XHMLA.XLXSBJXHML_CPMLID,' ') end
where XLXSBJDMX_BJDID=:pBJDID and (XLGGB_GGZXS=3 or XLGGB_GGZXS=1) and XLXSCPML_CPMLMC like '%中压%'
group by XLXSBJDMX_XLXHID, XLXSBJDMX_XLGGID, XLXSBJDMX_XLBZID, XLXSBJDMX_DYDJID,XLGGB_GGZXS
having (XLGGB_GGZXS = 3 AND SUM(XLXSBJDMX_BJSL) < 300)
OR (XLGGB_GGZXS = 1 AND SUM(XLXSBJDMX_BJSL) < 500)");
SQL.ParamByName("pBJDID").Value = sBJDID;
DataSet ds = dberp.OpenDataSet(SQL);
if (ds.Tables[0].Rows.Count > 0)
{
SQL.Clear();
SQL.Add("update XLXSBJDYZZ0 ");
SQL.Add(string.Format(" set XLXSBJDYZZ0_YZZ{0}=0 ",sYZID.Replace("BJ","")));
SQL.Add(" where XLXSBJDYZZ0_BJDID=:pBJDID ");
SQL.ParamByName("pBJDID").Value = sBJDID;
dberp.ExecSQL(SQL);
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
double dBJSL = CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["BJSL"].ToString().Trim());
double dMMKJF = 0;
if (dBJSL > 0 && txtDCKJF.Value > 0)
{
dMMKJF = NumberUtils.RoundX(txtDCKJF.Value / dBJSL, 2);
if (chkTS.Checked)
dMMKJF = txtTSKJF.Value;
}
string sXLXHID = ds.Tables[0].Rows[i]["XLXSBJDMX_XLXHID"].ToString().Trim();
string sXLGGID = ds.Tables[0].Rows[i]["XLXSBJDMX_XLGGID"].ToString().Trim();
string sXLBZID = ds.Tables[0].Rows[i]["XLXSBJDMX_XLBZID"].ToString().Trim();
string sDYDJID = ds.Tables[0].Rows[i]["XLXSBJDMX_DYDJID"].ToString().Trim();
SQL.Clear();
SQL.Add(@" merge into XLXSBJDYZZ0 tar
USING ( SELECT XLXSBJDMX_BJDID, XLXSBJDMX_XH,XLXSBJDMX_BJSL FROM XLXSBJDMX
WHERE XLXSBJDMX_BJDID=:pBJDID and XLXSBJDMX_XLXHID = :pXLXHID AND XLXSBJDMX_XLGGID = :pXLGGID
AND XLXSBJDMX_XLBZID = :pXLBZID AND XLXSBJDMX_DYDJID = :pDYDJID ) sor
on(
XLXSBJDYZZ0_BJDID=:pBJDID
and XLXSBJDYZZ0_BJDID=XLXSBJDMX_BJDID
and XLXSBJDYZZ0_XH=XLXSBJDMX_XH
) ");
SQL.Add(string.Format(" when matched then update set XLXSBJDYZZ0_YZZ{0}=round(:pDJ,2) ",sYZID.Replace("BJ","")));
SQL.ParamByName("pBJDID").Value = sBJDID;
SQL.ParamByName("pXLXHID").Value = sXLXHID;
SQL.ParamByName("pXLGGID").Value = sXLGGID;
SQL.ParamByName("pXLBZID").Value = sXLBZID;
SQL.ParamByName("pDYDJID").Value = sDYDJID;
SQL.ParamByName("pDJ").Value = dMMKJF;
dberp.ExecSQL(SQL);
}
string sErrorMsg = "";
XLBJDCalcUtils.CalcAfterBJDYZZChange(dberp, SQL, sBJDID, 1, "", false, false, false, "", DateTime.MinValue, GetOption("BJU002"), GetOption("BJU003"), tSession.UserId, tSession.UserName, ref sErrorMsg);
if (!sErrorMsg.Equals(""))
throw new Exception(sErrorMsg);
}
DialogOperationScript dos = new DialogOperationScript(this);
dos.CloseSelf();
dos.Execute();
}
protected void btnQX_Click(object sender, EventArgs e)
{
CloseWindow();
}
#endregion
#region 控件事件
protected void txtDCKJF_OnTextChanged(object sender, EventArgs e)
{
string sBJDID = PageParam.GetRTrimString("BJDID");
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
TSQL SQL = new TSQL(dberp);
SQL.Clear();
SQL.Add(@" select sum(case when XLXSBJDMX_JLDW in ('千米','Km','公里') then XLXSBJDMX_BJSL*1000 when XLXSBJDMX_JLDW in ('百米') then XLXSBJDMX_BJSL*100 else XLXSBJDMX_BJSL end) as BJSL,XLXSBJDMX_XLXHID, XLXSBJDMX_XLGGID, XLXSBJDMX_XLBZID, XLXSBJDMX_DYDJID,XLGGB_GGZXS
from XLXSBJDMX
left join XLXHB on XLXSBJDMX_XLXHID=XLXHB_XLXHID
left join XLXSBJXLGGTHB on XLXSBJXLGGTHB_XLGGID = XLXSBJDMX_XLGGID
left join XLGGB on XLGGB_XLGGID= XLXSBJXLGGTHB_XLGGIDCH and XLGGB_XLGGJDGZ=isnull(XLXHB_XLGGJDGZ,'0')
left join XLXSBJXHML XHMLA on XHMLA.XLXSBJXHML_XLXHID = XLXSBJDMX_XLXHID and XHMLA.XLXSBJXHML_DYDJID = isnull(XLXSBJDMX_DYDJID, ' ')
left join XLXSBJXHML XHMLB on XHMLB.XLXSBJXHML_XLXHID = XLXSBJDMX_XLXHID and XHMLB.XLXSBJXHML_DYDJID = ' '
left join XLXSCPML on XLXSCPML_CPMLID = case when ISNULL(XHMLA.XLXSBJXHML_CPMLID,' ') = ' ' then ISNULL(XHMLB.XLXSBJXHML_CPMLID,' ') else ISNULL(XHMLA.XLXSBJXHML_CPMLID,' ') end
where XLXSBJDMX_BJDID=:pBJDID and (XLGGB_GGZXS=3 or XLGGB_GGZXS=1) and XLXSCPML_CPMLMC like '%中压%'
group by XLXSBJDMX_XLXHID, XLXSBJDMX_XLGGID, XLXSBJDMX_XLBZID, XLXSBJDMX_DYDJID,XLGGB_GGZXS
having (XLGGB_GGZXS = 3 AND SUM(XLXSBJDMX_BJSL) < 300)
OR (XLGGB_GGZXS = 1 AND SUM(XLXSBJDMX_BJSL) < 500)");
SQL.ParamByName("pBJDID").Value = sBJDID;
DataSet ds=dberp.OpenDataSet(SQL);
double sumBJSL=0;
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
sumBJSL += CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["BJSL"].ToString().Trim());
int iCount = ds.Tables[0].Rows.Count;
txtZKJF.Value = iCount * txtDCKJF.Value;
if(sumBJSL!=0)
txtTSKJF.Value=NumberUtils.RoundX(iCount * txtDCKJF.Value/sumBJSL,2);
txtBJSL.Value = sumBJSL;
FormAreaUpdate();
Master_OnStandardQuery(null, null);
}
protected void chkTS_OnCheckedChanged(object sender, EventArgs e)
{
if (chkTS.Checked)
chkFGGS.Checked = false;
FormAreaUpdate();
Master_OnStandardQuery(null, null);
}
protected void chkFGGS_OnCheckedChanged(object sender, EventArgs e)
{
if (chkFGGS.Checked)
chkTS.Checked = false;
FormAreaUpdate();
Master_OnStandardQuery(null, null);
}
#endregion
}
}