Files
N_XLXSBJ----MX/BJYF_YJYZTJInfo.aspx.cs
2026-08-21 17:03:02 +08:00

333 lines
13 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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 = "厂价总金额:";
}
}
/// <summary>
/// 获取运费单价 和 运费计算公式
/// </summary>
/// <param name="sXZQHID">项目所在地</param>
/// <param name="fZZL">材料总重量(吨)</param>
/// <returns></returns>
public static Dictionary<string, string> GetYJYZXX(string sXZQHID, double fZZL, string sBJU025)
{
Dictionary<string, string> dicResult = new Dictionary<string, string>();
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<string, string> 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
}
}