|
|
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);
}
} }
|