Sie sind auf Seite 1von 3

CREATE TABLE [dbo].

[SAPINVENTORY]([itemcode] [nvarchar](100) NOT NULL, [WhsCode]


[nvarchar](100) NOT NULL, [OnHand] [numeric](19, 6) NULL, IsCommited [numeric](19, 6)
NULL)

SELECT itemcode, WhsCode, OnHand, IsCommited FROM <SAP Link Server>.dbo.oitw

INSERT INTO SAPINVENTORY SELECT itemcode, WhsCode, OnHand, IsCommited FROM <SAP Link
Server>.dbo.oitw]

Update I1 Set I1.AvailableQuantity = SI.ONHAND, I1.OnFulFillmentQuantity=SI.IsCommited,


I1.InStockQuantity = SI.ONHAND From
InvInventoryItem I1 Inner Join InvProduct IP On I1.ProductKey = IP.ProductKey Inner Join
InvWarehouse IW
On I1.WarehouseKey = IW.WarehouseKey Inner Join SAPINVENTORY SI On SI.ITEMCODE = IP.ID
AND SI.WHSCODE = IW.ID
Where IP.isDeleted = 0 AND IW.isDeleted = 0

Delete From InvSerialSap

INSERT INTO InvSerialSAP


Select CONVERT (VARCHAR(20),row_number() over (order by OSRN.DistNumber)) 'SerialKey',
OSRN.DistNumber,IW.Warehousekey,IP.ProductKey,0,OSRN.InDate,OSRN.ExpDate,OSRN.MnfDate,
CASE WHEN OSRQ.Quantity = 0 THEN 0 Else 1 END AS 'SerialStatus',OSRN.SysNumber,
0,0,OSRN.DistNumber,-1,GETDATE(),-1,GETDATE(),0, CONVERT (VARCHAR(20),row_number() over
(order by OSRN.DistNumber)) 'OriginalSerialKey', isNull(OSRN.U_CXS_PRC,0),NULL,0,''
from
[192.168.1.14].[SBK_CNBMI].dbo.OSRN OSRN WITH (NOLOCK)
INNER JOIN
[192.168.1.14].[SBK_CNBMI].dbo.OSRQ OSRQ WITH (NOLOCK) ON OSRN.ITemCode = OSRQ.ItemCode
AND OSRN.SysNumber = OSRQ.SysNumber Inner Join InvWarehouse IW On OSRQ.WhsCode = IW.ID
collate SQL_Latin1_General_CP1_CI_AS Inner Join InvProduct IP On OSRN.ItemCode = IP.ID
collate SQL_Latin1_General_CP1_CI_AS AND OSRQ.ItemCode = IP.ID collate
SQL_Latin1_General_CP1_CI_AS
WHERE OSRN.DistNumber IS NOT NULL AND IP.isDeleted = 0 AND IW.isDeleted = 0

TRUNCATE TABLE InvInventoryItemLog


TRUNCATE TABLE InvSerialLog

Update I1
Set I1.Status = I2.Status, I1.Modified = GETDATE()
from
InvSerial I1
Inner Join InvSerialSAP I2 On I1.ProductKey = I2.ProductKey AND I1.WarehouseKey =
I2.WarehouseKey AND
I1.SerialNumber = I2.SerialNumber

Select CONVERT(VARCHAR(20),row_number() over (order by I1.SerialKey) + 30875),


I1.SerialNumber, I1.WarehouseKey, I1.ProductKey, I1.CommentKey, I1.AdmissionDate,
I1.ExpirationDate, I1.ManufacturingDate, I1.Status, I1.SystemNumber,
I1.ManufacturerSerialNumber, I1.LotNumber, I1.InternalSerialNumber,
I1.CreatedBy, I1.Created, I1.ModifiedBy, I1.Modified, I1.IsDeleted,
I1.OriginalSerialKey, I1.Price, I1.Details, I1.LocationKey
from
InvSerialSAP I1
Left Outer Join
InvSerial I2 On I1.ProductKey = I2.ProductKey AND I1.WarehouseKey = I2.WarehouseKey AND
I1.SerialNumber = I2.SerialNumber
Where I2.ProductKey IS NULL

Update C
SET C.Status = 2
from
TrxTransaction A WITH (NOLOCK)
Inner Join TrxTransactionSaleItem B WITH (NOLOCK) ON A.TransactionKey = B.TransactionKey
Inner Join InvSerial C WITH (NOLOCK) On B.ProductDetailKey = C.SerialKey
Inner Join (Select ProductKey, SerialNumber, WarehouseKey, Status from InvSerial WITH
(NOLOCK)) D
On C.SerialNumber = D.SerialNumber AND C.ProductKey = D.ProductKey AND D.Status != 1
Where B.HasSerialNumber = 1 AND B.Type = 0 AND B.WarehouseKey = D.WarehouseKey

"Select A.* INTO TempInv


from
InvSerial A
Inner Join
(Select ProductKey, SerialNumber from InvSerial Where Status IN (2) Group By ProductKey,
SerialNumber) B On A.ProductKey = B.ProductKey AND A.SerialNumber = B.SerialNumber
Where A.Status = 1"

Update B
SET B.Status = 0
from
TempInv A Inner Join InvSerial B On A.SerialNumber = B.SerialNumber AND A.ProductKey =
B.ProductKey Where B.Status = 2

INSERT INTO InvSerialLog Select CONVERT(VARCHAR(20),row_number() over (order by


SerialKey)),SerialKey,WarehouseKey,ProductKey,Status,-1,-1,0,0,1 from InvSerial

INSERT INTO InvSerialLog Select CONVERT(VARCHAR(20),row_number() over (order by


SerialKey)),SerialKey,WarehouseKey,ProductKey,Status,-1,-1,0,0,1 from InvSerial

iVend Pull from Hom


INSERT INTO InvInventoryItem Select * from
[192.168.1.13].cxsretail_pro.dbo.InvInventoryItem WITH (NOLOCK)

Das könnte Ihnen auch gefallen