Files
N_XLXSBJ----MX/TZYZBJLInfo.aspx.cs
2026-09-19 14:12:58 +08:00

356 lines
16 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_MISPRO;
using GThinking.N_MISPRO.Data;
using GThinking.N_MODEL.Page;
using GThinking.N_MISPRO.Utility;
using GThinking.N_PUBLIC;
using GThinking.N_MODEL.Dialog;
using GThinking.N_CONTROL;
namespace GThinking.N_XLXSBJ
{
public partial class TZYZBJLInfo : SingleCardBase
{
TZYZBJL entity = new TZYZBJL();
protected void Page_Load(object sender, EventArgs e)
{
this.UMID = 100860169;
this.UMName = "按标准加报价数量区间调报价";
this.CurMaster = Master;
this.CurEntity = entity;
this.PageHeight = 430;
this.PageWidth = 560;
SetTJYZLable();
if (!this.IsPostBack)
{
InitControls();
}
base.InitPage();
}
#region 模板事件继承
protected override void ReportDataSetAdd()
{
TDatabase db = TContextDatabases.GetDatabase("DBERP");
TSQL sql = new TSQL(db);
sql.Add("select XLXSTZYZ_YZID, XLXSTZYZ_YZMC from XLXSTZYZ where XLXSTZYZ_MXBH='BJD' and XLXSTZYZ_TJYS='L' order by XLXSTZYZ_XSXH,XLXSTZYZ_YZID ");
DataSet ds = db.OpenDataSet(sql);
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
string sYZID = "TZYZ_" + ds.Tables[0].Rows[i]["XLXSTZYZ_YZID"].ToString().Trim();
string sYZMC = ds.Tables[0].Rows[i]["XLXSTZYZ_YZMC"].ToString().Trim();
AddUserReportField("XLXSBJDYZZL", sYZID, sYZMC, "N");
}
base.ReportDataSetAdd();
}
protected override void ReportRecordSetAdd()
{
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
TSQL sSQL = new TSQL(dberp);
TSQL SQL = new TSQL(dberp);
SQL.Clear();
SQL.Add("select XLXSTZYZ_YZID, XLXSTZYZ_YZMC ");
SQL.Add(" from XLXSTZYZ");
SQL.Add(" where XLXSTZYZ_MXBH = 'BJD' and XLXSTZYZ_TJYS='L' order by XLXSTZYZ_XSXH,XLXSTZYZ_YZID ");
DataSet ds = dberp.OpenDataSet(SQL);
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
sSQL.Add(string.Format(",sum(decode(XLXSBJDYZZL_YZID, '{0}', XLXSBJDYZZL_YZZ, 0)) as TZYZ_{0}", ds.Tables[0].Rows[i][0].ToString().Trim()));
}
sSQL.Text = "select 1" + sSQL.Text + " from XLXSBJDYZZL where XLXSBJDYZZL_JGBID='" + txtJGBID.Value.Trim() + "' and XLXSBJDYZZL_XLBZID='" + cbxXLBZID.SelectedValue.Trim() + "' and XLXSBJDYZZL_BJSLS=" + txtBJSLS.Value + " and XLXSBJDYZZL_BJSLZ=" + txtBJSLZ.Value;
AddUserReportSQL("XLXSBJDYZZL", sSQL);
base.ReportRecordSetAdd();
}
protected override void SetControlState()
{
base.SetControlState();
txtWHR.Enabled = false;
datWHSJ.Enabled = false;
# region 给调价因子控件设只读性
if (ControlState == TControlState.ctsInsert || ControlState == TControlState.ctsCopy || ControlState == TControlState.ctsEdit)
{
for (int i = 1; i <= 20; i++)
{
gtNumTextBox txtTJYZ = (gtNumTextBox)Master.ContentFormControl.FindControl("txt" + "TJYZ" + i);
txtTJYZ.Enabled = false;
}
string[] sTJYZList = PageParam.GetRTrimString("TJYZList").Split(',');
for (int i = 0; i < sTJYZList.Length; i++)
{
for (int j = 1; j <= 20; j++)
{
string sTZYZID = "BJ" + j.ToString().PadLeft(2, '0') + "|";
gtNumTextBox txtTJYZ = (gtNumTextBox)Master.ContentFormControl.FindControl("txt" + "TJYZ" + j.ToString().Trim());
if (sTJYZList[i].StartsWith(sTZYZID))
{
txtTJYZ.Enabled = true;
}
}
}
}
#endregion
}
protected override void LoadRecord()
{
if (!IsPostBack)
{
entity.Param.Add("XLXSBJDYZZL_JGBID", PageParam.GetRTrimString("XLXSBJDYZZL_JGBID"));
entity.Param.Add("XLXSBJDYZZL_XLBZID", PageParam.GetRTrimString("XLXSBJDYZZL_XLBZID"));
entity.Param.Add("XLXSBJDYZZL_BJSLS", PageParam.GetRTrimString("XLXSBJDYZZL_BJSLS"));
entity.Param.Add("XLXSBJDYZZL_BJSLZ", PageParam.GetRTrimString("XLXSBJDYZZL_BJSLZ"));
entity.Param.Add("XLXSBJDYZZL_YZID", PageParam.GetRTrimString("XLXSBJDYZZL_YZID"));
}
else
{
entity.Param.Add("XLXSBJDYZZL_JGBID", txtJGBID.Value.Trim());
entity.Param.Add("XLXSBJDYZZL_XLBZID", txtOLD_XLBZID.Value.Trim());
entity.Param.Add("XLXSBJDYZZL_BJSLS", txtOLD_BJSLS.Value.Trim());
entity.Param.Add("XLXSBJDYZZL_BJSLZ", txtOLD_BJSLZ.Value.Trim());
entity.Param.Add("XLXSBJDYZZL_YZID", txtYZID.Value.Trim());
}
base.LoadRecord();
SetOldValues();
# region 给调价因子控件赋值
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
TSQL sql = new TSQL(dberp);
sql.Clear();
sql.Add(" select XLXSBJDYZZL_YZID, XLXSBJDYZZL_YZZ from XLXSBJDYZZL ");
sql.Add(" where XLXSBJDYZZL_JGBID=:pJGBID and XLXSBJDYZZL_XLBZID=:pXLBZID and XLXSBJDYZZL_BJSLS=:pBJSLS and XLXSBJDYZZL_BJSLZ=:pBJSLZ order by XLXSBJDYZZL_YZID");
sql.ParamByName("pJGBID").Value = txtJGBID.Value.Trim();
sql.ParamByName("pXLBZID").Value = cbxXLBZID.SelectedValue.Trim();
sql.ParamByName("pBJSLS").Value = txtBJSLS.Value;
sql.ParamByName("pBJSLZ").Value = txtBJSLZ.Value;
DataSet ds = dberp.OpenDataSet(sql);
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
string sYZID = ds.Tables[0].Rows[i][0].ToString().Trim();
double dYZZ = CMISproConvert.StrToFloat(ds.Tables[0].Rows[i][1].ToString().Trim());
if (PageParam.GetRTrimString("TJYZList").Contains(sYZID + "|"))
{
for (int j = 1; j <= 20; j++)
{
string sTZYZID = "BJ" + j.ToString().PadLeft(2, '0');
gtNumTextBox txtTJYZ = (gtNumTextBox)Master.ContentFormControl.FindControl("txt" + "TJYZ" + j.ToString().Trim());
if (sYZID.Equals(sTZYZID))
txtTJYZ.Value = dYZZ;
}
}
}
#endregion
}
protected override void OnNewRecorder()
{
base.OnNewRecorder();
txtJGBID.Value = PageParam.GetRTrimString("XLXSBJDYZZL_JGBID");
txtWHR.Text = tSession.UserName;
txtWHRID.Value = tSession.UserId;
datWHSJ.Text = CMISproConvert.ConvertTime(System.DateTime.Now);
}
protected override void OnCopyRecorder()
{
base.OnCopyRecorder();
txtJGBID.Value = PageParam.GetRTrimString("XLXSBJDYZZL_JGBID");
txtWHR.Text = tSession.UserName;
txtWHRID.Value = tSession.UserId;
datWHSJ.Text = CMISproConvert.ConvertTime(System.DateTime.Now);
}
protected override bool DataLogicValid()
{
if (!base.DataLogicValid()) return false;
if (cbxXLBZID.SelectedValue.Trim().Equals(""))
{
ShowMessage("标准不允许为空!");
return false;
}
if (txtBJSLS.Value < 0 || txtBJSLZ.Value < 0)
{
ShowMessage("报价数量区间不允许为负数!");
return false;
}
if (txtBJSLZ.Value != 0 && txtBJSLS.Value >= txtBJSLZ.Value)
{
ShowMessage("报价数量始必须小于报价数量止!");
return false;
}
if (HasOverlappedRange())
{
ShowMessage("当前标准、报价数量区间已存在交集记录,不允许保存!");
return false;
}
return true;
}
protected override bool Master_BeforeDeleteAction(object sender, EventArgs e)
{
string sYZIDlist = TZYZBJAInfo.GetYZIDList(PageParam.GetRTrimString("TJYZList"));
entity.EntityTable.DeleteSql = " delete from XLXSBJDYZZL where XLXSBJDYZZL_JGBID=:XLXSBJDYZZL_JGBID and XLXSBJDYZZL_XLBZID=:XLXSBJDYZZL_XLBZID and XLXSBJDYZZL_BJSLS=:XLXSBJDYZZL_BJSLS and XLXSBJDYZZL_BJSLZ=:XLXSBJDYZZL_BJSLZ and "
+ CMISproDataBase.GetWhereEqual("XLXSBJDYZZL_YZID", sYZIDlist);
return base.Master_BeforeDeleteAction(sender, e);
}
protected override bool Master_BeforeSaveAction(object sender, EventArgs e)
{
if (!base.Master_BeforeSaveAction(sender, e)) return false;
string sYZIDlist = TZYZBJAInfo.GetYZIDList(PageParam.GetRTrimString("TJYZList"));
entity.EntityTable.UpdateSql = " update XLXSBJDYZZL " + "\r\n"
+ " set XLXSBJDYZZL_XLBZID=:XLXSBJDYZZL_XLBZID, XLXSBJDYZZL_BJSLS=isnull(:XLXSBJDYZZL_BJSLS,0), XLXSBJDYZZL_BJSLZ=isnull(:XLXSBJDYZZL_BJSLZ,0), "
+ " XLXSBJDYZZL_WHR=:XLXSBJDYZZL_WHR, XLXSBJDYZZL_WHRID=:XLXSBJDYZZL_WHRID, XLXSBJDYZZL_WHSJ=:XLXSBJDYZZL_WHSJ " + "\r\n"
+ " where XLXSBJDYZZL_JGBID=:XLXSBJDYZZL_JGBID and XLXSBJDYZZL_XLBZID=:OLD_XLXSBJDYZZL_XLBZID and XLXSBJDYZZL_BJSLS=:OLD_XLXSBJDYZZL_BJSLS and XLXSBJDYZZL_BJSLZ=:OLD_XLXSBJDYZZL_BJSLZ and "
+ CMISproDataBase.GetWhereEqual("XLXSBJDYZZL_YZID", sYZIDlist);
txtWHR.Text = tSession.UserName;
txtWHRID.Value = tSession.UserId;
datWHSJ.Text = CMISproConvert.ConvertTime(System.DateTime.Now);
return true;
}
protected override bool Master_AfterSaveAction(object sender, EventArgs e)
{
SetOldValues();
txtYZID.Value = PageParam.GetRTrimString("FirstYZID");
string sJGBID = txtJGBID.Value.Trim();
string sXLBZID = cbxXLBZID.SelectedValue.Trim();
string sBJSLS = txtBJSLS.Value.ToString().Trim();
string sBJSLZ = txtBJSLZ.Value.ToString().Trim();
# region 将调价因子控件值更新至数据库中
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
TSQL sql = new TSQL(dberp);
sql.Clear();
string sYZIDlist = TZYZBJAInfo.GetYZIDList(PageParam.GetRTrimString("TJYZList"));
dberp.ExecSQL(string.Format("delete from XLXSBJDYZZL where XLXSBJDYZZL_JGBID='{0}' and XLXSBJDYZZL_XLBZID='{1}' and XLXSBJDYZZL_BJSLS={2} and XLXSBJDYZZL_BJSLZ={3} and " + CMISproDataBase.GetWhereEqual("XLXSBJDYZZL_YZID", sYZIDlist), sJGBID, sXLBZID, sBJSLS, sBJSLZ));
string[] sTJYZList = PageParam.GetRTrimString("TJYZList").Split(',');
DateTime tNow = DateTime.Now;
for (int i = 0; i < sTJYZList.Length; i++)
{
sql.Clear();
sql.Add("insert into XLXSBJDYZZL(XLXSBJDYZZL_JGBID, XLXSBJDYZZL_XLBZID, XLXSBJDYZZL_BJSLS, XLXSBJDYZZL_BJSLZ, XLXSBJDYZZL_YZID, XLXSBJDYZZL_YZZ, XLXSBJDYZZL_WHR, XLXSBJDYZZL_WHRID, XLXSBJDYZZL_WHSJ)");
sql.Add(" values(:pJGBID,:pXLBZID,:pBJSLS,:pBJSLZ,:pYZID,:pYZZ,:pWHR,:pWHRID,:pWHSJ)");
sql.ParamByName("pJGBID").Value = sJGBID;
sql.ParamByName("pXLBZID").Value = sXLBZID;
sql.ParamByName("pBJSLS").Value = sBJSLS;
sql.ParamByName("pBJSLZ").Value = sBJSLZ;
sql.ParamByName("pWHR").Value = tSession.UserName;
sql.ParamByName("pWHRID").Value = tSession.UserId;
sql.ParamByName("pWHSJ").Value = tNow;
for (int j = 1; j <= 20; j++)
{
string sTZYZID = "BJ" + j.ToString().PadLeft(2, '0') + "|";
gtNumTextBox txtTJYZ = (gtNumTextBox)Master.ContentFormControl.FindControl("txt" + "TJYZ" + j.ToString().Trim());
if (sTJYZList[i].StartsWith(sTZYZID))
{
sql.ParamByName("pYZID").Value = sTZYZID.TrimEnd('|');
sql.ParamByName("pYZZ").Value = txtTJYZ.Value;
dberp.ExecSQL(sql);
}
}
}
#endregion
return base.Master_AfterSaveAction(sender, e);
}
protected override void SetComboxItems()
{
TComboBox.SetComboBox("DBERP", cbxXLBZID, "select XLBZ_XLBZID,XLBZ_XLBZLXMC from XLBZ where 1=1 and len(XLBZ_XLBZID) < 10 order by XLBZ_PX,XLBZ_XLBZID ", false);
base.SetComboxItems();
}
#endregion
#region 自定义函数
private void InitControls()
{
txtYZID.Value = PageParam.GetRTrimString("FirstYZID");
}
private void SetOldValues()
{
txtOLD_XLBZID.Value = cbxXLBZID.SelectedValue.Trim();
txtOLD_BJSLS.Value = txtBJSLS.Value.ToString().Trim();
txtOLD_BJSLZ.Value = txtBJSLZ.Value.ToString().Trim();
}
private bool HasOverlappedRange()
{
string sYZIDlist = TZYZBJAInfo.GetYZIDList(PageParam.GetRTrimString("TJYZList"));
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
TSQL sql = new TSQL(dberp);
sql.Add(" select XLXSBJDYZZL_XLBZID, XLXSBJDYZZL_BJSLS, XLXSBJDYZZL_BJSLZ from XLXSBJDYZZL ");
sql.Add(" where XLXSBJDYZZL_JGBID=:pJGBID and XLXSBJDYZZL_XLBZID=:pXLBZID ");
sql.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDYZZL_YZID", sYZIDlist));
sql.Add(" and (XLXSBJDYZZL_BJSLZ=0 or XLXSBJDYZZL_BJSLZ>:pBJSLS) ");
sql.Add(" and (:pBJSLZ=0 or XLXSBJDYZZL_BJSLS<:pBJSLZ) ");
if (ControlState == TControlState.ctsEdit)
{
sql.Add(" and (XLXSBJDYZZL_XLBZID<>:pOLDXLBZID or XLXSBJDYZZL_BJSLS<>:pOLDBJSLS or XLXSBJDYZZL_BJSLZ<>:pOLDBJSLZ) ");
sql.ParamByName("pOLDXLBZID").Value = txtOLD_XLBZID.Value.Trim();
sql.ParamByName("pOLDBJSLS").Value = txtOLD_BJSLS.Value.Trim();
sql.ParamByName("pOLDBJSLZ").Value = txtOLD_BJSLZ.Value.Trim();
}
sql.ParamByName("pJGBID").Value = txtJGBID.Value.Trim();
sql.ParamByName("pXLBZID").Value = cbxXLBZID.SelectedValue.Trim();
sql.ParamByName("pBJSLS").Value = txtBJSLS.Value;
sql.ParamByName("pBJSLZ").Value = txtBJSLZ.Value;
DataSet ds = dberp.OpenDataSet(sql);
return ds.Tables[0].Rows.Count > 0;
}
private void SetTJYZLable()
{
string[] sTJYZList = PageParam.GetRTrimString("TJYZList").Split(',');
for (int i = 0; i < sTJYZList.Length; i++)
{
for (int j = 1; j <= 20; j++)
{
string sTZYZID = "BJ" + j.ToString().PadLeft(2, '0') + "|";
gtNumTextBox txtTJYZ = (gtNumTextBox)Master.ContentFormControl.FindControl("txt" + "TJYZ" + j.ToString().Trim());
gtLabel lblTJYZ = (gtLabel)Master.ContentFormControl.FindControl("lbl" + "TJYZ" + j.ToString().Trim());
if (sTJYZList[i].StartsWith(sTZYZID))
{
string s = sTJYZList[i].Replace(sTZYZID, "").Replace("(X)", "") + ":";
lblTJYZ.Text = s;
if (sTJYZList[i].EndsWith("(%)") || sTJYZList[i].EndsWith("(元)"))
{
txtTJYZ.DecimalPlaces = 2;
}
else if (sTJYZList[i].EndsWith("(X)"))
{
txtTJYZ.DecimalPlaces = 4;
}
}
}
}
}
#endregion
}
}