set xact_abort on; go begin transaction; go set ANSI_NULLS on; go /************************************* * STORED PROCEDURE stp_repDonati_getDatiProdMacchina * restituisce i dati di produzione di una macchina * * modif.: S.E.L. - 2012.03.08 **************************************/ alter PROCEDURE stp_repDonati_getDatiProdMacchina ( @idxMacchina NVARCHAR(50) ) AS -- calcolo codice articolo DECLARE @CodArticolo NVARCHAR (50) SET @CodArticolo = ( SELECT CodArticolo FROM Kanban k INNER JOIN StatoMacchine sm ON k.MatricolaKanban=sm.MatricolaKanban WHERE sm.IdxMacchina = @idxMacchina ) -- calcolo il codice operatore DECLARE @CodOperatore INT SET @CodOperatore = ( SELECT MatrOpr FROM StatoMacchine WHERE IdxMacchina = @idxMacchina ) -- calcolo il codice ODL DECLARE @idxODL INT SET @idxODL = ( SELECT idxODL FROM ODL WHERE CodArticolo = @CodArticolo AND IdxMacchina = @idxMacchina AND (ISNULL(DataFine,DATEADD(hh,1,GETDATE())) > GETDATE()) ) DECLARE @PezziConf INT SET @PezziConf = ( SELECT ISNULL(SUM(TotPzProd),0) FROM DatiConfermati WHERE idxODL = @idxOdl ) DECLARE @PezziLanciati INT SET @PezziLanciati =( SELECT ISNULL(SUM(NumPezzi),0) FROM ODL WHERE idxODL = @idxOdl ) DECLARE @TCAss DECIMAL(18,8) SET @TCAss = ( SELECT ISNULL(SUM(TCAssegnato),0) FROM ODL WHERE idxODL = @idxOdl ) -- dato l'ODL calcolo il TC Medio ed i pezzi prodotti per l'ODL DECLARE @inizioOdl DATETIME SET @inizioOdl = ( SELECT DataInizio FROM ODL WHERE idxODL = @idxOdl ) DECLARE @PezziProd INT SET @PezziProd = ( SELECT COUNT(*) FROM TempiCicloRilevati WHERE DataOraRif >= @inizioOdl AND TCMedio < 3 * @TCAss ) DECLARE @TCMed DECIMAL(18,8) SET @TCMed = ( SELECT SUM(TCMedio)/@PezziProd FROM TempiCicloRilevati WHERE DataOraRif >= @inizioOdl AND TCMedio < 3 * @TCAss ) SELECT @CodArticolo as CodArticolo, @PezziLanciati as PezziLanciati, @PezziProd as PezziProd, @PezziConf as PezziConf, @TCAss AS TCAssegnato, @TCMed AS TCMedio, @CodOperatore AS CodOperatore RETURN go commit; go -- registro versione... INSERT INTO [dbo].[LogUpdateDb] ([Versione],[Data]) VALUES(305, GETDATE()) GO