e7da820ab0
fix webconfig 218_test
180 lines
7.2 KiB
Transact-SQL
180 lines
7.2 KiB
Transact-SQL
|
|
|
|
/***************************************
|
|
* STORED stp_UAL_insertNewTT
|
|
*
|
|
* Stored completa x gestione postazione TT e AL:
|
|
* (1) - crea un nuovo record nella tab ElencoAssiemi di tipo TT partendo dal record RX
|
|
* (2a) - per ogni UDC dell'AL RX genera un nuovo UDC corrispondente in posizione CORRETTA (Terra TT)
|
|
* (2b) - per ogni UDC CREATO fa lo spostamento in cella corretta
|
|
* (2c) - per ogni UDC CREATO fa associazione con UDC parent ALR
|
|
* (3a) - per ogni UDC creato lo associa all'AL TT creato
|
|
* (3b) - per ogni UDC creato aggiunge attributi NumTratt e Durezza
|
|
* (4) - per ogni Dtx associato a UDC RX --> registra in nuovi UDC TT (copia)
|
|
* (5a) - Consuma tutti gli UDC RX
|
|
* (5b) - elimina posizione x UDC RX
|
|
* (6) - Disattiva AL RX
|
|
* (7) - Registra record in ElencoTrattamenti
|
|
*
|
|
* Steamware, S.E.L.
|
|
* mod: 2010.04.14
|
|
*
|
|
****************************************/
|
|
CREATE PROCEDURE [dbo].[stp_UAL_insertNewTT]
|
|
(
|
|
@SourceAL VARCHAR(50), -- AL sorgente
|
|
@TipoAl CHAR(1), -- tipo AL di dest
|
|
@DataCreaz DATETIME,
|
|
@CodSoggetto VARCHAR(17),
|
|
@Note NVARCHAR(500),
|
|
@NumTratt NVARCHAR(50), -- nuovo formato 8 char: YY + progressivo (6 char)
|
|
@Durezza INT,
|
|
@AL VARCHAR(50) OUTPUT
|
|
)
|
|
AS
|
|
|
|
SET NOCOUNT ON;
|
|
SET XACT_ABORT ON;
|
|
|
|
-- DECLARE iniziali
|
|
DECLARE @idxCellaTo INT = 0,
|
|
@idxPosizioneTo INT = 0,
|
|
@Flusso VARCHAR(2) = 'TT',
|
|
@CodStato VARCHAR(50) = 'Tratt', -- stato nuovi UDC
|
|
@CodEvento VARCHAR(10) = 'UDC_TRATT',-- evento nuovi UDC
|
|
@AttrNT VARCHAR(2) = 'NT', -- attributo x Num Trattamento
|
|
@AttrDU VARCHAR(2) = 'DU', -- attributo x Durezza rilevata
|
|
@HasDtx BIT = 0 -- indica se sia tipo datamatrix
|
|
|
|
------------------------------------------------------------------------------------------------------
|
|
-- Ciclo calcolo idxPosizione e idxCella di destinazione
|
|
------------------------------------------------------------------------------------------------------
|
|
-- cerco in TabTranPosizEventi record x calcolare cella
|
|
DECLARE @IdxBloccoTo INT
|
|
SET @IdxBloccoTo = 0
|
|
|
|
-- ricavo al volo blocco e idxPosizione di destinazione UDC
|
|
SELECT TOP 1 @IdxPosizioneTo = ttpe.IdxPosizioneTo
|
|
, @IdxBloccoTo = ttpe.IdxBloccoTo
|
|
FROM TabTranPosizEventi ttpe
|
|
WHERE CodEvento = @CodEvento
|
|
AND CodStatoTo = @CodStato
|
|
AND IdxPosizione = 0
|
|
|
|
|
|
SELECT TOP 1 @idxCellaTo = c.IdxCella
|
|
FROM Celle c
|
|
WHERE c.IdxBlocco = @IdxBloccoTo
|
|
------------------------------------------------------------------------------------------------------
|
|
|
|
|
|
------------------------------------------------------------------------------------------------------
|
|
-- Ciclo principale x inserimento nuovo record, associazione UDC, spostamenti
|
|
------------------------------------------------------------------------------------------------------
|
|
BEGIN TRAN
|
|
-- ottengo il nuovo codice AL: da vecchio con sostituzione tipo...
|
|
SET @AL = dbo.f_genNewCodAL(@SourceAL, @TipoAl)
|
|
|
|
-- (1) - inserisco un nuovo record da precedente...
|
|
INSERT INTO ElencoAssiemi(AL, Attivo, DataCreaz, CodSoggetto, CodDtx_start, CodDtx_end)
|
|
SELECT @AL, 1, @DataCreaz, @CodSoggetto, CodDtx_start, CodDtx_start
|
|
FROM ElencoAssiemi
|
|
WHERE AL = @SourceAL
|
|
|
|
|
|
-- (2a) - per ogni UDC dell'AL RX genera un nuovo UDC corrispondente in posizione CORRETTA @IdxPosizioneTo (Terra TT)
|
|
INSERT INTO ElencoCartellini(UDC, CodCS, CodCliente, RagSociale, Particolare, DescParticolare, DisegnoGrezzo, Esponente, DataFus, TurnoFus, CodImballo, CodSoggetto, NumCont, Qta, CodStato, IdxPosizione, CreateDate, ModDate, Note, CodEvento)
|
|
SELECT dbo.f_genNewCodUDC(ec.UDC,@Flusso) as UDC, ec.CodCS, ec.CodCliente, ec.RagSociale, ec.Particolare, ec.DescParticolare, ec.DisegnoGrezzo, ec.Esponente, @DataCreaz AS DataFus, ec.TurnoFus, ec.CodImballo, @CodSoggetto AS CodSoggetto, ec.NumCont, ec.Qta, @CodStato AS CodStato, @IdxPosizioneTo AS IdxPosizione, @DataCreaz AS CreateDate, @DataCreaz AS ModDate, @Note as Note, @CodEvento AS CodEvento
|
|
FROM ElencoCartellini ec
|
|
INNER JOIN AL2UDC a2u ON ec.UDC = a2u.UDC
|
|
WHERE a2u.AL = @SourceAL
|
|
|
|
-- (2b) - per ogni UDC CREATO fa lo spostamento in cella corretta
|
|
INSERT INTO PosizioneUdcCorrente (UDC, IdxCella, CodCS, DataRif, CodSoggetto)
|
|
SELECT dbo.f_genNewCodUDC(ec.UDC,@Flusso) as UDC, @idxCellaTo as IdxCella, CodCS, @DataCreaz, @CodSoggetto
|
|
FROM ElencoCartellini ec
|
|
INNER JOIN AL2UDC a2u ON ec.UDC = a2u.UDC
|
|
WHERE a2u.AL = @SourceAL
|
|
|
|
-- (2c) - per ogni UDC CREATO fa associazione con UDC parent ALR
|
|
INSERT INTO RelazUDC(UDC_parent, UDC_child, dataMod)
|
|
SELECT ec.UDC as UDC_parent, dbo.f_genNewCodUDC(ec.UDC,@Flusso) as UDC_child, @DataCreaz as dataMod
|
|
FROM ElencoCartellini ec
|
|
INNER JOIN AL2UDC a2u ON ec.UDC = a2u.UDC
|
|
WHERE a2u.AL = @SourceAL
|
|
|
|
-- (3a) - per ogni UDC creato lo associa all'AL TT creato
|
|
INSERT INTO AL2UDC(AL, UDC, DataCreaz, CodSoggetto)
|
|
SELECT @AL, dbo.f_genNewCodUDC(ec.UDC,@Flusso) as UDC, @DataCreaz, @CodSoggetto
|
|
FROM ElencoCartellini ec
|
|
INNER JOIN AL2UDC a2u ON ec.UDC = a2u.UDC
|
|
WHERE a2u.AL = @SourceAL
|
|
|
|
|
|
-- (3b) - per ogni UDC creato aggiunge attributo NumTratt e Durezza
|
|
INSERT INTO Attr2UDC(UDC, CodAttr, ValAttr, DateAttr, CodSoggetto)
|
|
SELECT dbo.f_genNewCodUDC(ec.UDC,@Flusso) as UDC, @AttrNT AS CodAttr, @NumTratt AS ValAttr, @DataCreaz AS DateAttr, @CodSoggetto AS CodSoggetto
|
|
FROM ElencoCartellini ec
|
|
INNER JOIN AL2UDC a2u ON ec.UDC = a2u.UDC
|
|
WHERE a2u.AL = @SourceAL
|
|
|
|
/* Per il momento non registro la durezza x ogni UDC come attributo
|
|
UNION
|
|
SELECT dbo.f_genNewCodUDC(ec.UDC,@Flusso) as UDC, @AttrDU AS CodAttr, @Durezza AS ValAttr, @DataCreaz AS DateAttr, @CodSoggetto AS CodSoggetto
|
|
FROM ElencoCartellini ec
|
|
INNER JOIN AL2UDC a2u ON ec.UDC = a2u.UDC
|
|
WHERE a2u.AL = @SourceAL
|
|
*/
|
|
|
|
-- (4) - verifico SE ho datamatrix x UDC RX...
|
|
--SELECT @HasDtx = CASE WHEN COUNT(DataMatrix) > 0 THEN 1 ELSE 0 END
|
|
--FROM Dtx2UDC d2u
|
|
-- INNER JOIN AL2UDC a2u ON d2u.UDC = a2u.UDC
|
|
--WHERE a2u.AL = @SourceAL
|
|
|
|
-- (4) - verifico SE ho datamatrix x UDC RX ( source ) ...
|
|
IF EXISTS ( SELECT * FROM Dtx2UDC d2u INNER JOIN AL2UDC a2u ON d2u.UDC = a2u.UDC WHERE a2u.AL = @SourceAL )
|
|
BEGIN
|
|
SET @HasDtx = 1 -- mi serve dopo
|
|
|
|
-- (4) - per ogni Dtx associato a UDC RX --> registra Dtx in nuovi UDC TT (copia)
|
|
INSERT INTO Dtx2UDC(DataMatrix, CodStato, UDC, DataOra, CodSoggetto, Particolare)
|
|
SELECT d2u.DataMatrix, @CodStato AS CodStato, dbo.f_genNewCodUDC(d2u.UDC,@Flusso) AS UDC, @DataCreaz AS DataOra, @CodSoggetto AS CodSoggetto, d2u.Particolare
|
|
FROM Dtx2UDC d2u
|
|
INNER JOIN AL2UDC a2u
|
|
ON d2u.UDC = a2u.UDC
|
|
WHERE a2u.AL = @SourceAL
|
|
END
|
|
|
|
-- (5a) - Consuma tutti gli UDC RX
|
|
UPDATE ec
|
|
SET IdxPosizione = -IdxPosizione
|
|
,CodSoggetto = @CodSoggetto
|
|
,ModDate = @DataCreaz
|
|
,@CodEvento = 'UDC_CONS'
|
|
FROM ElencoCartellini ec
|
|
INNER JOIN AL2UDC a2u
|
|
ON ec.UDC = a2u.UDC
|
|
WHERE a2u.AL = @SourceAL
|
|
|
|
-- (5b) - elimina posizione x UDC RX
|
|
DELETE puc
|
|
FROM PosizioneUdcCorrente puc
|
|
INNER JOIN AL2UDC a2u
|
|
ON puc.UDC = a2u.UDC
|
|
WHERE a2u.AL = @SourceAL
|
|
|
|
-- (6) - Disattiva AL RX
|
|
UPDATE ElencoAssiemi
|
|
SET Attivo = 0
|
|
WHERE AL = @SourceAL
|
|
|
|
-- (7) - Registra record in ElencoTrattamenti
|
|
INSERT INTO ElencoTrattamenti(Trattamento, AL, Durezza, DataDur, CodSoggettoDur, HasDtx)
|
|
SELECT @NumTratt AS trattamento, @AL AS AL, @Durezza, @DataCreaz, @CodSoggetto, @HasDtx
|
|
|
|
|
|
COMMIT TRAN
|
|
------------------------------------------------------------------------------------------------------
|
|
|
|
RETURN |