set xact_abort on;
go

begin transaction;
go

set ANSI_NULLS on;
go

create VIEW v_selTipoPart
AS
SELECT        val AS value, CASE WHEN val = 'A' THEN 'Anime' WHEN val = 'P' THEN 'Produzione' ELSE val + ' (n.d.)' END AS label
FROM            (SELECT DISTINCT ClassifArticolo AS val
                          FROM            RilPro.AnagParticolari) AS derivedtbl_1
go

exec sp_addextendedproperty 'MS_DiagramPane1', '[0E232FF0-B466-11cf-A24F-00AA00A3EFFF, 1.00]
Begin DesignProperties = 
   Begin PaneConfigurations = 
      Begin PaneConfiguration = 0
         NumPanes = 4
         Configuration = "(H (1[40] 4[20] 2[20] 3) )"
      End
      Begin PaneConfiguration = 1
         NumPanes = 3
         Configuration = "(H (1 [50] 4 [25] 3))"
      End
      Begin PaneConfiguration = 2
         NumPanes = 3
         Configuration = "(H (1 [50] 2 [25] 3))"
      End
      Begin PaneConfiguration = 3
         NumPanes = 3
         Configuration = "(H (4 [30] 2 [40] 3))"
      End
      Begin PaneConfiguration = 4
         NumPanes = 2
         Configuration = "(H (1 [56] 3))"
      End
      Begin PaneConfiguration = 5
         NumPanes = 2
         Configuration = "(H (2 [66] 3))"
      End
      Begin PaneConfiguration = 6
         NumPanes = 2
         Configuration = "(H (4 [50] 3))"
      End
      Begin PaneConfiguration = 7
         NumPanes = 1
         Configuration = "(V (3))"
      End
      Begin PaneConfiguration = 8
         NumPanes = 3
         Configuration = "(H (1[56] 4[18] 2) )"
      End
      Begin PaneConfiguration = 9
         NumPanes = 2
         Configuration = "(H (1 [75] 4))"
      End
      Begin PaneConfiguration = 10
         NumPanes = 2
         Configuration = "(H (1[66] 2) )"
      End
      Begin PaneConfiguration = 11
         NumPanes = 2
         Configuration = "(H (4 [60] 2))"
      End
      Begin PaneConfiguration = 12
         NumPanes = 1
         Configuration = "(H (1) )"
      End
      Begin PaneConfiguration = 13
         NumPanes = 1
         Configuration = "(V (4))"
      End
      Begin PaneConfiguration = 14
         NumPanes = 1
         Configuration = "(V (2))"
      End
      ActivePaneConfig = 0
   End
   Begin DiagramPane = 
      Begin Origin = 
         Top = 0
         Left = 0
      End
      Begin Tables = 
         Begin Table = "derivedtbl_1"
            Begin Extent = 
               Top = 6
               Left = 38
               Bottom = 85
               Right = 208
            End
            DisplayFlags = 280
            TopColumn = 0
         End
      End
   End
   Begin SQLPane = 
   End
   Begin DataPane = 
      Begin ParameterDefaults = ""
      End
      Begin ColumnWidths = 9
         Width = 284
         Width = 1500
         Width = 1500
         Width = 1500
         Width = 1500
         Width = 1500
         Width = 1500
         Width = 1500
         Width = 1500
      End
   End
   Begin CriteriaPane = 
      Begin ColumnWidths = 11
         Column = 1440
         Alias = 900
         Table = 1170
         Output = 720
         Append = 1400
         NewValue = 1170
         SortType = 1350
         SortOrder = 1410
         GroupBy = 1350
         Filter = 1350
         Or = 1350
         Or = 1350
         Or = 1350
      End
   End
End
', 'SCHEMA', 'dbo', 'VIEW', 'v_selTipoPart';
go

exec sp_addextendedproperty 'MS_DiagramPaneCount', 1, 'SCHEMA', 'dbo', 'VIEW', 'v_selTipoPart';
go

commit;
go


set xact_abort on;
go

begin transaction;
go

set ANSI_NULLS on;
go

