set xact_abort on;
go

begin transaction;
go

alter table ElencoCartellini add
  Note nvarchar(500);
go

set ANSI_NULLS on;
go

/***************************************
* STORED stp_UDC_insNewFull
*
* crea un nuovo record nella TabStatoOdpUdc FULL (con pesi, qta...) e restituisce il codice UDC appena creato
*
* Steamware, S.E.L.
* mod: 2010.04.28
*
****************************************/
alter PROCEDURE stp_UDC_insNewFull
(
	@CodCS VARCHAR(2),
	@Flusso VARCHAR(2),
	@Anno VARCHAR(2),
	@CodCliente VARCHAR(6),
	@Particolare VARCHAR(15),
	@CodImpianto AS VARCHAR(50),
	@CodStampo VARCHAR(8),
	@Esponente VARCHAR(6),
	@Figura VARCHAR(4),
	@DataFus DATETIME,
	@TurnoFus INT,
	@CodImballo VARCHAR(15),
	@CodSoggetto VARCHAR(17),	
	@Tara FLOAT,
	@IdxPosizione INT,
	@CodTipoDichiaraz CHAR(1),
	@CodEvento VARCHAR(10),
	@Qta DECIMAL(10,2),
	@PesoTot FLOAT,
	@PesoCad FLOAT,
	@CodStato VARCHAR(50),
	@UDC_parent VARCHAR(20),
	@DoDeleteUdcParent BIT,
	@Note NVARCHAR(500)
)
AS

-- DECLARE iniziali
DECLARE @UDC AS VARCHAR(20)
DECLARE @RagSociale AS VARCHAR(35)
DECLARE @DescParticolare AS VARCHAR(30)
DECLARE @DescImpianto AS VARCHAR(50)
DECLARE @DisegnoGrezzo AS VARCHAR(30)
DECLARE @NumCont AS INT
DECLARE @numFlu AS INT
DECLARE @numUdc AS INT
DECLARE @nextUdc AS INT
DECLARE @IdxCella AS INT

------------------------------------------------------------------------------------------------------
-- Caricamento Dati da anagrafica
------------------------------------------------------------------------------------------------------
-- cerco la ragione sociale...
SET @RagSociale = (
	SELECT        ISNULL(RagSociale, 'ND') AS RagSociale
	FROM            RilPro.AnagClienti
	WHERE        (CodCliente = @CodCliente)
)

-- Cerco descrizione del particolare...
SET @DescParticolare = (
	SELECT        ISNULL(DescParticolare, 'ND') AS DescParticolare
	FROM            RilPro.AnagParticolari
	WHERE        (Particolare = @Particolare)
)

-- cerco codice disegno grezzo
SET @DisegnoGrezzo = (
	SELECT        ISNULL(DisegnoGrezzo, 'ND') AS DescParticolare
	FROM            RilPro.AnagParticolari
	WHERE        (Particolare = @Particolare)
)

-- cerco descrizione Impianto
SET @DescImpianto = (
	SELECT        ISNULL(DescImpianto, 'ND') AS DescImpianto
	FROM            AnagImpianti
	WHERE        (CodImpianto = @CodImpianto)
)



-- Calcolo contatore intero successivo x il contenitore...
SET @NumCont = (
	SELECT      ISNULL(MAX(NumCont), 0) + 1 AS NumCont
	FROM        ElencoCartellini
	WHERE       (Particolare = @Particolare)
	AND			(DataFus = @DataFus)
	AND			(TurnoFus = @TurnoFus)
	AND			(CodImpianto = @CodImpianto)
	AND			(CodStampo = @CodStampo)
	AND			(Figura = @Figura)	
)


------------------------------------------------------------------------------------------------------

------------------------------------------------------------------------------------------------------
-- Flusso
------------------------------------------------------------------------------------------------------
-- controllo se esiste il flusso (bilancia)...
SET @numFlu = (
	SELECT count(*)
	FROM AnagBilance
	WHERE	CodBilancia	= @Flusso
)
-- ...sennò lo creo...
IF(@numFlu = 0)
	BEGIN
		-- se c'è inserisco in tab
		INSERT INTO AnagBilance(CodBilancia, DescrImpianto, CodCS)
		VALUES (@Flusso, @Flusso, @CodCS)
	END
