
/***************************************
* STORED stp_paretoDettPartByFullSpecMagLog
*
* restituisce elenco particolari in logica pareto (quantità) per un dato blocco di magazzino e il particolare ed il magazzino logico!!!
*
* Steamware, S.E.L.
* mod: 2010.09.15
*
****************************************/
create PROCEDURE stp_paretoDettPartByFullSpecMagLog
(
	@CodCS VARCHAR(2),
	@CodMag VARCHAR(50),
	@IdxBlocco INT,
	@Particolare VARCHAR(20),
	@CodMagLog INT
)
AS

	SELECT	TOP (100) PERCENT AnagMag.CodCS, AnagMag.CodMag, AnagMag.DescMag, Blocchi.IdxBlocco, Blocchi.CodBlocco, ElencoCartellini.Particolare, 
				ElencoCartellini.Esponente, COUNT(PosizioneUdcCorrente.UDC) AS NumUDC, ISNULL(MIN(PosizioneUdcCorrente.DataRif), 
				GETDATE()) AS Oldest, ISNULL(MAX(PosizioneUdcCorrente.DataRif), GETDATE()) AS Newest, SUM(ElencoCartellini.Qta) AS QtaTotPz, 
				AnagStatiProdotto.DescStato
	FROM		AnagMag INNER JOIN
				Blocchi ON AnagMag.CodMag = Blocchi.CodMag AND AnagMag.CodCS = Blocchi.CodCS INNER JOIN
				Celle INNER JOIN
				ElencoCartellini INNER JOIN
				PosizioneUdcCorrente ON ElencoCartellini.UDC = PosizioneUdcCorrente.UDC ON Celle.IdxCella = PosizioneUdcCorrente.IdxCella ON 
				Blocchi.IdxBlocco = Celle.IdxBlocco INNER JOIN
				AnagStatiProdotto ON ElencoCartellini.CodStato = AnagStatiProdotto.CodStato
	WHERE		(Celle.Attiva = 1) AND (AnagMag.CodCS = @CodCS) AND (AnagMag.CodMag = @CodMag) AND (Blocchi.IdxBlocco = @IdxBlocco) AND 
				(ElencoCartellini.Particolare = @Particolare) AND ElencoCartellini.IdxPosizione = @CodMagLog
	GROUP BY	AnagMag.CodCS, AnagMag.CodMag, AnagMag.DescMag, Blocchi.IdxBlocco, Blocchi.CodBlocco, Blocchi.NumX, Blocchi.NumY, Blocchi.NumZ, 
	            ElencoCartellini.Particolare, ElencoCartellini.Esponente, AnagStatiProdotto.DescStato
	ORDER BY	QtaTotPz DESC

	
RETURN