/***************************************
* STORED stp_elencoListePrelievoFilt
*
* restituisce l'elenco delle liste di prelievo secondo criteri di filtraggio
*
* Steamware, S.E.L.
* mod: 2010.07.06
*
****************************************/
alter PROCEDURE stp_elencoListePrelievoFilt
(
	@DataFrom DATETIME,
	@DataTo DATETIME,
    @classifArticolo NCHAR(1) = '*'
)
AS
-- utilizza la vista righe lista prelievo e quindi solo le prelevate ...

	SELECT	velp.*
	FROM    V_elencoListePrelievo velp INNER JOIN RilPro.AnagParticolari ap ON velp.Particolare = ap.Particolare
	WHERE   (velp.DataCreaz BETWEEN @DataFrom AND @DataTo)
    AND     ap.classifArticolo = CASE WHEN ISNULL(@classifArticolo,'*') = '*' THEN ap.classifArticolo ELSE @classifArticolo END
	ORDER BY velp.DataCreaz DESC

RETURN
go

commit;
go


set xact_abort on;
go

begin transaction;
go

set ANSI_NULLS on;
go

/***************************************
* STORED stp_LP_updateDestTipo
*
* aggiorna destinatario e tipo per una lista di prelievo
*
* Steamware, S.E.L.
* mod: 2012.03.06
*
************************************/
alter PROCEDURE stp_LP_updateDestTipo
(
	@Original_CodLista  NVARCHAR(12),
	@CodTipoLista       VARCHAR(10),
	@CodCliente         NVARCHAR(6),
	@RagSociale         NVARCHAR(50),
	@CodSoggetto        VARCHAR(17),
	@DataMod            DATETIME
)
AS

--SET XACT_ABORT ON;

--BEGIN TRY
--    BEGIN TRANSACTION;

-- aggiorno lista prelievo con nuovo UDC
	UPDATE	dbo.ElencoListePrelievo
	SET		CodTipoLista = @CodTipoLista,
			Destinatario = @CodCliente,
			DestinatarioDescrizione = @RagSociale,
			CodSoggetto = @CodSoggetto,
            DataModStato = @DataMod
	WHERE	CodLista = @Original_CodLista 
	        AND CodStatoLista = 3

-- memorizzo errore
-- IF ( SELECT CodStatoLista FROM ElencoListePrelievo WHERE CodLista = @Original_CodLista ) <> 3
--   INSERT TK_AS400.dbo.TabErrori 
--   SELECT GETDATE(), 'STORED stp_LP_updateDestTipo Modifica Tipo Lista non Corretto ' + @Original_CodLista + ' New Tipo ' + @CodTipoLista + ' New Cliente ' + @CodCliente

--    COMMIT TRANSACTION;
--END TRY
--BEGIN CATCH

--    SELECT
--        ERROR_NUMBER() AS ErrorNumber,
--        ERROR_MESSAGE() AS ErrorMessage;

--    -- Test XACT_STATE for 1 or -1.
--    -- XACT_STATE = 0 means there is no transaction and
--    -- a commit or rollback operation would generate an error.

--    -- Test whether the transaction is uncommittable.
--    IF (XACT_STATE()) = -1
--    BEGIN
--        PRINT
--            N'The transaction is in an uncommittable state. ' +
--            'Rolling back transaction.'
--        ROLLBACK TRANSACTION;
--    END;

--    -- Test whether the transaction is active and valid.
--    IF (XACT_STATE()) = 1
--    BEGIN
--        PRINT
--            N'The transaction is committable. ' +
--            'Committing transaction.'
--        COMMIT TRANSACTION;   
--    END;
    
--    DECLARE @ErrorMessage NVARCHAR(4000);
--    DECLARE @ErrorSeverity INT;
--    DECLARE @ErrorState INT;

--    SELECT 
--        @ErrorMessage = ERROR_MESSAGE(),
--        @ErrorSeverity = ERROR_SEVERITY(),
--        @ErrorState = ERROR_STATE();

--    -- Use RAISERROR inside the CATCH block to return error
--    -- information about the original error that caused
--    -- execution to jump to the CATCH block.
--    RAISERROR (@ErrorMessage, -- Message text.
--               @ErrorSeverity, -- Severity.
--               @ErrorState -- State.
--               ) ; -- WITH LOG;
--END CATCH;