------------------------------------------------------------------------------------------------------

		
------------------------------------------------------------------------------------------------------
-- UDC
------------------------------------------------------------------------------------------------------
-- controllo se ci sia già un UDC per company / flusso anno
BEGIN TRAN
	-- cerco nella tab contatori UDC l'ultimo valido
	SET @numUdc = (
		SELECT count(*)
		FROM ContatoriUdc
		WHERE	CodCS		=	@CodCS
		AND		Flusso		=	@Flusso
		AND		Anno		=	@Anno
	)
	-- controllo se record c'è...
	IF(@numUdc > 0)
		BEGIN
			-- se c'è incremento di 1 in tab
			UPDATE ContatoriUdc
			SET LastIdx = LastIdx  + 1
			WHERE	CodCS		=	@CodCS
			AND		Flusso		=	@Flusso
			AND		Anno		=	@Anno
		END
	ELSE
		BEGIN
			-- lo creo!
			INSERT INTO ContatoriUdc(CodCS, Flusso, Anno, LastIdx)
			VALUES (@CodCS, @Flusso, @Anno, 1)
		END
	-- aggiorno numero UDC
	SET @numUdc = (
		SELECT LastIdx
		FROM ContatoriUdc
		WHERE	CodCS		=	@CodCS
		AND		Flusso		=	@Flusso
		AND		Anno		=	@Anno
	)
COMMIT TRAN
------------------------------------------------------------------------------------------------------

------------------------------------------------------------------------------------------------------
-- Ciclo principale x inserimento nuovo record
------------------------------------------------------------------------------------------------------
BEGIN TRAN
	-- ottengo il nuovo codice UDC completo
	--SET @UDC = 'U' + @CodCS + @Flusso + @Anno + dbo.f_padLeft(CAST(@numUdc AS VARCHAR(6)), 6, '0')
	SET @UDC = dbo.componiUdc(@CodCS, @Flusso, @Anno, @numUdc)

		
	-- inserisco un nuovo record
	INSERT INTO ElencoCartellini(UDC, CodCS, CodCliente, RagSociale, Particolare, DescParticolare, DisegnoGrezzo, Esponente, CodImpianto, DescImpianto, CodStampo, Figura, DataFus, TurnoFus, CodImballo, CodSoggetto, NumCont, Tara, Qta, CodStato, IdxPosizione, PesoTot, PesoCad, CreateDate, ModDate, Note)
	VALUES	(@UDC, @CodCS, @CodCliente, @RagSociale, @Particolare, @DescParticolare, @DisegnoGrezzo, @Esponente, @CodImpianto, @DescImpianto, @CodStampo, @Figura, @DataFus, @TurnoFus, @CodImballo, @CodSoggetto, @NumCont, @Tara, @Qta, @CodStato, @IdxPosizione, @PesoTot, @PesoCad, GETDATE(), GETDATE(), @Note)

	-- inserisco relazione parent-child tra UDC vecchio (tara) e nuovo (pesa) SSE UDC_parent valido
	IF((NOT @UDC_parent IS NULL) AND (NOT @UDC_parent = ''))
	BEGIN
		INSERT INTO RelazUDC(UDC_parent, UDC_child)
		VALUES (@UDC_parent, @UDC)
	END
COMMIT TRAN

------------------------------------------------------------------------------------------------------

------------------------------------------------------------------------------------------------------
-- Ciclo secondario x eventuale cancellazione UDC tara parent e inserimento in posizione
------------------------------------------------------------------------------------------------------
	-- se richiesto elimino l'UDC parent (tara)
	IF(@DoDeleteUdcParent = 1)
		BEGIN
			DELETE FROM ElencoCartellini WHERE UDC = @UDC_parent
		END
	
	-- calcolo la prima cella della posizione indicata..
	SET @IdxCella = (
					SELECT TOP 1 c.IdxCella 
						FROM Celle c INNER JOIN Blocchi b ON c.IdxBlocco=b.IdxBlocco 
						WHERE b.CodMag = CAST(@IdxPosizione AS NVARCHAR(50))
					)
	-- inserisco il cartellino nella prima cella della posizione indicata..
	INSERT INTO PosizioneUdcCorrente
	VALUES (@UDC, @IdxCella, @CodCS, GETDATE())
