593 lines
28 KiB
C#
593 lines
28 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
|
||
{
|
||
[TableMap(DB = "DBERP", DbTableName = "XLXSCLHQFD", Umid = 100860012, IsWorkFlow = false)]
|
||
public class XLXSBJCL_HQFDKR : EntityManager
|
||
{
|
||
}
|
||
|
||
public partial class XLXSBJCL_HQFDKRInfo : SingleCardBase
|
||
{
|
||
XLXSBJCL_HQFDKR entity = new XLXSBJCL_HQFDKR();
|
||
|
||
#region Page类事件继承
|
||
|
||
protected void Page_Load(object sender, EventArgs e)
|
||
{
|
||
this.UMID = 100860012;
|
||
this.UMName = "线缆销售报价材料";
|
||
base.CurMaster = Master;
|
||
this.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();
|
||
}
|
||
|
||
#endregion
|
||
|
||
#region 模板事件继承
|
||
|
||
|
||
#endregion
|
||
|
||
#region 控件事件
|
||
protected void btnQD_Click(object sender, EventArgs e)
|
||
{
|
||
double iMMD = txtMMD.Value;
|
||
double iNND = txtNND.Value;
|
||
if (iMMD < 0)
|
||
{
|
||
ShowMessage("向前增扩分段数不允许为负数!");
|
||
return;
|
||
}
|
||
|
||
if (iNND < 0)
|
||
{
|
||
ShowMessage("向后增扩分段数不允许为负数!");
|
||
return;
|
||
}
|
||
|
||
double FDCount = iMMD + iNND;
|
||
string sBJCLID = PageParam.GetRTrimString("BJCLID");
|
||
//错误代码
|
||
int error = 0;
|
||
//环始
|
||
string PreData = "";
|
||
//环止
|
||
string NexData = "";
|
||
|
||
//环始value
|
||
double PreDataValue_HSJGS = 0.0;
|
||
double PreDataValue_HSJGZ = 0.0;
|
||
double PreDataValue_CLJGS = 0.0;
|
||
double PreDataValue_CLJGZ = 0.0;
|
||
//环止value
|
||
double NexDataValue_HSJGS = 0.0;
|
||
double NexDataValue_HSJGZ = 0.0;
|
||
double NexDataValue_CLJGS = 0.0;
|
||
double NexDataValue_CLJGZ = 0.0;
|
||
|
||
//含税价格步长
|
||
double fPreHSJG = 0.0;
|
||
//无税价格步长
|
||
double fPreCLJG = 0.0;
|
||
|
||
double fHSJGCount = 0.0;
|
||
double fCLJGCount = 0.0;
|
||
//先判断最大分段数
|
||
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
|
||
TSQL sSQL = new TSQL(dberp);
|
||
sSQL.Clear();
|
||
sSQL.Add(" select count(XLXSCLHQFD_BJCLID) from XLXSCLHQFD where XLXSCLHQFD_BJCLID=:XLXSCLHQFD_BJCLID ");
|
||
sSQL.ParamByName("XLXSCLHQFD_BJCLID").Value = sBJCLID;
|
||
DataSet dsFDCount = dberp.OpenDataSet(sSQL);
|
||
if (dsFDCount.Tables[0].Rows.Count > 0)
|
||
{
|
||
if ((FDCount + CMISproConvert.StrToFloat(dsFDCount.Tables[0].Rows[0][0].ToString().Trim())) > 250)
|
||
{
|
||
|
||
ShowMessage("分段数不允许超过250!");
|
||
return;
|
||
}
|
||
}
|
||
else
|
||
{
|
||
if (FDCount > 250)
|
||
{
|
||
|
||
ShowMessage("分段数不允许超过250!");
|
||
return;
|
||
}
|
||
}
|
||
//从拆分的步长判断-暂不处理。
|
||
error = 1;
|
||
//查询环状始,环状止。
|
||
sSQL.Clear();
|
||
sSQL.Add(" select XLXSCLHQFD_HSJGZ,XLXSCLHQFD_HSJGS,XLXSCLHQFD_CLJGZ,XLXSCLHQFD_CLJGS,");
|
||
sSQL.Add(" XLXSCLHQFD_HSJGZ-XLXSCLHQFD_HSJGS as HSJGPX,XLXSCLHQFD_CLJGZ-XLXSCLHQFD_CLJGS as CLJGPX,");
|
||
sSQL.Add(" XLXSCLHQFD_CLHQDH from XLXSCLHQFD where XLXSCLHQFD_BJCLID=:XLXSCLHQFD_BJCLID order by XLXSCLHQFD_HSJGS ");
|
||
sSQL.ParamByName("XLXSCLHQFD_BJCLID").Value = sBJCLID;
|
||
DataSet dsFDCir = dberp.OpenDataSet(sSQL);
|
||
//包含01
|
||
if (dsFDCir.Tables[0].Rows.Count > 0)
|
||
{
|
||
PreDataValue_HSJGS = CMISproConvert.StrToFloat(dsFDCir.Tables[0].Rows[0]["XLXSCLHQFD_HSJGS"].ToString().Trim());
|
||
PreDataValue_HSJGZ = CMISproConvert.StrToFloat(dsFDCir.Tables[0].Rows[0]["XLXSCLHQFD_HSJGZ"].ToString().Trim());
|
||
PreDataValue_CLJGS = CMISproConvert.StrToFloat(dsFDCir.Tables[0].Rows[0]["XLXSCLHQFD_CLJGS"].ToString().Trim());
|
||
PreDataValue_CLJGZ = CMISproConvert.StrToFloat(dsFDCir.Tables[0].Rows[0]["XLXSCLHQFD_CLJGZ"].ToString().Trim());
|
||
|
||
NexDataValue_HSJGS = CMISproConvert.StrToFloat(dsFDCir.Tables[0].Rows[dsFDCir.Tables[0].Rows.Count - 1]["XLXSCLHQFD_HSJGS"].ToString().Trim());
|
||
NexDataValue_HSJGZ = CMISproConvert.StrToFloat(dsFDCir.Tables[0].Rows[dsFDCir.Tables[0].Rows.Count - 1]["XLXSCLHQFD_HSJGZ"].ToString().Trim());
|
||
NexDataValue_CLJGS = CMISproConvert.StrToFloat(dsFDCir.Tables[0].Rows[dsFDCir.Tables[0].Rows.Count - 1]["XLXSCLHQFD_CLJGS"].ToString().Trim());
|
||
NexDataValue_CLJGZ = CMISproConvert.StrToFloat(dsFDCir.Tables[0].Rows[dsFDCir.Tables[0].Rows.Count - 1]["XLXSCLHQFD_CLJGZ"].ToString().Trim());
|
||
|
||
PreData = dsFDCir.Tables[0].Rows[0]["XLXSCLHQFD_CLHQDH"].ToString().Trim();
|
||
NexData = dsFDCir.Tables[0].Rows[dsFDCir.Tables[0].Rows.Count - 1]["XLXSCLHQFD_CLHQDH"].ToString().Trim();
|
||
|
||
//计算平均步长
|
||
for (int i = 0; i < dsFDCir.Tables[0].Rows.Count; i++)
|
||
{
|
||
fHSJGCount += CMISproConvert.StrToFloat(dsFDCir.Tables[0].Rows[i]["HSJGPX"].ToString().Trim());
|
||
fCLJGCount += CMISproConvert.StrToFloat(dsFDCir.Tables[0].Rows[i]["CLJGPX"].ToString().Trim());
|
||
}
|
||
fPreHSJG = NumberUtils.RoundX(fHSJGCount / dsFDCir.Tables[0].Rows.Count, XLBJDUtils.BJCLPriceDecimal);
|
||
fPreCLJG = NumberUtils.RoundX(fCLJGCount / dsFDCir.Tables[0].Rows.Count, XLBJDUtils.BJCLPriceDecimal);
|
||
}
|
||
else
|
||
{
|
||
|
||
}
|
||
PreData = PreData.PadLeft(2, '0');
|
||
NexData = NexData.PadLeft(2, '0');
|
||
error =2;
|
||
//环状始开始分段。
|
||
//MM分段
|
||
string sCLHQDH = "";
|
||
List<string> lst = new List<string>();
|
||
lst.Clear();
|
||
try
|
||
{
|
||
dberp.BeginTrans();
|
||
if (iMMD > 0)
|
||
{
|
||
for (int i = 0; i < iMMD; i++)
|
||
{
|
||
#region 增补段数信息
|
||
//PreData < NexData
|
||
if (int36Convert10(PreData) <= int36Convert10(NexData))
|
||
{
|
||
if (PreData.Equals("00"))
|
||
{
|
||
sCLHQDH = "ZZ";
|
||
}
|
||
else
|
||
{
|
||
sCLHQDH = int10Convert36(int36Convert10(PreData) - 1).ToString().PadLeft(2, '0');
|
||
}
|
||
}
|
||
//PreData > NexData
|
||
else
|
||
{
|
||
sCLHQDH = int10Convert36(int36Convert10(PreData) - 1).ToString().PadLeft(2, '0');
|
||
}
|
||
PreData = sCLHQDH;
|
||
sSQL.Clear();
|
||
sSQL.Add(" insert into XLXSCLHQFD( ");
|
||
sSQL.Add(" XLXSCLHQFD_BJCLID,XLXSCLHQFD_CLHQDH, ");
|
||
sSQL.Add(" XLXSCLHQFD_HSJGS,XLXSCLHQFD_HSJGZ,XLXSCLHQFD_CLJGS,XLXSCLHQFD_CLJGZ, ");
|
||
sSQL.Add(" XLXSCLHQFD_WHRID,XLXSCLHQFD_WHR,XLXSCLHQFD_WHSJ ");
|
||
sSQL.Add(" ) ");
|
||
sSQL.Add(" values( ");
|
||
sSQL.Add(" :XLXSCLHQFD_BJCLID,:XLXSCLHQFD_CLHQDH, ");
|
||
sSQL.Add(" :XLXSCLHQFD_HSJGS,:XLXSCLHQFD_HSJGZ,:XLXSCLHQFD_CLJGS,:XLXSCLHQFD_CLJGZ, ");
|
||
sSQL.Add(" :XLXSCLHQFD_WHRID,:XLXSCLHQFD_WHR,:XLXSCLHQFD_WHSJ ");
|
||
sSQL.Add(" ) ");
|
||
sSQL.ParamByName("XLXSCLHQFD_BJCLID").Value = sBJCLID;
|
||
sSQL.ParamByName("XLXSCLHQFD_CLHQDH").Value = sCLHQDH;
|
||
//防止减法导致多位小数
|
||
sSQL.ParamByName("XLXSCLHQFD_HSJGS").Value = NumberUtils.RoundX(PreDataValue_HSJGS - XLBJDUtils.ModifiedNum - fPreHSJG, 5);
|
||
sSQL.ParamByName("XLXSCLHQFD_HSJGZ").Value = NumberUtils.RoundX(PreDataValue_HSJGS - XLBJDUtils.ModifiedNum, 5);
|
||
sSQL.ParamByName("XLXSCLHQFD_CLJGS").Value = NumberUtils.RoundX(PreDataValue_CLJGS - XLBJDUtils.ModifiedNum - fPreCLJG, 5);
|
||
sSQL.ParamByName("XLXSCLHQFD_CLJGZ").Value = NumberUtils.RoundX(PreDataValue_CLJGS - XLBJDUtils.ModifiedNum, 5);
|
||
sSQL.ParamByName("XLXSCLHQFD_WHRID").Value = tSession.UserId;
|
||
sSQL.ParamByName("XLXSCLHQFD_WHR").Value = tSession.UserName;
|
||
sSQL.ParamByName("XLXSCLHQFD_WHSJ").Value = DateTime.Now;
|
||
|
||
PreDataValue_HSJGS = PreDataValue_HSJGS - XLBJDUtils.ModifiedNum - fPreHSJG;
|
||
PreDataValue_CLJGS = PreDataValue_CLJGS - XLBJDUtils.ModifiedNum - fPreCLJG;
|
||
dberp.ExecSQL(sSQL);
|
||
|
||
lst.Add(sCLHQDH);
|
||
#endregion
|
||
}
|
||
}
|
||
error = 3;
|
||
//环状止开始分段
|
||
if (iNND > 0)
|
||
{
|
||
for (int i = 0; i < iNND; i++)
|
||
{
|
||
#region 增补段数信息
|
||
sCLHQDH = int10Convert36(int36Convert10(NexData) + 1).ToString().PadLeft(2, '0');
|
||
NexData = sCLHQDH;
|
||
sSQL.Clear();
|
||
sSQL.Add(" insert into XLXSCLHQFD( ");
|
||
sSQL.Add(" XLXSCLHQFD_BJCLID,XLXSCLHQFD_CLHQDH, ");
|
||
sSQL.Add(" XLXSCLHQFD_HSJGS,XLXSCLHQFD_HSJGZ,XLXSCLHQFD_CLJGS,XLXSCLHQFD_CLJGZ, ");
|
||
sSQL.Add(" XLXSCLHQFD_WHRID,XLXSCLHQFD_WHR,XLXSCLHQFD_WHSJ ");
|
||
sSQL.Add(" ) ");
|
||
sSQL.Add(" values( ");
|
||
sSQL.Add(" :XLXSCLHQFD_BJCLID,:XLXSCLHQFD_CLHQDH, ");
|
||
sSQL.Add(" :XLXSCLHQFD_HSJGS,:XLXSCLHQFD_HSJGZ,:XLXSCLHQFD_CLJGS,:XLXSCLHQFD_CLJGZ, ");
|
||
sSQL.Add(" :XLXSCLHQFD_WHRID,:XLXSCLHQFD_WHR,:XLXSCLHQFD_WHSJ ");
|
||
sSQL.Add(" ) ");
|
||
sSQL.ParamByName("XLXSCLHQFD_BJCLID").Value = sBJCLID;
|
||
sSQL.ParamByName("XLXSCLHQFD_CLHQDH").Value = sCLHQDH;
|
||
sSQL.ParamByName("XLXSCLHQFD_HSJGS").Value = NumberUtils.RoundX(NexDataValue_HSJGZ + XLBJDUtils.ModifiedNum, 5);
|
||
sSQL.ParamByName("XLXSCLHQFD_HSJGZ").Value = NumberUtils.RoundX(NexDataValue_HSJGZ + XLBJDUtils.ModifiedNum + fPreHSJG, 5);
|
||
sSQL.ParamByName("XLXSCLHQFD_CLJGS").Value = NumberUtils.RoundX(NexDataValue_CLJGZ + XLBJDUtils.ModifiedNum, 5);
|
||
sSQL.ParamByName("XLXSCLHQFD_CLJGZ").Value = NumberUtils.RoundX(NexDataValue_CLJGZ + XLBJDUtils.ModifiedNum + fPreCLJG, 5);
|
||
sSQL.ParamByName("XLXSCLHQFD_WHRID").Value = tSession.UserId;
|
||
sSQL.ParamByName("XLXSCLHQFD_WHR").Value = tSession.UserName;
|
||
sSQL.ParamByName("XLXSCLHQFD_WHSJ").Value = DateTime.Now;
|
||
|
||
NexDataValue_HSJGZ = NexDataValue_HSJGZ + XLBJDUtils.ModifiedNum + fPreHSJG;
|
||
NexDataValue_CLJGZ = NexDataValue_CLJGZ + XLBJDUtils.ModifiedNum + fPreCLJG;
|
||
dberp.ExecSQL(sSQL);
|
||
|
||
lst.Add(sCLHQDH);
|
||
#endregion
|
||
|
||
|
||
}
|
||
}
|
||
lst.Sort();
|
||
error = 4;
|
||
//每新增一个段号pNewDH,需要按如下语句同步生成XLXSJGBPZJGB和XLXSJGBPZCLHQFD数据
|
||
//例如铜铝(铜3段,铝7段),铜自增1,铜铝自增7(铝的段数)。
|
||
#region 增补对应XLXSJGBPZJGB与XLXSJGBPZCLHQFD数据
|
||
//优先增补100860036|价格目录配置模块 单行情分段材料的配置单号数据。
|
||
//查询
|
||
string sJGBPZDH = "";
|
||
string sCLHQZH = "";
|
||
|
||
//中断标志
|
||
int flag = 0;
|
||
//原记录数
|
||
double dZHCount = 0;
|
||
string sBJCLIDS = "";
|
||
string sCPMLID = "";
|
||
|
||
|
||
//存组号用
|
||
DataSet dsArr = new DataSet();
|
||
sSQL.Clear();
|
||
sSQL.Add(" select XLXSJGBPZ_BJCLIDS,XLXSJGBPZ_JGBPZDH,XLXSJGBPZ_CPMLID from XLXSJGBPZ where isnull(XLXSJGBPZ_BJCLIDS,' ') <>' ' ");
|
||
sSQL.Add(" and ',' || rtrim(XLXSJGBPZ_BJCLIDS)||',' like :pBJCLID ");
|
||
sSQL.Add(" order by XLXSJGBPZ_JGBPZDH ");
|
||
sSQL.ParamByName("pBJCLID").Value = "%," + sBJCLID + ",%";
|
||
DataSet dsJGBPZ = dberp.OpenDataSet(sSQL);
|
||
if (dsJGBPZ.Tables[0].Rows.Count > 0)
|
||
{
|
||
|
||
for (int i = 0; i < dsJGBPZ.Tables[0].Rows.Count; i++)
|
||
{
|
||
//此处可能单报价材料或多报价材料
|
||
sBJCLIDS = dsJGBPZ.Tables[0].Rows[i]["XLXSJGBPZ_BJCLIDS"].ToString().Trim();
|
||
sJGBPZDH = dsJGBPZ.Tables[0].Rows[i]["XLXSJGBPZ_JGBPZDH"].ToString().Trim();
|
||
sCPMLID = dsJGBPZ.Tables[0].Rows[i]["XLXSJGBPZ_CPMLID"].ToString().Trim();
|
||
flag = 0;
|
||
//派生价格表按钮会重建分组,此处只处理已经有价格表的。
|
||
if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select top 1 XLXSJGBPZJGB_CLHQZH from XLXSJGBPZJGB where XLXSJGBPZJGB_JGBPZDH = '{0}' and isnull(XLXSJGBPZJGB_JGBID,' ')<>' '",
|
||
sJGBPZDH)))
|
||
{
|
||
error = 5;
|
||
//单报价材料
|
||
string[] sTmp = sBJCLIDS.Trim().Split(new Char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
|
||
if (sTmp.Length <= 1)
|
||
{
|
||
error = 6;
|
||
if (!sBJCLIDS.Trim().Equals(""))
|
||
{
|
||
IncXLXSJGBPZCLHQFD_Sig(dberp, sSQL, sJGBPZDH, sBJCLID, lst);
|
||
}
|
||
error = 7;
|
||
}
|
||
//多报价材料
|
||
else
|
||
{
|
||
error = 8;
|
||
//从数据量较小的部分取最大值-也可从XLXSJGBPZCLHQFD取最大值
|
||
sSQL.Clear();
|
||
sSQL.Add(" select XLXSJGBPZJGB_CLHQZH from XLXSJGBPZJGB ");
|
||
sSQL.Add(" where 1 = 1 and XLXSJGBPZJGB_JGBPZDH=:pJGBPZDH ");
|
||
sSQL.Add(" order by XLXSJGBPZJGB_CLHQZH desc ");
|
||
sSQL.ParamByName("pJGBPZDH").Value = sJGBPZDH;
|
||
DataSet dsHQFD = dberp.OpenDataSet(sSQL);
|
||
if (dsHQFD.Tables[0].Rows.Count > 0)
|
||
{
|
||
dZHCount = dsHQFD.Tables[0].Rows.Count;
|
||
sCLHQZH = dsHQFD.Tables[0].Rows[0]["XLXSJGBPZJGB_CLHQZH"].ToString().Trim();
|
||
}
|
||
else
|
||
{
|
||
throw new Exception("获取最大材料行情组号异常!");
|
||
}
|
||
|
||
error = 9;
|
||
//将所有的对应的来源添加至二维不等长数组-不考虑报价材料的顺序问题
|
||
string[][] Arr = new string[sTmp.Length][];
|
||
List<string[]> lstArr = new List<string[]>();
|
||
List<string> lstBJCL = new List<string>();
|
||
lstArr.Clear();
|
||
lstBJCL.Clear();
|
||
for (int j = 0; j < sTmp.Length; j++)
|
||
{
|
||
lstBJCL.Add(sTmp[j]);
|
||
sSQL.Clear();
|
||
sSQL.Add(" select XLXSCLHQFD_CLHQDH,XLXSCLHQFD_BJCLID from XLXSCLHQFD where 1 = 1 ");
|
||
sSQL.Add(" and XLXSCLHQFD_BJCLID =:pBJCLID ");
|
||
sSQL.Add(" order by XLXSCLHQFD_HSJGS ");
|
||
sSQL.ParamByName("pBJCLID").Value = sTmp[j];
|
||
DataSet data = dberp.OpenDataSet(sSQL);
|
||
if (data.Tables[0].Rows.Count > 0)
|
||
{
|
||
if (sTmp[j].Trim().Equals(sBJCLID))
|
||
{
|
||
error = 10;
|
||
Arr[j] = new string[lst.Count];
|
||
for (int k = 0; k < lst.Count; k++)
|
||
{
|
||
Arr[j][k] = lst[k].ToString().Trim();
|
||
}
|
||
}
|
||
else
|
||
{
|
||
error = 11;
|
||
Arr[j] = new string[data.Tables[0].Rows.Count];
|
||
for (int k = 0; k < data.Tables[0].Rows.Count; k++)
|
||
{
|
||
Arr[j][k] = data.Tables[0].Rows[k]["XLXSCLHQFD_CLHQDH"].ToString().Trim();
|
||
}
|
||
|
||
}
|
||
}
|
||
else
|
||
{
|
||
//此处应当限制,以防止有误。
|
||
flag = 1;
|
||
break;
|
||
}
|
||
|
||
}
|
||
if (1 == flag)
|
||
{
|
||
throw new Exception("对应的基价价格表不存在材料行情组号!");
|
||
}
|
||
|
||
error = 12;
|
||
//二维不等长数组转笛卡尔积
|
||
for (int k = 0; k < Arr.Length; k++)
|
||
{
|
||
lstArr.Add(Arr[k]);
|
||
}
|
||
List<string> result = new List<string>();
|
||
Descartes(lstArr, 0, result, string.Empty);
|
||
error = 13;
|
||
if (result.Count + dZHCount >= 1679616)
|
||
{
|
||
throw new Exception("待生成的材料行情分组个数过多,当下最多只能存储1679615个!操作中止!");
|
||
}
|
||
|
||
|
||
IncXLXSJGBPZCLHQFD_Dob(dberp, sSQL, sJGBPZDH, sCLHQZH, lstBJCL, result);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
#endregion
|
||
dberp.CommitTrans();
|
||
|
||
ShowMessage("材料行情扩容成功!");
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
dberp.RollbackTrans();
|
||
ShowMessage("扩容失败,请联系系统管理员,错误信息:" + error.ToString() + "|" + ex);
|
||
CloseWindow();
|
||
}
|
||
|
||
|
||
DialogOperationScript dos = new DialogOperationScript(this);
|
||
dos.ClickOwnerButton(PageParam.GetRTrimString("btnRefresh1CID"));
|
||
dos.CloseSelf();
|
||
dos.Execute();
|
||
}
|
||
|
||
protected void btnQX_Click(object sender, EventArgs e)
|
||
{
|
||
CloseWindow();
|
||
}
|
||
|
||
#endregion
|
||
|
||
#region 自定义事件
|
||
//二维数组转笛卡尔积
|
||
private static string Descartes(List<string[]> list, int count, List<string> result, string data)
|
||
{
|
||
string temp = data;
|
||
//获取当前数组
|
||
string[] astr = list[count];
|
||
//循环当前数组
|
||
foreach (string item in astr)
|
||
{
|
||
if (count + 1 < list.Count)
|
||
{
|
||
temp += Descartes(list, count + 1, result, data + item + ",");
|
||
}
|
||
else
|
||
{
|
||
result.Add(data + item);
|
||
}
|
||
|
||
}
|
||
|
||
return temp;
|
||
}
|
||
|
||
// 10进制转换成36进制
|
||
public static string int10Convert36(int i)
|
||
{
|
||
string str = "";
|
||
while (i > 35)
|
||
{
|
||
int j = i % 36;
|
||
str += ((j <= 9) ? Convert.ToChar(j + '0') : Convert.ToChar(j - 10 + 'A'));
|
||
i = i / 36;
|
||
}
|
||
str += ((i <= 9) ? Convert.ToChar(i + '0') : Convert.ToChar(i - 10 + 'A'));
|
||
|
||
Char[] c = str.ToCharArray();
|
||
Array.Reverse(c);
|
||
return new string(c);
|
||
}
|
||
|
||
//36进制转10进制
|
||
public static int int36Convert10(string str)
|
||
{
|
||
int d = 0;
|
||
int b;
|
||
char[] ch = str.ToCharArray();
|
||
int j = 0;
|
||
for (int i = ch.Length - 1; i >= 0; i--)
|
||
{
|
||
char c = ch[i];
|
||
b = 1;
|
||
for (int t = 0; t < j; t++)
|
||
b = b * 36;
|
||
j++;
|
||
int cc;
|
||
if (c >= '0' && c <= '9')
|
||
cc = Convert.ToInt32(c) - 48;
|
||
else
|
||
cc = Convert.ToInt32(c) - 65 + 10;
|
||
d += cc * b;
|
||
}
|
||
return d;
|
||
}
|
||
|
||
//单报价材料增加
|
||
public void IncXLXSJGBPZCLHQFD_Sig(TDatabase dberp, TSQL SQL, string sJGBPZDH, string sBJCLID, List<string> lst)
|
||
{
|
||
string sCLHQZH = "";
|
||
SQL.Clear();
|
||
SQL.Add(" select XLXSJGBPZCLHQFD_JGBPZDH,XLXSJGBPZCLHQFD_CLHQZH,XLXSJGBPZCLHQFD_BJCLID from XLXSJGBPZCLHQFD ");
|
||
SQL.Add(" where 1 = 1 and XLXSJGBPZCLHQFD_JGBPZDH=:pJGBPZDH and XLXSJGBPZCLHQFD_BJCLID = :pBJCLID ");
|
||
SQL.Add(" order by XLXSJGBPZCLHQFD_CLHQZH desc ");
|
||
SQL.ParamByName("pJGBPZDH").Value = sJGBPZDH;
|
||
SQL.ParamByName("pBJCLID").Value = sBJCLID;
|
||
DataSet dsHQFD = dberp.OpenDataSet(SQL);
|
||
if (dsHQFD.Tables[0].Rows.Count > 0)
|
||
{
|
||
sCLHQZH = dsHQFD.Tables[0].Rows[0]["XLXSJGBPZCLHQFD_CLHQZH"].ToString().Trim();
|
||
if (int36Convert10(sCLHQZH) + lst.Count >= 1679616)
|
||
{
|
||
throw new Exception(String.Format("配置单号【{0}】扩容长度已达最大1679615,不允许扩容!", sJGBPZDH));
|
||
}
|
||
|
||
foreach (string sCLHQDH in lst)
|
||
{
|
||
//组号一直追加
|
||
sCLHQZH = int10Convert36(int36Convert10(sCLHQZH) + 1).PadLeft(4,'0');
|
||
SQL.Clear();
|
||
SQL.Add(" insert into XLXSJGBPZCLHQFD(XLXSJGBPZCLHQFD_JGBPZDH,XLXSJGBPZCLHQFD_CLHQZH,XLXSJGBPZCLHQFD_BJCLID,XLXSJGBPZCLHQFD_CLHQDH) ");
|
||
SQL.Add(" values(:XLXSJGBPZCLHQFD_JGBPZDH,:XLXSJGBPZCLHQFD_CLHQZH,:XLXSJGBPZCLHQFD_BJCLID,:XLXSJGBPZCLHQFD_CLHQDH) ");
|
||
SQL.ParamByName("XLXSJGBPZCLHQFD_JGBPZDH").Value = sJGBPZDH;
|
||
SQL.ParamByName("XLXSJGBPZCLHQFD_CLHQZH").Value = sCLHQZH;
|
||
SQL.ParamByName("XLXSJGBPZCLHQFD_BJCLID").Value = sBJCLID;
|
||
SQL.ParamByName("XLXSJGBPZCLHQFD_CLHQDH").Value = sCLHQDH;
|
||
dberp.ExecSQL(SQL);
|
||
|
||
SQL.Clear();
|
||
SQL.Add("insert into XLXSJGBPZJGB(XLXSJGBPZJGB_JGBPZDH,XLXSJGBPZJGB_CLHQZH,XLXSJGBPZJGB_WHRID,XLXSJGBPZJGB_WHR,XLXSJGBPZJGB_WHSJ) ");
|
||
SQL.Add("values(:XLXSJGBPZJGB_JGBPZDH,:XLXSJGBPZJGB_CLHQZH,:XLXSJGBPZJGB_WHRID,:XLXSJGBPZJGB_WHR,:XLXSJGBPZJGB_WHSJ) ");
|
||
SQL.ParamByName("XLXSJGBPZJGB_JGBPZDH").Value = sJGBPZDH;
|
||
SQL.ParamByName("XLXSJGBPZJGB_CLHQZH").Value = sCLHQZH;
|
||
SQL.ParamByName("XLXSJGBPZJGB_WHRID").Value = tSession.UserId;
|
||
SQL.ParamByName("XLXSJGBPZJGB_WHR").Value = tSession.UserName;
|
||
SQL.ParamByName("XLXSJGBPZJGB_WHSJ").Value = DateTime.Now;
|
||
dberp.ExecSQL(SQL);
|
||
}
|
||
}
|
||
}
|
||
|
||
//多报价材料增加
|
||
//JGB128, BJCL080000 , 0P,
|
||
//0P
|
||
public void IncXLXSJGBPZCLHQFD_Dob(TDatabase dberp, TSQL SQL, string sJGBPZDH, string sCLHQZH, List<string> lstBJCL, List<string> lstArr)
|
||
{
|
||
string[] sTmp;
|
||
foreach (string sCLHQDHList in lstArr)
|
||
{
|
||
sCLHQZH = int10Convert36(int36Convert10(sCLHQZH) + 1).PadLeft(4, '0');
|
||
|
||
sTmp = sCLHQDHList.Trim().Split(new Char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
|
||
for (int m = 0; m < sTmp.Length; m++)
|
||
{
|
||
//lstBJCL 与 sTmp[m] 一一对应
|
||
SQL.Clear();
|
||
SQL.Add(" insert into XLXSJGBPZCLHQFD(XLXSJGBPZCLHQFD_JGBPZDH,XLXSJGBPZCLHQFD_CLHQZH,XLXSJGBPZCLHQFD_BJCLID,XLXSJGBPZCLHQFD_CLHQDH) ");
|
||
SQL.Add(" values(:XLXSJGBPZCLHQFD_JGBPZDH,:XLXSJGBPZCLHQFD_CLHQZH,:XLXSJGBPZCLHQFD_BJCLID,:XLXSJGBPZCLHQFD_CLHQDH) ");
|
||
SQL.ParamByName("XLXSJGBPZCLHQFD_JGBPZDH").Value = sJGBPZDH;
|
||
SQL.ParamByName("XLXSJGBPZCLHQFD_CLHQZH").Value = sCLHQZH;
|
||
SQL.ParamByName("XLXSJGBPZCLHQFD_BJCLID").Value = lstBJCL[m];
|
||
SQL.ParamByName("XLXSJGBPZCLHQFD_CLHQDH").Value = sTmp[m].ToString().Trim();
|
||
dberp.ExecSQL(SQL);
|
||
}
|
||
SQL.Clear();
|
||
SQL.Add("insert into XLXSJGBPZJGB(XLXSJGBPZJGB_JGBPZDH,XLXSJGBPZJGB_CLHQZH,XLXSJGBPZJGB_WHRID,XLXSJGBPZJGB_WHR,XLXSJGBPZJGB_WHSJ) ");
|
||
SQL.Add("values(:XLXSJGBPZJGB_JGBPZDH,:XLXSJGBPZJGB_CLHQZH,:XLXSJGBPZJGB_WHRID,:XLXSJGBPZJGB_WHR,:XLXSJGBPZJGB_WHSJ) ");
|
||
SQL.ParamByName("XLXSJGBPZJGB_JGBPZDH").Value = sJGBPZDH;
|
||
SQL.ParamByName("XLXSJGBPZJGB_CLHQZH").Value = sCLHQZH;
|
||
SQL.ParamByName("XLXSJGBPZJGB_WHRID").Value = tSession.UserId;
|
||
SQL.ParamByName("XLXSJGBPZJGB_WHR").Value = tSession.UserName;
|
||
SQL.ParamByName("XLXSJGBPZJGB_WHSJ").Value = DateTime.Now;
|
||
dberp.ExecSQL(SQL);
|
||
}
|
||
}
|
||
#endregion
|
||
}
|
||
}
|