set xact_abort on;
go

begin transaction;
go

set ANSI_NULLS on;
go

/***************************************
* STORED stp_prtCartLiquidi_F18ByUDC
*
* ottiene il record del Cartellino Liquidi dato l'UDC richiesto x la stampa
*
* Steamware, S.E.L.
* mod: 2011.12.19
*
****************************************/
alter PROCEDURE stp_prtCartLiquidi_F18ByUDC
(
	@UDC NVARCHAR(50)
)
AS

    -- estraggo gli UDC parent di quello passato ( x max 10 ) per poi stamparlo nel campo 
    -- NoteTratt che era utilizzato per stampare i trattamenti nel artellino F10
	DECLARE @tmp		NVARCHAR(500)
	DECLARE @NoteTratt	NVARCHAR(500)   -- usato per memorizzare gli UDC F10 parent associati 
	SET @tmp = ''
	SELECT  TOP 10 @tmp = @tmp + RTRIM(UDC_parent) + ' - ' from RelazUDC WHERE UDC_child = @UDC

	SET	@NoteTratt = (SELECT SUBSTRING(@tmp, 0, LEN(@tmp)))

	-- ora seleziono i dati veri e propri
    SELECT ISNULL(ElencoCartellini.UDC, N'') AS UDC
       ,ISNULL(ElencoCartellini.CodCS, N'') AS CodCS
       ,ISNULL(ElencoCartellini.CodCliente, N'') AS codcliente
       ,ISNULL(ElencoCartellini.RagSociale, N'') AS ragsociale
       ,ISNULL(ElencoCartellini.Particolare, N'') AS particolare
       ,ISNULL(ElencoCartellini.DescParticolare, N'') AS DescParticolare
       ,ISNULL(ElencoCartellini.DisegnoGrezzo, N'') AS DisegnoGrezzo
       ,ISNULL(ElencoCartellini.Esponente, N'') AS esponente
       ,ISNULL(ElencoCartellini.CodImpianto, N'') AS CodImpianto
       ,ISNULL(ElencoCartellini.DescImpianto, N'') AS DescImpianto
       ,ISNULL(ElencoCartellini.CodStampo, N'') AS codstampo
       ,ISNULL(ElencoCartellini.Figura, N'') AS figura
       ,ISNULL(ElencoCartellini.DataFus, N'') AS datafus
       ,ISNULL(ElencoCartellini.TurnoFus, N'') AS turnofus
       ,ISNULL(ElencoCartellini.CodImballo, N'') AS CodImballo
       ,ISNULL(ElencoCartellini.CodSoggetto, N'') AS CodSoggetto
       ,ISNULL(ElencoCartellini.NumCont, N'') AS NumCont
       ,ISNULL(ElencoCartellini.Tara, N'') AS tara
       ,ISNULL(ElencoCartellini.Qta, N'') AS qta
       ,ISNULL(ElencoCartellini.CodStato, N'') AS CodStato
       ,ISNULL(ElencoCartellini.IdxPosizione, N'') AS IdxPosizione
       ,ISNULL(ElencoCartellini.PesoTot, N'') AS PesoTot
       ,ISNULL(ElencoCartellini.PesoCad, N'') AS PesoCad
       ,ElencoCartellini.CreateDate
       ,ElencoCartellini.ModDate
       ,ISNULL(RilPro.AnagOperatori.Cognome, N'') AS cognome
       ,ISNULL(RilPro.AnagOperatori.Nome, N'') AS nome
       ,ISNULL(AnagStatiProdotto.DescStato, N'') AS DescStato
       ,ISNULL(RilPro.AnagImballi.DescImballo, N'') AS DescImballo
       ,ISNULL(RilPro.AnagParticolari.CodFamiglia, N'') AS CodFamiglia
       ,ISNULL(RilPro.AnagFamiglie.DescFamiglia, N'') AS DescFamiglia
       ,ISNULL(ElencoCartellini.Note, N'') AS Note
       ,ISNULL(@NoteTratt, N'') AS NoteTratt
    FROM   RilPro.AnagParticolari 
	LEFT OUTER JOIN
		RilPro.AnagFamiglie 
	ON
		RilPro.AnagParticolari.CodFamiglia = RilPro.AnagFamiglie.CodFamiglia 
	RIGHT OUTER JOIN
		ElencoCartellini 
	ON
		RilPro.AnagParticolari.Particolare = ElencoCartellini.Particolare 
	LEFT OUTER JOIN
		AnagStatiProdotto 
	ON
		ElencoCartellini.CodStato = AnagStatiProdotto.CodStato 
	LEFT OUTER JOIN
		RilPro.AnagOperatori 
	ON
		ElencoCartellini.CodSoggetto = RilPro.AnagOperatori.CodSoggetto 
	LEFT OUTER JOIN
		RilPro.AnagImballi 
	ON
		ElencoCartellini.CodImballo = RilPro.AnagImballi.CodImballo 
	WHERE
		(ElencoCartellini.UDC = @UDC)
 

RETURN
go

commit;
go


set xact_abort on;
go

begin transaction;
go

set ANSI_NULLS on;
go

/***************************************
* STORED stp_ParticolariOverview
*
* elenco di overview sullo stato dei magazzini (dettaglio a "maglie larghe")
*
* Steamware, S.E.L.
* mod: 2012.05.18
*
****************************************/
alter PROCEDURE stp_magazzinoOverview
(
	@CodCS VARCHAR(2),
	@particolare NVARCHAR(15) = ''
)
AS

