1491 lines
50 KiB
Transact-SQL
1491 lines
50 KiB
Transact-SQL
-- schema
|
|
create schema man authorization dbo
|
|
go
|
|
|
|
-- stored x trigger...
|
|
set xact_abort on
|
|
go
|
|
|
|
begin transaction
|
|
go
|
|
|
|
set ANSI_NULLS on
|
|
go
|
|
|
|
/*************************************
|
|
* STORED PROCEDURE stp_EL_processaEvento
|
|
* Processa un singolo evento
|
|
*
|
|
* Note : richiamata anche nel trigger della tabella EventList
|
|
*
|
|
* modif.:
|
|
**************************************/
|
|
create PROCEDURE stp_EL_processaEvento
|
|
(
|
|
@IdxTipo INT,
|
|
@IdxMacchina NVARCHAR(50),
|
|
@MatricolaKanban NVARCHAR(50),
|
|
@DataOra DATETIME,
|
|
@NumPz INT,
|
|
@FlgAggStato CHAR(1) = 'Y' -- Y/N = elabora o meno aggiornamento StatiMacchine e DatiMacchine
|
|
)
|
|
AS
|
|
|
|
---- parametri x test
|
|
--DECLARE @IdxTipo INT = 0
|
|
--DECLARE @IdxMacchina NVARCHAR(50)
|
|
--DECLARE @DataOra DATETIME
|
|
--DECLARE @MatricolaKanban NVARCHAR(50)
|
|
--DECLARE @TCMedio DECIMAL(18,8)
|
|
--DECLARE @NumPz INT
|
|
|
|
--SET @IdxTipo = ( SELECT i.IdxTipo FROM inserted i )
|
|
--SET @IdxMacchina = ( SELECT i.IdxMacchina FROM inserted i )
|
|
--SET @DataOra = ( SELECT i.InizioStato FROM inserted i )
|
|
--SET @MatricolaKanban = ( SELECT i.MatricolaKanban FROM inserted i )
|
|
--SET @NumPz = ( SELECT CASE WHEN (ISNUMERIC(value)=1) THEN value ELSE 1 END FROM inserted i )
|
|
|
|
-- INIZIO DICHIARAZIONI
|
|
DECLARE @TabAzione NVARCHAR(50) = '';
|
|
DECLARE @Azione NVARCHAR(50) = '';
|
|
DECLARE @CodArticolo NVARCHAR(50) = ''
|
|
DECLARE @MatricolaKanbanOk NVARCHAR(50);
|
|
DECLARE @DataOraPrec DATETIME;
|
|
DECLARE @TCMedio DECIMAL(18,8) = 0;
|
|
|
|
/* recupero altri valori ( se non trova record lascia il valore invariato cioè = '' )*/
|
|
SELECT @TabAzione = ISNULL(TabAzione,'')
|
|
, @Azione = ISNULL(Azione,'')
|
|
FROM AnagraficaEventi WHERE IdxTipo = @IdxTipo
|
|
|
|
--SELECT @TabAzione , @Azione
|
|
|
|
IF (@TabAzione <> '' AND @Azione <> '')
|
|
BEGIN
|
|
/* azioni richieste: seconda dei casi eseguo... */
|
|
|
|
/******************************************
|
|
*
|
|
* Calcolo tempo ciclo per INIZIO
|
|
*
|
|
******************************************/
|
|
IF(@TabAzione = 'TempiCicloRilevati' AND @Azione = 'Insert')
|
|
BEGIN
|
|
-- recupero codice articolo
|
|
SET @CodArticolo = ( SELECT CodArticolo FROM Kanban WHERE MatricolaKanban = @MatricolaKanban )
|
|
/* calcolo tempo tra gli ultimi 2 eventi "contapezzi" */
|
|
SET @DataOraPrec = ISNULL((SELECT Top 1 InizioStato FROM EventList WHERE IdxMacchina = @IdxMacchina AND IdxTipo = @IdxTipo AND InizioStato < @DataOra ORDER BY InizioStato DESC), @DataOra )
|
|
|
|
-- se è oltre 10 gg calcolo in secondi... 2013.8.30
|
|
IF (DATEDIFF(DD, @DataOraPrec, @DataOra) > 10)
|
|
SET @TCMedio = ( SELECT (DATEDIFF(s, @DataOraPrec, @DataOra) / 60.00 ) ) --calcolo in secondi
|
|
ELSE
|
|
SET @TCMedio = ( SELECT (DATEDIFF(ms, @DataOraPrec, @DataOra) / 60000.00 ) )
|
|
|
|
/* inserisco riga di tempo ciclo */
|
|
INSERT INTO TempiCicloRilevati
|
|
VALUES(@IdxMacchina, @CodArticolo, @DataOra, @TCMedio, @NumPz)
|
|
END
|
|
/******************************************
|
|
*
|
|
* Calcolo tempo ciclo con logica stop/start
|
|
*
|
|
******************************************/
|
|
ELSE IF(@TabAzione = 'TempiCicloRilevati' AND @Azione = 'Stop2StartCiclo')
|
|
BEGIN
|
|
/* prendo la matricola dall'evento inizio (precedente) */
|
|
SET @MatricolaKanbanOk = ISNULL((SELECT Top 1 MatricolaKanban FROM EventList WHERE IdxMacchina = @IdxMacchina AND IdxTipo = @IdxTipo - 1 AND InizioStato < @DataOra ORDER BY InizioStato DESC), @MatricolaKanban )
|
|
|
|
-- calcolare num pezzi da codice...
|
|
SET @CodArticolo = ( SELECT CodArticolo FROM Kanban WHERE MatricolaKanban = @MatricolaKanbanOk )
|
|
/* calcolo tempo tra eventi "contapezzi" inizio - fine NB: idxEvento per fine è idxEvento inizio + 1 ... HARD CODED!!! */
|
|
SET @DataOraPrec = ISNULL((SELECT Top 1 InizioStato FROM EventList WHERE IdxMacchina = @IdxMacchina AND IdxTipo = @IdxTipo - 1 AND InizioStato < @DataOra ORDER BY InizioStato DESC), @DataOra )
|
|
|
|
-- se è oltre 10 gg calcolo in secondi... 2013.8.30
|
|
IF (DATEDIFF(DD, @DataOraPrec, @DataOra) > 10)
|
|
SET @TCMedio = ( DATEDIFF(s, @DataOraPrec, @DataOra) / 60.00 ) --calcolo in secondi
|
|
ELSE
|
|
SET @TCMedio = ( DATEDIFF(ms, @DataOraPrec, @DataOra) / 60000.00 )
|
|
|
|
/* inserisco riga di tempo ciclo */
|
|
INSERT INTO TempiCicloRilevati
|
|
VALUES(@IdxMacchina, @CodArticolo, @DataOra, @TCMedio, @NumPz)
|
|
END
|
|
/******************************************
|
|
*
|
|
* calcolo tempo ciclo con logica stop/stop
|
|
*
|
|
******************************************/
|
|
ELSE IF(@TabAzione = 'TempiCicloRilevati' AND @Azione = 'Stop2StopCiclo')
|
|
BEGIN
|
|
/* prendo la matricola dall'evento inizio (precedente) */
|
|
SET @MatricolaKanbanOk = ISNULL((SELECT Top 1 MatricolaKanban FROM EventList WHERE IdxMacchina = @IdxMacchina AND IdxTipo = @IdxTipo AND InizioStato < @DataOra ORDER BY InizioStato DESC), @MatricolaKanban )
|
|
|
|
-- calcolare num pezzi da codice...
|
|
SET @NumPz = ( SELECT PzPallet FROM Kanban WHERE MatricolaKanban = @MatricolaKanbanOk )
|
|
SET @CodArticolo = ( SELECT CodArticolo FROM Kanban WHERE MatricolaKanban = @MatricolaKanbanOk )
|
|
/* calcolo tempo tra eventi "contapezzi" fine - fine NB: idxEvento per fine è idxEvento inizio + 1 ... HARD CODED!!! */
|
|
SET @DataOraPrec = ISNULL( (SELECT Top 1 InizioStato FROM EventList WHERE IdxMacchina = @IdxMacchina AND IdxTipo = @IdxTipo AND InizioStato < @DataOra ORDER BY InizioStato DESC), @DataOra )
|
|
|
|
-- se è oltre 10 gg calcolo in secondi... 2013.8.30
|
|
IF (DATEDIFF(DD, @DataOraPrec, @DataOra) > 10)
|
|
SET @TCMedio = ( DATEDIFF(s, @DataOraPrec, @DataOra) / 60.00 ) --calcolo in secondi
|
|
ELSE
|
|
SET @TCMedio = ( DATEDIFF(ms, @DataOraPrec, @DataOra) / 60000.00 )
|
|
|
|
/* inserisco riga di tempo ciclo */
|
|
INSERT INTO TempiCicloRilevati
|
|
VALUES(@IdxMacchina, @CodArticolo, @DataOra, @TCMedio, @NumPz)
|
|
END
|
|
|
|
/******************************************
|
|
*
|
|
* Aggiorno kanban in dati macchine per
|
|
* INIZIO ATTREZZAGGIO
|
|
*
|
|
******************************************/
|
|
ELSE IF(@TabAzione = 'DatiMacchine' AND @Azione = 'Inizio' AND @FlgAggStato = 'Y')
|
|
BEGIN
|
|
/* aggiorno riga di dati macchina */
|
|
UPDATE DatiMacchine
|
|
SET kanban_A = @MatricolaKanban,
|
|
kanban_B = @MatricolaKanban
|
|
WHERE idxMacchina = @IdxMacchina
|
|
/* aggiorno stato macchina */
|
|
UPDATE StatoMacchine
|
|
SET MatricolaKanban = @MatricolaKanban
|
|
WHERE idxMacchina = @IdxMacchina
|
|
/* aggiorno dati kanban statoMacchine... */
|
|
UPDATE StatoMacchine
|
|
SET KanbanCode = k.KanbanCode, TempoCicloBase = k.TempoCicloBase, PzPalletProd = k.PzPallet
|
|
FROM Kanban AS k
|
|
INNER JOIN StatoMacchine ON k.MatricolaKanban = StatoMacchine.MatricolaKanban
|
|
WHERE (StatoMacchine.idxMacchina = @IdxMacchina)
|
|
END
|
|
/******************************************
|
|
*
|
|
* Aggiorno kanban in dati macchine per
|
|
* FINE PRODUZIONE
|
|
*
|
|
******************************************/
|
|
ELSE IF(@TabAzione = 'DatiMacchine' AND @Azione = 'Fine' AND @FlgAggStato = 'Y')
|
|
BEGIN
|
|
/* calcolo valori */
|
|
SET @MatricolaKanban = 'KAND' -- kanban non definito !!!HARD CODED!!!
|
|
/* aggiorno riga di dati macchina */
|
|
UPDATE DatiMacchine
|
|
SET kanban_A = @MatricolaKanban,
|
|
kanban_B = @MatricolaKanban
|
|
WHERE idxMacchina = @IdxMacchina
|
|
/* aggiorno stato macchina */
|
|
UPDATE StatoMacchine
|
|
SET MatricolaKanban = @MatricolaKanban
|
|
WHERE idxMacchina = @IdxMacchina
|
|
/* aggiorno dati kanban statoMacchine... */
|
|
UPDATE StatoMacchine
|
|
SET KanbanCode = k.KanbanCode, TempoCicloBase = k.TempoCicloBase, PzPalletProd = k.PzPallet
|
|
FROM Kanban AS k INNER JOIN StatoMacchine ON k.MatricolaKanban = StatoMacchine.MatricolaKanban
|
|
WHERE (StatoMacchine.idxMacchina = @IdxMacchina)
|
|
|
|
END
|
|
END
|
|
|
|
RETURN
|
|
go
|
|
|
|
commit
|
|
go
|
|
|
|
|
|
-- indici DDB
|
|
create index idx_TempoCicloBase on DiarioDiBordo(TempoCicloBase)
|
|
include(IdxMacchina,InizioStato,MatricolaKanban,KanbanCode)
|
|
go
|
|
|
|
|
|
-- trigger EL
|
|
set xact_abort on
|
|
go
|
|
|
|
begin transaction
|
|
go
|
|
|
|
set ANSI_NULLS on
|
|
go
|
|
|
|
/***************************************************
|
|
* Trigger trg_doActions
|
|
*
|
|
* processa eventuali azioni legate ad un inserimento evento
|
|
*
|
|
* modificato: S.E.L.
|
|
* 2011.05.18
|
|
*
|
|
***************************************************/
|
|
alter TRIGGER trg_doActions
|
|
ON EventList
|
|
FOR INSERT
|
|
AS
|
|
/* dichiarazione variabili */
|
|
DECLARE @IdxTipo INT
|
|
DECLARE @TabAzione NVARCHAR(50)
|
|
DECLARE @Azione NVARCHAR(50)
|
|
DECLARE @IdxMacchina NVARCHAR(50)
|
|
DECLARE @MatricolaKanban NVARCHAR(50)
|
|
DECLARE @MatricolaKanbanOk NVARCHAR(50)
|
|
DECLARE @CodArticolo NVARCHAR(50)
|
|
DECLARE @TCMedio DECIMAL(18,8)
|
|
DECLARE @DataOra DATETIME
|
|
DECLARE @DataOraPrec DATETIME
|
|
DECLARE @NumPz INT
|
|
|
|
/* recupero valori dell'INSERT */
|
|
SET @IdxTipo = ( SELECT i.IdxTipo FROM inserted i )
|
|
SET @IdxMacchina = ( SELECT i.IdxMacchina FROM inserted i )
|
|
SET @MatricolaKanban = ( SELECT i.MatricolaKanban FROM inserted i )
|
|
SET @DataOra = ( SELECT i.InizioStato FROM inserted i )
|
|
SET @NumPz = ( SELECT CASE WHEN (ISNUMERIC(value)=1) THEN value ELSE 1 END FROM inserted i )
|
|
|
|
EXECUTE dbo.stp_EL_processaEvento @IdxTipo, @IdxMacchina, @MatricolaKanban, @DataOra, @NumPz, 'Y'
|
|
|
|
/* SOSTITUITA CON STORED
|
|
|
|
/* controllo se l'evento richieda azioni successive */
|
|
IF(@TabAzione <> '' AND @Azione <> '')
|
|
BEGIN
|
|
/* azioni richieste: seconda dei casi eseguo... */
|
|
|
|
/******************************************
|
|
*
|
|
* Calcolo tempo ciclo per INIZIO
|
|
*
|
|
******************************************/
|
|
IF(@TabAzione = 'TempiCicloRilevati' AND @Azione = 'Insert')
|
|
BEGIN
|
|
/* calcolo valori */
|
|
SET @DataOra = ( SELECT i.InizioStato FROM inserted i )
|
|
SET @MatricolaKanban = ( SELECT i.MatricolaKanban FROM inserted i )
|
|
SET @NumPz = ( SELECT CASE WHEN (ISNUMERIC(value)=1) THEN value ELSE 1 END FROM inserted i )
|
|
SET @CodArticolo = ( SELECT CodArticolo FROM Kanban WHERE MatricolaKanban = @MatricolaKanban )
|
|
/* calcolo tempo tra gli ultimi 2 eventi "contapezzi" */
|
|
SET @DataOraPrec = ( SELECT ISNULL((SELECT Top 1 InizioStato FROM EventList WHERE IdxMacchina = @IdxMacchina AND IdxTipo = @IdxTipo AND InizioStato < @DataOra ORDER BY InizioStato DESC), @DataOra ) )
|
|
-- se è oltre 10 gg calcolo in secondi... 2013.8.30
|
|
IF (DATEDIFF(DD, @DataOraPrec, @DataOra) > 10)
|
|
BEGIN
|
|
SET @TCMedio = ( SELECT (DATEDIFF(s, @DataOraPrec, @DataOra) / 60.00 ) ) --calcolo in secondi
|
|
END
|
|
ELSE
|
|
BEGIN
|
|
SET @TCMedio = ( SELECT (DATEDIFF(ms, @DataOraPrec, @DataOra) / 60000.00 ) )
|
|
END
|
|
-- versione vecchia (blocco se oltre 24 gg di fermo...)
|
|
--BEGIN TRY
|
|
-- /* è in millisecondi, divido per 60'000.00 x avere minuti centesimali*/
|
|
-- SET @TCMedio = ( SELECT (DATEDIFF(ms, @DataOraPrec, @DataOra) / 60000.00 ) )
|
|
--END TRY
|
|
--BEGIN CATCH
|
|
-- SET @TCMedio = ( SELECT (DATEDIFF(s, @DataOraPrec, @DataOra) / 60.00 ) ) --calcolo in secondi
|
|
--END CATCH
|
|
/* inserisco riga di tempo ciclo */
|
|
INSERT INTO TempiCicloRilevati
|
|
VALUES(@IdxMacchina, @CodArticolo, @DataOra, @TCMedio, @NumPz)
|
|
END
|
|
/******************************************
|
|
*
|
|
* Calcolo tempo ciclo con logica stop/start
|
|
*
|
|
******************************************/
|
|
ELSE IF(@TabAzione = 'TempiCicloRilevati' AND @Azione = 'Stop2StartCiclo')
|
|
BEGIN
|
|
/* calcolo valori */
|
|
SET @DataOra = ( SELECT i.InizioStato FROM inserted i )
|
|
SET @MatricolaKanban = ( SELECT i.MatricolaKanban FROM inserted i )
|
|
/* prendo la matricola dall'evento inizio (precedente) */
|
|
SET @MatricolaKanbanOk = ( SELECT ISNULL((SELECT Top 1 MatricolaKanban FROM EventList WHERE IdxMacchina = @IdxMacchina AND IdxTipo = @IdxTipo - 1 AND InizioStato < @DataOra ORDER BY InizioStato DESC), @MatricolaKanban ) )
|
|
|
|
-- calcolare num pezzi da codice...
|
|
SET @NumPz = ( SELECT CASE WHEN (ISNUMERIC(value)=1) THEN value ELSE 1 END FROM inserted i )
|
|
SET @CodArticolo = ( SELECT CodArticolo FROM Kanban WHERE MatricolaKanban = @MatricolaKanbanOk )
|
|
/* calcolo tempo tra eventi "contapezzi" inizio - fine NB: idxEvento per fine è idxEvento inizio + 1 ... HARD CODED!!! */
|
|
SET @DataOraPrec = ( SELECT ISNULL((SELECT Top 1 InizioStato FROM EventList WHERE IdxMacchina = @IdxMacchina AND IdxTipo = @IdxTipo - 1 AND InizioStato < @DataOra ORDER BY InizioStato DESC), @DataOra ) )
|
|
-- se è oltre 10 gg calcolo in secondi... 2013.8.30
|
|
IF (DATEDIFF(DD, @DataOraPrec, @DataOra) > 10)
|
|
BEGIN
|
|
SET @TCMedio = ( SELECT (DATEDIFF(s, @DataOraPrec, @DataOra) / 60.00 ) ) --calcolo in secondi
|
|
END
|
|
ELSE
|
|
BEGIN
|
|
SET @TCMedio = ( SELECT (DATEDIFF(ms, @DataOraPrec, @DataOra) / 60000.00 ) )
|
|
END
|
|
-- versione vecchia (blocco se oltre 24 gg di fermo...)
|
|
--BEGIN TRY
|
|
-- /* è in millisecondi, divido per 60'000.00 x avere minuti centesimali*/
|
|
-- SET @TCMedio = ( SELECT (DATEDIFF(ms, @DataOraPrec, @DataOra) / 60000.00 ) )
|
|
--END TRY
|
|
--BEGIN CATCH
|
|
-- SET @TCMedio = ( SELECT (DATEDIFF(s, @DataOraPrec, @DataOra) / 60.00 ) ) --calcolo in secondi
|
|
--END CATCH
|
|
/* inserisco riga di tempo ciclo */
|
|
INSERT INTO TempiCicloRilevati
|
|
VALUES(@IdxMacchina, @CodArticolo, @DataOra, @TCMedio, @NumPz)
|
|
END
|
|
/******************************************
|
|
*
|
|
* calcolo tempo ciclo con logica stop/stop
|
|
*
|
|
******************************************/
|
|
ELSE IF(@TabAzione = 'TempiCicloRilevati' AND @Azione = 'Stop2StopCiclo')
|
|
BEGIN
|
|
/* calcolo valori */
|
|
SET @DataOra = ( SELECT i.InizioStato FROM inserted i )
|
|
SET @MatricolaKanban = ( SELECT i.MatricolaKanban FROM inserted i )
|
|
/* prendo la matricola dall'evento inizio (precedente) */
|
|
SET @MatricolaKanbanOk = ( SELECT ISNULL((SELECT Top 1 MatricolaKanban FROM EventList WHERE IdxMacchina = @IdxMacchina AND IdxTipo = @IdxTipo AND InizioStato < @DataOra ORDER BY InizioStato DESC), @MatricolaKanban ) )
|
|
|
|
-- calcolare num pezzi da codice...
|
|
SET @NumPz = ( SELECT PzPallet FROM Kanban WHERE MatricolaKanban = @MatricolaKanbanOk )
|
|
SET @CodArticolo = ( SELECT CodArticolo FROM Kanban WHERE MatricolaKanban = @MatricolaKanbanOk )
|
|
/* calcolo tempo tra eventi "contapezzi" fine - fine NB: idxEvento per fine è idxEvento inizio + 1 ... HARD CODED!!! */
|
|
SET @DataOraPrec = ( SELECT ISNULL((SELECT Top 1 InizioStato FROM EventList WHERE IdxMacchina = @IdxMacchina AND IdxTipo = @IdxTipo AND InizioStato < @DataOra ORDER BY InizioStato DESC), @DataOra ) )
|
|
-- se è oltre 10 gg calcolo in secondi... 2013.8.30
|
|
IF (DATEDIFF(DD, @DataOraPrec, @DataOra) > 10)
|
|
BEGIN
|
|
SET @TCMedio = ( SELECT (DATEDIFF(s, @DataOraPrec, @DataOra) / 60.00 ) ) --calcolo in secondi
|
|
END
|
|
ELSE
|
|
BEGIN
|
|
SET @TCMedio = ( SELECT (DATEDIFF(ms, @DataOraPrec, @DataOra) / 60000.00 ) )
|
|
END
|
|
-- versione vecchia (blocco se oltre 24 gg di fermo...)
|
|
--BEGIN TRY
|
|
-- /* è in millisecondi, divido per 60'000.00 x avere minuti centesimali*/
|
|
-- SET @TCMedio = ( SELECT (DATEDIFF(ms, @DataOraPrec, @DataOra) / 60000.00 ) )
|
|
--END TRY
|
|
--BEGIN CATCH
|
|
-- SET @TCMedio = ( SELECT (DATEDIFF(s, @DataOraPrec, @DataOra) / 60.00 ) ) --calcolo in secondi
|
|
--END CATCH
|
|
/* inserisco riga di tempo ciclo */
|
|
BEGIN TRY
|
|
INSERT INTO TempiCicloRilevati
|
|
VALUES(@IdxMacchina, @CodArticolo, @DataOra, @TCMedio, @NumPz)
|
|
END TRY
|
|
BEGIN CATCH
|
|
-- dovrei loggare...
|
|
END CATCH
|
|
END
|
|
/******************************************
|
|
*
|
|
* Aggiorno kanban in dati macchine per
|
|
* INIZIO ATTREZZAGGIO
|
|
*
|
|
******************************************/
|
|
ELSE IF(@TabAzione = 'DatiMacchine' AND @Azione = 'Inizio')
|
|
BEGIN
|
|
/* calcolo valori */
|
|
SET @MatricolaKanban = ( SELECT i.MatricolaKanban FROM inserted i )
|
|
/* aggiorno riga di dati macchina */
|
|
UPDATE DatiMacchine
|
|
SET kanban_A = @MatricolaKanban,
|
|
kanban_B = @MatricolaKanban
|
|
WHERE idxMacchina = @IdxMacchina
|
|
/* aggiorno stato macchina */
|
|
UPDATE StatoMacchine
|
|
SET MatricolaKanban = @MatricolaKanban
|
|
WHERE idxMacchina = @IdxMacchina
|
|
/* aggiorno dati kanban statoMacchine... */
|
|
UPDATE StatoMacchine
|
|
SET KanbanCode = k.KanbanCode, TempoCicloBase = k.TempoCicloBase, PzPalletProd = k.PzPallet
|
|
FROM Kanban AS k INNER JOIN StatoMacchine ON k.MatricolaKanban = StatoMacchine.MatricolaKanban
|
|
WHERE (StatoMacchine.idxMacchina = @IdxMacchina)
|
|
END
|
|
/******************************************
|
|
*
|
|
* Aggiorno kanban in dati macchine per
|
|
* FINE PRODUZIONE
|
|
*
|
|
******************************************/
|
|
ELSE IF(@TabAzione = 'DatiMacchine' AND @Azione = 'Fine')
|
|
BEGIN
|
|
/* calcolo valori */
|
|
SET @MatricolaKanban = 'KAND' -- kanban non definito !!!HARD CODED!!!
|
|
/* aggiorno riga di dati macchina */
|
|
UPDATE DatiMacchine
|
|
SET kanban_A = @MatricolaKanban,
|
|
kanban_B = @MatricolaKanban
|
|
WHERE idxMacchina = @IdxMacchina
|
|
/* aggiorno stato macchina */
|
|
UPDATE StatoMacchine
|
|
SET MatricolaKanban = @MatricolaKanban
|
|
WHERE idxMacchina = @IdxMacchina
|
|
/* aggiorno dati kanban statoMacchine... */
|
|
UPDATE StatoMacchine
|
|
SET KanbanCode = k.KanbanCode, TempoCicloBase = k.TempoCicloBase, PzPalletProd = k.PzPallet
|
|
FROM Kanban AS k INNER JOIN StatoMacchine ON k.MatricolaKanban = StatoMacchine.MatricolaKanban
|
|
WHERE (StatoMacchine.idxMacchina = @IdxMacchina)
|
|
|
|
END
|
|
END
|
|
*/
|
|
|
|
-- INFINE CHIAMO REFRESH TAB STATO...
|
|
EXEC stp_MSE_refresh @IdxMacchina
|
|
go
|
|
|
|
commit
|
|
go
|
|
|
|
|
|
-- viste
|
|
set xact_abort on
|
|
go
|
|
|
|
begin transaction
|
|
go
|
|
|
|
set ANSI_NULLS on
|
|
go
|
|
|
|
create VIEW v_Eventi_To_StatiMacchina
|
|
AS
|
|
/* mostra gli eventi macchina ed eventualmenti gli stati macchina che hanno provocato
|
|
EVENTI -> STATI DIARIO DI BORDO
|
|
|
|
FARE FILTRO X MACCHINA E ORDER BY INIZIO STATO
|
|
|
|
SELECT * FROM dbo.v_Eventi_To_StatiMacchina
|
|
WHERE IdxMacchina = 1010
|
|
AND InizioStato < '20131009 19:00.000'
|
|
ORDER BY InizioStato DESC;
|
|
*/
|
|
WITH cteDiario AS
|
|
(
|
|
SELECT d.IdxMacchina, d.InizioStato, d.FineStato, d.IdxStato, d.DurataMinuti, d.[Value], d.MatricolaKanban, d.KanbanCode
|
|
,d.TempoCicloBase, d.PzPalletProd, d.MatrOpr, d.pallet
|
|
,a.Descrizione AS DescStato
|
|
FROM DiarioDiBordo AS d
|
|
INNER JOIN dbo.AnagraficaStati AS a ON d.IdxStato = a.IdxStato
|
|
)
|
|
SELECT e.IdxMacchina, e.InizioStato AS InizioEvento, e.IdxTipo AS IdxTipoEvento, e.MatricolaKanban, e.[Value], e.MatrOpr, e.pallet,
|
|
ae.Nome AS NomeEvento,ae.TabAzione,ae.Azione,
|
|
di.FineStato AS FineStatoPrec, di.InizioStato AS InizioStatoPrec, di.IdxStato AS IdxStatoIniz, di.DescStato AS DescStatoIniziale,
|
|
df.InizioStato AS FineStato, df.IdxStato AS idxStatoFine, df.DescStato AS DescStatoFine
|
|
FROM EventList AS e
|
|
INNER JOIN dbo.AnagraficaEventi AS ae ON e.IdxTipo = ae.IdxTipo
|
|
--LEFT JOIN cteDiario AS di ON e.IdxMacchina = di.IdxMacchina AND e.InizioStato = di.FineStato
|
|
--LEFT JOIN cteDiario AS df ON e.IdxMacchina = df.IdxMacchina AND e.InizioStato = df.InizioStato
|
|
LEFT JOIN cteDiario AS di ON e.IdxMacchina = di.IdxMacchina AND ( e.InizioStato >= DATEADD( ms , -80, di.FineStato ) AND e.InizioStato <= di.FineStato )
|
|
LEFT JOIN cteDiario AS df ON e.IdxMacchina = df.IdxMacchina AND ( e.InizioStato >= DATEADD( ms , -80, df.InizioStato ) AND e.InizioStato <= df.InizioStato )
|
|
-- LEFT JOIN cteDiario AS df ON e.IdxMacchina = df.IdxMacchina AND e.InizioStato = df.InizioStato
|
|
--WHERE e.IdxMacchina = 1010
|
|
--AND e.InizioStato < '20131009 19:00.000'
|
|
--ORDER BY e.InizioStato DESC;
|
|
go
|
|
|
|
create VIEW v_StatiMacchina_From_Eventi
|
|
AS
|
|
/*
|
|
mostra gli stati macchina e gli eventi che li hanno generati
|
|
STATI DIARIO DI BORDO -> EVENTI
|
|
|
|
FARE FILTRO X MACCHINA E ORDER BY INIZIO STATO
|
|
|
|
SELECT * FROM dbo.v_StatiMacchina_From_Eventi
|
|
WHERE IdxMacchina = 1010
|
|
AND InizioStato < '20131009 19:00.000'
|
|
ORDER BY InizioStato DESC;
|
|
*/
|
|
WITH cteDiario AS
|
|
(
|
|
SELECT d.IdxMacchina, d.InizioStato, d.FineStato, d.IdxStato, d.DurataMinuti, d.[Value], d.MatricolaKanban, d.KanbanCode
|
|
,d.TempoCicloBase, d.PzPalletProd, d.MatrOpr, d.pallet
|
|
,a.Descrizione AS DescStato
|
|
FROM DiarioDiBordo AS d
|
|
INNER JOIN dbo.AnagraficaStati AS a ON d.IdxStato = a.IdxStato
|
|
)
|
|
SELECT e.IdxMacchina, e.InizioStato AS InizioEvento, e.IdxTipo AS IdxTipoEvento, e.MatricolaKanban, e.[Value], e.MatrOpr, e.pallet,
|
|
ae.Nome AS NomeEvento,ae.TabAzione,ae.Azione,
|
|
di.InizioStato,di.IdxStato AS IdxStatoIniz, di.DescStato AS DescStatoIniziale,
|
|
df.InizioStato AS FineStato, df.IdxStato AS idxStatoFine, df.DescStato AS DescStatoFine
|
|
FROM EventList AS e
|
|
INNER JOIN dbo.AnagraficaEventi AS ae ON e.IdxTipo = ae.IdxTipo
|
|
LEFT JOIN cteDiario AS di ON e.IdxMacchina = di.IdxMacchina AND e.InizioStato = di.FineStato
|
|
LEFT JOIN cteDiario AS df ON e.IdxMacchina = df.IdxMacchina AND e.InizioStato = df.InizioStato
|
|
--WHERE e.IdxMacchina = 1010
|
|
--AND e.InizioStato < '20131009 19:00.000'
|
|
--ORDER BY e.InizioStato DESC;
|
|
go
|
|
|
|
commit
|
|
go
|
|
|
|
|
|
-- stored: nuove!!!
|
|
set xact_abort on
|
|
go
|
|
|
|
begin transaction
|
|
go
|
|
|
|
set ANSI_NULLS on
|
|
go
|
|
|
|
/*************************************
|
|
* STORED PROCEDURE stp_Comm_getLastByMacchina
|
|
* ottiene l'elenco degli ultimi N commenti per una macchina specificata
|
|
*
|
|
* modif.: S.E.L. - 2013.10.16
|
|
**************************************/
|
|
create PROCEDURE stp_Comm_getLastByMacchina
|
|
(
|
|
@IdxMacchina NVARCHAR(50) = '0',
|
|
@showMax INT = 10
|
|
)
|
|
AS
|
|
|
|
SELECT TOP (@showMax) o.idxODL, o.CodArticolo, el.IdxMacchina, el.InizioStato, el.Value,
|
|
ISNULL(ao.Cognome,'cognome') + ' ' + ISNULL(ao.Nome,'') AS Operatore
|
|
FROM EventList el INNER JOIN ODL o ON el.IdxMacchina = o.IdxMacchina AND el.InizioStato BETWEEN o.DataInizio AND ISNULL(o.DataFine, GETDATE())
|
|
LEFT OUTER JOIN AnagraficaOperatori ao ON el.MatrOpr = ao.MatrOpr
|
|
WHERE el.IdxMacchina = CASE WHEN @IdxMacchina = 0 THEN el.IdxMacchina ELSE @IdxMacchina END
|
|
AND el.IdxTipo = 999 -- 999 = commento! HARD CODED!!!
|
|
ORDER BY el.InizioStato DESC
|
|
|
|
RETURN
|
|
go
|
|
|
|
/*************************************
|
|
* STORED PROCEDURE stp_DDB_getNextByMacchinaFrom
|
|
* ottiene i dati dell'evento successivo una macchina ed un istante specificati
|
|
*
|
|
* modif.: S.E.L. - 2013.10.24
|
|
**************************************/
|
|
create PROCEDURE stp_DDB_getNextByMacchinaFrom
|
|
(
|
|
@IdxMacchina NVARCHAR(50),
|
|
@dataRif DATETIME
|
|
)
|
|
AS
|
|
|
|
SELECT TOP 1 *
|
|
FROM DiarioDiBordo
|
|
WHERE (IdxMacchina = @IdxMacchina) AND
|
|
(InizioStato > @dataRif)
|
|
ORDER BY InizioStato
|
|
|
|
RETURN
|
|
go
|
|
|
|
/*************************************
|
|
* STORED PROCEDURE stp_FNQ_getFilt
|
|
* ottiene elenco FERMI NON QUALIFICATI filtrati x macchina, gg da guardare a ritroso e durata
|
|
*
|
|
* modif.: S.E.L. - 2013.10.23
|
|
**************************************/
|
|
create PROCEDURE stp_FNQ_getFilt
|
|
(
|
|
@IdxMacchina NVARCHAR(50) = 0,
|
|
@gg INT = 3, -- num gg da mostrare a ritroso (da ADESSO)
|
|
@durataMin FLOAT = 30 -- min 30 min
|
|
)
|
|
AS
|
|
|
|
-- imposto inizio/fine
|
|
DECLARE @Inizio DATETIME
|
|
DECLARE @Fine DATETIME
|
|
|
|
SELECT @Fine = GETDATE(), @Inizio = DATEADD(DAY, -@gg, GETDATE())
|
|
|
|
SELECT m.IdxMacchina, InizioStato, m.Nome as Macchina, ddb.IdxStato, Ans.Descrizione AS Stato, Ans.Semaforo,
|
|
ISNULL(DurataMinuti, DATEDIFF(s, InizioStato, @Fine) / 60) AS DurataMinuti, Value, KanbanCode as CodArticolo
|
|
FROM DiarioDiBordo AS ddb INNER JOIN AnagraficaStati AnS ON ddb.IdxStato = AnS.IdxStato INNER JOIN MAcchine m ON ddb.IdxMacchina = m.IdxMacchina
|
|
WHERE Ans.Semaforo IN ('G','R')
|
|
AND m.IdxMacchina = CASE WHEN @IdxMacchina = 0 THEN m.IdxMacchina ELSE @IdxMacchina END
|
|
AND ((InizioStato BETWEEN @Inizio AND @Fine) OR (FineStato BETWEEN @Inizio AND @Fine))
|
|
AND ISNULL(DurataMinuti, DATEDIFF(s, InizioStato, @Fine) / 60) >= @durataMin
|
|
ORDER BY InizioStato DESC
|
|
|
|
RETURN
|
|
go
|
|
|
|
commit
|
|
go
|
|
|
|
|
|
set xact_abort on
|
|
go
|
|
|
|
begin transaction
|
|
go
|
|
|
|
set ANSI_NULLS on
|
|
go
|
|
|
|
-- =============================================
|
|
-- Author: Samuele E. Locatelli
|
|
-- Create date: 2009-03-04
|
|
-- mod date:
|
|
--
|
|
-- Description: riallineamento con update massivo dati db
|
|
-- aggiorna i dati nel db per portarli ad essere "odierni" ovvero ultimo evento appena successo
|
|
-- =============================================
|
|
create PROCEDURE man.stp_riallineaDateDb
|
|
AS
|
|
|
|
DECLARE @Database AS SYSNAME;
|
|
DECLARE @lastData AS DATETIME
|
|
DECLARE @diff_min as INT
|
|
DECLARE @idxMacchina AS NVARCHAR(50)
|
|
DECLARE @idxMacchinaTest AS NVARCHAR(50) = '1008'
|
|
|
|
DBCC SHOWCONTIG(EventList)
|
|
DBCC SHOWCONTIG(DiarioDiBordo)
|
|
|
|
SET @Database = DB_NAME()
|
|
EXEC USP_DisableEnableNonClusteredIndexes @Database ,null, 1 -- disabilito indici
|
|
|
|
PRINT 'inizio UPDATE tabelle...'
|
|
|
|
/* ELIMINO MACCHINA 99 */
|
|
/*
|
|
-- elimino tutti gli eventi della macchina test
|
|
DELETE FROM EventList WHERE IdxMacchina = @idxMacchinaTest
|
|
-- elimino da diario di bordo della macchina test
|
|
DELETE FROM DiarioDiBordo WHERE IdxMacchina = @idxMacchinaTest
|
|
-- elimino da tempi ciclo teorici della macchina test
|
|
DELETE FROM TempiCicloTeorici WHERE IdxMacchina = @idxMacchinaTest
|
|
-- elimino da tempi ciclo rilevati della macchina test
|
|
DELETE FROM TempiCicloRilevati WHERE IdxMacchina = @idxMacchinaTest
|
|
|
|
DELETE dbo.KeepAlive WHERE IdxMacchina = @idxMacchinaTest
|
|
DELETE DatiMacchine WHERE IdxMacchina = @idxMacchinaTest
|
|
DELETE StatoMacchine WHERE IdxMacchina = @idxMacchinaTest
|
|
DELETE Macchine WHERE IdxMacchina = @idxMacchinaTest
|
|
*/
|
|
|
|
-- calcolo l'ultima data degli eventi esclusa macchina test
|
|
SET @lastData = ( SELECT MAX(InizioStato) AS inizio FROM DiarioDiBordo WHERE IdxMacchina <> @idxMacchinaTest )
|
|
SET @idxMacchina = ( SELECT TOP 1 IdxMacchina FROM DiarioDiBordo WHERE InizioStato = @lastData )
|
|
|
|
-- SELECT @idxMacchina, @idxMacchinaTest
|
|
|
|
-- ora calcolo la differenza tra quello e la data/ora odierna
|
|
SET @diff_min = (SELECT DATEDIFF(n, @lastData, getdate()))
|
|
|
|
/* TRASLO GLI EVENTI DELLE MACCHINE A DATA-ORA ATTUALI */
|
|
|
|
-- aggiorno EventList
|
|
UPDATE EventList SET InizioStato = DATEADD(n, @diff_min, InizioStato)
|
|
-- aggiorno DiarioDiBordo
|
|
UPDATE DiarioDiBordo SET InizioStato = DATEADD(n, @diff_min, InizioStato),FineStato = DATEADD(n, @diff_min, FineStato)
|
|
-- aggiorno StatoMacchine
|
|
UPDATE StatoMacchine SET InizioStato = DATEADD(n, @diff_min, InizioStato)
|
|
-- aggiorno KeepAlive
|
|
UPDATE KeepAlive SET DataOraServer = DATEADD(n, @diff_min, DataOraServer), DataOraMacchina = DATEADD(n, @diff_min, DataOraMacchina), DataOraStart = DATEADD(n, @diff_min, DataOraStart)
|
|
-- aggiorno TC teorici
|
|
UPDATE TempiCicloTeorici SET DataOraFrom = DATEADD(n, @diff_min, DataOraFrom), DataOraTo = DATEADD(n, @diff_min, DataOraTo)
|
|
-- aggiorno TC rilevati
|
|
UPDATE TempiCicloRilevati SET DataOraRif = DATEADD(n, @diff_min, DataOraRif)
|
|
-- aggiorno Dati confermati
|
|
UPDATE DatiConfermati SET DataOraApp = DATEADD(n, @diff_min, DataOraApp), DataRif = DATEADD(n, @diff_min, DataRif), DataOraFrom = DATEADD(n, @diff_min, DataOraFrom), DataOraTo = DATEADD(n, @diff_min, DataOraTo)
|
|
|
|
-- elimino tutti gli eventi della macchina test superiori a @lastData ( sono i dati di prova )
|
|
DELETE FROM EventList WHERE IdxMacchina = @idxMacchinaTest AND InizioStato > DATEADD(n, @diff_min, @lastData )
|
|
DELETE FROM DiarioDiBordo WHERE IdxMacchina = @idxMacchinaTest AND InizioStato > DATEADD(n, @diff_min, @lastData )
|
|
DELETE FROM TempiCicloRilevati WHERE IdxMacchina = @idxMacchinaTest AND DataOraRif > DATEADD(n, @diff_min, @lastData )
|
|
|
|
-- aggiorno lo stato macchine
|
|
UPDATE StatoMacchine
|
|
SET IdxStato = Diario.IdxStato
|
|
FROM StatoMacchine AS s
|
|
INNER JOIN (
|
|
SELECT d.IdxMacchina, d.IdxStato,d.InizioStato
|
|
FROM DiarioDiBordo AS d
|
|
INNER JOIN
|
|
(
|
|
SELECT idxMacchina, MAX(InizioStato) As InizioStato
|
|
FROM DiarioDiBordo
|
|
GROUP BY idxMacchina
|
|
) AS a ON a.IdxMacchina = d.IdxMacchina AND a.InizioStato = d.InizioStato
|
|
) AS Diario
|
|
ON s.IdxMacchina = Diario.IdxMacchina
|
|
|
|
-- aggiornamento x tablet
|
|
EXEC [dbo].[stp_MSE_getData] 0
|
|
|
|
PRINT 'concluso UPDATE tabelle...'
|
|
|
|
-- --shrink del db
|
|
PRINT 'compatto DB...'
|
|
DBCC SHRINKDATABASE (@Database)
|
|
|
|
--ricostruisco indici DOPO shrink
|
|
PRINT 'ricostruisco indici...'
|
|
|
|
-- riabilito tutti gli indici non-cluster ( fa una reindex )
|
|
EXEC USP_DisableEnableNonClusteredIndexes @Database ,null, 2 --riattivo indici
|
|
|
|
-- ricostruisco i cluster
|
|
ALTER INDEX PK_EventList ON dbo.EventList REBUILD
|
|
WITH (FILLFACTOR = 98, SORT_IN_TEMPDB = ON );
|
|
ALTER INDEX PK_DiarioDiBordo ON dbo.DiarioDiBordo REBUILD
|
|
WITH (FILLFACTOR = 98, SORT_IN_TEMPDB = ON );
|
|
|
|
--DBCC DBREINDEX(EventList)
|
|
--DBCC DBREINDEX(DiarioDiBordo)
|
|
--DBCC DBREINDEX(TransizioneIngressi)
|
|
--DBCC DBREINDEX(Kanban2ins)
|
|
--DBCC DBREINDEX(Kanban)
|
|
--DBCC DBREINDEX(AnagraficaOperatori)
|
|
--DBCC DBREINDEX(AnagraficaOperatori2ins)
|
|
|
|
DBCC SHOWCONTIG(EventList)
|
|
DBCC SHOWCONTIG(DiarioDiBordo)
|
|
|
|
/*
|
|
|
|
-- ******************************************************
|
|
-- *** PROCEDURE VARIE PER CREAZIONE DB DEMO ***
|
|
-- ******************************************************
|
|
|
|
-- FARE il restore del DB
|
|
|
|
-- Poi faccio pulizia dei vecchi DATI del DB
|
|
USE MoonPro_DEMO;
|
|
|
|
DECLARE @Database AS SYSNAME;
|
|
SET @Database = DB_NAME()
|
|
EXEC USP_DisableEnableNonClusteredIndexes @Database ,null, 1 -- disabilito indici
|
|
|
|
DECLARE @lastData AS datetime
|
|
SET @lastData = '20130920'
|
|
|
|
DELETE FROM EventList WHERE InizioStato < @lastData
|
|
DELETE FROM DiarioDiBordo WHERE InizioStato < @lastData
|
|
DELETE FROM TempiCicloRilevati WHERE DataOraRif < @lastData
|
|
|
|
-- riallineo dati a GETDATE()
|
|
EXEC [man].[stp_riallineaDateDb]
|
|
|
|
-- ******************************************************
|
|
-- *** CANCELLAZIONE DELLE ultime tre ORE di EVENTI ***
|
|
-- ******************************************************
|
|
|
|
-- riallineo alla data/ora attuale prima della cancellazione
|
|
EXEC [man].[stp_riallineaDateDb]
|
|
|
|
DELETE FROM EventList WHERE InizioStato > DATEADD(n, -720, GETDATE() )
|
|
DELETE FROM DiarioDiBordo WHERE InizioStato > DATEADD(n, -720, GETDATE() )
|
|
DELETE FROM TempiCicloRilevati WHERE DataOraRif > DATEADD(n, -720, GETDATE() )
|
|
DELETE FROM DatiConfermati WHERE DataRif > DATEADD(n, -720, GETDATE() )
|
|
|
|
UPDATE KeepAlive
|
|
SET DataOraServer = DATEADD(n, -720, DataOraServer ) ,
|
|
DataOraMacchina = DATEADD(n, -720, DataOraMacchina ) ,
|
|
DataOraStart = DATEADD(n, -720, DataOraStart )
|
|
|
|
-- riallineo alla data/ora attuale
|
|
EXEC [man].[stp_riallineaDateDb]
|
|
|
|
*/
|
|
|
|
RETURN
|
|
go
|
|
|
|
-- ================================================
|
|
-- Author: Samuele E. Locatelli
|
|
-- Create date: 2012.11.23
|
|
--
|
|
-- Description: rigenerazione del diario di bordo
|
|
-- a partire da macchina eventi/stati + EventList
|
|
-- ================================================
|
|
create PROCEDURE man.stp_ricalcolaDatiMacchinaFromDate
|
|
(
|
|
@idxMacchina NVARCHAR(50),
|
|
@inizio DATETIME,
|
|
@idxStatoStart INT = 1
|
|
)
|
|
AS
|
|
|
|
SET NOCOUNT ON;
|
|
|
|
DECLARE @fine DATETIME
|
|
|
|
--DBCC SHOWCONTIG(EventList)
|
|
--DBCC SHOWCONTIG(DiarioDiBordo)
|
|
|
|
/* DA USARE ? Verificare */
|
|
--DECLARE @Database AS SYSNAME;
|
|
--SET @Database = DB_NAME()
|
|
--EXEC USP_DisableEnableNonClusteredIndexes @Database ,null, 1 -- disabilito indici
|
|
|
|
|
|
-- update SAM 2013.10.24: "torno indietro" di 2 eventi rispetto alal data ora indicata come start, SE CI SONO
|
|
SELECT @inizio = ISNULL(MIN(InizioStato),@inizio) FROM
|
|
(
|
|
SELECT TOP 3 InizioStato
|
|
FROM DiarioDiBordo
|
|
WHERE IdxMacchina = @idxMacchina AND InizioStato < @inizio
|
|
ORDER BY InizioStato DESC
|
|
) AS tbl
|
|
|
|
|
|
-- DISATTIVO inserimento in DiarioDiBordo per la macchina indicata
|
|
-- DEVE disattivare anche il caricamento degli eventi
|
|
UPDATE DatiMacchine
|
|
SET insEnabled = 0
|
|
WHERE IdxMacchina = @IdxMacchina
|
|
|
|
-- devo sempre rielaborare tutti gli eventi fino a dataora odierna
|
|
SET @fine = ( SELECT MAX(InizioStato) FROM EventList
|
|
WHERE idxMacchina = @idxMacchina )
|
|
|
|
-- svuoto dati che vado a sostituire
|
|
PRINT 'svuoto TempiCicloRilevati per periodo indicato...'
|
|
DELETE FROM TempiCicloRilevati WHERE idxMacchina = @idxMacchina AND DataOraRif BETWEEN @inizio AND @fine
|
|
|
|
PRINT 'svuoto DiarioDiBordo per periodo indicato...'
|
|
EXEC stp_DDB_deleteMacchinaPeriodo @idxMacchina, @inizio, @fine -- cancella diario di bordo
|
|
|
|
PRINT 'processo EventList per periodo indicato...'
|
|
DECLARE @InizioStato DATETIME
|
|
DECLARE @IdxTipo INT
|
|
DECLARE @MatricolaKanban NVARCHAR(50)
|
|
DECLARE @Value NVARCHAR(50)
|
|
DECLARE @MatrOpr INT
|
|
DECLARE @pallet NVARCHAR(20)
|
|
DECLARE @nextIdxStato INT
|
|
DECLARE @currIdxStato INT
|
|
DECLARE @IdxFamiglia INT
|
|
DECLARE @TabAzione NVARCHAR(50) = '';
|
|
DECLARE @Azione NVARCHAR(50) = '';
|
|
|
|
-- calcolo famiglia macchina!
|
|
SET @IdxFamiglia = ( SELECT IdxFamiglia FROM Macchine2FamiglieMacchine WHERE idxMacchina = @idxMacchina )
|
|
|
|
-- Recupero stato precedente, altrimenti ipotizzo macchina inizialmente in stato richiesto (default: 1 = pronta) e quindi imposto stato current a quello iniziale richiesto...
|
|
SET @currIdxStato = ISNULL( ( SELECT TOP 1 IdxStato FROM DiarioDiBordo WHERE IdxMacchina = @idxMacchina AND InizioStato < @inizio
|
|
ORDER BY InizioStato DESC ) , @idxStatoStart)
|
|
|
|
-- verifico i record elaborati
|
|
SELECT COUNT(*)
|
|
FROM EventList AS e
|
|
LEFT JOIN dbo.AnagraficaEventi AS a ON e.idxTipo = a.IdxTipo
|
|
WHERE e.IdxMacchina = @idxMacchina
|
|
AND e.InizioStato BETWEEN @inizio AND @fine
|
|
|
|
-- leggo la tabella degli eventi con cursore x percorrere i dati...
|
|
DECLARE event2proc CURSOR FOR
|
|
SELECT e.InizioStato, e.IdxTipo, e.MatricolaKanban, e.Value, e.MatrOpr, e.pallet,
|
|
a.TabAzione, a.Azione
|
|
FROM EventList AS e
|
|
LEFT JOIN dbo.AnagraficaEventi AS a ON e.idxTipo = a.IdxTipo
|
|
WHERE e.IdxMacchina = @idxMacchina
|
|
AND e.InizioStato BETWEEN @inizio AND @fine
|
|
ORDER BY e.InizioStato;
|
|
/*
|
|
SELECT InizioStato, IdxTipo, MatricolaKanban, Value, MatrOpr, pallet
|
|
FROM EventList
|
|
WHERE IdxMacchina = @idxMacchina
|
|
AND InizioStato BETWEEN @inizio AND @fine
|
|
ORDER BY InizioStato;
|
|
*/
|
|
OPEN event2proc;
|
|
|
|
FETCH NEXT FROM event2proc
|
|
INTO @InizioStato, @IdxTipo, @MatricolaKanban, @Value, @MatrOpr, @pallet, @TabAzione, @Azione;
|
|
|
|
DECLARE @NumPz INT = 1;
|
|
DECLARE @ContaInsert INT = 0;
|
|
|
|
WHILE @@FETCH_STATUS = 0
|
|
BEGIN
|
|
|
|
IF ( ISNULL(@TabAzione,'') <> '' AND ISNULL(@Azione,'') <> '')
|
|
BEGIN
|
|
SET @NumPz = CASE WHEN (ISNUMERIC(@Value)=1) THEN @Value ELSE 1 END
|
|
EXEC dbo.stp_EL_processaEvento @IdxTipo, @idxMacchina, @MatricolaKanban, @InizioStato, @NumPz , 'N'
|
|
END
|
|
|
|
-- calcolo l'eventuale NUOVO idxStato
|
|
SET @nextIdxStato = ISNULL( (SELECT next_IdxStato FROM TransizioneStati
|
|
WHERE IdxFamiglia = @IdxFamiglia AND IdxStato = @currIdxStato AND IdxTipo = @IdxTipo ), @currIdxStato )
|
|
|
|
-- SE lo stato cambia registro nel DiarioDiBordo!
|
|
IF (@nextIdxStato <> @currIdxStato)
|
|
BEGIN
|
|
-- inserisco in DiarioDiBordo
|
|
INSERT INTO DiarioDiBordo
|
|
(IdxMacchina, InizioStato, FineStato, IdxStato, MatricolaKanban, Value, MatrOpr, pallet)
|
|
VALUES (@IdxMacchina, @InizioStato, NULL, @nextIdxStato, @MatricolaKanban, @Value, @MatrOpr, @pallet)
|
|
|
|
-- infine imposto il nuovo stato current...
|
|
SET @currIdxStato = @nextIdxStato
|
|
SET @ContaInsert = @ContaInsert + 1
|
|
END
|
|
|
|
-- Get the next values
|
|
FETCH NEXT FROM event2proc
|
|
INTO @InizioStato, @IdxTipo, @MatricolaKanban, @Value, @MatrOpr, @pallet, @TabAzione, @Azione;
|
|
|
|
END
|
|
CLOSE event2proc;
|
|
DEALLOCATE event2proc;
|
|
|
|
-- resetto microStato a 1
|
|
UPDATE dbo.MicroStatoMacchina
|
|
SET IdxMicroStato = 1,
|
|
InizioStato = @InizioStato,
|
|
Value = '0'
|
|
WHERE IdxMacchina = @idxMacchina
|
|
|
|
|
|
-- fa un controllo: elimina eventuali dichairazioni in DDB SE durata < 0...
|
|
DELETE FROM DiarioDiBordo WHERE DurataMinuti < 0 AND IdxMacchina = @idxMacchina
|
|
|
|
-- RI-ATTIVO inserimento in DiarioDiBordo per la macchina indicata
|
|
UPDATE DatiMacchine
|
|
SET insEnabled = 1
|
|
WHERE IdxMacchina = @IdxMacchina
|
|
|
|
PRINT 'concluso UPDATE tabelle...' + 'INSERT DiarioBordo : ' + CONVERT(VARCHAR(30),@ContaInsert)
|
|
|
|
--DBCC SHOWCONTIG(EventList)
|
|
--DBCC SHOWCONTIG(DiarioDiBordo)
|
|
--EXEC USP_DisableEnableNonClusteredIndexes @Database,null, 2 --riattivo indici
|
|
|
|
--ricostruisco indici X QUESTE TABELLE DOPPIA RICOSTRUZIONE INDICI NON NECESSARIA
|
|
--PRINT 'ricostruisco indici...'
|
|
--DBCC DBREINDEX(EventList)
|
|
--DBCC DBREINDEX(DiarioDiBordo)
|
|
--DBCC DBREINDEX(TransizioneIngressi)
|
|
--DBCC DBREINDEX(Kanban2ins)
|
|
--DBCC DBREINDEX(Kanban)
|
|
--DBCC DBREINDEX(AnagraficaOperatori)
|
|
--DBCC DBREINDEX(AnagraficaOperatori2ins)
|
|
|
|
--DBCC SHOWCONTIG(EventList)
|
|
--DBCC SHOWCONTIG(DiarioDiBordo)
|
|
|
|
RETURN
|
|
go
|
|
|
|
commit
|
|
go
|
|
|
|
|
|
-- stored update!
|
|
set xact_abort on
|
|
go
|
|
|
|
begin transaction
|
|
go
|
|
|
|
set ANSI_NULLS on
|
|
go
|
|
|
|
/*************************************
|
|
* STORED PROCEDURE stp_ODL_getByMacchinaPeriodo
|
|
* ottiene l'elenco degli ODL in lavorazione su una macchina in un dato periodo
|
|
*
|
|
* modif.: S.E.L. - 2012.04.02
|
|
**************************************/
|
|
alter PROCEDURE stp_ODL_getByMacchinaPeriodo
|
|
(
|
|
@IdxMacchina NVARCHAR(50),
|
|
@dataFrom DATETIME,
|
|
@dataTo DATETIME
|
|
)
|
|
AS
|
|
|
|
BEGIN
|
|
SELECT *
|
|
FROM v_ODL_exp
|
|
WHERE IdxMacchina = @IdxMacchina
|
|
AND ((DataInizio BETWEEN @dataFrom AND @dataTo) OR (DataFine BETWEEN @dataFrom AND @dataTo) OR (DataInizio <= @dataFrom AND ISNULL(DataFine,GETDATE()) >= @dataTo))
|
|
END
|
|
|
|
RETURN
|
|
go
|
|
|
|
/*************************************
|
|
* STORED PROCEDURE stp_repDonati_getDatiProdMacchina
|
|
* restituisce i dati di produzione di una macchina per PERIODO
|
|
*
|
|
* modif.: S.E.L. - 2012.03.21
|
|
**************************************/
|
|
alter PROCEDURE stp_repDonati_getDatiProdMacchinaPeriodo
|
|
(
|
|
@idxMacchina NVARCHAR(50),
|
|
@dataFrom DATETIME,
|
|
@dataTo DATETIME
|
|
)
|
|
AS
|
|
|
|
-- calcolo pezzi CONTATI, non quelli poi confermati...
|
|
DECLARE @PezziProd INT
|
|
SET @PezziProd = ISNULL((
|
|
SELECT COUNT(*)FROM TempiCicloRilevati
|
|
WHERE idxMacchina = @idxMacchina
|
|
AND DataOraRif BETWEEN @dataFrom AND @dataTo
|
|
), 0)
|
|
|
|
-- calcolo TEMPO MEDIO ponderato in base al num di pezzi per tipo...
|
|
DECLARE @TCAss DECIMAL(18,8)
|
|
|
|
;WITH cte_tabMinProd as
|
|
(
|
|
SELECT ISNULL(COUNT(tcr.DataOraRif), 0) * ISNULL(o.TCAssegnato, 0) AS MinProd
|
|
FROM TempiCicloRilevati tcr INNER JOIN ODL o
|
|
ON o.IdxMacchina=tcr.IdxMacchina AND o.CodArticolo = tcr.CodArticolo
|
|
WHERE tcr.DataOraRif BETWEEN o.DataInizio AND ISNULL(o.DataFine, GETDATE())
|
|
AND tcr.DataOraRif BETWEEN @dataFrom AND @dataTo
|
|
AND ((o.DataInizio <= @dataTo) AND (ISNULL(o.DataFine, GETDATE()) >= @dataFrom))
|
|
GROUP BY o.TCAssegnato
|
|
)
|
|
SELECT @TCAss = ISNULL(SUM(MinProd) / CASE WHEN @PezziProd > 0 THEN @PezziProd ELSE 1 END, 0)
|
|
FROM cte_tabMinProd
|
|
|
|
|
|
/****************************************************
|
|
* Calcolo tempi apertura realtime
|
|
****************************************************/
|
|
-- calcolo i tempi di apertura: TempoON (Verde + giallo + rosso)
|
|
DECLARE @TempoOnRT DECIMAL(18,8)
|
|
SET @TempoOnRT = (
|
|
SELECT ISNULL(SUM(DurataMinuti),0)
|
|
FROM DiarioDiBordo ddb INNER JOIN AnagraficaStati AnSt ON ddb.IdxStato= AnSt.IdxStato
|
|
WHERE AnSt.ClasseTempo NOT IN ('T_OFF', 'T_OFF_ND') AND InizioStato BETWEEN @dataFrom AND @dataTo
|
|
AND IdxMacchina = @idxMacchina
|
|
)
|
|
|
|
-- calcolo i tempi di apertura: TempoAuto (Verde + giallo) - precedente meno "T_FermoRosso"
|
|
DECLARE @TempoAutoRT DECIMAL(18,8)
|
|
SET @TempoAutoRT = (
|
|
SELECT @TempoOnRT - ISNULL(SUM(DurataMinuti),0)
|
|
FROM DiarioDiBordo ddb INNER JOIN AnagraficaStati AnSt ON ddb.IdxStato= AnSt.IdxStato
|
|
WHERE AnSt.ClasseTempo = 'T_FermoRosso' AND InizioStato BETWEEN @dataFrom AND @dataTo
|
|
AND IdxMacchina = @idxMacchina
|
|
)
|
|
|
|
-- calcolo i tempi di apertura: TempoRun (Verde)
|
|
DECLARE @TempoRunRT DECIMAL(18,8)
|
|
SET @TempoRunRT = (
|
|
SELECT ISNULL(SUM(DurataMinuti),0)
|
|
FROM DiarioDiBordo ddb INNER JOIN AnagraficaStati AnSt ON ddb.IdxStato= AnSt.IdxStato
|
|
WHERE AnSt.ClasseTempo = 'T_AutoRun' AND InizioStato BETWEEN @dataFrom AND @dataTo
|
|
AND IdxMacchina = @idxMacchina
|
|
)
|
|
|
|
|
|
|
|
/****************************************************
|
|
* Calcolo i TEMPI CICLO realtime (anche non confermati)
|
|
****************************************************/
|
|
|
|
-- DIVISIONE PER ZERO: controllo pezzi prod > 0...
|
|
DECLARE @numPezzi INT
|
|
SET @numPezzi = @PezziProd - 1 -- divido per n-1 per avere numIntervalli = numPezzi
|
|
IF(@numPezzi < 1) SET @numPezzi = 1
|
|
|
|
DECLARE @TCMedRT DECIMAL(18,8)
|
|
SET @TCMedRT = (
|
|
SELECT @TempoOnRT / @numPezzi
|
|
)
|
|
DECLARE @TCLavRT DECIMAL(18,8)
|
|
SET @TCLavRT = (
|
|
SELECT @TempoAutoRT / @numPezzi
|
|
)
|
|
DECLARE @TCEffRT DECIMAL(18,8)
|
|
SET @TCEffRT = ISNULL(( SELECT dbo.f_lastTempoTecnico(@idxMacchina, 2) ), -1) -- provo a calcolare ultimi tempi tecnici
|
|
IF (@TCEffRT =-1)
|
|
BEGIN
|
|
SET @TCEffRT = (
|
|
SELECT @TempoRunRT / @numPezzi
|
|
)
|
|
END
|
|
|
|
|
|
SELECT @PezziProd as PezziProd, @TCAss AS TCAssegnato, @TCMedRT AS TCMedioRT, @TCLavRT AS TCLavRT, @TCEffRT AS TCEffRT
|
|
|
|
|
|
RETURN
|
|
go
|
|
|
|
commit
|
|
go
|
|
|
|
|
|
-- dati eventi/stati/transizioni...
|
|
set xact_abort on
|
|
go
|
|
|
|
begin transaction
|
|
go
|
|
|
|
UPDATE dbo.AnagraficaEventi SET
|
|
Nome=N'Bcode - Cambio Pallet (unused)'
|
|
WHERE IdxTipo=11
|
|
UPDATE dbo.AnagraficaEventi SET
|
|
Nome=N'Barcode - Fermo Organizzativo', TabAzione=N'DatiMacchine', Azione=N'Fine'
|
|
WHERE IdxTipo=19
|
|
INSERT INTO dbo.AnagraficaEventi
|
|
VALUES (999, N'Commento', N'', N'')
|
|
go
|
|
|
|
commit transaction
|
|
go
|
|
|
|
|
|
set xact_abort on
|
|
go
|
|
|
|
begin transaction
|
|
go
|
|
|
|
UPDATE dbo.AnagraficaStati SET
|
|
Semaforo=N'S', ClasseTempo=N'T_OFF'
|
|
WHERE IdxStato=27
|
|
INSERT INTO dbo.AnagraficaStati
|
|
VALUES (30, N'Fermo Organizzativo', N'S', 1, N'T_OFF', 0)
|
|
go
|
|
|
|
commit transaction
|
|
go
|
|
|
|
|
|
-- tab transizioni!
|
|
set xact_abort on
|
|
go
|
|
|
|
begin transaction
|
|
go
|
|
|
|
DELETE FROM dbo.TransizioneStati WHERE IdxFamiglia=1 and IdxStato=1 and IdxTipo=1
|
|
DELETE FROM dbo.TransizioneStati WHERE IdxFamiglia=4 and IdxStato=1 and IdxTipo=1
|
|
go
|
|
|
|
commit transaction
|
|
go
|
|
|
|
|
|
set xact_abort on
|
|
go
|
|
|
|
begin transaction
|
|
go
|
|
|
|
INSERT INTO dbo.TransizioneStati
|
|
VALUES (2, 1, 12, 11)
|
|
INSERT INTO dbo.TransizioneStati
|
|
VALUES (2, 2, 12, 11)
|
|
INSERT INTO dbo.TransizioneStati
|
|
VALUES (2, 3, 12, 11)
|
|
INSERT INTO dbo.TransizioneStati
|
|
VALUES (2, 4, 12, 11)
|
|
INSERT INTO dbo.TransizioneStati
|
|
VALUES (2, 5, 12, 11)
|
|
INSERT INTO dbo.TransizioneStati
|
|
VALUES (2, 6, 12, 11)
|
|
INSERT INTO dbo.TransizioneStati
|
|
VALUES (2, 7, 12, 11)
|
|
INSERT INTO dbo.TransizioneStati
|
|
VALUES (2, 8, 12, 11)
|
|
INSERT INTO dbo.TransizioneStati
|
|
VALUES (2, 9, 12, 11)
|
|
INSERT INTO dbo.TransizioneStati
|
|
VALUES (2, 10, 12, 11)
|
|
INSERT INTO dbo.TransizioneStati
|
|
VALUES (2, 12, 12, 11)
|
|
INSERT INTO dbo.TransizioneStati
|
|
VALUES (2, 13, 12, 11)
|
|
INSERT INTO dbo.TransizioneStati
|
|
VALUES (2, 14, 12, 11)
|
|
INSERT INTO dbo.TransizioneStati
|
|
VALUES (2, 15, 12, 11)
|
|
INSERT INTO dbo.TransizioneStati
|
|
VALUES (10, 1, 2, 2)
|
|
INSERT INTO dbo.TransizioneStati
|
|
VALUES (10, 1, 3, 3)
|
|
INSERT INTO dbo.TransizioneStati
|
|
VALUES (10, 1, 4, 4)
|
|
INSERT INTO dbo.TransizioneStati
|
|
VALUES (10, 1, 5, 5)
|
|
INSERT INTO dbo.TransizioneStati
|
|
VALUES (10, 1, 6, 6)
|
|
INSERT INTO dbo.TransizioneStati
|
|
VALUES (10, 1, 7, 7)
|
|
INSERT INTO dbo.TransizioneStati
|
|
VALUES (10, 1, 8, 8)
|
|
INSERT INTO dbo.TransizioneStati
|
|
VALUES (10, 1, 9, 9)
|
|
INSERT INTO dbo.TransizioneStati
|
|
VALUES (10, 1, 10, 10)
|
|
INSERT INTO dbo.TransizioneStati
|
|
VALUES (10, 1, 12, 11)
|
|
INSERT INTO dbo.TransizioneStati
|
|
VALUES (10, 1, 19, 30)
|
|
INSERT INTO dbo.TransizioneStati
|
|
VALUES (10, 1, 29, 28)
|
|
INSERT INTO dbo.TransizioneStati
|
|
VALUES (10, 1, 30, 29)
|
|
INSERT INTO dbo.TransizioneStati
|
|
VALUES (10, 2, 1, 1)
|
|
INSERT INTO dbo.TransizioneStati
|
|
VALUES (10, 3, 1, 1)
|
|
INSERT INTO dbo.TransizioneStati
|
|
VALUES (10, 3, 12, 11)
|
|
INSERT INTO dbo.TransizioneStati
|
|
VALUES (10, 4, 1, 1)
|
|
INSERT INTO dbo.TransizioneStati
|
|
VALUES (10, 4, 12, 11)
|
|
INSERT INTO dbo.TransizioneStati
|
|
VALUES (10, 5, 1, 1)
|
|
INSERT INTO dbo.TransizioneStati
|
|
VALUES (10, 5, 12, 11)
|
|
INSERT INTO dbo.TransizioneStati
|
|
VALUES (10, 5, 19, 30)
|
|
INSERT INTO dbo.TransizioneStati
|
|
VALUES (10, 6, 1, 1)
|
|
INSERT INTO dbo.TransizioneStati
|
|
VALUES (10, 6, 12, 11)
|
|
INSERT INTO dbo.TransizioneStati
|
|
VALUES (10, 6, 19, 30)
|
|
INSERT INTO dbo.TransizioneStati
|
|
VALUES (10, 7, 1, 1)
|
|
INSERT INTO dbo.TransizioneStati
|
|
VALUES (10, 7, 12, 11)
|
|
INSERT INTO dbo.TransizioneStati
|
|
VALUES (10, 7, 19, 30)
|
|
INSERT INTO dbo.TransizioneStati
|
|
VALUES (10, 8, 1, 1)
|
|
INSERT INTO dbo.TransizioneStati
|
|
VALUES (10, 8, 12, 11)
|
|
INSERT INTO dbo.TransizioneStati
|
|
VALUES (10, 8, 19, 30)
|
|
INSERT INTO dbo.TransizioneStati
|
|
VALUES (10, 9, 1, 1)
|
|
INSERT INTO dbo.TransizioneStati
|
|
VALUES (10, 9, 12, 11)
|
|
INSERT INTO dbo.TransizioneStati
|
|
VALUES (10, 9, 19, 30)
|
|
INSERT INTO dbo.TransizioneStati
|
|
VALUES (10, 10, 1, 1)
|
|
INSERT INTO dbo.TransizioneStati
|
|
VALUES (10, 10, 12, 11)
|
|
INSERT INTO dbo.TransizioneStati
|
|
VALUES (10, 10, 19, 30)
|
|
INSERT INTO dbo.TransizioneStati
|
|
VALUES (10, 11, 1, 1)
|
|
INSERT INTO dbo.TransizioneStati
|
|
VALUES (10, 11, 19, 30)
|
|
INSERT INTO dbo.TransizioneStati
|
|
VALUES (10, 11, 29, 28)
|
|
INSERT INTO dbo.TransizioneStati
|
|
VALUES (10, 11, 30, 29)
|
|
INSERT INTO dbo.TransizioneStati
|
|
VALUES (10, 12, 1, 1)
|
|
INSERT INTO dbo.TransizioneStati
|
|
VALUES (10, 12, 2, 2)
|
|
INSERT INTO dbo.TransizioneStati
|
|
VALUES (10, 12, 3, 3)
|
|
INSERT INTO dbo.TransizioneStati
|
|
VALUES (10, 12, 4, 4)
|
|
INSERT INTO dbo.TransizioneStati
|
|
VALUES (10, 12, 5, 5)
|
|
INSERT INTO dbo.TransizioneStati
|
|
VALUES (10, 12, 6, 6)
|
|
INSERT INTO dbo.TransizioneStati
|
|
VALUES (10, 12, 7, 7)
|
|
INSERT INTO dbo.TransizioneStati
|
|
VALUES (10, 12, 8, 8)
|
|
INSERT INTO dbo.TransizioneStati
|
|
VALUES (10, 12, 9, 9)
|
|
INSERT INTO dbo.TransizioneStati
|
|
VALUES (10, 12, 10, 10)
|
|
INSERT INTO dbo.TransizioneStati
|
|
VALUES (10, 12, 12, 11)
|
|
INSERT INTO dbo.TransizioneStati
|
|
VALUES (10, 12, 19, 30)
|
|
INSERT INTO dbo.TransizioneStati
|
|
VALUES (10, 12, 29, 28)
|
|
INSERT INTO dbo.TransizioneStati
|
|
VALUES (10, 12, 30, 29)
|
|
INSERT INTO dbo.TransizioneStati
|
|
VALUES (10, 13, 1, 1)
|
|
INSERT INTO dbo.TransizioneStati
|
|
VALUES (10, 13, 29, 28)
|
|
INSERT INTO dbo.TransizioneStati
|
|
VALUES (10, 13, 30, 29)
|
|
INSERT INTO dbo.TransizioneStati
|
|
VALUES (10, 14, 1, 1)
|
|
INSERT INTO dbo.TransizioneStati
|
|
VALUES (10, 14, 29, 28)
|
|
INSERT INTO dbo.TransizioneStati
|
|
VALUES (10, 14, 30, 29)
|
|
INSERT INTO dbo.TransizioneStati
|
|
VALUES (10, 15, 1, 1)
|
|
INSERT INTO dbo.TransizioneStati
|
|
VALUES (10, 15, 2, 2)
|
|
INSERT INTO dbo.TransizioneStati
|
|
VALUES (10, 15, 3, 3)
|
|
INSERT INTO dbo.TransizioneStati
|
|
VALUES (10, 15, 4, 4)
|
|
INSERT INTO dbo.TransizioneStati
|
|
VALUES (10, 15, 5, 5)
|
|
INSERT INTO dbo.TransizioneStati
|
|
VALUES (10, 15, 6, 6)
|
|
INSERT INTO dbo.TransizioneStati
|
|
VALUES (10, 15, 7, 7)
|
|
INSERT INTO dbo.TransizioneStati
|
|
VALUES (10, 15, 8, 8)
|
|
INSERT INTO dbo.TransizioneStati
|
|
VALUES (10, 15, 9, 9)
|
|
INSERT INTO dbo.TransizioneStati
|
|
VALUES (10, 15, 10, 10)
|
|
INSERT INTO dbo.TransizioneStati
|
|
VALUES (10, 15, 12, 11)
|
|
INSERT INTO dbo.TransizioneStati
|
|
VALUES (10, 15, 19, 30)
|
|
INSERT INTO dbo.TransizioneStati
|
|
VALUES (10, 15, 29, 28)
|
|
INSERT INTO dbo.TransizioneStati
|
|
VALUES (10, 15, 30, 29)
|
|
INSERT INTO dbo.TransizioneStati
|
|
VALUES (10, 23, 1, 1)
|
|
INSERT INTO dbo.TransizioneStati
|
|
VALUES (10, 23, 29, 28)
|
|
INSERT INTO dbo.TransizioneStati
|
|
VALUES (10, 23, 30, 29)
|
|
INSERT INTO dbo.TransizioneStati
|
|
VALUES (10, 24, 1, 1)
|
|
INSERT INTO dbo.TransizioneStati
|
|
VALUES (10, 24, 29, 28)
|
|
INSERT INTO dbo.TransizioneStati
|
|
VALUES (10, 24, 30, 29)
|
|
INSERT INTO dbo.TransizioneStati
|
|
VALUES (10, 25, 1, 1)
|
|
INSERT INTO dbo.TransizioneStati
|
|
VALUES (10, 25, 2, 2)
|
|
INSERT INTO dbo.TransizioneStati
|
|
VALUES (10, 25, 3, 3)
|
|
INSERT INTO dbo.TransizioneStati
|
|
VALUES (10, 25, 4, 4)
|
|
INSERT INTO dbo.TransizioneStati
|
|
VALUES (10, 25, 5, 5)
|
|
INSERT INTO dbo.TransizioneStati
|
|
VALUES (10, 25, 6, 6)
|
|
INSERT INTO dbo.TransizioneStati
|
|
VALUES (10, 25, 7, 7)
|
|
INSERT INTO dbo.TransizioneStati
|
|
VALUES (10, 25, 8, 8)
|
|
INSERT INTO dbo.TransizioneStati
|
|
VALUES (10, 25, 9, 9)
|
|
INSERT INTO dbo.TransizioneStati
|
|
VALUES (10, 25, 10, 10)
|
|
INSERT INTO dbo.TransizioneStati
|
|
VALUES (10, 25, 12, 11)
|
|
INSERT INTO dbo.TransizioneStati
|
|
VALUES (10, 25, 19, 30)
|
|
INSERT INTO dbo.TransizioneStati
|
|
VALUES (10, 25, 26, 27)
|
|
INSERT INTO dbo.TransizioneStati
|
|
VALUES (10, 25, 29, 28)
|
|
INSERT INTO dbo.TransizioneStati
|
|
VALUES (10, 25, 30, 29)
|
|
INSERT INTO dbo.TransizioneStati
|
|
VALUES (10, 26, 1, 1)
|
|
INSERT INTO dbo.TransizioneStati
|
|
VALUES (10, 26, 12, 11)
|
|
INSERT INTO dbo.TransizioneStati
|
|
VALUES (10, 26, 19, 30)
|
|
INSERT INTO dbo.TransizioneStati
|
|
VALUES (10, 26, 29, 28)
|
|
INSERT INTO dbo.TransizioneStati
|
|
VALUES (10, 26, 30, 29)
|
|
INSERT INTO dbo.TransizioneStati
|
|
VALUES (10, 27, 1, 1)
|
|
INSERT INTO dbo.TransizioneStati
|
|
VALUES (10, 27, 12, 11)
|
|
INSERT INTO dbo.TransizioneStati
|
|
VALUES (10, 27, 19, 30)
|
|
INSERT INTO dbo.TransizioneStati
|
|
VALUES (10, 28, 1, 1)
|
|
INSERT INTO dbo.TransizioneStati
|
|
VALUES (10, 28, 14, 11)
|
|
INSERT INTO dbo.TransizioneStati
|
|
VALUES (10, 29, 1, 1)
|
|
INSERT INTO dbo.TransizioneStati
|
|
VALUES (10, 29, 14, 11)
|
|
INSERT INTO dbo.TransizioneStati
|
|
VALUES (10, 30, 1, 1)
|
|
INSERT INTO dbo.TransizioneStati
|
|
VALUES (10, 30, 12, 11)
|
|
INSERT INTO dbo.TransizioneStati
|
|
VALUES (10, 30, 14, 11)
|
|
INSERT INTO dbo.TransizioneStati
|
|
VALUES (10, 30, 26, 27)
|
|
go
|
|
|
|
commit transaction
|
|
go
|
|
|
|
|
|
set xact_abort on
|
|
go
|
|
|
|
begin transaction
|
|
go
|
|
|
|
DELETE FROM dbo.TransizioneStati WHERE IdxFamiglia=10 and IdxStato=12 and IdxTipo=15
|
|
DELETE FROM dbo.TransizioneStati WHERE IdxFamiglia=10 and IdxStato=13 and IdxTipo=16
|
|
DELETE FROM dbo.TransizioneStati WHERE IdxFamiglia=10 and IdxStato=13 and IdxTipo=21
|
|
DELETE FROM dbo.TransizioneStati WHERE IdxFamiglia=10 and IdxStato=14 and IdxTipo=17
|
|
DELETE FROM dbo.TransizioneStati WHERE IdxFamiglia=10 and IdxStato=14 and IdxTipo=20
|
|
DELETE FROM dbo.TransizioneStati WHERE IdxFamiglia=10 and IdxStato=14 and IdxTipo=22
|
|
DELETE FROM dbo.TransizioneStati WHERE IdxFamiglia=10 and IdxStato=15 and IdxTipo=18
|
|
DELETE FROM dbo.TransizioneStati WHERE IdxFamiglia=10 and IdxStato=23 and IdxTipo=23
|
|
DELETE FROM dbo.TransizioneStati WHERE IdxFamiglia=10 and IdxStato=24 and IdxTipo=24
|
|
DELETE FROM dbo.TransizioneStati WHERE IdxFamiglia=10 and IdxStato=25 and IdxTipo=15
|
|
DELETE FROM dbo.TransizioneStati WHERE IdxFamiglia=10 and IdxStato=25 and IdxTipo=25
|
|
go
|
|
|
|
commit transaction
|
|
go
|
|
|
|
|
|
set xact_abort on
|
|
go
|
|
|
|
begin transaction
|
|
go
|
|
|
|
set identity_insert dbo.LinkMenuJQM on
|
|
go
|
|
|
|
INSERT INTO dbo.LinkMenuJQM
|
|
(idxLink, TipoLink, ordine, Testo, NavigateUrl, icona)
|
|
VALUES (12, N'DetMacc', 5, N'Commenti', N'~/Commenti.aspx', N'star')
|
|
INSERT INTO dbo.LinkMenuJQM
|
|
(idxLink, TipoLink, ordine, Testo, NavigateUrl, icona)
|
|
VALUES (13, N'EditMacch', 5, N'Commenti', N'~/Commenti.aspx', N'star')
|
|
go
|
|
|
|
set identity_insert dbo.LinkMenuJQM off
|
|
go
|
|
|
|
commit transaction
|
|
go
|
|
|
|
|
|
|
|
|
|
|
|
|
|
-- registro versione...
|
|
INSERT INTO [dbo].[LogUpdateDb] ([Versione],[Data]) VALUES(401, GETDATE())
|
|
GO
|
|
|
|
SELECT TOP 10 * FROM LogUpdateDb ORDER BY Versione DESC
|
|
GO
|
|
|
|
-- 5 sec su db SteamWare |