﻿-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
--[C6MartPeriodico].[PL_S80EvoluzioneControvalore]'F','GSTGPL59P03B586G'
--DROP PROCEDURE [C6MartPeriodico].[PL_S80BisEvoluzioneRischio]
CREATE procedure [C6MartPeriodico].[PL_S80EvoluzioneControvalore]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
	-- Recupero data congelamento SEI
	DECLARE @DataCongelamento DATETIME
    DECLARE @MONIT_ATTIV INT
	SET @DataCongelamento = C6MartPeriodico.getDataCongelamento()
    SET  @MONIT_ATTIV=0
   -- INSERIMENTO BLOCCO PER MONITORAGGIO CHIUSO O NON ESISTENTE
    SELECT @MONIT_ATTIV=COUNT(*)
    FROM 
    C6MARTPERIODICO.MONITORAGGIO_ATTUALE
    WHERE 
    		RETE = @Rete AND
		    COD_FISCALE = @CodiceFiscale
    IF @MONIT_ATTIV > 0 
    BEGIN
	-- Attivazione monitoraggio
--versione nuova da testare 
	SELECT
		1 AS Fase,
		INI.DATA_FOTO AS DataFase,
		INI.CTV_NA AS RisorseNonAllocate,
		INI.CTV_CC AS Contocorrente,
--INIZIO INTERVENTI OMNIA
		INI.CTVSELF AS Ctvself,
--FINE INTERVENTI OMNIA
		ISNULL(INI.PARTITA_VIAGGIANTE,0) AS Partita_viaggiante,
		INI.CTV_TOTALE AS ControvaloreComplessivo
	FROM
		C6MartPeriodico.MONITORAGGIO_INIZIALE INI
        left outer join
        C6MartPeriodico.MONITORAGGIO_REPORT rep
        on 
        REP.RETE=INI.RETE
        AND 
        REP.COD_FISCALE=INI.COD_FISCALE
	WHERE
		INI.RETE = @Rete 
AND
		INI.COD_FISCALE = @CodiceFiscale
--	SELECT
--		1 AS Fase,
--		INI.DATA_FOTO AS DataFase,
--		INI.CTV_NA AS RisorseNonAllocate,
--		INI.CTV_CC AS Contocorrente,
--		ISNULL(INI.PARTITA_VIAGGIANTE,0) AS Partita_viaggiante,
--		INI.CTV_TOTALE AS ControvaloreComplessivo
--	FROM
--		C6MartPeriodico.MONITORAGGIO_INIZIALE INI
--	WHERE
--		INI.RETE = @Rete AND
--		INI.COD_FISCALE = @CodiceFiscale
    UNION ALL
	-- Precedente invio report
	SELECT
		2 AS Fase,
		rep.DATA_INVIO AS DataFase,
		rep.CTV_NA AS RisorseNonAllocate,
		rep.CTV_CC AS Contocorrente,
--INIZIO INTERVENTI OMNIA
		rep.CTV_SELF AS Ctvself,
--FINE INTERVENTI OMNIA
		ISNULL(rep.PARTITA_VIAGGIANTE,0) AS Partita_viaggiante,
		--CTV_TOTALE + CTV_CC + CTV_NA  + ISNULL(PARTITA_VIAGGIANTE,0)  AS ControvaloreComplessivo  --V aggiunto il cc e na per coerenza con le altre fasi
		rep.CTV_TOTALE  + ISNULL(rep.PARTITA_VIAGGIANTE,0)  AS ControvaloreComplessivo  --V tolto il cc e na in quanto gia conteggiati
	FROM
		C6MartPeriodico.MONITORAGGIO_INIZIALE INI
        left outer join
        C6MartPeriodico.MONITORAGGIO_REPORT rep
        on 
        REP.RETE=INI.RETE
        AND 
        REP.COD_FISCALE=INI.COD_FISCALE
	WHERE
		rep.RETE = @Rete AND
		rep.COD_FISCALE = @CodiceFiscale
		AND INI.DATA_FOTO < ISNULL(REP.DATA_INVIO,cast('29991231' as datetime))
		and ISNULL(DATA_INVIO,cast('29991231' as datetime))<@datacongelamento
	UNION ALL
	-- Situazione corrente
	SELECT
		3 AS Fase,
		CASE
			WHEN @DataCongelamento IS NULL THEN GETDATE()
			ELSE @DataCongelamento
		END AS DataFase,
		PatrimonioNonAssociato AS RisorseNonAllocate,
		ContoCorrente,
--INIZIO INTERVENTI OMNIA
		CTVSelf AS Ctvself,
--FINE INTERVENTI OMNIA
		PartiteViaggiantiDisinv AS Partita_viaggiante,
		CTV AS ControvaloreComplessivo
	FROM
		C6MartPeriodico.vPatrimonioBFAggregato
	WHERE
		RETE = @Rete AND
		COD_FISCALE = @CodiceFiscale
END
ELSE
BEGIN
	SELECT
		1 AS Fase,
		DATA_FOTO AS DataFase,
		CTV_NA AS RisorseNonAllocate,
		CTV_CC AS Contocorrente,
		ISNULL(PARTITA_VIAGGIANTE,0) AS Partita_viaggiante,
		CTV_TOTALE AS ControvaloreComplessivo
	FROM
		C6MartPeriodico.MONITORAGGIO_INIZIALE
	WHERE
	1=2
END
END