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_MODEL.Page; using GThinking.N_MISPRO.Data; using GThinking.N_MISPRO; using GThinking.N_MISPRO.Utility; namespace GThinking.N_XLXSBJ { public partial class CXBJD_CFList : OperationBase { CXBJD_MXCF entity = new CXBJD_MXCF(); #region 页面事件 protected void Page_Load(object sender, EventArgs e) { this.UMID = 100860046; this.UMName = "线缆销售报价反馈"; this.CurMaster = Master; this.Tabs = Tab; this.PageWidth = 700; this.PageHeight = 500; AddListSetMap(new ListSet(pagSHD.ID, null, grdJSLM, entity, UPSHD)); if (!IsPostBack) { this.Master.PnlQuery.GroupingText = "拆分"; this.Master.PnlBill.GroupingText = "拆分"; this.Master.PnlQuery.Visible = false; Master.BtnQueryVisible = false; Master.BtnReportVisible = false; } base.InitPage(); if (!IsPostBack) { Master_OnQuery(); GridDataBind(); } } #endregion #region 模板继承事件 protected override void Master_OnQuery() { entity.BJDID = PageParam.GetRTrimString("BJDID"); entity.BJDXH = PageParam.GetRTrimString("BJDXH"); entity.XLXHID = PageParam.GetRTrimString("XLXHID"); entity.XLGGID = PageParam.GetRTrimString("XLGGID").Replace('*','×'); entity.XLBZID = PageParam.GetRTrimString("XLBZID"); entity.DYDJID = PageParam.GetRTrimString("DYDJID"); base.Master_OnQuery(); } protected override void GridDataBind() { base.GridDataBind(); } protected override bool Master_OnBeforeOK(object sender, EventArgs e) { return base.Master_OnBeforeOK(sender, e); } protected override bool DataLogicValid() { return base.DataLogicValid(); } protected override bool Master_OnOK() { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); dberp.BeginTrans(); try { TSQL tmpSQL = new TSQL(dberp); if (grdJSLM.NewRows.Count > 0) { for (int i = 0; i < grdJSLM.NewRows.Count; i++) { string sBJDID = PageParam.GetRTrimString("BJDID"); string sBJDXH = PageParam.GetRTrimString("BJDXH"); string sCFXH = grdJSLM.GetValueByFieldName("XLXSBJFKCFMX_CFXH", grdJSLM.NewRows[i]).ToString().Trim(); string sXLYSID = grdJSLM.GetValueByFieldName("XLXLB_XLYSID", grdJSLM.NewRows[i]).ToString().Trim(); string sWLID = grdJSLM.GetValueByFieldName("XLXLB_WLID", grdJSLM.NewRows[i]).ToString().Trim(); double sSL = CMISproConvert.StrToFloat(grdJSLM.GetValueByFieldName("CFSL", grdJSLM.NewRows[i]).ToString().Trim(), 0); DOCF(dberp, tmpSQL, sBJDID, sBJDXH, sCFXH, sXLYSID, sWLID,sSL); } } //使用脚本给父页面的隐藏控件赋值,调用父页面的控件事件 DialogOperationScript dos = new DialogOperationScript(this); ////dos.SetOwnerControlValue("ctl00_CPHForm_txtBJCLID", cbxBJCL.SelectedValue.Trim()); dos.ClickOwnerButton(PageParam.GetRTrimString("RefreshCtrlID")); ShowMessage("拆分成功!"); dos.CloseSelf(); dos.Execute(); dberp.CommitTrans(); } catch (Exception ex) { dberp.RollbackTrans(); ShowMessage(ex.Message); } return true; } protected override void Grid_RowDataBound(object sender, GridViewRowEventArgs e) { base.Grid_RowDataBound(sender, e); } #endregion #region 自定义函数 private void DOCF(TDatabase dberp, TSQL SQL,string sBJDID,string sBJDXH,string sCFXH,string sXLYSID,string sWLID,double sSL) { double dCPBJ = 0; SQL.Clear(); SQL.Add("select XLXSBJDMX_CPBJ from XLXSBJDMX where XLXSBJDMX_BJDID=:pBJDID AND XLXSBJDMX_XH=:pBJDXH "); SQL.ParamByName("pBJDID").Value = sBJDID; SQL.ParamByName("pBJDXH").Value = sBJDXH; DataSet ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count > 0) { dCPBJ = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["XLXSBJDMX_CPBJ"].ToString(),0); } SQL.Clear(); SQL.Add(" SELECT XLXSBJDMX_ZBSL - ISNULL(HJCFSL,0) AS CFSL FROM XLXSBJDMX "); SQL.Add(" LEFT JOIN (SELECT XLXSBJFKCFMX_BJDID,XLXSBJFKCFMX_BJDXH,SUM(XLXSBJFKCFMX_CFSL) AS HJCFSL FROM XLXSBJFKCFMX "); SQL.Add(" WHERE XLXSBJFKCFMX_BJDID=:pBJDID AND XLXSBJFKCFMX_BJDXH=:pBJDXH "); if (!sCFXH.Equals("") && !sCFXH.Equals("0")) { SQL.Add(" AND XLXSBJFKCFMX_CFXH <> :pCFXH "); SQL.ParamByName("pCFXH").Value = sCFXH; } SQL.Add(" GROUP BY XLXSBJFKCFMX_BJDID,XLXSBJFKCFMX_BJDXH) A "); SQL.Add(" ON XLXSBJFKCFMX_BJDID=XLXSBJDMX_BJDID AND XLXSBJFKCFMX_BJDXH=XLXSBJDMX_XH "); SQL.Add(" WHERE XLXSBJDMX_BJDID=:pBJDID AND XLXSBJDMX_XH=:pBJDXH "); SQL.ParamByName("pBJDID").Value = sBJDID; SQL.ParamByName("pBJDXH").Value = sBJDXH; ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count > 0) { if (CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["CFSL"].ToString()) < sSL) { throw new Exception("拆分数量总和超过中标数量,请调整拆分数量!"); } } if (sCFXH.Equals("") || sCFXH.Equals("0")) { if (sSL == 0) return; //新增 SQL.Clear(); SQL.Add(@" INSERT INTO XLXSBJFKCFMX ( XLXSBJFKCFMX_BJDID, XLXSBJFKCFMX_BJDXH, XLXSBJFKCFMX_CFXH, XLXSBJFKCFMX_XLYSID, XLXSBJFKCFMX_WLID, XLXSBJFKCFMX_CFSL, XLXSBJFKCFMX_ZBSL, XLXSBJFKCFMX_ZBJE, XLXSBJFKCFMX_WHR, XLXSBJFKCFMX_WHSJ, XLXSBJFKCFMX_WHRID ) VALUES ( :XLXSBJFKCFMX_BJDID, :XLXSBJFKCFMX_BJDXH, :XLXSBJFKCFMX_CFXH, :XLXSBJFKCFMX_XLYSID, :XLXSBJFKCFMX_WLID, :XLXSBJFKCFMX_CFSL, :XLXSBJFKCFMX_ZBSL, :XLXSBJFKCFMX_ZBJE, :XLXSBJFKCFMX_WHR, :XLXSBJFKCFMX_WHSJ, :XLXSBJFKCFMX_WHRID )"); int iXH = CMISproDataBase.GetMaxXH("DBERP", "XLXSBJFKCFMX", "XLXSBJFKCFMX_CFXH", string.Format("XLXSBJFKCFMX_BJDID ='{0}' AND XLXSBJFKCFMX_BJDXH ={1}", sBJDID, sBJDXH)) + 1; SQL.ParamByName("XLXSBJFKCFMX_BJDID").Value = sBJDID; SQL.ParamByName("XLXSBJFKCFMX_BJDXH").Value = sBJDXH; if (iXH == 1) iXH = iXH + CMISproConvert.StrToInt(sBJDXH) * 100; SQL.ParamByName("XLXSBJFKCFMX_CFXH").Value = iXH; SQL.ParamByName("XLXSBJFKCFMX_XLYSID").Value = sXLYSID; SQL.ParamByName("XLXSBJFKCFMX_WLID").Value = sWLID; SQL.ParamByName("XLXSBJFKCFMX_CFSL").Value = sSL; SQL.ParamByName("XLXSBJFKCFMX_ZBSL").Value = sSL; SQL.ParamByName("XLXSBJFKCFMX_ZBJE").Value = sSL * dCPBJ; SQL.ParamByName("XLXSBJFKCFMX_WHR").Value = CurSession.UserName; SQL.ParamByName("XLXSBJFKCFMX_WHSJ").Value = DateTime.Now; SQL.ParamByName("XLXSBJFKCFMX_WHRID").Value = CurSession.UserId; dberp.ExecSQL(SQL); } else { if (sSL == 0) { SQL.Clear(); SQL.Add("delete from XLXSBJFKCFMX where XLXSBJFKCFMX_BJDID=:pBJDID and XLXSBJFKCFMX_BJDXH=:pBJDXH and XLXSBJFKCFMX_CFXH=:pCFXH "); SQL.ParamByName("pBJDID").Value = sBJDID; SQL.ParamByName("pBJDXH").Value = sBJDXH; SQL.ParamByName("pCFXH").Value = sCFXH; } else { //修改 SQL.Clear(); SQL.Add(@" UPDATE XLXSBJFKCFMX SET XLXSBJFKCFMX_CFSL=:pCFSL ,XLXSBJFKCFMX_ZBSL=:pCFSL ,XLXSBJFKCFMX_ZBJE=:pZBJE where XLXSBJFKCFMX_BJDID=:pBJDID and XLXSBJFKCFMX_BJDXH=:pBJDXH and XLXSBJFKCFMX_CFXH=:pCFXH "); SQL.ParamByName("pBJDID").Value = sBJDID; SQL.ParamByName("pBJDXH").Value = sBJDXH; SQL.ParamByName("pCFXH").Value = sCFXH; SQL.ParamByName("pCFSL").Value = sSL; SQL.ParamByName("pZBJE").Value = sSL * dCPBJ; } dberp.ExecSQL(SQL); } } #endregion } }