------------------------------------------------------------------------------------------------------

/*
------------------------------------------------------------------------------------------------------
-- Salvataggio dati evento in tab StoricoEventi
------------------------------------------------------------------------------------------------------
INSERT INTO StoricoEventi(DataEv, CodEvento, CodOperatore, CodTipoDichiaraz, CodCS, UDC, Qta, PesoTot, PesoCad, Particolare, CodStato, CodStampo, Figura, FiguraIncisa)
VALUES	(GETDATE(), @CodEvento, @CodOperatore, @CodTipoDichiaraz, @CodCS, @UDC, @Qta, @PesoTot, @PesoCad, @Particolare, @CodStato, @CodStampo, @Figura, @FiguraIncisa)
------------------------------------------------------------------------------------------------------
*/

------------------------------------------------------------------------------------------------------
-- restituisco la tab dati con l'udc appena inserito
------------------------------------------------------------------------------------------------------
SELECT * 
FROM ElencoCartellini
WHERE  UDC = @UDC
------------------------------------------------------------------------------------------------------

RETURN
go

/***************************************
* STORED stp_UDC_updateIdxPosizione
*
* aggiorna un cartellino x la sua posizione logica
*
* Steamware, S.E.L.
* mod: 2010.06.12
*
****************************************/
alter PROCEDURE stp_UDC_updateIdxPosizione
(
	@UDC VARCHAR(20),
	@IdxPosizione INT
)
AS


------------------------------------------------------------------------------------------------------
-- Ciclo principale x edit record
------------------------------------------------------------------------------------------------------
BEGIN TRAN	
	
	-- modifico il record 
	UPDATE	ElencoCartellini
	SET		IdxPosizione = @IdxPosizione, ModDate = GETDATE()
	WHERE	UDC = @UDC
	
COMMIT TRAN
------------------------------------------------------------------------------------------------------

------------------------------------------------------------------------------------------------------
-- restituisco la tab dati con l'udc appena inserito
------------------------------------------------------------------------------------------------------
SELECT * 
FROM ElencoCartellini
WHERE  UDC = @UDC
------------------------------------------------------------------------------------------------------

RETURN
go

/***************************************
* STORED stp_UDC_update
*
* aggiorna un cartellino dato il suo codice UDC e tutti i parametri da aggiornare
*
* Steamware, S.E.L.
* mod: 2010.04.30
*
****************************************/
alter PROCEDURE stp_UDC_update
(
	@UDC_edit VARCHAR(20),
	@CodCS VARCHAR(2),
	@Flusso VARCHAR(2),
	@Anno VARCHAR(2),
	@CodCliente VARCHAR(6),
	@Particolare VARCHAR(15),
	@CodImpianto AS VARCHAR(50),
	@CodStampo VARCHAR(8),
	@Esponente VARCHAR(6),
	@Figura VARCHAR(4),
	@DataFus DATETIME,
	@TurnoFus INT,
	@CodImballo VARCHAR(15),
	@CodSoggetto VARCHAR(17),	
	@Tara FLOAT,
	@IdxPosizione INT,
	@CodTipoDichiaraz CHAR(1),
	@CodEvento VARCHAR(10),
	@Qta DECIMAL(10,2),
	@PesoTot FLOAT,
	@PesoCad FLOAT,
	@CodStato VARCHAR(50),
	@UDC_parent VARCHAR(20),
	@Note NVARCHAR(500)
)
AS

-- DECLARE iniziali
DECLARE @RagSociale AS VARCHAR(35)
DECLARE @DescParticolare AS VARCHAR(30)
DECLARE @DescImpianto AS VARCHAR(50)
DECLARE @DisegnoGrezzo AS VARCHAR(30)
DECLARE @NumCont AS INT
DECLARE @numFlu AS INT
DECLARE @numUdc AS INT
DECLARE @nextUdc AS INT

