Files
Samuele E. Locatelli 2b1479f315 spostamento update SQL
2018-05-03 15:06:47 +02:00

101 lines
2.2 KiB
Transact-SQL

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