-- update stored varie set xact_abort on go begin transaction go set ANSI_NULLS on go /*************************************** * STORED stp_consumaMP * * Salva il movimento di consumo dell'UDC di MP indicato * * Steamware, S.E.L. * mod: 2010.09.24 * ****************************************/ create PROCEDURE BatchQueue.stp_consumaMP ( @XRPQLN INT, --è il num rap qualità @XNRETI NVARCHAR(10), -- è il numRapQual @XDTPRO INT, -- data 8 cifre aaaammgg @XTRPRO NVARCHAR(5) -- turno ) AS -- BOZZA DA COMPLETARE A CURA MAZZUCCONI!!! DECLARE @SQL AS NVARCHAR(1000) -- Faccio chiamata su AS400 SET @SQL = N' OPENQUERY( P65220DC, ''UPDATE MAZZT_DTV3.XOGIX00F' SET @SQL = @SQL + 'SET XDTPRO = ' + @XDTPRO + ', XTRPRO = ' + @XTRPRO SET @SQL = @SQL + ', XDESMT = ''F01'', XMATSC=''S'' ' SET @SQL = @SQL + 'WHERE XRPQLN =' + @XRPQLN + ' AND XNRETI = ' + @XNRETI + ''' )' EXEC dbo.sp_executesql @SQL RETURN go /*************************************** * STORED stp_annullaUDC * * annulla un UDC * * Steamware, S.E.L. * mod: 2010.04.28 * ****************************************/ alter PROCEDURE stp_annullaUDC ( @UDC VARCHAR(20), @CodSoggetto VARCHAR(17) ) AS DECLARE @CodEvento VARCHAR(10) DECLARE @CodTipoDichiaraz VARCHAR(1) SET @CodEvento = 'UDC_ANN' SET @CodTipoDichiaraz = 'U' BEGIN TRAN -- registro in StoricoCartellini INSERT INTO StoricoCartellini(DataEv, CodEvento, CodTipoDichiaraz, UDC, CodCS,CodCliente, RagSociale, Particolare, DescParticolare, DisegnoGrezzo, Esponente, CodImpianto, DescImpianto, CodStampo, Figura, DataFus, TurnoFus, CodImballo, CodSoggetto, NumCont, Tara, Qta, CodStato, IdxPosizione, PesoTot, PesoCad) SELECT GETDATE() AS DataEv, @CodEvento AS CodEvento, @CodTipoDichiaraz AS CodTipoDichiaraz, UDC, CodCS, CodCliente, RagSociale, Particolare, DescParticolare, DisegnoGrezzo, Esponente, CodImpianto, DescImpianto, CodStampo, Figura, DataFus, TurnoFus, CodImballo, @CodSoggetto AS CodSoggetto, NumCont, Tara, Qta, CodStato, IdxPosizione, PesoTot, PesoCad FROM ElencoCartellini WHERE (UDC = @UDC) -- faccio update UPDATE ElencoCartellini SET IdxPosizione = 0 WHERE UDC = @UDC COMMIT TRAN RETURN go commit go set xact_abort on go begin transaction go set ANSI_NULLS on go /*************************************** * STORED stp_getUdcDetailFullCode * * ottiene l'elenco degli UDC con i dati significativi partendo da un codice UDC COMPLETO * * Steamware, S.E.L. * mod: 2010.05.24 * ****************************************/ alter PROCEDURE stp_getUdcDetailFullCode ( @UDC VARCHAR(50), @CodCS VARCHAR(2) ) AS SELECT ElencoCartellini.UDC, ISNULL(ElencoCartellini.RagSociale, N'') AS RagSociale, ISNULL(ElencoCartellini.Particolare, N'') AS Particolare, ISNULL(ElencoCartellini.DescParticolare, N'') AS DescParticolare, ISNULL(ElencoCartellini.DisegnoGrezzo, N'') AS DisegnoGrezzo, ISNULL(ElencoCartellini.Esponente, N'') AS Esponente, ISNULL(ElencoCartellini.DescImpianto, N'') AS DescImpianto, ISNULL(ElencoCartellini.DataFus, N'') AS DataFus, ISNULL(ElencoCartellini.TurnoFus, 0) AS TurnoFus, ElencoCartellini.CodImballo, ElencoCartellini.Qta, ISNULL(AnagStatiProdotto.DescStato, N'') AS DescStato, ElencoCartellini.ModDate, ISNULL(Blocchi.CodMag, N'') AS CodMag, ISNULL(Blocchi.CodBlocco, N'') AS CodBlocco, ISNULL(Celle.CodCella, N'') AS CodCella, ISNULL(dbo.Celle.IdxCella, 0) AS IdxCella, ISNULL(Celle.X, 0) AS X, ISNULL(Celle.Y, 0) AS Y, ISNULL(Celle.Z, 0) AS Z, ElencoCartellini.IdxPosizione FROM AnagStatiProdotto RIGHT OUTER JOIN ElencoCartellini ON AnagStatiProdotto.CodStato = ElencoCartellini.CodStato AND AnagStatiProdotto.CodStato = ElencoCartellini.CodStato LEFT OUTER JOIN Celle INNER JOIN PosizioneUdcCorrente ON Celle.IdxCella = PosizioneUdcCorrente.IdxCella AND Celle.IdxCella = PosizioneUdcCorrente.IdxCella AND Celle.IdxCella = PosizioneUdcCorrente.IdxCella INNER JOIN Blocchi ON Celle.IdxBlocco = Blocchi.IdxBlocco INNER JOIN AnagMag ON Blocchi.CodMag = AnagMag.CodMag AND Blocchi.CodCS = AnagMag.CodCS AND Blocchi.CodMag = AnagMag.CodMag AND Blocchi.CodCS = AnagMag.CodCS AND Blocchi.CodMag = AnagMag.CodMag AND Blocchi.CodCS = AnagMag.CodCS ON ElencoCartellini.UDC = PosizioneUdcCorrente.UDC WHERE (ElencoCartellini.UDC = @UDC) AND (ElencoCartellini.CodCS = @CodCS) RETURN go /*************************************** * STORED stp_getUdcDetailFullCode * * ottiene l'elenco degli UDC con i dati significativi partendo da un valore da cercare come LIKE in * - UDC * - Particolare * * Steamware, S.E.L. * mod: 2010.05.24 * ****************************************/ alter PROCEDURE stp_getUdcDetailLikeSearch ( @searchVal VARCHAR(50), @CodCS VARCHAR(2) ) AS SELECT ElencoCartellini.UDC, ISNULL(ElencoCartellini.RagSociale, N'') AS RagSociale, ISNULL(ElencoCartellini.Particolare, N'') AS Particolare, ISNULL(ElencoCartellini.DescParticolare, N'') AS DescParticolare, ISNULL(ElencoCartellini.DisegnoGrezzo, N'') AS DisegnoGrezzo, ISNULL(ElencoCartellini.Esponente, N'') AS Esponente, ISNULL(ElencoCartellini.DescImpianto, N'') AS DescImpianto, ISNULL(ElencoCartellini.DataFus, N'') AS DataFus, ISNULL(ElencoCartellini.TurnoFus, 0) AS TurnoFus, ElencoCartellini.CodImballo, ElencoCartellini.Qta, ISNULL(AnagStatiProdotto.DescStato, N'') AS DescStato, ElencoCartellini.ModDate, ISNULL(Blocchi.CodMag, N'') AS CodMag, ISNULL(Blocchi.CodBlocco, N'') AS CodBlocco, ISNULL(Celle.CodCella, N'') AS CodCella, ISNULL(dbo.Celle.IdxCella, 0) AS IdxCella, ISNULL(Celle.X, 0) AS X, ISNULL(Celle.Y, 0) AS Y, ISNULL(Celle.Z, 0) AS Z, ElencoCartellini.IdxPosizione FROM AnagStatiProdotto RIGHT OUTER JOIN ElencoCartellini ON AnagStatiProdotto.CodStato = ElencoCartellini.CodStato AND AnagStatiProdotto.CodStato = ElencoCartellini.CodStato LEFT OUTER JOIN Celle INNER JOIN PosizioneUdcCorrente ON Celle.IdxCella = PosizioneUdcCorrente.IdxCella AND Celle.IdxCella = PosizioneUdcCorrente.IdxCella AND Celle.IdxCella = PosizioneUdcCorrente.IdxCella INNER JOIN Blocchi ON Celle.IdxBlocco = Blocchi.IdxBlocco INNER JOIN AnagMag ON Blocchi.CodMag = AnagMag.CodMag AND Blocchi.CodCS = AnagMag.CodCS AND Blocchi.CodMag = AnagMag.CodMag AND Blocchi.CodCS = AnagMag.CodCS AND Blocchi.CodMag = AnagMag.CodMag AND Blocchi.CodCS = AnagMag.CodCS ON ElencoCartellini.UDC = PosizioneUdcCorrente.UDC WHERE (ElencoCartellini.CodCS = @CodCS) AND ((ElencoCartellini.UDC like '%'+ @searchVal+'%') OR (ElencoCartellini.Particolare like '%'+ @searchVal+'%') OR (ElencoCartellini.RagSociale like '%'+ @searchVal+'%')) RETURN go commit go set xact_abort on go begin transaction go set ANSI_NULLS on go /*************************************** * STORED stp_rappQualGetByNumRapQual * * Ottiene l'elenco dei record di rapp qualità di AS dato il numero del rapporto di qualità che NON HANNO UDC * * Steamware, S.E.L. * mod: 2010.09.23 * ****************************************/ alter PROCEDURE stp_rappQualGetByNumRapQual ( @nRapQual INT ) AS -- restituisce le righe richieste SELECT * FROM RilPro.RapQual WHERE (nRapQual = @nRapQual)-- AND (UDC IS NULL) RETURN go /*************************************** * STORED stp_sbloccaUdc * * sblocca un dato UDC per modifica * * Steamware, S.E.L. * mod: 2010.04.28 * ****************************************/ alter PROCEDURE stp_sbloccaUdc ( @UDC VARCHAR(20), @CodSoggetto VARCHAR(17) ) AS DECLARE @CodEvento VARCHAR(10) DECLARE @CodTipoDichiaraz VARCHAR(1) SET @CodEvento = 'UDC_SBL' SET @CodTipoDichiaraz = 'U' BEGIN TRAN -- registro in StoricoCartellini INSERT INTO StoricoCartellini(DataEv, CodEvento, CodTipoDichiaraz, UDC, CodCS,CodCliente, RagSociale, Particolare, DescParticolare, DisegnoGrezzo, Esponente, CodImpianto, DescImpianto, CodStampo, Figura, DataFus, TurnoFus, CodImballo, CodSoggetto, NumCont, Tara, Qta, CodStato, IdxPosizione, PesoTot, PesoCad) SELECT GETDATE() AS DataEv, @CodEvento AS CodEvento, @CodTipoDichiaraz AS CodTipoDichiaraz, UDC, CodCS, CodCliente, RagSociale, Particolare, DescParticolare, DisegnoGrezzo, Esponente, CodImpianto, DescImpianto, CodStampo, Figura, DataFus, TurnoFus, CodImballo, @CodSoggetto AS CodSoggetto, NumCont, Tara, Qta, CodStato, IdxPosizione, PesoTot, PesoCad FROM ElencoCartellini WHERE (UDC = @UDC) -- faccio update UPDATE ElencoCartellini SET ModDate = GETDATE() WHERE UDC = @UDC COMMIT TRAN RETURN go /*************************************** * STORED stp_scaricaUdc * * elimina dalle posizioni correnti un UDC, salvandone la posizione precedente nella tab storica (per scaricamento / spedizione) * * Steamware, S.E.L. * mod: 2010.09.28 * ****************************************/ alter PROCEDURE stp_scaricaUdc ( @UDC VARCHAR(50), @IdxCellaFrom INT, @IdxPosizione INT ) AS BEGIN TRAN /* -- inizio mettendo in storico la posizione attuale dell'UDC (SE esiste) INSERT INTO PosizioneUdcStorico(UDC, IdxCella, CodCS, DataInizio, DataFine) ( SELECT UDC, IdxCella, CodCS, DataRif as DataInizio, GETDATE() as DataFine FROM PosizioneUdcCorrente WHERE UDC = @UDC AND IdxCella = @IdxCellaFrom ) */ -- libero la posizione attuale dell'UDC (se c'è...) DELETE FROM PosizioneUdcCorrente WHERE UDC = @UDC AND IdxCella = @IdxCellaFrom -- aggiorno l'UDC come posizione finale... UPDATE ElencoCartellini SET IdxPosizione = @IdxPosizione WHERE UDC = @UDC COMMIT TRAN RETURN go commit go set xact_abort on go begin transaction go set ANSI_NULLS on go /*************************************** * STORED stp_UDC_insNew * * crea un nuovo record nella TabStatoOdpUdc e restituisce il codice UDC appena creato * * Steamware, S.E.L. * mod: 2010.04.28 * ****************************************/ alter PROCEDURE stp_UDC_insNew ( @CodCS VARCHAR(2), @Flusso VARCHAR(2), @Anno VARCHAR(2), @Tara FLOAT, @CodImballo AS VARCHAR(50), @CodTipoDichiaraz CHAR(1), @CodSoggetto VARCHAR(17) ) AS -- DECLARE iniziali DECLARE @UDC AS VARCHAR(20) DECLARE @numFlu AS INT DECLARE @numUdc AS INT DECLARE @nextUdc AS INT ------------------------------------------------------------------------------------------------------ -- 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 UDC l'ultimo valido SET @numUdc = ( SELECT count(*) FROM ContatoriUdc WHERE CodCS = @CodCS AND Flusso = @Flusso AND Anno = @Anno ) -- controllo se record c'è... IF(@numUdc > 0) 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 ------------------------------------------------------------------------------------------------------ -- ottengo il nuovo codice UDC completo --SET @UDC = 'U' + @CodCS + @Flusso + @Anno + dbo.f_padLeft(CAST(@numUdc AS VARCHAR(6)), 6, '0') SET @UDC = dbo.componiUdc(@CodCS, @Flusso, @Anno, @numUdc) -- inserisco un nuovo record INSERT INTO ElencoCartellini(CodCS, UDC, Tara, IdxPosizione, Qta, CodImballo, CreateDate, ModDate) VALUES (@CodCS, @UDC, @Tara, 0, 0, @CodImballo, GETDATE(), GETDATE()) ------------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------------ -- restituisco la tab dati con l'udc appena inserito ------------------------------------------------------------------------------------------------------ SELECT * FROM ElencoCartellini WHERE UDC = @UDC ------------------------------------------------------------------------------------------------------ RETURN 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(20), @DoDeleteUdcParent BIT ) AS -- DECLARE iniziali DECLARE @UDC AS VARCHAR(20) 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 = ( SELECT ISNULL(RagSociale, 'ND') AS RagSociale FROM RilPro.AnagClienti WHERE (CodCliente = @CodCliente) ) -- Cerco descrizione del particolare... SET @DescParticolare = ( SELECT ISNULL(DescParticolare, 'ND') AS DescParticolare FROM RilPro.AnagParticolari WHERE (Particolare = @Particolare) ) -- cerco codice disegno grezzo SET @DisegnoGrezzo = ( SELECT ISNULL(DisegnoGrezzo, 'ND') AS DescParticolare FROM RilPro.AnagParticolari WHERE (Particolare = @Particolare) ) -- cerco descrizione Impianto SET @DescImpianto = ( SELECT ISNULL(DescImpianto, 'ND') AS 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 UDC l'ultimo valido SET @numUdc = ( SELECT count(*) FROM ContatoriUdc WHERE CodCS = @CodCS AND Flusso = @Flusso AND Anno = @Anno ) -- controllo se record c'è... IF(@numUdc > 0) 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 = 'U' + @CodCS + @Flusso + @Anno + dbo.f_padLeft(CAST(@numUdc AS VARCHAR(6)), 6, '0') 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) 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()) -- inserisco relazione parent-child tra UDC vecchio (tara) e nuovo (pesa) INSERT INTO RelazUDC(UDC_parent, UDC_child) VALUES (@UDC_parent, @UDC) COMMIT TRAN ------------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------------ -- Ciclo secondario x eventuale cancelalzione 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 -- 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)) ) -- inserisco il cartellino nella prima cella della posizione indicata.. INSERT INTO PosizioneUdcCorrente VALUES (@UDC, @IdxCella, @CodCS, GETDATE()) ------------------------------------------------------------------------------------------------------ /* ------------------------------------------------------------------------------------------------------ -- Salvataggio dati evento in tab StoricoEventi ------------------------------------------------------------------------------------------------------ INSERT INTO StoricoEventi(DataEv, CodEvento, CodOperatore, CodTipoDichiaraz, CodCS, UDC, Qta, PesoTot, PesoCad, Particolare, CodStato, CodStampo, Figura, FiguraIncisa) VALUES (GETDATE(), @CodEvento, @CodOperatore, @CodTipoDichiaraz, @CodCS, @UDC, @Qta, @PesoTot, @PesoCad, @Particolare, @CodStato, @CodStampo, @Figura, @FiguraIncisa) ------------------------------------------------------------------------------------------------------ */ ------------------------------------------------------------------------------------------------------ -- restituisco la tab dati con l'udc appena inserito ------------------------------------------------------------------------------------------------------ SELECT * FROM ElencoCartellini WHERE UDC = @UDC ------------------------------------------------------------------------------------------------------ RETURN go /*************************************** * STORED stp_UDC_update * * aggiorna un cartellino dato il suo codice UDC e tutti i parametri da aggiornare * * Steamware, S.E.L. * mod: 2010.04.30 * ****************************************/ alter PROCEDURE stp_UDC_update ( @UDC_edit VARCHAR(20), @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(20) ) 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 ------------------------------------------------------------------------------------------------------ -- Caricamento Dati da anagrafica ------------------------------------------------------------------------------------------------------ -- cerco la ragione sociale... SET @RagSociale = ( SELECT ISNULL(RagSociale, 'ND') AS RagSociale FROM RilPro.AnagClienti WHERE (CodCliente = @CodCliente) ) -- Cerco descrizione del particolare... SET @DescParticolare = ( SELECT ISNULL(DescParticolare, 'ND') AS DescParticolare FROM RilPro.AnagParticolari WHERE (Particolare = @Particolare) ) -- cerco codice disegno grezzo SET @DisegnoGrezzo = ( SELECT ISNULL(DisegnoGrezzo, 'ND') AS DescParticolare FROM RilPro.AnagParticolari WHERE (Particolare = @Particolare) ) -- cerco descrizione Impianto SET @DescImpianto = ( SELECT ISNULL(DescImpianto, 'ND') AS DescImpianto FROM AnagImpianti WHERE (CodImpianto = @CodImpianto) ) -- Calcolo contatore intero successivo x il contenitore... SET @NumCont = ( SELECT NumCont FROM ElencoCartellini WHERE (UDC = @UDC_edit) ) ------------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------------ -- 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 ------------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------------ -- Ciclo principale x edit record ------------------------------------------------------------------------------------------------------ BEGIN TRAN -- registro in StoricoCartellini INSERT INTO StoricoCartellini(DataEv, CodEvento, CodTipoDichiaraz, UDC, CodCS,CodCliente, RagSociale, Particolare, DescParticolare, DisegnoGrezzo, Esponente, CodImpianto, DescImpianto, CodStampo, Figura, DataFus, TurnoFus, CodImballo, CodSoggetto, NumCont, Tara, Qta, CodStato, IdxPosizione, PesoTot, PesoCad) SELECT GETDATE() AS DataEv, @CodEvento AS CodEvento, @CodTipoDichiaraz AS CodTipoDichiaraz, UDC, CodCS, CodCliente, RagSociale, Particolare, DescParticolare, DisegnoGrezzo, Esponente, CodImpianto, DescImpianto, CodStampo, Figura, DataFus, TurnoFus, CodImballo, @CodSoggetto AS CodSoggetto, NumCont, Tara, Qta, CodStato, IdxPosizione, PesoTot, PesoCad FROM ElencoCartellini WHERE (UDC = @UDC_edit) -- elimino vecchio record parent/child DELETE FROM RelazUDC WHERE (UDC_child = @UDC_edit) -- modifico il record UPDATE ElencoCartellini SET CodCS = @CodCS, CodCliente = @CodCliente, RagSociale = @RagSociale, Particolare = @Particolare, DescParticolare = @DescParticolare, DisegnoGrezzo = @DisegnoGrezzo, Esponente = @Esponente, CodImpianto = @CodImpianto, DescImpianto = @DescImpianto, CodStampo = @CodStampo, Figura = @Figura, DataFus = @DataFus, TurnoFus = @TurnoFus, CodImballo = @CodImballo, CodSoggetto = @CodSoggetto, NumCont = @NumCont, Tara = @Tara, Qta = @Qta, CodStato = @CodStato, IdxPosizione = @IdxPosizione, PesoTot = @PesoTot, PesoCad = @PesoCad, ModDate = GETDATE() WHERE UDC = @UDC_edit -- inserisco relazione aprent-child tra UDC vecchio (tara) e nuovo (pesa) INSERT INTO RelazUDC(UDC_parent, UDC_child) VALUES (@UDC_parent, @UDC_edit) COMMIT TRAN ------------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------------ -- restituisco la tab dati con l'udc appena inserito ------------------------------------------------------------------------------------------------------ SELECT * FROM ElencoCartellini WHERE UDC = @UDC_edit ------------------------------------------------------------------------------------------------------ RETURN go /*************************************** * STORED stp_UDC_updateIdxPosizione * * aggiorna un cartellino x la sua posizione logica * * Steamware, S.E.L. * mod: 2010.06.12 * ****************************************/ alter PROCEDURE stp_UDC_updateIdxPosizione ( @UDC VARCHAR(20), @CodSoggetto VARCHAR(17), @CodTipoDichiaraz CHAR(1), @CodEvento VARCHAR(10), @IdxPosizione INT ) AS ------------------------------------------------------------------------------------------------------ -- Ciclo principale x edit record ------------------------------------------------------------------------------------------------------ BEGIN TRAN -- registro in StoricoCartellini INSERT INTO StoricoCartellini(DataEv, CodEvento, CodTipoDichiaraz, UDC, CodCS,CodCliente, RagSociale, Particolare, DescParticolare, DisegnoGrezzo, Esponente, CodImpianto, DescImpianto, CodStampo, Figura, DataFus, TurnoFus, CodImballo, CodSoggetto, NumCont, Tara, Qta, CodStato, IdxPosizione, PesoTot, PesoCad) SELECT GETDATE() AS DataEv, @CodEvento AS CodEvento, @CodTipoDichiaraz AS CodTipoDichiaraz, UDC, CodCS, CodCliente, RagSociale, Particolare, DescParticolare, DisegnoGrezzo, Esponente, CodImpianto, DescImpianto, CodStampo, Figura, DataFus, TurnoFus, CodImballo, @CodSoggetto AS CodSoggetto, NumCont, Tara, Qta, CodStato, IdxPosizione, PesoTot, PesoCad FROM ElencoCartellini WHERE (UDC = @UDC) -- modifico il record UPDATE ElencoCartellini SET IdxPosizione = @IdxPosizione, ModDate = GETDATE() WHERE UDC = @UDC COMMIT TRAN ------------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------------ -- restituisco la tab dati con l'udc appena inserito ------------------------------------------------------------------------------------------------------ SELECT * FROM ElencoCartellini WHERE UDC = @UDC ------------------------------------------------------------------------------------------------------ RETURN go /*************************************** * STORED stp_UDC_updateQty * * aggiorna un cartellino x la sua quantità * * Steamware, S.E.L. * mod: 2010.06.12 * ****************************************/ alter PROCEDURE stp_UDC_updateQty ( @UDC VARCHAR(20), @CodSoggetto VARCHAR(17), @CodTipoDichiaraz CHAR(1), @CodEvento VARCHAR(10), @Qta DECIMAL(10,2) ) AS ------------------------------------------------------------------------------------------------------ -- Ciclo principale x edit record ------------------------------------------------------------------------------------------------------ BEGIN TRAN -- registro in StoricoCartellini INSERT INTO StoricoCartellini(DataEv, CodEvento, CodTipoDichiaraz, UDC, CodCS,CodCliente, RagSociale, Particolare, DescParticolare, DisegnoGrezzo, Esponente, CodImpianto, DescImpianto, CodStampo, Figura, DataFus, TurnoFus, CodImballo, CodSoggetto, NumCont, Tara, Qta, CodStato, IdxPosizione, PesoTot, PesoCad) SELECT GETDATE() AS DataEv, @CodEvento AS CodEvento, @CodTipoDichiaraz AS CodTipoDichiaraz, UDC, CodCS, CodCliente, RagSociale, Particolare, DescParticolare, DisegnoGrezzo, Esponente, CodImpianto, DescImpianto, CodStampo, Figura, DataFus, TurnoFus, CodImballo, @CodSoggetto AS CodSoggetto, NumCont, Tara, Qta, CodStato, IdxPosizione, PesoTot, PesoCad FROM ElencoCartellini WHERE (UDC = @UDC) -- modifico il record UPDATE ElencoCartellini SET Qta = @Qta, ModDate = GETDATE() WHERE UDC = @UDC COMMIT TRAN ------------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------------ -- restituisco la tab dati con l'udc appena inserito ------------------------------------------------------------------------------------------------------ SELECT * FROM ElencoCartellini WHERE UDC = @UDC ------------------------------------------------------------------------------------------------------ RETURN go commit go -- ulteriori fix set xact_abort on go begin transaction go INSERT INTO dbo.AnagBilance VALUES (N'MP', N'MP', N'MA') go commit transaction go set xact_abort on go begin transaction go UPDATE dbo.AnagTipoDelibere SET CodEvento=N'DelWipPost' WHERE CodTipoDelibera=N'DelibWipPost' go commit transaction go set xact_abort on go begin transaction go DELETE FROM dbo.AS400_MagCont WHERE CodMagAS=N'56' go commit transaction go set xact_abort on go begin transaction go INSERT INTO dbo.Permessi VALUES ('LAB', 'menu.aspx', 3, 0, 'GestLaboratorioMP', 'GestLaboratorioMPExpl') INSERT INTO dbo.Permessi VALUES ('LAB_consumaUdc', 'LabConsumaUdc.aspx', 3, 2, 'ConsUDC', 'ConsUDCExpl') INSERT INTO dbo.Permessi VALUES ('LAB_stampaUdc', 'LabStampaUdc.aspx', 3, 1, 'AcqPrntUdc', 'AcqPrntUdcExpl') go commit transaction go set xact_abort on go begin transaction go INSERT INTO dbo.Permessi2Funzione VALUES ('LAB', N'GMW_lab', 'S') INSERT INTO dbo.Permessi2Funzione VALUES ('LAB_consumaUdc', N'GMW_lab', 'S') INSERT INTO dbo.Permessi2Funzione VALUES ('LAB_stampaUdc', N'GMW_lab', 'S') go commit transaction go /****** Object: StoredProcedure [dbo].[stp_UDC_insNew] Script Date: 09/29/2010 14:53:58 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO /*************************************** * STORED stp_UDC_insNew * * crea un nuovo record nella TabStatoOdpUdc e restituisce il codice UDC appena creato * * Steamware, S.E.L. * mod: 2010.04.28 * ****************************************/ ALTER PROCEDURE [dbo].[stp_UDC_insNew] ( @CodCS VARCHAR(2), @Flusso VARCHAR(2), @Anno VARCHAR(2), @Tara FLOAT, @CodImballo AS VARCHAR(50), @CodTipoDichiaraz CHAR(1), @CodSoggetto VARCHAR(17) ) AS -- DECLARE iniziali DECLARE @UDC AS VARCHAR(20) DECLARE @numFlu AS INT DECLARE @numUdc AS INT DECLARE @nextUdc AS INT ------------------------------------------------------------------------------------------------------ -- 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 UDC l'ultimo valido SET @numUdc = ( SELECT count(*) FROM ContatoriUdc WHERE CodCS = @CodCS AND Flusso = @Flusso AND Anno = @Anno ) -- controllo se record c'è... IF(@numUdc > 0) 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 ------------------------------------------------------------------------------------------------------ -- ottengo il nuovo codice UDC completo --SET @UDC = 'U' + @CodCS + @Flusso + @Anno + dbo.f_padLeft(CAST(@numUdc AS VARCHAR(6)), 6, '0') SET @UDC = dbo.componiUdc(@CodCS, @Flusso, @Anno, @numUdc) -- inserisco un nuovo record INSERT INTO ElencoCartellini(CodCS, UDC, Tara, IdxPosizione, Qta, CodImballo, CodSoggetto, CreateDate, ModDate) VALUES (@CodCS, @UDC, @Tara, 0, 0, @CodImballo, @CodSoggetto, GETDATE(), GETDATE()) ------------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------------ -- restituisco la tab dati con l'udc appena inserito ------------------------------------------------------------------------------------------------------ SELECT * FROM ElencoCartellini WHERE UDC = @UDC ------------------------------------------------------------------------------------------------------ RETURN GO -- registro versione... INSERT INTO [dbo].[LogUpdateDb] ([Versione],[Data]) VALUES(260, GETDATE()) GO