From 64e13d5b4202d00a58a1d0aec349a849b6eb76f9 Mon Sep 17 00:00:00 2001 From: samuele Date: Fri, 19 Oct 2012 11:15:31 +0200 Subject: [PATCH] update script aggiornamento --- GMW_data/SqlScripts/V2.1/GMW_00516.sql | 572 +++++++++++++++++++++++++ 1 file changed, 572 insertions(+) diff --git a/GMW_data/SqlScripts/V2.1/GMW_00516.sql b/GMW_data/SqlScripts/V2.1/GMW_00516.sql index 25fc69a2..e0962847 100644 --- a/GMW_data/SqlScripts/V2.1/GMW_00516.sql +++ b/GMW_data/SqlScripts/V2.1/GMW_00516.sql @@ -1,3 +1,575 @@ +set xact_abort on +go + +begin transaction +go + +INSERT INTO dbo.Permessi + VALUES ('POST_fusiCons', 'consumoFusi.aspx', 4, 5, 'ConsFusi', 'ConsFusiExpl') +go + +commit transaction +go + + +set xact_abort on +go + +begin transaction +go + +INSERT INTO dbo.Permessi2Funzione + VALUES ('POST_fusiCons', N'GMW_consFusi', 'S') +go + +commit transaction +go + + +set xact_abort on +go + +begin transaction +go + +UPDATE AnagPosizioni +set idxposizione=3 +WHERE IdxPosizione=7 +go + +commit transaction +go + +set xact_abort on +go + +begin transaction +go + +INSERT INTO dbo.TabTranPosizEventi + VALUES (N'UDC_CONS', 3, -3, 0, NULL, N'consumo fusi') +INSERT INTO dbo.TabTranPosizEventi + VALUES (N'UDC_FUSI', 0, 3, 49, N'Fusi', N'creazione UDC fusi (creare magazzino e blocco x fusi e sostituire 49)') +go + +commit transaction +go + +set xact_abort on +go + +begin transaction +go + +set ANSI_NULLS on +go + +/*************************************** +* STORED stp_UDC_insNewFull +* +* crea un nuovo record nella TabStatoOdpUdc FULL (con pesi, qta...) e restituisce il codice UDC appena creato +* +* Steamware, S.E.L. +* mod: 2010.04.28 +* +****************************************/ +alter PROCEDURE stp_UDC_insNewFull +( + @CodCS VARCHAR(2), + @Flusso VARCHAR(2), + @Anno VARCHAR(2), + @CodCliente VARCHAR(6), + @Particolare VARCHAR(15), + @CodImpianto AS VARCHAR(50), + @CodStampo VARCHAR(8), + @Esponente VARCHAR(6), + @Figura VARCHAR(4), + @DataFus DATETIME, + @TurnoFus INT, + @CodImballo VARCHAR(15), + @CodSoggetto VARCHAR(17), + @Tara FLOAT, + @IdxPosizione INT, + @CodTipoDichiaraz CHAR(1), + @CodEvento VARCHAR(10), + @Qta DECIMAL(10,2), + @PesoTot FLOAT, + @PesoCad FLOAT, + @CodStato VARCHAR(50), + @UDC_parent VARCHAR(50), + @DoDeleteUdcParent BIT, + @Note NVARCHAR(500) +) +AS + +-- DECLARE iniziali +DECLARE @UDC AS VARCHAR(50) +DECLARE @RagSociale AS VARCHAR(35) +DECLARE @DescParticolare AS VARCHAR(30) +DECLARE @DescImpianto AS VARCHAR(50) +DECLARE @DisegnoGrezzo AS VARCHAR(30) +DECLARE @NumCont AS INT +DECLARE @numFlu AS INT +DECLARE @numUdc AS INT +DECLARE @nextUdc AS INT +DECLARE @IdxCella AS INT + +SET @UDC_parent = UPPER(@UDC_parent) -- nel caso sia passato in minuscolo + +------------------------------------------------------------------------------------------------------ +-- Caricamento Dati da anagrafica +------------------------------------------------------------------------------------------------------ +-- cerco la ragione sociale... +SET @RagSociale = ISNULL( +( + SELECT RagSociale + FROM RilPro.AnagClienti + WHERE (CodCliente = @CodCliente) +) +, '') + +-- Cerco descrizione del particolare... +SET @DescParticolare = ISNULL( +( + SELECT DescParticolare + FROM RilPro.AnagParticolari + WHERE (Particolare = @Particolare) +) +, 'ND') + +-- se non lo trova provo anche nell'anagrafica leghe +IF(@DescParticolare = 'ND')-- OR (@DescParticolare is null) + BEGIN + SET @DescParticolare = ISNULL( + ( + SELECT DescLega + FROM RilPro.AnagLeghe + WHERE ('L'+CodLega = @Particolare) + ) + , '') + END +-- cerco codice disegno grezzo +SET @DisegnoGrezzo = ISNULL( +( + SELECT DisegnoGrezzo + FROM RilPro.AnagParticolari + WHERE (Particolare = @Particolare) +) +, '') + +-- cerco descrizione Impianto +SET @DescImpianto = ISNULL( +( + SELECT DescImpianto + FROM AnagImpianti + WHERE (CodImpianto = @CodImpianto) +) +, '') + + +-- Calcolo contatore intero successivo x il contenitore... +SET @NumCont = ( + SELECT ISNULL(MAX(NumCont), 0) + 1 AS NumCont + FROM ElencoCartellini + WHERE (Particolare = @Particolare) + AND (DataFus = @DataFus) + AND (TurnoFus = @TurnoFus) + AND (CodImpianto = @CodImpianto) + AND (CodStampo = @CodStampo) + AND (Figura = @Figura) +) + + +------------------------------------------------------------------------------------------------------ + +------------------------------------------------------------------------------------------------------ +-- Flusso +------------------------------------------------------------------------------------------------------ +-- controllo se esiste il flusso (bilancia)... +SET @numFlu = ( + SELECT count(*) + FROM AnagBilance + WHERE CodBilancia = @Flusso +) +-- ...sennò lo creo... +IF(@numFlu = 0) + BEGIN + -- se c'è inserisco in tab + INSERT INTO AnagBilance(CodBilancia, DescrImpianto, CodCS) + VALUES (@Flusso, @Flusso, @CodCS) + END +------------------------------------------------------------------------------------------------------ + + +------------------------------------------------------------------------------------------------------ +-- UDC +------------------------------------------------------------------------------------------------------ +-- controllo se ci sia già un UDC per company / flusso anno +BEGIN TRAN + -- cerco nella tab contatori se esiste contatore x il flusso + -- controllo se record c'è... + IF EXISTS( SELECT TOP 1 Flusso FROM ContatoriUdc + WHERE CodCS = @CodCS + AND Flusso = @Flusso + AND Anno = @Anno ) + BEGIN + -- se c'è incremento di 1 in tab + UPDATE ContatoriUdc + SET LastIdx = LastIdx + 1 + WHERE CodCS = @CodCS + AND Flusso = @Flusso + AND Anno = @Anno + END + ELSE + BEGIN + -- lo creo! + INSERT INTO ContatoriUdc(CodCS, Flusso, Anno, LastIdx) + VALUES (@CodCS, @Flusso, @Anno, 1) + END + -- aggiorno numero UDC + SET @numUdc = ( + SELECT LastIdx + FROM ContatoriUdc + WHERE CodCS = @CodCS + AND Flusso = @Flusso + AND Anno = @Anno + ) +COMMIT TRAN +------------------------------------------------------------------------------------------------------ + +------------------------------------------------------------------------------------------------------ +-- Ciclo principale x inserimento nuovo record +------------------------------------------------------------------------------------------------------ +BEGIN TRAN + -- ottengo il nuovo codice UDC completo + SET @UDC = dbo.componiUdc(@CodCS, @Flusso, @Anno, @numUdc) + + -- inserisco un nuovo record + INSERT INTO ElencoCartellini(UDC, CodCS, CodCliente, RagSociale, Particolare, DescParticolare, DisegnoGrezzo, Esponente, CodImpianto, DescImpianto, CodStampo, Figura, DataFus, TurnoFus, CodImballo, CodSoggetto, NumCont, Tara, Qta, CodStato, IdxPosizione, PesoTot, PesoCad, CreateDate, ModDate, Note, CodEvento) + VALUES (@UDC, @CodCS, @CodCliente, @RagSociale, @Particolare, @DescParticolare, @DisegnoGrezzo, @Esponente, @CodImpianto, @DescImpianto, @CodStampo, @Figura, @DataFus, @TurnoFus, @CodImballo, @CodSoggetto, @NumCont, @Tara, @Qta, @CodStato, @IdxPosizione, @PesoTot, @PesoCad, GETDATE(), GETDATE(), @Note, @CodEvento) + + -- inserisco relazione parent-child tra UDC vecchio (tara) e nuovo (pesa) SSE UDC_Parent valido + IF((NOT @UDC_parent IS NULL) AND (NOT @UDC_parent = '')) + BEGIN + INSERT INTO RelazUDC(UDC_parent, UDC_child) + VALUES (@UDC_parent, @UDC) + END +COMMIT TRAN + +------------------------------------------------------------------------------------------------------ + +------------------------------------------------------------------------------------------------------ +-- Ciclo secondario x eventuale cancellazione UDC tara parent e inserimento in posizione +------------------------------------------------------------------------------------------------------ + -- se richiesto elimino l'UDC parent (tara) + IF(@DoDeleteUdcParent = 1) + BEGIN + DELETE FROM ElencoCartellini WHERE UDC = @UDC_parent + END + + -- cerco in TabTranPosizEventi record x calcolare cella + DECLARE @IdxBloccoTo INT + SET @IdxBloccoTo = 0 + + /* da testare... + SET @IdxBloccoTo = ( + SELECT ISNULL( + ( + SELECT IdxBloccoTo + FROM TabTranPosizEventi + WHERE CodEvento = @CodEvento + AND IdxPosizione = 0 + AND IdxPosizioneTo = @IdxPosizione + AND CodStatoTo = @CodStato + ), 0) + ) + -- se non lo trovo cerco con CodStatoTo null... + IF(@IdxBloccoTo = 0) + BEGIN + SET @IdxBloccoTo = ( + SELECT ISNULL( + ( + SELECT IdxBloccoTo + FROM TabTranPosizEventi + WHERE CodEvento = @CodEvento + AND IdxPosizione = 0 + AND IdxPosizioneTo = @IdxPosizione + ), 0) + ) + END + */ + + -- se NON HO trovato una conf x @IdxBloccoTo utilizzo questo valore utilizzo modalità "vecchia" + IF(@IdxBloccoTo = 0) + BEGIN + -- calcolo la prima cella della posizione indicata.. + SET @IdxCella = ( + SELECT TOP 1 c.IdxCella + FROM Celle c INNER JOIN Blocchi b ON c.IdxBlocco=b.IdxBlocco + WHERE b.CodMag = CAST(@IdxPosizione AS NVARCHAR(50)) + ) + END + ELSE + BEGIN + -- calcolo la prima cella della posizione indicata.. + SET @IdxCella = ( + SELECT TOP 1 c.IdxCella + FROM Celle c + WHERE c.IdxBlocco = @IdxBloccoTo + ) + END + + + -- inserisco il cartellino nella prima cella della posizione indicata... + INSERT INTO PosizioneUdcCorrente(UDC, IdxCella, CodCS, DataRif, CodSoggetto) + VALUES(@Udc, @IdxCella, @CodCs, GETDATE(), @CodSoggetto) +------------------------------------------------------------------------------------------------------ + + +------------------------------------------------------------------------------------------------------ +-- restituisco la tab dati con l'udc appena inserito +------------------------------------------------------------------------------------------------------ +SELECT * +FROM ElencoCartellini +WHERE UDC = @UDC +------------------------------------------------------------------------------------------------------ + +RETURN +go + +/*************************************** +* STORED stp_UDC_insNewFull_fixUDC +* +* crea un nuovo record nella TabStatoOdpUdc FULL (con pesi, qta...) avendo in entrata il codice UDC da + +utilizzare +* +* Steamware, S.E.L. +* mod: 2011.12.07 +* +****************************************/ +alter PROCEDURE stp_UDC_insNewFull_fixUDC +( + @UDC AS NVARCHAR(50), + @CodCS VARCHAR(2), + @Flusso VARCHAR(2), + @Anno VARCHAR(2), + @CodCliente VARCHAR(6), + @Particolare VARCHAR(15), + @CodImpianto AS VARCHAR(50), + @CodStampo VARCHAR(8), + @Esponente VARCHAR(6), + @Figura VARCHAR(4), + @DataFus DATETIME, + @TurnoFus INT, + @CodImballo VARCHAR(15), + @CodSoggetto VARCHAR(17), + @Tara FLOAT, + @IdxPosizione INT, + @CodTipoDichiaraz CHAR(1), + @CodEvento VARCHAR(10), + @Qta DECIMAL(10,2), + @PesoTot FLOAT, + @PesoCad FLOAT, + @CodStato VARCHAR(50), + @UDC_parent VARCHAR(50), + @DoDeleteUdcParent BIT, + @Note NVARCHAR(500) +) +AS + +-- DECLARE iniziali +DECLARE @RagSociale AS VARCHAR(35) +DECLARE @DescParticolare AS VARCHAR(30) +DECLARE @DescImpianto AS VARCHAR(50) +DECLARE @DisegnoGrezzo AS VARCHAR(30) +DECLARE @NumCont AS INT +DECLARE @numFlu AS INT +DECLARE @numUdc AS INT +DECLARE @nextUdc AS INT +DECLARE @IdxCella AS INT + +------------------------------------------------------------------------------------------------------ +-- Caricamento Dati da anagrafica +------------------------------------------------------------------------------------------------------ +-- cerco la ragione sociale... +SET @RagSociale = ISNULL( +( + SELECT RagSociale + FROM RilPro.AnagClienti + WHERE (CodCliente = @CodCliente) +) +, '') + +-- Cerco descrizione del particolare... +SET @DescParticolare = ISNULL( +( + SELECT DescParticolare + FROM RilPro.AnagParticolari + WHERE (Particolare = @Particolare) +) +, 'ND') + +-- se non lo trova provo anche nell'anagrafica leghe +IF(@DescParticolare = 'ND')-- OR (@DescParticolare is null) + BEGIN + SET @DescParticolare = ISNULL( + ( + SELECT DescLega + FROM RilPro.AnagLeghe + WHERE ('L'+CodLega = @Particolare) + ) + , '') + END +-- cerco codice disegno grezzo +SET @DisegnoGrezzo = ISNULL( +( + SELECT DisegnoGrezzo + FROM RilPro.AnagParticolari + WHERE (Particolare = @Particolare) +) +, '') + +-- cerco descrizione Impianto +SET @DescImpianto = ISNULL( +( + SELECT DescImpianto + FROM AnagImpianti + WHERE (CodImpianto = @CodImpianto) +) +, '') + + + +-- Calcolo contatore intero successivo x il contenitore... +SET @NumCont = ( + SELECT ISNULL(MAX(NumCont), 0) + 1 AS NumCont + FROM ElencoCartellini + WHERE (Particolare = @Particolare) + AND (DataFus = @DataFus) + AND (TurnoFus = @TurnoFus) + AND (CodImpianto = @CodImpianto) + AND (CodStampo = @CodStampo) + AND (Figura = @Figura) +) + + +------------------------------------------------------------------------------------------------------ + + +------------------------------------------------------------------------------------------------------ +-- Ciclo principale x inserimento nuovo record +------------------------------------------------------------------------------------------------------ +BEGIN TRAN + + -- inserisco un nuovo record + INSERT INTO ElencoCartellini(UDC, CodCS, CodCliente, RagSociale, Particolare, DescParticolare, + +DisegnoGrezzo, Esponente, CodImpianto, DescImpianto, CodStampo, Figura, DataFus, TurnoFus, CodImballo, + +CodSoggetto, NumCont, Tara, Qta, CodStato, IdxPosizione, PesoTot, PesoCad, CreateDate, ModDate, Note, CodEvento) + VALUES (@UDC, @CodCS, @CodCliente, @RagSociale, @Particolare, @DescParticolare, @DisegnoGrezzo, + +@Esponente, @CodImpianto, @DescImpianto, @CodStampo, @Figura, @DataFus, @TurnoFus, @CodImballo, + +@CodSoggetto, @NumCont, @Tara, @Qta, @CodStato, @IdxPosizione, @PesoTot, @PesoCad, GETDATE(), GETDATE(), + +@Note, @CodEvento) + + -- inserisco relazione parent-child tra UDC vecchio (tara) e nuovo (pesa) SSE UDC_Parent valido + IF((NOT @UDC_parent IS NULL) AND (NOT @UDC_parent = '')) + BEGIN + INSERT INTO RelazUDC(UDC_parent, UDC_child) + VALUES (@UDC_parent, @UDC) + END +COMMIT TRAN + +------------------------------------------------------------------------------------------------------ + +------------------------------------------------------------------------------------------------------ +-- Ciclo secondario x eventuale cancellazione UDC tara parent e inserimento in posizione +------------------------------------------------------------------------------------------------------ + -- se richiesto elimino l'UDC parent (tara) + IF(@DoDeleteUdcParent = 1) + BEGIN + DELETE FROM ElencoCartellini WHERE UDC = @UDC_parent + END + + -- cerco in TabTranPosizEventi record x calcolare cella + DECLARE @IdxBloccoTo INT + SET @IdxBloccoTo = 0 + + /* da testare... + SET @IdxBloccoTo = ( + SELECT ISNULL( + ( + SELECT IdxBloccoTo + FROM TabTranPosizEventi + WHERE CodEvento = @CodEvento + AND IdxPosizione = 0 + AND IdxPosizioneTo = @IdxPosizione + AND CodStatoTo = @CodStato + ), 0) + ) + -- se non lo trovo cerco con CodStatoTo null... + IF(@IdxBloccoTo = 0) + BEGIN + SET @IdxBloccoTo = ( + SELECT ISNULL( + ( + SELECT IdxBloccoTo + FROM TabTranPosizEventi + WHERE CodEvento = @CodEvento + AND IdxPosizione = 0 + AND IdxPosizioneTo = @IdxPosizione + ), 0) + ) + END + */ + + -- se NON HO trovato una conf x @IdxBloccoTo utilizzo questo valore utilizzo modalità "vecchia" + IF(@IdxBloccoTo = 0) + BEGIN + -- calcolo la prima cella della posizione indicata.. + SET @IdxCella = ( + SELECT TOP 1 c.IdxCella + FROM Celle c INNER JOIN Blocchi b ON c.IdxBlocco=b.IdxBlocco + WHERE b.CodMag = CAST(@IdxPosizione AS NVARCHAR(50)) + ) + END + ELSE + BEGIN + -- calcolo la prima cella della posizione indicata.. + SET @IdxCella = ( + SELECT TOP 1 c.IdxCella + FROM Celle c + WHERE c.IdxBlocco = @IdxBloccoTo + ) + END + + -- inserisco il cartellino nella prima cella della posizione indicata.. + INSERT INTO PosizioneUdcCorrente(UDC, IdxCella, CodCS, DataRif, CodSoggetto) + VALUES(@Udc, @IdxCella, @CodCs, GETDATE(), @CodSoggetto) +------------------------------------------------------------------------------------------------------ + +------------------------------------------------------------------------------------------------------ +-- restituisco la tab dati con l'udc appena inserito +------------------------------------------------------------------------------------------------------ +SELECT * +FROM ElencoCartellini +WHERE UDC = @UDC +------------------------------------------------------------------------------------------------------ + +RETURN +go + +commit +go + + + + + INSERT INTO [dbo].[LogUpdateDb] ([Versione],[Data]) VALUES(516, GETDATE())