577 lines
27 KiB
C#
577 lines
27 KiB
C#
using System;
|
||
using System.Collections.Generic;
|
||
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_WORKFLOW;
|
||
using GThinking.N_MODEL.Dialog;
|
||
using GThinking.N_PUBLIC;
|
||
using GThinking.N_MISPRO.Utility;
|
||
using GThinking.N_CONTROL;
|
||
using System.IO;
|
||
using System.Data.OleDb;
|
||
using System.Data.Common;
|
||
using GThinking.N_MISPROAS;
|
||
|
||
namespace GThinking.N_XLXSBJ
|
||
{
|
||
public partial class XLBJD_DR : SingleCardBase
|
||
{
|
||
XLBJD_DREntity entity = new XLBJD_DREntity();
|
||
Dictionary<string, string> ColumnNames = new Dictionary<string, string>();
|
||
Dictionary<string, string> dicXLBZ = new Dictionary<string, string>();
|
||
|
||
|
||
protected void Page_Load(object sender, EventArgs e)
|
||
{
|
||
this.UMID = 100860000;
|
||
this.UMName = "线缆销售报价单";
|
||
base.CurMaster = Master;
|
||
base.CurEntity = entity;
|
||
this.PageHeight = 180;
|
||
this.PageWidth = 420;
|
||
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;
|
||
fupdPost.FileSaveType = gtAsyncFileUpload.DFileSaveType.SaveToPath;
|
||
if (AppRuntime.BitType == AppBitType.Bit32)
|
||
fupdPost.Filter = "XLS";
|
||
else // AppBitType.Bit64
|
||
fupdPost.Filter = "XLS,XLSX";
|
||
|
||
if (!IsPostBack)
|
||
{
|
||
SetlblText(PageParam.GetRTrimString("PZXH"));
|
||
}
|
||
base.InitPage();
|
||
}
|
||
|
||
#region 控件事件
|
||
|
||
protected void btnQD_Click(object sender, EventArgs e)
|
||
{
|
||
if (fupdPost.FilePath.Equals(""))
|
||
{
|
||
ShowMessage("请选择需要导入的文件!");
|
||
return;
|
||
}
|
||
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
|
||
TSQL sSQL = new TSQL(dberp);
|
||
try
|
||
{
|
||
lblTitle.Text = "正在导入数据,请稍后...";
|
||
dberp.BeginTrans();
|
||
DataSet aDataExcel = new DataSet();
|
||
if (AppRuntime.BitType == AppBitType.Bit32)
|
||
aDataExcel = XLBJDUtils.ReadFromExcelFile(fupdPost.FilePath, 0, "");
|
||
else // AppBitType.Bit64
|
||
ReadWJ(fupdPost.FilePath, ref aDataExcel);
|
||
ExcelColumnValid(PageParam.GetRTrimString("PZXH"), aDataExcel);
|
||
InsertMX(dberp, sSQL, aDataExcel);
|
||
|
||
dberp.CommitTrans();
|
||
ShowMessage("导入成功!");
|
||
CloseWindow();
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
lblTitle.Text = "";
|
||
dberp.RollbackTrans();
|
||
ShowMessage(ex.Message);
|
||
}
|
||
}
|
||
|
||
protected void btnQX_Click(object sender, EventArgs e)
|
||
{
|
||
CloseWindow();
|
||
}
|
||
|
||
#endregion
|
||
|
||
#region 自定义事件
|
||
|
||
private void InsertMX(TDatabase dberp, TSQL sSQL, DataSet ds)
|
||
{
|
||
int iXSWS = string.IsNullOrEmpty(GetOption("BJU002")) ? 5 : CMISproConvert.StrToInt(GetOption("BJU002"));
|
||
if (iXSWS < 0)
|
||
iXSWS = 0;
|
||
else if (iXSWS > 8)
|
||
iXSWS = 8;
|
||
|
||
//获取所有标准信息
|
||
GetALLXLBZ(dberp, sSQL);
|
||
|
||
string sErrorNum = "";
|
||
int iStartXH = 0;
|
||
//参数默认的标准
|
||
string sDefaultXLBZID = XLBJDUtils.GetDefaultXLBZID();
|
||
sDefaultXLBZID = string.IsNullOrEmpty(sDefaultXLBZID) ? "G" : sDefaultXLBZID;
|
||
string sBJU003 = GetOption("BJU003");
|
||
string sBJLY = PageParam.GetRTrimString("BJLY");
|
||
string sBJFLID = PageParam.GetRTrimString("BJFLID");
|
||
string sJGBID = PageParam.GetRTrimString("JGBID");
|
||
string sBJDHQLY = PageParam.GetRTrimString("BJDHQLY");
|
||
string sBJRQ = PageParam.GetRTrimString("BJRQ");
|
||
string sCPBJMRXSWS = PageParam.GetRTrimString("CPBJMRXSWS");
|
||
//A|× B|*
|
||
string sXLJGU007 = GetOption(102579000, "XLJGU007");
|
||
|
||
bool bNeedUp = false;
|
||
double sCPBJ = 0.0;
|
||
bool NeedupdCPBJ = ColumnNames.ContainsKey("8");//是否需要用导入文件中的报价更新计算出来的报价
|
||
bool NeedupdBJJE = ColumnNames.ContainsKey("9");//是否需要用导入文件中的报价金额更新计算出来的报价金额
|
||
Dictionary<int, double> dicUpdBJJE = new Dictionary<int, double>();
|
||
foreach (DataRow Row in ds.Tables[0].Rows)
|
||
{
|
||
string sXLXHID = "";
|
||
string sXLGGID = "";
|
||
string sXLBZID = "";
|
||
string sDYDJID = "";
|
||
string sBZ = "";
|
||
|
||
if (ColumnNames.ContainsKey("1"))
|
||
sXLXHID = sGetCellTest(Row, CMISproConvert.StrToInt(ColumnNames["1"]));
|
||
if (ColumnNames.ContainsKey("2"))
|
||
sXLGGID = sGetCellTest(Row, CMISproConvert.StrToInt(ColumnNames["2"]));
|
||
if (ColumnNames.ContainsKey("3"))
|
||
sDYDJID = sGetCellTest(Row, CMISproConvert.StrToInt(ColumnNames["3"])).Replace('K', 'k').Replace('v', 'V');
|
||
if (ColumnNames.ContainsKey("4"))
|
||
{
|
||
string sTMP = sGetCellTest(Row, CMISproConvert.StrToInt(ColumnNames["4"]));
|
||
sXLBZID = XLBJDUtils.GetBZXLZBZID(sTMP, sDefaultXLBZID, dicXLBZ);
|
||
}
|
||
|
||
if (ColumnNames.ContainsKey("10"))//10|型号-规格
|
||
{
|
||
//根据 型号-规格 解析出型号、规格
|
||
ReadCPXX_10(sGetCellTest(Row, CMISproConvert.StrToInt(ColumnNames["10"])), ref sXLXHID, ref sXLGGID);
|
||
}
|
||
|
||
//根据 【11|型号-电压等级 规格】 解析出型号、规格、电压等级
|
||
//取最新的值
|
||
if (ColumnNames.ContainsKey("11"))//11|型号-电压等级 规格
|
||
{
|
||
ReadCPXX_11(sGetCellTest(Row, CMISproConvert.StrToInt(ColumnNames["11"])), ref sXLXHID, ref sXLGGID, ref sDYDJID);
|
||
}
|
||
|
||
if (ColumnNames.ContainsKey("12"))
|
||
{
|
||
sBZ = sGetCellTest(Row, CMISproConvert.StrToInt(ColumnNames["12"]));
|
||
sBZ = XLBJDUtils.SubStringFunc(sBZ, 250);
|
||
}
|
||
//规格处理
|
||
if (sXLJGU007.Equals("A"))
|
||
{
|
||
sXLGGID = sXLGGID.Replace("x", "X").Replace("X", "*").Replace("*", "×");
|
||
}
|
||
else if (sXLJGU007.Equals("B"))
|
||
{
|
||
sXLGGID = sXLGGID.Replace("x", "X").Replace("X", "*").Replace("×", "*");
|
||
}
|
||
|
||
if (sXLXHID.Equals("") || sXLGGID.Equals(""))
|
||
continue;
|
||
XLBJDUtils.ExistCLQD(ref sXLXHID, ref sXLGGID, ref sXLBZID, ref sDYDJID);
|
||
|
||
int iXH = CMISproDataBase.GetMaxXH("DBERP", "XLXSBJDMX", "XLXSBJDMX_XH", "XLXSBJDMX_BJDID='" + PageParam.GetRTrimString("BJDID") + "'") + 1;
|
||
int iXSSX = CMISproDataBase.GetMaxXH("DBERP", "XLXSBJDMX", "XLXSBJDMX_XSSX", "XLXSBJDMX_BJDID = '" + PageParam.GetRTrimString("BJDID") + "'") + 1;
|
||
if (iStartXH == 0)
|
||
{
|
||
iStartXH = iXH;
|
||
}
|
||
|
||
string sJLDW = ColumnNames.ContainsKey("6") ? sGetCellTest(Row, CMISproConvert.StrToInt(ColumnNames["6"])) : "";
|
||
if (sJLDW.Equals(""))
|
||
{
|
||
sJLDW = sBJU003;
|
||
}
|
||
else if (sJLDW.ToUpper().Equals("KM"))
|
||
{
|
||
sJLDW = "Km";
|
||
}
|
||
else if (sJLDW.ToUpper().Equals("M"))
|
||
{
|
||
sJLDW = "M";
|
||
}
|
||
//如果报价数量不合法或小于0,则按0导入
|
||
double fBJSL = 1;//报价数量没有,默认为1
|
||
if (ColumnNames.ContainsKey("7"))
|
||
fBJSL = CMISproConvert.StrToFloat(sGetCellTest(Row, CMISproConvert.StrToInt(ColumnNames["7"])), 0);
|
||
|
||
if (NeedupdCPBJ)
|
||
{
|
||
sCPBJ = CMISproConvert.StrToFloat(sGetCellTest(Row, CMISproConvert.StrToInt(ColumnNames["8"])), 0);
|
||
}
|
||
if (NeedupdBJJE)
|
||
{
|
||
dicUpdBJJE.Add(iXH, NumberUtils.RoundX(CMISproConvert.StrToFloat(sGetCellTest(Row, CMISproConvert.StrToInt(ColumnNames["9"])), 0), 2));
|
||
}
|
||
|
||
sSQL.Clear();
|
||
sSQL.Add(" insert into XLXSBJDMX( ");
|
||
sSQL.Add(" XLXSBJDMX_BJDID, XLXSBJDMX_XH, XLXSBJDMX_XSSX, XLXSBJDMX_XLXHID, XLXSBJDMX_XLGGID,XLXSBJDMX_XDXLXHID,XLXSBJDMX_XDXLBZID, ");
|
||
sSQL.Add(" XLXSBJDMX_XLBZID, XLXSBJDMX_DYDJID, XLXSBJDMX_XLYSID, XLXSBJDMX_BJCP,XLXSBJDMX_WGCPBZ, ");
|
||
sSQL.Add(" XLXSBJDMX_JLDW, XLXSBJDMX_BJSL, XLXSBJDMX_JGBBJ, XLXSBJDMX_TZQCPBJ,XLXSBJDMX_TZCPBJ,XLXSBJDMX_CPBJ, XLXSBJDMX_TZQBJJE,XLXSBJDMX_TZBJJE,XLXSBJDMX_BJJE, XLXSBJDMX_JGBJJ,XLXSBJDMX_CLCB,XLXSBJDMX_JGBBJJCL,XLXSBJDMX_JGBBJJCE,XLXSBJDMX_CLZL, ");
|
||
sSQL.Add(" XLXSBJDMX_BJDHQCLCB,XLXSBJDMX_CLCBJCL,XLXSBJDMX_JGBBJLJJCL,XLXSBJDMX_BZ, XLXSBJDMX_DZSC,XLXSBJDMX_WHRID, XLXSBJDMX_WHR, XLXSBJDMX_WHSJ,XLXSBJDMX_BJSDBZ,XLXSBJDMX_BJCPSD)");
|
||
sSQL.Add(" values(");
|
||
sSQL.Add(" :XLXSBJDMX_BJDID, :XLXSBJDMX_XH, :XLXSBJDMX_XSSX, :XLXSBJDMX_XLXHID, :XLXSBJDMX_XLGGID,:XLXSBJDMX_XDXLXHID,:XLXSBJDMX_XDXLBZID, ");
|
||
sSQL.Add(" :XLXSBJDMX_XLBZID, isnull(:XLXSBJDMX_DYDJID,' '), :XLXSBJDMX_XLYSID, :XLXSBJDMX_BJCP,:XLXSBJDMX_WGCPBZ, ");
|
||
sSQL.Add(" :XLXSBJDMX_JLDW, :XLXSBJDMX_BJSL, :XLXSBJDMX_JGBBJ, :XLXSBJDMX_TZQCPBJ,:XLXSBJDMX_TZCPBJ,:XLXSBJDMX_CPBJ, :XLXSBJDMX_TZQBJJE,:XLXSBJDMX_TZBJJE,:XLXSBJDMX_BJJE, :XLXSBJDMX_JGBJJ,:XLXSBJDMX_CLCB,:XLXSBJDMX_JGBBJJCL,:XLXSBJDMX_JGBBJJCE,:XLXSBJDMX_CLZL, ");
|
||
sSQL.Add(" :XLXSBJDMX_BJDHQCLCB,:XLXSBJDMX_CLCBJCL,:XLXSBJDMX_JGBBJLJJCL,:XLXSBJDMX_BZ, :XLXSBJDMX_DZSC,:XLXSBJDMX_WHRID, :XLXSBJDMX_WHR, :XLXSBJDMX_WHSJ,:XLXSBJDMX_BJSDBZ,:XLXSBJDMX_BJCPSD)");
|
||
sSQL.ParamByName("XLXSBJDMX_BJDID").Value = PageParam.GetRTrimString("BJDID");
|
||
sSQL.ParamByName("XLXSBJDMX_XH").Value = iXH;
|
||
sSQL.ParamByName("XLXSBJDMX_XSSX").Value = iXSSX;
|
||
sSQL.ParamByName("XLXSBJDMX_XLXHID").Value = sXLXHID;
|
||
sSQL.ParamByName("XLXSBJDMX_XLGGID").Value = sXLGGID;
|
||
sSQL.ParamByName("XLXSBJDMX_XLBZID").Value = sXLBZID;
|
||
sSQL.ParamByName("XLXSBJDMX_DYDJID").Value = sDYDJID;
|
||
sSQL.ParamByName("XLXSBJDMX_XDXLXHID").Value = sXLXHID;
|
||
sSQL.ParamByName("XLXSBJDMX_XDXLBZID").Value = sXLBZID;
|
||
sSQL.ParamByName("XLXSBJDMX_XLYSID").Value = ColumnNames.ContainsKey("5") ? XLBJDInfo.GetYSID(sGetCellTest(Row, CMISproConvert.StrToInt(ColumnNames["5"]))) : XLBJDInfo.GetDefaultYSID(sXLXHID, sXLGGID);
|
||
|
||
string sBJCP = "";
|
||
if (ColumnNames.ContainsKey("10"))//10|型号-规格
|
||
{
|
||
sBJCP = sGetCellTest(Row, CMISproConvert.StrToInt(ColumnNames["10"]));
|
||
}
|
||
else if (ColumnNames.ContainsKey("11"))//11|型号-电压等级 规格
|
||
{
|
||
sBJCP = sGetCellTest(Row, CMISproConvert.StrToInt(ColumnNames["11"]));
|
||
}
|
||
if (!sBJCP.Equals(""))
|
||
{
|
||
sSQL.ParamByName("XLXSBJDMX_BJCPSD").Value = "Y";
|
||
}
|
||
else
|
||
{
|
||
sSQL.ParamByName("XLXSBJDMX_BJCPSD").Value = "N";
|
||
}
|
||
if (sBJCP.Equals(""))
|
||
{
|
||
sBJCP = XLBJDUtils.GroupBJCPXX(sXLXHID, sXLGGID, sDYDJID);
|
||
}
|
||
sSQL.ParamByName("XLXSBJDMX_BJCP").Value = sBJCP;
|
||
|
||
sSQL.ParamByName("XLXSBJDMX_JLDW").Value = sJLDW;
|
||
sSQL.ParamByName("XLXSBJDMX_BJSL").Value = fBJSL;
|
||
|
||
sSQL.ParamByName("XLXSBJDMX_JGBBJ").Value = 0.0;
|
||
sSQL.ParamByName("XLXSBJDMX_TZQCPBJ").Value = 0.0;
|
||
sSQL.ParamByName("XLXSBJDMX_TZCPBJ").Value = 0;
|
||
if (sCPBJ != 0)
|
||
{
|
||
sSQL.ParamByName("XLXSBJDMX_CPBJ").Value = sCPBJ;
|
||
sSQL.ParamByName("XLXSBJDMX_BJSDBZ").Value = "Y";
|
||
}
|
||
else
|
||
{
|
||
sSQL.ParamByName("XLXSBJDMX_CPBJ").Value = 0.0;
|
||
sSQL.ParamByName("XLXSBJDMX_BJSDBZ").Value = "N";
|
||
}
|
||
sSQL.ParamByName("XLXSBJDMX_JGBJJ").Value = 0.0;
|
||
sSQL.ParamByName("XLXSBJDMX_CLCB").Value = 0.0;
|
||
sSQL.ParamByName("XLXSBJDMX_BJDHQCLCB").Value = 0.0;
|
||
sSQL.ParamByName("XLXSBJDMX_CLZL").Value = 0.0;
|
||
|
||
sSQL.ParamByName("XLXSBJDMX_BJJE").Value = NumberUtils.RoundX(fBJSL * CMISproConvert.StrToFloat(sSQL.ParamByName("XLXSBJDMX_CPBJ").Value.ToString(), 0), 2);
|
||
sSQL.ParamByName("XLXSBJDMX_TZQBJJE").Value = sSQL.ParamByName("XLXSBJDMX_BJJE").Value;
|
||
sSQL.ParamByName("XLXSBJDMX_TZBJJE").Value = 0;
|
||
sSQL.ParamByName("XLXSBJDMX_JGBBJJCE").Value = 0;
|
||
sSQL.ParamByName("XLXSBJDMX_JGBBJJCL").Value = 0;
|
||
sSQL.ParamByName("XLXSBJDMX_CLCBJCL").Value = 0;
|
||
sSQL.ParamByName("XLXSBJDMX_JGBBJLJJCL").Value = 0;
|
||
|
||
sSQL.ParamByName("XLXSBJDMX_WGCPBZ").Value = "N";
|
||
sSQL.ParamByName("XLXSBJDMX_BZ").Value = sBZ;
|
||
if (XLBJDUtils.ISDZBZ(sXLBZID))
|
||
{
|
||
sSQL.ParamByName("XLXSBJDMX_DZSC").Value = "Y";
|
||
}
|
||
else
|
||
{
|
||
sSQL.ParamByName("XLXSBJDMX_DZSC").Value = "N";
|
||
}
|
||
sSQL.ParamByName("XLXSBJDMX_WHR").Value = tSession.UserName;
|
||
sSQL.ParamByName("XLXSBJDMX_WHRID").Value = tSession.UserId;
|
||
sSQL.ParamByName("XLXSBJDMX_WHSJ").Value = CMISproConvert.ConvertTime(DateTime.Now);
|
||
dberp.ExecSQL(sSQL);
|
||
|
||
bNeedUp = true;
|
||
}
|
||
XLBJDUtils.UpdateXDXLBZID(dberp, sSQL, PageParam.GetRTrimString("BJDID"), "", iStartXH - 1, ref sErrorNum);
|
||
XLBJDUtils.SyncXLXSBJXLGGTHB_ByXLXSBJDMX_Batch(dberp, tSession, PageParam.GetRTrimString("BJDID"), "", iStartXH - 1);
|
||
if (bNeedUp)
|
||
{
|
||
XLBJDCalcUtils.CalcBJDMXAfterIns(dberp, sSQL, PageParam.GetRTrimString("BJDID"), iStartXH, GetOption("BJU002"), sBJU003,GetOption("BJU018"), tSession.UserId, tSession.UserName, ref sErrorNum);
|
||
|
||
//用导入文件中的调整后报价金额更新计算出来的调整后报价金额
|
||
foreach (int iKey in dicUpdBJJE.Keys)
|
||
{
|
||
string sJCLLX = PageParam.GetRTrimString("JCLLX");
|
||
string sLJJCLLX = PageParam.GetRTrimString("LJJCLLX");
|
||
|
||
string sqlBJJE = "RoundFix(:pUpdBJJE,2)";
|
||
sSQL.Clear();
|
||
sSQL.Add("update XLXSBJDMX set ");
|
||
|
||
sSQL.Add("XLXSBJDMX_BJJE=" + sqlBJJE + ",");
|
||
sSQL.Add("XLXSBJDMX_TZBJJE=" + sqlBJJE + "-XLXSBJDMX_TZQBJJE,");
|
||
|
||
|
||
if (sJCLLX.Equals("1"))//表价价差率公式
|
||
{
|
||
sSQL.Add("XLXSBJDMX_JGBBJJCL =case when " + sqlBJJE + "=0.0 then 0.0 else RoundFix(100*(" + sqlBJJE + "-XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL)/(" + sqlBJJE + "),2) end,");
|
||
sSQL.Add("XLXSBJDMX_JGBBJJCE =RoundFix(" + sqlBJJE + "-RoundFix(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL,2)," + iXSWS + "), ");
|
||
}
|
||
else if (sJCLLX.Equals("2"))
|
||
{
|
||
sSQL.Add("XLXSBJDMX_JGBBJJCL =case when XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL=0.0 then 0.0 else RoundFix(100*(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL-" + sqlBJJE + ")/(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL),2) end,");
|
||
sSQL.Add("XLXSBJDMX_JGBBJJCE =RoundFix(RoundFix(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL,2)-" + sqlBJJE + "," + iXSWS + "), ");
|
||
}
|
||
else if (sJCLLX.Equals("3"))
|
||
{
|
||
sSQL.Add("XLXSBJDMX_JGBBJJCL =case when " + sqlBJJE + "=0.0 then 0.0 else RoundFix(100*(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL)/(" + sqlBJJE + "),2) end,");
|
||
sSQL.Add("XLXSBJDMX_JGBBJJCE =0, ");
|
||
}
|
||
else if (sJCLLX.Equals("4"))
|
||
{
|
||
sSQL.Add("XLXSBJDMX_JGBBJJCL =case when XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL=0.0 then 0.0 else RoundFix(100*(" + sqlBJJE + " - XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL)/(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL),2) end,");
|
||
sSQL.Add("XLXSBJDMX_JGBBJJCE =RoundFix(" + sqlBJJE + " - RoundFix(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL,2)," + iXSWS + "), ");
|
||
}
|
||
else
|
||
{
|
||
sSQL.Add("XLXSBJDMX_JGBBJJCL=0,");
|
||
sSQL.Add("XLXSBJDMX_JGBBJJCE=0,");
|
||
}
|
||
if (sLJJCLLX.Equals("1"))//料价价差率公式
|
||
{
|
||
sSQL.Add("XLXSBJDMX_CLCBJCL =case when " + sqlBJJE + "=0.0 then 0.0 else RoundFix(100*(" + sqlBJJE + "-XLXSBJDMX_CLCB*XLXSBJDMX_BJSL)/(" + sqlBJJE + "),2) end");
|
||
}
|
||
else if (sLJJCLLX.Equals("2"))
|
||
{
|
||
sSQL.Add("XLXSBJDMX_CLCBJCL =case when " + sqlBJJE + "=0.0 then 0.0 else RoundFix(100*(" + sqlBJJE + "-XLXSBJDMX_BJDHQCLCB*XLXSBJDMX_BJSL)/(" + sqlBJJE + "),2) end");
|
||
}
|
||
else if (sLJJCLLX.Equals("3"))
|
||
{
|
||
sSQL.Add("XLXSBJDMX_CLCBJCL =case when XLXSBJDMX_BJDHQCLCB*XLXSBJDMX_BJSL=0.0 then 0.0 else RoundFix(100*(" + sqlBJJE + "-XLXSBJDMX_BJDHQCLCB*XLXSBJDMX_BJSL)/(XLXSBJDMX_BJDHQCLCB*XLXSBJDMX_BJSL),2) end");
|
||
}
|
||
else if (sLJJCLLX.Equals("4"))
|
||
{
|
||
sSQL.Add("XLXSBJDMX_CLCBJCL =case when " + sqlBJJE + "=0.0 then 0.0 else RoundFix(100*(XLXSBJDMX_BJDHQCLCB*XLXSBJDMX_BJSL)/(" + sqlBJJE + "),2) end");
|
||
}
|
||
else
|
||
{
|
||
sSQL.Add("XLXSBJDMX_CLCBJCL=0");
|
||
}
|
||
sSQL.Add(" where XLXSBJDMX_BJDID=:pBJDID and XLXSBJDMX_XH=:pXH");
|
||
sSQL.ParamByName("pUpdBJJE").Value = NumberUtils.RoundX(dicUpdBJJE[iKey], 2);
|
||
sSQL.ParamByName("pBJDID").Value = PageParam.GetRTrimString("BJDID");
|
||
sSQL.ParamByName("pXH").Value = iKey;
|
||
dberp.ExecSQL(sSQL);
|
||
}
|
||
}
|
||
}
|
||
|
||
private void ExcelColumnValid(string sPZXH, DataSet ds)
|
||
{
|
||
ColumnNames.Clear();
|
||
|
||
TDatabase dberpPZ = TContextDatabases.GetDatabase("DBERP");
|
||
TSQL sqlPZ = new TSQL(dberpPZ);
|
||
DataSet dsPZ = null;
|
||
|
||
Dictionary<string, string> aryBJLM = new Dictionary<string, string>();
|
||
aryBJLM.Add("1", "型号");
|
||
aryBJLM.Add("2", "规格");
|
||
aryBJLM.Add("3", "电压等级");
|
||
aryBJLM.Add("4", "标准");
|
||
aryBJLM.Add("5", "颜色");
|
||
aryBJLM.Add("6", "计量单位");
|
||
aryBJLM.Add("7", "报价数量");
|
||
aryBJLM.Add("8", "报价");
|
||
aryBJLM.Add("9", "调整后报价金额");
|
||
aryBJLM.Add("10", "型号-规格");
|
||
aryBJLM.Add("11", "型号-电压等级 规格");
|
||
aryBJLM.Add("12", "备注");
|
||
|
||
foreach (string sBJLM in aryBJLM.Keys)
|
||
{
|
||
string sBJLMMC = aryBJLM[sBJLM].Trim();
|
||
|
||
dsPZ = null;
|
||
sqlPZ.Clear();
|
||
sqlPZ.Add("select XLXSBJDDR_EXCELLM from XLXSBJDDR where XLXSBJDDR_PZXH=:pPZXH and XLXSBJDDR_BJLM=:pBJLM order by XLXSBJDDR_EXCELLM ");
|
||
sqlPZ.ParamByName("pPZXH").Value = sPZXH;
|
||
sqlPZ.ParamByName("pBJLM").Value = sBJLM;
|
||
dsPZ = dberpPZ.OpenDataSet(sqlPZ);
|
||
if (dsPZ.Tables[0].Rows.Count > 0)
|
||
{
|
||
//cs/只会查出一条记录?
|
||
for (int i = 0; i < dsPZ.Tables[0].Rows.Count; i++)
|
||
{
|
||
if (!ColumnNames.ContainsKey(sBJLM))
|
||
{
|
||
for (int j = 0; j < ds.Tables[0].Columns.Count; j++)
|
||
{
|
||
if (ds.Tables[0].Columns[j].ColumnName.Trim().Equals(dsPZ.Tables[0].Rows[i]["XLXSBJDDR_EXCELLM"].ToString().Trim()))
|
||
{
|
||
ColumnNames.Add(sBJLM, j.ToString().Trim());
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
else
|
||
{
|
||
for (int j = 0; j < ds.Tables[0].Columns.Count; j++)
|
||
{
|
||
if (ds.Tables[0].Columns[j].ColumnName.Trim().Equals(sBJLMMC))
|
||
{
|
||
ColumnNames.Add(sBJLM, j.ToString().Trim());
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
//10|型号-规格----11|型号-电压等级 规格
|
||
if (!ColumnNames.ContainsKey("1") && !ColumnNames.ContainsKey("10") && !ColumnNames.ContainsKey("11"))
|
||
{
|
||
throw new Exception("导入文件中没有指定‘型号’列,可通过‘配置格式’按钮设置!");
|
||
}
|
||
if (!ColumnNames.ContainsKey("2") && !ColumnNames.ContainsKey("10") && !ColumnNames.ContainsKey("11"))
|
||
{
|
||
throw new Exception("导入文件中没有指定‘规格’列,可通过‘配置格式’按钮设置!");
|
||
}
|
||
//if (!ColumnNames.ContainsKey("3"))
|
||
//{
|
||
// throw new Exception("导入文件中没有指定‘电压等级’列,可通过‘配置格式’按钮设置!");
|
||
//}
|
||
//if (!ColumnNames.ContainsKey("4"))
|
||
//{
|
||
// throw new Exception("导入文件中没有指定‘标准’列,可通过‘配置格式’按钮设置!");
|
||
//}
|
||
//if (!ColumnNames.ContainsKey("7"))
|
||
//{
|
||
// throw new Exception("导入文件中没有指定‘报价数量’列,可通过‘配置格式’按钮设置!");
|
||
//}
|
||
}
|
||
|
||
private void ReadWJ(string sPath, ref DataSet aDataExcel)
|
||
{
|
||
string sMessage = "";
|
||
aDataExcel = TExcelData.ReadExcel(sPath.Trim(), "", "", false, ref sMessage);
|
||
if(!sMessage.Trim().Equals(""))
|
||
{
|
||
throw new Exception(sMessage);
|
||
}
|
||
}
|
||
|
||
private string sGetCellTest(DataRow Row, int ColumnIndex)
|
||
{
|
||
return Row[ColumnIndex].ToString().Trim().Replace("\r\n", "").Replace("\n", "");
|
||
}
|
||
|
||
private void SetlblText(string sPZXH)
|
||
{
|
||
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
|
||
TSQL sql = new TSQL(dberp);
|
||
sql.Add("select XLXSBJDDR_EXCELLM,XLXSBJDDR_BJLM from XLXSBJDDR where XLXSBJDDR_PZXH=:pPZXH order by XLXSBJDDR_BJLM");
|
||
sql.ParamByName("pPZXH").Value = sPZXH;
|
||
DataSet ds = dberp.OpenDataSet(sql);
|
||
string sLMSM = "无";
|
||
if (ds.Tables[0].Rows.Count > 0)
|
||
{
|
||
sLMSM = "";
|
||
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
|
||
{
|
||
string sBJLMMC = GetBJLMMC(ds.Tables[0].Rows[i]["XLXSBJDDR_BJLM"].ToString().Trim());
|
||
if (sLMSM.Trim().Equals(""))
|
||
{
|
||
sLMSM = ds.Tables[0].Rows[i]["XLXSBJDDR_EXCELLM"].ToString().Trim() + "|" + sBJLMMC;
|
||
}
|
||
else
|
||
{
|
||
sLMSM = sLMSM + "、" + ds.Tables[0].Rows[i]["XLXSBJDDR_EXCELLM"].ToString().Trim() + "|" + sBJLMMC;
|
||
}
|
||
}
|
||
}
|
||
lblLMSM.Text = sLMSM;
|
||
}
|
||
|
||
private string GetBJLMMC(string sBJLM)
|
||
{
|
||
switch (sBJLM)
|
||
{
|
||
case "1": return "型号";
|
||
case "2": return "规格";
|
||
case "3": return "电压等级";
|
||
case "4": return "标准";
|
||
case "5": return "颜色";
|
||
case "6": return "计量单位";
|
||
case "7": return "报价数量";
|
||
case "8": return "报价";
|
||
case "9": return "调整后报价金额";
|
||
case "10": return "型号-规格";
|
||
case "11": return "型号-电压等级 规格";
|
||
case "12": return "备注";
|
||
default: return "";
|
||
}
|
||
}
|
||
|
||
//根据 型号-规格 解析出型号、规格
|
||
private void ReadCPXX_10(string sCPXX, ref string sXLXHID, ref string sXLGGID)
|
||
{
|
||
if (sCPXX.Contains("-"))
|
||
{
|
||
sXLXHID = sCPXX.Substring(0, sCPXX.LastIndexOf('-'));
|
||
sXLGGID = sCPXX.Substring(sCPXX.LastIndexOf('-') + 1, sCPXX.Length - sCPXX.LastIndexOf('-') - 1);
|
||
}
|
||
}
|
||
|
||
//根据 【11|型号-电压等级 规格】 解析出型号、规格、电压等级
|
||
private void ReadCPXX_11(string sCPXX, ref string sXLXHID, ref string sXLGGID, ref string sDYDJID)
|
||
{
|
||
if (sCPXX.Contains("-") && sCPXX.Contains(" "))
|
||
{
|
||
sXLXHID = sCPXX.Substring(0, sCPXX.LastIndexOf('-'));
|
||
sDYDJID = sCPXX.Substring(sCPXX.LastIndexOf('-') + 1, sCPXX.LastIndexOf(' ') -sCPXX.LastIndexOf('-') - 1).Replace('K', 'k').Replace('v', 'V');
|
||
sXLGGID = sCPXX.Substring(sCPXX.LastIndexOf(' ') + 1, sCPXX.Length - sCPXX.LastIndexOf(' ') - 1);
|
||
}
|
||
}
|
||
|
||
//先获取所有的标准
|
||
private void GetALLXLBZ(TDatabase dberp, TSQL sSQL)
|
||
{
|
||
dicXLBZ.Clear();
|
||
sSQL.Clear();
|
||
sSQL.Add("select XLBZ_XLBZID,XLBZ_XLBZLXMC from XLBZ where 1 = 1 ");
|
||
DataSet ds = dberp.OpenDataSet(sSQL);
|
||
if (ds.Tables[0].Rows.Count > 0)
|
||
{
|
||
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
|
||
{
|
||
dicXLBZ.Add(ds.Tables[0].Rows[i]["XLBZ_XLBZID"].ToString().Trim(), ds.Tables[0].Rows[i]["XLBZ_XLBZLXMC"].ToString().Trim());
|
||
}
|
||
}
|
||
}
|
||
#endregion
|
||
}
|
||
}
|