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_CONTROL; using GThinking.N_PUBLIC; using GThinking.N_MISPRO.Caching; using GThinking.N_MISPRO.Utility; using System.Collections.Generic; using GThinking.N_MISPRO.TableCache; namespace GThinking.N_XLXSBJ { [TableMap(DB = "DBERP", DbTableName = "XLXSBJDQYFB", Umid = 100860071, IsWorkFlow = false)] public class BJYF_YJYZTJ : EntityManager { } public partial class BJYF_YJYZTJInfo : SingleCardBase { BJYF_YJYZTJ entity = new BJYF_YJYZTJ(); protected void Page_Load(object sender, EventArgs e) { this.UMID = 100860000; this.UMName = "线缆销售报价单运费"; base.CurMaster = Master; base.CurEntity = entity; this.PageHeight = 400; this.PageWidth = 500; 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(); if (!IsPostBack) { InitControl(); } } protected override void SetControlState() { base.SetControlState(); txtYFDJ.Enabled = false; txtJGBBJZJE.Enabled = false; chkWG.Enabled = false; chkFWG.Enabled = false; txtCLZZL.Enabled = false; txtPJZPZ.Enabled = false; if (CheckRight()) linkYJ.Enabled = true; else linkYJ.Enabled = false; } #region 自定义函数 private void InitControl() { string sBJU036 = GetOption(100860071, "BJU036"); txtYZZ.DecimalPlaces = CMISproConvert.StrToInt(sBJU036); lblYZID.Text = PageParam.GetRTrimString("YZMC") + ":"; string sMRTJFW = "," + PageParam.GetRTrimString("MRTJFW") + ","; if (sMRTJFW.Contains(",1,")) chkYBJ.Checked = true; if (sMRTJFW.Contains(",2,")) chkWG.Checked = true; if (sMRTJFW.Contains(",3,")) chkFWG.Checked = true; string sBJDID = PageParam.GetRTrimString("BJDID"); txtPFYZID.Value = GetPFYZID(sBJDID); if (txtPFYZID.Value.Equals(""))//未使用盘费因子 { trPJ.Style["display"] = "none"; lblPJZPZ.Visible = false; txtPJZPZ.Visible = false; lblPJZPZ_DW.Visible = false; } txtBZJD.Value = CMISproConvert.StrToFloat(GetOption(100860071, "BJU037")); XLXSBJPZXX pzxx = XLBJDUtils.GetXLXSBJPZXX(100860071); string sYFJSGS = pzxx.XLXSBJPZ_YFJSGS; TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL sql = new TSQL(dberp); sql.Add("select XLXSBJD_ZZL,XLXSBJD_XZQHID, "); if (sYFJSGS.Equals("2")) sql.Add("sum(XLXSBJDMX_BJSL*XLXSBJDMX_CPBJ) as JGBBJZJE,"); else if (sYFJSGS.Equals("3")) sql.Add("sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ) * " + XLBJDUtils.sCJXS + " as JGBBJZJE,"); else sql.Add("sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ) as JGBBJZJE,"); sql.Add(" sum(isnull(XLXSBJDMXFD_PJZPZ,0.0)) as PJZPZ"); sql.Add(" from XLXSBJD "); sql.Add(" left join XLXSBJDMX on XLXSBJDMX_BJDID=XLXSBJD_BJDID "); sql.Add(" left join XLXSBJDMXFD on XLXSBJDMXFD_BJDID=XLXSBJDMX_BJDID and XLXSBJDMXFD_BJDXH=XLXSBJDMX_XH"); sql.Add("where XLXSBJD_BJDID=:pBJDID "); sql.Add("group by XLXSBJD_ZZL,XLXSBJD_XZQHID"); sql.ParamByName("pBJDID").Value = sBJDID; DataSet ds = dberp.OpenDataSet(sql); if (ds.Tables[0].Rows.Count > 0) { double dYZZL = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["XLXSBJD_ZZL"].ToString()); txtCLZZL.Value = dYZZL / 1000.0;//转为吨 if (txtPFYZID.Value.Equals(""))//未使用盘费因子 { txtPJZPZ.Value = 0; } else { double dPJZPZ = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["PJZPZ"].ToString()); txtPJZPZ.Value = dPJZPZ / 1000.0;//转为吨 } txtZZL.Value = txtCLZZL.Value + txtPJZPZ.Value; txtXZQHID.Value = ds.Tables[0].Rows[0]["XLXSBJD_XZQHID"].ToString().Trim(); txtJGBBJZJE.Value = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["JGBBJZJE"].ToString()); lblOLDZZL.Text = "原值:" + txtZZL.Value.ToString("F6"); txtZZL_TextChanged(null, null); } string sJGBBJBM = string.IsNullOrEmpty(PageParam.GetRTrimString("JGBBJBM")) ? "表价" : PageParam.GetRTrimString("JGBBJBM"); chkYBJ.Text = "有" + sJGBBJBM; if (sYFJSGS.Equals("2")) { lblBJZJE.Text = "报价总金额:"; } else if (sYFJSGS.Equals("3")) { lblBJZJE.Text = "厂价总金额:"; } } /// /// 获取运费单价 和 运费计算公式 /// /// 项目所在地 /// 材料总重量(吨) /// public static Dictionary GetYJYZXX(string sXZQHID, double fZZL, string sBJU025) { Dictionary dicResult = new Dictionary(); dicResult.Add("YFDJ", ""); dicResult.Add("YFJSGS", ""); dicResult.Add("DQYFXX", ""); TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL sql = new TSQL(dberp); sql.Add("select XLXSBJDQYFB_YFDJ,XLXSBJYFJZQJ_YFJSGS,XLXSBJDQYFZB_DQYFXX "); sql.Add(" from XLXSBJDQYFB,XLXSBJYFJZQJ,XLXSBJDQYFZB "); sql.Add("where XLXSBJYFJZQJ_YFJZQH=XLXSBJDQYFB_YFJZQH "); sql.Add(" and XLXSBJDQYFZB_XZQHID=XLXSBJDQYFB_XZQHID "); sql.Add(" and XLXSBJDQYFB_XZQHID=:pXZQHID "); if (sBJU025.Equals("2")) { sql.Add(" and XLXSBJYFJZQJ_YFJZXX<:pZZL "); sql.Add(" and (XLXSBJYFJZQJ_YFJZSX=0 or XLXSBJYFJZQJ_YFJZSX>=:pZZL) "); } else { sql.Add(" and XLXSBJYFJZQJ_YFJZXX<=:pZZL "); sql.Add(" and (XLXSBJYFJZQJ_YFJZSX=0 or XLXSBJYFJZQJ_YFJZSX>:pZZL) "); } sql.Add("order by XLXSBJDQYFB_YFJZQH"); sql.ParamByName("pXZQHID").Value = sXZQHID; sql.ParamByName("pZZL").Value = fZZL; DataSet ds = dberp.OpenDataSet(sql); if (ds.Tables[0].Rows.Count > 0) { dicResult["YFDJ"] = ds.Tables[0].Rows[0]["XLXSBJDQYFB_YFDJ"].ToString().Trim(); dicResult["YFJSGS"] = ds.Tables[0].Rows[0]["XLXSBJYFJZQJ_YFJSGS"].ToString().Trim(); dicResult["DQYFXX"] = ds.Tables[0].Rows[0]["XLXSBJDQYFZB_DQYFXX"].ToString().Trim(); } return dicResult; } //获取盘费因子ID private string GetPFYZID(string sBJDID) { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL sql = new TSQL(dberp); sql.Add("select XLXSBJFLYZ_YZID"); sql.Add(" from XLXSBJFLYZ"); sql.Add(" where exists(select 1 from XLXSBJD where XLXSBJD_BJDID=:pBJDID and XLXSBJD_BJFLID=XLXSBJFLYZ_BJFLID)"); sql.Add(" and exists(select 1 from XLXSTZYZ where XLXSTZYZ_MXBH='BJD' and XLXSTZYZ_TJMDID=100860080 and XLXSTZYZ_YZID=XLXSBJFLYZ_YZID)"); sql.ParamByName("pBJDID").Value = sBJDID; DataSet ds = dberp.OpenDataSet(sql); if (ds.Tables[0].Rows.Count > 0) { return ds.Tables[0].Rows[0]["XLXSBJFLYZ_YZID"].ToString().Trim(); } else return ""; } //判断是否有报价单运费模块的编辑权限 private bool CheckRight() { UserRight UR = OpRightUtils.GetUserRight(tSession.UserId, 100860071); if (DSActiveModule.IsActiveModule(100860071) && UR.Edit) return true; else return false; } #endregion #region 控件按钮事件 protected void txtZZL_TextChanged(object sender, EventArgs e) { Dictionary dicYJYZXX = GetYJYZXX(txtXZQHID.Value, txtZZL.Value, GetOption(100860071, "BJU025")); txtYFDJ.Value = CMISproConvert.StrToFloat(dicYJYZXX["YFDJ"]); lblYFJSGS.Text = dicYJYZXX["YFJSGS"]; string sTmpGS = lblYFJSGS.Text.Replace("运价", txtYFDJ.Value.ToString()).Replace("运重", txtZZL.Value.ToString("F6")); double fYFJE = 0.0; double fDQYFXX = 0.0; gtExpression exp = new gtExpression(); fYFJE = NumberUtils.RoundX(exp.Evaluate(sTmpGS), 15); if (!string.IsNullOrEmpty(dicYJYZXX["DQYFXX"].Trim())) { fDQYFXX = CMISproConvert.StrToFloat(dicYJYZXX["DQYFXX"]); } if (fYFJE < fDQYFXX) { txtYFJE.Value = fDQYFXX; lblOLDYFJE.Text = " = " + fYFJE.ToString("F2") + "小于地区运费下限"; } else { txtYFJE.Value = fYFJE; lblOLDYFJE.Text = " = " + fYFJE.ToString("F2"); } txtYFJE_TextChanged(null, null); } protected void txtYFJE_TextChanged(object sender, EventArgs e) { string sBJU036 = GetOption(100860071, "BJU036"); if (txtJGBBJZJE.Value == 0) txtYZZ.Value = 0; else txtYZZ.Value = NumberUtils.RoundX(100 * txtYFJE.Value / txtJGBBJZJE.Value, CMISproConvert.StrToInt(sBJU036)); txtYFBJZJE.Value = txtYZZ.Value; XLXSBJPZXX pzxx = XLBJDUtils.GetXLXSBJPZXX(100860071); string sYFJSGS = pzxx.XLXSBJPZ_YFJSGS; string sBQ = "运费金额/表价总金额"; if (sYFJSGS.Equals("2")) { sBQ = "运费金额/报价总金额"; } else if (sYFJSGS.Equals("3")) { sBQ = "运费金额/厂价总金额"; } if (txtBZJD.Value != 0) { txtYZZ.Value = txtYZZ.Value + txtBZJD.Value; sBQ += "+包装重量加点"; } sBQ +=" = "; lblOLDYZZ.Text = sBQ + txtYZZ.Value.ToString() + "%"; } protected void btnOK_Click(object sender, EventArgs e) { string sYZID = PageParam.GetRTrimString("YZID"); string sYZZList = sYZID + "|" + txtYZZ.Value.ToString() + "|" + (chkYBJ.Checked ? "Y" : "N") + "," + (chkWG.Checked ? "Y" : "N") + "," + (chkFWG.Checked ? "Y" : "N"); //使用脚本给父页面的隐藏控件赋值,调用父页面的控件事件 DialogOperationScript dos = new DialogOperationScript(this); dos.SetOwnerControlValue(PageParam.GetRTrimString("txtPLSZYZListCID"), sYZZList); dos.ClickOwnerButton(PageParam.GetRTrimString("btnRefreshCID")); dos.CloseSelf(); dos.Execute(); } protected void btnQX_Click(object sender, EventArgs e) { CloseWindow(); } protected void linkYJ_Click(object sender, EventArgs e) { TPageParams pageParams = new TPageParams(); pageParams.UrlPath = "BJYF_YJYZInfo.aspx"; pageParams.AddString("XLXSBJDQYFZB_XZQHID", txtXZQHID.Value.Trim()); pageParams.AddString("XLXSBJDQYFZB_YFJSFS", "1"); pageParams.AddString("FROMBJD", "Y"); pageParams.AddString("RLBDO", "N");//OperationBase模板里的开关,RLBDO设为N才不会触发BDO模板下按xxx开页面关闭后客户端脚本触发的事件,导致运价调整后、BJYF_YJYZTJInfo页面也莫名被关闭的情况 OpenFuncModuleDialog(100860071, pageParams, btnRefresh.ClientID); } protected void btnRefresh_Click(object sender, EventArgs e) { txtZZL_TextChanged(null, null); FormAreaUpdate(); } #endregion } }