-- Schema: C6Mart
-- Stored Procedure: PL_S37PiramideModello

-- =============================================
-- Author:		Paolo Giovanetti
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
-- [C6Mart].[PL_S37PiramideModello] 'F','RSSGPL33R01L219K'
CREATE procedure [C6Mart].[PL_S37PiramideModello] 
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN

-- VECCHIA VERSIONE CON UNA RIGA DI TROPPO PER L'AREA INV
--	SELECT 
--		AREA_BISOGNO.ID_AREA AS Need_Breve,						-- NOME BREVE DELL'AREA DI BISOGNO
--		PIRAMIDE_MOD.NOME_PROGETTO AS Nome_Progetto,			-- NOME DEL PROGETTO (AREA INV)
--		ISNULL(PIRAMIDE_MOD.PERC_AREA,0) AS Perc_Need,			-- PERCENTUALE DI ALLOCAZIONE SULL'AREA DI BISOGNO
--		PIRAMIDE_MOD.ORIZZ_TEMP AS Orizz_Temp,					-- ORIZZONTE TEMPORALE DEL PROGETTO
--		SUM(CASE WHEN PIRAMIDE_MOD.NOME_PROGETTO IS NULL THEN ISNULL(PIRAMIDE_MOD.PERC_AREA,0) ELSE 0 END) OVER (PARTITION BY PIRAMIDE_MOD.RETE, PIRAMIDE_MOD.COD_FISCALE, AREA_BISOGNO.ID_AREA) AS Totale_Percentuale,	-- PERCENTUALE DI ALLOCAZIONE DEI PROGETTI
--		SUM(CASE WHEN PIRAMIDE_MOD.NOME_PROGETTO IS NULL THEN ISNULL(PIRAMIDE_MOD.PERC_AREA,0) ELSE 0 END) OVER (PARTITION BY PIRAMIDE_MOD.RETE, PIRAMIDE_MOD.COD_FISCALE) AS Totale,
--		COUNT(CASE WHEN AREA_BISOGNO.ID_AREA = 'INV' AND PIRAMIDE_MOD.NOME_PROGETTO IS NOT NULL THEN 1 ELSE NULL END) OVER (PARTITION BY PIRAMIDE_MOD.RETE, PIRAMIDE_MOD.COD_FISCALE) AS NumeroProgettiInv,
--		AREA_BISOGNO.ORDINAMENTO
--	FROM C6MART.AREA_BISOGNO
--	LEFT JOIN C6MART.PIRAMIDE_MOD ON PIRAMIDE_MOD.ID_AREA = AREA_BISOGNO.ID_AREA
--									AND PIRAMIDE_MOD.RETE = @Rete
--									AND PIRAMIDE_MOD.COD_FISCALE = @CodiceFiscale
--	WHERE  AREA_BISOGNO.ORDINAMENTO < 6	
--	ORDER BY AREA_BISOGNO.ORDINAMENTO

	SELECT
		AREA_BISOGNO.ID_AREA AS Need_Breve,						-- NOME BREVE DELL'AREA DI BISOGNO
		PIRAMIDE_MOD.NOME_PROGETTO AS Nome_Progetto,			-- NOME DEL PROGETTO (AREA INV)
		ISNULL(PIRAMIDE_MOD.PERC_AREA,0) AS Perc_Need,			-- PERCENTUALE DI ALLOCAZIONE SULL'AREA DI BISOGNO
		PIRAMIDE_MOD.ORIZZ_TEMP AS Orizz_Temp,					-- ORIZZONTE TEMPORALE DEL PROGETTO
		SUM(ISNULL(PIRAMIDE_MOD.PERC_AREA,0)) OVER (PARTITION BY PIRAMIDE_MOD.RETE, PIRAMIDE_MOD.COD_FISCALE, AREA_BISOGNO.ID_AREA) AS Totale_Percentuale,	-- PERCENTUALE DI ALLOCAZIONE DEI PROGETTI
		SUM(ISNULL(PIRAMIDE_MOD.PERC_AREA,0)) OVER (PARTITION BY PIRAMIDE_MOD.RETE, PIRAMIDE_MOD.COD_FISCALE) AS Totale,
		COUNT(CASE WHEN AREA_BISOGNO.ID_AREA = 'INV' AND PIRAMIDE_MOD.NOME_PROGETTO IS NOT NULL THEN 1 ELSE NULL END) OVER (PARTITION BY PIRAMIDE_MOD.RETE, PIRAMIDE_MOD.COD_FISCALE) AS NumeroProgettiInv,
		AREA_BISOGNO.ORDINAMENTO
	FROM C6MART.AREA_BISOGNO
	LEFT JOIN C6MART.PIRAMIDE_MOD 
		ON PIRAMIDE_MOD.ID_AREA = AREA_BISOGNO.ID_AREA
		AND((PIRAMIDE_MOD.ID_AREA = 'INV' AND (PIRAMIDE_MOD.NOME_PROGETTO IS NOT NULL OR PIRAMIDE_MOD.NOME_PROGETTO = 'Default'))
			OR PIRAMIDE_MOD.ID_AREA IN ('RIS','EXT','LIQ','PRE'))
		AND PIRAMIDE_MOD.RETE = @Rete
		AND PIRAMIDE_MOD.COD_FISCALE = @CodiceFiscale
	WHERE  AREA_BISOGNO.ORDINAMENTO < 6	
	ORDER BY AREA_BISOGNO.ORDINAMENTO

END



