-- Schema: C6MartPeriodico
-- Stored Procedure: PL_MP_S144DistibuzionePerScadenze



-- [C6martPeriodico].PL_MP_S144DistibuzionePerScadenze 'f','00164770307'
CREATE procedure [C6MartPeriodico].[PL_MP_S144DistibuzionePerScadenze]
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	SET NOCOUNT ON;
	
	
DECLARE @DTTRIM datetime
SET @DTTRIM  = c6martperiodico.gettrimestre2(getdate(),0)

SELECT 
	T.SCADENZA,
	T.CONTROVALORE ,
	ISNULL(sum(CONTROVALORE) / ((SELECT sum(BF.ctv)
				FROM c6MartPeriodico.ANAG_PRODOTTI ANAG
				INNER JOIN c6MartPeriodico.patrimonio_BF BF
				ON ANAG.COD_PRODOTTO = BF.COD_PRODOTTO
				AND BF.rete = @Rete
				AND BF.cod_fiscale = @CodiceFiscale
				AND ANAG.FLG_OB='S'
				AND ANAG.DT_SCADENZA >= @DTTRIM)/100),0)   
	AS Percentage,
	CASE T.SCADENZA
 		WHEN 'Meno di 1 anno' THEN  128  
		WHEN 'Da 1 a 3 anni' THEN   161
		WHEN 'Da 3 a 7 anni' THEN   193
		WHEN 'Più di 7 anni' THEN   224
		ELSE 255 
    END AS Red,
    CASE T.SCADENZA
 		WHEN 'Meno di 1 anno' THEN  153
		WHEN 'Da 1 a 3 anni' THEN   177
		WHEN 'Da 3 a 7 anni' THEN   202
		WHEN 'Più di 7 anni' THEN   228
		ELSE 255 
    END AS Green,
    CASE T.SCADENZA
 		WHEN 'Meno di 1 anno' THEN  136 
		WHEN 'Da 1 a 3 anni' THEN   163
		WHEN 'Da 3 a 7 anni' THEN   193
		WHEN 'Più di 7 anni' THEN   223
		ELSE 255 
    END AS Blue
    
FROM (
		SELECT
		  'Meno di 1 anno' as SCADENZA,
		  ISNULL(sum(BF.ctv),0) as CONTROVALORE, 
		  1 AS ORDINE    
		FROM c6MartPeriodico.ANAG_PRODOTTI ANAG
			INNER JOIN c6MartPeriodico.patrimonio_BF BF
			ON ANAG.COD_PRODOTTO = BF.COD_PRODOTTO
			AND BF.rete = @Rete
			AND BF.cod_fiscale = @CodiceFiscale
			AND DATEDIFF(d, GETDATE(),ANAG.DT_SCADENZA) <=  365	
			AND ANAG.FLG_OB='S'				
			AND ANAG.DT_SCADENZA >= @DTTRIM

		UNION

		SELECT
		  'Da 1 a 3 anni' as SCADENZA,
		  ISNULL(sum(BF.ctv),0) as CONTROVALORE,
		  2 AS ORDINE  
		FROM c6MartPeriodico.ANAG_PRODOTTI ANAG
			INNER JOIN c6MartPeriodico.patrimonio_BF BF
			ON ANAG.COD_PRODOTTO = BF.COD_PRODOTTO
			AND BF.rete = @Rete
			AND BF.cod_fiscale = @CodiceFiscale
			AND DATEDIFF(d, GETDATE(),ANAG.DT_SCADENZA) BETWEEN 365+1 and  365*3	
			AND ANAG.FLG_OB='S'			
			AND ANAG.DT_SCADENZA >= @DTTRIM
			
		UNION

		SELECT
		  'Da 3 a 7 anni' as SCADENZA,
		  ISNULL(sum(BF.ctv),0) as CONTROVALORE,
		  3 AS ORDINE   
		FROM c6MartPeriodico.ANAG_PRODOTTI ANAG
			INNER JOIN c6MartPeriodico.patrimonio_BF BF
			ON ANAG.COD_PRODOTTO = BF.COD_PRODOTTO
			AND BF.rete = @Rete
			AND BF.cod_fiscale = @CodiceFiscale
			AND DATEDIFF(d, GETDATE(),ANAG.DT_SCADENZA) BETWEEN 365*3+1 and  365*7
			AND ANAG.FLG_OB='S'						
			AND ANAG.DT_SCADENZA >= @DTTRIM

		UNION

		SELECT
		  'Più di 7 anni' as SCADENZA,
		  ISNULL(sum(BF.ctv),0) as CONTROVALORE,
		  4 AS ORDINE  
		FROM c6MartPeriodico.ANAG_PRODOTTI ANAG
			INNER JOIN c6MartPeriodico.patrimonio_BF BF
			ON ANAG.COD_PRODOTTO = BF.COD_PRODOTTO
			AND BF.rete = @Rete
			AND BF.cod_fiscale = @CodiceFiscale
			AND DATEDIFF(d, GETDATE(),ANAG.DT_SCADENZA) >=  365*7+1  	
			AND ANAG.FLG_OB='S'			
			AND ANAG.DT_SCADENZA >= @DTTRIM
) T
WHERE T.CONTROVALORE > 0
GROUP BY T.SCADENZA,T.CONTROVALORE,T.ORDINE
ORDER BY T.ORDINE
END