121 lines
6.7 KiB
Transact-SQL
121 lines
6.7 KiB
Transact-SQL
ALTER PROCEDURE [dbo].[SyncPodlToMachine]
|
|
AS
|
|
BEGIN
|
|
BEGIN tran
|
|
-- SET NOCOUNT ON added to prevent extra result sets from
|
|
-- interfering with SELECT statements.
|
|
SET NOCOUNT ON;
|
|
|
|
-- Calcola i VECCHI PODL e scrive DELETE relativo
|
|
;WITH cte2del AS
|
|
(
|
|
SELECT pLast.*
|
|
FROM MesPODL_last pLast
|
|
LEFT OUTER JOIN MesPODL_req pReq ON pReq.IdxPromessa = pLast.IdxPromessa
|
|
WHERE pReq.IdxPromessa IS NULL
|
|
)
|
|
INSERT INTO syn_ERP2M(Targa, MachineID, ProdOrder, MatCode, MatDescr, ToDoQty, PartPrograms, Cmd, [DateTime])
|
|
SELECT 'PLD392' AS Targa
|
|
,0 AS MachineID
|
|
,'PODL' + dbo.f_padLeft(IdxPromessa, 8,'0') AS ProdOrder
|
|
,CodArticolo AS MatCode
|
|
,KeyRichiesta AS MatDescr
|
|
,NumPezzi AS ToDoQty
|
|
,Note AS PartPrograms
|
|
,2 AS Cmd
|
|
,GETDATE() AS [DateTime]
|
|
FROM cte2del;
|
|
|
|
-- Calcola i NUOVI PODL e scrive ADD relativo
|
|
;WITH cte2add AS
|
|
(
|
|
SELECT pReq.*
|
|
FROM MesPODL_req pReq
|
|
LEFT OUTER JOIN MesPODL_last pLast ON pReq.IdxPromessa = pLast.IdxPromessa
|
|
WHERE pLast.IdxPromessa IS NULL
|
|
)
|
|
INSERT INTO syn_ERP2M(Targa, MachineID, ProdOrder, MatCode, MatDescr, ToDoQty, PartPrograms, Cmd, [DateTime])
|
|
SELECT 'PLD392' AS Targa
|
|
,0 AS MachineID
|
|
,'PODL' + dbo.f_padLeft(IdxPromessa, 8,'0') AS ProdOrder
|
|
,CodArticolo AS MatCode
|
|
,KeyRichiesta AS MatDescr
|
|
,NumPezzi AS ToDoQty
|
|
,Note AS PartPrograms
|
|
,1 AS Cmd
|
|
,GETDATE() AS [DateTime]
|
|
FROM cte2add;
|
|
|
|
-- Calcola i PODL modificati e scrive update relativo
|
|
;WITH cte2mod AS
|
|
(
|
|
SELECT pReq.*
|
|
FROM MesPODL_req pReq
|
|
INNER JOIN MesPODL_last pLast ON pReq.IdxPromessa = pLast.IdxPromessa
|
|
WHERE pLast.KeyRichiesta <> pReq.KeyRichiesta
|
|
OR pLast.KeyBCode <> pReq.KeyBCode
|
|
OR pLast.NumPezzi <> pReq.NumPezzi
|
|
OR pLast.CodArticolo <> pReq.CodArticolo
|
|
OR pLast.Note <> pReq.Note
|
|
--OR pLast.IdxMacchina <> pReq.IdxMacchina
|
|
--OR pLast.CodGruppo <> pReq.CodGruppo
|
|
--OR pLast.Attivabile <> pReq.Attivabile
|
|
--OR pLast.DueDate <> pReq.DueDate
|
|
--OR pLast.Priorita <> pReq.Priorita
|
|
)
|
|
INSERT INTO syn_ERP2M(Targa, MachineID, ProdOrder, MatCode, MatDescr, ToDoQty, PartPrograms, Cmd, [DateTime])
|
|
SELECT 'PLD392' AS Targa
|
|
,0 AS MachineID
|
|
,'PODL' + dbo.f_padLeft(IdxPromessa, 8,'0') AS ProdOrder
|
|
,CodArticolo AS MatCode
|
|
,KeyRichiesta AS MatDescr
|
|
,NumPezzi AS ToDoQty
|
|
,Note AS PartPrograms
|
|
,3 AS Cmd
|
|
,GETDATE() AS [DateTime]
|
|
FROM cte2mod;
|
|
|
|
-- svuoto ultima richiesta...
|
|
TRUNCATE TABLE MesPODL_last
|
|
-- trasferimento records req --> last!
|
|
INSERT INTO MesPODL_last
|
|
(IdxPromessa
|
|
,KeyRichiesta
|
|
,KeyBCode
|
|
,Attivabile
|
|
,IdxODL
|
|
,CodArticolo
|
|
,CodGruppo
|
|
,IdxMacchina
|
|
,NumPezzi
|
|
,TCAssegnato
|
|
,DueDate
|
|
,Priorita
|
|
,PzPallet
|
|
,Note
|
|
,CodCli
|
|
,InsertDate)
|
|
SELECT IdxPromessa
|
|
,KeyRichiesta
|
|
,KeyBCode
|
|
,Attivabile
|
|
,IdxODL
|
|
,CodArticolo
|
|
,CodGruppo
|
|
,IdxMacchina
|
|
,NumPezzi
|
|
,TCAssegnato
|
|
,DueDate
|
|
,Priorita
|
|
,PzPallet
|
|
,Note
|
|
,CodCli
|
|
,InsertDate
|
|
FROM MesPODL_req
|
|
|
|
-- svuoto richiesta attuale...
|
|
TRUNCATE TABLE MesPODL_req
|
|
|
|
COMMIT tran
|
|
END
|