﻿CREATE TABLE [dbo].[MtzProgrammata] (
    [idxIntPro]    INT             IDENTITY (1, 1) NOT NULL,
    [idxMacchina]  INT             NULL,
    [inizio]       DATETIME        NULL,
    [codFrequenza] NCHAR (2)       NULL,
    [cadenza]      INT             NULL,
    [descrizione]  NVARCHAR (2500) NULL,
    [idxPriorita]  INT             NULL,
    [isFermo]      BIT             CONSTRAINT [DF_MtzProgrammata_isFermo] DEFAULT ((1)) NULL,
    [idxTipo]      INT             NULL,
    CONSTRAINT [PK_MtzProgrammata] PRIMARY KEY CLUSTERED ([idxIntPro] ASC),
    CONSTRAINT [FK_MtzProgrammata_AnagFrequenze] FOREIGN KEY ([codFrequenza]) REFERENCES [dbo].[AnagFrequenze] ([codFrequenza]) ON UPDATE CASCADE,
    CONSTRAINT [FK_MtzProgrammata_AnagMacchine] FOREIGN KEY ([idxMacchina]) REFERENCES [dbo].[AnagMacchine] ([idxMacchina]) ON UPDATE CASCADE
);


GO
/*********************************************************************************
* TRIGGER trg_updateMPPending
*
* eliminazione, in caso di update di un intervento di MtzProgrammata, 
* dei record di interventi "pending" predisposti... così saranno rigenerati corretti
*
**********************************************************************************/
CREATE TRIGGER trg_updateMPPending
ON dbo.MtzProgrammata
FOR UPDATE, DELETE
AS

BEGIN tran
	-- elimino interventi pending interessati...
	DELETE 
	FROM MtzProgPending
	WHERE idxIntPro IN
	(
		-- prendendo gli interventi mtzProgrammata modificati...
		SELECT DISTINCT idxIntPro FROM DELETED
	)

COMMIT tran