------------------------------------------------------------------------------------------------------
-- Caricamento Dati da anagrafica
------------------------------------------------------------------------------------------------------
-- cerco la ragione sociale...
SET @RagSociale = (
	SELECT        ISNULL(RagSociale, 'ND') AS RagSociale
	FROM            RilPro.AnagClienti
	WHERE        (CodCliente = @CodCliente)
)

-- Cerco descrizione del particolare...
SET @DescParticolare = (
	SELECT        ISNULL(DescParticolare, 'ND') AS DescParticolare
	FROM            RilPro.AnagParticolari
	WHERE        (Particolare = @Particolare)
)

-- cerco codice disegno grezzo
SET @DisegnoGrezzo = (
	SELECT        ISNULL(DisegnoGrezzo, 'ND') AS DescParticolare
	FROM            RilPro.AnagParticolari
	WHERE        (Particolare = @Particolare)
)

-- cerco descrizione Impianto
SET @DescImpianto = (
	SELECT        ISNULL(DescImpianto, 'ND') AS DescImpianto
	FROM            AnagImpianti
	WHERE        (CodImpianto = @CodImpianto)
)



-- Calcolo contatore intero successivo x il contenitore...
SET @NumCont = (
	SELECT      NumCont
	FROM        ElencoCartellini
	WHERE       (UDC = @UDC_edit)	
)


------------------------------------------------------------------------------------------------------

------------------------------------------------------------------------------------------------------
-- Flusso
------------------------------------------------------------------------------------------------------
-- controllo se esiste il flusso (bilancia)...
SET @numFlu = (
	SELECT count(*)
	FROM AnagBilance
	WHERE	CodBilancia	= @Flusso
)
-- ...sennò lo creo...
IF(@numFlu = 0)
	BEGIN
		-- se c'è inserisco in tab
		INSERT INTO AnagBilance(CodBilancia, DescrImpianto, CodCS)
		VALUES (@Flusso, @Flusso, @CodCS)
	END
------------------------------------------------------------------------------------------------------

------------------------------------------------------------------------------------------------------
-- Ciclo principale x edit record
------------------------------------------------------------------------------------------------------
BEGIN TRAN
	
	-- elimino vecchio record parent/child
	DELETE FROM RelazUDC
	WHERE (UDC_child = @UDC_edit)
	
	-- modifico il record 
	UPDATE	ElencoCartellini
	SET		CodCS = @CodCS, CodCliente = @CodCliente, RagSociale = @RagSociale, Particolare = @Particolare, DescParticolare = @DescParticolare,
			DisegnoGrezzo = @DisegnoGrezzo, Esponente = @Esponente, CodImpianto = @CodImpianto, DescImpianto = @DescImpianto, CodStampo = @CodStampo,
			Figura = @Figura, DataFus = @DataFus, TurnoFus = @TurnoFus, CodImballo = @CodImballo, CodSoggetto = @CodSoggetto, NumCont = @NumCont,
			Tara = @Tara, Qta = @Qta, CodStato = @CodStato, IdxPosizione = @IdxPosizione, PesoTot = @PesoTot, PesoCad = @PesoCad, ModDate = GETDATE(), Note = @Note 
	WHERE	UDC = @UDC_edit

	-- inserisco relazione parent-child tra UDC vecchio (tara) e nuovo (pesa)
	INSERT INTO RelazUDC(UDC_parent, UDC_child)
	VALUES (@UDC_parent, @UDC_edit)
COMMIT TRAN
------------------------------------------------------------------------------------------------------

------------------------------------------------------------------------------------------------------
-- restituisco la tab dati con l'udc appena inserito
------------------------------------------------------------------------------------------------------
SELECT * 
FROM ElencoCartellini
WHERE  UDC = @UDC_edit
------------------------------------------------------------------------------------------------------

RETURN
go

/***************************************
* STORED stp_UDC_updateQty
*
* aggiorna un cartellino x la sua quantità
*
* Steamware, S.E.L.
* mod: 2010.06.12
*
****************************************/
alter PROCEDURE stp_UDC_updateQty
(
	@UDC VARCHAR(20),
	@CodSoggetto VARCHAR(17),
	@CodTipoDichiaraz CHAR(1),
	@CodEvento VARCHAR(10),
	@Qta DECIMAL(10,2)
)
AS


