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.
616 lines
36 KiB
616 lines
36 KiB
using Newtonsoft.Json;
|
|
using Newtonsoft.Json.Linq;
|
|
using NFine.Code;
|
|
using NFine.Data.Extensions;
|
|
using NFine.Domain._03_Entity;
|
|
using NFine.Domain._03_Entity.SRM;
|
|
using NFine.Repository;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Data;
|
|
using System.Data.Common;
|
|
using System.Runtime.Remoting.Lifetime;
|
|
using System.Text;
|
|
|
|
namespace NFine.Application
|
|
{
|
|
public class QuotedPriceApp : RepositoryFactory<ICSVendor>
|
|
{
|
|
//ICSWMS_SRMSysEntities db = new ICSWMS_SRMSysEntities();
|
|
//初次加载页面数据
|
|
|
|
public DataTable GetGridJson(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 f.VenCode=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 f.VenCode in (SELECT VenCode FROM ICSVendor where VenName ='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserName + "')";
|
|
}
|
|
return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
|
|
}
|
|
|
|
|
|
//初次加载QuotedPriceDetails页面数据
|
|
public DataTable SelectOffer(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
|
|
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='" + VenCode + "'";
|
|
}
|
|
sql = string.Format(sql, RFQCODE);
|
|
|
|
return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
|
|
}
|
|
|
|
public DataTable SelectOfferByYL(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 , '' AS Material,'' AS PROCESS,'' AS SurfaceTreatment,'' AS Other,'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
|
|
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='" + VenCode + "'";
|
|
}
|
|
sql = string.Format(sql, RFQCODE);
|
|
|
|
return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
|
|
}
|
|
public DataTable SecondSelectOffer(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
|
|
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 a.VENDORCODE='" + NFine.Code.OperatorProvider.Provider.GetCurrent().VenCode + "'";
|
|
}
|
|
sql = string.Format(sql, RFQCODE, QUOTATIONCODE);
|
|
|
|
return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
|
|
}
|
|
|
|
public DataTable SecondSelectOfferByYL(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.Material AS Material,b.PROCESS AS PROCESS,b.SurfaceTreatment AS SurfaceTreatment, b.Other AS Other
|
|
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 a.VENDORCODE='" + NFine.Code.OperatorProvider.Provider.GetCurrent().VenCode + "'";
|
|
}
|
|
sql = string.Format(sql, RFQCODE, QUOTATIONCODE);
|
|
|
|
return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
|
|
}
|
|
|
|
//获取QuotedPriceDetails页面文本框值
|
|
public DataTable GetTxtInfo(string RFQCODE)
|
|
{
|
|
// string configSql = @" select distinct a.RFQCODE,a.RFQNAME,a.PURCHUGCODE,b.ITEMTYPE ,
|
|
// c.PURCHUGNAME ,c.PURCHUGCONECT ,d.VENDORCODE,e.cVenName,d.VENDORTYPE ,b.CURRENCY,d.TAXRATE,d.PAYMENTCONDITION,a.MEMO ,b.COMPANYCODE
|
|
// ,a.HASCOSTDETAILS
|
|
// 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.cVenCode
|
|
// left join ICSSORQUOTATION f on a.RFQCODE=f.RFQCODE WHERE a.RFQCODE='" + 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 e.VenCode in (SELECT VenCode FROM ICSVendor where VenName ='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserName + "')";
|
|
}
|
|
DataTable dt = SqlHelper.GetDataTableBySql(configSql);
|
|
return dt;
|
|
}
|
|
|
|
//新增获取报价单号
|
|
public string GetQuotationNo(string RFQCODE, string WorkPoint)
|
|
{
|
|
RFQCODE = RFQCODE.Substring(RFQCODE.Length - 6);
|
|
string Pre = RFQCODE;
|
|
string QuotationNo = "BJD" + GetCode(WorkPoint, "ICSSORQUOTATION", "QUOTATIONCODE", Pre, 3);
|
|
return QuotationNo;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 上传供应商文件
|
|
/// </summary>
|
|
/// <param name="keyValue"></param>
|
|
/// <returns></returns>
|
|
public int UpLoadFile(string FileName, string QuotationNo)
|
|
{
|
|
DataTable dt = new DataTable();
|
|
string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
|
|
string sql = "";
|
|
sql += string.Format(@"update ICSSORQUOTATION set GYSFile='{0}'
|
|
where QUOTATIONCODE='{1}'",
|
|
FileName, QuotationNo);
|
|
sql += "\r\n";
|
|
StringBuilder Str = new StringBuilder(sql);
|
|
return Repository().ExecuteBySql(Str);
|
|
}
|
|
|
|
|
|
private string GetCode(string workPointCode, string tbName, string colName, string Pre, int numLen)
|
|
{
|
|
string sql = "EXEC Addins_GetSerialCode '{0}','{1}','{2}','{3}',{4}";
|
|
sql = string.Format(sql, new object[] { workPointCode, tbName, colName, Pre, numLen });
|
|
return DbHelper.ExecuteScalar(CommandType.Text, sql).ToString();
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
/// 获取供应商列表
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
public DataTable GetVendor(string RFQCODE)
|
|
{
|
|
string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
|
|
string sql = "";
|
|
sql = string.Format(@"select '' as VENDORCODE,'' as cVenName
|
|
union all
|
|
select VENDORCODE,b.cVenName from dbo.ICSSORRFQ2VENDOR a
|
|
left join dbo.ICSVendor b on a.VENDORCODE=b.cVenCode
|
|
WHERE VENDORCODE<>'' and RFQCODE='{0}'", RFQCODE);
|
|
string role = NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode;
|
|
if (role != "admin")
|
|
{
|
|
sql += " and b.WorkPoint=" + WorkPoint.TrimEnd(',') + "";
|
|
}
|
|
DataTable dt = SqlHelper.GetDataTableBySql(sql);
|
|
return dt;
|
|
}
|
|
|
|
|
|
public DataTable GetcVenName(string VenCode, string RFQCODE)
|
|
{
|
|
string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
|
|
string sql = "";
|
|
sql = string.Format(@" select VENDORCODE,b.cVenName,a.VENDORTYPE from ICSSORRFQ2VENDOR a
|
|
left join dbo.ICSVendor b on a.VENDORCODE=b.cVenCode
|
|
where a.VENDORCODE='{0}' and RFQCODE='{1}'", VenCode, RFQCODE);
|
|
//string role = NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode;
|
|
//if (role != "admin")
|
|
//{
|
|
// sql += " and b.WorkPoint=" + WorkPoint.TrimEnd(',') + "";
|
|
//}
|
|
DataTable dt = SqlHelper.GetDataTableBySql(sql);
|
|
return dt;
|
|
}
|
|
|
|
|
|
|
|
public string SaveQuotation(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["COMPANYCODE"].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
|
|
)
|
|
VALUES
|
|
('{0}','{1}','{2}','{3}',getdate(),
|
|
getdate(),'{4}','{5}','{6}'
|
|
,getdate(),getdate(),'{7}','{8}','{9}','{10}',
|
|
getdate(),'{11}','{12}','{13}','{14}','{15}','{17}')
|
|
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["COMPANYCODE"].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());
|
|
}
|
|
}
|
|
|
|
try
|
|
{
|
|
if (SqlHelper.CmdExecuteNonQueryLi(sql) > 0)
|
|
{
|
|
|
|
}
|
|
else
|
|
{
|
|
msg = "发布报价失败!";
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
msg = ex.Message;
|
|
}
|
|
|
|
return msg;
|
|
}
|
|
|
|
public string SaveQuotationByYL(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["COMPANYCODE"].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,Material,PROCESS,SurfaceTreatment,Other
|
|
)
|
|
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}')
|
|
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}',Material='{18}',PROCESS='{19}',SurfaceTreatment='{20}',Other='{21}'
|
|
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["COMPANYCODE"].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["Material"].ToString()==""? "0" : Detail["Material"].ToString(), Detail["PROCESS"].ToString()==""?"0": Detail["PROCESS"].ToString(), Detail["SurfaceTreatment"].ToString() == "" ? "0" : Detail["SurfaceTreatment"].ToString(), Detail["Other"].ToString() == "" ? "0" : Detail["Other"].ToString());
|
|
}
|
|
}
|
|
|
|
try
|
|
{
|
|
if (SqlHelper.CmdExecuteNonQueryLi(sql) > 0)
|
|
{
|
|
|
|
}
|
|
else
|
|
{
|
|
msg = "发布报价失败!";
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
msg = ex.Message;
|
|
}
|
|
|
|
return msg;
|
|
}
|
|
|
|
public DataTable SecondGetTxtInfo(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 e.VenCode in (SELECT VenCode FROM ICSVendor where VenName ='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserName + "')";
|
|
}
|
|
sql = string.Format(sql, RFQCODE, QUOTATIONCODE);
|
|
return Repository().FindTableBySql(sql.ToString());
|
|
}
|
|
public DataTable GetVenDorFileTB(string QUOTATIONCODE)
|
|
{
|
|
string Vendor = NFine.Code.OperatorProvider.Provider.GetCurrent().VenCode;
|
|
DataTable dt = new DataTable();
|
|
string sql = @"SELECT GYSFile FROM ICSSORQUOTATION WHERE QUOTATIONCODE='{0}' and VENDORCODE='{1}'";
|
|
sql = string.Format(sql, QUOTATIONCODE, Vendor);
|
|
dt = SqlHelper.GetDataTableBySql(sql);
|
|
return dt;
|
|
}
|
|
public DataTable GetSORRVenDorFile(string QUOTATIONCODE)
|
|
{
|
|
string Vendor = NFine.Code.OperatorProvider.Provider.GetCurrent().VenCode;
|
|
DataTable dt = new DataTable();
|
|
string sql = @"SELECT Filename FROM ICSSORQUOTATION a
|
|
LEFT JOIN ICSSORRFQ b ON a.RFQCODE=b.RFQCODE WHERE
|
|
QUOTATIONCODE='{0}' and VENDORCODE='{1}'";
|
|
sql = string.Format(sql, QUOTATIONCODE, Vendor);
|
|
dt = SqlHelper.GetDataTableBySql(sql);
|
|
return dt;
|
|
}
|
|
|
|
public DataTable GetVenDorFileSSOR(string rfqno)
|
|
{
|
|
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, rfqno);
|
|
dt = SqlHelper.GetDataTableBySql(sql);
|
|
return dt;
|
|
}
|
|
/// <summary>
|
|
/// 获取供应商档案
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
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;
|
|
}
|
|
|
|
public DataTable GetPOListExport(string RFQCODE, string WorkPoint)
|
|
{
|
|
//string sqlU9 = "SELECT DBIpAddress,DBName FROM dbo.Sys_DataBase WHERE DBSourceName='ERP'";
|
|
//DataTable dtU9 = SqlHelper.GetDataTableBySql(sqlU9);
|
|
//string U9IP = dtU9.Rows[0]["DBIpAddress"].ToString();
|
|
//string DBName = dtU9.Rows[0]["DBName"].ToString();
|
|
string VenCode = GetVendorCode(WorkPoint);
|
|
List<DbParameter> parameter = new List<DbParameter>();
|
|
string sql = @"select b.ID as ID,
|
|
b.ITEMCODE as 物料编码,
|
|
b.ITEMNAME as 物料名称,
|
|
d.InvStd as 规格型号,
|
|
b.UNIT AS 单位,
|
|
b.REQUESTQUANTITY AS 预计需求数量,
|
|
'' as 报价,
|
|
''AS 货期,
|
|
Material as 材料,
|
|
PROCESS as 加工,
|
|
SurfaceTreatment as 表面处理,
|
|
Other as 其他
|
|
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
|
|
LEFT JOIN ICSSORQUOTATION g on a.RFQCODE=g.RFQCODE and a.workpoint=g.WorkPoint and e.VenCode=g.VENDORCODE
|
|
LEFT JOIN ICSSORQUODETAILNORMAL h on g.QUOTATIONCODE=h.QUOTATIONCODE and g.WorkPoint=h.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='" + VenCode + "'";
|
|
}
|
|
sql = string.Format(sql, RFQCODE);
|
|
DataTable dt = SqlHelper.GetDataTableBySql(sql);
|
|
return dt;
|
|
}
|
|
public DataTable GetICSImport(string savePath)
|
|
{
|
|
return FileToExcel.ExcelToTable(savePath);
|
|
}
|
|
|
|
}
|
|
}
|