Browse Source

U9料品及标准收货单同步

master
陆晔 2 years ago
parent
commit
397cf02b1b
  1. 65
      ICSSoft.FromU9ERP/ICSSoft.FromERP/ICSInventory.cs
  2. 77
      ICSSoft.FromU9ERP/ICSSoft.FromERP/ICSPurchaseReceive.cs

65
ICSSoft.FromU9ERP/ICSSoft.FromERP/ICSInventory.cs

@ -50,48 +50,51 @@ namespace ICSSoft.FromERP
erpName = string.Format(erpName, WorkPoint);
#region SQL
string sql = @"select NEWID() AS ID,
cInvCode AS INVCODE,
dbo.GetReplaceStr(cInvName) AS INVNAME,
dbo.GetReplaceStr(cInvStd) AS INVSTD,
c.cComUnitName AS InvUnit,
b.cInvCName as ClassCode,
a.cAssComUnitCode as AmountUnit,
a.cInvCCode AS INVCLASS,
b.cInvCName as ClassName,
ISNULL(c.iChangRate,0) as InvRate,
a.cDefWareHouse as INVMACHINETYPE,
ISNULL(a.iMassDate,'') as EffectiveDays,
a.bInvBatch as fInExcess,
fSupplyMulti as INVCARTONQTY,
ISNULL(CONVERT(NVARCHAR(50),a.dModifyDate,21),'') as MTIME,
'' AS INVDESC,
'' AS INVEXPORTIMPORT,
a.cInvAddCode as INVPARSETYPE,
a.cinvdefine5 as PODetailID
,'{0}' as WorkPoint
string sql = @"select A.ID AS ID,
A.Code AS INVCODE,
dbo.GetReplaceStr(A.Name) AS INVNAME,
dbo.GetReplaceStr(A.SPECS) AS INVSTD,
D.Name AS InvUnit,
G.Code as ClassCode,
H.Name as ClassName,
1 as InvRate,
1 as EffectiveDays,
ISNULL(CONVERT(NVARCHAR(50),A.ModifiedOn,21),'') as MTIME,
K.Code as WorkPoint
INTO #TempINV
FROM {1}.dbo.Inventory a
LEFT JOIN {1}.dbo.InventoryClass b ON a.cInvCCode = b.cInvCCode
LEFT JOIN {1}.dbo.ComputationUnit c ON a.cComUnitCode = c.cComunitCode
WHERE a.dEDate IS NULL AND a.dModifyDate>=@LastTime
ORDER BY cInvCode
from {1}.dbo.[CBO_ItemMaster] AS A
LEFT JOIN {1}.dbo.[CBO_ItemMaster_Trl] AS B ON ( A.[ID] = B.[ID] AND B.SysMLFlag='zh-CN')
LEFT JOIN {1}.dbo.[Base_UOM] AS C ON ( A.[CostUOM] = C.[ID] )
LEFT JOIN {1}.dbo.[Base_UOM_Trl] AS D ON ( C.[ID] = D.[ID] AND D.SysMLFlag='zh-CN')
LEFT JOIN {1}.dbo.[Base_UOM] AS E ON ( A.[InventoryUOM] = E.[ID] )
LEFT JOIN {1}.dbo.[Base_UOM_Trl] AS F ON ( E.[ID] = F.[ID] AND F.SysMLFlag='zh-CN')
LEFT JOIN {1}.dbo.[CBO_Category] AS G ON ( A.[MainItemCategory] = G.[ID] )
LEFT JOIN {1}.dbo.[CBO_Category_Trl] AS H ON ( G.[ID] = H.[ID] AND H.SysMLFlag='zh-CN')
LEFT JOIN {1}.dbo.[Base_Organization] AS I ON ( A.[Org] = I.[ID] )
LEFT JOIN {1}.dbo.[Base_Organization_Trl] AS J ON ( I.[ID] = J.[ID] AND J.SysMLFlag='zh-CN')
LEFT JOIN {1}.dbo.Base_Organization K ON A.Org=K.ID
LEFT JOIN {1}.dbo.CBO_InventoryInfo L on A.id=L.ItemMaster
LEFT JOIN {1}.dbo.CBO_Wh M on L.warehouse=M.id and A.org=M.org
LEFT JOIN {1}.dbo.Base_DefineValue N ON N.Code=A.DescFlexField_PrivateDescSeg5 AND N.ValueSetDef='1002204070000769'
LEFT JOIN {1}.dbo.Base_DefineValue_Trl O ON O.ID=N.ID
LEFT JOIN {1}.dbo.CBO_Category_Trl P ON P.ID=A.MainItemCategory
LEFT JOIN {1}.dbo.CBO_MfgInfo Q ON Q.ItemMaster=A.ID
where A.ModifiedOn>=@LastTime
ORDER BY A.Code
IF NOT EXISTS(SELECT * FROM #TempINV)
RETURN";
sql = ICSHelper.Time(Namespace, Class, WorkPoint, sql, "#TempINV");
sql += @"--删除数据
-- DELETE ICSINVENTORY WHERE InvCode NOT IN (SELECT cInvCode FROM {1}.dbo.[Inventory])
-- DELETE ICSINVENTORY WHERE InvCode NOT IN (SELECT cInvCode FROM {1}.dbo.[CBO_ItemMaster])
SELECT a.INVCODE INTO #tableICSINVENTORY
FROM ICSINVENTORY a With(NoLock)
LEFT JOIN {1}.dbo.[Inventory] b With(NoLock) ON a.INVCODE=b.cInvCode
WHERE a.WorkPoint='{0}' and b.cInvCode IS NULL
LEFT JOIN {1}.dbo.[CBO_ItemMaster] b With(NoLock) ON a.ID=b.ID
WHERE a.WorkPoint='{0}' and b.ID IS NULL
DELETE ICSINVENTORY
WHERE WorkPoint='{0}' and INVCODE IN ( SELECT INVCODE from #tableICSINVENTORY)
";
WHERE WorkPoint='{0}' and INVCODE IN ( SELECT INVCODE from #tableICSINVENTORY) ";
Dictionary<string, string> values = new Dictionary<string, string>();
values.Add("INVCODE", "a.INVCODE");//物料编号
values.Add("InvName", "a.INVNAME");//物料名称

77
ICSSoft.FromU9ERP/ICSSoft.FromERP/ICSPurchaseReceive.cs

@ -48,44 +48,49 @@ namespace ICSSoft.FromERP
string Class = this.GetType().Name + WorkPoint;
erpName = string.Format(erpName, WorkPoint);
#region SQL
string sql = @" SELECT CAST(a.Autoid AS NVARCHAR(50)) AS ERPAutoid,
b.cCode AS RCVCode,
CAST(a.irowno AS NVARCHAR(50)) AS Sequence,
b.cSource as SourceCode,
CAST(f.irowno AS NVARCHAR(50)) as SourceSequence,
a.cInvCode AS InvCode,
a.iQuantity AS Quantity,
isnull(a.iNum,0) as Amount,
string sql = @" SELECT CAST(A2.ID AS NVARCHAR(50)) AS ERPAutoid,
A1.Code AS RCVCode,
CAST(A2.DocLineNo AS NVARCHAR(50)) AS Sequence,
A2.SrcDoc_SrcDocNo as SourceCode,
CAST(A2.SrcDoc_SrcDocLineNo AS NVARCHAR(50)) as SourceSequence,
A2.ItemInfo_ItemCode AS InvCode,
Case When A2.SplitFlag=2 Then (SELECT ArriveQtyCU FROM {0}.dbo.PM_RcvLine
WHERE Receivement=A1.ID AND DocLineNo=A2.DocLineNo AND SplitFlag=1)
ELSE A2.ArriveQtyCU END AS Quantity,
0 as Amount,
0 as RCVQuantity,
b.cWhCode AS WhCode,
--b.bredvouch as Type,
A5.Code AS AS WhCode,
'1' as Status,
b.cMaker as CreatePerson,
b.dnmaketime as CreateDateTime,
a.ID as RCVID,
a.AutoID as RCVDetailID,
ISNULL(b.dnmodifytime, b.dnmaketime) AS MTIME,
isnull(a.cItemCode,'') ProjectCode,isnull(a.cbatch,'') cBatch,'' version ,'' brand,
(case WHEN inv.bFree1=1 THEN a.cFree1 ELSE '' END) as cFree1,
(case WHEN inv.bFree2=1 THEN a.cFree2 ELSE '' END) as cFree2,
(case WHEN inv.bFree3=1 THEN a.cFree3 ELSE '' END) as cFree3,
(case WHEN inv.bFree4=1 THEN a.cFree4 ELSE '' END) as cFree4,
(case WHEN inv.bFree5=1 THEN a.cFree5 ELSE '' END) as cFree5,
(case WHEN inv.bFree6=1 THEN a.cFree6 ELSE '' END) as cFree6,
(case WHEN inv.bFree7=1 THEN a.cFree7 ELSE '' END) as cFree7,
(case WHEN inv.bFree8=1 THEN a.cFree8 ELSE '' END) as cFree8,
(case WHEN inv.bFree9=1 THEN a.cFree9 ELSE '' END) as cFree9,
(case WHEN inv.bFree10=1 THEN a.cFree10 ELSE '' END) as cFree10,CAST('' AS NVARCHAR(500)) as Colspan
, '{0}' as WorkPoint
A1.CreatedBy as CreatePerson,
A2.CreatedOn as CreateDateTime,
A1.ID as RCVID,
CAST(A2.ID AS NVARCHAR(50)) as RCVDetailID,
ISNULL(A2.ModifiedOn ,A2.CreatedOn) AS MTIME,
isnull(A7.Code,'') ProjectCode,isnull(A2.InvLotCode,'') cBatch,'' version ,'' brand,
'' as cFree1,
'' as cFree2,
'' as cFree3,
'' as cFree4,
'' as cFree5,
'' as cFree6,
'' as cFree7,
'' as cFree8,
'' as cFree9,
'' as cFree10,CAST('' AS NVARCHAR(500)) as Colspan,
A6.Code as WorkPoint
INTO #TempPOArrive
FROM {1}.dbo.RdRecords01 a
INNER JOIN {1}.dbo.RdRecord01 b ON a.ID = b.ID
LEFT JOIN {1}.dbo.Department c ON b.cDepCode = c.cDepCode
LEFT JOIN {1}.dbo.Vendor d ON b.cVenCode = d.cVenCode
LEFT JOIN {1}.dbo.PO_Podetails e ON a.iPOsID = e.ID
LEFT JOIN {1}.dbo.Inventory inv ON a.cInvCode = inv.cInvCode
LEFT JOIN {1}.dbo.PU_ArrivalVouchs f on a.iArrsId=f.Autoid
WHERE ISNULL(b.dnmodifytime, b.dnmaketime)>=@LastTime AND b.cBusType IN ('') AND a.iQuantity<0 AND ISNULL(b.cHandler, '')=''
FROM {1}.dbo.PM_Receivement A1
LEFT JOIN {1}.dbo.PM_RcvLine A2 ON A2.Receivement=A1.ID
LEFT JOIN {1}.dbo.CBO_Department A3 ON A2.RcvDept=A3.ID
LEFT JOIN {1}.dbo.CBO_Department_Trl A4 ON A4.ID = A3.ID AND A4.SysMLFlag='zh-CN'
LEFT JOIN {1}.dbo.CBO_Wh A5 ON A2.Wh=A5.ID
LEFT JOIN {1}.dbo.Base_Organization A6 ON A1.Org=A6.ID
LEFT JOIN {1}.dbo.CBO_Project A7 ON A7.ID=A2.Project
LEFT JOIN {1}.dbo.PM_RcvDocType A8 ON A1.RcvDocType=A8.ID
WHERE A1.ReceivementType='0' AND A2.Status='3'
AND (A2.QCQCConclusion=-1 OR A2.QCQCConclusion=0 OR A2.QCQCConclusion=1 OR A2.QCQCConclusion=5
OR A2.QCQCConclusion=6 OR A2.QCQCConclusion=7 OR A2.QCQCConclusion=12)
and ISNULL(A2.ModifiedOn ,A2.CreatedOn)>=@LastTime
update #TempPOArrive set Colspan=isNULL(ProjectCode,'')+'~'+isNULL(cBatch,'')+'~'+isNULL(Version,'')+'~'+isNULL(Brand,'')+'~'+isNULL(cFree1,'')+'~'+isnull(cFree2,'')+'~'+isnull(cFree3,'')+'~'+isnull(cFree4,'')+'~'+isnull(cFree5,'')+'~'+isnull(cFree6,'')+'~'+isnull(cFree7,'')+'~'+isnull(cFree8,'')+'~'+isnull(cFree9,'')+'~'+isnull(cFree10,'')
select distinct
@ -129,7 +134,7 @@ namespace ICSSoft.FromERP
SELECT a.RCVDetailID INTO #tableICSPurchaseReceive
FROM ICSPurchaseReceive a With(NoLock)
LEFT JOIN {1}.dbo.[RdRecords01] b With(NoLock) ON a.RCVDetailID=b.Autoid
LEFT JOIN {1}.dbo.[PM_RcvLine] b With(NoLock) ON a.RCVDetailID=b.ID
WHERE a.WorkPoint='{0}' and b.Autoid IS NULL AND LEN(a.RCVDetailID)>0
DELETE ICSPurchaseReceive

Loading…
Cancel
Save