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

605 lines
22 KiB
Transact-SQL

set xact_abort on;
go
begin transaction;
go
set ANSI_NULLS on;
go
/*************************************
* STORED PROCEDURE stp_MSE_refresh
* AGGIORNA tabella stato attuale macchine x macchina indicata
*
* modif.: S.E.L. - 2013.02.28
**************************************/
create PROCEDURE stp_MSE_refresh
(
@IdxMacchina NVARCHAR(50) -- macchina da aggiornare
)
AS
--init variabili!
DECLARE @adesso DATETIME = GETDATE()
DECLARE @trovate INT = 0
DECLARE @tvStato TABLE (
idxStato INT NULL,
DescrizioneStato NVARCHAR(50),
Semaforo NVARCHAR(50),
Minuti INT NULL
)
DECLARE @tvODL TABLE (
IdxODL INT NULL,
CodArticolo NVARCHAR(50),
DescArticolo NVARCHAR(50),
IdxMacchina INT NULL,
CodMacchina NVARCHAR(50),
Nome NVARCHAR(50),
NumPezzi INT NULL,
TCAssegnato DECIMAL(18,8),
DataInizio DATETIME,
DataFine DATETIME
)
DECLARE @tvProd TABLE (
CodArticolo NVARCHAR(50),
PezziLanciati INT NULL,
PezziProd INT NULL,
PezziConf INT NULL,
TCAssegnato DECIMAL(18,8),
CodOperatore INT NULL,
TempoOn DECIMAL(18,8),
TempoAuto DECIMAL(18,8),
TempoRun DECIMAL(18,8),
TCMedio DECIMAL(18,8),
TCLav DECIMAL(18,8),
TCEff DECIMAL(18,8),
TCMedioRT DECIMAL(18,8),
TCLavRT DECIMAL(18,8),
TCEffRT DECIMAL(18,8)
)
BEGIN
-- controllo: se c'è riga macchina richiesta...
SELECT @trovate=COUNT(*) FROM MappaStatoExpl WHERE IdxMacchina = @IdxMacchina
-- se NON c'è la creo...
IF(@trovate = 0)
BEGIN
-- calcolo ODL
;WITH cteODL AS
(
SELECT * FROM ODL
WHERE IdxODL IN
(
SELECT IdxODL
FROM ODL
WHERE DataFine IS NULL
AND (IdxMacchina = @IdxMacchina)
UNION
SELECT MAX(IdxODL)
FROM ODL
WHERE IdxMacchina = @IdxMacchina
)
)
-- inserisco i nuovi dati
INSERT INTO MappaStatoExpl(lastUpdate, IdxMacchina, CodMacchina, Nome, url, IdxODL, CodArticolo, NumPezzi, TCAssegnato, DataInizioODL)
SELECT @adesso, ma.IdxMacchina, ma.CodMacchina, ma.Nome, url, ISNULL(o.IdxODL,0), ISNULL(o.CodArticolo,'-'), ISNULL(o.NumPezzi,0), ISNULL(o.TCAssegnato,0), ISNULL(o.DataInizio,'2000/01/01')
FROM Macchine ma LEFT OUTER JOIN cteODL o ON ma.IdxMacchina=o.IdxMacchina
WHERE ma.IdxMacchina = @IdxMacchina
AND NOT (locazione IS NULL)
AND ( (ISNULL(o.IdxODL,0) = 0) OR ((o.DataFine IS NULL) AND NOT (o.DataInizio IS NULL)) )
ORDER BY ma.locazione
END
-- popolo tab stati
INSERT @tvStato(idxStato, Minuti)
EXEC stp_repDonati_getLastStatoDurataMacchina @IdxMacchina, 0.1
-- fix dati mancanti
UPDATE tvs
SET tvs.Semaforo = s.Semaforo
,tvs.DescrizioneStato = s.Descrizione
FROM @tvStato tvs INNER JOIN AnagraficaStati s ON tvs.idxStato=s.IdxStato
-- popolo tab ODL
INSERT @tvODL
EXEC stp_ODL_getByMacchina @IdxMacchina
-- popolo tab pezzi/tempi
INSERT @tvProd(CodArticolo,PezziLanciati,PezziProd,PezziConf,TCAssegnato,CodOperatore,TempoOn,TempoAuto,TempoRun,TCMedio,TCLav,TCEff,TCMedioRT,TCLavRT,TCEffRT )
EXEC stp_repDonati_getDatiProdMacchina @IdxMacchina
-- aggiorno in blocco i valori
UPDATE mse
SET mse.lastUpdate = @adesso
,mse.idxStato = ISNULL(tvs.idxStato,0)
,mse.durata = ISNULL(tvs.Minuti,0)
,mse.Semaforo = ISNULL(tvs.Semaforo,'')
,mse.DescrizioneStato = ISNULL(tvs.DescrizioneStato,'')
,mse.TCAssegnato = ISNULL(tvo.TCAssegnato,0)
,mse.NumPezzi = ISNULL(tvo.NumPezzi,0)
,mse.DataInizioODL = ISNULL(tvo.DataInizio,'2000/01/01')
,mse.PezziProd = ISNULL(tvp.PezziProd,0)
,mse.PezziConf = ISNULL(tvp.PezziConf,0)
,mse.TempoOn = ISNULL(tvp.TempoOn,0)
,mse.TempoAuto = ISNULL(tvp.TempoAuto,0)
,mse.TempoRun = ISNULL(tvp.TempoRun,0)
,mse.TCMedio = ISNULL(tvp.TCMedio,0)
,mse.TCLav = ISNULL(tvp.TCLav,0)
,mse.TCEff = ISNULL(tvp.TCEff,0)
,mse.TCMedioRT = ISNULL(tvp.TCMedioRT,0)
,mse.TCLavRT = ISNULL(tvp.TCLavRT,0)
,mse.TCEffRT = ISNULL(tvp.TCEffRT,0)
FROM MappaStatoExpl mse
CROSS JOIN @tvStato tvs
CROSS JOIN @tvODL tvo
CROSS JOIN @tvProd tvp
WHERE mse.Idxmacchina = @IdxMacchina
END
RETURN
go
commit;
go
set xact_abort on;
go
begin transaction;
go
set ANSI_NULLS on;
go
/*************************************
* STORED PROCEDURE InsEvento
* inserimento di un evento nel db (tab EventList)
* inerimento in anagrafica a "nd" dell'operatore se matricola mancasse
*
* modif.: S.E.L.
* il: 2008.08.07
**************************************/
alter PROCEDURE stp_EL_InsEvento
(
@IdxMacchina varchar(50),
@IdxTipo int,
@MatricolaKanban varchar(50),
@Value varchar(50),
@MatrOpr int,
@pallet varchar(20)
)
AS
/*************************************
* verifico se esista operatore
**************************************/
SELECT *
FROM AnagraficaOperatori
WHERE (MatrOpr = @MatrOpr)
IF(@@ROWCOUNT = 0 )
BEGIN
/* inserisco nuovo record */
INSERT INTO AnagraficaOperatori(MatrOpr, Cognome, Nome, isAdmin, authKey)
VALUES (@MatrOpr,'nd (cognome)','nd (nome)', 0, '12345')
END
/* inserisco evento*/
INSERT INTO EventList
(IdxMacchina, InizioStato, IdxTipo, MatricolaKanban, Value, MatrOpr, pallet)
VALUES (@IdxMacchina, GETDATE(), @IdxTipo, @MatricolaKanban, @Value, @MatrOpr, @pallet)
RETURN
go
/*************************************
* STORED PROCEDURE stp_MSE_getData
* tabella stato attuale macchine (da mostrare)
*
* modif.: S.E.L. - 2013.02.28
**************************************/
alter PROCEDURE stp_MSE_getData
(
@maxAgeSec INT -- soglia di "vecchiaia" del dato massima accettabile dopo cui parte ricalcolo, in millisec, se < 1000 ignoro!
)
AS
-- cerco dato + recente
DECLARE @adesso DATETIME = GETDATE()
DECLARE @lastUpdate DATETIME
SELECT TOP 1 @lastUpdate=ISNULL(lastUpdate, '2000/01/01') FROM MappaStatoExpl ORDER BY lastUpdate DESC
SELECT @lastUpdate= ISNULL(@lastUpdate, '2000/01/01')
-- solo se sup ai 1000 ms! oppure zero...
IF(@maxAgeSec > 1000 OR @maxAgeSec=0)
BEGIN
-- dato vecchio! aggiorno!
IF(DATEDIFF(s,@lastUpdate,@adesso)*1000 > @maxAgeSec)
BEGIN
-- truncate table precedente
TRUNCATE TABLE MappaStatoExpl
;WITH cteODL AS
(
SELECT * FROM ODL
WHERE IdxODL IN
(
SELECT IdxODL
FROM ODL
WHERE DataFine IS NULL
UNION
SELECT MAX(IdxODL)
FROM ODL
GROUP BY IdxMacchina
)
)
-- inserisco di nuovo i dati
INSERT INTO MappaStatoExpl(lastUpdate, IdxMacchina, CodMacchina, Nome, url, IdxODL, CodArticolo, NumPezzi, TCAssegnato, DataInizioODL)
SELECT @adesso, ma.IdxMacchina, ma.CodMacchina, ma.Nome, url, ISNULL(o.IdxODL,0), ISNULL(o.CodArticolo,'-'), ISNULL(o.NumPezzi,0), ISNULL(o.TCAssegnato,0), ISNULL(o.DataInizio,'2000/01/01')
FROM Macchine ma LEFT OUTER JOIN cteODL o ON ma.IdxMacchina=o.IdxMacchina
WHERE NOT (locazione IS NULL) AND ( (ISNULL(o.IdxODL,0) = 0) OR ((o.DataFine IS NULL) AND NOT (o.DataInizio IS NULL)) )
ORDER BY ma.locazione
-- dichiaro le 2 table variables che userò x caricare i dati di stato
DECLARE @tvStato TABLE (
IdxMacchina INT NULL,
idxStato INT NULL,
DescrizioneStato NVARCHAR(50),
Semaforo NVARCHAR(50),
Minuti INT NULL
)
DECLARE @tvODL TABLE (
IdxODL INT NULL,
CodArticolo NVARCHAR(50),
DescArticolo NVARCHAR(50),
IdxMacchina INT NULL,
CodMacchina NVARCHAR(50),
Nome NVARCHAR(50),
NumPezzi INT NULL,
TCAssegnato DECIMAL(18,8),
DataInizio DATETIME,
DataFine DATETIME
)
DECLARE @tvProd TABLE (
IdxMacchina INT NULL,
CodArticolo NVARCHAR(50),
PezziLanciati INT NULL,
PezziProd INT NULL,
PezziConf INT NULL,
TCAssegnato DECIMAL(18,8),
CodOperatore INT NULL,
TempoOn DECIMAL(18,8),
TempoAuto DECIMAL(18,8),
TempoRun DECIMAL(18,8),
TCMedio DECIMAL(18,8),
TCLav DECIMAL(18,8),
TCEff DECIMAL(18,8),
TCMedioRT DECIMAL(18,8),
TCLavRT DECIMAL(18,8),
TCEffRT DECIMAL(18,8)
)
DECLARE @numRows INT = 0
DECLARE @currRow INT = 1
DECLARE @IdxMacchina INT = 0
SET @numRows = ISNULL((SELECT COUNT(*) FROM MappaStatoExpl),0)
-- carico altri dati con ciclo while
WHILE (@currRow <= @numRows)
BEGIN
-- macchina corrente!
SELECT @IdxMacchina = IdxMacchina FROM MappaStatoExpl WHERE RowNum = @currRow
-- popolo tab stati
INSERT @tvStato(idxStato, Minuti)
EXEC stp_repDonati_getLastStatoDurataMacchina @IdxMacchina, 0.1
-- fix dati mancanti
UPDATE tvs
SET tvs.IdxMacchina = @IdxMacchina
,tvs.Semaforo = s.Semaforo
,tvs.DescrizioneStato = s.Descrizione
FROM @tvStato tvs INNER JOIN AnagraficaStati s ON tvs.idxStato=s.IdxStato
WHERE tvs.IdxMacchina IS NULL
-- popolo tab ODL
INSERT @tvODL
EXEC stp_ODL_getByMacchina @IdxMacchina
-- popolo tab pezzi/tempi
INSERT @tvProd(CodArticolo,PezziLanciati,PezziProd,PezziConf,TCAssegnato,CodOperatore,TempoOn,TempoAuto,TempoRun,TCMedio,TCLav,TCEff,TCMedioRT,TCLavRT,TCEffRT )
EXEC stp_repDonati_getDatiProdMacchina @IdxMacchina
-- fix dati mancanti
UPDATE tvp
SET tvp.IdxMacchina = @IdxMacchina
FROM @tvProd tvp
WHERE tvp.IdxMacchina IS NULL
-- aggiorno contatore
SET @currRow = @currRow + 1
END
-- aggiorno in blocco i valori x stato e pezzi prodotti
UPDATE mse
SET mse.idxStato = ISNULL(tvs.idxStato,0)
,mse.durata = ISNULL(tvs.Minuti,0)
,mse.Semaforo = ISNULL(tvs.Semaforo,'')
,mse.DescrizioneStato = ISNULL(tvs.DescrizioneStato,'')
FROM MappaStatoExpl mse INNER JOIN @tvStato tvs ON mse.IdxMacchina=tvs.IdxMacchina
-- aggiorno in blocco i valori x ODL
UPDATE mse
SET mse.TCAssegnato = ISNULL(tvo.TCAssegnato,0)
,mse.NumPezzi = ISNULL(tvo.NumPezzi,0)
,mse.DataInizioODL = ISNULL(tvo.DataInizio,'2000/01/01')
FROM MappaStatoExpl mse INNER JOIN @tvODL tvo ON mse.IdxMacchina=tvo.IdxMacchina
-- aggiorno in blocco i valori x produzione
UPDATE mse
SET mse.PezziProd = ISNULL(tvp.PezziProd,0)
,mse.PezziConf = ISNULL(tvp.PezziConf,0)
,mse.TempoOn = ISNULL(tvp.TempoOn,0)
,mse.TempoAuto = ISNULL(tvp.TempoAuto,0)
,mse.TempoRun = ISNULL(tvp.TempoRun,0)
,mse.TCMedio = ISNULL(tvp.TCMedio,0)
,mse.TCLav = ISNULL(tvp.TCLav,0)
,mse.TCEff = ISNULL(tvp.TCEff,0)
,mse.TCMedioRT = ISNULL(tvp.TCMedioRT,0)
,mse.TCLavRT = ISNULL(tvp.TCLavRT,0)
,mse.TCEffRT = ISNULL(tvp.TCEffRT,0)
FROM MappaStatoExpl mse INNER JOIN @tvProd tvp ON mse.IdxMacchina=tvp.IdxMacchina
END
END
-- restituisco la tabella finale
SELECT *
FROM MappaStatoExpl
RETURN
go
commit;
go
set xact_abort on;
go
begin transaction;
go
set ANSI_NULLS on;
go
/***************************************************
* Trigger trg_ODL_updateMSE
*
* fa un refresh completo della MSE ad ogni intervento sull'ODL
*
* modificato: S.E.L.
* 2013.03.14
*
***************************************************/
create TRIGGER trg_ODL_updateMSE
ON ODL
FOR INSERT, UPDATE
AS
-- eseguo RICALCOLO tabella stato expl
EXEC stp_MSE_getData 0
go
commit;
go
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 )
/* recupero altri valori */
SET @TabAzione = ( SELECT ISNULL(TabAzione,'') FROM AnagraficaEventi WHERE IdxTipo = @IdxTipo )
SET @Azione = ( SELECT ISNULL(Azione,'') FROM AnagraficaEventi WHERE IdxTipo = @IdxTipo )
/* 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 ) )
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 ) )
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 ) )
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
-- registro versione...
INSERT INTO [dbo].[LogUpdateDb] ([Versione],[Data]) VALUES(375, GETDATE())
GO
SELECT TOP 10 * FROM LogUpdateDb ORDER BY Versione DESC
GO