------------------------------------------------------------------------------------------------------
-- Ciclo principale x edit record
------------------------------------------------------------------------------------------------------
BEGIN TRAN

	-- modifico il record 
	UPDATE	ElencoCartellini
	SET		Qta = @Qta, ModDate = GETDATE()
	WHERE	UDC = @UDC
	
COMMIT TRAN
------------------------------------------------------------------------------------------------------

------------------------------------------------------------------------------------------------------
-- restituisco la tab dati con l'udc appena inserito
------------------------------------------------------------------------------------------------------
SELECT * 
FROM ElencoCartellini
WHERE  UDC = @UDC
------------------------------------------------------------------------------------------------------

RETURN
go

/***************************************
* STORED stp_UDC_insNewFull_fixUDC
*
* crea un nuovo record nella TabStatoOdpUdc FULL (con pesi, qta...) avendo in entrata il codice UDC da utilizzare
*
* Steamware, S.E.L.
* mod: 2011.12.07
*
****************************************/
create PROCEDURE stp_UDC_insNewFull_fixUDC
(
	@UDC AS NVARCHAR(50),
	@CodCS VARCHAR(2),
	@Flusso VARCHAR(2),
	@Anno VARCHAR(2),
	@CodCliente VARCHAR(6),
	@Particolare VARCHAR(15),
	@CodImpianto AS VARCHAR(50),
	@CodStampo VARCHAR(8),
	@Esponente VARCHAR(6),
	@Figura VARCHAR(4),
	@DataFus DATETIME,
	@TurnoFus INT,
	@CodImballo VARCHAR(15),
	@CodSoggetto VARCHAR(17),	
	@Tara FLOAT,
	@IdxPosizione INT,
	@CodTipoDichiaraz CHAR(1),
	@CodEvento VARCHAR(10),
	@Qta DECIMAL(10,2),
	@PesoTot FLOAT,
	@PesoCad FLOAT,
	@CodStato VARCHAR(50),
	@UDC_parent VARCHAR(20),
	@DoDeleteUdcParent BIT,
	@Note NVARCHAR(500)
)
AS

-- DECLARE iniziali
DECLARE @RagSociale AS VARCHAR(35)
DECLARE @DescParticolare AS VARCHAR(30)
DECLARE @DescImpianto AS VARCHAR(50)
DECLARE @DisegnoGrezzo AS VARCHAR(30)
DECLARE @NumCont AS INT
DECLARE @numFlu AS INT
DECLARE @numUdc AS INT
DECLARE @nextUdc AS INT
DECLARE @IdxCella AS INT

------------------------------------------------------------------------------------------------------
-- Caricamento Dati da anagrafica
------------------------------------------------------------------------------------------------------
-- cerco la ragione sociale...
SET @RagSociale = (
	SELECT        ISNULL(RagSociale, 'ND') AS RagSociale
	FROM            RilPro.AnagClienti
	WHERE        (CodCliente = @CodCliente)
)

-- Cerco descrizione del particolare...
SET @DescParticolare = (
	SELECT        ISNULL(DescParticolare, 'ND') AS DescParticolare
	FROM            RilPro.AnagParticolari
	WHERE        (Particolare = @Particolare)
)

-- cerco codice disegno grezzo
SET @DisegnoGrezzo = (
	SELECT        ISNULL(DisegnoGrezzo, 'ND') AS DescParticolare
	FROM            RilPro.AnagParticolari
	WHERE        (Particolare = @Particolare)
)

-- cerco descrizione Impianto
SET @DescImpianto = (
	SELECT        ISNULL(DescImpianto, 'ND') AS DescImpianto
	FROM            AnagImpianti
	WHERE        (CodImpianto = @CodImpianto)
)



-- Calcolo contatore intero successivo x il contenitore...
SET @NumCont = (
	SELECT      ISNULL(MAX(NumCont), 0) + 1 AS NumCont
	FROM        ElencoCartellini
	WHERE       (Particolare = @Particolare)
	AND			(DataFus = @DataFus)
	AND			(TurnoFus = @TurnoFus)
	AND			(CodImpianto = @CodImpianto)
	AND			(CodStampo = @CodStampo)
	AND			(Figura = @Figura)	
)


------------------------------------------------------------------------------------------------------


