using System; using System.Data; using System.Configuration; 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; namespace GThinking.N_XLXSBJ { public partial class BDPYBPInfo : SingleCardBase { #region Page类事件继承 XLBJD_BDBJ entity = new XLBJD_BDBJ(); DataSet ds; string sBJDID; string sBJDXH; string sJCLLX; string sLJJCLLX; string flag; protected void Page_Load(object sender, EventArgs e) { this.UMID = 100860000; this.UMName = "比对报价"; this.CurMaster = Master; this.CurEntity = entity; this.PageHeight = 180; this.PageWidth = 420; Master.EnableAttachBtn = false; Master.EnableCancelBtn = false; Master.EnableCopyBtn = false; Master.EnableDeleteBtn = false; Master.EnableEditBtn = false; Master.EnableInsertBtn = false; Master.EnablePrintBtn = false; Master.EnableRefreshBtn = false; Master.EnableSaveBtn = false; base.InitPage(); flag = PageParam.GetRTrimString("FLAG"); sBJDID = PageParam.GetRTrimString("BJDID"); sBJDXH = PageParam.GetRTrimString("BJDXH"); sJCLLX = PageParam.GetRTrimString("JCLLX"); sLJJCLLX = PageParam.GetRTrimString("LJJCLLX"); ds = entity.GetXLXSBJDMX_ds(sBJDID, sBJDXH); if (!IsPostBack) { InitControl(); } } #endregion #region 模板继承事件 #endregion #region 自定义事件 private void InitControl() { if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0) { if (flag.Equals("GLTZBJ")) { lblTZ.Text = "报价:"; txtTZ.DecimalPlaces = CMISproConvert.StrToInt(PageParam.GetRTrimString("iXSWS")); txtTZ.Value = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["XLXSBJDMX_CPBJ"].ToString().Trim(), 0); txtCPBJ.Value = ds.Tables[0].Rows[0]["XLXSBJDMX_CPBJ"].ToString().Trim(); } else if (flag.Equals("GLTZCLCBLRL")) { lblTZ.Text = "材料料价价差率:"; txtTZ.DecimalPlaces = 2; txtTZ.Value = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["XLXSBJDMX_CLCBJCL"].ToString().Trim(), 0); txtCLCBLRL.Value =ds.Tables[0].Rows[0]["XLXSBJDMX_CLCBJCL"].ToString().Trim(); } else if (flag.Equals("GLTZLRL")) { lblTZ.Text = "表价价差率:"; txtTZ.DecimalPlaces = 2; txtTZ.Value = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["XLXSBJDMX_JGBBJJCL"].ToString().Trim(), 0); txtLRL.Value =ds.Tables[0].Rows[0]["XLXSBJDMX_JGBBJJCL"].ToString().Trim(); } } } #endregion #region 控件事件 protected void txtTZ_OnTextChanged(object sender, EventArgs e) { if (flag.Equals("GLTZBJ")) { txtCPBJ.Value = txtTZ.Value.ToString().Trim(); if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0) { //报价发生变化,反算调整报价(%) double dTZQCPBJ = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["XLXSBJDMX_TZQCPBJ"].ToString().Trim(), 0); double dCPBJ = CMISproConvert.StrToFloat(txtCPBJ.Value.Trim()); double dBJSL = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["XLXSBJDMX_BJSL"].ToString().Trim(), 0); double dCPJJ = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["XLXSBJDMX_JGBBJ"].ToString().Trim(), 0); double dCLCB = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["XLXSBJDMX_CLCB"].ToString().Trim(), 0); double dBJDHQCLCB = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["XLXSBJDMX_BJDHQCLCB"].ToString().Trim(), 0); double dTZJG = 0; if (dTZQCPBJ != 0) dTZJG = 100 * (dCPBJ - dTZQCPBJ) / dTZQCPBJ; double dTZQBJJE = NumberUtils.RoundX(dBJSL * dCPBJ, 2); double dTZJE = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["XLXSBJDMX_TZBJJE"].ToString().Trim(), 0); double dBJJE = dTZQBJJE + dTZJE; double dLRE = 0; if (sJCLLX.Trim().Equals("1"))//表价价差率公式 dLRE = dBJJE - NumberUtils.RoundX(dCPJJ * dBJSL, 2); else if (sJCLLX.Trim().Equals("2")) dLRE = NumberUtils.RoundX(dCPJJ * dBJSL, 2) - dBJJE; else if (sJCLLX.Trim().Equals("4")) dLRE = dBJJE - NumberUtils.RoundX(dCPJJ * dBJSL, 2); //表价价差率公式 //表价金额 double dCPJE = NumberUtils.RoundX(dCPJJ * dBJSL, 2); double dLRL = 0.0; if (sJCLLX.Trim().Equals("1")) { if (dBJJE != 0) dLRL = NumberUtils.RoundX(dLRE * 100 / dBJJE, 2); } else if (sJCLLX.Trim().Equals("2")) { if (dCPJE != 0) dLRL = NumberUtils.RoundX(dLRE * 100 / dCPJE, 2); } else if (sJCLLX.Trim().Equals("3")) { if (dBJJE != 0) dLRL = NumberUtils.RoundX(dCPJE * 100 / dBJJE, 2); } else if (sJCLLX.Trim().Equals("4")) { if (dCPJE != 0) dLRL = NumberUtils.RoundX(dLRE * 100 / dCPJE, 2); } double dCLCBLRL = 0.0; if (sLJJCLLX.Trim().Equals("1")) { double dCLCBLRE = dBJJE - NumberUtils.RoundX(dCLCB * dBJSL, 2); if (dBJJE != 0) dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); } else if (sLJJCLLX.Trim().Equals("2")) { double dCLCBLRE = dBJJE - NumberUtils.RoundX(dBJDHQCLCB * dBJSL, 2); if (dBJJE != 0) dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); } else if (sLJJCLLX.Trim().Equals("3")) { double dCLCBLRE = dBJJE - NumberUtils.RoundX(dBJDHQCLCB * dBJSL, 2); if (dBJDHQCLCB * dBJSL != 0) dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / (dBJDHQCLCB * dBJSL), 2); } else if (sLJJCLLX.Trim().Equals("4")) { double dCLCBLRE = NumberUtils.RoundX(dBJDHQCLCB * dBJSL, 2); if (dBJJE != 0) dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); } txtLRL.Value = dLRL.ToString().Trim(); txtCLCBLRL.Value = dCLCBLRL.ToString().Trim(); txtTZJG.Value = dTZJG.ToString().Trim(); txtTZQBJJE.Value = dTZQBJJE.ToString().Trim(); txtBJJE.Value = dBJJE.ToString().Trim(); txtLRE.Value = dLRE.ToString().Trim(); txtBDBZ.Value = "1"; } } else if (flag.Equals("GLTZCLCBLRL")) { txtCLCBLRL.Value = txtTZ.Value.ToString().Trim(); if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0) { //CLCBLRL----这里程序做了制约:不变调整金额,变调整报价(%) double dCLCBLRL = CMISproConvert.StrToFloat(txtCLCBLRL.Value.Trim()); double dTZJE = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["XLXSBJDMX_TZBJJE"].ToString().Trim(), 0); double dBJSL = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["XLXSBJDMX_BJSL"].ToString().Trim(), 0); double dTZQCPBJ = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["XLXSBJDMX_TZQCPBJ"].ToString().Trim(), 0); double dCPJJ = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["XLXSBJDMX_JGBBJ"].ToString().Trim(), 0); double dCLCB = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["XLXSBJDMX_CLCB"].ToString().Trim(), 0); double dBJDHQCLCB = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["XLXSBJDMX_BJDHQCLCB"].ToString().Trim(), 0); if (dBJSL != 0) { double dBJJE = 0; if (sLJJCLLX.Trim().Equals("1"))//1|(调整后报价金额-价格表行情料价金额)/调整后报价金额*100 { //double dCLCB = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_CLCB"].ToString().Trim(), 0); if (dCLCBLRL != 100) dBJJE = NumberUtils.RoundX(dBJSL * dCLCB / (1 - dCLCBLRL / 100), 2); } else if (sLJJCLLX.Trim().Equals("2"))//2|(调整后报价金额-报价单行情料价金额)/调整后报价金额*100 { //double dBJDHQCLCB = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJDHQCLCB"].ToString().Trim(), 0); if (dCLCBLRL != 0) dBJJE = NumberUtils.RoundX(dBJSL * dBJDHQCLCB / (1 - dCLCBLRL / 100), 2); } else if (sLJJCLLX.Trim().Equals("3"))//3|(调整后报价金额-报价单行情料价金额)/报价单行情料价金额*100 { //double dBJDHQCLCB = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJDHQCLCB"].ToString().Trim(), 0); dBJJE = NumberUtils.RoundX(dBJSL * dBJDHQCLCB * (1 + dCLCBLRL / 100), 2); } else if (sLJJCLLX.Trim().Equals("4"))//4|(报价单行情料价金额)/调整后报价金额*100 { //double dBJDHQCLCB = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJDHQCLCB"].ToString().Trim(), 0); if (dCLCBLRL != 0) dBJJE = NumberUtils.RoundX(dBJSL * dBJDHQCLCB / (dCLCBLRL / 100), 2); } double dTZQBJJE = dBJJE - dTZJE; double dCPBJ = dTZQBJJE / dBJSL; double dTZJG = 0; if (dTZQCPBJ != 0) dTZJG = 100 * (dCPBJ - dTZQCPBJ) / dTZQCPBJ; //重算表价价差率 double dLRE = 0; if (sJCLLX.Trim().Equals("1"))//表价价差率公式 dLRE = dBJJE - NumberUtils.RoundX(dCPJJ * dBJSL, 2); else if (sJCLLX.Trim().Equals("2")) dLRE = NumberUtils.RoundX(dCPJJ * dBJSL, 2) - dBJJE; else if (sJCLLX.Trim().Equals("4")) dLRE = dBJJE - NumberUtils.RoundX(dCPJJ * dBJSL, 2); //表价价差率公式 //表价金额 double dCPJE = NumberUtils.RoundX(dCPJJ * dBJSL, 2); double dLRL = 0.0; if (sJCLLX.Trim().Equals("1")) { if (dBJJE != 0) dLRL = NumberUtils.RoundX(dLRE * 100 / dBJJE, 2); } else if (sJCLLX.Trim().Equals("2")) { if (dCPJE != 0) dLRL = NumberUtils.RoundX(dLRE * 100 / dCPJE, 2); } else if (sJCLLX.Trim().Equals("3")) { if (dBJJE != 0) dLRL = NumberUtils.RoundX(dCPJE * 100 / dBJJE, 2); } else if (sJCLLX.Trim().Equals("4")) { if (dCPJE != 0) dLRL = NumberUtils.RoundX(dLRE * 100 / dCPJE, 2); } txtCPBJ.Value = dCPBJ.ToString().Trim(); txtLRL.Value = dLRL.ToString().Trim(); txtTZJG.Value = dTZJG.ToString().Trim(); txtTZQBJJE.Value = dTZQBJJE.ToString().Trim(); txtBJJE.Value = dBJJE.ToString().Trim(); txtLRE.Value = dLRE.ToString().Trim(); txtBDBZ.Value = "2"; } } } else if (flag.Equals("GLTZLRL")) { txtLRL.Value = txtTZ.Value.ToString().Trim(); if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0) { //LRL----这里程序做了制约:不变调整金额,变调整报价(%) double dLRL = CMISproConvert.StrToFloat(txtLRL.Value.Trim()); double dTZJE = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["XLXSBJDMX_TZBJJE"].ToString().Trim(), 0); double dBJSL = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["XLXSBJDMX_BJSL"].ToString().Trim(), 0); double dTZQCPBJ = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["XLXSBJDMX_TZQCPBJ"].ToString().Trim(), 0); double dCPJJ = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["XLXSBJDMX_JGBBJ"].ToString().Trim(), 0); double dCLCB = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["XLXSBJDMX_CLCB"].ToString().Trim(), 0); double dBJDHQCLCB = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["XLXSBJDMX_BJDHQCLCB"].ToString().Trim(), 0); if (dBJSL != 0) { //表价价差率公式 double dBJJE = 0; double dLRE = 0; if (sJCLLX.Trim().Equals("1"))//1|(调整后报价金额-表价金额)/调整后报价金额*100 { if (dLRL != 100) dBJJE = NumberUtils.RoundX(dBJSL * dCPJJ / (1 - dLRL / 100), 2); dLRE = NumberUtils.RoundX(dLRL * dBJJE /100, 2); } else if (sJCLLX.Trim().Equals("2"))//2|(表价金额-调整后报价金额)/表价金额*100 { if (dLRL != 100) dBJJE = NumberUtils.RoundX(dBJSL * dCPJJ * (1 - dLRL / 100), 2); dLRE = NumberUtils.RoundX(dLRL * dBJSL * dCPJJ /100, 2); } else if (sJCLLX.Trim().Equals("3"))//3|表价金额/调整后报价金额*100 { if (dLRL != 0) dBJJE = NumberUtils.RoundX(dBJSL * dCPJJ / (dLRL / 100), 2); dLRE = 0; } else if (sJCLLX.Trim().Equals("4"))//4|(调整后报价金额-表价金额)/表价金额*100 { if (dLRL != 100) dBJJE = NumberUtils.RoundX(dBJSL * dCPJJ * (1 + dLRL / 100), 2); dLRE = NumberUtils.RoundX(dLRL * dBJSL * dCPJJ / 100, 2); } double dTZQBJJE = dBJJE - dTZJE; double dCPBJ = dTZQBJJE / dBJSL; double dTZJG = 0; if (dTZQCPBJ != 0) dTZJG = 100 * (dCPBJ - dTZQCPBJ) / dTZQCPBJ; //重算料价价差率 double dCLCBLRL = 0.0; if (sLJJCLLX.Trim().Equals("1")) { double dCLCBLRE = dBJJE - NumberUtils.RoundX(dCLCB * dBJSL, 2); if (dBJJE != 0) dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); } else if (sLJJCLLX.Trim().Equals("2")) { double dCLCBLRE = dBJJE - NumberUtils.RoundX(dBJDHQCLCB * dBJSL, 2); if (dBJJE != 0) dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); } else if (sLJJCLLX.Trim().Equals("3")) { double dCLCBLRE = dBJJE - NumberUtils.RoundX(dBJDHQCLCB * dBJSL, 2); if (dBJDHQCLCB * dBJSL != 0) dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / (dBJDHQCLCB * dBJSL), 2); } else if (sLJJCLLX.Trim().Equals("4")) { double dCLCBLRE = NumberUtils.RoundX(dBJDHQCLCB * dBJSL, 2); if (dBJJE != 0) dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); } txtCPBJ.Value = dCPBJ.ToString().Trim(); txtCLCBLRL.Value = dCLCBLRL.ToString().Trim(); txtTZJG.Value = dTZJG.ToString().Trim(); txtTZQBJJE.Value = dTZQBJJE.ToString().Trim(); txtBJJE.Value = dBJJE.ToString().Trim(); txtLRE.Value = dLRE.ToString().Trim(); txtBDBZ.Value = "3"; } } } } protected void btnQR_Click(object sender, EventArgs e) { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); if (!txtBDBZ.Value.ToString().Trim().Equals("")) { try { dberp.BeginTrans(); SQL.Clear(); SQL.Add(" update XLXSBJDBDMX set "); SQL.Add(" XLXSBJDBDMX_BDBZ=:XLXSBJDBDMX_BDBZ, "); SQL.Add(" XLXSBJDBDMX_BDBJDID=' ', "); SQL.Add(" XLXSBJDBDMX_BDXH=0 "); SQL.Add(" where XLXSBJDBDMX_BJDID=:XLXSBJDMX_BJDID "); SQL.Add(" and XLXSBJDBDMX_XH=:XLXSBJDMX_XH "); SQL.ParamByName("XLXSBJDBDMX_BDBZ").Value = txtBDBZ.Value.Trim(); SQL.ParamByName("XLXSBJDMX_BJDID").Value = sBJDID; SQL.ParamByName("XLXSBJDMX_XH").Value = sBJDXH; dberp.ExecSQL(SQL); SQL.Clear(); SQL.Add(" update XLXSBJDMX set XLXSBJDMX_TZCPBJ=:XLXSBJDMX_TZCPBJ, XLXSBJDMX_TZQBJJE =:XLXSBJDMX_TZQBJJE, "); SQL.Add(" XLXSBJDMX_BJJE=:XLXSBJDMX_BJJE, XLXSBJDMX_JGBBJJCL =:XLXSBJDMX_JGBBJJCL, "); SQL.Add(" XLXSBJDMX_JGBBJJCE=:XLXSBJDMX_JGBBJJCE, XLXSBJDMX_CLCBJCL =:XLXSBJDMX_CLCBJCL,XLXSBJDMX_CPBJ=:XLXSBJDMX_CPBJ "); SQL.Add(" where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID and XLXSBJDMX_XH=:XLXSBJDMX_XH "); SQL.ParamByName("XLXSBJDMX_BJDID").Value = sBJDID; SQL.ParamByName("XLXSBJDMX_XH").Value = sBJDXH; SQL.ParamByName("XLXSBJDMX_TZCPBJ").Value = txtTZJG.Value; SQL.ParamByName("XLXSBJDMX_TZQBJJE").Value = txtTZQBJJE.Value; SQL.ParamByName("XLXSBJDMX_BJJE").Value = txtBJJE.Value; SQL.ParamByName("XLXSBJDMX_JGBBJJCL").Value = txtLRL.Value; SQL.ParamByName("XLXSBJDMX_JGBBJJCE").Value = txtLRE.Value; SQL.ParamByName("XLXSBJDMX_CLCBJCL").Value = txtCLCBLRL.Value; SQL.ParamByName("XLXSBJDMX_CPBJ").Value = txtCPBJ.Value; dberp.ExecSQL(SQL); dberp.CommitTrans(); } catch (Exception ex) { ShowMessage("设置价格出错,请联系系统管理员!错误原因:" + ex); dberp.RollbackTrans(); return; } DialogOperationScript dos = new DialogOperationScript(this); dos.ClickOwnerButton(PageParam.GetRTrimString("RefreshCtrlID")); dos.CloseSelf(); dos.Execute(); } else { DialogOperationScript dos = new DialogOperationScript(this); dos.ClickOwnerButton(PageParam.GetRTrimString("RefreshCtrlID")); dos.CloseSelf(); dos.Execute(); } } protected void btnQX_Click(object sender, EventArgs e) { CloseWindow(); } #endregion } }