Files
Mapo-IOB-WIN/EgwProxy.SqlDb.Test/SqlFromDebug/SyncPodlToMachine.sql
T
Samuele E. Locatelli 30f1a14292 Update stored da DB remoto
2023-03-14 20:55:08 +01:00

127 lines
6.9 KiB
Transact-SQL

USE [MoonPro_IOB_ISF]
GO
/****** Object: StoredProcedure [dbo].[SyncPodlToMachine] Script Date: 14/03/2023 19:36:13 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
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!
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
COMMIT tran
END