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 } }