333 lines
13 KiB
C#
333 lines
13 KiB
C#
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
|
||
}
|
||
}
|