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
}
}