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; namespace GThinking.N_XLXSBJ { [TableMap(DB = "DBERP", DbTableName = "XLXSTZYZ", Umid = 100860000, IsWorkFlow = false)] public class XLBJD_BJSSWR : EntityManager { } public partial class XLBJD_BJSSWRInfo : SingleCardBase { XLBJD_BJSSWR entity = new XLBJD_BJSSWR(); public static int iXSWS = 5; 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; iXSWS = string.IsNullOrEmpty(GetOption("BJU002")) ? 5 : CMISproConvert.StrToInt(GetOption("BJU002")); if (iXSWS < 0) { iXSWS = 0; } else if (iXSWS > 8) { iXSWS = 8; } base.InitPage(); if (!IsPostBack) { InitControl(); } } #region 模板继承事件 #endregion #region 自定义函数 private void InitControl() { string sCPBJMRXSWS = PageParam.GetRTrimString("CPBJMRXSWS"); sptXSWS.Max = iXSWS; if (iXSWS >= CMISproConvert.StrToInt(sCPBJMRXSWS)) { sptXSWS.Text = sCPBJMRXSWS; } } #endregion #region 控件事件 protected void btnQR_Click(object sender, EventArgs e) { string sBJDID = PageParam.GetRTrimString("BJDID"); string sJCLLX = PageParam.GetRTrimString("JCLLX"); string sLJJCLLX = PageParam.GetRTrimString("LJJCLLX"); string sBJLJJCLLX = PageParam.GetRTrimString("BJLJJCLLX"); string sCPBJMRXSWS = sptXSWS.Text; string sMsg = ""; sMsg = "即将把明细报价四舍五入为" + sCPBJMRXSWS + "位小数,是否继续?"; //提示 Confirm.ShowBtnText = TConfirm.cBtnText.Yes_No; Confirm.Register("IsQD", sMsg); Confirm.ShowBtnText = TConfirm.cBtnText.Yes_No; if (Confirm.GetValue("IsQD").Trim().Equals("")) { Confirm.Ask("IsQD"); return; } else if (Confirm.GetValue("IsQD").Trim().Equals("N")) { Confirm.Clear(); return; } else if (Confirm.GetValue("IsQD").Trim().Equals("Y")) { Confirm.Clear(); } TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); try { dberp.BeginTrans(); SQL.Clear(); //直接修改报价-包括数量为0 string sCPBJBLXSWS = Math.Pow(10, -1 * CMISproConvert.StrToFloat(sCPBJMRXSWS)).ToString("F9"); string sqlBJJE = string.Format("RoundFix(RoundFix(XLXSBJDMX_CPBJ/{0},0)*{0}*XLXSBJDMX_BJSL+XLXSBJDMX_TZBJJE,2)", sCPBJBLXSWS); SQL.Clear(); SQL.Add(" update XLXSBJDMX set "); SQL.Add(string.Format(" XLXSBJDMX_CPBJ=RoundFix(XLXSBJDMX_CPBJ/{0},0)*{0}, ", sCPBJBLXSWS)); SQL.Add(string.Format(" XLXSBJDMX_TZCPBJ=RoundFix(case when XLXSBJDMX_TZQCPBJ=0 then 0 else 100*(RoundFix(XLXSBJDMX_CPBJ/{0},0)*{0}-XLXSBJDMX_TZQCPBJ)/XLXSBJDMX_TZQCPBJ end,15),", sCPBJBLXSWS)); SQL.Add(string.Format(" XLXSBJDMX_TZQBJJE=RoundFix(RoundFix(XLXSBJDMX_CPBJ/{0},0)*{0}*XLXSBJDMX_BJSL,2),", sCPBJBLXSWS)); SQL.Add(" XLXSBJDMX_BJJE=" + sqlBJJE + ","); if (sJCLLX.Equals("1"))//表价价差率公式 { SQL.Add("XLXSBJDMX_JGBBJJCL =case when " + sqlBJJE + "=0.0 then 0.0 else RoundFix(100*(" + sqlBJJE + "-XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL)/(" + sqlBJJE + "),2) end,"); SQL.Add("XLXSBJDMX_JGBBJJCE =RoundFix(" + sqlBJJE + "-RoundFix(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL,2)," + iXSWS + "), "); } else if (sJCLLX.Equals("2")) { SQL.Add("XLXSBJDMX_JGBBJJCL =case when XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL=0.0 then 0.0 else RoundFix(100*(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL-" + sqlBJJE + ")/(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL),2) end,"); SQL.Add("XLXSBJDMX_JGBBJJCE =RoundFix(RoundFix(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL,2)-" + sqlBJJE + "," + iXSWS + "), "); } else if (sJCLLX.Equals("3")) { SQL.Add("XLXSBJDMX_JGBBJJCL =case when " + sqlBJJE + "=0.0 then 0.0 else RoundFix(100*(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL)/(" + sqlBJJE + "),2) end,"); SQL.Add("XLXSBJDMX_JGBBJJCE =0, "); } else if (sJCLLX.Equals("4")) { SQL.Add("XLXSBJDMX_JGBBJJCL =case when XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL=0.0 then 0.0 else RoundFix(100*(" + sqlBJJE + " - XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL)/(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL),2) end,"); SQL.Add("XLXSBJDMX_JGBBJJCE =RoundFix(" + sqlBJJE + " - RoundFix(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL,2)," + iXSWS + "), "); } else { SQL.Add("XLXSBJDMX_JGBBJJCL=0,"); SQL.Add("XLXSBJDMX_JGBBJJCE=0,"); } if (sLJJCLLX.Equals("1"))//料价价差率公式 { SQL.Add("XLXSBJDMX_CLCBJCL =case when " + sqlBJJE + "=0.0 then 0.0 else RoundFix(100*(" + sqlBJJE + "-XLXSBJDMX_CLCB*XLXSBJDMX_BJSL)/(" + sqlBJJE + "),2) end"); } else if (sLJJCLLX.Equals("2")) { SQL.Add("XLXSBJDMX_CLCBJCL =case when " + sqlBJJE + "=0.0 then 0.0 else RoundFix(100*(" + sqlBJJE + "-XLXSBJDMX_BJDHQCLCB*XLXSBJDMX_BJSL)/(" + sqlBJJE + "),2) end"); } else if (sLJJCLLX.Equals("3")) { SQL.Add("XLXSBJDMX_CLCBJCL =case when XLXSBJDMX_BJDHQCLCB*XLXSBJDMX_BJSL=0.0 then 0.0 else RoundFix(100*(" + sqlBJJE + "-XLXSBJDMX_BJDHQCLCB*XLXSBJDMX_BJSL)/(XLXSBJDMX_BJDHQCLCB*XLXSBJDMX_BJSL),2) end"); } else if (sLJJCLLX.Equals("4")) { SQL.Add("XLXSBJDMX_CLCBJCL =case when " + sqlBJJE + "=0.0 then 0.0 else RoundFix(100*(XLXSBJDMX_BJDHQCLCB*XLXSBJDMX_BJSL)/(" + sqlBJJE + "),2) end"); } else { SQL.Add("XLXSBJDMX_CLCBJCL=0"); } if (sBJLJJCLLX.Equals("1"))//表价料价价差率公式 { SQL.Add(",XLXSBJDMX_JGBBJLJJCL =case XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ when 0 then 0 else RoundFix((XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ - XLXSBJDMX_BJSL*XLXSBJDMX_BJDHQCLCB)/ (XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ) * 100,2) end "); } else { SQL.Add(",XLXSBJDMX_JGBBJLJJCL=0"); } SQL.Add(" ,XLXSBJDMX_BJTJCZ = 'BJSSWRJS'"); SQL.Add(" from XLXSBJDMX "); SQL.Add(" where XLXSBJDMX_BJDID=:pBJDID "); SQL.Add(" and XLXSBJDMX_BJSDBZ<>'Y'");//跳过报价锁定为Y的明细数据 SQL.ParamByName("pBJDID").Value = sBJDID; dberp.ExecSQL(SQL); dberp.CommitTrans(); DialogOperationScript dos = new DialogOperationScript(this); dos.ClickOwnerButton(PageParam.GetRTrimString("btnRefresh1")); dos.CloseSelf(); dos.Execute(); } catch (Exception ex) { ShowMessage("报价四舍五入到" + sCPBJMRXSWS + "位小数出现错误,请联系系统管理员!" + ex); dberp.RollbackTrans(); return; } } protected void btnQX_Click(object sender, EventArgs e) { CloseWindow(); } #endregion } }