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.
246 lines
14 KiB
246 lines
14 KiB
using NFine.Code;
|
|
using NFine.Data.Extensions;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Data.Common;
|
|
using System.Data;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using NFine.Domain._03_Entity.SRM;
|
|
using NFine.Repository;
|
|
using System.Security.Cryptography;
|
|
|
|
namespace NFine.Application.SRM
|
|
{
|
|
public class RCVListApp : RepositoryFactory<ICSVendor>
|
|
{
|
|
|
|
public DataTable GetRcvLineSubGridJson(string queryJson, ref Pagination jqgridparam)
|
|
{
|
|
var queryParam = queryJson.ToJObject();
|
|
List<DbParameter> parameter = new List<DbParameter>();
|
|
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 sql = @"SELECT RCV.DOCNO cCode ,--到货单号
|
|
A41.name cVenName,--供应商编码
|
|
po.DocNO cPOID ,--采购单ID
|
|
POL.DOCLINENO ivouchrowno,--采购行号
|
|
A7.Name PurOper, --业务员
|
|
rcvl.ArrivedTime,--入库时间
|
|
rcvl.RcvQtyTU, --入库数量
|
|
Item.Code,
|
|
Item.Name,
|
|
D.Name AS InvUnit,
|
|
rcvl.ConfirmedQtyTU,
|
|
rcvl.FinallyPriceTC, --最终价
|
|
rcvl.ArriveQtyPU, --实到数量
|
|
rcvl.DescFlexSegments_PubDescSeg14,--重量单位
|
|
rcvl.DescFlexSegments_PubDescSeg13,--实称总重
|
|
rcvl.DescFlexSegments_PubDescSeg12,--实称单重
|
|
rcvl.TotalNetMnyTC iOriMoney,--立账未税额
|
|
rcvl.TotalTaxTC iOriTaxPrice,--立账税额
|
|
rcvl.TotalMnyTC ioriSum, --立账价税合计
|
|
pol.TotalRtnDeductQtyTU,
|
|
rcvl.ArriveQtyPU-pol.TotalRtnDeductQtyTU as JSQty,
|
|
CASE WHEN rcvl.ConfirmedQtyTU='0' AND ISNULL(rcsa.DocNO,'')='' THEN '未对账' WHEN rcvl.ConfirmedQtyTU='0' AND ISNULL(rcsa.DocNO,'')<>'' THEN '对账中'WHEN rcvl.RcvQtyTU=rcvl.ConfirmedQtyTU AND rcvl.ConfirmedQtyTU<>'0' THEN '对账完成'END ststuas
|
|
,case when srmpo.signBackstate=1 or ISNULL(srmpo.signBackstate,'')='' then '未回签' WHEN srmpo.signBackstate=2 then '待确认'WHEN srmpo.signBackstate=3 then '已确认'WHEN srmpo.signBackstate=4 then '退回' END as signBackstate
|
|
FROM [{0}].{1}.dbo.PM_Receivement rcv
|
|
LEFT JOIN [{0}].{1}.dbo.PM_RcvLine rcvl WITH(NOLOCK) ON rcv.id=rcvl.Receivement AND rcvl.SplitFlag IN (0,1)
|
|
LEFT JOIN [{0}].{1}.dbo.PM_POLine pol WITH(NOLOCK) ON rcvl.SrcDoc_SrcDocLine_EntityID = pol.id
|
|
LEFT JOIN [{0}].{1}.dbo.PM_PurchaseOrder po WITH(NOLOCK) ON po.ID=pol.PurchaseOrder
|
|
LEFT JOIN [{0}].{1}.dbo.CBO_ItemMaster ii WITH(NOLOCK) ON ii.id=pol.ItemInfo_ItemID
|
|
LEFT JOIN [{0}].{1}.dbo.CBO_Supplier sup WITH(NOLOCK) ON sup .ID=po.SUPPLIER_SUPPLIER
|
|
LEFT JOIN [{0}].{1}.dbo.CBO_Supplier_Trl A41 ON ( sup.ID = A41.ID AND A41.SysMLFlag = 'zh-CN')
|
|
left join [{0}].{1}.dbo.[CBO_ItemMaster] as Item on pol.[ItemInfo_ItemID] = Item.[ID]
|
|
LEFT JOIN [{0}].{1}.dbo.[Base_UOM] AS C ON ( Item.[CostUOM] = C.[ID] )
|
|
LEFT JOIN [{0}].{1}.dbo.[Base_UOM_Trl] AS D ON ( C.[ID] = D.[ID] AND D.SysMLFlag='zh-CN')
|
|
left join [{0}].{1}.dbo.[CBO_Operators] as A6 on (po.PurOper = A6.[ID])
|
|
left join [{0}].{1}.dbo.[CBO_Operators_Trl] as A7 on (A7.SysMlFlag = 'zh-CN') and (A6.[ID] = A7.[ID])
|
|
LEFT JOIN [dbo].[ICSCANewDetail] rcsa ON rcsa.EATTRIBUTE1=rcvl.id AND rcsa.EATTRIBUTE2=RCV.DOCNO
|
|
LEFT JOIN ICSPO_POmain srmpo ON srmpo.pocode=po.DocNO AND srmpo.porow=pol.DOCLINENO
|
|
WHERE 1=1
|
|
|
|
";
|
|
sql = string.Format(sql, U9IP, DBName);
|
|
if (!string.IsNullOrWhiteSpace(queryJson))
|
|
{
|
|
if (!string.IsNullOrWhiteSpace(queryParam["cPOID"].ToString()))
|
|
{
|
|
sql += " and po.DocNO like '%" + queryParam["cPOID"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["cCode"].ToString()))
|
|
{
|
|
sql += " and RCV.DOCNO like '%" + queryParam["cCode"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["PurOper"].ToString()))
|
|
{
|
|
sql += " and po.PurOper like '%" + queryParam["PurOper"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["Code"].ToString()))
|
|
{
|
|
sql += " and Item.Code like '%" + queryParam["Code"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["BeginDate"].ToString()))
|
|
{
|
|
sql += " and rcvl.ArrivedTime >= '" + queryParam["BeginDate"].ToString() + "' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["EndDate"].ToString()))
|
|
{
|
|
sql += " and rcvl.ArrivedTime <= '" + queryParam["EndDate"].ToString() + "' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["IsReceive"].ToString()))
|
|
{
|
|
string IsReceive = queryParam["IsReceive"].ToString();
|
|
if(IsReceive == "0")
|
|
{
|
|
|
|
}
|
|
else if (IsReceive == "1")
|
|
{
|
|
sql += " and CASE WHEN rcvl.ConfirmedQtyTU='0' AND ISNULL(rcsa.DocNO,'')='' THEN '未对账' WHEN rcvl.ConfirmedQtyTU='0' AND ISNULL(rcsa.DocNO,'')<>'' THEN '对账中'WHEN rcvl.RcvQtyTU=rcvl.ConfirmedQtyTU AND rcvl.ConfirmedQtyTU<>'0' THEN '对账完成'END ='未对账' ";
|
|
}
|
|
else if (IsReceive == "2")
|
|
{
|
|
sql += " and CASE WHEN rcvl.ConfirmedQtyTU='0' AND ISNULL(rcsa.DocNO,'')='' THEN '未对账' WHEN rcvl.ConfirmedQtyTU='0' AND ISNULL(rcsa.DocNO,'')<>'' THEN '对账中'WHEN rcvl.RcvQtyTU=rcvl.ConfirmedQtyTU AND rcvl.ConfirmedQtyTU<>'0' THEN '对账完成'END ='对账中' ";
|
|
}
|
|
else if (IsReceive == "3")
|
|
{
|
|
sql += " and CASE WHEN rcvl.ConfirmedQtyTU='0' AND ISNULL(rcsa.DocNO,'')='' THEN '未对账' WHEN rcvl.ConfirmedQtyTU='0' AND ISNULL(rcsa.DocNO,'')<>'' THEN '对账中'WHEN rcvl.RcvQtyTU=rcvl.ConfirmedQtyTU AND rcvl.ConfirmedQtyTU<>'0' THEN '对账完成'END ='对账完成' ";
|
|
}
|
|
else
|
|
{
|
|
sql += " and CASE WHEN rcvl.ConfirmedQtyTU='0' AND ISNULL(rcsa.DocNO,'')='' THEN '未对账' WHEN rcvl.ConfirmedQtyTU='0' AND ISNULL(rcsa.DocNO,'')<>'' THEN '对账中'WHEN rcvl.RcvQtyTU=rcvl.ConfirmedQtyTU AND rcvl.ConfirmedQtyTU<>'0' THEN '对账完成'END in('未对账','对账中') ";
|
|
}
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["VenName"].ToString()))
|
|
{
|
|
sql += " and A41.name like '%" + queryParam["VenName"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["ReleaseState"].ToString()))
|
|
{
|
|
string ReleaseState = queryParam["ReleaseState"].ToString();
|
|
if (ReleaseState == "1")
|
|
sql += " and srmpo.SignBackState = '1'";
|
|
else if (ReleaseState == "2")
|
|
sql += " and srmpo.SignBackState = '2'";
|
|
else if (ReleaseState == "3")
|
|
sql += " and srmpo.SignBackState = '3'";
|
|
else if (ReleaseState == "0")
|
|
sql += " and ISNULL(srmpo.signBackstate,'0') = '0'";
|
|
else if (ReleaseState == "4")
|
|
{
|
|
sql += " and ISNULL(srmpo.signBackstate,'') = '4'";
|
|
}
|
|
}
|
|
}
|
|
if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
|
|
{
|
|
sql += " and sup.code='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
|
|
}
|
|
return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
|
|
|
|
|
|
}
|
|
|
|
public DataTable ExportRcvLineAll(string cPOID, string cCode, string PurOper, string Code, string BeginDate, string EndDate, string IsReceive, string VenName)
|
|
{
|
|
string ParentId = SqlHelper.Organize_F_ParentId(NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode);
|
|
//var queryParam = queryJson.ToJObject();
|
|
List<DbParameter> parameter = new List<DbParameter>();
|
|
|
|
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 sql = @"SELECT RCV.DOCNO 入库单号 ,--到货单号
|
|
case when srmpo.signBackstate=1 or ISNULL(srmpo.signBackstate,'')='' then '未回签' WHEN srmpo.signBackstate=2 then '待确认'WHEN srmpo.signBackstate=3 then '已确认'WHEN srmpo.signBackstate=4 then '退回' END as 回签状态,
|
|
A41.name 供应商名称,--供应商编码
|
|
po.DocNO 采购订单号 ,--采购单ID
|
|
POL.DOCLINENO 采购订单行号,--采购行号
|
|
A7.Name 业务员, --业务员
|
|
rcvl.ArrivedTime 入库时间,--入库时间
|
|
rcvl.RcvQtyTU 入库数量, --入库数量
|
|
Item.Code 物料代码 ,
|
|
Item.Name 物料名称,
|
|
D.Name AS 规格型号,
|
|
rcvl.ConfirmedQtyTU 已对账数量,
|
|
rcvl.FinallyPriceTC 最终价, --最终价
|
|
rcvl.ArriveQtyPU 实到数量, --实到数量
|
|
rcvl.DescFlexSegments_PubDescSeg14 重量单位,--重量单位
|
|
rcvl.DescFlexSegments_PubDescSeg13 实称总重,--实称总重
|
|
rcvl.DescFlexSegments_PubDescSeg12 实称单重,--实称单重
|
|
rcvl.TotalMnyTC 实到价税合计, --立账价税合计
|
|
rcvl.TotalNetMnyTC 实到未税额,--立账未税额
|
|
rcvl.TotalTaxTC 实到税额,--立账税额
|
|
|
|
CASE WHEN rcvl.ConfirmedQtyTU='0' AND ISNULL(rcsa.DocNO,'')='' THEN '未对账' WHEN rcvl.ConfirmedQtyTU='0' AND ISNULL(rcsa.DocNO,'')<>'' THEN '对账中'WHEN rcvl.RcvQtyTU=rcvl.ConfirmedQtyTU AND rcvl.ConfirmedQtyTU<>'0' THEN '对账完成'END 对账状态
|
|
FROM [{0}].{1}.dbo.PM_Receivement rcv
|
|
LEFT JOIN [{0}].{1}.dbo.PM_RcvLine rcvl WITH(NOLOCK) ON rcv.id=rcvl.Receivement AND rcvl.SplitFlag IN (0,1)
|
|
LEFT JOIN [{0}].{1}.dbo.PM_POLine pol WITH(NOLOCK) ON rcvl.SrcDoc_SrcDocLine_EntityID = pol.id
|
|
LEFT JOIN [{0}].{1}.dbo.PM_PurchaseOrder po WITH(NOLOCK) ON po.ID=pol.PurchaseOrder
|
|
LEFT JOIN [{0}].{1}.dbo.CBO_ItemMaster ii WITH(NOLOCK) ON ii.id=pol.ItemInfo_ItemID
|
|
LEFT JOIN [{0}].{1}.dbo.CBO_Supplier sup WITH(NOLOCK) ON sup .ID=po.SUPPLIER_SUPPLIER
|
|
LEFT JOIN [{0}].{1}.dbo.CBO_Supplier_Trl A41 ON ( sup.ID = A41.ID AND A41.SysMLFlag = 'zh-CN')
|
|
left join [{0}].{1}.dbo.[CBO_ItemMaster] as Item on pol.[ItemInfo_ItemID] = Item.[ID]
|
|
LEFT JOIN [{0}].{1}.dbo.[Base_UOM] AS C ON ( Item.[CostUOM] = C.[ID] )
|
|
LEFT JOIN [{0}].{1}.dbo.[Base_UOM_Trl] AS D ON ( C.[ID] = D.[ID] AND D.SysMLFlag='zh-CN')
|
|
left join [{0}].{1}.dbo.[CBO_Operators] as A6 on (po.PurOper = A6.[ID])
|
|
left join [{0}].{1}.dbo.[CBO_Operators_Trl] as A7 on (A7.SysMlFlag = 'zh-CN') and (A6.[ID] = A7.[ID])
|
|
LEFT JOIN [dbo].[ICSCANewDetail] rcsa ON rcsa.EATTRIBUTE1=rcvl.id AND rcsa.EATTRIBUTE2=RCV.DOCNO
|
|
LEFT JOIN ICSPO_POmain srmpo ON srmpo.pocode=po.DocNO AND srmpo.porow=pol.DOCLINENO
|
|
WHERE 1=1";
|
|
sql = string.Format(sql, U9IP, DBName);
|
|
if (!string.IsNullOrWhiteSpace(cPOID))
|
|
sql += " and po.DocNO like '%" + cPOID + "%'";
|
|
if (!string.IsNullOrWhiteSpace(cCode))
|
|
sql += " and RCV.DOCNO like '%" + cCode + "%'";
|
|
if (!string.IsNullOrWhiteSpace(PurOper))
|
|
sql += " and po.PurOper like '%" + PurOper + "%'";
|
|
if (!string.IsNullOrWhiteSpace(Code))
|
|
sql += " and Item.Code like '%" + Code + "%'";
|
|
if (!string.IsNullOrWhiteSpace(BeginDate))
|
|
sql += " and rcvl.ArrivedTime >= '" + BeginDate + "'";
|
|
if (!string.IsNullOrWhiteSpace(BeginDate))
|
|
sql += " and rcvl.ArrivedTime <= '" + EndDate + "'";
|
|
if (!string.IsNullOrWhiteSpace(IsReceive))
|
|
{
|
|
if (IsReceive == "0")
|
|
{
|
|
|
|
}
|
|
else if (IsReceive == "1")
|
|
{
|
|
sql += " and CASE WHEN rcvl.ConfirmedQtyTU='0' AND ISNULL(rcsa.DocNO,'')='' THEN '未对账' WHEN rcvl.ConfirmedQtyTU='0' AND ISNULL(rcsa.DocNO,'')<>'' THEN '对账中'WHEN rcvl.RcvQtyTU=rcvl.ConfirmedQtyTU AND rcvl.ConfirmedQtyTU<>'0' THEN '对账完成'END ='未对账' ";
|
|
}
|
|
else if (IsReceive == "2")
|
|
{
|
|
sql += " and CASE WHEN rcvl.ConfirmedQtyTU='0' AND ISNULL(rcsa.DocNO,'')='' THEN '未对账' WHEN rcvl.ConfirmedQtyTU='0' AND ISNULL(rcsa.DocNO,'')<>'' THEN '对账中'WHEN rcvl.RcvQtyTU=rcvl.ConfirmedQtyTU AND rcvl.ConfirmedQtyTU<>'0' THEN '对账完成'END ='对账中' ";
|
|
}
|
|
else if (IsReceive == "3")
|
|
{
|
|
sql += " and CASE WHEN rcvl.ConfirmedQtyTU='0' AND ISNULL(rcsa.DocNO,'')='' THEN '未对账' WHEN rcvl.ConfirmedQtyTU='0' AND ISNULL(rcsa.DocNO,'')<>'' THEN '对账中'WHEN rcvl.RcvQtyTU=rcvl.ConfirmedQtyTU AND rcvl.ConfirmedQtyTU<>'0' THEN '对账完成'END ='对账完成' ";
|
|
}
|
|
else
|
|
{
|
|
sql += " and CASE WHEN rcvl.ConfirmedQtyTU='0' AND ISNULL(rcsa.DocNO,'')='' THEN '未对账' WHEN rcvl.ConfirmedQtyTU='0' AND ISNULL(rcsa.DocNO,'')<>'' THEN '对账中'WHEN rcvl.RcvQtyTU=rcvl.ConfirmedQtyTU AND rcvl.ConfirmedQtyTU<>'0' THEN '对账完成'END in('未对账','对账中') ";
|
|
}
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(VenName))
|
|
sql += " and A41.name like '%" + VenName + "%'";
|
|
if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
|
|
{
|
|
sql += " and sup.code='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
|
|
}
|
|
|
|
DataTable dt = SqlHelper.GetDataTableBySql(sql);
|
|
return dt;
|
|
}
|
|
|
|
|
|
|
|
}
|
|
}
|