纽威
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.
 
 
 
 
 

297 lines
15 KiB

using NFine.Code;
using NFine.Data.Extensions;
using NFine.Domain._03_Entity.SRM;
using NFine.Repository;
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.Common;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace NFine.Application.SRM
{
public class PriceArticleApp : RepositoryFactory<ICSPO_PoMain>
{
/// <summary>
///获取组织信息
/// </summary>
/// <param name="queryJson"></param>
/// <param name="jqgridparam"></param>
/// <returns></returns>
public DataTable GetGridPurchug(string queryJson, ref Pagination jqgridparam)
{
DataTable dt = new DataTable();
var queryParam = queryJson.ToJObject();
List<DbParameter> parameter = new List<DbParameter>();
string sql = @"select PURCHUGCODE,PURCHUGNAME,PURCHUGCONECT from ICSPURCHUG";
return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
}
/// <summary>
///获取比价物资列表
/// </summary>
/// <param name="queryJson"></param>
/// <param name="jqgridparam"></param>
/// <returns></returns>
public DataTable GetCompareCodeMaterial(string queryJson, ref Pagination jqgridparam)
{
DataTable dt = new DataTable();
var queryParam = queryJson.ToJObject();
List<DbParameter> parameter = new List<DbParameter>();
string sql = @" select PURCHGCODE,ITEMTYPE,ITEMCODE,ITEMNAME,Status from ICSSCOMPARECODEInventory where status='0'";
return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
}
/// <summary>
///获取物资列表
/// </summary>
/// <param name="queryJson"></param>
/// <param name="jqgridparam"></param>
/// <returns></returns>
public DataTable GetCompareCodeMaterials(string queryJson, ref Pagination jqgridparam)
{
DataTable dt = new DataTable();
var queryParam = queryJson.ToJObject();
List<DbParameter> parameter = new List<DbParameter>();
string sql = @" SELECT INVCode,INVName,INvTYpe,case
when b.status=1 then '未设置'
WHEN b.status is null THEN '未设置'
else '已设置'
end as status
from [dbo].[ICSINVENTORY] a
LEFT join ICSSCOMPARECODEInventory b on a.INVCODE=b.ITEMCODE
WHERE 1=1
";
if (!string.IsNullOrWhiteSpace(queryJson))
{
if (!string.IsNullOrWhiteSpace(queryParam["INVCode"].ToString()))
{
sql += " and INVCode like '%" + queryParam["INVCode"].ToString() + "%' ";
}
if (!string.IsNullOrWhiteSpace(queryParam["INVName"].ToString()))
{
sql += " and INVName like '%" + queryParam["INVName"].ToString() + "%' ";
}
if (!string.IsNullOrWhiteSpace(queryParam["INVType"].ToString()))
{
sql += " and INvTYpe like '%" + queryParam["INVType"].ToString() + "%' ";
}
}
return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
}
///询报价报表
/// </summary>
/// <param name="queryJson"></param>
/// <param name="jqgridparam"></param>
/// <returns></returns>
public DataTable GetCompareCodeMateriaList(string queryJson, ref Pagination jqgridparam)
{
DataTable dt = new DataTable();
var queryParam = queryJson.ToJObject();
List<DbParameter> parameter = new List<DbParameter>();
string sql = @"
select d.CREATETIME, b.ITEMCODE,b.ITEMNAME,f.invSTD,a.PURCHUGCODE,s.PURCHUGName,f.INVTYPE,c.QUOTATIONCODE,
case when c.STATUS= 'NEW'then '新增'
WHEN c.STATUS='Invalid' THEN '新增'
WHEN c.STATUS='Publish' THEN '发布'
WHEN c.STATUS='Close' THEN '关闭'
end as status ,j.cVenName,e.VENDORTYPE,c.VENDORCODE,e.CURRENCY,h.TAXRATECODE,case when d.ppStatus=0 then '送签中'
WHEN d.ppStatus=1 THEN '新增'
end as statuss
from dbo.ICSSORRFQ a
left join dbo.ICSSORRFQ2NORMALITEM b on a.RFQCODE=b.RFQCODE
left join ICSSORQUOTATION c on b.RFQCODE=c.RFQCODE and a.WorkPoint=c.WorkPoint
left join ICSSORQUODETAILNORMAL d on c.QUOTATIONCODE=d.QUOTATIONCODE
Left JOIN ICSSORRFQ2VENDOR e on c.VENDORCODE=e.VENDORCODE
LEFT JOIN ICSVENDORTAXRATE h on c.VENDORCODE=h.VENDORCODE
left join [dbo].[ICSINVENTORY] f on d.ITEMCODE=f.INVCODE
left join [dbo].[ICSVendor] j on c.VENDORCODE=j.cvenCode
left join dbo.ICSPURCHUG s on a.PURCHUGCODE=s.PURCHUGCODE where 1=1 and b.ITEMCODE<>''
";
if (!string.IsNullOrWhiteSpace(queryJson))
{
if (!string.IsNullOrWhiteSpace(queryParam["PURCHUG"].ToString()))
{
sql += " and s.PURCHUGName like '%" + queryParam["PURCHUG"].ToString() + "%' ";
}
if (!string.IsNullOrWhiteSpace(queryParam["PURCHUGCODE"].ToString()))
{
sql += " and a.PURCHUGCODE like '%" + queryParam["PURCHUGCODE"].ToString() + "%' ";
}
if (!string.IsNullOrWhiteSpace(queryParam["InvType"].ToString()))
{
sql += " and f.INVTYPE like '%" + queryParam["InvType"].ToString() + "%' ";
}
if (!string.IsNullOrWhiteSpace(queryParam["ITEMCODE"].ToString()))
{
sql += " and b.ITEMCODE like '%" + queryParam["ITEMCODE"].ToString() + "%' ";
}
if (!string.IsNullOrWhiteSpace(queryParam["ITEMName"].ToString()))
{
sql += " and b.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 c.VENDORCODE like '%" + queryParam["VENCode"].ToString() + "%' ";
}
if (!string.IsNullOrWhiteSpace(queryParam["VENName"].ToString()))
{
sql += " and j.cVenName like '%" + queryParam["VENName"].ToString() + "%' ";
}
if (!string.IsNullOrWhiteSpace(queryParam["BeginDate"].ToString()))
{
sql += " and d.CREATETIME >'" + queryParam["BeginDate"].ToString() + "' ";
}
if (!string.IsNullOrWhiteSpace(queryParam["EndDate"].ToString()))
{
sql += " and d.CREATETIME <'" + queryParam["BeginDate"].ToString() + "'";
}
//sql += " or b.ITEMCODE is not null";
}
return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
}
/// <summary>
/// 创建比价物资
/// </summary>
/// <param name="JsonData"></param>
/// <param name="STNO"></param>
/// <returns></returns>
public string CheckSTNO_ItemCode(string JsonData, string PURCHUG, string PURCHUGName)
{
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 msg = "";
string sql = string.Empty;
sql = @"INSERT INTO dbo.ICSSCOMPARECODEInventory
( CREATEDATE ,CREATETIME ,CREATEUSER ,
ITEMCODE ,ITEMNAME ,ITEMType,
PURCHGCODE ,PURCHUGNAME ,Status
)
SELECT GETDATE(),GETDATE(),'" + MUSERNAME + @"',
a.INVCODE,a.INVNAME,a.InvType,
'" + PURCHUG + @"','" + PURCHUGName + @"',0
FROM dbo.ICSINVENTORY a
WHERE a.INVCode IN (" + JsonData.TrimEnd(',') + ")";
try
{
SqlHelper.ExecuteNonQuery(sql);
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
return msg;
}
/// <summary>
/// 取消比价物资
/// </summary>
/// <param name="JsonData"></param>
/// <param name="STNO"></param>
/// <returns></returns>
public string UpdateItemCode(string JsonData, string PURCHUG, string PURCHUGName)
{
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 msg = "";
string sql = string.Empty;
sql = @"Update dbo.ICSSCOMPARECODEInventory set Status='1' where ITEMCODE IN (" + JsonData.TrimEnd(',') + ")";
try
{
SqlHelper.ExecuteNonQuery(sql);
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
return msg;
}
public DataTable GetPOListExport(string keyVaule)
{
string sql = @" select d.CREATETIME, b.ITEMCODE,b.ITEMNAME,f.invSTD,a.PURCHUGCODE,s.PURCHUGName,f.INVTYPE,c.QUOTATIONCODE,
case when c.STATUS= 'NEW'then '新增'
WHEN c.STATUS='Invalid' THEN '新增'
WHEN c.STATUS='Publish' THEN '发布'
WHEN c.STATUS='Close' THEN '关闭'
end as status ,j.cVenName,e.VENDORTYPE,c.VENDORCODE,e.CURRENCY,h.TAXRATECODE,case when d.ppStatus=0 then '送签中'
WHEN d.ppStatus=1 THEN '新增'
end as statuss
from dbo.ICSSORRFQ a
left join dbo.ICSSORRFQ2NORMALITEM b on a.RFQCODE=b.RFQCODE
left join ICSSORQUOTATION c on b.RFQCODE=c.RFQCODE and a.WorkPoint=c.WorkPoint
left join ICSSORQUODETAILNORMAL d on c.QUOTATIONCODE=d.QUOTATIONCODE
Left JOIN ICSSORRFQ2VENDOR e on c.VENDORCODE=e.VENDORCODE
LEFT JOIN ICSVENDORTAXRATE h on c.VENDORCODE=h.VENDORCODE
left join [dbo].[ICSINVENTORY] f on d.ITEMCODE=f.INVCODE
left join [dbo].[ICSVendor] j on c.VENDORCODE=j.cvenCode
left join dbo.ICSPURCHUG s on a.PURCHUGCODE=s.PURCHUGCODE where 1=1
";
sql += " and c.QUOTATIONCODE in (" + keyVaule + ")";
//sql += " and a.WorkPoint in (" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',') + ")";
DataTable dt = SqlHelper.GetDataTableBySql(sql);
return dt;
}
public DataTable GetPOListExport( string PURCHUG, string InvType, string PURCHUGCODE, string ITEMCODE, string ITEMName, string INVSTD, string VENCode, string VENName, string CREATETIME)
{
List<DbParameter> parameter = new List<DbParameter>();
string sql = @"select d.CREATETIME, b.ITEMCODE,b.ITEMNAME,f.invSTD,a.PURCHUGCODE,s.PURCHUGName,f.INVTYPE,c.QUOTATIONCODE,
case when c.STATUS= 'NEW'then '新增'
WHEN c.STATUS='Invalid' THEN '新增'
WHEN c.STATUS='Publish' THEN '发布'
WHEN c.STATUS='Close' THEN '关闭'
end as status ,j.cVenName,e.VENDORTYPE,c.VENDORCODE,e.CURRENCY,h.TAXRATECODE,case when d.ppStatus=0 then '送签中'
WHEN d.ppStatus=1 THEN '新增'
end as statuss
from dbo.ICSSORRFQ a
left join dbo.ICSSORRFQ2NORMALITEM b on a.RFQCODE=b.RFQCODE
left join ICSSORQUOTATION c on b.RFQCODE=c.RFQCODE and a.WorkPoint=c.WorkPoint
left join ICSSORQUODETAILNORMAL d on c.QUOTATIONCODE=d.QUOTATIONCODE
Left JOIN ICSSORRFQ2VENDOR e on c.VENDORCODE=e.VENDORCODE
LEFT JOIN ICSVENDORTAXRATE h on c.VENDORCODE=h.VENDORCODE
left join [dbo].[ICSINVENTORY] f on d.ITEMCODE=f.INVCODE
left join [dbo].[ICSVendor] j on c.VENDORCODE=j.cvenCode
left join dbo.ICSPURCHUG s on a.PURCHUGCODE=s.PURCHUGCODE where 1=1";
if (!string.IsNullOrWhiteSpace(PURCHUG))
sql += " and s.PURCHUGName like '%" + PURCHUG + "%'";
if (!string.IsNullOrWhiteSpace(InvType))
sql += " and f.INVTYPE like '%" + InvType + "%'";
if (!string.IsNullOrWhiteSpace(CREATETIME))
sql += " and PODate >= '" + CREATETIME + "'";
if (!string.IsNullOrWhiteSpace(CREATETIME))
sql += " and PODate <= '" + CREATETIME + "'";
if (!string.IsNullOrWhiteSpace(PURCHUGCODE))
sql += " and a.PURCHUGCODE like '%" + PURCHUGCODE + "%'";
if (!string.IsNullOrWhiteSpace(ITEMCODE))
sql += " and b.ITEMCODE like '%" + ITEMCODE + "%'";
if (!string.IsNullOrWhiteSpace(ITEMName))
sql += " and b.ITEMNAME like '%" + ITEMName + "%'";
if (!string.IsNullOrWhiteSpace(INVSTD))
sql += " and f.invSTD like '%" + INVSTD + "%'";
if (!string.IsNullOrWhiteSpace(VENCode))
sql += " and c.VENDORCODE like '%" + VENCode + "%'";
if (!string.IsNullOrWhiteSpace(VENName))
sql += " and j.cVenName like '%" + VENName + "%'";
//if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
//{
// sql += " and VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
//}
//sql += " and a.WorkPoint in (" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',') + ")";
DataTable dt = SqlHelper.GetDataTableBySql(sql);
return dt;
}
}
}