------------------------------------------------------------------------------------------------------
-- Ciclo principale x inserimento nuovo record
------------------------------------------------------------------------------------------------------
BEGIN TRAN
		
	-- inserisco un nuovo record
	INSERT INTO ElencoCartellini(UDC, CodCS, CodCliente, RagSociale, Particolare, DescParticolare, DisegnoGrezzo, Esponente, CodImpianto, DescImpianto, CodStampo, Figura, DataFus, TurnoFus, CodImballo, CodSoggetto, NumCont, Tara, Qta, CodStato, IdxPosizione, PesoTot, PesoCad, CreateDate, ModDate, Note)
	VALUES	(@UDC, @CodCS, @CodCliente, @RagSociale, @Particolare, @DescParticolare, @DisegnoGrezzo, @Esponente, @CodImpianto, @DescImpianto, @CodStampo, @Figura, @DataFus, @TurnoFus, @CodImballo, @CodSoggetto, @NumCont, @Tara, @Qta, @CodStato, @IdxPosizione, @PesoTot, @PesoCad, GETDATE(), GETDATE(), @Note)

	-- inserisco relazione parent-child tra UDC vecchio (tara) e nuovo (pesa) SSE UDC_parent valido
	IF((NOT @UDC_parent IS NULL) AND (NOT @UDC_parent = ''))
	BEGIN
		INSERT INTO RelazUDC(UDC_parent, UDC_child)
		VALUES (@UDC_parent, @UDC)
	END
COMMIT TRAN

------------------------------------------------------------------------------------------------------

------------------------------------------------------------------------------------------------------
-- Ciclo secondario x eventuale cancellazione UDC tara parent e inserimento in posizione
------------------------------------------------------------------------------------------------------
	-- se richiesto elimino l'UDC parent (tara)
	IF(@DoDeleteUdcParent = 1)
		BEGIN
			DELETE FROM ElencoCartellini WHERE UDC = @UDC_parent
		END
	
	-- calcolo la prima cella della posizione indicata..
	SET @IdxCella = (
					SELECT TOP 1 c.IdxCella 
						FROM Celle c INNER JOIN Blocchi b ON c.IdxBlocco=b.IdxBlocco 
						WHERE b.CodMag = CAST(@IdxPosizione AS NVARCHAR(50))
					)
	-- inserisco il cartellino nella prima cella della posizione indicata..
	INSERT INTO PosizioneUdcCorrente
	VALUES (@UDC, @IdxCella, @CodCS, GETDATE())
------------------------------------------------------------------------------------------------------

------------------------------------------------------------------------------------------------------
-- restituisco la tab dati con l'udc appena inserito
------------------------------------------------------------------------------------------------------
SELECT * 
FROM ElencoCartellini
WHERE  UDC = @UDC
------------------------------------------------------------------------------------------------------

RETURN
go

commit;
go


set xact_abort on;
go

begin transaction;
go

set ANSI_NULLS on;
go

