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 System.Collections.Generic; namespace GThinking.U20261363_N_XLXSBJ { [TableMap(DB = "DBERP", DbTableName = "XLXSBJD", Umid = 100860174, IsWorkFlow = false, IsAttach = false, UseWhr = false, QuerySelSql = "")] public class XLBJD_ZJE : EntityManager { } public partial class XLBJD_ZJEInfo : SingleCardBase { XLBJD_ZJE entity = new XLBJD_ZJE(); public static int iXSWS = 5; protected void Page_Load(object sender, EventArgs e) { this.UMID = 100860174; 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(100860000, "BJU002")) ? 5 : CMISproConvert.StrToInt(GetOption(100860000, "BJU002")); if (iXSWS < 0) iXSWS = 0; else if (iXSWS > 8) iXSWS = 8; base.InitPage(); if (!IsPostBack) { InitControl(); } } #region 模板继承事件 #endregion #region 自定义函数 private void InitControl() { string sZJE = PageParam.GetRTrimString("ZJE"); string sYSFY = PageParam.GetRTrimString("YSFY"); txtZJE.Value = CMISproConvert.StrToFloat(sZJE); txtTZHZJE.Value = 0; // txtYSFY.Value = CMISproConvert.StrToFloat(sYSFY); //含运费 if (PageParam.GetRTrimString("BJHYF").Equals("Y")) { lblYF.Style["display"] = "block"; txtYSFY.Style["display"] = "block"; lblZJE.Text = "报价产品总金额:"; lblTZHZJE.Text = "调整后报价产品总金额:"; //含运费先减去 //此处存在调整分类的问题 txtZJE.Value = CMISproConvert.StrToFloat(sZJE) - CMISproConvert.StrToFloat(sYSFY); } else { lblYF.Style["display"] = "none"; txtYSFY.Style["display"] = "none"; lblZJE.Text = "当前报价总金额:"; lblTZHZJE.Text = "调整后报价总金额:"; } if (PageParam.GetRTrimString("GXMX").Equals("Y")) { chkAGXMXFT.Checked = true; chkAGXMXFT.Visible = true; } else { chkAGXMXFT.Checked = false; chkAGXMXFT.Visible = false; } if (XLBJDUtils.GetXLXSBJPZXX(100860000).XLXSBJPZ_PFBJRBJ == "Y") { txtPFZJE.Visible = true; lblPFZJE.Visible = true; TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Clear(); SQL.Add("select XLXSBJD_PJZJE from XLXSBJD where XLXSBJD_BJDID=:pBJDID "); SQL.ParamByName("pBJDID").Value = PageParam.GetRTrimString("BJDID"); DataSet ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count > 0) { txtPFZJE.Value = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0][0].ToString(), 0); } } else { txtPFZJE.Visible = false; lblPFZJE.Visible = false; } } #endregion #region 控件事件 protected void txtTZHZJE_OnTextChanged(object sender, EventArgs e) { txtTZJE.Value = txtTZHZJE.Value - txtZJE.Value; } protected void btnQR_Click(object sender, EventArgs e) { if (XLBJDUtils.GetXLXSBJPZXX(100860000).XLXSBJPZ_PFBJRBJ == "Y") { if (txtTZHZJE.Value <= txtPFZJE.Value) { ShowMessage("调整后报价总金额--不允许小于等于盘费总金额!"); return; } } else { txtPFZJE.Value = 0; if (txtTZHZJE.Value <= 0) { ShowMessage("调整后报价总金额--不允许小于等于0!"); return; } } //所有勾选项 string sBJDXHList = PageParam.GetRTrimString("sBJDXHList"); //所有勾选项中锁定 string sBJDXHList_GX_SD = PageParam.GetRTrimString("sBJDXHList_GX_SD"); //所有勾选项中未锁定 string sBJDXHList_GX_WSD = PageParam.GetRTrimString("sBJDXHList_GX_WSD"); //所有记录= 勾选锁定+勾选未锁定 +没勾选锁定+没勾选未锁定 //只能调整勾选未锁定 string sBJDID = PageParam.GetRTrimString("BJDID"); string sJCLLX = PageParam.GetRTrimString("JCLLX"); string sLJJCLLX = PageParam.GetRTrimString("LJJCLLX"); string sCPMRXSWS = PageParam.GetRTrimString("CPBJMRXSWS"); string sCPBJBLXSWS = Math.Pow(10, -1 * CMISproConvert.StrToFloat(sCPMRXSWS)).ToString("F9"); TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); Dictionary dicLenJLDWTD = XLBJDUtils.GetLenJLDWTD(); DataSet ds; //本质上此处是获取不可动的金额 double fBJSDZJE = 0.0; //获取勾选锁定 double fBJZJE_GX_SD = 0.0; if (PageParam.GetRTrimString("GXMX").Equals("Y") && chkAGXMXFT.Checked) { SQL.Clear(); SQL.Add("select sum(XLXSBJDMX_BJJE)"); SQL.Add(" from XLXSBJDMX "); SQL.Add("where XLXSBJDMX_BJDID=:pBJDID"); SQL.Add(" and " + XLBJDUtils.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList_GX_SD)); SQL.ParamByName("pBJDID").Value = sBJDID; ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count > 0) { fBJZJE_GX_SD = NumberUtils.RoundX(CMISproConvert.StrToFloat(ds.Tables[0].Rows[0][0].ToString()), 2); } //获取未勾选记录 double fBJZJE_WGX = 0.0; SQL.Clear(); SQL.Add("select sum(XLXSBJDMX_BJJE)"); SQL.Add(" from XLXSBJDMX "); SQL.Add("where XLXSBJDMX_BJDID=:pBJDID"); SQL.Add(" and " + XLBJDUtils.GetWhereNotEqual("XLXSBJDMX_XH", sBJDXHList)); SQL.ParamByName("pBJDID").Value = sBJDID; ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count > 0) { fBJZJE_WGX = NumberUtils.RoundX(CMISproConvert.StrToFloat(ds.Tables[0].Rows[0][0].ToString()), 2); } fBJSDZJE = fBJZJE_GX_SD + fBJZJE_WGX; } else { SQL.Clear(); SQL.Add("select sum(XLXSBJDMX_BJJE)"); SQL.Add(" from XLXSBJDMX "); SQL.Add("where XLXSBJDMX_BJDID=:pBJDID"); SQL.Add(" and XLXSBJDMX_BJSDBZ='Y'"); SQL.ParamByName("pBJDID").Value = sBJDID; ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count > 0) { fBJSDZJE = NumberUtils.RoundX(CMISproConvert.StrToFloat(ds.Tables[0].Rows[0][0].ToString()), 2); } } if (fBJSDZJE > 0) { if (PageParam.GetRTrimString("BJHYF").Equals("Y")) { if (txtTZHZJE.Value - txtYSFY.Value - fBJSDZJE <= 0) { if (PageParam.GetRTrimString("GXMX").Equals("Y") && chkAGXMXFT.Checked) { ShowMessage(string.Format("调整后报价总金额--必须高于运费+已锁定报价的明细+未勾选明细总金额【{0}】!", txtYSFY.Value + fBJSDZJE)); return; } else { ShowMessage(string.Format("调整后报价总金额--必须高于运费+已锁定报价的明细总金额【{0}】!", txtYSFY.Value + fBJSDZJE)); return; } } } else { if (txtTZHZJE.Value - fBJSDZJE <= 0) { if (PageParam.GetRTrimString("GXMX").Equals("Y") && chkAGXMXFT.Checked) { ShowMessage(string.Format("调整后报价总金额--必须高于已锁定报价的明细+未勾选明细总金额【{0}】!", fBJSDZJE)); return; } else { ShowMessage(string.Format("调整后报价总金额--必须高于已锁定报价的明细总金额【{0}】!", fBJSDZJE)); return; } } } } else { if (PageParam.GetRTrimString("BJHYF").Equals("Y")) { if (txtTZHZJE.Value - txtYSFY.Value <= 0) { if (PageParam.GetRTrimString("GXMX").Equals("Y") && chkAGXMXFT.Checked) { ShowMessage("调整后报价总金额--不允许小于运费+未勾选总金额!"); return; } else { ShowMessage("调整后报价总金额--不允许小于运费!"); return; } } } } //提示 Confirm.ShowBtnText = TConfirm.cBtnText.Yes_No; string sMSG = ""; if (PageParam.GetRTrimString("GXMX").Equals("Y") && chkAGXMXFT.Checked) { sMSG = "将按勾选明细报价金额的比例分摊调整金额,是否继续?"; } else { sMSG = "将按明细报价金额的比例分摊调整金额,是否继续?"; } 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(); } try { txtTZHZJE.Value -= txtPFZJE.Value; txtZJE.Value -= txtPFZJE.Value; if (txtZJE.Value != 0) { dberp.BeginTrans(); SQL.Clear(); SQL.Add("merge into XLXSBJDMX tag "); SQL.Add(" using "); SQL.Add(" ( "); SQL.Add(" select CASE WHEN (XLXSBJD_ZJE-:pBJSDZJE-:pYSFY-:pPJJE) <=0 THEN 0 ELSE RoundFix(RoundFix(XLXSBJDMX_BJJE/(XLXSBJD_ZJE-:pBJSDZJE-:pYSFY-:pPJJE),16) * (:pTZHZJE-:pBJSDZJE),2) END as BJJE,XLXSBJDMX_BJDID,XLXSBJDMX_XH from XLXSBJDMX "); SQL.Add(" left join XLXSBJD on XLXSBJD_BJDID=XLXSBJDMX_BJDID where XLXSBJDMX_BJDID=:pBJDID and XLXSBJDMX_BJSL<>0 and XLXSBJDMX_BJSDBZ<>'Y' "); if (PageParam.GetRTrimString("GXMX").Equals("Y") && chkAGXMXFT.Checked) { SQL.Add(" and " + XLBJDUtils.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList)); } SQL.Add(" ) sor "); SQL.Add("on (tag.XLXSBJDMX_BJDID = sor.XLXSBJDMX_BJDID"); SQL.Add("and tag.XLXSBJDMX_XH = sor.XLXSBJDMX_XH"); SQL.Add("and tag.XLXSBJDMX_BJDID = :pBJDID"); SQL.Add("and tag.XLXSBJDMX_BJSL <> 0"); SQL.Add("and isnull(tag.XLXSBJDMX_BJSDBZ,' ')<>'Y'"); if (PageParam.GetRTrimString("GXMX").Equals("Y") && chkAGXMXFT.Checked) { SQL.Add(" and " + XLBJDUtils.GetWhereEqual("tag.XLXSBJDMX_XH", sBJDXHList)); } SQL.Add(")"); SQL.Add(" when matched then update set tag.XLXSBJDMX_BJJE = sor.BJJE, tag.XLXSBJDMX_BJTJCZ = 'BJZJETZ' "); SQL.ParamByName("pBJDID").Value = sBJDID; SQL.ParamByName("pTZHZJE").Value = txtTZHZJE.Value; SQL.ParamByName("pBJSDZJE").Value = fBJSDZJE; if (PageParam.GetRTrimString("BJHYF").Equals("Y")) { SQL.ParamByName("pYSFY").Value = txtYSFY.Value; } else { SQL.ParamByName("pYSFY").Value = 0; } if (XLBJDUtils.GetXLXSBJPZXX(100860000).XLXSBJPZ_PFBJRBJ == "Y") { SQL.ParamByName("pPJJE").Value = txtPFZJE.Value; } else { SQL.ParamByName("pPJJE").Value = 0; } dberp.ExecSQL(SQL); //XLXSBJDMX_TZQBJJE(2)- XLXSBJDMX_TZBJJE(2)- XLXSBJDMX_BJJE(2) 第一次计算报价金额 SQL.Clear(); SQL.Add("update XLXSBJDMX set XLXSBJDMX_TZQBJJE = XLXSBJDMX_BJJE -XLXSBJDMX_TZBJJE "); SQL.Add(" WHERE XLXSBJDMX.XLXSBJDMX_BJDID = :pBJDID AND XLXSBJDMX_BJSL <> 0 "); SQL.Add(" and XLXSBJDMX_BJSDBZ<>'Y'"); if (PageParam.GetRTrimString("GXMX").Equals("Y") && chkAGXMXFT.Checked) { SQL.Add(" and " + XLBJDUtils.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList)); } SQL.ParamByName("pBJDID").Value = sBJDID; dberp.ExecSQL(SQL); //XLXSBJDMX_CPBJ--XLXSBJDMX_TZQBJJE 计算产品的产品报价 SQL.Clear(); SQL.Add("merge into XLXSBJDMX tag "); SQL.Add(" using ( "); SQL.Add(" select XLXSBJDMX_TZQBJJE,XLXSBJDMX_BJDID,XLXSBJDMX_XH from XLXSBJDMX "); SQL.Add(" left join XLXSBJD on XLXSBJD_BJDID = XLXSBJDMX_BJDID where XLXSBJDMX_BJDID = :pBJDID "); if (PageParam.GetRTrimString("GXMX").Equals("Y") && chkAGXMXFT.Checked) { SQL.Add(" and " + XLBJDUtils.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList)); } SQL.Add(" ) sor "); SQL.Add(" on( tag.XLXSBJDMX_BJDID = sor.XLXSBJDMX_BJDID AND tag.XLXSBJDMX_XH=sor.XLXSBJDMX_XH "); SQL.Add(" AND tag.XLXSBJDMX_BJDID = :pBJDID AND tag.XLXSBJDMX_BJSL <> 0 "); SQL.Add(" and isnull(tag.XLXSBJDMX_BJSDBZ,' ')<>'Y' "); if (PageParam.GetRTrimString("GXMX").Equals("Y") && chkAGXMXFT.Checked) { SQL.Add(" and " + XLBJDUtils.GetWhereEqual("tag.XLXSBJDMX_XH", sBJDXHList)); } SQL.Add(string.Format(" ) when matched then update set tag.XLXSBJDMX_CPBJ = RoundFix((sor.XLXSBJDMX_TZQBJJE/tag.XLXSBJDMX_BJSL)/{0},0)*{0} ", sCPBJBLXSWS)); SQL.ParamByName("pBJDID").Value = sBJDID; dberp.ExecSQL(SQL); //计算产品报价金额 SQL.Clear(); SQL.Add("merge into XLXSBJDMX tag "); SQL.Add(" using ( "); SQL.Add(" select XLXSBJDMX_CPBJ,XLXSBJDMX_BJDID,XLXSBJDMX_XH from XLXSBJDMX "); SQL.Add(" left join XLXSBJD on XLXSBJD_BJDID = XLXSBJDMX_BJDID where XLXSBJDMX_BJDID = :pBJDID "); if (PageParam.GetRTrimString("GXMX").Equals("Y") && chkAGXMXFT.Checked) { SQL.Add(" and " + XLBJDUtils.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList)); } SQL.Add(" ) sor "); SQL.Add(" on( tag.XLXSBJDMX_BJDID = sor.XLXSBJDMX_BJDID AND tag.XLXSBJDMX_XH=sor.XLXSBJDMX_XH "); SQL.Add(" AND tag.XLXSBJDMX_BJDID = :pBJDID AND tag.XLXSBJDMX_BJSL <> 0 "); SQL.Add(" and isnull(tag.XLXSBJDMX_BJSDBZ,' ')<>'Y'"); if (PageParam.GetRTrimString("GXMX").Equals("Y") && chkAGXMXFT.Checked) { SQL.Add(" and " + XLBJDUtils.GetWhereEqual("tag.XLXSBJDMX_XH", sBJDXHList)); } SQL.Add(") when matched then update set tag.XLXSBJDMX_TZQBJJE = RoundFix(sor.XLXSBJDMX_CPBJ*tag.XLXSBJDMX_BJSL,2) "); SQL.ParamByName("pBJDID").Value = sBJDID; dberp.ExecSQL(SQL); //XLXSBJDMX_TZQBJJE+XLXSBJDMX_TZBJJE SQL.Clear(); SQL.Add("update XLXSBJDMX set XLXSBJDMX_BJJE = XLXSBJDMX_TZQBJJE + XLXSBJDMX_TZBJJE "); SQL.Add(" WHERE XLXSBJDMX.XLXSBJDMX_BJDID = :pBJDID AND XLXSBJDMX_BJSL <> 0 "); SQL.Add(" and XLXSBJDMX_BJSDBZ<>'Y'"); if (PageParam.GetRTrimString("GXMX").Equals("Y") && chkAGXMXFT.Checked) { SQL.Add(" and " + XLBJDUtils.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList)); } SQL.ParamByName("pBJDID").Value = sBJDID; dberp.ExecSQL(SQL); //改报价 SQL.Clear(); SQL.Add(" update XLXSBJDMX set "); //SQL.Add(" XLXSBJDMX_CPBJ=a.CPBJ, "); SQL.Add(" XLXSBJDMX_TZCPBJ=case when XLXSBJDMX_TZQCPBJ=0 then 0 else 100*RoundFix((XLXSBJDMX_CPBJ-XLXSBJDMX_TZQCPBJ)/XLXSBJDMX_TZQCPBJ, 6) end,"); //SQL.Add(" XLXSBJDMX_TZQBJJE=RoundFix(XLXSBJDMX_CPBJ*XLXSBJDMX_BJSL,2),"); //SQL.Add(" XLXSBJDMX_BJJE=" + sqlBJJE + ","); if (sJCLLX.Equals("1"))//表价价差率公式 { SQL.Add("XLXSBJDMX_JGBBJJCL =case when XLXSBJDMX_BJJE=0.0 then 0.0 else RoundFix(100*(XLXSBJDMX_BJJE-XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL)/XLXSBJDMX_BJJE,2) end,"); SQL.Add("XLXSBJDMX_JGBBJJCE =RoundFix(XLXSBJDMX_BJJE-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-XLXSBJDMX_BJJE)/(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL),2) end,"); SQL.Add("XLXSBJDMX_JGBBJJCE =RoundFix(RoundFix(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL,2)-XLXSBJDMX_BJJE," + iXSWS + "), "); } else if (sJCLLX.Equals("3")) { SQL.Add("XLXSBJDMX_JGBBJJCL =case when XLXSBJDMX_BJJE=0.0 then 0.0 else RoundFix(100*(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL)/XLXSBJDMX_BJJE,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*(XLXSBJDMX_BJJE-XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL)/(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL),2) end,"); SQL.Add("XLXSBJDMX_JGBBJJCE =RoundFix(XLXSBJDMX_BJJE-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 XLXSBJDMX_BJJE=0.0 then 0.0 else RoundFix(100*(XLXSBJDMX_BJJE-XLXSBJDMX_CLCB*XLXSBJDMX_BJSL)/(XLXSBJDMX_BJJE),2) end"); } else if (sLJJCLLX.Equals("2")) { SQL.Add("XLXSBJDMX_CLCBJCL =case when XLXSBJDMX_BJJE=0.0 then 0.0 else RoundFix(100*(XLXSBJDMX_BJJE-XLXSBJDMX_BJDHQCLCB*XLXSBJDMX_BJSL)/(XLXSBJDMX_BJJE),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*(XLXSBJDMX_BJJE-XLXSBJDMX_BJDHQCLCB*XLXSBJDMX_BJSL)/(XLXSBJDMX_BJDHQCLCB*XLXSBJDMX_BJSL),2) end"); } else if (sLJJCLLX.Equals("4")) { SQL.Add("XLXSBJDMX_CLCBJCL =case when XLXSBJDMX_BJJE=0.0 then 0.0 else RoundFix(100*(XLXSBJDMX_BJDHQCLCB*XLXSBJDMX_BJSL)/(XLXSBJDMX_BJJE),2) end"); } else { SQL.Add("XLXSBJDMX_CLCBJCL=0"); } SQL.Add(" where XLXSBJDMX_BJDID=:pBJDID "); SQL.Add(" and XLXSBJDMX_BJSL <> 0 "); SQL.Add(" and XLXSBJDMX_BJSDBZ<>'Y'"); if (PageParam.GetRTrimString("GXMX").Equals("Y") && chkAGXMXFT.Checked) { SQL.Add(" and " + XLBJDUtils.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList)); } SQL.ParamByName("pBJDID").Value = sBJDID; string SS = SQL.Text; dberp.ExecSQL(SQL); dberp.CommitTrans(); } DialogOperationScript dos = new DialogOperationScript(this); dos.ClickOwnerButton(PageParam.GetRTrimString("btnRefresh1")); dos.CloseSelf(); dos.Execute(); } catch (Exception ex) { ShowMessage("调整报价总金额出现异常,请联系系统管理员!错误原因:" + ex); dberp.RollbackTrans(); } } protected void btnQX_Click(object sender, EventArgs e) { CloseWindow(); } #endregion } }