You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
2485 lines
136 KiB
2485 lines
136 KiB
using Newtonsoft.Json;
|
|
using NFine.Domain._03_Entity.SRM;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Configuration;
|
|
using System.Data.SqlClient;
|
|
using System.Data;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using NFine.Repository;
|
|
using NFine.Data.Extensions;
|
|
using NFine.Code;
|
|
using System.Data.Common;
|
|
using System.Net;
|
|
using Newtonsoft.Json.Linq;
|
|
|
|
namespace NFine.Application.SRM
|
|
{
|
|
public class PriceInquiryApp : RepositoryFactory<ICSPO_PoMain>
|
|
{
|
|
public static DataTable Invmes = new DataTable();
|
|
public DataTable GetInvTabByPN(string rfqno)
|
|
{
|
|
string sql = @"select companycode as 公司代码,
|
|
COSTANALYSISTEMPLATE as 成本分析模板 ,
|
|
CREATEDATE as 创建日期,
|
|
CreateTime as 创建时间,
|
|
CREATEUSER as 创建用户,
|
|
HASCOSTDETAILS as 成本明细,
|
|
ISINCLUDETAX as 是否含税,
|
|
ITEMCLASSID as 物料分类代码,
|
|
a.itemcode as 物料代码,
|
|
a.itemname as 物料名称,
|
|
CASE a.ITEMTYPE WHEN 'Real' then '正式物料' else '临时物料' end as 物料类型,
|
|
a.invstd as 物料规格,
|
|
logdate as 更新日期,
|
|
logtime as 更新时间,
|
|
LOGUSER as 更新用户,
|
|
memo as 备注,
|
|
PRINCINGITEMCODE as 定价物料编码,
|
|
REFERPRICE as 参考价格,
|
|
CURRENCY as 币种,
|
|
REQUESTQUANTITY as 预计需求量,
|
|
RFQCODE as 询价单编码,
|
|
RFQITEMREFERCODE as 文件路径,
|
|
startdate as 有效期开始,
|
|
Requirements as 技术要求,
|
|
RFQITEMREFERCODE as HiddenFile,
|
|
unit as 单位,
|
|
a.ID,
|
|
b.workpoint,
|
|
a.InvDesc AS 物料描述,
|
|
a.ManuFacturer AS 制造商,
|
|
a.ManuFacturerInvCode AS 制造商编码,
|
|
a.YearQty AS 年用量,
|
|
a.ProjectInfo AS 项目信息,
|
|
a.MaterialGrade AS 物料等级,
|
|
a.CustomerSpecified AS 是否为客户指定,
|
|
a.TechnicalDirector AS 技术负责人,
|
|
a.Purchasing AS 采购负责人,
|
|
a.Status AS 状态,
|
|
a.Purchasing
|
|
from icsSORRFQ2NORMALITEM a
|
|
left join ICSINVENTORY b on b.invcode=a.itemcode and b.workpoint=a.workpoint
|
|
where RFQCODE='" + rfqno + @"' ";
|
|
DataTable table = Repository().FindDataSetBySql(sql).Tables[0];
|
|
DataTable dtCloned = table.Clone();
|
|
foreach (DataColumn col in dtCloned.Columns)
|
|
{
|
|
col.DataType = typeof(string);
|
|
}
|
|
foreach (DataRow row in table.Rows)
|
|
{
|
|
DataRow newrow = dtCloned.NewRow();
|
|
foreach (DataColumn column in dtCloned.Columns)
|
|
{
|
|
newrow[column.ColumnName] = row[column.ColumnName].ToString();
|
|
|
|
}
|
|
dtCloned.Rows.Add(newrow);
|
|
}
|
|
if (Invmes.Rows.Count > 0)
|
|
{
|
|
dtCloned.Merge(Invmes, false);
|
|
}
|
|
return dtCloned;
|
|
}
|
|
|
|
|
|
|
|
public DataTable GetGridJsonByPN(string queryJson, ref Pagination jqgridparam)
|
|
{
|
|
DataTable dt = new DataTable();
|
|
var queryParam = queryJson.ToJObject();
|
|
List<DbParameter> parameter = new List<DbParameter>();
|
|
string sql = @" select distinct a.RFQCODE,a.RFQNAME,a.PURCHUGCODE,a.[STATUS] ,a.CREATEUSER,a.CREATEDATE,c.PURCHUGNAME,f.VenName cVenName,
|
|
case when isnull(g.QUOTATIONCODE,'')='' then '暂未报价' else g.QUOTATIONCODE end QUOTATIONCODE,g.LOGTIME,a.WorkPoint,case when isnull(g.QUOTATIONCODE,'')='' then 'WBJ' WHEN isnull(g.QUOTATIONCODE,'')<>'' AND isnull(h.QUOSTATUS,'')='' THEN 'YBJ' else h.QUOSTATUS end QUOSTATUS
|
|
from dbo.ICSSORRFQ a
|
|
left join ICSSORRFQ2NORMALITEM b on a.RFQCODE=b.RFQCODE and a.WorkPoint=b.WorkPoint
|
|
left join dbo.ICSPURCHUG c on a.PURCHUGCODE=c.PURCHUGCODE
|
|
left join ICSSORRFQ2VENDOR d on a.RFQCODE=d.RFQCODE and a.workpoint=d.WorkPoint
|
|
LEFT JOIN dbo.ICSVendor f ON d.VENDORCODE=f.VenCode and a.workpoint=f.WorkPoint
|
|
left join dbo.ICSSORRFQ2NORMALITEM e on a.RFQCODE=e.RFQCODE and b.ITEMCODE=e.ITEMCODE and a.workpoint=e.WorkPoint
|
|
left join ICSSORQUOTATION g on a.RFQCODE=g.RFQCODE and a.workpoint=g.WorkPoint AND d.VENDORCODE=g.VENDORCODE
|
|
left join ICSSORQUODETAILNORMAL h on g.QUOTATIONCODE=h.QUOTATIONCODE and g.WorkPoint=h.WorkPoint
|
|
--where a.STATUS='Publish'
|
|
where (ISNULL(a.STATUS,'')<>'New'OR ISNULL(a.STATUS,'')<>'Close')
|
|
";
|
|
if (!string.IsNullOrWhiteSpace(queryJson))
|
|
{
|
|
|
|
if (!string.IsNullOrWhiteSpace(queryParam["QUOTATIONCODE"].ToString()))
|
|
{
|
|
sql += " and QUOTATIONCODE like '%" + queryParam["QUOTATIONCODE"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["RFQCODE"].ToString()))
|
|
{
|
|
sql += " and a.RFQCODE like '%" + queryParam["RFQCODE"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["RFQName"].ToString()))
|
|
{
|
|
sql += " and a.RFQNAME like '%" + queryParam["RFQName"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["ItemCode"].ToString()))
|
|
{
|
|
sql += " and e.ITEMCODE like '%" + queryParam["ItemCode"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["ItemName"].ToString()))
|
|
{
|
|
sql += " and e.ITEMNAME like '%" + queryParam["ItemName"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["BeginDate"].ToString()))
|
|
{
|
|
sql += " and a.CREATEDATE >='" + queryParam["BeginDate"].ToString() + "' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["EndDate"].ToString()))
|
|
{
|
|
sql += " and a.CREATEDATE <='" + queryParam["EndDate"].ToString() + "'";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["StatusNew"].ToString()))
|
|
{
|
|
sql += " and a.[STATUS] = '" + queryParam["StatusNew"].ToString() + "' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["StatusPublish"].ToString()))
|
|
{
|
|
sql += " and a.[STATUS] = '" + queryParam["StatusPublish"].ToString() + "' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["StatusClose"].ToString()))
|
|
{
|
|
sql += " and a.[STATUS] = '" + queryParam["StatusClose"].ToString() + "' ";
|
|
}
|
|
//佑伦增加
|
|
if (!string.IsNullOrWhiteSpace(queryParam["ReleaseState"].ToString()))
|
|
{
|
|
if (queryParam["ReleaseState"].ToString() == "0")
|
|
{
|
|
sql += " and isnull(g.QUOTATIONCODE, '') = ''";
|
|
}
|
|
else if (queryParam["ReleaseState"].ToString() == "2")
|
|
{
|
|
sql += " and isnull(g.QUOTATIONCODE, '') <> ''";
|
|
}
|
|
|
|
}
|
|
}
|
|
if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
|
|
{
|
|
sql += " and a.WorkPoint in (" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',') + ")";
|
|
}
|
|
if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode.Contains("Vendor") || NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "TempVendor")
|
|
{
|
|
sql += " and d.VENDORCODE like '%" + NFine.Code.OperatorProvider.Provider.GetCurrent().VenCode + "%'";
|
|
}
|
|
return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 根据当前登录的采购获取物料行
|
|
/// </summary>
|
|
/// <param name="rfqno"></param>
|
|
/// <returns></returns>
|
|
public DataTable GetInvTabByPNForVendor(string rfqno)
|
|
{
|
|
string sql = @"select companycode as 公司代码,
|
|
COSTANALYSISTEMPLATE as 成本分析模板 ,
|
|
CREATEDATE as 创建日期,
|
|
CreateTime as 创建时间,
|
|
CREATEUSER as 创建用户,
|
|
HASCOSTDETAILS as 成本明细,
|
|
ISINCLUDETAX as 是否含税,
|
|
ITEMCLASSID as 物料分类代码,
|
|
a.itemcode as 物料代码,
|
|
a.itemname as 物料名称,
|
|
CASE a.ITEMTYPE WHEN 'Real' then '正式物料' else '临时物料' end as 物料类型,
|
|
a.invstd as 物料规格,
|
|
logdate as 更新日期,
|
|
logtime as 更新时间,
|
|
LOGUSER as 更新用户,
|
|
memo as 备注,
|
|
PRINCINGITEMCODE as 定价物料编码,
|
|
REFERPRICE as 参考价格,
|
|
CURRENCY as 币种,
|
|
REQUESTQUANTITY as 预计需求量,
|
|
RFQCODE as 询价单编码,
|
|
RFQITEMREFERCODE as 文件路径,
|
|
startdate as 有效期开始,
|
|
Requirements as 技术要求,
|
|
RFQITEMREFERCODE as HiddenFile,
|
|
unit as 单位,
|
|
a.ID,
|
|
b.workpoint,
|
|
a.InvDesc AS 物料描述,
|
|
a.ManuFacturer AS 制造商,
|
|
a.ManuFacturerInvCode AS 制造商编码,
|
|
a.YearQty AS 年用量,
|
|
a.ProjectInfo AS 项目信息,
|
|
a.MaterialGrade AS 物料等级,
|
|
a.CustomerSpecified AS 是否为客户指定,
|
|
a.TechnicalDirector AS 技术负责人,
|
|
a.Purchasing AS 采购负责人,
|
|
a.Status AS 状态,
|
|
a.Purchasing,
|
|
a.Vendorsing
|
|
from icsSORRFQ2NORMALITEM a
|
|
left join ICSINVENTORY b on b.invcode=a.itemcode and b.workpoint=a.workpoint
|
|
where RFQCODE='" + rfqno + @"' ";
|
|
if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode.Contains("Business"))
|
|
{
|
|
sql += " AND a.Purchasing LIKE '%"+ NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "%'";
|
|
}
|
|
DataTable table = Repository().FindDataSetBySql(sql).Tables[0];
|
|
return table;
|
|
}
|
|
|
|
#region 新增询价单
|
|
/// <summary>
|
|
/// 新增询价单
|
|
/// </summary>
|
|
/// <param name="details"></param>
|
|
public void AddRFQByPN(ICSSORRFQ details)
|
|
{
|
|
string sql = string.Empty;
|
|
try
|
|
{
|
|
List<ICSSORRFQ2NORMALITEM> list_BD = JsonConvert.DeserializeObject<List<ICSSORRFQ2NORMALITEM>>(details.arrayBidDocBD);
|
|
//List<ICSSORRFQ2VENDOR> list_GYS = JsonConvert.DeserializeObject<List<ICSSORRFQ2VENDOR>>(details.arrayBidDocGYS);
|
|
|
|
string connString = ConfigurationManager.ConnectionStrings["connstr"].ConnectionString;
|
|
SqlConnection conn = new System.Data.SqlClient.SqlConnection(connString);
|
|
conn.Open();
|
|
SqlTransaction sqlTran = conn.BeginTransaction();
|
|
SqlCommand cmd = new SqlCommand();
|
|
cmd.Transaction = sqlTran;
|
|
cmd.Connection = conn;
|
|
try
|
|
{
|
|
string Muser = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
|
|
string MuserName = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
|
|
//string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
|
|
if (details.RFQstatus == "2")
|
|
{
|
|
sql = "select * from ICSSORRFQ where RFQCODE='" + details.RFQCODE + "' and WorkPoint='" + details.WorkPoint + "'";
|
|
DataTable dt = SqlCommandHelper.SQlReturnData(sql, cmd);
|
|
if (dt != null && dt.Rows.Count > 0)
|
|
{
|
|
throw new Exception("询价单已存在!");
|
|
}
|
|
}
|
|
sql = @"IF NOT EXISTS(SELECT * FROM dbo.ICSSORRFQ WHERE RFQCODE=@RFQCODE and WorkPoint=@workpoint)
|
|
BEGIN
|
|
INSERT INTO dbo.ICSSORRFQ(
|
|
begindate,COSTANALYSISTEMPLATE,costtype,createdate,createtime,
|
|
createuser,ISUNIFYANALYSISTEMPLATE,logdate,logtime,loguser,
|
|
poct,rfqname,status,
|
|
workpoint,companycode,rfqcode,memo,HASCOSTDETAILS,FileName
|
|
)
|
|
VALUES (@begindate,@COSTANALYSISTEMPLATE,@costtype,getdate(),getdate() ,
|
|
@createuser,@ISUNIFYANALYSISTEMPLATE,getdate(),getdate(),@loguser,
|
|
@poct,@rfqname,@status,
|
|
@workpoint,@companycode,@rfqcode,@memo,@HASCOSTDETAILS,@FileName)
|
|
END
|
|
ELSE
|
|
BEGIN
|
|
UPDATE dbo.ICSSORRFQ SET
|
|
begindate=@begindate ,
|
|
COSTANALYSISTEMPLATE=@COSTANALYSISTEMPLATE ,
|
|
costtype=@costtype,
|
|
ISUNIFYANALYSISTEMPLATE=@ISUNIFYANALYSISTEMPLATE ,
|
|
logdate=getdate() ,
|
|
logtime=getdate() ,
|
|
loguser=@loguser,
|
|
rfqname=@rfqname ,
|
|
memo=@memo,
|
|
HASCOSTDETAILS=@HASCOSTDETAILS,
|
|
FileName=@FileName
|
|
WHERE RFQCODE=@RFQCODE AND WorkPoint=@workpoint
|
|
|
|
END";
|
|
SqlParameter[] sp_Detail = {
|
|
new SqlParameter("@begindate",details.BEGINDATE),
|
|
new SqlParameter("@COSTANALYSISTEMPLATE",details.COSTANALYSISTEMPLATE),
|
|
new SqlParameter("@costtype",details.COSTTYPE),
|
|
new SqlParameter("@createuser",MuserName),
|
|
new SqlParameter("@ISUNIFYANALYSISTEMPLATE",details.ISUNIFYANALYSISTEMPLATE),
|
|
new SqlParameter("@loguser",MuserName),
|
|
//new SqlParameter("@ZTBCount",details.ZTBCount),
|
|
new SqlParameter("@poct",details.POCT),
|
|
//new SqlParameter("@purchugcode",details.PURCHUGCODE),
|
|
new SqlParameter("@rfqname",details.RFQNAME),
|
|
new SqlParameter("@status","New"),
|
|
//new SqlParameter("@PURTeam",details.PURTeam),
|
|
new SqlParameter("@workpoint",details.WorkPoint),
|
|
new SqlParameter("@companycode",details.WorkPoint),
|
|
new SqlParameter("@rfqcode",details.RFQCODE),
|
|
new SqlParameter("@memo",details.MEMO),
|
|
new SqlParameter("@HASCOSTDETAILS",details.HASCOSTDETAILS),
|
|
new SqlParameter("@FileName",details.FileName),
|
|
//new SqlParameter("@ENDDATE",details.ENDDATE)
|
|
};
|
|
SqlCommandHelper.CmdExecuteNonQuery(sql, sp_Detail, cmd);
|
|
|
|
#region 标的
|
|
foreach (ICSSORRFQ2NORMALITEM BD in list_BD)
|
|
{
|
|
sql = @"IF NOT EXISTS(SELECT * FROM dbo.ICSSORRFQ2NORMALITEM WHERE ID='" + BD.ID + @"' and WorkPoint='" + BD.WorkPoint + @"')
|
|
BEGIN
|
|
INSERT INTO dbo.ICSSORRFQ2NORMALITEM(
|
|
COMPANYCODE,COSTANALYSISTEMPLATE,CREATEDATE,CREATETIME,CREATEUSER,
|
|
HASCOSTDETAILS,ISINCLUDETAX,ITEMCLASSID,ITEMCODE,ITEMNAME,
|
|
ITEMTYPE,LOGDATE,LOGTIME,LOGUSER,MEMO,
|
|
PRINCINGITEMCODE,REFERPRICE,CURRENCY,REQUESTQUANTITY,RFQCODE,
|
|
RFQITEMREFERCODE,UNIT,ID,workpoint,
|
|
Requirements,InvStd,InvDesc,ManuFacturer,ManuFacturerInvCode,YearQty,ProjectInfo
|
|
,MaterialGrade,CustomerSpecified,TechnicalDirector)
|
|
VALUES (
|
|
'" + details.WorkPoint + @"','" + BD.COSTANALYSISTEMPLATE + @"',getdate(),getdate(),'" + MuserName + @"',
|
|
'" + BD.HASCOSTDETAILS + @"','" + BD.ISINCLUDETAX + @"','" + BD.ITEMCLASSID + @"','" + BD.ITEMCODE + @"','" + BD.ITEMNAME + @"',
|
|
'" + BD.ITEMTYPE + @"',getdate(),getdate(),'" + MuserName + @"','" + BD.MEMO + @"',
|
|
'" + BD.PRINCINGITEMCODE + @"', " + Convert.ToDecimal(BD.REFERPRICE) + @",'" + BD.CURRENCY + @"'," + Convert.ToDecimal(BD.REQUESTQUANTITY) + @",'" + details.RFQCODE + @"','" + BD.RFQITEMREFERCODE + @"','" + BD.UNIT + @"',NewID(),'" + details.WorkPoint + @"','" + BD.Requirements + @"','" + BD.InvStd + @"','" + BD.InvDesc + @"','" + BD.ManuFacturer + @"', '" + BD.ManuFacturerInvCode + @"', '" + BD.YearQty + @"', '" + BD.ProjectInfo + @"', '" + BD.MaterialGrade + @"', '" + BD.CustomerSpecified + @"','" + BD.TechnicalDirector + @"'
|
|
)
|
|
END
|
|
ELSE
|
|
BEGIN
|
|
UPDATE dbo.ICSSORRFQ2NORMALITEM SET
|
|
MEMO='" + BD.MEMO + @"' ,
|
|
Requirements='" + BD.Requirements + @"' ,
|
|
REQUESTQUANTITY=" + Convert.ToDecimal(BD.REQUESTQUANTITY) + @",
|
|
HASCOSTDETAILS='" + BD.HASCOSTDETAILS + @"' ,
|
|
RFQITEMREFERCODE='" + BD.RFQITEMREFERCODE + @"' ,
|
|
LOGDATE=getdate() ,
|
|
LOGTIME=getdate(),
|
|
LOGUSER='" + MuserName + @"',
|
|
Status=NULL
|
|
WHERE ID='" + BD.ID + @"' AND WorkPoint='" + BD.WorkPoint + @"'
|
|
END
|
|
";
|
|
|
|
SqlCommandHelper.CmdExecuteNonQuery(sql, cmd);
|
|
}
|
|
|
|
#endregion
|
|
#region 临时物料
|
|
|
|
foreach (ICSSORRFQ2NORMALITEM BD in list_BD)
|
|
{
|
|
if (BD.Source == "手工")
|
|
{
|
|
sql = @"INSERT INTO dbo.ICSINVENTORY
|
|
(
|
|
ID
|
|
,INVCODE
|
|
,INVNAME
|
|
,INVUOM
|
|
,INVSTD
|
|
,INVTYPE
|
|
,INVCLASS
|
|
,INVEXPORTIMPORT
|
|
,MUSER
|
|
,MUSERName
|
|
,MTIME
|
|
,WorkPoint
|
|
)
|
|
VALUES (
|
|
@ID
|
|
,@INVCODE
|
|
,@INVNAME
|
|
,@INVUOM
|
|
,@INVSTD
|
|
,@INVTYPE
|
|
,@INVCLASS
|
|
,@INVEXPORTIMPORT
|
|
,@MUSER
|
|
,@MUSERName
|
|
,Getdate()
|
|
,@WorkPoint
|
|
)
|
|
";
|
|
SqlParameter[] sp_INv = {
|
|
new SqlParameter("@ID",BD.ID),
|
|
new SqlParameter("@INVCODE",BD.ITEMCODE),
|
|
new SqlParameter("@INVNAME",BD.ITEMNAME),
|
|
new SqlParameter("@INVUOM",BD.UNIT),
|
|
new SqlParameter("@INVSTD",BD.InvStd),
|
|
new SqlParameter("@INVTYPE","生产类型"),
|
|
new SqlParameter("@INVCLASS","生产类型"),
|
|
new SqlParameter("@INVEXPORTIMPORT","生产类型"),
|
|
new SqlParameter("@WorkPoint",details.WorkPoint),
|
|
new SqlParameter("@MUSER",Muser),
|
|
new SqlParameter("@MUSERName",MuserName),
|
|
//new SqlParameter("@WorkPoint",BD.cCode)
|
|
};
|
|
SqlCommandHelper.CmdExecuteNonQuery(sql, sp_INv, cmd);
|
|
}
|
|
}
|
|
#endregion
|
|
//#region 供应商
|
|
//foreach (ICSSORRFQ2VENDOR GYS in list_GYS)
|
|
//{
|
|
// sql = @"IF NOT EXISTS(SELECT * FROM dbo.ICSSORRFQ2VENDOR WHERE ID='" + GYS.ID + @"' and WorkPoint='" + GYS.WorkPoint + @"')
|
|
// BEGIN
|
|
// INSERT INTO dbo.ICSSORRFQ2VENDOR
|
|
// (COMPANYCODE,CREATEDATE,CREATETIME,CREATEUSER,CURRENCY,
|
|
// ISCLOSED,ISSHOWPRICE,LOCATIONCODE,LOGDATE,LOGTIME,
|
|
// LOGUSER,PAYMENTCONDITION,PRINCINGVENDORCODE,RFQCODE,TAXRATE
|
|
// ,VENDORCODE,VENDORTYPE,ADDITION1,ID,workpoint,addition2)
|
|
// VALUES
|
|
// ('" + details.WorkPoint + @"',getdate(),getdate(),'" + MuserName + @"','" + GYS.CURRENCY + @"',
|
|
// '" + GYS.ISCLOSED + @"','" + GYS.ISSHOWPRICE + @"','" + GYS.LOCATIONCODE + @"',getdate(),getdate(),
|
|
// '" + MuserName + @"','" + GYS.PAYMENTCONDITION + @"','" + GYS.PRINCINGVENDORCODE + @"','" + details.RFQCODE + @"','" + GYS.TAXRATE + @"'
|
|
// ,'" + GYS.VENDORCODE + @"','" + GYS.VENDORTYPE + @"','" + GYS.ADDITION1 + @"','" + GYS.ID + @"','" + details.WorkPoint + @"','" + details.ADDITION2 + @"')
|
|
// END
|
|
// ELSE
|
|
// BEGIN
|
|
// UPDATE dbo.ICSSORRFQ2VENDOR SET
|
|
// PAYMENTCONDITION='" + GYS.PAYMENTCONDITION + @"' ,
|
|
// ISSHOWPRICE='" + GYS.ISSHOWPRICE + @"',
|
|
// LOGDATE=getdate() ,
|
|
// LOGTIME=getdate(),
|
|
// LOGUSER='" + MuserName + @"'
|
|
// WHERE ID='" + GYS.ID + @"' AND WorkPoint='" + GYS.WorkPoint + @"'
|
|
// END
|
|
// ";
|
|
// SqlCommandHelper.CmdExecuteNonQuery(sql, cmd);
|
|
//}
|
|
//#endregion
|
|
cmd.Transaction.Commit();
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
cmd.Transaction.Rollback();
|
|
throw new Exception(ex.Message);
|
|
}
|
|
finally
|
|
{
|
|
if (conn.State == ConnectionState.Open)
|
|
{
|
|
conn.Close();
|
|
}
|
|
conn.Dispose();
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
throw new Exception(ex.Message);
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#region 分配采购人员
|
|
/// <summary>
|
|
/// 分配采购人员
|
|
/// </summary>
|
|
/// <param name="details"></param>
|
|
//public void AddRFQByPNPurchasing(ICSSORRFQ details)
|
|
//{
|
|
// string sql = string.Empty;
|
|
// string connString = ConfigurationManager.ConnectionStrings["connstr"].ConnectionString;
|
|
// SqlConnection conn = new System.Data.SqlClient.SqlConnection(connString);
|
|
// conn.Open();
|
|
// SqlTransaction sqlTran = conn.BeginTransaction();
|
|
// SqlCommand cmd = new SqlCommand();
|
|
// cmd.Transaction = sqlTran;
|
|
// cmd.Connection = conn;
|
|
// try
|
|
// {
|
|
|
|
// List<ICSSORRFQ2NORMALITEM> list_BD = JsonConvert.DeserializeObject<List<ICSSORRFQ2NORMALITEM>>(details.arrayBidDocBD);
|
|
// //List<ICSSORRFQ2VENDOR> list_GYS = JsonConvert.DeserializeObject<List<ICSSORRFQ2VENDOR>>(details.arrayBidDocGYS);
|
|
|
|
|
|
// var groupedList = list_BD.GroupBy(item => item.Purchasing);
|
|
|
|
|
|
// string Muser = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
|
|
// string MuserName = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
|
|
// // 输出分组结果
|
|
// int FZ = 1;
|
|
// foreach (var group in groupedList)
|
|
// {
|
|
|
|
// try
|
|
// {
|
|
// sql = @"
|
|
// INSERT INTO dbo.ICSSORRFQ(
|
|
// begindate,COSTANALYSISTEMPLATE,costtype,createdate,createtime,
|
|
// createuser,ISUNIFYANALYSISTEMPLATE,logdate,logtime,loguser,
|
|
// poct,purchugcode,rfqname,status,purteam,
|
|
// workpoint,companycode,rfqcode,memo,HASCOSTDETAILS,FileName
|
|
// )
|
|
// VALUES (@begindate,@COSTANALYSISTEMPLATE,@costtype,getdate(),getdate() ,
|
|
// @createuser,@ISUNIFYANALYSISTEMPLATE,getdate(),getdate(),@loguser,
|
|
// @poct,@purchugcode,@rfqname,@status,@purteam,
|
|
// @workpoint,@companycode,@rfqcode,@memo,@HASCOSTDETAILS,@FileName)
|
|
// ";
|
|
// SqlParameter[] sp_Detail = {
|
|
// new SqlParameter("@begindate",details.BEGINDATE),
|
|
// new SqlParameter("@COSTANALYSISTEMPLATE",details.COSTANALYSISTEMPLATE),
|
|
// new SqlParameter("@costtype",details.COSTTYPE),
|
|
// new SqlParameter("@createuser",MuserName),
|
|
// new SqlParameter("@ISUNIFYANALYSISTEMPLATE",details.ISUNIFYANALYSISTEMPLATE),
|
|
// new SqlParameter("@loguser",MuserName),
|
|
// //new SqlParameter("@ZTBCount",details.ZTBCount),
|
|
// new SqlParameter("@poct",details.POCT),
|
|
// new SqlParameter("@purchugcode",details.PURCHUGCODE),
|
|
// new SqlParameter("@rfqname",details.RFQNAME),
|
|
// new SqlParameter("@status","Allocated"),
|
|
// new SqlParameter("@PURTeam",details.PURTeam),
|
|
// new SqlParameter("@workpoint",details.WorkPoint),
|
|
// new SqlParameter("@companycode",details.WorkPoint),
|
|
// new SqlParameter("@rfqcode",details.RFQCODE+"_"+FZ),
|
|
// new SqlParameter("@memo",details.MEMO),
|
|
// new SqlParameter("@HASCOSTDETAILS",details.HASCOSTDETAILS),
|
|
// new SqlParameter("@FileName",details.FileName),
|
|
// //new SqlParameter("@ENDDATE",details.ENDDATE)
|
|
// };
|
|
// SqlCommandHelper.CmdExecuteNonQuery(sql, sp_Detail, cmd);
|
|
// #region 标的
|
|
// foreach (var item in group)
|
|
// {
|
|
|
|
// sql = @"
|
|
// INSERT INTO dbo.ICSSORRFQ2NORMALITEM(
|
|
// COMPANYCODE,COSTANALYSISTEMPLATE,CREATEDATE,CREATETIME,CREATEUSER,
|
|
// HASCOSTDETAILS,ISINCLUDETAX,ITEMCLASSID,ITEMCODE,ITEMNAME,
|
|
// ITEMTYPE,LOGDATE,LOGTIME,LOGUSER,MEMO,
|
|
// PRINCINGITEMCODE,REFERPRICE,CURRENCY,REQUESTQUANTITY,RFQCODE,
|
|
// RFQITEMREFERCODE,UNIT,ID,workpoint,
|
|
// Requirements,InvStd,InvDesc,ManuFacturer,ManuFacturerInvCode,YearQty,ProjectInfo
|
|
// ,MaterialGrade,CustomerSpecified,TechnicalDirector,Purchasing,EATTRIBUTE12)
|
|
// VALUES (
|
|
// '" + details.WorkPoint + @"','" + item.COSTANALYSISTEMPLATE + @"',getdate(),getdate(),'" + MuserName + @"',
|
|
// '" + item.HASCOSTDETAILS + @"','" + item.ISINCLUDETAX + @"','" + item.ITEMCLASSID + @"','" + item.ITEMCODE + @"','" + item.ITEMNAME + @"',
|
|
// '" + item.ITEMTYPE + @"',getdate(),getdate(),'" + MuserName + @"','" + item.MEMO + @"',
|
|
// '" + item.PRINCINGITEMCODE + @"', " + Convert.ToDecimal(item.REFERPRICE) + @",'" + item.CURRENCY + @"'," + Convert.ToDecimal(item.REQUESTQUANTITY) + @",'" + details.RFQCODE + @"_"+FZ+"','" + item.RFQITEMREFERCODE + @"','" + item.UNIT + @"',NewID(),'" + details.WorkPoint + @"','" + item.Requirements + @"','" + item.InvStd + @"','" + item.InvDesc + @"','" + item.ManuFacturer + @"', '" + item.ManuFacturerInvCode + @"', '" + item.YearQty + @"', '" + item.ProjectInfo + @"', '" + item.MaterialGrade + @"', '" + item.CustomerSpecified + @"','" + item.TechnicalDirector + @"','" + item.Purchasing + @"','" + details.RFQCODE + @"'
|
|
// )";
|
|
|
|
// SqlCommandHelper.CmdExecuteNonQuery(sql, cmd);
|
|
|
|
|
|
// #endregion
|
|
// }
|
|
|
|
// //sql = @" UPDATE [ICSSORRFQ] SET STATUS='SplitOrder',EATTRIBUTE12='" + details.RFQCODE + "' WHERE RFQCODE='" + details.RFQCODE + "'";
|
|
// //SqlCommandHelper.CmdExecuteNonQuery(sql, cmd);
|
|
// }
|
|
// catch (Exception ex)
|
|
// {
|
|
// throw new Exception(ex.Message);
|
|
// }
|
|
// FZ++;
|
|
// }
|
|
|
|
// cmd.Transaction.Commit();
|
|
// }
|
|
// catch (Exception ex)
|
|
// {
|
|
// cmd.Transaction.Rollback();
|
|
// throw new Exception(ex.Message);
|
|
// }
|
|
// finally
|
|
// {
|
|
// if (conn.State == ConnectionState.Open)
|
|
// {
|
|
// conn.Close();
|
|
// }
|
|
// conn.Dispose();
|
|
// }
|
|
//}
|
|
|
|
public void AddRFQByPNPurchasing(ICSSORRFQ details)
|
|
{
|
|
string sql = string.Empty;
|
|
string connString = ConfigurationManager.ConnectionStrings["connstr"].ConnectionString;
|
|
SqlConnection conn = new System.Data.SqlClient.SqlConnection(connString);
|
|
conn.Open();
|
|
SqlTransaction sqlTran = conn.BeginTransaction();
|
|
SqlCommand cmd = new SqlCommand();
|
|
cmd.Transaction = sqlTran;
|
|
cmd.Connection = conn;
|
|
try
|
|
{
|
|
|
|
List<ICSSORRFQRequestFrom2NORMALITEM> list_BD = JsonConvert.DeserializeObject<List<ICSSORRFQRequestFrom2NORMALITEM>>(details.arrayBidDocBD);
|
|
//List<ICSSORRFQ2VENDOR> list_GYS = JsonConvert.DeserializeObject<List<ICSSORRFQ2VENDOR>>(details.arrayBidDocGYS);
|
|
|
|
|
|
var groupedList = list_BD.GroupBy(item => item.Purchasing);
|
|
|
|
|
|
string Muser = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
|
|
string MuserName = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
|
|
// 输出分组结果
|
|
foreach (var group in groupedList)
|
|
{
|
|
|
|
try
|
|
{
|
|
sql = @"UPDATE dbo.ICSSORRFQRequestFrom SET
|
|
begindate=@begindate ,
|
|
COSTANALYSISTEMPLATE=@COSTANALYSISTEMPLATE ,
|
|
costtype=@costtype,
|
|
ISUNIFYANALYSISTEMPLATE=@ISUNIFYANALYSISTEMPLATE ,
|
|
STATUS=@status,
|
|
logdate=getdate() ,
|
|
logtime=getdate() ,
|
|
loguser=@loguser,
|
|
rfqname=@rfqname ,
|
|
memo=@memo,
|
|
HASCOSTDETAILS=@HASCOSTDETAILS,
|
|
FileName=@FileName
|
|
WHERE RFQCODE=@RFQCODE AND WorkPoint=@workpoint
|
|
";
|
|
SqlParameter[] sp_Detail = {
|
|
new SqlParameter("@begindate",details.BEGINDATE),
|
|
new SqlParameter("@COSTANALYSISTEMPLATE",details.COSTANALYSISTEMPLATE),
|
|
new SqlParameter("@costtype",details.COSTTYPE),
|
|
new SqlParameter("@createuser",MuserName),
|
|
new SqlParameter("@ISUNIFYANALYSISTEMPLATE",details.ISUNIFYANALYSISTEMPLATE),
|
|
new SqlParameter("@loguser",MuserName),
|
|
//new SqlParameter("@ZTBCount",details.ZTBCount),
|
|
new SqlParameter("@poct",details.POCT),
|
|
new SqlParameter("@purchugcode",details.PURCHUGCODE),
|
|
new SqlParameter("@rfqname",details.RFQNAME),
|
|
new SqlParameter("@status","Allocated"),
|
|
new SqlParameter("@PURTeam",details.PURTeam),
|
|
new SqlParameter("@workpoint",details.WorkPoint),
|
|
new SqlParameter("@companycode",details.WorkPoint),
|
|
new SqlParameter("@rfqcode",details.RFQCODE),
|
|
new SqlParameter("@memo",details.MEMO),
|
|
new SqlParameter("@HASCOSTDETAILS",details.HASCOSTDETAILS),
|
|
new SqlParameter("@FileName",details.FileName),
|
|
//new SqlParameter("@ENDDATE",details.ENDDATE)
|
|
};
|
|
SqlCommandHelper.CmdExecuteNonQuery(sql, sp_Detail, cmd);
|
|
#region 标的
|
|
foreach (var item in group)
|
|
{
|
|
|
|
sql = @"
|
|
UPDATE dbo.ICSSORRFQRequestFrom2NORMALITEM SET
|
|
MEMO='" + item.MEMO + @"' ,
|
|
Requirements='" + item.Requirements + @"' ,
|
|
REQUESTQUANTITY=" + Convert.ToDecimal(item.REQUESTQUANTITY) + @",
|
|
HASCOSTDETAILS='" + item.HASCOSTDETAILS + @"' ,
|
|
RFQITEMREFERCODE='" + item.RFQITEMREFERCODE + @"' ,
|
|
LOGDATE=getdate() ,
|
|
LOGTIME=getdate(),
|
|
LOGUSER='" + MuserName + @"',
|
|
Status=NULL,
|
|
Purchasing='" + item.Purchasing + @"'
|
|
WHERE ID='" + item.ID + @"' AND WorkPoint='" + item.WorkPoint + @"'
|
|
";
|
|
|
|
SqlCommandHelper.CmdExecuteNonQuery(sql, cmd);
|
|
|
|
|
|
#endregion
|
|
}
|
|
|
|
//sql = @" UPDATE [ICSSORRFQ] SET STATUS='SplitOrder',EATTRIBUTE12='" + details.RFQCODE + "' WHERE RFQCODE='" + details.RFQCODE + "'";
|
|
//SqlCommandHelper.CmdExecuteNonQuery(sql, cmd);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
throw new Exception(ex.Message);
|
|
}
|
|
}
|
|
|
|
cmd.Transaction.Commit();
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
cmd.Transaction.Rollback();
|
|
throw new Exception(ex.Message);
|
|
}
|
|
finally
|
|
{
|
|
if (conn.State == ConnectionState.Open)
|
|
{
|
|
conn.Close();
|
|
}
|
|
conn.Dispose();
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#region 分配供应商
|
|
/// <summary>
|
|
/// 分配供应商
|
|
/// </summary>
|
|
/// <param name="details"></param>
|
|
public void AddRFQByPNVendorsing(ICSSORRFQ details)
|
|
{
|
|
string sql = string.Empty;
|
|
try
|
|
{
|
|
List<ICSSORRFQ2NORMALITEM> list_BD = JsonConvert.DeserializeObject<List<ICSSORRFQ2NORMALITEM>>(details.arrayBidDocBD);
|
|
List<ICSSORRFQ2VENDOR> list_GYS = JsonConvert.DeserializeObject<List<ICSSORRFQ2VENDOR>>(details.arrayBidDocGYS);
|
|
|
|
string connString = ConfigurationManager.ConnectionStrings["connstr"].ConnectionString;
|
|
SqlConnection conn = new System.Data.SqlClient.SqlConnection(connString);
|
|
conn.Open();
|
|
SqlTransaction sqlTran = conn.BeginTransaction();
|
|
SqlCommand cmd = new SqlCommand();
|
|
cmd.Transaction = sqlTran;
|
|
cmd.Connection = conn;
|
|
try
|
|
{
|
|
string Muser = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
|
|
string MuserName = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
|
|
//string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
|
|
string rfqcode = GetRFQCODEICSSORRFQRequestFrom(details.WorkPoint);
|
|
sql = @"IF NOT EXISTS(SELECT * FROM dbo.ICSSORRFQ WHERE RFQCODE=@RFQCODE and WorkPoint=@workpoint)
|
|
BEGIN
|
|
INSERT INTO dbo.ICSSORRFQ(
|
|
begindate,COSTANALYSISTEMPLATE,costtype,createdate,createtime,
|
|
createuser,ISUNIFYANALYSISTEMPLATE,logdate,logtime,loguser,
|
|
poct,purchugcode,rfqname,status,purteam,
|
|
workpoint,companycode,rfqcode,memo,HASCOSTDETAILS,FileName
|
|
)
|
|
VALUES (@begindate,@COSTANALYSISTEMPLATE,@costtype,getdate(),getdate() ,
|
|
@createuser,@ISUNIFYANALYSISTEMPLATE,getdate(),getdate(),@loguser,
|
|
@poct,@purchugcode,@rfqname,@status,@purteam,
|
|
@workpoint,@companycode,@rfqcode,@memo,@HASCOSTDETAILS,@FileName)
|
|
END
|
|
ELSE
|
|
BEGIN
|
|
UPDATE dbo.ICSSORRFQ SET
|
|
begindate=@begindate ,
|
|
COSTANALYSISTEMPLATE=@COSTANALYSISTEMPLATE ,
|
|
costtype=@costtype,
|
|
ISUNIFYANALYSISTEMPLATE=@ISUNIFYANALYSISTEMPLATE ,
|
|
logdate=getdate() ,
|
|
logtime=getdate() ,
|
|
loguser=@loguser,
|
|
purchugcode=@purchugcode ,
|
|
rfqname=@rfqname ,
|
|
purteam=@purteam,
|
|
memo=@memo,
|
|
HASCOSTDETAILS=@HASCOSTDETAILS,
|
|
FileName=@FileName
|
|
WHERE RFQCODE=@RFQCODE AND WorkPoint=@workpoint
|
|
|
|
END";
|
|
SqlParameter[] sp_Detail = {
|
|
new SqlParameter("@begindate",details.BEGINDATE),
|
|
new SqlParameter("@COSTANALYSISTEMPLATE",details.COSTANALYSISTEMPLATE),
|
|
new SqlParameter("@costtype",details.COSTTYPE),
|
|
new SqlParameter("@createuser",MuserName),
|
|
new SqlParameter("@ISUNIFYANALYSISTEMPLATE",details.ISUNIFYANALYSISTEMPLATE),
|
|
new SqlParameter("@loguser",MuserName),
|
|
//new SqlParameter("@ZTBCount",details.ZTBCount),
|
|
new SqlParameter("@poct",details.POCT),
|
|
new SqlParameter("@purchugcode",details.PURCHUGCODE),
|
|
new SqlParameter("@rfqname","询价单"+rfqcode),
|
|
new SqlParameter("@status","New"),
|
|
new SqlParameter("@PURTeam",details.PURTeam),
|
|
new SqlParameter("@workpoint",details.WorkPoint),
|
|
new SqlParameter("@companycode",details.WorkPoint),
|
|
new SqlParameter("@rfqcode",rfqcode),
|
|
new SqlParameter("@memo",details.MEMO),
|
|
new SqlParameter("@HASCOSTDETAILS",details.HASCOSTDETAILS),
|
|
new SqlParameter("@FileName",details.FileName),
|
|
//new SqlParameter("@ENDDATE",details.ENDDATE)
|
|
};
|
|
SqlCommandHelper.CmdExecuteNonQuery(sql, sp_Detail, cmd);
|
|
|
|
#region 标的
|
|
foreach (ICSSORRFQ2NORMALITEM BD in list_BD)
|
|
{
|
|
sql = @"IF NOT EXISTS(SELECT * FROM dbo.ICSSORRFQ2NORMALITEM WHERE ID='" + BD.ID + @"' and WorkPoint='" + BD.WorkPoint + @"')
|
|
BEGIN
|
|
INSERT INTO dbo.ICSSORRFQ2NORMALITEM(
|
|
COMPANYCODE,COSTANALYSISTEMPLATE,CREATEDATE,CREATETIME,CREATEUSER,
|
|
HASCOSTDETAILS,ISINCLUDETAX,ITEMCLASSID,ITEMCODE,ITEMNAME,
|
|
ITEMTYPE,LOGDATE,LOGTIME,LOGUSER,MEMO,
|
|
PRINCINGITEMCODE,REFERPRICE,CURRENCY,REQUESTQUANTITY,RFQCODE,
|
|
RFQITEMREFERCODE,UNIT,ID,workpoint,
|
|
Requirements,InvStd,InvDesc,ManuFacturer,ManuFacturerInvCode,YearQty,ProjectInfo
|
|
,MaterialGrade,CustomerSpecified,TechnicalDirector,Vendorsing,ADDITION2,EATTRIBUTE18)
|
|
VALUES (
|
|
'" + details.WorkPoint + @"','" + BD.COSTANALYSISTEMPLATE + @"',getdate(),getdate(),'" + MuserName + @"',
|
|
'" + BD.HASCOSTDETAILS + @"','" + BD.ISINCLUDETAX + @"','" + BD.ITEMCLASSID + @"','" + BD.ITEMCODE + @"','" + BD.ITEMNAME + @"',
|
|
'" + BD.ITEMTYPE + @"',getdate(),getdate(),'" + MuserName + @"','" + BD.MEMO + @"',
|
|
'" + BD.PRINCINGITEMCODE + @"', " + Convert.ToDecimal(BD.REFERPRICE) + @",'" + BD.CURRENCY + @"'," + Convert.ToDecimal(BD.REQUESTQUANTITY) + @",'" + rfqcode + @"','" + BD.RFQITEMREFERCODE + @"','" + BD.UNIT + @"',NewID(),'" + details.WorkPoint + @"','" + BD.Requirements + @"','" + BD.InvStd + @"','" + BD.InvDesc + @"','" + BD.ManuFacturer + @"', '" + BD.ManuFacturerInvCode + @"', '" + BD.YearQty + @"', '" + BD.ProjectInfo + @"', '" + BD.MaterialGrade + @"', '" + BD.CustomerSpecified + @"','" + BD.TechnicalDirector + @"','" + BD.Vendorsing.TrimEnd(',') + @"','" + BD.RFQCODE + @"','" + BD.EATTRIBUTE18 + @"'
|
|
)
|
|
END
|
|
ELSE
|
|
BEGIN
|
|
UPDATE dbo.ICSSORRFQ2NORMALITEM SET
|
|
MEMO='" + BD.MEMO + @"' ,
|
|
Requirements='" + BD.Requirements + @"' ,
|
|
REQUESTQUANTITY=" + Convert.ToDecimal(BD.REQUESTQUANTITY) + @",
|
|
HASCOSTDETAILS='" + BD.HASCOSTDETAILS + @"' ,
|
|
RFQITEMREFERCODE='" + BD.RFQITEMREFERCODE + @"' ,
|
|
LOGDATE=getdate() ,
|
|
LOGTIME=getdate(),
|
|
LOGUSER='" + MuserName + @"',
|
|
Vendorsing='" + BD.Vendorsing.TrimEnd(',') + @"'
|
|
WHERE ID='" + BD.ID + @"' AND WorkPoint='" + BD.WorkPoint + @"'
|
|
END
|
|
";
|
|
|
|
SqlCommandHelper.CmdExecuteNonQuery(sql, cmd);
|
|
|
|
#region 供应商
|
|
foreach (ICSSORRFQ2VENDOR GYS in list_GYS)
|
|
{
|
|
sql = @"IF NOT EXISTS(SELECT * FROM dbo.ICSSORRFQ2VENDOR WHERE ID='" + GYS.ID + @"' and WorkPoint='" + GYS.WorkPoint + @"')
|
|
BEGIN
|
|
INSERT INTO dbo.ICSSORRFQ2VENDOR
|
|
(COMPANYCODE,CREATEDATE,CREATETIME,CREATEUSER,CURRENCY,
|
|
ISCLOSED,ISSHOWPRICE,LOCATIONCODE,LOGDATE,LOGTIME,
|
|
LOGUSER,PAYMENTCONDITION,PRINCINGVENDORCODE,RFQCODE,TAXRATE
|
|
,VENDORCODE,VENDORTYPE,ADDITION1,ID,workpoint,addition2)
|
|
VALUES
|
|
('" + details.WorkPoint + @"',getdate(),getdate(),'" + MuserName + @"','" + GYS.CURRENCY + @"',
|
|
'" + GYS.ISCLOSED + @"','" + GYS.ISSHOWPRICE + @"','" + GYS.LOCATIONCODE + @"',getdate(),getdate(),
|
|
'" + MuserName + @"','" + GYS.PAYMENTCONDITION + @"','" + GYS.PRINCINGVENDORCODE + @"','" + rfqcode + @"','" + GYS.TAXRATE + @"'
|
|
,'" + GYS.VENDORCODE + @"','" + GYS.VENDORTYPE + @"','" + GYS.ADDITION1 + @"','" + GYS.ID + @"','" + details.WorkPoint + @"','" + details.ADDITION2 + @"')
|
|
END
|
|
ELSE
|
|
BEGIN
|
|
UPDATE dbo.ICSSORRFQ2VENDOR SET
|
|
PAYMENTCONDITION='" + GYS.PAYMENTCONDITION + @"' ,
|
|
ISSHOWPRICE='" + GYS.ISSHOWPRICE + @"',
|
|
LOGDATE=getdate() ,
|
|
LOGTIME=getdate(),
|
|
LOGUSER='" + MuserName + @"'
|
|
WHERE ID='" + GYS.ID + @"' AND WorkPoint='" + GYS.WorkPoint + @"'
|
|
END
|
|
";
|
|
SqlCommandHelper.CmdExecuteNonQuery(sql, cmd);
|
|
}
|
|
#endregion
|
|
}
|
|
if (details.isUpdate == true)
|
|
{
|
|
sql = @"Update ICSSORRFQRequest set Status='UpgradeOrder' where RFQCODE in ('" + details.RFQCODE + "')";
|
|
}
|
|
|
|
#endregion
|
|
|
|
cmd.Transaction.Commit();
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
cmd.Transaction.Rollback();
|
|
throw new Exception(ex.Message);
|
|
}
|
|
finally
|
|
{
|
|
if (conn.State == ConnectionState.Open)
|
|
{
|
|
conn.Close();
|
|
}
|
|
conn.Dispose();
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
throw new Exception(ex.Message);
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
#region 获取采购员-下拉
|
|
/// <summary>
|
|
/// 获取采购员-下拉
|
|
/// </summary>
|
|
/// <param name="rfqno"></param>
|
|
/// <param name="workpoint"></param>
|
|
/// <returns></returns>
|
|
public DataTable GetSelectBuiess(string WorkPoint)
|
|
{
|
|
string sql = @"SELECT a.F_Account,a.F_RealName FROM dbo.Sys_SRM_User a
|
|
LEFT JOIN dbo.Sys_SRM_Role b ON a.F_RoleId=b.F_Id
|
|
WHERE b.F_EnCode='Purchasing Staff'AND a.F_Location='{0}'
|
|
";
|
|
sql = string.Format(sql, WorkPoint);
|
|
DataTable table = SqlHelper.GetDataTableBySql(sql);
|
|
return table;
|
|
}
|
|
#endregion
|
|
|
|
#region 获取供应商-下拉
|
|
/// <summary>
|
|
/// 获取供应商-下拉
|
|
/// </summary>
|
|
/// <param name="rfqno"></param>
|
|
/// <param name="workpoint"></param>
|
|
/// <returns></returns>
|
|
public DataTable GetSelectVendor(string WorkPoint)
|
|
{
|
|
string sql = @" SELECT '' AS cvencode,''AS cvenname
|
|
UNION ALL
|
|
SELECT DISTINCT a.VenCode cvencode,a.VenName cvenname
|
|
from ICSVendor a
|
|
LEFT JOIN dbo.Sys_SRM_User b ON a.VenCode=b.F_VenCode AND a.WorkPoint=b.F_Location
|
|
where 1=1 AND a.WorkPoint='{0}'
|
|
";
|
|
sql = string.Format(sql, WorkPoint);
|
|
DataTable table = SqlHelper.GetDataTableBySql(sql);
|
|
return table;
|
|
}
|
|
#endregion
|
|
|
|
|
|
#region 退回物料行
|
|
/// <summary>
|
|
/// 退回物料行
|
|
/// </summary>
|
|
/// <param name="json"></param>
|
|
/// <returns></returns>
|
|
public string InvCodeBack(string keyValue,string RFQNO)
|
|
{
|
|
string msg = string.Empty;
|
|
try
|
|
{
|
|
//string wheresql = "(";
|
|
////string[] id = json.Split(',');
|
|
////for (int i = 0; i < id.Length; i++) {
|
|
//// wheresql += "'" + id[i].Replace(']', ' ').Replace('[', ' ').Replace('"', ' ').Trim() + "',";
|
|
////}
|
|
//wheresql = wheresql.Trim(',') + ")";
|
|
string sql = "Update ICSSORRFQRequestFrom2NORMALITEM set Status='2' where id in ('" + keyValue + "')" +
|
|
" UPDATE ICSSORRFQRequestFrom SET STATUS='Back' where RFQCODE in ('" + RFQNO + "') ";
|
|
int count = DbHelper.ExecuteNonQuery(CommandType.Text, sql);
|
|
if (count <= 0)
|
|
{
|
|
msg = " 删除失败!";
|
|
}
|
|
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
|
|
msg = ex.Message + " 删除失败!";
|
|
|
|
}
|
|
return msg;
|
|
|
|
}
|
|
#endregion
|
|
|
|
public void AddinvtoTemp(string json)
|
|
{
|
|
|
|
var data = json.ToJObject();
|
|
if (Invmes.Columns.Count <= 0)
|
|
{
|
|
Invmes.Columns.Add("公司代码", typeof(string));
|
|
Invmes.Columns.Add("成本分析模板", typeof(string));
|
|
Invmes.Columns.Add("创建日期", typeof(string));
|
|
Invmes.Columns.Add("创建时间", typeof(string));
|
|
Invmes.Columns.Add("创建用户", typeof(string));
|
|
Invmes.Columns.Add("成本明细", typeof(string));
|
|
Invmes.Columns.Add("是否含税", typeof(string));
|
|
Invmes.Columns.Add("物料分类代码", typeof(string));
|
|
Invmes.Columns.Add("物料代码", typeof(string));
|
|
Invmes.Columns.Add("物料名称", typeof(string));
|
|
Invmes.Columns.Add("物料类型", typeof(string));
|
|
Invmes.Columns.Add("物料规格", typeof(string));
|
|
Invmes.Columns.Add("更新日期", typeof(string));
|
|
Invmes.Columns.Add("更新时间", typeof(string));
|
|
Invmes.Columns.Add("更新用户", typeof(string));
|
|
Invmes.Columns.Add("备注", typeof(string));
|
|
Invmes.Columns.Add("定价物料编码", typeof(string));
|
|
Invmes.Columns.Add("参考价格", typeof(string));
|
|
Invmes.Columns.Add("币种", typeof(string));
|
|
Invmes.Columns.Add("预计需求量", typeof(string));
|
|
Invmes.Columns.Add("询价单编码", typeof(string));
|
|
Invmes.Columns.Add("文件路径", typeof(string));
|
|
Invmes.Columns.Add("有效期开始", typeof(string));
|
|
Invmes.Columns.Add("单位", typeof(string));
|
|
Invmes.Columns.Add("ID", typeof(string));
|
|
Invmes.Columns.Add("workpoint", typeof(string));
|
|
Invmes.Columns.Add("技术要求", typeof(string));
|
|
}
|
|
if (!String.IsNullOrEmpty(data["id"].ToString()))
|
|
{
|
|
UpdateInvRow(data["id"].ToString(), json);
|
|
|
|
}
|
|
else
|
|
{
|
|
string usercode = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
|
|
DataRow newrow = Invmes.NewRow();
|
|
newrow["公司代码"] = data["companycode"];
|
|
newrow["成本分析模板"] = data["COSTANALYSISTEMPLATE"];
|
|
newrow["创建日期"] = data["CREATEDATE"];
|
|
newrow["创建时间"] = data["CreateTime"];
|
|
newrow["创建用户"] = usercode;
|
|
newrow["成本明细"] = data["HASCOSTDETAILS"];
|
|
newrow["是否含税"] = data["ISINCLUDETAX"];
|
|
newrow["物料分类代码"] = data["itemclass"];
|
|
newrow["物料代码"] = data["itemcode"];
|
|
newrow["物料名称"] = data["itemname"];
|
|
newrow["物料类型"] = data["invtype"];
|
|
newrow["物料规格"] = data["itemstd"];
|
|
newrow["更新日期"] = data["logdate"];
|
|
newrow["更新时间"] = data["logtime"];
|
|
newrow["更新用户"] = usercode;
|
|
newrow["备注"] = data["memo"];
|
|
newrow["定价物料编码"] = data["PRINCINGITEMCODE"];
|
|
newrow["参考价格"] = data["REFERPRICE"];
|
|
newrow["币种"] = data["currency"];
|
|
newrow["预计需求量"] = data["REQUESTQUANTITY"];
|
|
newrow["询价单编码"] = data["RFQCODE"];
|
|
newrow["文件路径"] = data["RFQITEMREFERCODE"];
|
|
newrow["有效期开始"] = data["startdate"];
|
|
newrow["单位"] = data["unit"];
|
|
newrow["ID"] = GetNewid();
|
|
newrow["workpoint"] = data["workpoint"];
|
|
newrow["技术要求"] = data["Requirements"];
|
|
Invmes.Rows.Add(newrow);
|
|
}
|
|
|
|
|
|
}
|
|
/// <summary>
|
|
/// 清楚临时表
|
|
/// </summary>
|
|
public void ClearTempTab()
|
|
{
|
|
Invmes.Rows.Clear();
|
|
}
|
|
|
|
public string GetNewid()
|
|
{
|
|
string sql = "select newid() AS ID";
|
|
return Repository().FindTableBySql(sql, null).Rows[0]["ID"].ToString();
|
|
|
|
}
|
|
|
|
public void UpdateInvRow(string id, string json)
|
|
{
|
|
var data = json.ToJObject();
|
|
string usercode = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
|
|
string sql = @"update icsSORRFQ2NORMALITEM set COSTANALYSISTEMPLATE='" + data["COSTANALYSISTEMPLATE"].ToString() + @"',
|
|
HASCOSTDETAILS='" + data["HASCOSTDETAILS"].ToString() + @"',ISINCLUDETAX='" + data["ISINCLUDETAX"].ToString() + @"',itemcode='" + data["itemcode"].ToString() + @"',
|
|
itemname='" + data["itemname"].ToString() + @"',ITEMTYPE='" + data["invtype"].ToString() + @"',logdate='" + data["logdate"].ToString() + "',logtime='" + data["logtime"].ToString() + @"',
|
|
LOGUSER='" + usercode.ToString() + @",memo='" + data["memo"] + "',PRINCINGITEMCODE='" + data["PRINCINGITEMCODE"].ToString() + "',REQUESTQUANTITY='" + data["REQUESTQUANTITY"].ToString() + @"',
|
|
RFQCODE='" + data["RFQCODE"].ToString() + "',RFQITEMREFERCODE='" + data["RFQITEMREFERCODE"].ToString() + "',STARTDATE='" + data["startdate"].ToString() + "',unit='" + data["unit"] + @"',CURRENCY='" + data["currency"].ToString() + @"',REFERPRICE='" + data["REFERPRICE"].ToString() + @"'
|
|
WHERE ID='" + id + @"'
|
|
";
|
|
int count = DbHelper.ExecuteNonQuery(CommandType.Text, sql);
|
|
if (count <= 0)
|
|
{
|
|
DataRow row = Invmes.Select("ID ='" + id + "'").Single();
|
|
row["成本分析模板"] = data["COSTANALYSISTEMPLATE"];
|
|
row["成本明细"] = data["HASCOSTDETAILS"];
|
|
row["是否含税"] = data["ISINCLUDETAX"];
|
|
row["物料分类代码"] = data["itemclass"];
|
|
row["物料代码"] = data["itemcode"];
|
|
row["物料名称"] = data["itemname"];
|
|
row["物料类型"] = data["invtype"];
|
|
row["物料规格"] = data["itemstd"];
|
|
row["更新日期"] = data["logdate"];
|
|
row["更新时间"] = data["logtime"];
|
|
row["更新用户"] = usercode;
|
|
row["备注"] = data["memo"];
|
|
row["定价物料编码"] = data["PRINCINGITEMCODE"];
|
|
row["预计需求量"] = data["REQUESTQUANTITY"];
|
|
row["询价单编码"] = data["RFQCODE"];
|
|
row["文件路径"] = data["RFQITEMREFERCODE"];
|
|
row["有效期开始"] = data["startdate"];
|
|
row["单位"] = data["unit"];
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
#region 获取QuotedPriceDetails页面文本框值
|
|
public DataTable GetTxtInfoByPN(string RFQCODE)
|
|
{
|
|
|
|
string configSql = @"SELECT DISTINCT a.RFQCODE,a.RFQNAME,a.PURCHUGCODE,b.ITEMTYPE ,
|
|
g.F_FullName AS PURCHUGNAME,h.F_ItemName AS PURCHUGCONECT,d.VENDORCODE,e.VenName cVenName,d.VENDORTYPE ,b.CURRENCY,d.TAXRATE,d.PAYMENTCONDITION,a.MEMO ,b.COMPANYCODE
|
|
,a.HASCOSTDETAILS,a.FileName
|
|
FROM dbo.ICSSORRFQ a
|
|
LEFT JOIN ICSSORRFQ2NORMALITEM b ON a.RFQCODE=b.RFQCODE
|
|
--left join dbo.ICSPURCHUG c on a.PURCHUGCODE=c.PURCHUGCODE
|
|
LEFT JOIN dbo.ICSSORRFQ2VENDOR d ON a.RFQCODE=d.RFQCODE
|
|
LEFT JOIN ICSVendor e ON d.VENDORCODE=e.VenCode
|
|
LEFT JOIN ICSSORQUOTATION f ON a.RFQCODE=f.RFQCODE
|
|
LEFT JOIN dbo.Sys_SRM_Items g ON a.purchugcode=g.F_EnCode
|
|
LEFT JOIN dbo.Sys_SRM_ItemsDetail h ON g.F_Id=h.F_ItemId AND a.PURTeam=h.F_ItemCode
|
|
WHERE a.RFQCODE='" + RFQCODE + "'";
|
|
if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode.Contains("Vendor"))
|
|
{
|
|
configSql += " and d.VENDORCODE like '%" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "%'";
|
|
}
|
|
DataTable dt = SqlHelper.GetDataTableBySql(configSql);
|
|
return dt;
|
|
}
|
|
#endregion
|
|
|
|
|
|
#region 初次加载QuotedPriceDetails页面数据
|
|
public DataTable SelectOfferByPN(string RFQCODE, ref Pagination jqgridparam, string WorkPoint)
|
|
{
|
|
DataTable dt = new DataTable();
|
|
//var queryParam = queryJson.ToJObject();
|
|
List<DbParameter> parameter = new List<DbParameter>();
|
|
string VenCode = GetVendorCode(WorkPoint);
|
|
string sql = @"select newid() as ID, b.ID as EnquiryID, b.ITEMCODE, b.ITEMNAME as INVNAME,case when b.ITEMTYPE='Real' then '正式物料' else '临时物料' end as ITEMTYPE ,
|
|
b.RFQITEMREFERCODE ,b.RFQITEMREFERCODE as RFQITEMREFERCODEName, d.InvUnit as UNIT,b.REFERPRICE ,'' as QUOPRICE ,'New' as QUOSTATUS,'' as COSTDETAILSREFERCODE,b.REQUESTQUANTITY,'' as VENDORREJECTREASON, '' as QUOBUYERPRICE,'' as VENDORMEMO,'' as LoadQUOPRICE,b.MEMO as PurchaseMEMO,
|
|
case when isnull(b.HASCOSTDETAILS,0)=0 then '否' else '是' end HASCOSTDETAILS,d.InvStd,'' as ADDITION1,'' as UnitQUOPRICE,'' as TaxAmount,'' as Currency,'' as MinPackQuantity,'' as MOQ,'' as VenFullName,a.CREATEUSER as Purchaser,'' as Origin,'' as DailyMetalPrices,'' as ProcessingFee
|
|
from ICSSORRFQ a
|
|
left join ICSSORRFQ2NORMALITEM b on a.RFQCODE=b.RFQCODE and a.workpoint=b.WorkPoint
|
|
left join ICSSORRFQ2VENDOR c on a.RFQCODE=c.RFQCODE and a.workpoint=b.WorkPoint
|
|
left join ICSINVENTORY d on b.ITEMCODE=d.INVCODE and b.WorkPoint=d.WorkPoint
|
|
LEFT JOIN dbo.ICSVendor e ON c.VENDORCODE=e.VenCode and a.workpoint=e.WorkPoint
|
|
where a.RFQCODE='{0}'";
|
|
if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode.Contains("Vendor"))
|
|
{
|
|
//sql += " and f.cVenCode in (SELECT cVenCode FROM ICSVendor where cVenName ='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserName + "')";
|
|
sql += "and c.VENDORCODE like '%" + VenCode + "%'";
|
|
}
|
|
sql = string.Format(sql, RFQCODE);
|
|
|
|
return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
|
|
}
|
|
#endregion
|
|
|
|
#region 获取供应商档案
|
|
public string GetVendorCode(string WorkPoint)
|
|
{
|
|
string sql = string.Empty;
|
|
string VenCode = string.Empty;
|
|
string UserName = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
|
|
string UserCode = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
|
|
if (UserName != "admin")
|
|
{
|
|
sql = @"select b.VenCode cVenCode from Sys_SRM_User a
|
|
left join ICSVendor b on a.F_VenCode=b.VenCode
|
|
where F_Account='" + UserCode + "'and a.F_Location='" + WorkPoint + "'";
|
|
DataTable GetVenCode = SqlHelper.GetDataTableBySql(sql);
|
|
if (GetVenCode.Rows.Count > 0)
|
|
{
|
|
VenCode = GetVenCode.Rows[0]["cVenCode"].ToString();
|
|
}
|
|
}
|
|
return VenCode;
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region 获取QuotedPriceDetails页面文本框值(二次)
|
|
public DataTable SecondGetTxtInfoByPN(string RFQCODE, string QUOTATIONCODE)
|
|
{
|
|
DataTable dt = new DataTable();
|
|
List<DbParameter> parameter = new List<DbParameter>();
|
|
|
|
string sql = @" select distinct a.RFQCODE,a.RFQNAME,a.PURCHUGCODE,b.ITEMTYPE ,
|
|
c.PURCHUGNAME ,c.PURCHUGCONECT ,d.VENDORCODE,e.VenName cVenName,d.VENDORTYPE ,b.CURRENCY,d.TAXRATE,d.PAYMENTCONDITION,a.MEMO ,b.COMPANYCODE ,
|
|
g.VENDORMEMO,g.QUOTATIONCODE,g.QUOTEDATE,a.HASCOSTDETAILS
|
|
from dbo.ICSSORRFQ a
|
|
left join ICSSORRFQ2NORMALITEM b on a.RFQCODE=b.RFQCODE and a.workpoint=b.WorkPoint
|
|
left join ICSSORQUOTATION g on a.RFQCODE=g.RFQCODE and a.workpoint=g.WorkPoint
|
|
left join dbo.ICSPURCHUG c on a.PURCHUGCODE=c.PURCHUGCODE and a.workpoint=c.WorkPoint
|
|
left join dbo.ICSSORRFQ2VENDOR d on a.RFQCODE=d.RFQCODE and a.workpoint=d.WorkPoint
|
|
left join ICSVendor e on d.VENDORCODE=e.VenCode and a.workpoint=e.WorkPoint
|
|
left join ICSSORQUOTATION f on a.RFQCODE=f.RFQCODE and a.workpoint=f.WorkPoint
|
|
where a.RFQCODE='{0}' and g.QUOTATIONCODE='{1}' ";
|
|
//if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode.Contains("Vendor"))
|
|
//{
|
|
// sql += " and b.Vendorsing like '%" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "%'";
|
|
//}
|
|
sql = string.Format(sql, RFQCODE, QUOTATIONCODE);
|
|
return Repository().FindTableBySql(sql.ToString());
|
|
}
|
|
#endregion
|
|
|
|
#region 初次加载QuotedPriceDetails页面数据(二次)
|
|
public DataTable SecondSelectOfferByPN(string RFQCODE, string QUOTATIONCODE, ref Pagination jqgridparam)
|
|
{
|
|
DataTable dt = new DataTable();
|
|
//var queryParam = queryJson.ToJObject();
|
|
List<DbParameter> parameter = new List<DbParameter>();
|
|
string sql = @"select
|
|
b.ID as ID,
|
|
c.ID as EnquiryID,
|
|
b.ITEMCODE, b.ITEMNAME as INVNAME,
|
|
c.RFQITEMREFERCODE ,c.RFQITEMREFERCODE as RFQITEMREFERCODEName, d.InvUnit as UNIT,b.REFERPRICE ,b.QUOPRICE, b.QUOPRICE as LoadQUOPRICE , b.COSTDETAILSREFERCODE,b.REQUESTQUANTITY, b.QUOBUYERPRICE ,b.COSTDETAILSREFERCODE as COSTDETAILSREFERCODEName,b.VENDORMEMO,c.MEMO as PurchaseMEMO
|
|
,b.QUOSTATUS,case when isnull(c.HASCOSTDETAILS,0)=0 then '否' else '是' end HASCOSTDETAILS
|
|
,b.ADDITION1,b.EATTRIBUTE20 as UnitQUOPRICE,b.EATTRIBUTE21 as TaxAmount,b.EATTRIBUTE22 as Currency,b.EATTRIBUTE23 as MinPackQuantity,b.EATTRIBUTE24 as MOQ,b.EATTRIBUTE25 as VenFullName,b.EATTRIBUTE26 as Purchaser,b.EATTRIBUTE27 as Origin,b.EATTRIBUTE28 as DailyMetalPrices,b.EATTRIBUTE29 as ProcessingFee
|
|
from ICSSORQUOTATION a
|
|
left join ICSSORQUODETAILNORMAL b on a.QUOTATIONCODE=b.QUOTATIONCODE and a.WorkPoint=b.WorkPoint
|
|
left join ICSSORRFQ2NORMALITEM c on b.RFQCODE=c.RFQCODE and b.ITEMCODE=c.ITEMCODE and a.WorkPoint=c.WorkPoint
|
|
left join ICSINVENTORY d on b.ITEMCODE=d.INVCODE and b.WorkPoint=d.WorkPoint
|
|
LEFT JOIN dbo.ICSVendor e ON a.VENDORCODE=e.VenCode and a.workpoint=e.WorkPoint
|
|
where a.RFQCODE='{0}' and a.QUOTATIONCODE='{1}'";
|
|
//if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode.Contains("Vendor"))
|
|
//{
|
|
// //sql += " and f.cVenCode in (SELECT cVenCode FROM ICSVendor where cVenName ='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserName + "')";
|
|
// sql += "and c.Vendorsing like '%" + NFine.Code.OperatorProvider.Provider.GetCurrent().VenCode + "%'";
|
|
//}
|
|
sql = string.Format(sql, RFQCODE, QUOTATIONCODE);
|
|
|
|
return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
|
|
}
|
|
#endregion
|
|
|
|
|
|
public DataTable GetGridJson(string Json, ref Pagination jqgridparam)
|
|
{
|
|
string ParentId = "";
|
|
DataTable table = new DataTable();
|
|
var Jobject = Json.ToJObject();
|
|
List<DbParameter> parameter = new List<DbParameter>();
|
|
string sqlwhere = "";
|
|
if (!string.IsNullOrEmpty(Jobject["PruOrganize"].ToString()))
|
|
{
|
|
sqlwhere += " and c.PURCHUGNAME like '%" + Jobject["PruOrganize"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrEmpty(Jobject["PruTeam"].ToString()))
|
|
{
|
|
sqlwhere += " and h.F_ItemName like '%" + Jobject["PruTeam"].ToString() + "%'";
|
|
}
|
|
if (!string.IsNullOrEmpty(Jobject["RFQCode"].ToString()))
|
|
{
|
|
sqlwhere += " and a.RFQCode like '%" + Jobject["RFQCode"].ToString() + "%'";
|
|
}
|
|
if (!string.IsNullOrEmpty(Jobject["RFQName"].ToString()))
|
|
{
|
|
sqlwhere += " and a.RFQName like '%" + Jobject["RFQName"].ToString() + "%'";
|
|
}
|
|
if (!string.IsNullOrEmpty(Jobject["SupplierCode"].ToString()))
|
|
{
|
|
sqlwhere += " and B.SupplierCode like '%" + Jobject["SupplierCode"].ToString() + "%'";
|
|
}
|
|
if (!string.IsNullOrEmpty(Jobject["SupplierName"].ToString()))
|
|
{
|
|
sqlwhere += " and b.SupplierName like '%" + Jobject["SupplierName"].ToString() + "%'";
|
|
}
|
|
if (!string.IsNullOrEmpty(Jobject["InvCode"].ToString()))
|
|
{
|
|
sqlwhere += " and e.itemcode like '%" + Jobject["InvCode"].ToString() + "%'";
|
|
}
|
|
if (!string.IsNullOrEmpty(Jobject["InvName"].ToString()))
|
|
{
|
|
sqlwhere += " and e.itemname like '%" + Jobject["InvName"].ToString() + "%'";
|
|
}
|
|
if (!string.IsNullOrEmpty(Jobject["InvStd"].ToString()))
|
|
{
|
|
sqlwhere += " and f.InvStd like '%" + Jobject["InvStd"].ToString() + "%'";
|
|
}
|
|
if (!string.IsNullOrEmpty(Jobject["TimeFrom"].ToString()))
|
|
{
|
|
sqlwhere += " and a.BEGINDATE>='" + Jobject["TimeFrom"].ToString() + "'";
|
|
}
|
|
if (!string.IsNullOrEmpty(Jobject["TimeTo"].ToString()))
|
|
{
|
|
sqlwhere += " and a.BEGINDATE<='" + Jobject["TimeTo"].ToString() + "'";
|
|
}
|
|
if (!string.IsNullOrEmpty(Jobject["ReleaseState"].ToString().Trim(',')) && Jobject["ReleaseState"].ToString().Trim(',') != "'Examine'" && Jobject["ReleaseState"].ToString().Trim(',') != "'HasExamine'")
|
|
{
|
|
sqlwhere += " and a.status in ('" + Jobject["ReleaseState"].ToString().TrimEnd('\'').TrimEnd(',') + "')";
|
|
}
|
|
|
|
//if (Jobject["status"].ToString().Trim(',') == "'Examine'")
|
|
//{
|
|
// sqlwhere += " and a.RFQCODE in (SELECT a.RFQCODE FROM ICSSORRFQ a where a.RFQCODE in (SELECT DISTINCT b.RFQCODE from ICSSORQUODETAILNORMAL b WHERE b.QUOSTATUS = 'Pending'))";
|
|
//}
|
|
//if (Jobject["status"].ToString().Trim(',') == "'HasExamine'")
|
|
//{
|
|
// sqlwhere += " and a.RFQCODE in (SELECT a.RFQCODE FROM ICSSORRFQ a where a.RFQCODE in (SELECT DISTINCT b.RFQCODE from ICSSORQUODETAILNORMAL b WHERE b.QUOSTATUS in ('PricingApprove','PricingReject')))";
|
|
//}
|
|
if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
|
|
{
|
|
sqlwhere += " and a.WorkPoint in (" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',') + ")";
|
|
}
|
|
if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Purchasing Staff")
|
|
{
|
|
sqlwhere += " and e.Purchasing like '%" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "%'";
|
|
}
|
|
if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Purchasing Manager")
|
|
{
|
|
sqlwhere += " and a.STATUS ='Unallocated'";
|
|
}
|
|
string sql = @"select distinct a.RFQCODE,RFQNAME,
|
|
case a.STATUS
|
|
when 'Publish' then '发布'
|
|
when 'Examine' then '未审核'
|
|
when 'HasExamine' THEN '已审核'
|
|
WHEN 'New' THEN '新增'
|
|
when 'Close' then '关闭'
|
|
when 'PricingApprove' then '定价通过'
|
|
when 'PricingApproveByOA' then 'OA待审核'
|
|
when 'PricingApproveByOASH' then 'OA已审核'
|
|
when 'PricingApproveByOABack' then 'OA审核拒绝'
|
|
when 'Unallocated' then '未分配'
|
|
WHEN 'Allocated'then '已分配'
|
|
WHEN 'Back'then '退回'
|
|
end as STATUS,
|
|
case a.STATUS
|
|
when 'Publish' then '发布'
|
|
when 'Examine' then '未审核'
|
|
when 'HasExamine' THEN '已审核'
|
|
WHEN 'New' THEN '新增'
|
|
when 'Close' then '关闭'
|
|
when 'PricingApprove' then '定价通过'
|
|
when 'PricingApproveByOA' then 'OA待审核'
|
|
when 'PricingApproveByOASH' then 'OA已审核'
|
|
when 'PricingApproveByOABack' then 'OA审核拒绝'
|
|
when 'Unallocated' then '未分配'
|
|
WHEN 'Allocated'then '已分配'
|
|
WHEN 'Back'then '退回'
|
|
end as HIDDSTATUS,
|
|
a.BEGINDATE,a.ENDDATE,a.CREATEUSER,a.CREATETIME,c.PURCHUGNAME,h.F_ItemName as PURTEAM,c.PURCHUGNAME as PURORG
|
|
,b.SupplierName as COMPANYNAME,A.LOGDATE,A.LOGUSER,A.workpoint
|
|
,a.ADDITION1
|
|
,a.ADDITION2
|
|
from icsSORRFQ A
|
|
left join BASE_SUPPLIER B ON B.SupplierCode = a.COMPANYCODE
|
|
left join ICSPurChug c on c.PURCHUGCODE = a.PURCHUGCODE
|
|
--left join ICSPURCHUGSON d on d.PURCHUGSONCODE = a.PURTeam
|
|
left join icsSORRFQ2NORMALITEM e on e.RFQCODE=a.RFQCODE
|
|
left join ICSINVENTORY f on f.INVCODE=e.ITEMCODE
|
|
left join icsSORQUOTATION g on g.RFQCODE=a.Rfqcode
|
|
left join Sys_SRM_ItemsDetail h on h.F_ItemCode=A.purteam
|
|
where 1=1 " + sqlwhere;
|
|
ParentId = SqlHelper.Organize_F_ParentId(NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode);
|
|
if (!string.IsNullOrWhiteSpace(ParentId) && ParentId != "0" && NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "Vendor")
|
|
{
|
|
return SqlHelper.FindTablePageBySql_OtherTempbyLOGUSER(sql.ToString(), sql, ParentId, parameter.ToArray(), ref jqgridparam);
|
|
}
|
|
else
|
|
{
|
|
return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
|
|
}
|
|
}
|
|
|
|
|
|
#region 查询技术部需求单列表
|
|
public DataTable GetGridJsonICSSORRFQRequestFrom(string Json, ref Pagination jqgridparam)
|
|
{
|
|
string ParentId = "";
|
|
DataTable table = new DataTable();
|
|
var Jobject = Json.ToJObject();
|
|
List<DbParameter> parameter = new List<DbParameter>();
|
|
string sqlwhere = "";
|
|
//if (!string.IsNullOrEmpty(Jobject["PruOrganize"].ToString()))
|
|
//{
|
|
// sqlwhere += " and c.PURCHUGNAME like '%" + Jobject["PruOrganize"].ToString() + "%' ";
|
|
//}
|
|
//if (!string.IsNullOrEmpty(Jobject["PruTeam"].ToString()))
|
|
//{
|
|
// sqlwhere += " and h.F_ItemName like '%" + Jobject["PruTeam"].ToString() + "%'";
|
|
//}
|
|
if (!string.IsNullOrEmpty(Jobject["RFQCode"].ToString()))
|
|
{
|
|
sqlwhere += " and a.RFQCode like '%" + Jobject["RFQCode"].ToString() + "%'";
|
|
}
|
|
if (!string.IsNullOrEmpty(Jobject["RFQName"].ToString()))
|
|
{
|
|
sqlwhere += " and a.RFQName like '%" + Jobject["RFQName"].ToString() + "%'";
|
|
}
|
|
if (!string.IsNullOrEmpty(Jobject["SupplierCode"].ToString()))
|
|
{
|
|
sqlwhere += " and B.SupplierCode like '%" + Jobject["SupplierCode"].ToString() + "%'";
|
|
}
|
|
if (!string.IsNullOrEmpty(Jobject["SupplierName"].ToString()))
|
|
{
|
|
sqlwhere += " and b.SupplierName like '%" + Jobject["SupplierName"].ToString() + "%'";
|
|
}
|
|
if (!string.IsNullOrEmpty(Jobject["InvCode"].ToString()))
|
|
{
|
|
sqlwhere += " and e.itemcode like '%" + Jobject["InvCode"].ToString() + "%'";
|
|
}
|
|
if (!string.IsNullOrEmpty(Jobject["InvName"].ToString()))
|
|
{
|
|
sqlwhere += " and e.itemname like '%" + Jobject["InvName"].ToString() + "%'";
|
|
}
|
|
if (!string.IsNullOrEmpty(Jobject["InvStd"].ToString()))
|
|
{
|
|
sqlwhere += " and f.InvStd like '%" + Jobject["InvStd"].ToString() + "%'";
|
|
}
|
|
if (!string.IsNullOrEmpty(Jobject["TimeFrom"].ToString()))
|
|
{
|
|
sqlwhere += " and a.BEGINDATE>='" + Jobject["TimeFrom"].ToString() + "'";
|
|
}
|
|
if (!string.IsNullOrEmpty(Jobject["TimeTo"].ToString()))
|
|
{
|
|
sqlwhere += " and a.BEGINDATE<='" + Jobject["TimeTo"].ToString() + "'";
|
|
}
|
|
if (!string.IsNullOrEmpty(Jobject["ReleaseState"].ToString().Trim(',')) && Jobject["ReleaseState"].ToString().Trim(',') != "'Examine'" && Jobject["ReleaseState"].ToString().Trim(',') != "'HasExamine'")
|
|
{
|
|
sqlwhere += " and a.status in ('" + Jobject["ReleaseState"].ToString().TrimEnd('\'').TrimEnd(',') + "')";
|
|
}
|
|
|
|
//if (Jobject["status"].ToString().Trim(',') == "'Examine'")
|
|
//{
|
|
// sqlwhere += " and a.RFQCODE in (SELECT a.RFQCODE FROM ICSSORRFQ a where a.RFQCODE in (SELECT DISTINCT b.RFQCODE from ICSSORQUODETAILNORMAL b WHERE b.QUOSTATUS = 'Pending'))";
|
|
//}
|
|
//if (Jobject["status"].ToString().Trim(',') == "'HasExamine'")
|
|
//{
|
|
// sqlwhere += " and a.RFQCODE in (SELECT a.RFQCODE FROM ICSSORRFQ a where a.RFQCODE in (SELECT DISTINCT b.RFQCODE from ICSSORQUODETAILNORMAL b WHERE b.QUOSTATUS in ('PricingApprove','PricingReject')))";
|
|
//}
|
|
if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
|
|
{
|
|
sqlwhere += " and a.WorkPoint in (" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',') + ")";
|
|
}
|
|
if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Purchasing Staff")
|
|
{
|
|
sqlwhere += " and e.Purchasing like '%" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "%'";
|
|
}
|
|
if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Purchasing Manager")
|
|
{
|
|
sqlwhere += " and a.STATUS ='Unallocated'";
|
|
}
|
|
string sql = @"select distinct a.RFQCODE,RFQNAME,
|
|
case a.STATUS
|
|
when 'Publish' then '发布'
|
|
when 'Examine' then '未审核'
|
|
when 'HasExamine' THEN '已审核'
|
|
WHEN 'New' THEN '新增'
|
|
when 'Close' then '关闭'
|
|
when 'PricingApprove' then '定价通过'
|
|
when 'PricingApproveByOA' then 'OA待审核'
|
|
when 'PricingApproveByOASH' then 'OA已审核'
|
|
when 'PricingApproveByOABack' then 'OA审核拒绝'
|
|
when 'Unallocated' then '未分配'
|
|
WHEN 'Allocated'then '已分配'
|
|
WHEN 'Back'then '退回'
|
|
end as STATUS,
|
|
case a.STATUS
|
|
when 'Publish' then '发布'
|
|
when 'Examine' then '未审核'
|
|
when 'HasExamine' THEN '已审核'
|
|
WHEN 'New' THEN '新增'
|
|
when 'Close' then '关闭'
|
|
when 'PricingApprove' then '定价通过'
|
|
when 'PricingApproveByOA' then 'OA待审核'
|
|
when 'PricingApproveByOASH' then 'OA已审核'
|
|
when 'PricingApproveByOABack' then 'OA审核拒绝'
|
|
when 'Unallocated' then '未分配'
|
|
WHEN 'Allocated'then '已分配'
|
|
WHEN 'Back'then '退回'
|
|
end as HIDDSTATUS,
|
|
a.BEGINDATE,a.ENDDATE,a.CREATEUSER,a.CREATETIME,h.F_ItemName as PURTEAM,A.LOGDATE,A.LOGUSER,A.workpoint
|
|
,a.ADDITION1
|
|
,a.ADDITION2
|
|
from ICSSORRFQRequestFrom A
|
|
left join ICSSORRFQRequestFrom2NORMALITEM e on e.RFQCODE=a.RFQCODE
|
|
left join ICSINVENTORY f on f.INVCODE=e.ITEMCODE
|
|
left join Sys_SRM_ItemsDetail h on h.F_ItemCode=A.purteam
|
|
where 1=1 " + sqlwhere;
|
|
ParentId = SqlHelper.Organize_F_ParentId(NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode);
|
|
if (!string.IsNullOrWhiteSpace(ParentId) && ParentId != "0" && NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "Vendor")
|
|
{
|
|
return SqlHelper.FindTablePageBySql_OtherTempbyLOGUSER(sql.ToString(), sql, ParentId, parameter.ToArray(), ref jqgridparam);
|
|
}
|
|
else
|
|
{
|
|
return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#region 查询技术部需求单列表(子表)
|
|
public DataTable GetSubGridJsonICSSORRFQRequestFrom(string RFQCODE, ref Pagination jqgridparam, string WorkPoint)
|
|
{
|
|
|
|
DataTable dt = new DataTable();
|
|
List<DbParameter> parameter = new List<DbParameter>();
|
|
string sql = @"SELECT b.itemcode,b.itemname,b.ITEMTYPE,a.invstd,b.unit,REQUESTQUANTITY,memo
|
|
FROM ICSSORRFQRequestFrom2NORMALITEM b
|
|
left join ICSINVENTORY a on a.invcode=b.itemcode and a.workpoint=b.workpoint
|
|
where RFQCODE='{0}'";
|
|
sql = string.Format(sql, RFQCODE);
|
|
|
|
return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
|
|
}
|
|
#endregion
|
|
|
|
#region 技术部发布申请单
|
|
public string JSPublish(string json)
|
|
{
|
|
string msg = string.Empty;
|
|
string wheresql = "(";
|
|
string[] id = json.Split(',');
|
|
for (int i = 0; i < id.Length; i++)
|
|
{
|
|
wheresql += "'" + id[i].Replace(']', ' ').Replace('[', ' ').Replace('"', ' ').Trim() + "',";
|
|
}
|
|
wheresql = wheresql.Trim(',') + ")";
|
|
//发送邮件通知供应商
|
|
string sql = "update ICSSORRFQRequestFrom set STATUS='Unallocated' where RFQCODE in " + wheresql;
|
|
int count = DbHelper.ExecuteNonQuery(CommandType.Text, sql);
|
|
if (count > 0)
|
|
{
|
|
msg = "发布成功!";
|
|
}
|
|
else
|
|
{
|
|
msg = "发布失败!";
|
|
}
|
|
return msg;
|
|
}
|
|
#endregion
|
|
|
|
#region 删除技术申请单
|
|
public string DELETEICSSORRFQRequestFrom(string json)
|
|
{
|
|
try
|
|
{
|
|
string wheresql = "(";
|
|
string[] id = json.Split(',');
|
|
for (int i = 0; i < id.Length; i++)
|
|
{
|
|
wheresql += "'" + id[i].Replace(']', ' ').Replace('[', ' ').Replace('"', ' ').Trim() + "',";
|
|
}
|
|
wheresql = wheresql.Trim(',') + ")";
|
|
string sql = "delete from ICSSORRFQRequestFrom where RFQCODE in" + wheresql;
|
|
sql += " delete from ICSSORRFQRequestFrom2NORMALITEM where RFQCODE in" + wheresql;
|
|
int count = DbHelper.ExecuteNonQuery(CommandType.Text, sql);
|
|
if (count > 0)
|
|
{
|
|
return "删除成功!";
|
|
}
|
|
else
|
|
{
|
|
return "删除失败!";
|
|
}
|
|
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
|
|
return ex.Message + " 删除失败!";
|
|
|
|
}
|
|
|
|
}
|
|
#endregion
|
|
|
|
#region 生成申请单号
|
|
public string GetSercodeICSSORRFQRequestFrom(string workpoint)
|
|
{
|
|
string datetime = DateTime.Now.ToString("yyyyMMdd");
|
|
SqlParameter[] para = { new SqlParameter("@WorkPoint", workpoint), new SqlParameter("@TbName", "ICSSORRFQRequestFrom"), new SqlParameter("@CodeCol", "RFQCODE"), new SqlParameter("@Pre", "SQD" + datetime), new SqlParameter("@NumLen", 3) };
|
|
DataTable table = Repository().FindTableByProc("Addins_GetSerialCode", para);
|
|
return table.Rows[0][0].ToString();
|
|
}
|
|
#endregion
|
|
|
|
#region 生成询价单
|
|
public string GetRFQCODEICSSORRFQRequestFrom(string workpoint)
|
|
{
|
|
string datetime = DateTime.Now.ToString("yyyyMMdd");
|
|
SqlParameter[] para = { new SqlParameter("@WorkPoint", workpoint), new SqlParameter("@TbName", "ICSSORRFQ"), new SqlParameter("@CodeCol", "RFQCODE"), new SqlParameter("@Pre", "XJD" + datetime), new SqlParameter("@NumLen", 3) };
|
|
DataTable table = Repository().FindTableByProc("Addins_GetSerialCode", para);
|
|
return table.Rows[0][0].ToString();
|
|
}
|
|
#endregion
|
|
|
|
#region 查询申请物料信息
|
|
public DataTable GetInvTabICSSORRFQRequestFrom(string rfqno)
|
|
{
|
|
string sql = @"select b.companycode as 公司代码,b.COSTANALYSISTEMPLATE as 成本分析模板 ,b.CREATEDATE as 创建日期,
|
|
b.CreateTime as 创建时间,b.CREATEUSER as 创建用户,b.HASCOSTDETAILS as 成本明细,b.ISINCLUDETAX as 是否含税,
|
|
b.ITEMCLASSID as 物料分类代码,b.itemcode as 物料代码,b.itemname as 物料名称,
|
|
CASE b.ITEMTYPE WHEN 'Real' then '正式物料' else '临时物料' end as 物料类型,a.invstd as 物料规格,
|
|
b.logdate as 更新日期,b.logtime as 更新时间,b.LOGUSER as 更新用户,b.memo as 备注,b.PRINCINGITEMCODE as 定价物料编码,
|
|
b.REFERPRICE as 参考价格,b.CURRENCY as 币种,b.REQUESTQUANTITY as 预计需求量,b.RFQCODE as 询价单编码,
|
|
b.RFQITEMREFERCODE as 文件路径,b.startdate as 有效期开始,b.Requirements as 技术要求,b.RFQITEMREFERCODE as HiddenFile,b.Status,
|
|
b.unit as 单位,B.ID,b.workpoint,b.InvDesc AS 物料描述,b.ManuFacturer AS 制造商,b.ManuFacturerInvCode AS 制造商编码,b.YearQty AS 年用量,b.ProjectInfo AS 项目信息,b.MaterialGrade AS 物料等级,b.CustomerSpecified AS 是否为客户指定,b.TechnicalDirector AS 技术负责人,c.Vendorsing,b.EATTRIBUTE18
|
|
from ICSSORRFQRequestFrom2NORMALITEM b
|
|
left join ICSINVENTORY a on a.invcode=b.itemcode and a.workpoint=b.workpoint
|
|
left JOIN dbo.ICSSORRFQ2NORMALITEM c ON b.RFQCODE=c.ADDITION2 AND b.itemcode=c.itemcode
|
|
where b.RFQCODE='" + rfqno + @"'
|
|
";
|
|
string ss = NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode;
|
|
if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode.Contains("Purchasing"))
|
|
{
|
|
sql += " AND b.Purchasing LIKE '%" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "%'";
|
|
}
|
|
DataTable table = Repository().FindDataSetBySql(sql).Tables[0];
|
|
DataTable dtCloned = table.Clone();
|
|
foreach (DataColumn col in dtCloned.Columns)
|
|
{
|
|
col.DataType = typeof(string);
|
|
}
|
|
foreach (DataRow row in table.Rows)
|
|
{
|
|
DataRow newrow = dtCloned.NewRow();
|
|
foreach (DataColumn column in dtCloned.Columns)
|
|
{
|
|
newrow[column.ColumnName] = row[column.ColumnName].ToString();
|
|
|
|
}
|
|
dtCloned.Rows.Add(newrow);
|
|
}
|
|
if (Invmes.Rows.Count > 0)
|
|
{
|
|
dtCloned.Merge(Invmes, false);
|
|
}
|
|
return dtCloned;
|
|
}
|
|
#endregion
|
|
|
|
#region 查询申请单主表信息,修改
|
|
public DataRow GetICSSORRFQRequestFromrow(string Rfqcode)
|
|
{
|
|
string sql = @"select begindate,COSTANALYSISTEMPLATE,costtype,CONVERT(VARCHAR(10),
|
|
createdate,120)AS createdate,createtime,createuser,ISUNIFYANALYSISTEMPLATE,
|
|
logdate,logtime,loguser,poct,a.purchugcode,b.PURCHUGNAME,rfqname,status,
|
|
purteam,a.workpoint,companycode,rfqcode,memo,a.FileName,a.HASCOSTDETAILS
|
|
from ICSSORRFQRequestFrom a
|
|
LEFT JOIN dbo.ICSPurChug b ON a.PURCHUGCODE=b.PURCHUGCODE
|
|
where rfqcode='" + Rfqcode + "'";
|
|
DataTable table = Repository().FindTableBySql(sql, null);
|
|
return table.Rows[0];
|
|
}
|
|
#endregion
|
|
|
|
#region 获取申请单附件信息
|
|
public DataTable GetICSSORRFQRequestFromVenDorFile(string rfqcode)
|
|
{
|
|
//string Vendor = NFine.Code.OperatorProvider.Provider.GetCurrent().VenCode;
|
|
DataTable dt = new DataTable();
|
|
string sql = @"SELECT Filename FROM ICSSORRFQRequestFrom WHERE RFQCODE='{0}'";
|
|
sql = string.Format(sql, rfqcode);
|
|
dt = SqlHelper.GetDataTableBySql(sql);
|
|
return dt;
|
|
}
|
|
#endregion
|
|
|
|
#region 删除申请的物料信息
|
|
public string DeleteInvRowICSSORRFQRequestFrom(string keyValue)
|
|
{
|
|
string msg = string.Empty;
|
|
try
|
|
{
|
|
//string wheresql = "(";
|
|
////string[] id = json.Split(',');
|
|
////for (int i = 0; i < id.Length; i++) {
|
|
//// wheresql += "'" + id[i].Replace(']', ' ').Replace('[', ' ').Replace('"', ' ').Trim() + "',";
|
|
////}
|
|
//wheresql = wheresql.Trim(',') + ")";
|
|
string sql = "delete from ICSSORRFQRequestFrom2NORMALITEM where id in ('" + keyValue + "')";
|
|
int count = DbHelper.ExecuteNonQuery(CommandType.Text, sql);
|
|
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
|
|
msg = ex.Message + " 删除失败!";
|
|
|
|
}
|
|
return msg;
|
|
|
|
}
|
|
#endregion
|
|
|
|
#region 保存技术申请单方法
|
|
/// <summary>
|
|
/// 新增询价单
|
|
/// </summary>
|
|
/// <param name="details"></param>
|
|
public void AddICSSORRFQRequestFromByPN(ICSSORRFQ details)
|
|
{
|
|
string sql = string.Empty;
|
|
try
|
|
{
|
|
List<ICSSORRFQRequestFrom2NORMALITEM> list_BD = JsonConvert.DeserializeObject<List<ICSSORRFQRequestFrom2NORMALITEM>>(details.arrayBidDocBD);
|
|
//List<ICSSORRFQ2VENDOR> list_GYS = JsonConvert.DeserializeObject<List<ICSSORRFQ2VENDOR>>(details.arrayBidDocGYS);
|
|
|
|
string connString = ConfigurationManager.ConnectionStrings["connstr"].ConnectionString;
|
|
SqlConnection conn = new System.Data.SqlClient.SqlConnection(connString);
|
|
conn.Open();
|
|
SqlTransaction sqlTran = conn.BeginTransaction();
|
|
SqlCommand cmd = new SqlCommand();
|
|
cmd.Transaction = sqlTran;
|
|
cmd.Connection = conn;
|
|
try
|
|
{
|
|
string Muser = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
|
|
string MuserName = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
|
|
//string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
|
|
if (details.RFQstatus == "2")
|
|
{
|
|
sql = "select * from ICSSORRFQRequestFrom where RFQCODE='" + details.RFQCODE + "' and WorkPoint='" + details.WorkPoint + "'";
|
|
DataTable dt = SqlCommandHelper.SQlReturnData(sql, cmd);
|
|
if (dt != null && dt.Rows.Count > 0)
|
|
{
|
|
throw new Exception("询价单已存在!");
|
|
}
|
|
}
|
|
sql = @"IF NOT EXISTS(SELECT * FROM dbo.ICSSORRFQRequestFrom WHERE RFQCODE=@RFQCODE and WorkPoint=@workpoint)
|
|
BEGIN
|
|
INSERT INTO dbo.ICSSORRFQRequestFrom(
|
|
begindate,COSTANALYSISTEMPLATE,costtype,createdate,createtime,
|
|
createuser,ISUNIFYANALYSISTEMPLATE,logdate,logtime,loguser,
|
|
poct,rfqname,status,
|
|
workpoint,companycode,rfqcode,memo,HASCOSTDETAILS,FileName
|
|
)
|
|
VALUES (@begindate,@COSTANALYSISTEMPLATE,@costtype,getdate(),getdate() ,
|
|
@createuser,@ISUNIFYANALYSISTEMPLATE,getdate(),getdate(),@loguser,
|
|
@poct,@rfqname,@status,
|
|
@workpoint,@companycode,@rfqcode,@memo,@HASCOSTDETAILS,@FileName)
|
|
END
|
|
ELSE
|
|
BEGIN
|
|
UPDATE dbo.ICSSORRFQRequestFrom SET
|
|
begindate=@begindate ,
|
|
COSTANALYSISTEMPLATE=@COSTANALYSISTEMPLATE ,
|
|
costtype=@costtype,
|
|
ISUNIFYANALYSISTEMPLATE=@ISUNIFYANALYSISTEMPLATE ,
|
|
logdate=getdate() ,
|
|
logtime=getdate() ,
|
|
loguser=@loguser,
|
|
rfqname=@rfqname ,
|
|
status=@status,
|
|
memo=@memo,
|
|
HASCOSTDETAILS=@HASCOSTDETAILS,
|
|
FileName=@FileName
|
|
WHERE RFQCODE=@RFQCODE AND WorkPoint=@workpoint
|
|
|
|
END";
|
|
SqlParameter[] sp_Detail = {
|
|
new SqlParameter("@begindate",details.BEGINDATE),
|
|
new SqlParameter("@COSTANALYSISTEMPLATE",details.COSTANALYSISTEMPLATE),
|
|
new SqlParameter("@costtype",details.COSTTYPE),
|
|
new SqlParameter("@createuser",MuserName),
|
|
new SqlParameter("@ISUNIFYANALYSISTEMPLATE",details.ISUNIFYANALYSISTEMPLATE),
|
|
new SqlParameter("@loguser",MuserName),
|
|
//new SqlParameter("@ZTBCount",details.ZTBCount),
|
|
new SqlParameter("@poct",details.POCT),
|
|
//new SqlParameter("@purchugcode",details.PURCHUGCODE),
|
|
new SqlParameter("@rfqname",details.RFQNAME),
|
|
new SqlParameter("@status",details.STATUS=="1"?"Publish":"New"),
|
|
//new SqlParameter("@PURTeam",details.PURTeam),
|
|
new SqlParameter("@workpoint",details.WorkPoint),
|
|
new SqlParameter("@companycode",details.WorkPoint),
|
|
new SqlParameter("@rfqcode",details.RFQCODE),
|
|
new SqlParameter("@memo",details.MEMO),
|
|
new SqlParameter("@HASCOSTDETAILS",details.HASCOSTDETAILS),
|
|
new SqlParameter("@FileName",details.FileName),
|
|
//new SqlParameter("@ENDDATE",details.ENDDATE)
|
|
};
|
|
SqlCommandHelper.CmdExecuteNonQuery(sql, sp_Detail, cmd);
|
|
|
|
#region 标的
|
|
foreach (ICSSORRFQRequestFrom2NORMALITEM BD in list_BD)
|
|
{
|
|
sql = @"IF NOT EXISTS(SELECT * FROM dbo.ICSSORRFQRequestFrom2NORMALITEM WHERE ID='" + BD.ID + @"' and WorkPoint='" + BD.WorkPoint + @"')
|
|
BEGIN
|
|
INSERT INTO dbo.ICSSORRFQRequestFrom2NORMALITEM(
|
|
COMPANYCODE,COSTANALYSISTEMPLATE,CREATEDATE,CREATETIME,CREATEUSER,
|
|
HASCOSTDETAILS,ISINCLUDETAX,ITEMCLASSID,ITEMCODE,ITEMNAME,
|
|
ITEMTYPE,LOGDATE,LOGTIME,LOGUSER,MEMO,
|
|
PRINCINGITEMCODE,REFERPRICE,CURRENCY,REQUESTQUANTITY,RFQCODE,
|
|
RFQITEMREFERCODE,UNIT,ID,workpoint,
|
|
Requirements,InvStd,InvDesc,ManuFacturer,ManuFacturerInvCode,YearQty,ProjectInfo
|
|
,MaterialGrade,CustomerSpecified,TechnicalDirector)
|
|
VALUES (
|
|
'" + details.WorkPoint + @"','" + BD.COSTANALYSISTEMPLATE + @"',getdate(),getdate(),'" + MuserName + @"',
|
|
'" + BD.HASCOSTDETAILS + @"','" + BD.ISINCLUDETAX + @"','" + BD.ITEMCLASSID + @"','" + BD.ITEMCODE + @"','" + BD.ITEMNAME + @"',
|
|
'" + BD.ITEMTYPE + @"',getdate(),getdate(),'" + MuserName + @"','" + BD.MEMO + @"',
|
|
'" + BD.PRINCINGITEMCODE + @"', " + Convert.ToDecimal(BD.REFERPRICE) + @",'" + BD.CURRENCY + @"'," + Convert.ToDecimal(BD.REQUESTQUANTITY) + @",'" + details.RFQCODE + @"','" + BD.RFQITEMREFERCODE + @"','" + BD.UNIT + @"',NewID(),'" + details.WorkPoint + @"','" + BD.Requirements + @"','" + BD.InvStd + @"','" + BD.InvDesc + @"','" + BD.ManuFacturer + @"', '" + BD.ManuFacturerInvCode + @"', '" + BD.YearQty + @"', '" + BD.ProjectInfo + @"', '" + BD.MaterialGrade + @"', '" + BD.CustomerSpecified + @"','" + BD.TechnicalDirector + @"'
|
|
)
|
|
END
|
|
ELSE
|
|
BEGIN
|
|
UPDATE dbo.ICSSORRFQRequestFrom2NORMALITEM SET
|
|
MEMO='" + BD.MEMO + @"' ,
|
|
Requirements='" + BD.Requirements + @"' ,
|
|
REQUESTQUANTITY=" + Convert.ToDecimal(BD.REQUESTQUANTITY) + @",
|
|
HASCOSTDETAILS='" + BD.HASCOSTDETAILS + @"' ,
|
|
RFQITEMREFERCODE='" + BD.RFQITEMREFERCODE + @"' ,
|
|
LOGDATE=getdate() ,
|
|
LOGTIME=getdate(),
|
|
LOGUSER='" + MuserName + @"',
|
|
Status=NULL
|
|
WHERE ID='" + BD.ID + @"' AND WorkPoint='" + BD.WorkPoint + @"'
|
|
END
|
|
";
|
|
|
|
SqlCommandHelper.CmdExecuteNonQuery(sql, cmd);
|
|
}
|
|
|
|
#endregion
|
|
#region 临时物料
|
|
|
|
foreach (ICSSORRFQRequestFrom2NORMALITEM BD in list_BD)
|
|
{
|
|
if (BD.Source == "手工")
|
|
{
|
|
sql = @"INSERT INTO dbo.ICSINVENTORY
|
|
(
|
|
ID
|
|
,INVCODE
|
|
,INVNAME
|
|
,INVUOM
|
|
,INVSTD
|
|
,INVTYPE
|
|
,INVCLASS
|
|
,INVEXPORTIMPORT
|
|
,MUSER
|
|
,MUSERName
|
|
,MTIME
|
|
,WorkPoint
|
|
)
|
|
VALUES (
|
|
@ID
|
|
,@INVCODE
|
|
,@INVNAME
|
|
,@INVUOM
|
|
,@INVSTD
|
|
,@INVTYPE
|
|
,@INVCLASS
|
|
,@INVEXPORTIMPORT
|
|
,@MUSER
|
|
,@MUSERName
|
|
,Getdate()
|
|
,@WorkPoint
|
|
)
|
|
";
|
|
SqlParameter[] sp_INv = {
|
|
new SqlParameter("@ID",BD.ID),
|
|
new SqlParameter("@INVCODE",BD.ITEMCODE),
|
|
new SqlParameter("@INVNAME",BD.ITEMNAME),
|
|
new SqlParameter("@INVUOM",BD.UNIT),
|
|
new SqlParameter("@INVSTD",BD.InvStd),
|
|
new SqlParameter("@INVTYPE","生产类型"),
|
|
new SqlParameter("@INVCLASS","生产类型"),
|
|
new SqlParameter("@INVEXPORTIMPORT","生产类型"),
|
|
new SqlParameter("@WorkPoint",details.WorkPoint),
|
|
new SqlParameter("@MUSER",Muser),
|
|
new SqlParameter("@MUSERName",MuserName),
|
|
//new SqlParameter("@WorkPoint",BD.cCode)
|
|
};
|
|
SqlCommandHelper.CmdExecuteNonQuery(sql, sp_INv, cmd);
|
|
}
|
|
}
|
|
#endregion
|
|
cmd.Transaction.Commit();
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
cmd.Transaction.Rollback();
|
|
throw new Exception(ex.Message);
|
|
}
|
|
finally
|
|
{
|
|
if (conn.State == ConnectionState.Open)
|
|
{
|
|
conn.Close();
|
|
}
|
|
conn.Dispose();
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
throw new Exception(ex.Message);
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
|
|
public DataTable GetInvTable(string rfqno)
|
|
{
|
|
string sql = @"select companycode as 公司代码,COSTANALYSISTEMPLATE as 成本分析模板 ,CREATEDATE as 创建日期,
|
|
CreateTime as 创建时间,CREATEUSER as 创建用户,HASCOSTDETAILS as 成本明细,ISINCLUDETAX as 是否含税,
|
|
ITEMCLASSID as 物料分类代码,b.itemcode as 物料代码,b.itemname as 物料名称,
|
|
CASE b.ITEMTYPE WHEN 'Real' then '正式物料' else '临时物料' end as 物料类型,a.invstd as 物料规格,
|
|
logdate as 更新日期,logtime as 更新时间,LOGUSER as 更新用户,memo as 备注,PRINCINGITEMCODE as 定价物料编码,
|
|
REFERPRICE as 参考价格,CURRENCY as 币种,REQUESTQUANTITY as 预计需求量,RFQCODE as 询价单编码,
|
|
RFQITEMREFERCODE as 文件路径,startdate as 有效期开始,Requirements as 技术要求,RFQITEMREFERCODE as HiddenFile,Status,
|
|
unit as 单位,B.ID,b.workpoint,b.InvDesc AS 物料描述,b.ManuFacturer AS 制造商,ManuFacturerInvCode AS 制造商编码,YearQty AS 年用量,ProjectInfo AS 项目信息,MaterialGrade AS 物料等级,CustomerSpecified AS 是否为客户指定,TechnicalDirector AS 技术负责人
|
|
from icsSORRFQ2NORMALITEM b
|
|
left join ICSINVENTORY a on a.invcode=b.itemcode and a.workpoint=b.workpoint
|
|
where RFQCODE='" + rfqno + @"'
|
|
";
|
|
DataTable table = Repository().FindDataSetBySql(sql).Tables[0];
|
|
DataTable dtCloned = table.Clone();
|
|
foreach (DataColumn col in dtCloned.Columns)
|
|
{
|
|
col.DataType = typeof(string);
|
|
}
|
|
foreach (DataRow row in table.Rows)
|
|
{
|
|
DataRow newrow = dtCloned.NewRow();
|
|
foreach (DataColumn column in dtCloned.Columns)
|
|
{
|
|
newrow[column.ColumnName] = row[column.ColumnName].ToString();
|
|
|
|
}
|
|
dtCloned.Rows.Add(newrow);
|
|
}
|
|
if (Invmes.Rows.Count > 0)
|
|
{
|
|
dtCloned.Merge(Invmes, false);
|
|
}
|
|
return dtCloned;
|
|
}
|
|
|
|
|
|
#region 生效价格查询
|
|
|
|
/// <summary>
|
|
/// 生效价格查询
|
|
/// </summary>
|
|
/// <param name="queryJson"></param>
|
|
/// <param name="jqgridparam"></param>
|
|
/// <returns></returns>
|
|
public DataTable GetGridPriceByPN(string queryJson, ref Pagination jqgridparam)
|
|
{
|
|
DataTable dt = new DataTable();
|
|
var queryParam = queryJson.ToJObject();
|
|
List<DbParameter> parameter = new List<DbParameter>();
|
|
string sql = @" select distinct b.RFQCODE,a.RFQCODE AS FPRFQCODE ,d.ITEMCODE,d.ITEMNAME,c.VENDORCODE,CASE WHEN ISNULL(e.QUOBUYERPRICE,0)<>0 THEN e.QUOBUYERPRICE ELSE e.QUOPRICE END AS QUOPRICE,e.UNIT,
|
|
e.CURRENCY,f.invSTD,j.VenName cVenName,j.VenCode cVenCode,e.QUOSTATUS,a.WorkPoint
|
|
FROM ICSSORRFQ a
|
|
INNER JOIN ICSSORRFQ b ON a.EATTRIBUTE12=b.RFQCODE
|
|
LEFT JOIN ICSSORQUOTATION c ON a.RFQCODE= c.RFQCODE
|
|
left join dbo.ICSSORRFQ2NORMALITEM d on a.RFQCODE=d.RFQCODE
|
|
left join ICSINVENTORY f on d.ITEMCODE=f.INVCODE AND a.WorkPoint=f.WorkPoint
|
|
left join ICSVendor j on c.VENDORCODE=j.venCode AND c.WorkPoint=j.WorkPoint
|
|
left join icsSORQUODETAILNORMAL e on c.QUOTATIONCODE=e.QUOTATIONCODE AND d.ITEMCODE=e.ITEMCODE
|
|
where e.QUOSTATUS='PricingApprove' and isnull(d.ITEMCODE,'' )<>''
|
|
";
|
|
if (!string.IsNullOrWhiteSpace(queryJson))
|
|
{
|
|
if (!string.IsNullOrWhiteSpace(queryParam["RFQCODE"].ToString()))
|
|
{
|
|
sql += " and b.RFQCODE like '%" + queryParam["RFQCODE"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["PURCHUG"].ToString()))
|
|
{
|
|
sql += " and c.PURCHUGCODE like '%" + queryParam["PURCHUG"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["PURTEAM"].ToString()))
|
|
{
|
|
sql += " and h.F_ItemName like '%" + queryParam["PURTEAM"].ToString() + "%' ";
|
|
}
|
|
|
|
if (!string.IsNullOrWhiteSpace(queryParam["ITEMCODE"].ToString()))
|
|
{
|
|
sql += " and d.ITEMCODE like '%" + queryParam["ITEMCODE"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["ITEMName"].ToString()))
|
|
{
|
|
sql += " and d.ITEMNAME like '%" + queryParam["ITEMName"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["INVSTD"].ToString()))
|
|
{
|
|
sql += " and f.INVSTD like '%" + queryParam["INVSTD"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["Vencode"].ToString()))
|
|
{
|
|
sql += " and j.cVenCode in( '" + queryParam["Vencode"].ToString() + "') ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["VenName"].ToString()))
|
|
{
|
|
sql += " and j.cVenName in( '" + queryParam["VenName"].ToString() + "') ";
|
|
}
|
|
}
|
|
if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
|
|
{
|
|
sql += " and a.WorkPoint in (" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',') + ")";
|
|
}
|
|
//if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode.Contains("Vendor"))
|
|
//{
|
|
// sql += " and VENDORCODE='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
|
|
//}
|
|
return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
|
|
}
|
|
#endregion
|
|
|
|
|
|
|
|
/// <summary>
|
|
/// 定价通过
|
|
/// </summary>
|
|
/// <param name="json"></param>
|
|
/// <returns></returns>
|
|
///
|
|
|
|
public string AgreeByPN(string json)
|
|
{
|
|
string ERPOpen = ConfigurationManager.ConnectionStrings["ERPOpen"].ConnectionString;
|
|
DateTime dDisableDate = new DateTime(2099, 12, 31, 0, 0, 0, 0);
|
|
string msg = "";
|
|
try
|
|
{
|
|
string GGUID = Guid.NewGuid().ToString();
|
|
var jobject = JArray.Parse(json);
|
|
bool IsInput;
|
|
string MessAge = string.Empty;
|
|
|
|
for (int i = 0; i < jobject.Count; i++)
|
|
{
|
|
var resultss = jobject[i]["ZBVendorCode"].ToArray();
|
|
////string[] resultss = (string[])jobject[i]["ZBVendorCode"]//企业信息
|
|
//string[] resultss = (string[])VendorCode;
|
|
//var jobjects = JArray.Parse(jobject[i]["ZBVendorCode"].ToString());
|
|
for (int s = 0; s < resultss.Length; s++)
|
|
{
|
|
string Vendor = resultss[s].ToString();
|
|
string sql = "";
|
|
sql = @"SELECT ITEMCODE,ITEMNAME,UNIT,1 AS bTaxCost,1 AS iSupplyType,'人民币' cExch_Name,a.WorkPoint,'' AS dEnableDate,'' AS dDisableDate
|
|
,a.QUOTATIONCODE,b.VENDORCODE FROM icsSORQUODETAILNORMAL a
|
|
LEFT JOIN icsSORQUOTATION b ON a.QUOTATIONCODE=b.QUOTATIONCODE AND a.WorkPoint=b.WorkPoint
|
|
LEFT JOIN dbo.ICSVendor c ON b.VENDORCODE=c.VenCode AND b.WorkPoint=c.WorkPoint
|
|
where b.RFQCODE='" + jobject[i]["rfqno"] + "' and ITEMCODE='" + jobject[i]["ITEMCODE"] + "' and c.VenName='" + Vendor + "'";
|
|
DataTable dt = Repository().FindTableBySql(sql.ToString());
|
|
sql = @"SELECT 0 AS iLowerLimit, REQUESTQUANTITY AS iUpperLimit, QUOPRICE as iTaxUnitPrice ,b.VENDORMEMO AS iTaxRate,ROUND(ROUND( QUOPRICE,2)/(1+(b.VENDORMEMO/CAST(100 AS float))),2) AS iUnitPrice,a.WorkPoint,a.QUOTATIONCODE,b.VENDORCODE FROM icsSORQUODETAILNORMAL a
|
|
LEFT JOIN icsSORQUOTATION b ON a.QUOTATIONCODE=b.QUOTATIONCODE AND a.WorkPoint=b.WorkPoint
|
|
LEFT JOIN dbo.ICSVendor c ON b.VENDORCODE=c.VenCode AND b.WorkPoint=c.WorkPoint
|
|
where b.RFQCODE='" + jobject[i]["rfqno"] + "' and ITEMCODE='" + jobject[i]["ITEMCODE"] + "' and c.VenName='" + Vendor + "'";
|
|
DataTable dtD = Repository().FindTableBySql(sql.ToString());
|
|
List<ICSSSSROCS> asnlist = new List<ICSSSSROCS>();
|
|
for (int k = 0; k < dt.Rows.Count; k++)
|
|
{
|
|
// if (ERPOpen == "true")
|
|
// {
|
|
// ICSSSSROCS asn = new ICSSSSROCS();
|
|
// asn.ID = GGUID;
|
|
// asn.cInvCode = dt.Rows[k]["ITEMCODE"].ToString();
|
|
// asn.cVenCode = dt.Rows[k]["VENDORCODE"].ToString();
|
|
// asn.cComUnitCode = dt.Rows[k]["UNIT"].ToString();
|
|
// //List.CompanyCode = EnCode;
|
|
// asn.bTaxCost = Convert.ToInt32(dt.Rows[k]["bTaxCost"].ToString());
|
|
// asn.iSupplyType = Convert.ToInt32(dt.Rows[k]["iSupplyType"].ToString());
|
|
// asn.cExch_Name = dt.Rows[k]["cExch_Name"].ToString();
|
|
// asn.WorkPoint = dt.Rows[k]["WorkPoint"].ToString();
|
|
// asn.dEnableDate = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd"));
|
|
// asn.dDisableDate = dDisableDate;
|
|
// DataRow[] drs = dtD.Select("QUOTATIONCODE='" + dt.Rows[k]["QUOTATIONCODE"].ToString() + "'");
|
|
// for (int j = 0; j < drs.Length; j++)
|
|
// {
|
|
// CreateVendorInventoryPriceDetailEntity DetailList = new CreateVendorInventoryPriceDetailEntity();
|
|
// DetailList.ID = GGUID;
|
|
// DetailList.iLowerLimit = float.Parse(drs[j]["iLowerLimit"].ToString());
|
|
// DetailList.iUpperLimit = float.Parse(drs[j]["iUpperLimit"].ToString());
|
|
// DetailList.iUnitPrice = float.Parse(drs[j]["iUnitPrice"].ToString());
|
|
// DetailList.iTaxRate = float.Parse(drs[j]["iTaxRate"].ToString());
|
|
// DetailList.iTaxUnitPrice = float.Parse(drs[j]["iTaxUnitPrice"].ToString()); ;
|
|
// DetailList.WorkPoint = drs[j]["WorkPoint"].ToString();
|
|
|
|
// asn.list.Add(DetailList);
|
|
// }
|
|
// asnlist.Add(asn);
|
|
// string input = JsonConvert.SerializeObject(asnlist);
|
|
// string APIURL = ConfigurationManager.ConnectionStrings["XBJURL"].ConnectionString + "XBJInv_PriceByYL";
|
|
// //string APIURL = "http://172.16.12.157:8100/api/XBJInv_Price";
|
|
// //string APIURL = "http://localhost:19944//api/XBJInv_Price";
|
|
// string result = HttpPost(APIURL, input);
|
|
// JObject Obj = (JObject)JsonConvert.DeserializeObject(result);//或者JObject jo = JObject.Parse(jsonText);
|
|
// MessAge = Obj["Success"].ToString();
|
|
// string Success = Obj["Message"].ToString();
|
|
|
|
// if (MessAge.ToUpper() == "FALSE")
|
|
// {
|
|
// IsInput = false;
|
|
// msg = Success;
|
|
// }
|
|
// else
|
|
// {
|
|
// IsInput = true;
|
|
// sql = @"update a
|
|
// set a.QUOSTATUS='PricingApprove'
|
|
// from icsSORQUODETAILNORMAL a
|
|
//left join icsSORQUOTATION b ON a.QUOTATIONCODE=b.QUOTATIONCODE AND a.WorkPoint=b.WorkPoint
|
|
// LEFT JOIN dbo.ICSVendor c ON b.VENDORCODE=c.VenCode AND b.WorkPoint=c.WorkPoint
|
|
// where b.RFQCODE='" + jobject[i]["rfqno"] + "' and ITEMCODE='" + jobject[i]["ITEMCODE"] + "' and c.VenName='" + Vendor + "'";
|
|
// sql += " UPDATE icsSORRFQ SET STATUS='PricingApprove' where RFQCODE='" + jobject[i]["rfqno"] + "' UPDATE icsSORRFQ2NORMALITEM SET Remark='" + jobject[i]["Remark"] + "' where RFQCODE='" + jobject[i]["rfqno"] + "' and ITEMCODE='" + jobject[i]["ITEMCODE"] + "'";
|
|
// int count = DbHelper.ExecuteNonQuery(CommandType.Text, sql);
|
|
// if (count <= 0)
|
|
// msg = "保存失败" + MessAge;
|
|
// else
|
|
// msg = "保存成功";
|
|
// }
|
|
|
|
// }
|
|
// else
|
|
// {
|
|
IsInput = true;
|
|
sql = @"update a
|
|
set a.QUOSTATUS='PricingApprove'
|
|
from icsSORQUODETAILNORMAL a
|
|
left join icsSORQUOTATION b ON a.QUOTATIONCODE=b.QUOTATIONCODE AND a.WorkPoint=b.WorkPoint
|
|
LEFT JOIN dbo.ICSVendor c ON b.VENDORCODE=c.VenCode AND b.WorkPoint=c.WorkPoint
|
|
where b.RFQCODE='" + jobject[i]["rfqno"] + "' and ITEMCODE='" + jobject[i]["ITEMCODE"] + "' and c.VenName='" + Vendor + "'";
|
|
sql += " UPDATE icsSORRFQ SET STATUS='PricingApprove' where RFQCODE='" + jobject[i]["rfqno"] + "' UPDATE icsSORRFQ2NORMALITEM SET Remark='" + jobject[i]["Remark"] + "' where RFQCODE='" + jobject[i]["rfqno"] + "' and ITEMCODE='" + jobject[i]["ITEMCODE"] + "'";
|
|
int count = DbHelper.ExecuteNonQuery(CommandType.Text, sql);
|
|
if (count <= 0)
|
|
msg = "保存失败" + MessAge;
|
|
else
|
|
msg = "保存成功";
|
|
}
|
|
// }
|
|
//}
|
|
|
|
|
|
}
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
return ex.Message;
|
|
}
|
|
return msg;
|
|
}
|
|
|
|
public DataTable SetData_PR(String savePath, string ID, string BidCode, string WorkPoint)
|
|
{
|
|
string msg = "";
|
|
string connString = ConfigurationManager.ConnectionStrings["connstr"].ConnectionString;
|
|
SqlConnection conn = new System.Data.SqlClient.SqlConnection(connString);
|
|
conn.Open();
|
|
SqlTransaction sqlTran = conn.BeginTransaction();
|
|
SqlCommand cmd = new SqlCommand();
|
|
cmd.Transaction = sqlTran;
|
|
cmd.Connection = conn;
|
|
DataTable data = null;
|
|
|
|
//数据获取
|
|
try
|
|
{
|
|
string Muser = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
|
|
string MuserName = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
|
|
//string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
|
|
string sql = "";
|
|
int rowNO = 0;
|
|
data = FileToExcel.ExcelToTable(savePath);
|
|
var parent = data.DefaultView.ToTable(true, "物料代码", "物料名称", "计划采购数量", "单位", "交期", "备注");
|
|
foreach (DataRow dr in parent.Rows)
|
|
{
|
|
rowNO = rowNO + 1;
|
|
string GUID = Guid.NewGuid().ToString();
|
|
if (string.IsNullOrWhiteSpace(dr["物料代"].ToString()))
|
|
throw new Exception("物料代码不能为空!");
|
|
if (string.IsNullOrWhiteSpace(dr["物料名称"].ToString()))
|
|
throw new Exception("物料名称不能为空!");
|
|
if (string.IsNullOrWhiteSpace(dr["计划采购数量"].ToString()))
|
|
throw new Exception("计划采购数量不能为空!");
|
|
if (string.IsNullOrWhiteSpace(dr["单位"].ToString()))
|
|
throw new Exception("单位不能为空!");
|
|
if (string.IsNullOrWhiteSpace(dr["交期"].ToString()))
|
|
throw new Exception("交期不能为空!");
|
|
if (string.IsNullOrWhiteSpace(dr["物料规格"].ToString()))
|
|
throw new Exception("物料规格不能为空!");
|
|
if (string.IsNullOrWhiteSpace(dr["物料描述"].ToString()))
|
|
throw new Exception("物料描述不能为空!");
|
|
if (string.IsNullOrWhiteSpace(dr["制造商编码"].ToString()))
|
|
throw new Exception("制造商编码不能为空!");
|
|
if (string.IsNullOrWhiteSpace(dr["制造商"].ToString()))
|
|
throw new Exception("制造商不能为空!");
|
|
if (string.IsNullOrWhiteSpace(dr["年用量"].ToString()))
|
|
throw new Exception("年用量不能为空!");
|
|
if (string.IsNullOrWhiteSpace(dr["项目信息"].ToString()))
|
|
throw new Exception("项目信息不能为空!");
|
|
if (string.IsNullOrWhiteSpace(dr["物料等级"].ToString()))
|
|
throw new Exception("物料等级不能为空!");
|
|
if (string.IsNullOrWhiteSpace(dr["是否为客户指定"].ToString()))
|
|
throw new Exception("是否为客户指定不能为空!");
|
|
if (string.IsNullOrWhiteSpace(dr["技术负责人"].ToString()))
|
|
throw new Exception("技术负责人不能为空!");
|
|
|
|
|
|
//string ishave = ISHave(dr["物料编码"].ToString());
|
|
//if (ishave == "1")
|
|
//{
|
|
// msg += "物料" + dr["物料编码"].ToString() + "不存在!";
|
|
// continue;
|
|
//}
|
|
//else
|
|
//{
|
|
// sql = @"IF NOT EXISTS(SELECT * FROM dbo.ICSBidDocBD WHERE ID=@ID)
|
|
// BEGIN
|
|
// INSERT INTO dbo.ICSBidDocBD( ID, BidCode, InvCode, ItemType, Remark, Quantity, DeliveryTime, RowNo,
|
|
// WorkPoint, MUSER, MUSERName, MTIME)
|
|
// VALUES ( @ID, @BidCode, @InvCode, @ItemType, @Remark, @Quantity, @DeliveryTime, @RowNo,
|
|
// @WorkPoint, @MUSER, @MUSERName, GETDATE())
|
|
// END
|
|
// ELSE
|
|
// BEGIN
|
|
// UPDATE dbo.ICSBidDocBD SET BidCode=@BidCode,InvCode=@InvCode,ItemType=@ItemType,
|
|
// Remark=@Remark,Quantity=@Quantity , DeliveryTime=@DeliveryTime,RowNo=@RowNo
|
|
// WHERE ID=@ID
|
|
// END";
|
|
// SqlParameter[] sp_BD = {
|
|
// new SqlParameter("@ID",GUID),
|
|
// new SqlParameter("@BidCode",BidCode),
|
|
// new SqlParameter("@InvCode",dr["物料编码"].ToString()),
|
|
// new SqlParameter("@ItemType",""),
|
|
// new SqlParameter("@Remark",dr["备注"].ToString()),
|
|
// new SqlParameter("@Quantity",dr["计划采购数量"].ToString()),
|
|
// new SqlParameter("@DeliveryTime",dr["交期"].ToString()),
|
|
// new SqlParameter("@RowNo",rowNO),
|
|
// new SqlParameter("@WorkPoint",WorkPoint),
|
|
// new SqlParameter("@MUSER",Muser),
|
|
// new SqlParameter("@MUSERName",MuserName),
|
|
|
|
// //sql += "Insert Into ICSFManger Values('{0}','{1}','{2}','{3}','{4}','','{9}',CONVERT(varchar(100), '{10}', 23))";
|
|
// //DataRow[] drs = data.Select("供应商编码+供应商名称+物料编码+物料名称='" + dr["供应商编码"].ToString() + dr["供应商名称"].ToString() + dr["物料编码"].ToString() + dr["物料名称"].ToString() + "'");
|
|
// //foreach (DataRow de in drs)
|
|
// //{
|
|
// // foreach (DataColumn dc in data.Columns)
|
|
// // {
|
|
// // if (dc.Caption == "供应商编码" || dc.Caption == "供应商名称" || dc.Caption == "物料编码" || dc.Caption == "物料名称" || dc.Caption == "交货量" || dc.Caption == "排程日期")
|
|
// // continue;
|
|
// // sql += @"Insert INto ICSFMangerDetail Values ('{5}','{6}','','{7}',{8},CONVERT(varchar(100), '{10}', 23),'{9}')";
|
|
// // sql = string.Format(sql, GUID, dr["供应商编码"].ToString(), dr["供应商名称"].ToString(), dr["物料编码"].ToString(), dr["物料名称"].ToString(), GUID, dc.Caption, de["交货量"].ToString(), de[dc.Caption].ToString(), MUSERNAME, DateTime.Now);
|
|
// // }
|
|
|
|
// //}
|
|
// };
|
|
// SqlCommandHelper.CmdExecuteNonQuery(sql, sp_BD, cmd);
|
|
// }
|
|
|
|
////}
|
|
//cmd.Transaction.Commit();
|
|
//msg += "导入成功";
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
throw new Exception("" + ex.Message + "!");
|
|
}
|
|
finally
|
|
{
|
|
if (conn.State == ConnectionState.Open)
|
|
{
|
|
conn.Close();
|
|
}
|
|
conn.Dispose();
|
|
}
|
|
return data;
|
|
}
|
|
|
|
public string ISHave(string InvCode)
|
|
{
|
|
string sql = @"SELECT * FROM ICSInventory WHERE InvCode='" + InvCode + "'";
|
|
DataTable dt = SqlHelper.GetDataTableBySql(sql);
|
|
if (dt != null && dt.Rows.Count > 0)
|
|
{
|
|
return "0";
|
|
}
|
|
else
|
|
{
|
|
return "1";
|
|
}
|
|
}
|
|
|
|
#region 获取分配时自动带出采购员
|
|
|
|
public string GetPurchasing(string VenCode)
|
|
{
|
|
string sql = string.Empty;
|
|
string Purchasing = "";
|
|
string msg = string.Empty;
|
|
try
|
|
{
|
|
|
|
try
|
|
{
|
|
sql = @"SELECT TOP 1 MAX(LOGTIME),Purchasing FROM dbo.ICSSORRFQ2NORMALITEM WHERE ITEMCODE='{0}' AND Purchasing IS NOT NULL GROUP BY Purchasing ";
|
|
sql = string.Format(sql, VenCode);
|
|
DataTable dtID = SqlHelper.GetDataTableBySql(sql);
|
|
if (dtID != null && dtID.Rows.Count > 0)
|
|
{
|
|
Purchasing = dtID.Rows[0]["Purchasing"].ToString();
|
|
}
|
|
}
|
|
|
|
catch (Exception ex)
|
|
{
|
|
throw new Exception(ex.Message);
|
|
}
|
|
return Purchasing;
|
|
|
|
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
throw new Exception(ex.Message);
|
|
}
|
|
|
|
}
|
|
#endregion
|
|
|
|
|
|
public DataTable GetVenDorFileSSORByPN(string FPRFQCODE)
|
|
{
|
|
DataTable dt = new DataTable();
|
|
string sql = @"
|
|
SELECT b.GYSFile,b.VENDORCODE,b.QUOTATIONCODE,c.F_Account FROM ICsSORRFQ a
|
|
LEFT JOIN ICSSORQUOTATION b ON a.RFQCODE=b.RFQCODE AND a.workpoint=b.WorkPoint
|
|
left join Sys_SRM_User c on b.VENDORCODE=c.F_VenCode
|
|
WHERE a.RFQCODE='{0}'";
|
|
sql = string.Format(sql, FPRFQCODE);
|
|
dt = SqlHelper.GetDataTableBySql(sql);
|
|
return dt;
|
|
}
|
|
|
|
public DataTable SORRFQCourseHistoryInfoCahrsByPN(string FPRFQCODE, string workpoint, string ITEMCODE)
|
|
{
|
|
string sql = @" SELECT
|
|
DISTINCT
|
|
ROW_NUMBER() OVER(PARTITION BY b.VENDORCODE ORDER BY a.CreateTime ASC) AS num,d.VenName AS SupplierCode, a.Price as QUOPRICE,a.CreateTime as LOGDATE
|
|
FROM icsSORQUOTATION b
|
|
LEFT JOIN icsSORRFQ2VENDOR e ON b.RFQCODE=e.RFQCODE AND b.WorkPoint=e.WorkPoint AND b.VENDORCODE=e.VENDORCODE
|
|
LEFT JOIN icsSORQUODETAILNORMAL c ON c.RFQCODE=e.RFQCODE AND e.WorkPoint=c.WorkPoint AND c.QUOTATIONCODE=b.QUOTATIONCODE
|
|
LEFT JOIN dbo.ICSQuoteHistory a ON a.QuotationID=c.ID AND a.WorkPoint=c.WorkPoint
|
|
LEFT JOIN dbo.ICSVendor d ON b.VENDORCODE=d.VenCode AND b.WorkPoint=d.WorkPoint
|
|
WHERE c.RFQCODE='{0}' AND c.workpoint='{1}' AND c.ITEMCODE ='{2}' ORDER BY a.CreateTime ASC ";
|
|
sql = string.Format(sql, FPRFQCODE, workpoint, ITEMCODE);
|
|
return Repository().FindTableBySql(sql.ToString());
|
|
}
|
|
|
|
public DataTable GetGridMaterialByPN(ref Pagination jqgridparam, string ITEMCODE, string VenCode, string FPRFQCODE)
|
|
{
|
|
DataTable dt = new DataTable();
|
|
string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
|
|
List<DbParameter> parameter = new List<DbParameter>();
|
|
string sql = @" select a.QUOSTATUS,a.ITEMCODE ,a.ITEMNAME,b.VENDORCODE,CASE WHEN ISNULL(a.QUOBUYERPRICE,0)<>0 THEN a.QUOBUYERPRICE ELSE a.QUOPRICE END AS QUOPRICE,a.UNIT,a.CURRENCY,hh.PURCHUGNAME,j.VenName,
|
|
dd.TAXRATECODE,cc.paymentClause,a.COSTDETAILSREFERCODE,h.F_ItemName as PURTEAM,
|
|
case when isnull(a.COMPARECODE,'')='' then '询价' else '比价' end as Sources,
|
|
case when isnull(a.COMPARECODE,'')='' then a.RFQCODE else a.COMPARECODE end as SourcesNum,ii.INVSTD as INVTYPE
|
|
from icsSORQUODETAILNORMAL a
|
|
inner join icsSORQUOTATION b on a.QUOTATIONCODE=b.QUOTATIONCODE and a.WorkPoint=b.WorkPoint
|
|
inner join dbo.ICSSORRFQ c on a.RFQCODE=c.RFQCODE and a.WorkPoint=c.workpoint
|
|
inner join ICSVendor j on b.VENDORCODE=j.VenCode and a.WorkPoint=j.WorkPoint
|
|
inner join icsSORQUOTATION cc on a.QUOTATIONCODE=cc.QUOTATIONCODE and a.WorkPoint=cc.WorkPoint
|
|
left join icsVENDORTAXRATE dd on cc.VENDORCODE=dd.VENDORCODE and a.WorkPoint=dd.WorkPoint
|
|
left join Sys_SRM_ItemsDetail h on h.F_ItemCode=c.purteam
|
|
left join dbo.ICSPURCHUG hh on c.PURCHUGCODE=hh.PURCHUGCODE
|
|
left join dbo.ICSINVENTORY ii on a.ITEMCODE=ii.INVCODE and a.WorkPoint=ii.WorkPoint
|
|
where a.ITEMCODE='{0}' and cc.VENDORCODE='{1}'and c.RFQCODE='{2}' and a.WorkPoint in({3}) ";
|
|
sql = string.Format(sql, ITEMCODE, VenCode, FPRFQCODE, WorkPoint);
|
|
|
|
|
|
return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
|
|
|
|
}
|
|
|
|
|
|
public string SaveQuotationByPN(string keyValue)
|
|
{
|
|
string msg = "";
|
|
string sql = string.Empty;
|
|
JArray res = (JArray)JsonConvert.DeserializeObject(keyValue);
|
|
string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
|
|
string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
|
|
//string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
|
|
foreach (var item in res)
|
|
{
|
|
JObject jo = (JObject)item;
|
|
sql += @"
|
|
IF NOT EXISTS(SELECT * FROM dbo.ICSSORQUOTATION WHERE QUOTATIONCODE='{4}'and WorkPoint = '{8}')
|
|
BEGIN
|
|
INSERT INTO dbo.ICSSORQUOTATION
|
|
(
|
|
ID, BUYERMEMO,COMPANYCODE,CREATEDATE,CREATETIME,CREATEUSER,LOGDATE,LOGTIME, LOGUSER, PROCESSDATE, QUOTATIONCODE,
|
|
QUOTEDATE,RFQCODE, VENDORCODE,VENDORMEMO,WorkPoint,GYSFile
|
|
)
|
|
VALUES
|
|
(newid(),'{0}','{1}',getdate(),getdate(),'{2}',getdate(),getdate(),'{3}',getdate(),'{4}',getdate(),'{5}','{6}','{7}','{8}','{9}')
|
|
END
|
|
ELSE
|
|
BEGIN
|
|
UPDATE dbo.ICSSORQUOTATION
|
|
SET VENDORMEMO='{7}',LOGDATE=getdate(),LOGTIME=getdate(),LOGUSER='{3}', WorkPoint='{8}',GYSFile='{9}'
|
|
WHERE QUOTATIONCODE='{4}' and WorkPoint = '{8}'
|
|
END ";
|
|
sql = string.Format(sql, jo["MEMO"].ToString(), jo["WorkPoint"].ToString(), MUSER, MUSER, jo["QuotationNo"].ToString(), jo["RFQCODE"].ToString(), jo["VENDORCODE"].ToString(), jo["Description"].ToString(), jo["WorkPoint"].ToString(), jo["GYSFile"].ToString());
|
|
|
|
JArray Details = (JArray)JsonConvert.DeserializeObject(jo["Details"].ToString());
|
|
foreach (var detail in Details)
|
|
{
|
|
JObject Detail = (JObject)detail;
|
|
sql += @" IF NOT EXISTS(SELECT * FROM dbo.ICSSORQUODETAILNORMAL WHERE ID='{0}')
|
|
BEGIN
|
|
INSERT INTO dbo.ICSSORQUODETAILNORMAL
|
|
(ID, BUYERMEMO, COMPANYCODE, COSTDETAILSREFERCODE, CREATEDATE,
|
|
CREATETIME,CREATEUSER,ITEMCODE,ITEMNAME,LOGDATE,
|
|
LOGTIME,LOGUSER,QUOBUYERPRICE,QUOPRICE,QUOTATIONCODE,
|
|
QUOTEDATE,REQUESTQUANTITY,RFQCODE,UNIT,VENDORMEMO,
|
|
WorkPoint,ADDITION1,EATTRIBUTE20,EATTRIBUTE21,EATTRIBUTE22,
|
|
EATTRIBUTE23,EATTRIBUTE24,EATTRIBUTE25,EATTRIBUTE26,EATTRIBUTE27,
|
|
EATTRIBUTE28,EATTRIBUTE29
|
|
)
|
|
VALUES
|
|
('{0}','{1}','{2}','{3}',getdate(),
|
|
getdate(),'{4}','{5}','{6}',getdate(),
|
|
getdate(),'{7}','{8}','{9}','{10}',
|
|
getdate(),'{11}','{12}','{13}','{14}',
|
|
'{15}','{17}','{18}','{19}','{20}',
|
|
'{21}','{22}','{23}','{24}','{25}'
|
|
,'{26}','{27}')
|
|
END
|
|
ELSE
|
|
BEGIN
|
|
UPDATE dbo.ICSSORQUODETAILNORMAL
|
|
SET QUOPRICE='{9}',LOGDATE=getdate(),LOGTIME=getdate(),LOGUSER='{7}',QUOTEDATE=getdate(),WorkPoint='{15}',COSTDETAILSREFERCODE='{3}',VENDORMEMO='{14}',ADDITION1='{17}'
|
|
WHERE ID='{0}'
|
|
END ";
|
|
|
|
sql += @" INSERT INTO dbo.ICSQuoteHistory
|
|
(
|
|
ID, QuotationID, EnquiryID, Price, CreateUser, CreateTime,WorkPoint
|
|
)
|
|
VALUES
|
|
(newid(),'{0}','{16}','{9}','{4}',getdate(),'{15}')";
|
|
sql = string.Format(sql, Detail["ID"].ToString(), jo["MEMO"].ToString(), jo["WorkPoint"].ToString(), Detail["COSTDETAILSREFERCODE"].ToString(), MUSER, Detail["ITEMCODE"].ToString(), Detail["INVNAME"].ToString(), MUSER, Detail["QUOBUYERPRICE"].ToString(),
|
|
Detail["QUOPRICE"].ToString() == "" ? 0 : Convert.ToDecimal(Detail["QUOPRICE"].ToString()), jo["QuotationNo"].ToString(), Detail["REQUESTQUANTITY"].ToString(), jo["RFQCODE"].ToString(), Detail["UNIT"].ToString(), Detail["VENDORMEMO"].ToString(), jo["WorkPoint"].ToString(), Detail["EnquiryID"].ToString(), Detail["ADDITION1"].ToString(), Detail["EATTRIBUTE20"].ToString(), Detail["EATTRIBUTE21"].ToString(), Detail["EATTRIBUTE22"].ToString(), Detail["EATTRIBUTE23"].ToString(), Detail["EATTRIBUTE24"].ToString(), Detail["EATTRIBUTE25"].ToString(), Detail["EATTRIBUTE26"].ToString(), Detail["EATTRIBUTE27"].ToString(), Detail["EATTRIBUTE28"].ToString(), Detail["EATTRIBUTE29"].ToString());
|
|
}
|
|
}
|
|
|
|
try
|
|
{
|
|
if (SqlHelper.CmdExecuteNonQueryLi(sql) > 0)
|
|
{
|
|
|
|
}
|
|
else
|
|
{
|
|
msg = "发布报价失败!";
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
msg = ex.Message;
|
|
}
|
|
|
|
return msg;
|
|
}
|
|
|
|
public DataTable GetPriceInquiryItem(string invcode, ref Pagination jqgridparam, string workpoint, string InvName,string sfqcode)
|
|
{
|
|
List<DbParameter> parameter = new List<DbParameter>();
|
|
DataTable table = new DataTable();
|
|
string wherestr = "";
|
|
if (!string.IsNullOrEmpty(invcode))
|
|
{
|
|
wherestr += " and b.itemcode like '%" + invcode + "%'";
|
|
}
|
|
if (!string.IsNullOrEmpty(InvName))
|
|
{
|
|
wherestr += " and b.itemname like '%" + InvName + "%'";
|
|
}
|
|
string sql = @"SELECT DISTINCT b.itemcode as 物料代码,b.itemname as 物料名称,d.invstd as 物料规格,b.unit as 单位,b.REQUESTQUANTITY as 预计需求量,b.memo as 备注,b.RFQITEMREFERCODE as 文件路径
|
|
FROM ICSSORRFQRequestFrom a
|
|
LEFT JOIN ICSSORRFQRequestFrom2NORMALITEM b ON a.RFQCODE=b.RFQCODE
|
|
LEFT JOIN ICSSORRFQ2NORMALITEM c ON b.RFQCODE=c.ADDITION2 AND b.ItemCode=c.ItemCode
|
|
left join ICSINVENTORY d on d.invcode=b.itemcode and a.workpoint=b.workpoint
|
|
WHERE c.RFQCODE IS NULL and a.RFQCODE='"+sfqcode+"' and a.workpoint='" + workpoint + "'" + wherestr;
|
|
return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
|
|
|
|
}
|
|
|
|
}
|
|
}
|