alter PROCEDURE stp_getUDC_UnusedOlder
(	
	@CodLista VARCHAR(12)
)
AS

	-- variabili locali che mi servono
	DECLARE @Figura AS VARCHAR(4)
	DECLARE @Esponente AS VARCHAR(6)
	DECLARE @CodImballo AS VARCHAR(15)
	DECLARE @Particolare AS VARCHAR (50)
	DECLARE @CodTipoLista AS VARCHAR (10)
	--DECLARE @IdxPosizione AS INT
	SET @Figura			= (SELECT Figura FROM ElencoListePrelievo WHERE CodLista = @CodLista)
	SET @Esponente		= (SELECT Esponente FROM ElencoListePrelievo WHERE CodLista = @CodLista)
	SET @CodImballo		= (SELECT CodImballo FROM ElencoListePrelievo WHERE CodLista = @CodLista)
	SET @Particolare	= (SELECT Particolare FROM ElencoListePrelievo WHERE CodLista = @CodLista) 
	SET @CodTipoLista	= (SELECT CodTipoLista FROM ElencoListePrelievo WHERE CodLista = @CodLista) 
	/*
	SET @IdxPosizione	= (SELECT	tt.IdxPosizione
	                 	   FROM     TipoListaPrelievo tlp INNER JOIN TabTranPosizEventi tt ON tlp.CodEvento = tt.CodEvento
	                 	   WHERE	(tlp.CodTipoLista = @CodTipoLista))
	*/

	-- effettuo la selezione
	SELECT		*
	FROM        ElencoCartellini
	WHERE       (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 
				(Figura		= CASE WHEN @Figura		= '*' THEN Figura		ELSE @Figura	END) AND
				(Esponente	= CASE WHEN @Esponente  = '*' THEN Esponente	ELSE @Esponente END) AND
				(CodImballo	= CASE WHEN @CodImballo	= '*' THEN CodImballo	ELSE @CodImballo END)				
				AND UDC NOT IN (
					SELECT DISTINCT UDC 
					FROM RigheListePrelievo INNER JOIN ElencoListePrelievo
					ON	RigheListePrelievo.CodLista = ElencoListePrelievo.CodLista
					WHERE (ElencoListePrelievo.CodLista = @CodLista) 
					OR (ElencoListePrelievo.CodLista <> @CodLista AND CodStatoLista > 1 AND Prelevato = 1)
					)
	ORDER BY	ElencoCartellini.DataFus

RETURN
go

commit;
go

set xact_abort on;
go

begin transaction;
go

set ANSI_NULLS on;
go

/***************************************
* STORED stp_scaricaUdc
*
* elimina dalle posizioni correnti un UDC, salvandone la posizione precedente nella tab storica (per scaricamento / spedizione)
*
* Steamware, S.E.L.
* mod: 2010.09.28
*
****************************************/
alter PROCEDURE stp_scaricaUdc
(
	@UDC VARCHAR(50),
	@IdxPosizione INT
)
AS

BEGIN TRAN
	-- libero la posizione attuale dell'UDC (se c'è...)
	DELETE
	FROM	PosizioneUdcCorrente
	WHERE	UDC = @UDC
	
	-- aggiorno l'UDC come posizione finale...
	UPDATE	ElencoCartellini
	SET		IdxPosizione = @IdxPosizione, ModDate = GETDATE()
	WHERE	UDC = @UDC	
	
COMMIT TRAN

RETURN
go

commit;
go

set xact_abort on;
go

begin transaction;
go

set ANSI_NULLS on;
go

/***************************************
* STORED stp_UDC_associaParent
*
* crea un nuovo record nella di associazione UDC/parent
*
* Steamware, S.E.L.
* mod: 2011.12.06
*
****************************************/
create PROCEDURE stp_UDC_associaParent
(
	@UDC NVARCHAR(50),
	@UDC_parent NVARCHAR(50)
)
AS

	-- elimino partent vuoti...
	DELETE 
	FROM RelazUDC
	WHERE ISNULL(UDC_parent,'') = ''
	-- inserisco relazione parent-child tra UDC vecchio (tara) e nuovo (pesa)
	INSERT INTO RelazUDC(UDC_parent, UDC_child)
	VALUES (@UDC_parent, @UDC)

RETURN
go

commit;
go


set xact_abort on
go

begin transaction
go

INSERT INTO dbo.Permessi
  VALUES ('POST', 'menu.aspx', 4, 0, 'Postazioni', 'PostazioniExpl')
INSERT INTO dbo.Permessi
  VALUES ('POST_assoc_F10_F18', 'sanpos_associaz_F10_F18.aspx', 4, 3, 'Associaz_F10_F18', 'Associaz_F10_F18Expl')
INSERT INTO dbo.Permessi
  VALUES ('POST_consumoF10', 'sanpos_consumoF10.aspx', 4, 4, 'ConsumoF10', 'ConsumoF10Expl')
INSERT INTO dbo.Permessi
  VALUES ('POST_liquidi', 'sanpos_controlloLiquidi.aspx', 4, 1, 'PostLiquidi', 'PostLiquidiExpl')
INSERT INTO dbo.Permessi
  VALUES ('POST_trav_creaF18', 'sanpos_creazioneF18.aspx', 4, 2, 'CreazF18', 'CreazF18Expl')
go

commit transaction
go

set xact_abort on
go

begin transaction
go

