set xact_abort on go begin transaction go set ANSI_NULLS on go /***************************************** * STORED stp_BORI_getByBolla * * Cerca la bolla richiesta x chiave * * Steamware, S.E.L. * mod: 2011.05.05 * ****************************************/ alter PROCEDURE stp_BORI_getByBolla ( @RaggrMagazz NVARCHAR(2), @GruppoBolle NVARCHAR(1), @NumeroBolla NUMERIC(6,0), @DataBolla NUMERIC(8,0), @Particolare NVARCHAR(15) ) AS SELECT * FROM RawData.BORI202J WHERE CDMFS = @RaggrMagazz AND GRBOS = @GruppoBolle AND NRBOS = @NumeroBolla AND DTBOS = @DataBolla AND CDARS = @Particolare RETURN go /***************************************** * STORED stp_BORI_getByBollaFull * * Cerca la bolla richiesta x chiave completa * * Steamware, S.E.L. * mod: 2011.05.05 * ****************************************/ create PROCEDURE stp_BORI_getByBollaFull ( @RaggrMagazz NVARCHAR(2), @GruppoBolle NVARCHAR(1), @NumeroBolla NUMERIC(6,0), @DataBolla NUMERIC(8,0), @Particolare NVARCHAR(15) ) AS SELECT * FROM RawData.BORI202J WHERE CDMFS = @RaggrMagazz AND GRBOS = @GruppoBolle AND NRBOS = @NumeroBolla AND DTBOS = @DataBolla AND CDARS = @Particolare RETURN go /***************************************** * STORED stp_BORI_getByBollaPart * * Cerca la bolla richiesta x chiave parziale (no particolare) * * Steamware, S.E.L. * mod: 2011.05.05 * ****************************************/ create PROCEDURE stp_BORI_getByBollaPart ( @RaggrMagazz NVARCHAR(2), @GruppoBolle NVARCHAR(1), @NumeroBolla NUMERIC(6,0), @DataBolla NUMERIC(8,0) ) AS SELECT * FROM RawData.BORI202J WHERE CDMFS = @RaggrMagazz AND GRBOS = @GruppoBolle AND NRBOS = @NumeroBolla AND DTBOS = @DataBolla RETURN go commit go set xact_abort on go begin transaction go DELETE FROM dbo.Permessi2Funzione WHERE COD_PERMESSO='MAG_logico' and COD_FUNZIONE=N'GMW_user' go commit transaction go set xact_abort on go begin transaction go set ANSI_NULLS on go /*************************************** * STORED stp_RLP_eliminaNonPrelevate * * elimina eventuali righe non prelevate * * Steamware, S.E.L. * mod: 2010.08.31 * ****************************************/ create PROCEDURE stp_RLP_eliminaNonPrelevate ( @CodLista NVARCHAR(12) ) AS DELETE FROM RigheListePrelievo WHERE CodLista = @CodLista AND Prelevato = 0 RETURN go commit go set xact_abort on go begin transaction go set ANSI_NULLS on go /***************************************** * STORED stp_DtMtrx_import * * Recupera dati Gitterbox/DataMatrix partendo leggendo dati successivi all'ultimo import e importanto in tab GMW * * Steamware, S.E.L. * mod: 2011.04.29 * ****************************************/ alter PROCEDURE stp_DtMtrx_import ( @CodCS VARCHAR(2), @IdxPosizione INT ) AS ------------------------------------------------------------------------------------------------------ -- leggo data ultimo import (o creo record...) ------------------------------------------------------------------------------------------------------ DECLARE @nomeFlusso AS NVARCHAR(50) DECLARE @lastImport AS DATETIME DECLARE @trovati AS INT -- imposto valori SET @nomeFlusso = 'DataMatrix' SET @lastImport = DATEADD(yy,-10,GETDATE()) -- inizializzo a -10 anni ... -- sistemo tab registrazione import... BEGIN TRAN -- cerco nella tab log ultima data caricamento SET @trovati = ( SELECT COUNT(*) FROM logImportFlussi WHERE NomeFlusso = @nomeFlusso ) -- controllo se record c'è... IF(@trovati > 0) BEGIN SET @lastImport = ( SELECT LastImport FROM LogImportFlussi WHERE NomeFlusso = @nomeFlusso ) END ELSE BEGIN -- lo creo! INSERT INTO LogImportFlussi(NomeFlusso, LastImport) VALUES (@nomeFlusso, @lastImport) END COMMIT TRAN ------------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------------ -- ora gestisco il vero caricamento... ------------------------------------------------------------------------------------------------------ -- filtro e salvo in tabella... gitterbox validi SOLO se iniziano per "U" DECLARE @newData TABLE ( CodDataMatrix numeric(23, 0) , CodGitterbox char(10) , NumConchiglia int , NumDisegno numeric(7, 0) , EsponenteDisegno tinyint , CodDifettoScarto varchar(5) , InizioPreparazione smalldatetime , FinePreparazione smalldatetime , InizioIniezione smalldatetime , FineIniezione smalldatetime , MagDestinazione varchar(2) , DataImport smalldatetime ) INSERT INTO @newData SELECT CodDataMatrix, CodGitterbox, NumConchiglia, NumDisegno, EsponenteDisegno, CodDifettoScarto, InizioPreparazione, FinePreparazione, InizioIniezione, FineIniezione, MagDestinazione, DataImport FROM v_trasfDataMatrix WHERE DataImport > @lastImport AND LEFT(CodGitterbox, 1) = 'U' -- creo UDC da gitterbox nuovi INSERT INTO ElencoCartellini(UDC, Particolare, DataFus) SELECT DISTINCT nd.CodGitterbox, null, MIN( InizioIniezione) FROM @newData nd LEFT OUTER JOIN ElencoCartellini ec ON nd.CodGitterbox COLLATE SQL_Latin1_General_CP1_CI_AS = ec.UDC WHERE ec.UDC IS NULL GROUP BY nd.CodGitterbox DECLARE @udc NVARCHAR(50) DECLARE @Particolare NVARCHAR(50) DECLARE @NumDisegno NVARCHAR(50) DECLARE @EsponenteDisegno NVARCHAR(50) DECLARE @Qta INT DECLARE @IdxCellaTo INT DECLARE @adesso DATETIME DECLARE @posTrovate INT SET @adesso = GETDATE() SET @posTrovate = 0 DECLARE cursoreImport CURSOR FOR SELECT nd.CodGitterbox, tp.Particolare, tp.NumDisegno, tp.EsponenteDisegno, dbo.getNumDatamatrix(nd.CodGitterbox) FROM @newData nd INNER JOIN v_transcParticolari tp ON nd.NumDisegno = tp.NumDisegno AND nd.EsponenteDisegno = tp.EsponenteDisegno OPEN cursoreImport FETCH NEXT FROM cursoreImport INTO @udc, @Particolare, @NumDisegno, @EsponenteDisegno, @Qta WHILE @@FETCH_STATUS = 0 BEGIN -- aggiorno gli UDC gitterbox esistenti per quantità tra quelli dei dati da importare... UPDATE ElencoCartellini SET CodCS = @CodCS, IdxPosizione = @IdxPosizione, CreateDate = @adesso, Particolare = @Particolare, DisegnoGrezzo = @NumDisegno, Esponente = @EsponenteDisegno, Qta = @Qta, Figura = '', CodImballo ='', Tara = 0, PesoTot = 0, PesoCad = 0, CodStato = 'Fin', NumCont = 1, TurnoFus = 0, ModDate = @adesso WHERE UDC = @udc -- indico cella UDC corrente... calcolo la prima cella della nuova posizione... SET @IdxCellaTo = ( SELECT TOP 1 IdxCella FROM Celle WHERE IdxBlocco = ( SELECT IdxBlocco FROM Blocchi WHERE CodMag=CAST(@IdxPosizione AS NVARCHAR(50))) ) -- controllo se posizione non ancora creata... SET @posTrovate = ( SELECT COUNT(*) FROM PosizioneUdcCorrente WHERE UDC = @udc ) IF( @posTrovate =0) BEGIN INSERT INTO PosizioneUdcCorrente VALUES (@udc, @IdxCellaTo, @CodCS, @adesso) END FETCH NEXT FROM cursoreImport INTO @udc, @Particolare, @NumDisegno, @EsponenteDisegno, @Qta END CLOSE cursoreImport DEALLOCATE cursoreImport -- inserisco datamatrix da ultimo import INSERT INTO ElencoDataMatrix SELECT * FROM @newData -- aggiorno dati ultimo caricamento SET @lastImport = ( SELECT ISNULL(MAX(DataImport),@lastImport) FROM @newData ) UPDATE LogImportFlussi SET LastImport = @lastImport WHERE NomeFlusso = @nomeFlusso RETURN go commit go -- registro versione... INSERT INTO [dbo].[LogUpdateDb] ([Versione],[Data]) VALUES(365, GETDATE()) GO