
/***************************************
* STORED stp_ParticolariOverviewPerListaPrelievo
*
* elenco di overview sull'impiego dei particolari (dettaglio a "maglie larghe") x una possibile lista di prelievo
*
* Steamware, S.E.L.
* mod: 2010.05.31
*
****************************************/
CREATE PROCEDURE [dbo].[stp_ParticolariOverviewPerListaPrelievo]
(
	@Particolare VARCHAR(50),
	@CodCS VARCHAR(2),
	@Esponente NVARCHAR(6),
	@Figura NVARCHAR(4),
	@CodImballo NVARCHAR(15),
	@CodTipoLista NVARCHAR (10)
)
AS
	SELECT      RilPro.AnagParticolari.Particolare, RilPro.AnagParticolari.DescParticolare, ISNULL(COUNT(dbo.ElencoCartellini.UDC), 0) AS NumUDC, 
				ISNULL(SUM(dbo.ElencoCartellini.Qta), 0) AS TotQta, ISNULL(COUNT(dbo.PosizioneUdcCorrente.IdxCella), 0) AS NumInMag
	FROM        RilPro.AnagParticolari LEFT OUTER JOIN
				dbo.ElencoCartellini ON RilPro.AnagParticolari.Particolare = dbo.ElencoCartellini.Particolare LEFT OUTER JOIN
				dbo.PosizioneUdcCorrente ON dbo.ElencoCartellini.UDC = dbo.PosizioneUdcCorrente.UDC
	WHERE		RilPro.AnagParticolari.CodCS = @CodCS AND 
				RilPro.AnagParticolari.Particolare = @Particolare AND 
				(IdxPosizione IN (SELECT	tt.IdxPosizione
	                 	   FROM     TipoListaPrelievo tlp INNER JOIN TabTranPosizEventi tt ON tlp.CodEvento = tt.CodEvento
	                 	   WHERE	(tlp.CodTipoLista = @CodTipoLista))) AND 
				(dbo.ElencoCartellini.Figura		= CASE WHEN @Figura		= '*' THEN dbo.ElencoCartellini.Figura		ELSE @Figura	END) AND
				(dbo.ElencoCartellini.Esponente		= CASE WHEN @Esponente  = '*' THEN dbo.ElencoCartellini.Esponente	ELSE @Esponente END) AND
				(dbo.ElencoCartellini.CodImballo	= CASE WHEN @CodImballo	= '*' THEN dbo.ElencoCartellini.CodImballo	ELSE @CodImballo END)
				
				AND ElencoCartellini.UDC NOT IN (
					SELECT DISTINCT UDC 
					FROM RigheListePrelievo INNER JOIN ElencoListePrelievo
					ON	RigheListePrelievo.CodLista = ElencoListePrelievo.CodLista
					WHERE (CodStatoLista > 1 AND Prelevato = 1)
					)
				
	GROUP BY	RilPro.AnagParticolari.Particolare, RilPro.AnagParticolari.DescParticolare

RETURN