INSERT INTO dbo.Permessi2Funzione
  VALUES ('POST', N'GMW_powuser', 'S')
INSERT INTO dbo.Permessi2Funzione
  VALUES ('POST', N'GMW_user', 'S')
INSERT INTO dbo.Permessi2Funzione
  VALUES ('POST_assoc_F10_F18', N'GMW_powuser', 'S')
INSERT INTO dbo.Permessi2Funzione
  VALUES ('POST_assoc_F10_F18', N'GMW_user', 'S')
INSERT INTO dbo.Permessi2Funzione
  VALUES ('POST_consumoF10', N'GMW_powuser', 'S')
INSERT INTO dbo.Permessi2Funzione
  VALUES ('POST_consumoF10', N'GMW_user', 'S')
INSERT INTO dbo.Permessi2Funzione
  VALUES ('POST_liquidi', N'GMW_powuser', 'S')
INSERT INTO dbo.Permessi2Funzione
  VALUES ('POST_liquidi', N'GMW_user', 'S')
INSERT INTO dbo.Permessi2Funzione
  VALUES ('POST_trav_creaF18', N'GMW_powuser', 'S')
INSERT INTO dbo.Permessi2Funzione
  VALUES ('POST_trav_creaF18', N'GMW_user', 'S')
go

commit transaction
go


set xact_abort on
go

begin transaction
go

INSERT INTO dbo.AnagMag
  VALUES (N'5', N'SP', N'Mag WIP SP', 0)
go

commit transaction
go


set xact_abort on
go

begin transaction
go

INSERT INTO dbo.AnagBilance
  VALUES (N'LI', N'PostazioneLiquidi', N'SP')
INSERT INTO dbo.AnagBilance
  VALUES (N'TR', N'Trattamento termico', N'SP')
go

commit transaction
go


set xact_abort on
go

begin transaction
go

set identity_insert dbo.Blocchi on
go

INSERT INTO dbo.Blocchi
  (IdxBlocco, CodMag, CodCS, CodBlocco, DescBlocco, NumX, NumY, NumZ)
  VALUES (42, N'5', N'SP', N'ND', N'Descrizione n.d.', 1, 1, 1)
go

set identity_insert dbo.Blocchi off
go

commit transaction
go

set xact_abort on
go

begin transaction
go

set identity_insert dbo.TipoCella on
go

INSERT INTO dbo.TipoCella
  (IdxTipoCella, CodMag, CodCS, Quantita, Capienza, Max_X, Max_Y, Max_Z, Max_Kg, CheckPiena, SetMag)
  VALUES (23, N'5', N'SP', 1, 1000, 850, 900, 1300, 1000, 0, 1)
go

set identity_insert dbo.TipoCella off
go

commit transaction
go

set xact_abort on
go

begin transaction
go

set identity_insert dbo.Celle on
go

INSERT INTO dbo.Celle
  (IdxCella, CodCS, CodCella, IdxTipoCella, Descrizione, Attiva, Piena, IdxBlocco, X, Y, Z)
  VALUES (3890, N'SP', N'ND010101', 23, N'-', 1, 0, 42, 1, 1, 1)
go

set identity_insert dbo.Celle off
go

commit transaction
go


set xact_abort on
go

begin transaction
go

INSERT INTO dbo.ContatoriListePrelievo
  VALUES (N'SP', '11', '04', 1)
INSERT INTO dbo.ContatoriListePrelievo
  VALUES (N'SP', '11', '12', 1)
go

commit transaction
go

set xact_abort on
go

begin transaction
go

INSERT INTO dbo.ContatoriUdc
  VALUES (N'SP', 'LI', '10', 1)
INSERT INTO dbo.ContatoriUdc
  VALUES (N'SP', 'LI', '11', 11)
INSERT INTO dbo.ContatoriUdc
  VALUES (N'SP', 'LI', '20', 4)
INSERT INTO dbo.ContatoriUdc
  VALUES (N'SP', 'TR', '11', 8)
go

commit transaction
go

set xact_abort on
go

begin transaction
go

UPDATE dbo.TabTranPosizEventi SET 
  toAs400=1
  WHERE CodEvento=N'UDC_CONS' and IdxPosizione=4
go

commit transaction
go










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