-- 

/* 18-06-2013 messo blocco anche qui dopo aver trovati liste di prelievo gią scaricate con tipo e destinatario
              modificati
	UPDATE	ElencoListePrelievo
	SET		CodTipoLista = @CodTipoLista,
			Destinatario = @CodCliente,
			DestinatarioDescrizione = @RagSociale
	WHERE	CodLista = @Original_CodLista
*/	


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: 2013.06.17 x Cella Terra Bloccata non visibile
*      procedura vecchia in fondo
****************************************/
alter PROCEDURE stp_magazzinoOverview
(
	@CodCS VARCHAR(2),
	@particolare NVARCHAR(15) = ''
)
AS

-- controllo se particolare vuoto o '*' mostro tutto...
IF(@particolare = '' OR @particolare='*' OR @particolare IS NULL)
	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 ( CASE WHEN Celle.Attiva = 1 THEN Celle.IdxCella 
                                                           ELSE NULL END ) ) AS                                 CelleAttive,
               COUNT( PosizioneUdcCorrente.UDC) AS                                                              CelleOccupate,
               -- COUNT( CASE WHEN Celle.Attiva = 1 THEN PosizioneUdcCorrente.UDC ELSE NULL END )  AS           CelleAttiveOccupate,
               -- CelleLibere = CelleAttive - CelleOccupate ( solo se attive )
               ( TipoCella.Capienza * COUNT( DISTINCT ( CASE WHEN Celle.Attiva = 1 
                                                             THEN Celle.IdxCella ELSE NULL END )) )
                      - ( COUNT( CASE WHEN Celle.Attiva = 1 THEN PosizioneUdcCorrente.UDC ELSE NULL END ) ) AS  CelleLibere,

               ISNULL( MIN( PosizioneUdcCorrente.DataRif ) , GETDATE( ))AS                                      Oldest , 
               ISNULL( MAX( PosizioneUdcCorrente.DataRif ) , GETDATE( ))AS                                      Newest
        FROM AnagMag
        INNER JOIN Blocchi
                ON AnagMag.CodMag = Blocchi.CodMag AND AnagMag.CodCS = Blocchi.CodCS 
        INNER JOIN TipoCella
                ON AnagMag.CodMag = TipoCella.CodMag AND AnagMag.CodCS = TipoCella.CodCS 
        INNER JOIN Celle
                ON TipoCella.IdxTipoCella = Celle.IdxTipoCella AND Blocchi.IdxBlocco = Celle.IdxBlocco
        LEFT OUTER JOIN PosizioneUdcCorrente
                ON Celle.IdxCella = PosizioneUdcCorrente.IdxCella

        WHERE AnagMag.CodCS = @CodCS AND ISNULL( AnagMag.Nascosto , 0 ) = 0  -- escludo mag. nascosti
        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,
            -- CelleLibere e CelleAttive = 0 altrimenti grafico videata non corretto con selezione particolare
            CONVERT(INT, 0 ) AS                                                                              CelleAttive,
            COUNT( CASE WHEN ec.particolare = @particolare  THEN PosizioneUdcCorrente.UDC ELSE NULL END ) AS CelleOccupate,
            CONVERT(INT, 0 ) AS                                                                              CelleLibere,

            -- Calcoli normali x CelleLibere e CelleAttive ( verificare grafico videata - calcoli corretti )
            --TipoCella.Capienza * COUNT( DISTINCT ( CASE WHEN Celle.Attiva = 1 THEN Celle.IdxCella 
            --                                            ELSE NULL END ) ) AS                                     CelleAttive,
            --COUNT( CASE WHEN ec.particolare = @particolare  THEN PosizioneUdcCorrente.UDC ELSE NULL END ) AS    CelleOccupate,
            --( TipoCella.Capienza * COUNT( DISTINCT ( CASE WHEN Celle.Attiva = 1 THEN Celle.IdxCella ELSE NULL END )) )
            --      - ( COUNT( CASE WHEN Celle.Attiva = 1 THEN PosizioneUdcCorrente.UDC ELSE NULL END ) ) AS      CelleLibere,

            ISNULL( MIN( CASE WHEN ec.particolare = @particolare  THEN PosizioneUdcCorrente.DataRif ELSE NULL END ) , GETDATE( ))AS Oldest , 
            ISNULL( MAX( CASE WHEN ec.particolare = @particolare  THEN PosizioneUdcCorrente.DataRif ELSE NULL END ) , GETDATE( ))AS Newest
        FROM AnagMag
        INNER JOIN Blocchi
                ON AnagMag.CodMag = Blocchi.CodMag AND AnagMag.CodCS = Blocchi.CodCS 
        INNER JOIN TipoCella
                ON AnagMag.CodMag = TipoCella.CodMag AND AnagMag.CodCS = TipoCella.CodCS 
        INNER JOIN Celle
                ON TipoCella.IdxTipoCella = Celle.IdxTipoCella AND Blocchi.IdxBlocco = Celle.IdxBlocco
        LEFT OUTER JOIN PosizioneUdcCorrente
                ON Celle.IdxCella = PosizioneUdcCorrente.IdxCella
        LEFT OUTER JOIN ElencoCartellini ec ON PosizioneUdcCorrente.UDC = ec.UDC
        
        WHERE AnagMag.CodCS = @CodCS AND ISNULL( AnagMag.Nascosto , 0 ) = 0  -- escludo mag. nascosti
        GROUP BY AnagMag.CodCS , 
                 AnagMag.CodMag , 
                 AnagMag.DescMag , 
                 Blocchi.IdxBlocco , 
                 Blocchi.CodBlocco , 
                 Blocchi.DescBlocco , 
                 Blocchi.NumX , 
                 Blocchi.NumY , 
                 Blocchi.NumZ , 
                 TipoCella.Capienza
        -- filtro solo i magazzini con il particolare richiesto
        HAVING COUNT( CASE WHEN ec.particolare = @particolare  THEN PosizioneUdcCorrente.UDC ELSE NULL END ) > 0
        ORDER BY AnagMag.CodMag , Blocchi.CodBlocco;

    END