-- IN PRIMIS: controllo se particolare sia null metto ''...
SET	@particolare = ( SELECT ISNULL(@particolare, '') )
	
-- controllo se particolare vuoto o '*' mostro tutto...
IF(@particolare = '' OR @particolare='*')
	BEGIN	
		SELECT     AnagMag.CodCS, AnagMag.CodMag, AnagMag.DescMag, Blocchi.IdxBlocco, Blocchi.CodBlocco, Blocchi.DescBlocco, 
				   TipoCella.Capienza * Blocchi.NumX * Blocchi.NumY * Blocchi.NumZ AS TotCelle, 
				   TipoCella.Capienza * COUNT(DISTINCT Celle.IdxCella) AS CelleAttive, 
				   COUNT(PosizioneUdcCorrente.UDC) AS CelleOccupate, 
				   TipoCella.Capienza * COUNT(DISTINCT Celle.IdxCella) - COUNT(PosizioneUdcCorrente.UDC) AS CelleLibere, 
				   ISNULL(MIN(PosizioneUdcCorrente.DataRif), GETDATE()) AS Oldest, ISNULL(MAX(PosizioneUdcCorrente.DataRif), GETDATE()) AS Newest
	FROM			TipoCella INNER JOIN
					AnagMag INNER JOIN
					Blocchi ON AnagMag.CodMag = Blocchi.CodMag AND AnagMag.CodCS = Blocchi.CodCS ON TipoCella.CodMag = AnagMag.CodMag AND 
					TipoCella.CodCS = AnagMag.CodCS LEFT OUTER JOIN
					Celle ON TipoCella.IdxTipoCella = Celle.IdxTipoCella AND Blocchi.IdxBlocco = Celle.IdxBlocco LEFT OUTER JOIN
					PosizioneUdcCorrente ON Celle.IdxCella = PosizioneUdcCorrente.IdxCella
	WHERE			(Celle.Attiva = 1) AND (AnagMag.CodCS = @CodCS) AND (ISNULL(AnagMag.Nascosto, 0) = 0)
	GROUP BY		AnagMag.CodCS, AnagMag.CodMag, AnagMag.DescMag, Blocchi.IdxBlocco, Blocchi.CodBlocco, Blocchi.DescBlocco, 
					Blocchi.NumX, Blocchi.NumY, Blocchi.NumZ, 
					TipoCella.Capienza
	ORDER BY		AnagMag.CodMag, Blocchi.CodBlocco
	END
ELSE
	BEGIN
		SELECT     AnagMag.CodCS, AnagMag.CodMag, AnagMag.DescMag, Blocchi.IdxBlocco, Blocchi.CodBlocco, Blocchi.DescBlocco, 
				   TipoCella.Capienza * Blocchi.NumX * Blocchi.NumY * Blocchi.NumZ AS TotCelle, 
				   TipoCella.Capienza * COUNT(DISTINCT Celle.IdxCella) AS CelleAttive, 
				   COUNT(PosizioneUdcCorrente.UDC) AS CelleOccupate, 
				   TipoCella.Capienza * COUNT(DISTINCT Celle.IdxCella) - COUNT(PosizioneUdcCorrente.UDC) AS CelleLibere, 
				   ISNULL(MIN(PosizioneUdcCorrente.DataRif), GETDATE()) AS Oldest, ISNULL(MAX(PosizioneUdcCorrente.DataRif), GETDATE()) AS Newest
	FROM			TipoCella INNER JOIN
					AnagMag INNER JOIN
					Blocchi ON AnagMag.CodMag = Blocchi.CodMag AND AnagMag.CodCS = Blocchi.CodCS ON TipoCella.CodMag = AnagMag.CodMag AND 
					TipoCella.CodCS = AnagMag.CodCS LEFT OUTER JOIN
					Celle ON TipoCella.IdxTipoCella = Celle.IdxTipoCella AND Blocchi.IdxBlocco = Celle.IdxBlocco LEFT OUTER JOIN
					PosizioneUdcCorrente ON Celle.IdxCella = PosizioneUdcCorrente.IdxCella
					INNER JOIN ElencoCartellini ec ON PosizioneUdcCorrente.UDC = ec.UDC
	WHERE			(Celle.Attiva = 1) AND (AnagMag.CodCS = @CodCS) AND (ISNULL(AnagMag.Nascosto, 0) = 0) AND ec.particolare = @particolare
	GROUP BY		AnagMag.CodCS, AnagMag.CodMag, AnagMag.DescMag, Blocchi.IdxBlocco, Blocchi.CodBlocco, Blocchi.DescBlocco, 
					Blocchi.NumX, Blocchi.NumY, Blocchi.NumZ, 
					TipoCella.Capienza
	ORDER BY		AnagMag.CodMag, Blocchi.CodBlocco
	END

RETURN
go

commit;
go


set xact_abort on;
go

begin transaction;
go

drop procedure stp_annullaUDC;
go

drop procedure stp_UDC_insNew;
go

commit;
go





-- registro versione...
INSERT INTO [dbo].[LogUpdateDb] ([Versione],[Data]) VALUES(435, GETDATE())
GO
