1645 lines
97 KiB
C#
1645 lines
97 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_MISPRO.Utility;
|
|
using GThinking.N_PUBLIC;
|
|
using System.Collections.Generic;
|
|
using GThinking.N_WORKFLOW;
|
|
using GThinking.N_MISPRO.TableCache;
|
|
using GThinking.N_MISPRO.MISPROAS;
|
|
|
|
namespace GThinking.N_XLXSBJ
|
|
{
|
|
public partial class CXBJD_QRInfo : SingleCardBase
|
|
{
|
|
CXBJD_QR entity = new CXBJD_QR();
|
|
|
|
protected void Page_Load(object sender, EventArgs e)
|
|
{
|
|
this.UMID = 100860046;
|
|
this.UMName = "线缆销售报价反馈";
|
|
this.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();
|
|
|
|
if (!IsPostBack)
|
|
{
|
|
InitControl();
|
|
}
|
|
}
|
|
|
|
protected override string CodeClass(string ComponentID)
|
|
{
|
|
string SQL = base.CodeClass(ComponentID);
|
|
if (ComponentID.ToUpper().Equals("TXTGCXM"))
|
|
{
|
|
SQL += "!!select GCXM_XMID AS CODE, GCXM_XMMC AS MESSAGE from GCXM where 1=1 order by CODE ";
|
|
}
|
|
else if (ComponentID.ToUpper().Equals("TXTKHID"))
|
|
{
|
|
SQL += "!!select KH_KHID as CODE, KH_MC as MESSAGE from KH where 1=1 order by CODE ";
|
|
}
|
|
return SQL;
|
|
}
|
|
|
|
#region 模板继承事件
|
|
|
|
#endregion
|
|
|
|
#region 自定义函数
|
|
|
|
private void InitControl()
|
|
{
|
|
string sHJU006 = GetOption("HJU006").Trim();
|
|
if (!sHJU006.Equals(""))
|
|
{
|
|
string sSQL = " SELECT BM_BMID,BM_MC FROM BM where isnull(BM_TYBZ,' ')<>'Y'";
|
|
sSQL += " and " + CMISproDataBase.GetWhereEqual("BM_BMID", sHJU006);
|
|
sSQL += " order by BM_BMID";
|
|
TComboBox.SetComboBox("DBERP", cbxXSBMID, sSQL, false);
|
|
}
|
|
else
|
|
{
|
|
TComboBox.SetComboBox("DBERP", cbxXSBMID, " SELECT BM_BMID,BM_MC FROM BM where isnull(BM_TYBZ,' ')<>'Y' order by BM_BMID", false);
|
|
}
|
|
|
|
string sBJDID = PageParam.GetRTrimString("BJDID");
|
|
|
|
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
|
|
TSQL SQL = new TSQL(dberp);
|
|
SQL.Clear();
|
|
SQL.Add("select XLXSBJD_TXY,XLXSBJD_XSBMID,XSY_SJ,XLXSBJD_KHID,XLXSBJD_KH,XLXSBJD_XMMC,XLXSBJD_KHLXR,XLXSBJD_LXDH,XLXSBJD_CZ");
|
|
SQL.Add(" from XLXSBJD");
|
|
SQL.Add(" left join XSY on XSY_TXY=XLXSBJD_TXY");
|
|
SQL.Add(" where XLXSBJD_BJDID=:pBJDID");
|
|
SQL.ParamByName("pBJDID").Value = sBJDID;
|
|
DataSet ds = dberp.OpenDataSet(SQL);
|
|
if (ds.Tables[0].Rows.Count > 0)
|
|
{
|
|
string sTXY = ds.Tables[0].Rows[0]["XLXSBJD_TXY"].ToString().Trim();
|
|
string sXSBMID = ds.Tables[0].Rows[0]["XLXSBJD_XSBMID"].ToString().Trim();
|
|
string sKHID = ds.Tables[0].Rows[0]["XLXSBJD_KHID"].ToString().Trim();
|
|
string sKHMC = ds.Tables[0].Rows[0]["XLXSBJD_KH"].ToString().Trim();
|
|
string sXMMC = ds.Tables[0].Rows[0]["XLXSBJD_XMMC"].ToString().Trim();
|
|
txtTXY.Text = sTXY;
|
|
cbxXSBMID.SelectedValue = sXSBMID;
|
|
txtKHID.Text = sKHID;
|
|
txtKHMC.Text = sKHMC;
|
|
txtXMMC.Text = sXMMC;
|
|
txtLXR.Text = ds.Tables[0].Rows[0]["XLXSBJD_KHLXR"].ToString().Trim();
|
|
txtLXRDH.Text = ds.Tables[0].Rows[0]["XLXSBJD_LXDH"].ToString().Trim();
|
|
txtLXRCZ.Text = ds.Tables[0].Rows[0]["XLXSBJD_CZ"].ToString().Trim();
|
|
txtTXYDH.Text = ds.Tables[0].Rows[0]["XSY_SJ"].ToString().Trim();
|
|
|
|
if (!sKHMC.Equals("") && sKHID.Equals(""))
|
|
{
|
|
SQL.Clear();
|
|
SQL.Add("select KH_KHID from KH where KH_MC=:pKHMC order by isnull(KH_TYBZ,'N'),KH_KHID");
|
|
SQL.ParamByName("pKHMC").Value = sKHMC;
|
|
DataSet dsKH = dberp.OpenDataSet(SQL);
|
|
if (dsKH.Tables[0].Rows.Count > 0)
|
|
{
|
|
txtKHID.Text = dsKH.Tables[0].Rows[0]["KH_KHID"].ToString().Trim();
|
|
}
|
|
if (txtKHID.Text.Trim().Equals(""))
|
|
{
|
|
SQL.Clear();
|
|
SQL.Add("select KHXX_YKHID from KHXX where KHXX_MC = :pKHMC order by KHXX_YKHID");
|
|
SQL.ParamByName("pKHMC").Value = sKHMC;
|
|
DataSet dsKHXX = dberp.OpenDataSet(SQL);
|
|
if (dsKHXX.Tables[0].Rows.Count > 0)
|
|
{
|
|
txtKHID.Text = dsKHXX.Tables[0].Rows[0]["KHXX_YKHID"].ToString().Trim();
|
|
}
|
|
}
|
|
}
|
|
if (!sXMMC.Equals(""))
|
|
{
|
|
SQL.Clear();
|
|
SQL.Add("select GCXM_XMID from GCXM where GCXM_XMMC=:pXMMC order by GCXM_XMID");
|
|
SQL.ParamByName("pXMMC").Value = sXMMC;
|
|
DataSet dsXM = dberp.OpenDataSet(SQL);
|
|
if (dsXM.Tables[0].Rows.Count > 0)
|
|
{
|
|
txtGCXM.Text = dsXM.Tables[0].Rows[0]["GCXM_XMID"].ToString().Trim();
|
|
txtXMMC.ReadOnly = true;
|
|
}
|
|
}
|
|
}
|
|
|
|
//KH8-100432045|新客户申请
|
|
if (CheckModule(100432045))
|
|
{
|
|
//报价客户配置为售前客户、新增客户要求配置为报价前维护
|
|
XLXSBJPZXX pzxx = XLBJDUtils.GetXLXSBJPZXX(100860000);
|
|
|
|
|
|
if (pzxx.XLXSBJPZ_KHJSLY == "KHXX" && pzxx.XLXSBJPZ_XZKHYQ == "Q")
|
|
{
|
|
lblKHID.Visible = false;
|
|
linkKHID.Visible = true;
|
|
lbllinkKHIDMH.Visible = true;
|
|
}
|
|
else
|
|
{
|
|
lblKHID.Visible = true;
|
|
linkKHID.Visible = false;
|
|
lbllinkKHIDMH.Visible = false;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
lblKHID.Visible = true;
|
|
linkKHID.Visible = false;
|
|
lbllinkKHIDMH.Visible = false;
|
|
}
|
|
}
|
|
|
|
//判断模块是否存在并且是否有权限
|
|
private bool CheckModule(int iUMID)
|
|
{
|
|
UserRight UR = OpRightUtils.GetUserRight(tSession.UserId, iUMID);
|
|
return (DSActiveModule.IsActiveModule(iUMID) && UR.Open);
|
|
}
|
|
#endregion
|
|
|
|
#region 控件事件
|
|
|
|
protected void btnQR_Click(object sender, EventArgs e)
|
|
{
|
|
string sBJDID = PageParam.GetRTrimString("BJDID");
|
|
string sBJU048 = GetOption("BJU048");
|
|
if (sBJU048 == "Y")
|
|
{
|
|
if (txtKHID.Text.Trim().Equals(""))
|
|
{
|
|
ShowMessage("客户编码--不允许为空!");
|
|
return;
|
|
}
|
|
}
|
|
|
|
if (!txtKHID.Text.Trim().Equals(""))
|
|
{
|
|
if (!CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from KH where KH_KHID='{0}' and isnull(KH_TYBZ,' ')<>'Y'", txtKHID.Text.Trim())))
|
|
{
|
|
ShowMessage("客户编码不存在或已经停用!");
|
|
return;
|
|
}
|
|
}
|
|
if (sBJU048 == "Y")
|
|
{
|
|
if (txtTXY.Text.Trim().Equals(""))
|
|
{
|
|
ShowMessage("销售员--不允许为空!");
|
|
return;
|
|
}
|
|
|
|
if (cbxXSBMID.SelectedValue.Trim().Equals(""))
|
|
{
|
|
ShowMessage("销售部门--不允许为空!");
|
|
return;
|
|
}
|
|
}
|
|
|
|
|
|
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
|
|
TSQL SQL = new TSQL(dberp);
|
|
|
|
SQL.Clear();
|
|
SQL.Add(" select XLXSBJDMX_XSSX from XLXSBJDMX ");
|
|
SQL.Add(" where XLXSBJDMX_BJDID=:pBJDID ");
|
|
SQL.Add(" and RoundFix(XLXSBJDMX_ZBJE,2) <> RoundFix(XLXSBJDMX_ZBSL* XLXSBJDMX_CPBJ,2) and (isnull(XLXSBJDMX_ZB,'N') = 'Y' or isnull(XLXSBJDMX_ZB,'N') = 'P') ");
|
|
SQL.ParamByName("pBJDID").Value = sBJDID;
|
|
DataSet dsZBJE = dberp.OpenDataSet(SQL);
|
|
if (dsZBJE.Tables[0].Rows.Count > 0)
|
|
{
|
|
string sZBJEXSSX = "";
|
|
foreach (DataRow trow in dsZBJE.Tables[0].Rows)
|
|
{
|
|
sZBJEXSSX += "[" + trow["XLXSBJDMX_XSSX"].ToString().Trim() + "],";
|
|
}
|
|
sZBJEXSSX = sZBJEXSSX.TrimEnd(',');
|
|
SQL.Clear();
|
|
SQL.Add(" update XLXSBJDMX set XLXSBJDMX_ZBJE = RoundFix(XLXSBJDMX_ZBSL* XLXSBJDMX_CPBJ,2) ");
|
|
SQL.Add(" where XLXSBJDMX_BJDID=:pBJDID ");
|
|
SQL.Add(" and RoundFix(XLXSBJDMX_ZBJE,2) <> RoundFix(XLXSBJDMX_ZBSL* XLXSBJDMX_CPBJ,2) and (isnull(XLXSBJDMX_ZB,'N') = 'Y' or isnull(XLXSBJDMX_ZB,'N') = 'P') ");
|
|
SQL.ParamByName("pBJDID").Value = sBJDID;
|
|
dberp.ExecSQL(SQL);
|
|
ShowMessage("如下显示序号中标金额被校正!\r\n" + sZBJEXSSX);
|
|
DialogOperationScript dos = new DialogOperationScript(this);
|
|
if (!string.IsNullOrEmpty(PageParam.GetRTrimString("RefreshCtrlID")))
|
|
dos.ClickOwnerButton(PageParam.GetRTrimString("RefreshCtrlID"));
|
|
dos.CloseSelf();
|
|
dos.Execute();
|
|
return;
|
|
}
|
|
|
|
XLXSBJPZXX pzxx = XLBJDUtils.GetXLXSBJPZXX(100860046);
|
|
if (pzxx.XLXSBJPZ_FKSZDSCGCXM == "Y")
|
|
{
|
|
if (!txtXMMC.Text.Trim().Equals(""))
|
|
{
|
|
string sWarning = "";
|
|
SQL.Clear();
|
|
SQL.Add(" select 1 from MISPRONAME where MISPRONAME_TZM = 'GCXM_XMID' and MISPRONAME_QYRQ <= :pDate and ISNULL(MISPRONAME_TYRQ,GETDATE()) > :pDate ");
|
|
SQL.ParamByName("pDate").Value = DateTime.Now.Date;
|
|
DataSet ds = dberp.OpenDataSet(SQL);
|
|
if (ds.Tables[0].Rows.Count > 0)//存在工程项目编号规则
|
|
{
|
|
if (!CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from GCXM where GCXM_XMID='{0}'", txtGCXM.Text.Trim())) || txtGCXM.Text.Trim().Equals(""))
|
|
{
|
|
sWarning = "是否按系统设置的工程项目号编码规则、项目名称自动生成工程项目记录?";
|
|
Confirm.Register("IsQD", sWarning);
|
|
Confirm.ShowBtnText = TConfirm.cBtnText.Yes_No;
|
|
if (Confirm.GetValue("IsQD").Trim().Equals(""))
|
|
{
|
|
Confirm.Ask("IsQD");
|
|
return;
|
|
}
|
|
else if (Confirm.GetValue("IsQD").Trim().Equals("N"))
|
|
{
|
|
//表示进行了提示并选择了取消,直接返回或其他处理
|
|
Confirm.Clear();
|
|
if (!txtGCXM.Text.Trim().Equals(""))
|
|
{
|
|
if (!CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from GCXM where GCXM_XMID='{0}' and isnull(GCXM_TYBZ,' ')<>'Y'", txtGCXM.Text.Trim())))
|
|
{
|
|
ShowMessage("工程项目号不存在或已经停用!");
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
else if (Confirm.GetValue("IsQD").Trim().Equals("Y"))
|
|
{
|
|
//表示进行了提示并选择了确认
|
|
Confirm.Clear();
|
|
if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from GCXM where GCXM_XMMC='{0}'", txtXMMC.Text.Trim())))
|
|
{
|
|
ShowMessage("已存在同名工程项目!");
|
|
return;
|
|
}
|
|
string sXMID = CMISproDataBase.NewDH("GCXM_XMID", DateTime.Now.Date);
|
|
SQL.Clear();
|
|
SQL.Add(" insert into GCXM(GCXM_XMID,GCXM_XMMC,GCXM_XMJC,GCXM_JSHB,GCXM_HL,GCXM_XMRQ,GCXM_XSBM,GCXM_XSY,GCXM_QYRQ,GCXM_TYBZ,GCXM_WPID,GCXM_YWLX,GCXM_KHID,GCXM_WHR,GCXM_WHRID,GCXM_WHSJ) ");
|
|
SQL.Add(" values(:GCXM_XMID,:GCXM_XMMC,:GCXM_XMJC,'CNY',1,:GCXM_XMRQ,:GCXM_XSBM,:GCXM_XSY,:GCXM_QYRQ,'N','ZZZZ','XM',:GCXM_KHID,:GCXM_WHR,:GCXM_WHRID,:GCXM_WHSJ) ");
|
|
SQL.ParamByName("GCXM_XMID").Value = sXMID;
|
|
SQL.ParamByName("GCXM_XMMC").Value = txtXMMC.Text.Trim();
|
|
SQL.ParamByName("GCXM_XMJC").Value = XLBJDUtils.SubStringFunc(txtXMMC.Text.Trim(), 60);
|
|
SQL.ParamByName("GCXM_XMRQ").Value = DateTime.Now.Date;
|
|
SQL.ParamByName("GCXM_XSBM").Value = cbxXSBMID.SelectedValue.Trim();
|
|
SQL.ParamByName("GCXM_XSY").Value = txtTXY.Text.Trim();
|
|
SQL.ParamByName("GCXM_QYRQ").Value = DateTime.Now.Date;
|
|
SQL.ParamByName("GCXM_KHID").Value = txtKHID.Text.Trim();
|
|
SQL.ParamByName("GCXM_WHR").Value = tSession.UserName;
|
|
SQL.ParamByName("GCXM_WHRID").Value = tSession.UserId;
|
|
SQL.ParamByName("GCXM_WHSJ").Value = DateTime.Now;
|
|
dberp.ExecSQL(SQL);
|
|
txtGCXM.Text = sXMID;
|
|
txtXMJC.Value = XLBJDUtils.SubStringFunc(txtXMMC.Text.Trim(), 60);
|
|
|
|
TWorkflow xmdjWF = new TWorkflow(tSession, new System.Web.Caching.Cache());
|
|
xmdjWF.UMID = 100458011;
|
|
bool bISWF = TWorkflow.Utils.QYWFByWFVID("XM_XMDJ");
|
|
if (bISWF)
|
|
{
|
|
xmdjWF.WFNewInst(xmdjWF.GetWFID("XM_XMDJ"), tSession.UserId);
|
|
dberp.ExecSQL(string.Format("update GCXM set GCXM_WFID='{0}',GCXM_WPID='{1}', "
|
|
+ "GCXM_WFAWAITER='{2}',GCXM_WFHANDLER='{3}',GCXM_WFINST=isnull({4},0),GCXM_ACTNAME='{5}' where GCXM_XMID='{6}' ",
|
|
xmdjWF.WFID, xmdjWF.WPID, xmdjWF.Awaiter, xmdjWF.Handler, xmdjWF.WFInst, xmdjWF.GetWFActionName(TWFAction.wfaNewInst), txtGCXM.Text.Trim()));
|
|
int flag = 1;
|
|
//提交下一步
|
|
#region 自动提交下一步
|
|
string sWFID = xmdjWF.WFID;
|
|
double WFINST = xmdjWF.WFInst;
|
|
string sAWaiter = xmdjWF.Awaiter;
|
|
string sNextAwaiter = "";
|
|
|
|
//提交下一步
|
|
xmdjWF.Enabled = true;
|
|
string sUser;
|
|
sUser = tSession.UserId;
|
|
xmdjWF.CurUserID = sUser;
|
|
|
|
xmdjWF.WFInfo(sWFID, WFINST, sUser);
|
|
|
|
TWFActionParam param = new TWFActionParam();
|
|
param.sOpinion = "";
|
|
param.sNextWFID = sWFID;
|
|
string sNWPID = "";
|
|
//---------直接使用工作流方法取下一步工作流NWPID,不再使用直接写的方法
|
|
TStrings wfpName = new TStrings();
|
|
wfpName.Text = xmdjWF.WFGetNextWFP(sWFID, xmdjWF.WFGetStartWPID(sWFID));
|
|
try
|
|
{
|
|
if (wfpName.Count > 1)
|
|
{
|
|
sNWPID = wfpName.Names(1).Trim();
|
|
}
|
|
}
|
|
catch
|
|
{
|
|
flag = 2;
|
|
}
|
|
//-----
|
|
if (flag == 1)
|
|
{
|
|
param.sNextWPID = sNWPID;
|
|
param.sNextNotifier = "";
|
|
if (!sNWPID.Trim().Equals("ZZZZ"))
|
|
{
|
|
sNextAwaiter = xmdjWF.WFGetNextAwaiter(sWFID, sNWPID);
|
|
if (sNextAwaiter.Trim().Equals("") || sNextAwaiter.Trim().Length > 250)
|
|
{
|
|
flag = 3;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
flag = 4;
|
|
}
|
|
if (flag == 1)
|
|
{
|
|
param.sNextAwaiter = "," + sNextAwaiter + ",";
|
|
if (!xmdjWF.WFIsStopWPID(sWFID, sNWPID))
|
|
param.sWFState = TWorkflow.wfsRunning;
|
|
else
|
|
param.sWFState = TWorkflow.wfsDone;
|
|
|
|
if (xmdjWF.WFWorkIsDone(sWFID, WFINST, sUser))
|
|
{
|
|
param.sWPState = TWorkflow.wpsSubmit;
|
|
}
|
|
else
|
|
{
|
|
param.sWPState = TWorkflow.wfsRunning;
|
|
}
|
|
xmdjWF.WFSubmit(sWFID, WFINST, sUser, param);
|
|
xmdjWF.dbe.ExecSQL(string.Format("update GCXM set GCXM_WPID='{0}', GCXM_WFAWAITER='{1}', GCXM_WFHANDLER='{2}' ,GCXM_WFINST={3},GCXM_WFID='{4}',GCXM_ACTNAME='{5}' where GCXM_XMID='{6}' ",
|
|
xmdjWF.WPID, xmdjWF.Awaiter, xmdjWF.Handler, xmdjWF.WFInst, xmdjWF.WFID, xmdjWF.GetWFActionName(TWFAction.wfaSubmit), txtGCXM.Text.Trim()));
|
|
}
|
|
}
|
|
#endregion
|
|
}
|
|
}
|
|
|
|
}
|
|
else
|
|
|
|
{
|
|
if (!txtGCXM.Text.Trim().Equals(""))
|
|
{
|
|
if (!CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from GCXM where GCXM_XMID='{0}' and isnull(GCXM_TYBZ,' ')<>'Y'", txtGCXM.Text.Trim())))
|
|
{
|
|
ShowMessage("工程项目号不存在或已经停用!");
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (!txtGCXM.Text.Trim().Equals("") && !CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from GCXM where GCXM_XMID='{0}'", txtGCXM.Text.Trim())))
|
|
{
|
|
sWarning = "是否按所填工程项目号、项目名称自动生成工程项目记录?";
|
|
Confirm.Register("IsQD", sWarning);
|
|
Confirm.ShowBtnText = TConfirm.cBtnText.Yes_No;
|
|
if (Confirm.GetValue("IsQD").Trim().Equals(""))
|
|
{
|
|
Confirm.Ask("IsQD");
|
|
return;
|
|
}
|
|
else if (Confirm.GetValue("IsQD").Trim().Equals("N"))
|
|
{
|
|
//表示进行了提示并选择了取消,直接返回或其他处理
|
|
Confirm.Clear();
|
|
if (!txtGCXM.Text.Trim().Equals(""))
|
|
{
|
|
if (!CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from GCXM where GCXM_XMID='{0}' and isnull(GCXM_TYBZ,' ')<>'Y'", txtGCXM.Text.Trim())))
|
|
{
|
|
ShowMessage("工程项目号不存在或已经停用!");
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
else if (Confirm.GetValue("IsQD").Trim().Equals("Y"))
|
|
{
|
|
//表示进行了提示并选择了确认
|
|
Confirm.Clear();
|
|
if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from GCXM where GCXM_XMMC='{0}'", txtXMMC.Text.Trim())))
|
|
{
|
|
ShowMessage("已存在同名工程项目!");
|
|
return;
|
|
}
|
|
SQL.Clear();
|
|
SQL.Add(" insert into GCXM(GCXM_XMID,GCXM_XMMC,GCXM_XMJC,GCXM_JSHB,GCXM_HL,GCXM_XMRQ,GCXM_XSBM,GCXM_XSY,GCXM_QYRQ,GCXM_TYBZ,GCXM_WPID,GCXM_YWLX,GCXM_KHID,GCXM_WHR,GCXM_WHRID,GCXM_WHSJ) ");
|
|
SQL.Add(" values(:GCXM_XMID,:GCXM_XMMC,:GCXM_XMJC,'CNY',1,:GCXM_XMRQ,:GCXM_XSBM,:GCXM_XSY,:GCXM_QYRQ,'N','ZZZZ','XM',:GCXM_KHID,:GCXM_WHR,:GCXM_WHRID,:GCXM_WHSJ) ");
|
|
SQL.ParamByName("GCXM_XMID").Value = txtGCXM.Text.Trim();
|
|
SQL.ParamByName("GCXM_XMMC").Value = txtXMMC.Text.Trim();
|
|
SQL.ParamByName("GCXM_XMJC").Value = XLBJDUtils.SubStringFunc(txtXMMC.Text.Trim(), 60);
|
|
SQL.ParamByName("GCXM_XMRQ").Value = DateTime.Now.Date;
|
|
SQL.ParamByName("GCXM_XSBM").Value = cbxXSBMID.SelectedValue.Trim();
|
|
SQL.ParamByName("GCXM_XSY").Value = txtTXY.Text.Trim();
|
|
SQL.ParamByName("GCXM_QYRQ").Value = DateTime.Now.Date;
|
|
SQL.ParamByName("GCXM_KHID").Value = txtKHID.Text.Trim();
|
|
SQL.ParamByName("GCXM_WHR").Value = tSession.UserName;
|
|
SQL.ParamByName("GCXM_WHRID").Value = tSession.UserId;
|
|
SQL.ParamByName("GCXM_WHSJ").Value = DateTime.Now;
|
|
dberp.ExecSQL(SQL);
|
|
txtXMJC.Value = XLBJDUtils.SubStringFunc(txtXMMC.Text.Trim(), 60);
|
|
|
|
TWorkflow xmdjWF = new TWorkflow(tSession, new System.Web.Caching.Cache());
|
|
xmdjWF.UMID = 100458011;
|
|
bool bISWF = TWorkflow.Utils.QYWFByWFVID("XM_XMDJ");
|
|
if (bISWF)
|
|
{
|
|
xmdjWF.WFNewInst(xmdjWF.GetWFID("XM_XMDJ"), tSession.UserId);
|
|
dberp.ExecSQL(string.Format("update GCXM set GCXM_WFID='{0}',GCXM_WPID='{1}', "
|
|
+ "GCXM_WFAWAITER='{2}',GCXM_WFHANDLER='{3}',GCXM_WFINST=isnull({4},0),GCXM_ACTNAME='{5}' where GCXM_XMID='{6}' ",
|
|
xmdjWF.WFID, xmdjWF.WPID, xmdjWF.Awaiter, xmdjWF.Handler, xmdjWF.WFInst, xmdjWF.GetWFActionName(TWFAction.wfaNewInst), txtGCXM.Text.Trim()));
|
|
int flag = 1;
|
|
//提交下一步
|
|
#region 自动提交下一步
|
|
string sWFID = xmdjWF.WFID;
|
|
double WFINST = xmdjWF.WFInst;
|
|
string sAWaiter = xmdjWF.Awaiter;
|
|
string sNextAwaiter = "";
|
|
|
|
//提交下一步
|
|
xmdjWF.Enabled = true;
|
|
string sUser;
|
|
string[] sStr = sAWaiter.Split(',');
|
|
try
|
|
{
|
|
sUser = sStr[1];
|
|
}
|
|
catch
|
|
{
|
|
sUser = tSession.UserId;
|
|
}
|
|
xmdjWF.CurUserID = sUser;
|
|
|
|
xmdjWF.WFInfo(sWFID, WFINST, sUser);
|
|
|
|
TWFActionParam param = new TWFActionParam();
|
|
param.sOpinion = "";
|
|
param.sNextWFID = sWFID;
|
|
string sNWPID = "";
|
|
//---------直接使用工作流方法取下一步工作流NWPID,不再使用直接写的方法
|
|
TStrings wfpName = new TStrings();
|
|
wfpName.Text = xmdjWF.WFGetNextWFP(sWFID, xmdjWF.WFGetStartWPID(sWFID));
|
|
try
|
|
{
|
|
if (wfpName.Count > 1)
|
|
{
|
|
sNWPID = wfpName.Names(1).Trim();
|
|
}
|
|
}
|
|
catch
|
|
{
|
|
flag = 2;
|
|
}
|
|
//-----
|
|
if (flag == 1)
|
|
{
|
|
param.sNextWPID = sNWPID;
|
|
param.sNextNotifier = "";
|
|
if (!sNWPID.Trim().Equals("ZZZZ"))
|
|
{
|
|
sNextAwaiter = xmdjWF.WFGetNextAwaiter(sWFID, sNWPID);
|
|
if (sNextAwaiter.Trim().Equals("") || sNextAwaiter.Trim().Length > 250)
|
|
{
|
|
flag = 3;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
flag = 4;
|
|
}
|
|
if (flag == 1)
|
|
{
|
|
param.sNextAwaiter = "," + sNextAwaiter + ",";
|
|
if (!xmdjWF.WFIsStopWPID(sWFID, sNWPID))
|
|
param.sWFState = TWorkflow.wfsRunning;
|
|
else
|
|
param.sWFState = TWorkflow.wfsDone;
|
|
|
|
if (xmdjWF.WFWorkIsDone(sWFID, WFINST, sUser))
|
|
{
|
|
param.sWPState = TWorkflow.wpsSubmit;
|
|
}
|
|
else
|
|
{
|
|
param.sWPState = TWorkflow.wfsRunning;
|
|
}
|
|
xmdjWF.WFSubmit(sWFID, WFINST, sUser, param);
|
|
xmdjWF.dbe.ExecSQL(string.Format("update GCXM set GCXM_WPID='{0}', GCXM_WFAWAITER='{1}', GCXM_WFHANDLER='{2}' ,GCXM_WFINST={3},GCXM_WFID='{4}',GCXM_ACTNAME='{5}' where GCXM_XMID='{6}' ",
|
|
xmdjWF.WPID, xmdjWF.Awaiter, xmdjWF.Handler, xmdjWF.WFInst, xmdjWF.WFID, xmdjWF.GetWFActionName(TWFAction.wfaSubmit), txtGCXM.Text.Trim()));
|
|
}
|
|
}
|
|
#endregion
|
|
}
|
|
}
|
|
|
|
}
|
|
else
|
|
{
|
|
if (!txtGCXM.Text.Trim().Equals(""))
|
|
{
|
|
if (!CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from GCXM where GCXM_XMID='{0}' and isnull(GCXM_TYBZ,' ')<>'Y'", txtGCXM.Text.Trim())))
|
|
{
|
|
ShowMessage("工程项目号不存在或已经停用!");
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (!txtGCXM.Text.Trim().Equals(""))
|
|
{
|
|
if (!CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from GCXM where GCXM_XMID='{0}' and isnull(GCXM_TYBZ,' ')<>'Y'", txtGCXM.Text.Trim())))
|
|
{
|
|
ShowMessage("工程项目号不存在或已经停用!");
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (!txtGCXM.Text.Trim().Equals(""))
|
|
{
|
|
if (!CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from GCXM where GCXM_XMID='{0}' and isnull(GCXM_TYBZ,' ')<>'Y'", txtGCXM.Text.Trim())))
|
|
{
|
|
ShowMessage("工程项目号不存在或已经停用!");
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
|
|
string sHBID = "";
|
|
double fHL = 0;
|
|
SQL.Clear();
|
|
SQL.Add("select HB_HBID,HB_HL from HB where HB_BWB='Y'");//获取本位币
|
|
DataSet dsHB = dberp.OpenDataSet(SQL);
|
|
if (dsHB.Tables[0].Rows.Count > 0)
|
|
{
|
|
sHBID = dsHB.Tables[0].Rows[0]["HB_HBID"].ToString().Trim();
|
|
fHL = CMISproConvert.StrToFloat(dsHB.Tables[0].Rows[0]["HB_HL"].ToString());
|
|
}
|
|
else
|
|
{
|
|
ShowMessage("未设置本位币,请至【100734003|货币维护】功能维护!");
|
|
return;
|
|
}
|
|
|
|
Dictionary<string, string> DicTYWL = new Dictionary<string, string>();
|
|
SQL.Clear();
|
|
SQL.Add(" select WL_WLID from WL where isnull(WL_TYBZ,'N') = 'Y' ");
|
|
DataSet dsTYWL = dberp.OpenDataSet(SQL);
|
|
if (dsTYWL.Tables[0].Rows.Count > 0)
|
|
{
|
|
foreach (DataRow trow in dsTYWL.Tables[0].Rows)
|
|
{
|
|
string sTYWLID = dsTYWL.Tables[0].Rows[0]["WL_WLID"].ToString().Trim();
|
|
if (!DicTYWL.ContainsKey(sTYWLID))
|
|
DicTYWL.Add(sTYWLID, sTYWLID);
|
|
}
|
|
}
|
|
|
|
|
|
bool ExistsBJCPYS = false;//是否设置了报价产品颜色
|
|
if (CMISproDataBase.ExistsRecord("DBERP", "select top 1 XLXSBJCPYS_CPYT from XLXSBJCPYS where 1=1"))
|
|
{
|
|
ExistsBJCPYS = true;
|
|
}
|
|
string sYXQBJWL = XLBJDUtils.GetXLXSBJPZXX(100860046).XLXSBJPZ_YXQCPWL.Trim();
|
|
|
|
SQL.Clear();
|
|
SQL.Add("select XLXSBJDMX_XH,XLXSBJDMX_XSSX,XLXSBJDMX_BJCP,XLXSBJDMX_JLDW,XLXSBJDMX_BJSL,XLXSBJDMX_BJDHQCLCB,XLXSBJDMX_CPBJ,XLXSBJDMX_BJJE,XLXSBJDMX_BZ,XLXSBJDMX_ZDXJ,XLXSBJDMX_JGBBJ,XLXSBJDMX_JSJG, ");
|
|
SQL.Add(" XLXSBJDMX_XLXHID,XLXSBJDMX_XLGGID,XLXSBJDMX_DYDJID,case isnull(XLXSBJDMX_XLBZID,' ') when ' ' then ' ' else rtrim(XLXSBJDMX_XLBZID)||'|'||XLBZ_XLBZLXMC end as XLBZ,XLXSBJDMX_DZSC,XLXSBJDMX_BJWS,XLXSBJDMX_ZB,XLXSBJDMX_ZBSL,XLXSBJDMX_ZBJE,");
|
|
if (sYXQBJWL == "Y" || sYXQBJWL == "X")
|
|
SQL.Add(" case when isnull(XLXSBJDMX_WLID,' ') <> ' ' then XLXSBJDMX_WLID when isnull(c.minWLID,' ') <> ' ' then c.minWLID else a.minWLID end as WLID,WL_MC,WL_GG,WL_JLDW ");
|
|
else
|
|
SQL.Add(" case when isnull(XLXSBJDMX_WLID,' ') <> ' ' then XLXSBJDMX_WLID when isnull(a.minWLID,' ') <> ' ' then a.minWLID else c.minWLID end as WLID,WL_MC,WL_GG,WL_JLDW ");
|
|
if (XLBJDUtils.GetXLXSBJPZXX(100860046).XLXSBJPZ_ZCCF.Trim().Equals("Y"))
|
|
{
|
|
SQL.Add(" ,isnull(XLXSBJFKCFMX_CFXH,XLXSBJDMX_XH) as XLXSBJFKCFMX_CFXH ");
|
|
}
|
|
else
|
|
{
|
|
SQL.Add(" ,0 as XLXSBJFKCFMX_CFXH ");
|
|
}
|
|
if (XLBJDUtils.GetXLXSBJPZXX(100860046).XLXSBJPZ_ZCCF.Trim().Equals("Y"))
|
|
{
|
|
SQL.Add(" from (select XLXSBJDMX_XH,XLXSBJDMX_XSSX,XLXSBJDMX_BJCP,XLXSBJDMX_JLDW,XLXSBJDMX_BJDHQCLCB,XLXSBJDMX_CPBJ,XLXSBJDMX_BJJE,");
|
|
SQL.Add(" XLXSBJDMX_BZ,XLXSBJDMX_ZDXJ,XLXSBJDMX_JGBBJ,XLXSBJDMX_JSJG,XLXSBJDMX_XLXHID,XLXSBJDMX_XLGGID,XLXSBJDMX_DYDJID,XLXSBJDMX_XLBZID,XLXSBJDMX_DZSC,");
|
|
SQL.Add(" XLXSBJDMX_BJWS,XLXSBJDMX_ZB,XLXSBJDMX_XDXLXHID,XLXSBJDMX_XDXLBZID,XLXSBJDMX_BJDID, ");
|
|
SQL.Add(" XLXSBJFKCFMX_CFXH,CASE WHEN ISNULL(XLXSBJFKCFMX_XLYSID,' ')=' ' THEN XLXSBJDMX_XLYSID ELSE XLXSBJFKCFMX_XLYSID END AS XLXSBJDMX_XLYSID, ");
|
|
SQL.Add(" CASE WHEN ISNULL(XLXSBJFKCFMX_WLID,' ')=' ' THEN XLXSBJDMX_WLID ELSE XLXSBJFKCFMX_WLID END AS XLXSBJDMX_WLID, ");
|
|
SQL.Add(" CASE WHEN ISNULL(XLXSBJFKCFMX_ZBSL,-1)=-1 THEN XLXSBJDMX_ZBSL ELSE XLXSBJFKCFMX_ZBSL END as XLXSBJDMX_ZBSL,");
|
|
SQL.Add(" CASE WHEN ISNULL(XLXSBJFKCFMX_ZBJE,-1)=-1 THEN XLXSBJDMX_ZBJE ELSE XLXSBJFKCFMX_ZBJE END as XLXSBJDMX_ZBJE, ");
|
|
SQL.Add(" CASE WHEN ISNULL(XLXSBJFKCFMX_CFSL,-1)=-1 THEN XLXSBJDMX_BJSL ELSE XLXSBJFKCFMX_CFSL END AS XLXSBJDMX_BJSL ");
|
|
SQL.Add(" FROM XLXSBJDMX LEFT JOIN XLXSBJFKCFMX ON XLXSBJFKCFMX_BJDID=XLXSBJDMX_BJDID AND XLXSBJFKCFMX_BJDXH=XLXSBJDMX_XH ");
|
|
SQL.Add(" where XLXSBJDMX_BJDID=:pBJDID ");
|
|
SQL.Add(" ) XLXSBJDMX");
|
|
|
|
}
|
|
else
|
|
{
|
|
SQL.Add(" from XLXSBJDMX ");
|
|
}
|
|
SQL.Add(" left join XLBZ on XLBZ_XLBZID = XLXSBJDMX_XLBZID ");
|
|
SQL.Add("left join XLXSBJXLGGTHB on XLXSBJXLGGTHB_XLGGID = XLXSBJDMX_XLGGID ");
|
|
if (sYXQBJWL == "Z" || sYXQBJWL == "X")
|
|
{
|
|
SQL.Add("left join (select XLXSBJXDWL_XLXHID as XLXHID,XLXSBJXDWL_XLGGID as XLGGID,XLXSBJXDWL_DYDJID as DYDJID,min(XLXSBJXDWL_WLID) as minWLID ");
|
|
SQL.Add(" from XLXSBJXDWL");
|
|
SQL.Add(" where 1=1");
|
|
SQL.Add(" and exists(select 1 from WL where WL_WLID=XLXSBJXDWL_WLID and isnull(WL_TYBZ,' ')<>'Y')");
|
|
SQL.Add(" group by XLXSBJXDWL_XLXHID,XLXSBJXDWL_XLGGID,XLXSBJXDWL_DYDJID");
|
|
SQL.Add(" ) c on c.XLXHID=XLXSBJDMX_XDXLXHID and c.XLGGID=XLXSBJXLGGTHB_XLGGIDCH and c.DYDJID=XLXSBJDMX_DYDJID ");
|
|
|
|
SQL.Add(" left join (select XSBJXHTH_BJXLXHID as XLXHID,XLXLB_XLGGID as XLGGID,XLXLB_DYDJID as DYDJID, minWLID ");
|
|
SQL.Add(" from ( ");
|
|
SQL.Add(" select XLXLB_XLXHID,XLXLB_XLGGID,XLXLB_DYDJID,min(XLXLB_WLID)as minWLID ");
|
|
SQL.Add(" from XLXLB ");
|
|
SQL.Add(" where 1=1 ");
|
|
SQL.Add(" and isnull(XLXLB_TYBZ,' ')<> 'Y' ");
|
|
SQL.Add(" and exists(select 1 from WL where WL_WLID=XLXLB_WLID and isnull(WL_TYBZ,' ')<>'Y')");
|
|
SQL.Add(" and exists(select 1 from XSBJXHTH where XSBJXHTH_XLXHID = XLXLB_XLXHID ) ");
|
|
SQL.Add(" group by XLXLB_XLXHID,XLXLB_XLGGID,XLXLB_DYDJID");
|
|
SQL.Add(" ) tmpXL left join XSBJXHTH on XSBJXHTH_XLXHID=XLXLB_XLXHID ");
|
|
SQL.Add(" union all");
|
|
SQL.Add(" select XLXLB_XLXHID as XLXHID,XLXLB_XLGGID as XLGGID,XLXLB_DYDJID as DYDJID,min(XLXLB_WLID)as minWLID ");
|
|
SQL.Add(" from XLXLB ");
|
|
SQL.Add(" where isnull(XLXLB_TYBZ,' ')<>'Y' ");
|
|
SQL.Add(" and exists(select 1 from WL where WL_WLID=XLXLB_WLID and isnull(WL_TYBZ,' ')<>'Y') ");
|
|
SQL.Add(" and not exists(select 1 from XSBJXHTH where XSBJXHTH_XLXHID = XLXLB_XLXHID ) ");
|
|
SQL.Add(" group by XLXLB_XLXHID,XLXLB_XLGGID,XLXLB_DYDJID ");
|
|
SQL.Add(" ) a on a.XLXHID=XLXSBJDMX_XDXLXHID and a.XLGGID=XLXSBJXLGGTHB_XLGGIDCH and a.DYDJID=XLXSBJDMX_DYDJID ");
|
|
}
|
|
else
|
|
{
|
|
if (ExistsBJCPYS)
|
|
{
|
|
SQL.Add("left join (select XLXSBJXDWL_XLXHID as XLXHID,XLXSBJXDWL_XLGGID as XLGGID,XLXSBJXDWL_XLBZID as XLBZID,XLXSBJXDWL_DYDJID as DYDJID,XLXSBJXDWL_XLYSID as XLYSID,min(XLXSBJXDWL_WLID) as minWLID ");
|
|
SQL.Add(" from XLXSBJXDWL");
|
|
SQL.Add(" where 1=1");
|
|
SQL.Add(" and exists(select 1 from WL where WL_WLID=XLXSBJXDWL_WLID and isnull(WL_TYBZ,' ')<>'Y')");
|
|
SQL.Add(" group by XLXSBJXDWL_XLXHID,XLXSBJXDWL_XLGGID,XLXSBJXDWL_XLBZID,XLXSBJXDWL_DYDJID,XLXSBJXDWL_XLYSID");
|
|
SQL.Add(" ) c on c.XLXHID=XLXSBJDMX_XDXLXHID and c.XLGGID= XLXSBJXLGGTHB_XLGGIDCH and c.XLBZID=XLXSBJDMX_XDXLBZID and c.DYDJID=XLXSBJDMX_DYDJID and c.XLYSID=XLXSBJDMX_XLYSID ");
|
|
|
|
SQL.Add(" left join (select XSBJXHTH_BJXLXHID as XLXHID,XLXLB_XLGGID as XLGGID,XLXLB_XLBZID as XLBZID,XLXLB_DYDJID as DYDJID,XLXLB_XLYSID as XLYSID,minWLID ");
|
|
SQL.Add(" from ( ");
|
|
SQL.Add(" select XLXLB_XLXHID,XLXLB_XLGGID,XLXLB_XLBZID,XLXLB_DYDJID,XLXLB_XLYSID,min(XLXLB_WLID)as minWLID ");
|
|
SQL.Add(" from XLXLB ");
|
|
SQL.Add(" where 1=1 ");
|
|
SQL.Add(" and isnull(XLXLB_TYBZ,' ')<> 'Y' ");
|
|
SQL.Add(" and exists(select 1 from WL where WL_WLID=XLXLB_WLID and isnull(WL_TYBZ,' ')<>'Y')");
|
|
SQL.Add(" and exists(select 1 from XSBJXHTH where XSBJXHTH_XLXHID = XLXLB_XLXHID ) ");
|
|
|
|
SQL.Add(" group by XLXLB_XLXHID,XLXLB_XLGGID,XLXLB_XLBZID,XLXLB_DYDJID,XLXLB_XLYSID");
|
|
SQL.Add(" ) tmpXL left join XSBJXHTH on XSBJXHTH_XLXHID=XLXLB_XLXHID ");
|
|
SQL.Add(" union all");
|
|
SQL.Add(" select XLXLB_XLXHID as XLXHID,XLXLB_XLGGID as XLGGID,XLXLB_XLBZID as XLBZID,XLXLB_DYDJID as DYDJID,XLXLB_XLYSID as XLYSID,min(XLXLB_WLID)as minWLID ");
|
|
SQL.Add(" from XLXLB ");
|
|
SQL.Add(" where isnull(XLXLB_TYBZ,' ')<>'Y' ");
|
|
SQL.Add(" and exists(select 1 from WL where WL_WLID=XLXLB_WLID and isnull(WL_TYBZ,' ')<>'Y') ");
|
|
SQL.Add(" and not exists(select 1 from XSBJXHTH where XSBJXHTH_XLXHID = XLXLB_XLXHID ) ");
|
|
SQL.Add(" group by XLXLB_XLXHID,XLXLB_XLGGID,XLXLB_XLBZID,XLXLB_DYDJID,XLXLB_XLYSID ");
|
|
SQL.Add(" ) a on a.XLXHID=XLXSBJDMX_XDXLXHID and a.XLGGID=XLXSBJXLGGTHB_XLGGIDCH and a.XLBZID=XLXSBJDMX_XDXLBZID and a.DYDJID=XLXSBJDMX_DYDJID and a.XLYSID=XLXSBJDMX_XLYSID ");
|
|
}
|
|
else
|
|
{
|
|
SQL.Add("left join (select XLXSBJXDWL_XLXHID as XLXHID,XLXSBJXDWL_XLGGID as XLGGID,XLXSBJXDWL_XLBZID as XLBZID,XLXSBJXDWL_DYDJID as DYDJID,min(XLXSBJXDWL_WLID) as minWLID ");
|
|
SQL.Add(" from XLXSBJXDWL");
|
|
SQL.Add(" where 1=1");
|
|
SQL.Add(" and exists(select 1 from WL where WL_WLID=XLXSBJXDWL_WLID and isnull(WL_TYBZ,' ')<>'Y')");
|
|
SQL.Add(" group by XLXSBJXDWL_XLXHID,XLXSBJXDWL_XLGGID,XLXSBJXDWL_XLBZID,XLXSBJXDWL_DYDJID");
|
|
SQL.Add(" ) c on c.XLXHID=XLXSBJDMX_XDXLXHID and c.XLGGID=XLXSBJXLGGTHB_XLGGIDCH and c.XLBZID=XLXSBJDMX_XDXLBZID and c.DYDJID=XLXSBJDMX_DYDJID ");
|
|
|
|
SQL.Add(" left join (select XSBJXHTH_BJXLXHID as XLXHID,XLXLB_XLGGID as XLGGID,XLXLB_XLBZID as XLBZID,XLXLB_DYDJID as DYDJID, minWLID ");
|
|
SQL.Add(" from ( ");
|
|
SQL.Add(" select XLXLB_XLXHID,XLXLB_XLGGID,XLXLB_XLBZID,XLXLB_DYDJID,min(XLXLB_WLID)as minWLID ");
|
|
SQL.Add(" from XLXLB ");
|
|
SQL.Add(" where 1=1 ");
|
|
SQL.Add(" and isnull(XLXLB_TYBZ,' ')<> 'Y' ");
|
|
SQL.Add(" and exists(select 1 from WL where WL_WLID=XLXLB_WLID and isnull(WL_TYBZ,' ')<>'Y')");
|
|
SQL.Add(" and exists(select 1 from XSBJXHTH where XSBJXHTH_XLXHID = XLXLB_XLXHID ) ");
|
|
SQL.Add(" group by XLXLB_XLXHID,XLXLB_XLGGID,XLXLB_XLBZID,XLXLB_DYDJID");
|
|
SQL.Add(" ) tmpXL left join XSBJXHTH on XSBJXHTH_XLXHID=XLXLB_XLXHID ");
|
|
SQL.Add(" union all");
|
|
SQL.Add(" select XLXLB_XLXHID as XLXHID,XLXLB_XLGGID as XLGGID,XLXLB_XLBZID as XLBZID,XLXLB_DYDJID as DYDJID,min(XLXLB_WLID)as minWLID ");
|
|
SQL.Add(" from XLXLB ");
|
|
SQL.Add(" where isnull(XLXLB_TYBZ,' ')<>'Y' ");
|
|
SQL.Add(" and exists(select 1 from WL where WL_WLID=XLXLB_WLID and isnull(WL_TYBZ,' ')<>'Y') ");
|
|
SQL.Add(" and not exists(select 1 from XSBJXHTH where XSBJXHTH_XLXHID = XLXLB_XLXHID ) ");
|
|
SQL.Add(" group by XLXLB_XLXHID,XLXLB_XLGGID,XLXLB_XLBZID,XLXLB_DYDJID ");
|
|
SQL.Add(" ) a on a.XLXHID=XLXSBJDMX_XDXLXHID and a.XLGGID=XLXSBJXLGGTHB_XLGGIDCH and a.XLBZID=XLXSBJDMX_XDXLBZID and a.DYDJID=XLXSBJDMX_DYDJID ");
|
|
}
|
|
}
|
|
|
|
if (sYXQBJWL == "Y" || sYXQBJWL == "X")
|
|
SQL.Add(" left join WL on WL_WLID=(case when isnull(XLXSBJDMX_WLID,' ') <> ' ' then XLXSBJDMX_WLID when isnull(c.minWLID,' ') <> ' ' then c.minWLID else a.minWLID end)");
|
|
else
|
|
SQL.Add(" left join WL on WL_WLID=(case when isnull(XLXSBJDMX_WLID,' ') <> ' ' then XLXSBJDMX_WLID when isnull(a.minWLID,' ') <> ' ' then a.minWLID else c.minWLID end)");
|
|
|
|
//SQL.Add(" left join JLDWTD b on upper(b.JLDWTD_JLDW)=:pJLDW and upper(b.JLDWTD_TDJLDW)=:pTDJLDW and isnull(b.JLDWTD_WLID,' ')=' ' ");
|
|
//SQL.Add(" left join JLDWTD c on upper(c.JLDWTD_JLDW)=:pTDJLDW and upper(c.JLDWTD_TDJLDW)=:pJLDW and isnull(c.JLDWTD_WLID,' ')=' ' ");
|
|
SQL.Add(" where XLXSBJDMX_BJDID=:pBJDID");
|
|
//仅下达能关联到物料编码的记录
|
|
//SQL.Add(" and isnull(a.minWLID,' ')<>' '");
|
|
SQL.Add(" order by XLXSBJDMX_XSSX");
|
|
if (XLBJDUtils.GetXLXSBJPZXX(100860046).XLXSBJPZ_ZCCF.Trim().Equals("Y"))
|
|
SQL.Add(" ,XLXSBJFKCFMX_CFXH ");
|
|
SQL.ParamByName("pBJDID").Value = sBJDID;
|
|
DataSet dsMX = dberp.OpenDataSet(SQL);
|
|
//记录报价产品计量单位与对应线缆物料计量单位的换算系数
|
|
Dictionary<string, double> dicHSXS = new Dictionary<string, double>();
|
|
Dictionary<string, string> dicDRXH = new Dictionary<string, string>();
|
|
//反馈物料匹配提醒
|
|
if (pzxx.XLXSBJPZ_FKWLPPTX.Equals("Y"))
|
|
{
|
|
string sXHList = "";
|
|
for (int i = 0; i < dsMX.Tables[0].Rows.Count; i++)
|
|
{
|
|
if (!dsMX.Tables[0].Rows[i]["XLXSBJDMX_BJCP"].ToString().Trim().Equals(dsMX.Tables[0].Rows[i]["WL_GG"].ToString().Trim()))
|
|
{
|
|
sXHList = sXHList + dsMX.Tables[0].Rows[i]["XLXSBJDMX_XSSX"].ToString().Trim() + ",";
|
|
}
|
|
}
|
|
if (!sXHList.Equals(""))
|
|
{
|
|
Confirm.Register("IsQD", string.Format("显示序号为{0}的明细记录报价产品与物料规格不一致,是否继续?", sXHList.TrimEnd(',')));
|
|
Confirm.ShowBtnText = TConfirm.cBtnText.Yes_No;
|
|
if (Confirm.GetValue("IsQD").Trim().Equals(""))
|
|
{
|
|
Confirm.Ask("IsQD");
|
|
return;
|
|
}
|
|
else if (Confirm.GetValue("IsQD").Trim().Equals("N"))
|
|
{
|
|
//表示进行了提示并选择了取消,直接返回或其他处理
|
|
Confirm.Clear();
|
|
return;
|
|
}
|
|
else if (Confirm.GetValue("IsQD").Trim().Equals("Y"))
|
|
{
|
|
//表示进行了提示并选择了确认
|
|
Confirm.Clear();
|
|
}
|
|
}
|
|
}
|
|
for (int i = 0; i < dsMX.Tables[0].Rows.Count; i++)
|
|
{
|
|
string sXH = dsMX.Tables[0].Rows[i]["XLXSBJDMX_XH"].ToString().Trim();
|
|
string sXSXH = dsMX.Tables[0].Rows[i]["XLXSBJDMX_XSSX"].ToString().Trim();
|
|
if (!dicDRXH.ContainsKey(sXH))
|
|
dicDRXH.Add(sXH, "1");
|
|
else
|
|
{
|
|
if (XLBJDUtils.GetXLXSBJPZXX(100860046).XLXSBJPZ_ZCCF.Trim().Equals("Y"))
|
|
continue;
|
|
string sSYS = dsMX.Tables[0].Rows[i]["XLXSBJDMX_XLXHID"].ToString().Trim() + " " + dsMX.Tables[0].Rows[i]["XLXSBJDMX_XLGGID"].ToString().Trim() + " " + dsMX.Tables[0].Rows[i]["XLXSBJDMX_DYDJID"].ToString().Trim() + " " + dsMX.Tables[0].Rows[i]["XLBZ"].ToString().Trim();
|
|
ShowMessage(string.Format("将导入重复明细【{0}】【{1}】,请检查是否存在相同产品对应多个物料!", sXH, sSYS));
|
|
return;
|
|
}
|
|
string sWLID = dsMX.Tables[0].Rows[i]["WLID"].ToString().Trim();
|
|
if (sWLID.Equals(""))
|
|
continue;
|
|
if (DicTYWL.Count > 0)
|
|
{
|
|
if (DicTYWL.ContainsKey(sWLID))
|
|
{
|
|
ShowMessage(string.Format("显示序号为[{0}]的明细记录对应物料已停用!", sXSXH));
|
|
return;
|
|
}
|
|
}
|
|
string sBJCPJLDW = dsMX.Tables[0].Rows[i]["XLXSBJDMX_JLDW"].ToString().Trim();
|
|
string sWLJLDW = dsMX.Tables[0].Rows[i]["WL_JLDW"].ToString().Trim();
|
|
|
|
if (sWLJLDW.Equals("") || sBJCPJLDW.ToUpper().Equals(sWLJLDW.ToUpper()))
|
|
{
|
|
dicHSXS.Add(dsMX.Tables[0].Rows[i]["XLXSBJDMX_XH"].ToString().Trim(), 1);
|
|
}
|
|
else
|
|
{
|
|
Dictionary<string, double> dicJLWD = new Dictionary<string, double>();
|
|
GetJLDWList(dicJLWD, sWLID, sWLJLDW);
|
|
if (!dicJLWD.ContainsKey(sBJCPJLDW))
|
|
{
|
|
ShowMessage(string.Format("报价计量单位【{0}】与物料计量单位【{1}】未维护替代关系,请至【100812012|替代计量单位维护】模块维护!", sBJCPJLDW, sWLJLDW));
|
|
return;
|
|
}
|
|
else
|
|
{
|
|
dicHSXS.Add(dsMX.Tables[0].Rows[i]["XLXSBJDMX_XH"].ToString().Trim(), dicJLWD[sBJCPJLDW]);
|
|
}
|
|
}
|
|
}
|
|
|
|
SQL.Clear();
|
|
SQL.Add("select XLXSBJD_BJSM,XLXSBJD_BJRQ,XLXSBJD_ZJE,XLXSBJD_FKSM,XLXSBJD_BZ,XLXSBJD_WHRID,XLXSBJD_WHR,XLXSBJD_WHSJ,XLXSBJD_BJFLID,XLXSBJD_WFID,XLXSBJD_WPID,XLXSBJD_WFINST,XLXSBJD_WFAWAITER,XLXSBJD_DOCGRPID,XLXSBJD_FJS ");
|
|
SQL.Add(" from XLXSBJD");
|
|
SQL.Add(" where XLXSBJD_BJDID=:pBJDID");
|
|
SQL.ParamByName("pBJDID").Value = sBJDID;
|
|
DataSet dsBJD = dberp.OpenDataSet(SQL);
|
|
|
|
string sNextWPName = "";
|
|
try
|
|
{
|
|
dberp.BeginTrans();
|
|
if (dsBJD.Tables[0].Rows.Count > 0)
|
|
{
|
|
#region 插入主表
|
|
SQL.Clear();
|
|
SQL.Add("insert into BJD(BJD_BJDID,BJD_TBID,BJD_BJDMS,BJD_KHID,BJD_LXR,BJD_BJRQ,BJD_BMID,BJD_TXY,BJD_FKFS,");
|
|
SQL.Add(" BJD_ZJE,BJD_HBID,BJD_HL,BJD_QRRQ,BJD_BZ,BJD_ZT,BJD_WHRID,BJD_WHR,BJD_WHSJ,");
|
|
SQL.Add(" BJD_XMID,BJD_WPID,BJD_KHMC,BJD_QRR,BJD_SJ,BJD_TEL,BJD_FAX,BJD_XSYFAX,BJD_XMJC,BJD_XMMC,BJD_BJLXID,BJD_DOCGRPID,BJD_FJS)");
|
|
SQL.Add(" values(:XLXSBJD_BJDID,:XLXSBJD_BJDID,:XLXSBJD_BJSM,:KHID,:KHLXR,:XLXSBJD_BJRQ,:XSBMID,:TSY,:FKFS,");
|
|
SQL.Add(" :XLXSBJD_ZJE,:HBID,:HL,:QRRQ,:XLXSBJD_BZ,:ZT,:XLXSBJD_WHRID,:XLXSBJD_WHR,:XLXSBJD_WHSJ,");
|
|
SQL.Add(" :XMID,'ZZZZ',:KHMC,:QRR,:TXYDH,:LXRDH,:LXRCZ,:TXYCZ,:XMJC,:XMMC,:BJLXID,:DOCGRPID,:FJS )");
|
|
|
|
double dDOCGRPID = CMISproConvert.StrToFloat(dsBJD.Tables[0].Rows[0]["XLXSBJD_DOCGRPID"].ToString().Trim());
|
|
double dFJS = 0;
|
|
double dDOCID = 0;
|
|
if (dDOCGRPID > 0)
|
|
{
|
|
dFJS = CMISproConvert.StrToFloat(dsBJD.Tables[0].Rows[0]["XLXSBJD_FJS"].ToString().Trim());
|
|
List<double> fileIdList = new List<double>();
|
|
DocFileInfo[] docFileInfo = FileService.GetFilesInfo(dDOCGRPID);
|
|
for (int i = 0; i < dFJS; i++)
|
|
{
|
|
fileIdList.Add(docFileInfo[i].FileId);
|
|
}
|
|
DocFileResult docGR = FileService.CopyFiles(fileIdList.ToArray(), 0);
|
|
dDOCID = docGR.GroupId;
|
|
}
|
|
SQL.ParamByName("XLXSBJD_BJDID").Value = sBJDID;
|
|
SQL.ParamByName("XLXSBJD_BJSM").Value = XLBJDUtils.SubStringFunc(dsBJD.Tables[0].Rows[0]["XLXSBJD_BJSM"].ToString().Trim(), 40);
|
|
SQL.ParamByName("KHID").Value = txtKHID.Text.Trim();
|
|
SQL.ParamByName("KHLXR").Value = txtLXR.Text.Trim();
|
|
SQL.ParamByName("XLXSBJD_BJRQ").Value = dsBJD.Tables[0].Rows[0]["XLXSBJD_BJRQ"].ToString().Trim();
|
|
SQL.ParamByName("XSBMID").Value = cbxXSBMID.SelectedValue.Trim();
|
|
SQL.ParamByName("TSY").Value = txtTXY.Text.Trim();
|
|
SQL.ParamByName("FKFS").Value = XLBJDUtils.SubStringFunc(dsBJD.Tables[0].Rows[0]["XLXSBJD_FKSM"].ToString().Trim(), 250);
|
|
SQL.ParamByName("XLXSBJD_ZJE").Value = CMISproConvert.StrToFloat(dsBJD.Tables[0].Rows[0]["XLXSBJD_ZJE"].ToString());
|
|
SQL.ParamByName("HBID").Value = sHBID;
|
|
SQL.ParamByName("HL").Value = fHL;
|
|
SQL.ParamByName("QRRQ").Value = DateTime.Now.ToShortDateString();
|
|
SQL.ParamByName("XLXSBJD_BZ").Value = XLBJDUtils.SubStringFunc(dsBJD.Tables[0].Rows[0]["XLXSBJD_BZ"].ToString().Trim(), 250);
|
|
SQL.ParamByName("ZT").Value = "F";//F|反馈
|
|
SQL.ParamByName("XLXSBJD_WHRID").Value = dsBJD.Tables[0].Rows[0]["XLXSBJD_WHRID"].ToString().Trim();
|
|
SQL.ParamByName("XLXSBJD_WHR").Value = dsBJD.Tables[0].Rows[0]["XLXSBJD_WHR"].ToString().Trim();
|
|
SQL.ParamByName("XLXSBJD_WHSJ").Value = dsBJD.Tables[0].Rows[0]["XLXSBJD_WHSJ"].ToString().Trim();
|
|
SQL.ParamByName("XMID").Value = txtGCXM.Text.Trim();
|
|
SQL.ParamByName("KHMC").Value = txtKHMC.Text.Trim();
|
|
SQL.ParamByName("QRR").Value = tSession.UserName;
|
|
SQL.ParamByName("TXYDH").Value = txtTXYDH.Text.Trim();
|
|
SQL.ParamByName("LXRDH").Value = txtLXRDH.Text.Trim();
|
|
SQL.ParamByName("LXRCZ").Value = txtLXRCZ.Text.Trim();
|
|
SQL.ParamByName("TXYCZ").Value = txtTXYCZ.Text.Trim();
|
|
SQL.ParamByName("XMJC").Value = txtXMJC.Value.Trim();
|
|
SQL.ParamByName("XMMC").Value = txtXMMC.Text.Trim();
|
|
SQL.ParamByName("BJLXID").Value = dsBJD.Tables[0].Rows[0]["XLXSBJD_BJFLID"].ToString().Trim();
|
|
SQL.ParamByName("DOCGRPID").Value = dDOCID;
|
|
SQL.ParamByName("FJS").Value = dFJS;
|
|
dberp.ExecSQL(SQL);
|
|
#endregion
|
|
|
|
#region 插入明细
|
|
int iCFXH = 0;
|
|
for (int i = 0; i < dsMX.Tables[0].Rows.Count; i++)
|
|
{
|
|
if (dsMX.Tables[0].Rows[i]["WLID"].ToString().Trim().Equals(""))
|
|
continue;
|
|
SQL.Clear();
|
|
SQL.Add("insert into BJDMX(BJDMX_BJDID,BJDMX_BJDXH,BJDMX_XLXSBJXSSX,BJDMX_WLID,BJDMX_CB,BJDMX_JLDW,BJDMX_HSXS,");
|
|
SQL.Add(" BJDMX_BJSL,BJDMX_ZBJSL,BJDMX_PZ,BJDMX_BZ,BJDMX_CBCG,BJDMX_JE,BJDMX_KHWLMC,BJDMX_WLMCGG, ");
|
|
SQL.Add(" BJDMX_DZSC,BJDMX_BJWS,BJDMX_JG,BJDMX_KHJG,BJDMX_KHJE,BJDMX_JGBJG) ");
|
|
SQL.Add(" values(:XLXSBJDMX_BJDID,:XLXSBJDMX_XH,:XLXSBJDMX_XSSX,:WLID,:XLXSBJDMX_BJDHQCLCB,:XLXSBJDMX_JLDW,:HSXS,");
|
|
SQL.Add(" :XLXSBJDMX_BJSL,:ZBJSL,'N',:XLXSBJDMX_BZ,'N',:XLXSBJDMX_BJJE,:XLXSBJDMX_BJCP,:WLMCGG, ");
|
|
SQL.Add(" :DZSC,:BJWS,:JG,:KHJG,:KHJE,:JGBJG) ");
|
|
SQL.ParamByName("XLXSBJDMX_BJDID").Value = sBJDID;
|
|
if (XLBJDUtils.GetXLXSBJPZXX(100860046).XLXSBJPZ_ZCCF.Trim().Equals("Y"))
|
|
{
|
|
iCFXH++;
|
|
SQL.ParamByName("XLXSBJDMX_XH").Value = dsMX.Tables[0].Rows[i]["XLXSBJFKCFMX_CFXH"].ToString().Trim();
|
|
}
|
|
else
|
|
SQL.ParamByName("XLXSBJDMX_XH").Value = dsMX.Tables[0].Rows[i]["XLXSBJDMX_XH"].ToString().Trim();
|
|
SQL.ParamByName("XLXSBJDMX_XSSX").Value = dsMX.Tables[0].Rows[i]["XLXSBJDMX_XSSX"].ToString().Trim();
|
|
SQL.ParamByName("WLID").Value = dsMX.Tables[0].Rows[i]["WLID"].ToString().Trim();
|
|
SQL.ParamByName("XLXSBJDMX_BJDHQCLCB").Value = dsMX.Tables[0].Rows[i]["XLXSBJDMX_BJDHQCLCB"].ToString().Trim();
|
|
|
|
if (dsMX.Tables[0].Rows[i]["XLXSBJDMX_JLDW"].ToString().Trim().ToUpper() == dsMX.Tables[0].Rows[i]["WL_JLDW"].ToString().Trim().ToUpper())
|
|
SQL.ParamByName("XLXSBJDMX_JLDW").Value = dsMX.Tables[0].Rows[i]["WL_JLDW"].ToString().Trim();
|
|
else
|
|
SQL.ParamByName("XLXSBJDMX_JLDW").Value = dsMX.Tables[0].Rows[i]["XLXSBJDMX_JLDW"].ToString().Trim();
|
|
|
|
SQL.ParamByName("HSXS").Value = dicHSXS[dsMX.Tables[0].Rows[i]["XLXSBJDMX_XH"].ToString().Trim()];
|
|
SQL.ParamByName("XLXSBJDMX_BJSL").Value = dsMX.Tables[0].Rows[i]["XLXSBJDMX_BJSL"].ToString().Trim();
|
|
SQL.ParamByName("ZBJSL").Value = CMISproConvert.StrToFloat(dsMX.Tables[0].Rows[i]["XLXSBJDMX_BJSL"].ToString().Trim()) * dicHSXS[dsMX.Tables[0].Rows[i]["XLXSBJDMX_XH"].ToString().Trim()];
|
|
SQL.ParamByName("XLXSBJDMX_BZ").Value = dsMX.Tables[0].Rows[i]["XLXSBJDMX_BZ"].ToString().Trim();
|
|
SQL.ParamByName("XLXSBJDMX_BJJE").Value = dsMX.Tables[0].Rows[i]["XLXSBJDMX_BJJE"].ToString().Trim();
|
|
SQL.ParamByName("XLXSBJDMX_BJCP").Value = dsMX.Tables[0].Rows[i]["XLXSBJDMX_BJCP"].ToString().Trim();
|
|
|
|
if (dsMX.Tables[0].Rows[i]["WL_GG"].ToString().Trim().Equals(""))
|
|
SQL.ParamByName("WLMCGG").Value = dsMX.Tables[0].Rows[i]["WL_MC"].ToString().Trim();
|
|
else
|
|
SQL.ParamByName("WLMCGG").Value = dsMX.Tables[0].Rows[i]["WL_MC"].ToString().Trim() + " " + dsMX.Tables[0].Rows[i]["WL_GG"].ToString().Trim();
|
|
SQL.ParamByName("DZSC").Value = dsMX.Tables[0].Rows[i]["XLXSBJDMX_DZSC"].ToString().Trim();
|
|
SQL.ParamByName("BJWS").Value = dsMX.Tables[0].Rows[i]["XLXSBJDMX_BJWS"].ToString().Trim();
|
|
if (!pzxx.XLXSBJPZ_JGFKZD.Equals(""))
|
|
SQL.ParamByName("JG").Value = NumberUtils.RoundX(CMISproConvert.StrToFloat(dsMX.Tables[0].Rows[i]["XLXSBJDMX_" + pzxx.XLXSBJPZ_JGFKZD].ToString().Trim()), 4);
|
|
else
|
|
SQL.ParamByName("JG").Value = 0;
|
|
if (!pzxx.XLXSBJPZ_KHJFKZD.Equals(""))
|
|
{
|
|
SQL.ParamByName("KHJG").Value = NumberUtils.RoundX(CMISproConvert.StrToFloat(dsMX.Tables[0].Rows[i]["XLXSBJDMX_" + pzxx.XLXSBJPZ_KHJFKZD].ToString().Trim()), 4);
|
|
SQL.ParamByName("KHJE").Value = NumberUtils.RoundX(NumberUtils.RoundX(CMISproConvert.StrToFloat(dsMX.Tables[0].Rows[i]["XLXSBJDMX_" + pzxx.XLXSBJPZ_KHJFKZD].ToString().Trim()), 4) * CMISproConvert.StrToFloat(dsMX.Tables[0].Rows[i]["XLXSBJDMX_BJSL"].ToString().Trim()), 2);
|
|
}
|
|
else
|
|
{
|
|
SQL.ParamByName("KHJG").Value = 0;
|
|
SQL.ParamByName("KHJE").Value = 0;
|
|
}
|
|
if (!pzxx.XLXSBJPZ_JGBJGFKZD.Equals(""))
|
|
SQL.ParamByName("JGBJG").Value = NumberUtils.RoundX(CMISproConvert.StrToFloat(dsMX.Tables[0].Rows[i]["XLXSBJDMX_" + pzxx.XLXSBJPZ_JGBJGFKZD].ToString().Trim()), 4);
|
|
else
|
|
SQL.ParamByName("JGBJG").Value = 0;
|
|
|
|
dberp.ExecSQL(SQL);
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region 回填XLXSBJDMX_WLID
|
|
if (!XLBJDUtils.GetXLXSBJPZXX(100860046).XLXSBJPZ_ZCCF.Trim().Equals("Y"))
|
|
{
|
|
SQL.Clear();
|
|
SQL.Add(" merge into XLXSBJDMX tar ");
|
|
SQL.Add(" using ( ");
|
|
SQL.Add(" select BJDMX_BJDID,BJDMX_BJDXH,BJDMX_WLID from BJDMX ");
|
|
SQL.Add(" where BJDMX_BJDID = :pBJDID ");
|
|
SQL.Add(" ) sor ");
|
|
SQL.Add(" on ( ");
|
|
SQL.Add(" sor.BJDMX_BJDID = XLXSBJDMX_BJDID ");
|
|
SQL.Add(" and sor.BJDMX_BJDXH = XLXSBJDMX_XH ");
|
|
SQL.Add(" and XLXSBJDMX_BJDID = :pBJDID ");
|
|
SQL.Add(" ) ");
|
|
SQL.Add(" when matched then update set ");
|
|
SQL.Add(" XLXSBJDMX_WLID = sor.BJDMX_WLID ");
|
|
SQL.ParamByName("pBJDID").Value = sBJDID;
|
|
dberp.ExecSQL(SQL);
|
|
}
|
|
else
|
|
{
|
|
SQL.Clear();
|
|
SQL.Add(" merge into XLXSBJFKCFMX tar ");
|
|
SQL.Add(" using ( ");
|
|
SQL.Add(" select BJDMX_BJDID,BJDMX_BJDXH,BJDMX_WLID from BJDMX ");
|
|
SQL.Add(" where BJDMX_BJDID = :pBJDID ");
|
|
SQL.Add(" ) sor ");
|
|
SQL.Add(" on ( ");
|
|
SQL.Add(" sor.BJDMX_BJDID = XLXSBJFKCFMX_BJDID ");
|
|
SQL.Add(" and sor.BJDMX_BJDXH = XLXSBJFKCFMX_CFXH ");
|
|
SQL.Add(" and XLXSBJFKCFMX_BJDID = :pBJDID ");
|
|
SQL.Add(" ) ");
|
|
SQL.Add(" when matched then update set ");
|
|
SQL.Add(" XLXSBJFKCFMX_WLID = sor.BJDMX_WLID ");
|
|
SQL.ParamByName("pBJDID").Value = sBJDID;
|
|
dberp.ExecSQL(SQL);
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region 发送消息提醒
|
|
if (!string.IsNullOrEmpty(XLBJDUtils.GetXLXSBJPZXX(100860046).XLXSBJPZ_JGPSTZRGHS))
|
|
{
|
|
SQL.Clear();
|
|
SQL.Add(@"select XLXHJGCZBML_XLXHID,XLXHJGCZBML_DYDJID,XLXHJGCZBML_XLBZID,isnull(XLJGCZBML_FZR,' ') as XLJGCZBML_FZR,
|
|
XLXSCLQD_JGCZBID,XLXSCLQD_JGCZBBBID,XLXSCLQD_JGCZBXH,XLXSCLQD_DRHH,XLXSBJDMX_BJDID,max(XLXSBJDMX_XH) as XLXSBJDMX_XH
|
|
from XLXSBJDMX
|
|
left join XLXSCLQD on XLXSCLQD_XLXHID=XLXSBJDMX_XLXHID and XLXSCLQD_XLGGID=XLXSBJDMX_XLGGID and XLXSCLQD_XLBZID=XLXSBJDMX_XLBZID and XLXSCLQD_DYDJID=XLXSBJDMX_DYDJID
|
|
left join XLXHJGCZBML on XLXHJGCZBML_JGCZBID = XLXSCLQD_JGCZBID and XLXHJGCZBML_JGCZBXH = XLXSCLQD_JGCZBXH
|
|
left join XLJGCZBML on XLJGCZBML_JGCZBID = XLXSCLQD_JGCZBID
|
|
left join
|
|
(select min(XLGYBOM_PSSJ) as PSSJ,XLGYBOM_WLID,XLGYBOM_GYFLBM from XLGYBOM
|
|
where exists(select 1 from XLXSBJDMX where XLXSBJDMX_BJDID = :pBJDID and XLXSBJDMX_WLID = XLGYBOM_WLID)
|
|
group by XLGYBOM_WLID,XLGYBOM_GYFLBM) GYBOM
|
|
on GYBOM.XLGYBOM_WLID = XLXSBJDMX_WLID and GYBOM.XLGYBOM_GYFLBM = XLJGCZBML_GYFLBM
|
|
where XLXSBJDMX_BJDID = :pBJDID and XLXSBJDMX_ZB in('P','Y') and (XLJGCZBML_CZBLX = 'C' or XLJGCZBML_CZBLX = 'G')
|
|
and (isnull(PSSJ,' ') = ' ' or XLXSCLQD_WHSJ > PSSJ)
|
|
group by XLXHJGCZBML_XLXHID,XLXHJGCZBML_DYDJID,XLXHJGCZBML_XLBZID,XLXSCLQD_JGCZBID,XLXSCLQD_JGCZBBBID,XLXSCLQD_JGCZBXH,XLXSCLQD_DRHH,XLXSBJDMX_BJDID,isnull(XLJGCZBML_FZR,' ')
|
|
order by XLXSCLQD_JGCZBID,XLXSCLQD_JGCZBBBID,XLXHJGCZBML_XLXHID,XLXHJGCZBML_DYDJID,XLXHJGCZBML_XLBZID ");
|
|
SQL.ParamByName("pBJDID").Value = sBJDID;
|
|
DataSet dsJGPS = dberp.OpenDataSet(SQL);
|
|
if (dsJGPS.Tables[0].Rows.Count > 0)
|
|
{
|
|
int VnewID = CMISproDataBase.GetMaxXH("DBERP", "V_BJCPJGPS", "V_BJCPJGPS_ID", "") + 1;
|
|
SQL.Clear();
|
|
SQL.Add(@"insert into V_BJCPJGPS
|
|
(V_BJCPJGPS_ID,V_BJCPJGPS_JGCZBID,V_BJCPJGPS_JGCZBBBID,V_BJCPJGPS_JGCZBXH,V_BJCPJGPS_DRHH,V_BJCPJGPS_TIMESTAMP,V_BJCPJGPS_BJDID,V_BJCPJGPS_BJDXH,V_BJCPJGPS_WHR,V_BJCPJGPS_WHRID,V_BJCPJGPS_WHSJ)
|
|
values(:ID,:JGCZBID,:JGCZBBBID,:JGCZBXH,:DRHH,:TIMESTAMP,:BJDID,:BJDXH,:WHR,:WHRID,:WHSJ)");
|
|
string sJGCZBIDLast = dsJGPS.Tables[0].Rows[0]["XLXSCLQD_JGCZBID"].ToString().Trim();
|
|
string sJGCZBBBIDLast = dsJGPS.Tables[0].Rows[0]["XLXSCLQD_JGCZBBBID"].ToString().Trim();
|
|
string sXLXHIDLast = dsJGPS.Tables[0].Rows[0]["XLXHJGCZBML_XLXHID"].ToString().Trim();
|
|
string sDYDJIDLast = dsJGPS.Tables[0].Rows[0]["XLXHJGCZBML_DYDJID"].ToString().Trim();
|
|
string sXLBZIDLast = dsJGPS.Tables[0].Rows[0]["XLXHJGCZBML_XLBZID"].ToString().Trim();
|
|
for (int i = 0; i < dsJGPS.Tables[0].Rows.Count; i++)
|
|
{
|
|
string sJGCZBID = dsJGPS.Tables[0].Rows[i]["XLXSCLQD_JGCZBID"].ToString().Trim();
|
|
string sJGCZBBBID = dsJGPS.Tables[0].Rows[i]["XLXSCLQD_JGCZBBBID"].ToString().Trim();
|
|
string sXLXHID = dsJGPS.Tables[0].Rows[i]["XLXHJGCZBML_XLXHID"].ToString().Trim();
|
|
string sDYDJID = dsJGPS.Tables[0].Rows[i]["XLXHJGCZBML_DYDJID"].ToString().Trim();
|
|
string sXLBZID = dsJGPS.Tables[0].Rows[i]["XLXHJGCZBML_XLBZID"].ToString().Trim();
|
|
if (!(sJGCZBIDLast.Equals(sJGCZBID) && sJGCZBBBIDLast.Equals(sJGCZBBBID) && sXLXHIDLast.Equals(sXLXHID) && sDYDJIDLast.Equals(sDYDJID) && sXLBZIDLast.Equals(sXLBZID)))
|
|
{
|
|
string sTZR = pzxx.XLXSBJPZ_JGPSTZRGHS;
|
|
if (XLBJDUtils.GetXLXSBJPZXX(100860046).XLXSBJPZ_YXTZCZBFZR == "Y")
|
|
{
|
|
string sCZBFZR = dsJGPS.Tables[0].Rows[i]["XLJGCZBML_FZR"].ToString().Trim();
|
|
string sCZBFZRGH = TRYXX.GetRYByRYMC(sCZBFZR).GH;
|
|
string sJGPSTZRGHS = "," + pzxx.XLXSBJPZ_JGPSTZRGHS + ",";
|
|
if (!sJGCZBID.Equals("") && (sJGPSTZRGHS.Contains("," + sCZBFZRGH + ",")))
|
|
{
|
|
sTZR = sCZBFZRGH;
|
|
}
|
|
}
|
|
|
|
TMsg msg = new TMsg();
|
|
msg.MsgClass = "BJFK_JGPS";
|
|
msg.UMID = "100860046";
|
|
msg.MsgContent = string.Format("{0}|{1}尺重表下{2}型号{3}电压{4}标准类型存在部分规格正在进行报价反馈,请检查结构工艺是否需要重新派生!", sJGCZBIDLast, sJGCZBBBIDLast, sXLXHIDLast, sDYDJIDLast, sXLBZIDLast);
|
|
msg.MsgUmid = 101202010;
|
|
msg.ReceiveUsers = sTZR;
|
|
msg.MsgYWID = "[BJCPJGPS_ID=" + VnewID.ToString().Trim() + "]";
|
|
msg.SendMsg(tSession, tSession.UserName);
|
|
sJGCZBIDLast = sJGCZBID;
|
|
sJGCZBBBIDLast = sJGCZBBBID;
|
|
sXLXHIDLast = sXLXHID;
|
|
sDYDJIDLast = sDYDJID;
|
|
sXLBZIDLast = sXLBZID;
|
|
}
|
|
int iJGCZBXH =CMISproConvert.StrToInt(dsJGPS.Tables[0].Rows[i]["XLXSCLQD_JGCZBXH"].ToString().Trim(),0);
|
|
int iDRHH = CMISproConvert.StrToInt(dsJGPS.Tables[0].Rows[i]["XLXSCLQD_DRHH"].ToString().Trim(),0);
|
|
int iXH = CMISproConvert.StrToInt(dsJGPS.Tables[0].Rows[i]["XLXSBJDMX_XH"].ToString().Trim());
|
|
SQL.ParamByName("ID").Value = VnewID;
|
|
SQL.ParamByName("JGCZBID").Value = sJGCZBID;
|
|
SQL.ParamByName("JGCZBBBID").Value = sJGCZBBBID;
|
|
SQL.ParamByName("JGCZBXH").Value = iJGCZBXH;
|
|
SQL.ParamByName("DRHH").Value = iDRHH;
|
|
SQL.ParamByName("TIMESTAMP").Value = MISproUtils.GetServerTime();
|
|
SQL.ParamByName("BJDID").Value = sBJDID;
|
|
SQL.ParamByName("BJDXH").Value = iXH;
|
|
SQL.ParamByName("WHR").Value = tSession.UserName;
|
|
SQL.ParamByName("WHRID").Value = tSession.UserId;
|
|
SQL.ParamByName("WHSJ").Value = DateTime.Now;
|
|
dberp.ExecSQL(SQL);
|
|
|
|
}
|
|
TMsg msg2 = new TMsg();
|
|
msg2.MsgClass = "BJFK_JGPS";
|
|
msg2.UMID = "100860046";
|
|
msg2.MsgContent = string.Format("{0}|{1}尺重表下{2}型号{3}电压{4}标准类型存在部分规格正在进行报价反馈,请检查结构工艺是否需要重新派生!", sJGCZBIDLast, sJGCZBBBIDLast, sXLXHIDLast, sDYDJIDLast, sXLBZIDLast);
|
|
msg2.MsgUmid = 101202010;
|
|
msg2.MsgYWID = "[BJCPJGPS_ID=" + VnewID.ToString().Trim() + "]";
|
|
msg2.ReceiveUsers = pzxx.XLXSBJPZ_JGPSTZRGHS;
|
|
msg2.SendMsg(tSession, tSession.UserName);
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
#region 同步生成CS投标报价反馈记录
|
|
|
|
SQL.Clear();
|
|
SQL.Add("insert into TBBJFK(TBBJFK_TBSID, TBBJFK_BJDID, TBBJFK_BZ, TBBJFK_WHR, TBBJFK_WHRID, TBBJFK_WHSJ,TBBJFK_TBID, TBBJFK_FKRQ)");
|
|
SQL.Add(" values(' ', :pBJDID,NULL,:pWHR,:pWHRID,:pWHSJ,:pBJDID,:pFKRQ)");
|
|
SQL.ParamByName("pBJDID").Value = sBJDID;
|
|
SQL.ParamByName("pWHR").Value = tSession.UserName;
|
|
SQL.ParamByName("pWHRID").Value = tSession.UserId;
|
|
SQL.ParamByName("pWHSJ").Value = DateTime.Now;
|
|
SQL.ParamByName("pFKRQ").Value = DateTime.Now.ToShortDateString();
|
|
dberp.ExecSQL(SQL);
|
|
|
|
if (!XLBJDUtils.GetXLXSBJPZXX(100860046).XLXSBJPZ_ZCCF.Trim().Equals("Y"))
|
|
{
|
|
SQL.Clear();
|
|
SQL.Add("insert into TBBJFKMX(TBBJFKMX_TBSID, TBBJFKMX_BJDID, TBBJFKMX_XH, TBBJFKMX_BJDXH, TBBJFKMX_ZB,TBBJFKMX_ZBSL, TBBJFKMX_ZBJE) ");
|
|
SQL.Add("select ' ',BJDMX_BJDID,row_number() over(order by BJDMX_BJDXH) as XH,BJDMX_BJDXH,XLXSBJDMX_ZB,XLXSBJDMX_ZBSL,XLXSBJDMX_ZBJE ");
|
|
SQL.Add(" from BJDMX,XLXSBJDMX");
|
|
SQL.Add(" where BJDMX_BJDID=:pBJDID");
|
|
SQL.Add(" and XLXSBJDMX_BJDID=:pBJDID");
|
|
SQL.Add(" and XLXSBJDMX_XH=BJDMX_BJDXH");
|
|
SQL.ParamByName("pBJDID").Value = sBJDID;
|
|
dberp.ExecSQL(SQL);
|
|
}
|
|
else
|
|
{
|
|
|
|
for (int i = 0; i < dsMX.Tables[0].Rows.Count; i++)
|
|
{
|
|
SQL.Clear();
|
|
SQL.Add("insert into TBBJFKMX(TBBJFKMX_TBSID, TBBJFKMX_BJDID, TBBJFKMX_XH, TBBJFKMX_BJDXH, TBBJFKMX_ZB,TBBJFKMX_ZBSL, TBBJFKMX_ZBJE) ");//TBBJFKMX_BJDH--TBBJFKMX_BJDID
|
|
SQL.Add("values ( ' ',:pBJDID,:pXH,:BJDMX_BJDXH,:XLXSBJDMX_ZB,:XLXSBJDMX_ZBSL,:XLXSBJDMX_ZBJE ) ");
|
|
SQL.ParamByName("pBJDID").Value = sBJDID;
|
|
|
|
if (XLBJDUtils.GetXLXSBJPZXX(100860046).XLXSBJPZ_ZCCF.Trim().Equals("Y"))
|
|
{
|
|
SQL.ParamByName("pXH").Value = dsMX.Tables[0].Rows[i]["XLXSBJFKCFMX_CFXH"].ToString().Trim();
|
|
SQL.ParamByName("BJDMX_BJDXH").Value = dsMX.Tables[0].Rows[i]["XLXSBJFKCFMX_CFXH"].ToString().Trim();
|
|
}
|
|
else
|
|
{
|
|
SQL.ParamByName("pXH").Value = dsMX.Tables[0].Rows[i]["XLXSBJDMX_XH"].ToString().Trim();
|
|
SQL.ParamByName("BJDMX_BJDXH").Value = dsMX.Tables[0].Rows[i]["XLXSBJDMX_XH"].ToString().Trim();
|
|
}
|
|
SQL.ParamByName("XLXSBJDMX_ZB").Value = dsMX.Tables[0].Rows[i]["XLXSBJDMX_ZB"].ToString().Trim();
|
|
SQL.ParamByName("XLXSBJDMX_ZBSL").Value = dsMX.Tables[0].Rows[i]["XLXSBJDMX_ZBSL"].ToString().Trim();
|
|
SQL.ParamByName("XLXSBJDMX_ZBJE").Value = dsMX.Tables[0].Rows[i]["XLXSBJDMX_ZBJE"].ToString().Trim();
|
|
dberp.ExecSQL(SQL);
|
|
}
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
#region 增加XSBJLX数据表记录
|
|
string tSQL = String.Format(@"insert into XSBJLX(XSBJLX_LXID,XSBJLX_LXMC,XSBJLX_QYRQ,XSBJLX_TYRQ,XSBJLX_TYBZ,
|
|
XSBJLX_WHRID,XSBJLX_WHR,XSBJLX_WHSJ,XSBJLX_BZ)
|
|
select XLXSBJFL_BJFLID,XLXSBJFL_BJFLMC,XLXSBJFL_QYRQ,XLXSBJFL_TYRQ,XLXSBJFL_TYBZ,
|
|
'SUPERVISOR','超级用户',convert(datetime,'{0}'),'线缆销售报价同步设置'
|
|
from XLXSBJFL
|
|
where XLXSBJFL_BJFLID='{1}'
|
|
and not exists(select 1 from XSBJLX where XSBJLX_LXID=XLXSBJFL_BJFLID) ",
|
|
DateTime.Now.ToString(),
|
|
dsBJD.Tables[0].Rows[0]["XLXSBJD_BJFLID"].ToString().Trim());
|
|
dberp.ExecSQL(tSQL);
|
|
#endregion
|
|
|
|
#region 自动提交XLXSBJD至下一步
|
|
TWorkflow BJDWF = new TWorkflow(tSession, new System.Web.Caching.Cache());
|
|
string sWFID = dsBJD.Tables[0].Rows[0]["XLXSBJD_WFID"].ToString().Trim();
|
|
string sWPID = dsBJD.Tables[0].Rows[0]["XLXSBJD_WPID"].ToString().Trim();
|
|
double WFINST = CMISproConvert.StrToFloat(dsBJD.Tables[0].Rows[0]["XLXSBJD_WFINST"].ToString());
|
|
string sAWaiter = dsBJD.Tables[0].Rows[0]["XLXSBJD_WFAWAITER"].ToString().Trim();
|
|
string sNextAwaiter = "";
|
|
int flag = 1;
|
|
//提交下一步
|
|
BJDWF.Enabled = true;
|
|
string sUser = tSession.UserId;
|
|
BJDWF.CurUserID = sUser;
|
|
|
|
BJDWF.WFInfo(sWFID, WFINST, sUser);
|
|
|
|
TWFActionParam param = new TWFActionParam();
|
|
param.sOpinion = "报价反馈自动提交";
|
|
param.sNextWFID = sWFID;
|
|
string sNWPID = "";
|
|
//---------直接使用工作流方法取下一步工作流NWPID,不再使用直接写的方法
|
|
TStrings wfpName = new TStrings();
|
|
wfpName.Text = BJDWF.WFGetNextWFP(sWFID, sWPID);
|
|
try
|
|
{
|
|
if (wfpName.Count > 1)
|
|
{
|
|
sNWPID = wfpName.Names(1).Trim();
|
|
}
|
|
}
|
|
catch
|
|
{
|
|
flag = 2;
|
|
}
|
|
param.sNextWPID = sNWPID;
|
|
param.sNextNotifier = "";
|
|
if (!sNWPID.Trim().Equals("ZZZZ"))
|
|
{
|
|
sNextAwaiter = BJDWF.WFGetNextAwaiter(sWFID, sNWPID);
|
|
if (sNextAwaiter.Trim().Equals("") || sNextAwaiter.Trim().Length > 250)
|
|
{
|
|
flag = 3;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
//flag = 4;
|
|
sNextAwaiter = "";
|
|
}
|
|
if (flag == 1)
|
|
{
|
|
if (!sNWPID.Trim().Equals("ZZZZ"))
|
|
{
|
|
param.sNextAwaiter = "," + sNextAwaiter + ",";
|
|
}
|
|
else
|
|
{
|
|
param.sNextAwaiter = "";
|
|
}
|
|
if (!BJDWF.WFIsStopWPID(sWFID, sNWPID))
|
|
param.sWFState = TWorkflow.wfsRunning;
|
|
else
|
|
param.sWFState = TWorkflow.wfsDone;
|
|
|
|
if (BJDWF.WFWorkIsDone(sWFID, WFINST, sUser))
|
|
{
|
|
param.sWPState = TWorkflow.wpsSubmit;
|
|
}
|
|
else
|
|
{
|
|
param.sWPState = TWorkflow.wfsRunning;
|
|
}
|
|
BJDWF.WFSubmit(sWFID, WFINST, sUser, param);
|
|
BJDWF.dbe.ExecSQL(string.Format("update XLXSBJD set XLXSBJD_WPID='{0}', XLXSBJD_WFAWAITER='{1}', XLXSBJD_WFHANDLER='{2}' ,XLXSBJD_WFINST={3},XLXSBJD_WFID='{4}',XLXSBJD_ACTNAME='{5}' where XLXSBJD_BJDID='{6}' ",
|
|
BJDWF.WPID, BJDWF.Awaiter, BJDWF.Handler, BJDWF.WFInst, BJDWF.WFID, BJDWF.GetWFActionName(TWFAction.wfaSubmit), sBJDID));
|
|
sNextWPName = BJDWF.GetWPName(BJDWF.WFID, BJDWF.WPID);
|
|
}
|
|
#endregion
|
|
|
|
#region 更新报价单统计状态
|
|
|
|
XLBJDUtils.UpdateTJBZ(sBJDID, "DoBJFK");
|
|
#endregion
|
|
}
|
|
dberp.CommitTrans();
|
|
if (GetOption("BJU068").Equals("W"))
|
|
GThinking.N_PUBLIC2.HLXTUtils.DataSend(sBJDID, sBJDID, "I", "XLBJDFS");
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
ShowMessage("反馈操作出错,错误原因:" + ex);
|
|
dberp.RollbackTrans();
|
|
}
|
|
|
|
if (pzxx.XLXSBJPZ_TBFKZ3BB == "Y")
|
|
{
|
|
#region 同步插入3版本BJD数据表
|
|
|
|
TDatabase dberp3 = TContextDatabases.GetDatabase("DBERP3");
|
|
TSQL SQL3 = new TSQL(dberp3);
|
|
try
|
|
{
|
|
dberp3.BeginTrans();
|
|
|
|
if (dsBJD.Tables[0].Rows.Count > 0)
|
|
{
|
|
#region 插入主表
|
|
SQL3.Clear();
|
|
SQL3.Add("insert into BJD(BJD_BJDID,BJD_BJDMS,BJD_KHID,BJD_LXR,BJD_BJRQ,BJD_BMID,BJD_TXY,BJD_FKFS,");
|
|
SQL3.Add(" BJD_ZJE,BJD_HBID,BJD_HL,BJD_QRRQ,BJD_BZ,BJD_ZT,BJD_WHRID,BJD_WHR,BJD_WHSJ,");
|
|
SQL3.Add(" BJD_XMID,BJD_WPID,BJD_KHMC)");
|
|
SQL3.Add(" values(:XLXSBJD_BJDID,:XLXSBJD_BJSM,:KHID,:KHLXR,:XLXSBJD_BJRQ,:XSBMID,:TSY,:FKFS,");
|
|
SQL3.Add(" :XLXSBJD_ZJE,:HBID,:HL,:QRRQ,:XLXSBJD_BZ,:ZT,:XLXSBJD_WHRID,:XLXSBJD_WHR,:XLXSBJD_WHSJ,");
|
|
SQL3.Add(" :XMID,'ZZZZ',:KHMC)");
|
|
|
|
|
|
SQL3.ParamByName("XLXSBJD_BJDID").Value = sBJDID;
|
|
SQL3.ParamByName("XLXSBJD_BJSM").Value = XLBJDUtils.SubStringFunc(dsBJD.Tables[0].Rows[0]["XLXSBJD_BJSM"].ToString().Trim(), 40);
|
|
SQL3.ParamByName("KHID").Value = txtKHID.Text.Trim();
|
|
SQL3.ParamByName("KHLXR").Value = txtLXR.Text.Trim();
|
|
SQL3.ParamByName("XLXSBJD_BJRQ").Value = dsBJD.Tables[0].Rows[0]["XLXSBJD_BJRQ"].ToString().Trim();
|
|
SQL3.ParamByName("XSBMID").Value = cbxXSBMID.SelectedValue.Trim();
|
|
SQL3.ParamByName("TSY").Value = txtTXY.Text.Trim();
|
|
SQL3.ParamByName("FKFS").Value = XLBJDUtils.SubStringFunc(dsBJD.Tables[0].Rows[0]["XLXSBJD_FKSM"].ToString().Trim(), 250);
|
|
SQL3.ParamByName("XLXSBJD_ZJE").Value = CMISproConvert.StrToFloat(dsBJD.Tables[0].Rows[0]["XLXSBJD_ZJE"].ToString());
|
|
SQL3.ParamByName("HBID").Value = sHBID;
|
|
SQL3.ParamByName("HL").Value = fHL;
|
|
SQL3.ParamByName("QRRQ").Value = DateTime.Now.ToShortDateString();
|
|
SQL3.ParamByName("XLXSBJD_BZ").Value = XLBJDUtils.SubStringFunc(dsBJD.Tables[0].Rows[0]["XLXSBJD_BZ"].ToString().Trim(), 250);
|
|
SQL3.ParamByName("ZT").Value = "F";//F|反馈
|
|
SQL3.ParamByName("XLXSBJD_WHRID").Value = dsBJD.Tables[0].Rows[0]["XLXSBJD_WHRID"].ToString().Trim();
|
|
SQL3.ParamByName("XLXSBJD_WHR").Value = dsBJD.Tables[0].Rows[0]["XLXSBJD_WHR"].ToString().Trim();
|
|
SQL3.ParamByName("XLXSBJD_WHSJ").Value = dsBJD.Tables[0].Rows[0]["XLXSBJD_WHSJ"].ToString().Trim();
|
|
SQL3.ParamByName("XMID").Value = txtGCXM.Text.Trim();
|
|
SQL3.ParamByName("KHMC").Value = txtKHMC.Text.Trim();
|
|
SQL3.ParamByName("XMJC").Value = txtXMJC.Value.Trim();
|
|
SQL3.ParamByName("XMMC").Value = txtXMMC.Text.Trim();
|
|
dberp3.ExecSQL(SQL3);
|
|
#endregion
|
|
|
|
#region 插入明细
|
|
int iCFXH = 0;
|
|
for (int i = 0; i < dsMX.Tables[0].Rows.Count; i++)
|
|
{
|
|
if (dsMX.Tables[0].Rows[i]["WLID"].ToString().Trim().Equals(""))
|
|
continue;
|
|
SQL3.Clear();
|
|
SQL3.Add("insert into BJDMX(BJDMX_BJDID,BJDMX_BJDXH,BJDMX_WLID,BJDMX_JG,BJDMX_CB,BJDMX_JLDW,BJDMX_HSXS,");
|
|
SQL3.Add(" BJDMX_BJSL,BJDMX_ZBJSL,BJDMX_PZ,BJDMX_BZ,BJDMX_CBCG,BJDMX_JE,BJDMX_KHWLMC, ");
|
|
SQL3.Add(" BJDMX_KHJG,BJDMX_KHJE,BJDMX_ZBDJ) ");
|
|
SQL3.Add(" values(:XLXSBJDMX_BJDID,:XLXSBJDMX_XH,:WLID,:XLXSBJDMX_CPBJ,:XLXSBJDMX_BJDHQCLCB,:XLXSBJDMX_JLDW,:HSXS,");
|
|
SQL3.Add(" :XLXSBJDMX_BJSL,:ZBJSL,'N',:XLXSBJDMX_BZ,'N',:XLXSBJDMX_BJJE,:XLXSBJDMX_BJCP, ");
|
|
SQL3.Add(" :KHJG,:KHJE,:XLXSBJDMX_CPBJ) ");
|
|
SQL3.ParamByName("XLXSBJDMX_BJDID").Value = sBJDID;
|
|
|
|
if (XLBJDUtils.GetXLXSBJPZXX(100860046).XLXSBJPZ_ZCCF.Trim().Equals("Y"))
|
|
{
|
|
iCFXH++;
|
|
SQL3.ParamByName("XLXSBJDMX_XH").Value = dsMX.Tables[0].Rows[i]["XLXSBJFKCFMX_CFXH"].ToString().Trim();
|
|
}
|
|
else
|
|
SQL3.ParamByName("XLXSBJDMX_XH").Value = dsMX.Tables[0].Rows[i]["XLXSBJDMX_XH"].ToString().Trim();
|
|
//SQL3.ParamByName("XLXSBJDMX_XH").Value = dsMX.Tables[0].Rows[i]["XLXSBJDMX_XH"].ToString().Trim();
|
|
SQL3.ParamByName("WLID").Value = dsMX.Tables[0].Rows[i]["WLID"].ToString().Trim();
|
|
SQL3.ParamByName("XLXSBJDMX_CPBJ").Value = dsMX.Tables[0].Rows[i]["XLXSBJDMX_CPBJ"].ToString().Trim();
|
|
SQL3.ParamByName("XLXSBJDMX_BJDHQCLCB").Value = dsMX.Tables[0].Rows[i]["XLXSBJDMX_BJDHQCLCB"].ToString().Trim();
|
|
|
|
if (dsMX.Tables[0].Rows[i]["XLXSBJDMX_JLDW"].ToString().Trim().ToUpper() == dsMX.Tables[0].Rows[i]["WL_JLDW"].ToString().Trim().ToUpper())
|
|
SQL3.ParamByName("XLXSBJDMX_JLDW").Value = dsMX.Tables[0].Rows[i]["WL_JLDW"].ToString().Trim();
|
|
else
|
|
SQL3.ParamByName("XLXSBJDMX_JLDW").Value = dsMX.Tables[0].Rows[i]["XLXSBJDMX_JLDW"].ToString().Trim();
|
|
|
|
SQL3.ParamByName("HSXS").Value = dicHSXS[dsMX.Tables[0].Rows[i]["XLXSBJDMX_XH"].ToString().Trim()];
|
|
SQL3.ParamByName("XLXSBJDMX_BJSL").Value = dsMX.Tables[0].Rows[i]["XLXSBJDMX_BJSL"].ToString().Trim();
|
|
SQL3.ParamByName("ZBJSL").Value = CMISproConvert.StrToFloat(dsMX.Tables[0].Rows[i]["XLXSBJDMX_BJSL"].ToString().Trim()) * dicHSXS[dsMX.Tables[0].Rows[i]["XLXSBJDMX_XH"].ToString().Trim()];
|
|
SQL3.ParamByName("XLXSBJDMX_BZ").Value = dsMX.Tables[0].Rows[i]["XLXSBJDMX_BZ"].ToString().Trim();
|
|
SQL3.ParamByName("XLXSBJDMX_BJJE").Value = dsMX.Tables[0].Rows[i]["XLXSBJDMX_BJJE"].ToString().Trim();
|
|
SQL3.ParamByName("XLXSBJDMX_BJCP").Value = dsMX.Tables[0].Rows[i]["XLXSBJDMX_BJCP"].ToString().Trim();
|
|
SQL3.ParamByName("KHJG").Value = NumberUtils.RoundX(CMISproConvert.StrToFloat(dsMX.Tables[0].Rows[i]["XLXSBJDMX_ZDXJ"].ToString().Trim()), 4);
|
|
SQL3.ParamByName("KHJE").Value = NumberUtils.RoundX(NumberUtils.RoundX(CMISproConvert.StrToFloat(dsMX.Tables[0].Rows[i]["XLXSBJDMX_ZDXJ"].ToString().Trim()), 4) * CMISproConvert.StrToFloat(dsMX.Tables[0].Rows[i]["XLXSBJDMX_BJSL"].ToString().Trim()), 2);
|
|
dberp3.ExecSQL(SQL3);
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region 同步生成CS投标报价反馈记录
|
|
|
|
SQL3.Clear();
|
|
SQL3.Add("insert into TBBJFK(TBBJFK_TBSID, TBBJFK_BJDH, TBBJFK_BZ, TBBJFK_WHR, TBBJFK_WHRID, TBBJFK_WHSJ)");//TBBJFK_BJDH--TBBJFK_BJDID
|
|
SQL3.Add(" values(' ', :pBJDID,NULL,:pWHR,:pWHRID,:pWHSJ)");
|
|
SQL3.ParamByName("pBJDID").Value = sBJDID;
|
|
SQL3.ParamByName("pWHR").Value = tSession.UserName;
|
|
SQL3.ParamByName("pWHRID").Value = tSession.UserId;
|
|
SQL3.ParamByName("pWHSJ").Value = DateTime.Now;
|
|
dberp3.ExecSQL(SQL3);
|
|
|
|
for (int i = 0; i < dsMX.Tables[0].Rows.Count; i++)
|
|
{
|
|
if (dsMX.Tables[0].Rows[i]["WLID"].ToString().Trim().Equals(""))
|
|
continue;
|
|
SQL3.Clear();
|
|
SQL3.Add("insert into TBBJFKMX(TBBJFKMX_TBSID, TBBJFKMX_BJDH, TBBJFKMX_XH, TBBJFKMX_BJDXH, TBBJFKMX_ZB,TBBJFKMX_ZBSL, TBBJFKMX_ZBJE,TBBJFKMX_ZBDJ) ");//TBBJFKMX_BJDH--TBBJFKMX_BJDID
|
|
SQL3.Add("values ( ' ',:pBJDID,:pXH,:BJDMX_BJDXH,:XLXSBJDMX_ZB,:XLXSBJDMX_ZBSL,:XLXSBJDMX_ZBJE,:TBBJFKMX_ZBDJ ) ");
|
|
SQL3.ParamByName("pBJDID").Value = sBJDID;
|
|
|
|
if (XLBJDUtils.GetXLXSBJPZXX(100860046).XLXSBJPZ_ZCCF.Trim().Equals("Y"))
|
|
{
|
|
SQL3.ParamByName("pXH").Value = dsMX.Tables[0].Rows[i]["XLXSBJFKCFMX_CFXH"].ToString().Trim();
|
|
SQL3.ParamByName("BJDMX_BJDXH").Value = dsMX.Tables[0].Rows[i]["XLXSBJFKCFMX_CFXH"].ToString().Trim();
|
|
}
|
|
else
|
|
{
|
|
SQL3.ParamByName("pXH").Value = dsMX.Tables[0].Rows[i]["XLXSBJDMX_XH"].ToString().Trim();
|
|
SQL3.ParamByName("BJDMX_BJDXH").Value = dsMX.Tables[0].Rows[i]["XLXSBJDMX_XH"].ToString().Trim();
|
|
}
|
|
SQL3.ParamByName("XLXSBJDMX_ZB").Value = dsMX.Tables[0].Rows[i]["XLXSBJDMX_ZB"].ToString().Trim();
|
|
SQL3.ParamByName("XLXSBJDMX_ZBSL").Value = dsMX.Tables[0].Rows[i]["XLXSBJDMX_ZBSL"].ToString().Trim();
|
|
SQL3.ParamByName("XLXSBJDMX_ZBJE").Value = dsMX.Tables[0].Rows[i]["XLXSBJDMX_ZBJE"].ToString().Trim();
|
|
SQL3.ParamByName("TBBJFKMX_ZBDJ").Value = dsMX.Tables[0].Rows[i]["XLXSBJDMX_CPBJ"].ToString().Trim();
|
|
dberp3.ExecSQL(SQL3);
|
|
}
|
|
|
|
#endregion
|
|
}
|
|
dberp3.CommitTrans();
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
ShowMessage("反馈操作出错,错误原因:" + ex);
|
|
dberp3.RollbackTrans();
|
|
}
|
|
|
|
#endregion
|
|
}
|
|
|
|
if (!sNextWPName.Equals(""))
|
|
ShowMessage(string.Format("报价单【{0}】反馈完成,并已自动提交至【{1}】!", sBJDID, sNextWPName));
|
|
else
|
|
ShowMessage(string.Format("报价单【{0}】反馈完成!", sBJDID));
|
|
|
|
string sJSRList = "";
|
|
SQL.Clear();
|
|
SQL.Add("SELECT DISTINCT MSGTAKEIN_USRID FROM MSGTAKEIN WHERE MSGTAKEIN_MSGCLASS = 'BJFK_WCTX' ");
|
|
DataSet dsJSR = dberp.OpenDataSet(SQL);
|
|
for (int i = 0; i < dsJSR.Tables[0].Rows.Count; i++)
|
|
{
|
|
sJSRList = sJSRList + dsJSR.Tables[0].Rows[i]["MSGTAKEIN_USRID"].ToString().Trim() + ",";
|
|
}
|
|
TMsg msg3 = new TMsg();
|
|
msg3.MsgClass = "BJFK_WCTX";
|
|
msg3.UMID = "100860046";
|
|
msg3.MsgUmid = 100384008;
|
|
msg3.MsgNumid = 100860046;
|
|
msg3.MsgContent = string.Format("报价单【{0}】反馈完成,请下单!", sBJDID);
|
|
msg3.MsgYWID = "[XLXSBJD_BJDID=" + sBJDID.Trim() + "]";
|
|
msg3.ReceiveUsers = sJSRList;
|
|
msg3.SendMsg(tSession, tSession.UserName);
|
|
|
|
if (PageParam.GetRTrimString("FromXLXSBJD").Equals("Y"))
|
|
{
|
|
//100860000|线缆销售报价单”、“100860061|销售员报价申请”模块调用,进行连续关闭,回到报价单主界面
|
|
DialogOperationScript dos = new DialogOperationScript(this);
|
|
dos.SetCallbackArgument("WindowClose");
|
|
dos.CloseOwner();
|
|
dos.CloseSelf();
|
|
dos.Execute();
|
|
}
|
|
else
|
|
{
|
|
//使用脚本给父页面的隐藏控件赋值,调用父页面的控件事件
|
|
DialogOperationScript dos = new DialogOperationScript(this);
|
|
//dos.ClickOwnerButton(PageParam.GetRTrimString("RefreshCtrlID"));
|
|
dos.CloseSelf();
|
|
dos.Execute();
|
|
}
|
|
}
|
|
|
|
//计量单位,换算系数
|
|
public static void GetJLDWList(Dictionary<string, double> sStr, string sWLID, string sWLJLDW)
|
|
{
|
|
if (!sWLJLDW.Trim().Equals(""))
|
|
{
|
|
sStr.Add(sWLJLDW.Trim(), 1);//标准计量单位,换算系数=1
|
|
DoFindJLDW(sStr, sWLID, sWLJLDW, 1);
|
|
}
|
|
}
|
|
|
|
public static void DoFindJLDW(Dictionary<string, double> sStr, string sWLID, string sJLDW, double fHSXS)
|
|
{
|
|
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
|
|
TSQL SQL = new TSQL(dberp);
|
|
SQL.Clear();
|
|
SQL.Add("select JLDWTD_TDJLDW as JLDW,JLDWTD_HSXS as HSXS,JLDWTD_WLID from JLDWTD");
|
|
SQL.Add(" where JLDWTD_JLDW=:pJLDW");
|
|
SQL.Add(" and (JLDWTD_WLID=:pWLID or isnull(JLDWTD_WLID,' ')=' ')");
|
|
SQL.Add(" union all");
|
|
SQL.Add(" select JLDWTD_JLDW as JLDW,");
|
|
SQL.Add(" case when JLDWTD_HSXS > 0 then 1/JLDWTD_HSXS else 0 end as HSXS,");
|
|
SQL.Add(" JLDWTD_WLID from JLDWTD");
|
|
SQL.Add(" where JLDWTD_TDJLDW=:pJLDW");
|
|
SQL.Add(" and (JLDWTD_WLID=:pWLID or isnull(JLDWTD_WLID,' ')=' ')");
|
|
SQL.Add(" order by JLDW, JLDWTD_WLID desc");
|
|
SQL.ParamByName("pJLDW").Value = sJLDW;
|
|
SQL.ParamByName("pWLID").Value = sWLID;
|
|
DataSet ds = dberp.OpenDataSet(SQL);
|
|
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
|
|
{
|
|
//若获取的计量单位在sStr中不存在,则继续进行递归操作,否则结束,避免死循环
|
|
if (!sStr.ContainsKey(ds.Tables[0].Rows[i]["JLDW"].ToString().Trim()))
|
|
{
|
|
sStr.Add(ds.Tables[0].Rows[i]["JLDW"].ToString().Trim(), CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["HSXS"].ToString()) * fHSXS);
|
|
DoFindJLDW(sStr, sWLID, ds.Tables[0].Rows[i]["JLDW"].ToString().Trim(), CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["HSXS"].ToString()) * fHSXS);
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
protected void btnQX_Click(object sender, EventArgs e)
|
|
{
|
|
CloseWindow();
|
|
}
|
|
|
|
protected void txtKHID_TextChanged(object sender, EventArgs e)
|
|
{
|
|
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
|
|
TSQL SQL = new TSQL(dberp);
|
|
SQL.Clear();
|
|
SQL.Add("select KH_MC,KH_LXR,KH_TXY");
|
|
SQL.Add(" from KH");
|
|
SQL.Add(" where KH_KHID=:pKHID");
|
|
SQL.ParamByName("pKHID").Value = txtKHID.Text.Trim();
|
|
DataSet ds = dberp.OpenDataSet(SQL);
|
|
if (ds.Tables[0].Rows.Count > 0)
|
|
{
|
|
txtKHMC.Text = ds.Tables[0].Rows[0]["KH_MC"].ToString().Trim();
|
|
if (txtLXR.Text.Trim().Equals(""))
|
|
txtLXR.Text = ds.Tables[0].Rows[0]["KH_LXR"].ToString().Trim();
|
|
if (txtTXY.Text.Trim().Equals(""))
|
|
txtTXY.Text = ds.Tables[0].Rows[0]["KH_TXY"].ToString().Trim();
|
|
}
|
|
else
|
|
txtKHMC.Text = "";
|
|
}
|
|
|
|
protected void txtLXR_TextChanged(object sender, EventArgs e)
|
|
{
|
|
if (!txtLXR.Text.Trim().Equals(""))
|
|
{
|
|
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
|
|
TSQL SQL = new TSQL(dberp);
|
|
SQL.Clear();
|
|
SQL.Add("select KH_TEL,KH_FAX");
|
|
SQL.Add(" from KH");
|
|
SQL.Add(" where KH_LXR=:pLXR");
|
|
if (!txtKHID.Text.Trim().Equals(""))
|
|
{
|
|
SQL.Add(" and KH_KHID=:pKHID");
|
|
SQL.ParamByName("pKHID").Value = txtKHID.Text.Trim();
|
|
}
|
|
SQL.Add(" order by KH_KHID");
|
|
SQL.ParamByName("pLXR").Value = txtLXR.Text.Trim();
|
|
DataSet ds = dberp.OpenDataSet(SQL);
|
|
if (ds.Tables[0].Rows.Count > 0)
|
|
{
|
|
if (txtLXRDH.Text.Trim().Equals(""))
|
|
txtLXRDH.Text = ds.Tables[0].Rows[0]["KH_TEL"].ToString().Trim();
|
|
if (txtLXRCZ.Text.Trim().Equals(""))
|
|
txtLXRCZ.Text = ds.Tables[0].Rows[0]["KH_FAX"].ToString().Trim();
|
|
}
|
|
}
|
|
}
|
|
|
|
protected void txtGCXM_TextChanged(object sender, EventArgs e)
|
|
{
|
|
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
|
|
TSQL SQL = new TSQL(dberp);
|
|
SQL.Clear();
|
|
SQL.Add("select GCXM_XMJC,GCXM_XMMC ");
|
|
SQL.Add(" from GCXM");
|
|
SQL.Add(" where GCXM_XMID=:pXMID");
|
|
SQL.ParamByName("pXMID").Value = txtGCXM.Text.Trim();
|
|
DataSet ds = dberp.OpenDataSet(SQL);
|
|
if (ds.Tables[0].Rows.Count > 0)
|
|
{
|
|
txtXMJC.Value = ds.Tables[0].Rows[0]["GCXM_XMJC"].ToString().Trim();
|
|
txtXMMC.Text = ds.Tables[0].Rows[0]["GCXM_XMMC"].ToString().Trim();
|
|
txtXMMC.ReadOnly = true;
|
|
}
|
|
else
|
|
{
|
|
txtXMMC.ReadOnly = false;
|
|
txtXMMC.Text = "";
|
|
txtXMJC.Value = "";
|
|
|
|
}
|
|
}
|
|
|
|
protected void txtTXY_TextChanged(object sender, EventArgs e)
|
|
{
|
|
if (!txtTXY.Text.Trim().Equals(""))
|
|
{
|
|
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
|
|
TSQL SQL = new TSQL(dberp);
|
|
SQL.Clear();
|
|
SQL.Add("select XSY_BMID,XSY_SJ");
|
|
SQL.Add(" from XSY");
|
|
SQL.Add(" where XSY_TXY=:pTXY");
|
|
SQL.ParamByName("pTXY").Value = txtTXY.Text.Trim();
|
|
DataSet ds = dberp.OpenDataSet(SQL);
|
|
if (ds.Tables[0].Rows.Count > 0)
|
|
{
|
|
cbxXSBMID.SelectedValue = ds.Tables[0].Rows[0]["XSY_BMID"].ToString().Trim();
|
|
txtTXYDH.Text = ds.Tables[0].Rows[0]["XSY_SJ"].ToString().Trim();
|
|
}
|
|
}
|
|
}
|
|
|
|
protected void linkKHID_Click(object sender, EventArgs e)
|
|
{
|
|
|
|
|
|
//if (!CPWLCLLYHZList.SayYes("将按当前客户名称发起新客户申请,是否继续?", txtInfo, linkKHID.ClientID, this))
|
|
// return;
|
|
TPageParams tpp = new TPageParams();
|
|
tpp.UrlPath = "CXBJD_XKHSQInfo.aspx";
|
|
tpp.AddString("KHMC", txtKHMC.Text.Trim());
|
|
OpenDialog(tpp);
|
|
|
|
|
|
}
|
|
|
|
//获取本位币
|
|
|
|
#endregion
|
|
}
|
|
}
|