/*  OLD 17/06/2013 Problema della cella terra bloccata non pił visibile e delle celle bloccate piene
		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

set ANSI_NULLS on;
go

/***************************************
* STORED stp_paretoPartByMagBlocco
*
* restituisce elenco particolari in logica pareto (quantitą) per un dato blocco di magazzino, aggregati (no stato)
*
* Steamware, S.E.L.
* mod: 2010.06.03
*
****************************************/
alter PROCEDURE stp_paretoPartByMagBlocco
(
	@CodCS VARCHAR(2),
	@CodMag VARCHAR(50),
	@IdxBlocco INT
)
AS

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

	
RETURN
go

/***************************************
* STORED stp_paretoPartByMagBloccoCodMagLog
*
* restituisce elenco particolari in logica pareto (quantitą) per un dato blocco di magazzino ed un dato magazzino logico, aggregati (no stato)
*
* Steamware, S.E.L.
* mod: 2010.09.15
*
****************************************/
alter PROCEDURE stp_paretoPartByMagBloccoCodMagLog
(
	@CodCS VARCHAR(2),
	@CodMag VARCHAR(50),
	@IdxBlocco INT,
	@CodMagLog INT
)
AS

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

	
RETURN
go

commit;
go


set xact_abort on;
go

begin transaction;
go

set ANSI_NULLS on;
go

/***************************************
* STORED stp_RLP_eliminaUdc
*
* elimina eventuali righe dato cod UDC (x scarico diretto)
*
* Steamware, S.E.L.
* mod: 2013.05.07
*
****************************************/
create PROCEDURE stp_RLP_eliminaUdc
(
	@UDC NVARCHAR(50)
)
AS

DELETE FROM RigheListePrelievo
WHERE	UDC = @UDC

RETURN
go

commit;
go






-- registro versione...
INSERT INTO [dbo].[LogUpdateDb] ([Versione],[Data]) VALUES(562, GETDATE())
GO
SELECT TOP 5 * FROM LogUpdateDb ORDER BY Versione DESC
GO
