This commit is contained in:
2026-08-21 17:03:02 +08:00
commit f065129b20
2292 changed files with 666241 additions and 0 deletions
+497
View File
@@ -0,0 +1,497 @@
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 DRBJDMX : SingleCardBase
{
DRBJDMXB entity = new DRBJDMXB();
#region page类事件
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";
base.InitPage();
if (PageParam.GetRTrimString("XSYSCP") == "Y")
lblKZJLM.Text = lblKZJLM.Text.Trim() + "、原始产品";
if (PageParam.GetRTrimString("XSYXJ") == "Y")
lblKZJLM.Text = lblKZJLM.Text.Trim() + "、意向价";
if (PageParam.GetRTrimString("XSYZ") == "Y")
lblKZJLM.Text = lblKZJLM.Text.Trim() + "、印字";
if (PageParam.GetRTrimString("XSBH") == "Y")
lblKZJLM.Text = lblKZJLM.Text.Trim() + "、包号";
if (PageParam.GetRTrimString("XSCPBJXJ") == "Y")
lblKZJLM.Text = lblKZJLM.Text.Trim() + "、产品报价限价、报价金额限价";
if (!IsPostBack)
{
txtBJDID.Value = PageParam.GetRTrimString("BJDID");
}
}
#endregion
#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(aDataExcel);
InsertMX(dberp, sSQL, aDataExcel);
dberp.CommitTrans();
if (PageParam.GetRTrimString("txtNeedCallBackCID").Equals(""))
{
ShowMessage("导入成功!");
CloseWindow();
}
else
{
DialogOperationScript dos = new DialogOperationScript(this);
dos.SetOwnerControlValue(PageParam.GetRTrimString("txtNeedCallBackCID"), "Y");
dos.CloseSelf();
dos.Execute();
}
}
catch (Exception ex)
{
lblTitle.Text = "";
dberp.RollbackTrans();
ShowMessage(ex.Message);
}
}
protected void btnQX_Click(object sender, EventArgs e)
{
CloseWindow();
}
#endregion
#region 自定义事件
//private bool IsExsitMX(string sBJDID, int XH)
//{
// return CMISproDataBase.ExistsRecord("DBERP", String.Format("select 1 from XLBJDMX where XLBJDMX_BJDID = '{0}' and XLBJDMX_XH = {1}", sBJDID, XH));
//}
private void InsertMX(TDatabase dberp, TSQL sSQL, DataSet ds)
{
string sErrorNum = "";
int iStartXH = 0;
bool bNeedUp = false;
int tmpXSWS = string.IsNullOrEmpty(GetOption("BJU002")) ? 5 : CMISproConvert.StrToInt(GetOption("BJU002"));
if (tmpXSWS < 0)
tmpXSWS = 0;
else if (tmpXSWS > 8)
tmpXSWS = 8;
//A|× B|*
string sXLJGU007 = GetOption(102579000, "XLJGU007");
string sBJU003 = GetOption("BJU003");
string sXSQYID = PageParam.GetRTrimString("XSQYID");
string sBJLY = PageParam.GetRTrimString("BJLY");
string sBJFLID = PageParam.GetRTrimString("BJFLID");
string sBJDHQLY = PageParam.GetRTrimString("BJDHQLY");
string sBJRQ = PageParam.GetRTrimString("BJRQ");
string sCPBJMRXSWS = PageParam.GetRTrimString("CPBJMRXSWS");
string sDefaultXLBZID = XLBJDUtils.GetDefaultXLBZID();
//动态添加的栏目对应序号
int ColumnIndex = 6;
int indexYSCP = -1;
int indexYXJ = -1;
int indexYZ = -1;
int indexBH = -1;
int indexCPBJXJ = -1;
int indexBJJEXJ = -1;
if (PageParam.GetRTrimString("XSYSCP") == "Y")
{
ColumnIndex++;
indexYSCP = ColumnIndex;
}
if (PageParam.GetRTrimString("XSYXJ") == "Y")
{
ColumnIndex++;
indexYXJ = ColumnIndex;
}
if (PageParam.GetRTrimString("XSYZ") == "Y")
{
ColumnIndex++;
indexYZ = ColumnIndex;
}
if (PageParam.GetRTrimString("XSBH") == "Y")
{
ColumnIndex++;
indexBH = ColumnIndex;
}
if (PageParam.GetRTrimString("XSCPBJXJ") == "Y")
{
ColumnIndex++;
indexCPBJXJ = ColumnIndex;
ColumnIndex++;
indexBJJEXJ = ColumnIndex;
}
Dictionary<string, string> dicDRMXBZ = new Dictionary<string, string>();
dicDRMXBZ.Clear();
sSQL.Clear();
sSQL.Add("select XLBZ_XLBZID,XLBZ_XLBZLXMC from XLBZ where 1 = 1 ");
DataSet dsXLBZ = dberp.OpenDataSet(sSQL);
if (dsXLBZ.Tables[0].Rows.Count > 0)
{
for (int i = 0; i < dsXLBZ.Tables[0].Rows.Count; i++)
{
dicDRMXBZ.Add(dsXLBZ.Tables[0].Rows[i]["XLBZ_XLBZID"].ToString().Trim(), dsXLBZ.Tables[0].Rows[i]["XLBZ_XLBZLXMC"].ToString().Trim());
}
}
foreach (DataRow Row in ds.Tables[0].Rows)
{
if (!Row[0].ToString().Trim().Equals("") && !Row[1].ToString().Trim().Equals(""))
{
string sXLXHID = sGetCellTest(Row, 0).Trim();
string sXLGGID = sGetCellTest(Row, 1).Trim();
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("×", "*");
}
string sXLBZID = XLBJDUtils.GetBZXLZBZID(sGetCellTest(Row, 2).Trim(), sDefaultXLBZID, dicDRMXBZ);
string sXLDYDJ = sGetCellTest(Row, 3).Trim();
if (sXLXHID.Equals("") || sXLGGID.Equals(""))
continue;
XLBJDUtils.ExistCLQD(ref sXLXHID, ref sXLGGID, ref sXLBZID, ref sXLDYDJ);
int iXH = CMISproDataBase.GetMaxXH("DBERP", "XLXSBJDMX", "XLXSBJDMX_XH", "XLXSBJDMX_BJDID='" + txtBJDID.Value.Trim() + "'") + 1;
int iXSSX = CMISproDataBase.GetMaxXH("DBERP", "XLXSBJDMX", "XLXSBJDMX_XSSX", "XLXSBJDMX_BJDID = '" + txtBJDID.Value.Trim() + "'") + 1;
if (iStartXH == 0)
{
iStartXH = iXH;
}
string sJLDW = sGetCellTest(Row, 4);
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 = CMISproConvert.StrToFloat(sGetCellTest(Row, 5), 0);
if (fBJSL < 0)
fBJSL = 0;
string sBJCP = "";
try
{
sBJCP = sGetCellTest(Row, 6);
}
catch
{
sBJCP = "";
}
string sYSCP = "";
try
{
sYSCP = sGetCellTest(Row, indexYSCP);
}
catch
{
sYSCP = "";
}
double dYXJG = 0;
try
{
dYXJG = CMISproConvert.StrToFloat(sGetCellTest(Row, indexYXJ), 0);
if (dYXJG < 0)
dYXJG = 0;
}
catch
{
dYXJG = 0;
}
string sYZ = "";
try
{
sYZ = sGetCellTest(Row, indexYZ);
}
catch
{
sYZ = "";
}
string sBH = "";
try
{
sBH = sGetCellTest(Row, indexBH);
}
catch
{
sBH = "";
}
double dCPBJXJ = 0;
try
{
dCPBJXJ = CMISproConvert.StrToFloat(sGetCellTest(Row, indexCPBJXJ), 0);
if (dCPBJXJ < 0)
dCPBJXJ = 0;
}
catch
{
dCPBJXJ = 0;
}
double dBJJEXJ = 0;
try
{
dBJJEXJ = CMISproConvert.StrToFloat(sGetCellTest(Row, indexBJJEXJ), 0);
if (dBJJEXJ < 0)
dBJJEXJ = 0;
}
catch
{
dBJJEXJ = 0;
}
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_YSCP, XLXSBJDMX_BJCP,XLXSBJDMX_BJCPSD,XLXSBJDMX_WGCPBZ, ");
sSQL.Add(" XLXSBJDMX_JLDW, XLXSBJDMX_BJSL, XLXSBJDMX_JGBBJ, XLXSBJDMX_TZQCPBJ,XLXSBJDMX_TZCPBJ,XLXSBJDMX_CPBJ, XLXSBJDMX_TZQBJJE,XLXSBJDMX_BJJE, XLXSBJDMX_JGBJJ,XLXSBJDMX_CLCB,XLXSBJDMX_JGBBJLJJCL,XLXSBJDMX_JGBBJJCL,XLXSBJDMX_JGBBJJCE,XLXSBJDMX_CLZL, ");
sSQL.Add(" XLXSBJDMX_BJDHQCLCB,XLXSBJDMX_CLCBJCL,XLXSBJDMX_YXJG,XLXSBJDMX_YZ,XLXSBJDMX_FBH,XLXSBJDMX_CPBJXJ,XLXSBJDMX_BJJEXJ,XLXSBJDMX_BZ,XLXSBJDMX_DZSC, XLXSBJDMX_WHRID, XLXSBJDMX_WHR, XLXSBJDMX_WHSJ)");
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_YSCP, :XLXSBJDMX_BJCP,:XLXSBJDMX_BJCPSD,:XLXSBJDMX_WGCPBZ, ");
sSQL.Add(" :XLXSBJDMX_JLDW, :XLXSBJDMX_BJSL, :XLXSBJDMX_JGBBJ, :XLXSBJDMX_TZQCPBJ,:XLXSBJDMX_TZCPBJ,:XLXSBJDMX_CPBJ, :XLXSBJDMX_TZQBJJE,:XLXSBJDMX_BJJE, :XLXSBJDMX_JGBJJ,:XLXSBJDMX_CLCB,:XLXSBJDMX_JGBBJLJJCL,:XLXSBJDMX_JGBBJJCL,:XLXSBJDMX_JGBBJJCE,:XLXSBJDMX_CLZL, ");
sSQL.Add(" :XLXSBJDMX_BJDHQCLCB,:XLXSBJDMX_CLCBJCL,:XLXSBJDMX_YXJG,:XLXSBJDMX_YZ,:XLXSBJDMX_FBH,:XLXSBJDMX_CPBJXJ,:XLXSBJDMX_BJJEXJ,:XLXSBJDMX_BZ,:XLXSBJDMX_DZSC, :XLXSBJDMX_WHRID, :XLXSBJDMX_WHR, :XLXSBJDMX_WHSJ)");
sSQL.ParamByName("XLXSBJDMX_BJDID").Value = txtBJDID.Value.Trim();
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 = sXLDYDJ;
sSQL.ParamByName("XLXSBJDMX_XDXLXHID").Value = sXLXHID;
sSQL.ParamByName("XLXSBJDMX_XDXLBZID").Value = sXLBZID;
sSQL.ParamByName("XLXSBJDMX_XLYSID").Value = XLBJDInfo.GetDefaultYSID(sXLXHID, sXLGGID);
if (!sBJCP.Trim().Equals(""))
{
sSQL.ParamByName("XLXSBJDMX_BJCP").Value = sBJCP;
sSQL.ParamByName("XLXSBJDMX_BJCPSD").Value = "Y";
}
else
{
if (string.IsNullOrEmpty(sXLDYDJ))
sSQL.ParamByName("XLXSBJDMX_BJCP").Value = sXLXHID + " " + sXLGGID;
else
sSQL.ParamByName("XLXSBJDMX_BJCP").Value = sXLXHID + "-" + sXLDYDJ + " " + sXLGGID;
sSQL.ParamByName("XLXSBJDMX_BJCPSD").Value = "N";
}
//即使不是基础计量单位,也应当直接导入。
sSQL.ParamByName("XLXSBJDMX_JLDW").Value = sJLDW;
sSQL.ParamByName("XLXSBJDMX_BJSL").Value = fBJSL;
sSQL.ParamByName("XLXSBJDMX_YXJG").Value = dYXJG;
sSQL.ParamByName("XLXSBJDMX_YZ").Value = sYZ;
sSQL.ParamByName("XLXSBJDMX_YSCP").Value = sYSCP;
sSQL.ParamByName("XLXSBJDMX_JGBBJ").Value = 0.0;
sSQL.ParamByName("XLXSBJDMX_TZQCPBJ").Value = 0.0;
sSQL.ParamByName("XLXSBJDMX_TZCPBJ").Value = 0;
sSQL.ParamByName("XLXSBJDMX_CPBJ").Value = 0.0;
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).ToString();
sSQL.ParamByName("XLXSBJDMX_TZQBJJE").Value = sSQL.ParamByName("XLXSBJDMX_BJJE").Value;
sSQL.ParamByName("XLXSBJDMX_JGBBJJCE").Value = 0;
sSQL.ParamByName("XLXSBJDMX_JGBBJJCL").Value = 0;
sSQL.ParamByName("XLXSBJDMX_JGBBJLJJCL").Value = 0;
sSQL.ParamByName("XLXSBJDMX_CLCBJCL").Value = 0;
sSQL.ParamByName("XLXSBJDMX_FBH").Value = sBH;
sSQL.ParamByName("XLXSBJDMX_CPBJXJ").Value = dCPBJXJ;
sSQL.ParamByName("XLXSBJDMX_BJJEXJ").Value = dBJJEXJ;
sSQL.ParamByName("XLXSBJDMX_WGCPBZ").Value = "N";
sSQL.ParamByName("XLXSBJDMX_BZ").Value = "";
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, txtBJDID.Value.Trim(), "", iStartXH - 1, ref sErrorNum);
XLBJDUtils.SyncXLXSBJXLGGTHB_ByXLXSBJDMX_Batch(dberp, tSession, txtBJDID.Value.Trim(), "", iStartXH - 1);
if (bNeedUp)
{
XLBJDCalcUtils.CalcBJDMXAfterIns(dberp, sSQL, txtBJDID.Value.Trim(), iStartXH, GetOption("BJU002"), sBJU003, GetOption("BJU018"), tSession.UserId, tSession.UserName, ref sErrorNum);
}
}
private void ExcelColumnValid(DataSet ds)
{
Dictionary<string, string> ColumnNames = new Dictionary<string, string>();
ColumnNames.Add("0", "型号");
ColumnNames.Add("1", "规格");
ColumnNames.Add("2", "标准");
ColumnNames.Add("3", "电压等级");
ColumnNames.Add("4", "计量单位");
ColumnNames.Add("5", "报价数量");
ColumnNames.Add("6", "报价产品");
int ColumnIndex = 6;
if (PageParam.GetRTrimString("XSYSCP") == "Y")
{
ColumnIndex++;
ColumnNames.Add(ColumnIndex.ToString(), "原始产品");
}
if (PageParam.GetRTrimString("XSYXJ") == "Y")
{
ColumnIndex++;
ColumnNames.Add(ColumnIndex.ToString(), "意向价");
}
if (PageParam.GetRTrimString("XSYZ") == "Y")
{
ColumnIndex++;
ColumnNames.Add(ColumnIndex.ToString(), "印字");
}
if (PageParam.GetRTrimString("XSBH") == "Y")
{
ColumnIndex++;
ColumnNames.Add(ColumnIndex.ToString(), "包号");
}
if (PageParam.GetRTrimString("XSCPBJXJ") == "Y")
{
ColumnIndex++;
ColumnNames.Add(ColumnIndex.ToString(), "产品报价限价");
ColumnIndex++;
ColumnNames.Add(ColumnIndex.ToString(), "报价金额限价");
}
for (int i = 0; i < 6; i++)
{
try
{
if (!ds.Tables[0].Columns[i].ColumnName.Trim().Equals(ColumnNames[i.ToString()].Trim()))
{
throw new Exception("栏目[" + ds.Tables[0].Columns[i].ColumnName + "]与导入文件要求的栏目格式不一致!");
}
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
}
}
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", "");
}
#endregion
}
}