﻿-- =============================================
-- Author:		Luca di Chiara
-- Create date: 29/07/2024
-- Description:	Procedura per il controllo del buon esito dell'allineamento maiisvo propedeutico alle lettere di benvenuto
-- =============================================
CREATE PROCEDURE [dbo].[VerificaAllMassGior] 
	-- Add the parameters for the stored procedure here
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
    -- Insert statements for procedure here
		Declare @ELABORAZIONE_CONCLUSA bit =0
		declare @InizioVerifica datetime = getdate()
		declare @dtinizio datetime 
		declare @stato varchar(20) =''
			--Prima di eseguire il primo check attendo 2 minuti
			--per dare tempo al precedente dtsx di inserire un nuovo record nella logbatch generale
			--se non attendo il rischio è che nel successivo controllo sulla logbatchgenerale, 
			--venga preso in considerazione il record relativo ad un'esecuzione precedente
			WAITFOR DELAY '00:02:00'
			print '... sleep 2 ...'
		WHILE @ELABORAZIONE_CONCLUSA = 0
		BEGIN
			RAISError(N'', 0, 1) WITH NOWAIT
			-- si aspetta al massimo 15 minuti per il termine dell'allineamento massivo dopodiche si manda in errore
			if  datediff(  minute,  @InizioVerifica  , getdate()) >  15
			  Begin
				select * from MandaInErrore
				print 'Superato tempo limite per attendere la conclusione dell''elaborazione dell allineamentomassivo, interrompiamo'
			  End
			Else
			  Begin
					select top 1 @dtinizio = dtesecuzione, @stato = stato from consuni.consulenzaunicafl.dbo.logbatchgenerale where nomebatch like 'AllineamentoMassivoGiornaliero' order by dtesecuzione desc
				    if datediff(  minute,  @dtinizio  , getdate()) <= 15 AND @STATO = 'OK' 
						BEGIN
							SET @ELABORAZIONE_CONCLUSA = 1
						END		 
			  END
			-- attesa di 20 secondi
			WAITFOR DELAY '00:00:10'
			print '... aspetto 10 secondi prima di ricontrollare ...'
		END
END