set xact_abort on
go

begin transaction
go

UPDATE dbo.Permessi SET 
  NUMERO=2
  WHERE COD_PERMESSO='USER_chLang'
INSERT INTO dbo.Permessi
  VALUES ('USER_stampa', 'stampe.aspx', 6, 2, 'MenuStampe', 'MenuStampeExpl')
go

commit transaction
go


set xact_abort on
go

begin transaction
go

INSERT INTO dbo.Permessi2Funzione
  VALUES ('USER_stampa', N'GMW_stampa', 'S')
go

commit transaction
go

-- modifiche x gestione storico posizioni!
set xact_abort on;
go

begin transaction;
go

alter table PosizioneUdcStorico add
  CodSoggetto nchar(17);
go


commit;
go


set xact_abort on;
go

begin transaction;
go

alter table PosizioneUdcCorrente add
  CodSoggetto nchar(17);
go


commit;
go


set xact_abort on;
go

begin transaction;
go

set ANSI_NULLS on;
go

-- =============================================
-- Author:		Samuele E. Locatelli
-- Create date: 2009-09-13
-- Mod date:	2012-09-17
-- Description:	trigger x inserimento valori in archivio storico alla cancellazione/modifica del dato (tranne curr user)
-- =============================================
alter TRIGGER trg_storico 
   ON  PosizioneUdcCorrente 
   AFTER DELETE,UPDATE
AS 
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

	-- devo EVITARE di salvare se c'è solo modifica del CodSoggetto...
	IF( UPDATE(UDC) OR UPDATE(IdxCella) OR UPDATE(CodCS) OR UPDATE(DataRif) )
	BEGIN
		-- metto in storico la posizione attuale dell'UDC (SE esiste) CANCELLATO
		INSERT INTO PosizioneUdcStorico(UDC, IdxCella, CodCS, DataInizio, DataFine, CodSoggetto)
		(
			SELECT	UDC, IdxCella, CodCS, DataRif as DataInizio, GETDATE() as DataFine, CodSoggetto
			FROM	deleted
		)
	END
END
go

commit;
go


set xact_abort on;
go

begin transaction;
go

set ANSI_NULLS on;
go

/***************************************
* STORED stp_riattivaUdc
*
* riattiva un dato UDC (da mag consumato negativo a corrispettivo positivo) --> se era positivo NON FA NULLA!!! (perchè uso ABS e controllo sia < 0)
*
* Steamware, S.E.L.
* mod: 2012.05.30
*
****************************************/
alter PROCEDURE stp_riattivaUdc
(
	@UDC VARCHAR(50),
	@CodSoggetto NVARCHAR(17)
)
AS

DECLARE @CodEvento VARCHAR(10)
DECLARE @CodTipoDichiaraz VARCHAR(1)
DECLARE @IdxCella INT
DECLARE @CodCS NVARCHAR(2)

SET @UDC = UPPER(@UDC)   -- metto ad Upper nel caso venga passato in minuscolo ( es. da terminalino )

SET @CodEvento = 'UDC_RIA'
SET @CodTipoDichiaraz = 'U'

BEGIN TRAN
	
	-- faccio update posizione
	UPDATE      ElencoCartellini
	SET         IdxPosizione = ABS(IdxPosizione)
			   ,ModDate=GETDATE()
			   ,CodEvento	= @CodEvento
			   ,CodSoggetto = @CodSoggetto
	WHERE		UDC = @UDC AND IdxPosizione IN (SELECT IdxPosizione FROM AnagPosizioni WHERE (IsRiattivaEnabled = 1)
)
	
	-- lo elimino da eventuali precedenti liste di prelievo sennò poi non potrei + prelevarlo
	DELETE FROM RigheListePrelievo
	WHERE UDC = @UDC
	
	-- imposto posizione CELLA corrente x l'udc nella prima libera 
	SET @IdxCella = (SELECT c.IdxCella FROM Celle c inner join Blocchi b ON c.IdxBlocco=b.IdxBlocco INNER JOIN ElencoCartellini e ON b.CodMag = CAST(e.IdxPosizione AS NVARCHAR(50)) WHERE e.UDC = @UDC)
	SET @CodCS = (SELECT CodCS FROM ElencoCartellini WHERE UDC = @UDC)
	INSERT INTO PosizioneUdcCorrente(UDC, IdxCella, CodCS, DataRif, CodSoggetto)
	VALUES(@Udc, @IdxCella, @CodCS, GETDATE(), @CodSoggetto)

	
COMMIT TRAN

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: 2012.05.30
*
****************************************/
alter PROCEDURE stp_scaricaUdc
(
	@UDC VARCHAR(50),
	@IdxPosizione INT,
	@CodEvento VARCHAR(10),
	@CodSoggetto NVARCHAR(17)
)
AS

BEGIN TRAN
	-- aggiorno utente x la posizione corrente, in modo da poter POI salvare l'utente che scarica UDC
	UPDATE	PosizioneUdcCorrente
	SET		CodSoggetto = @CodSoggetto
	WHERE	UDC = @UDC

	-- 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()
		   ,CodEvento = @CodEvento
		   ,CodSoggetto = @CodSoggetto
	WHERE	UDC = @UDC	
	
COMMIT TRAN

RETURN
go

commit;
go


set xact_abort on;
go

begin transaction;
go

set ANSI_NULLS on;
go

/***************************************
* STORED stp_spostaUdc
*
* sposta un UDC, salvandone la posizione precedente (se esiste) nella tab storica
*
* Steamware, S.E.L.
* mod: 2010.06.11
*
****************************************/
alter PROCEDURE stp_spostaUdc
(
	@CodCS VARCHAR(2),
	@UDC VARCHAR(50),
	@IdxCellaTo INT,
	@resetRLP BIT,
	@CodSoggetto VARCHAR(17)
)
AS

SET @UDC = UPPER(@UDC)   -- metto ad Upper nel caso venga passato in minuscolo ( es. smart LDP da terminalino )

BEGIN TRAN
	
	-- DICHIARAZIONI iniziali variabili
	DECLARE @IdxCellaFrom INT
	DECLARE @capienza INT
	DECLARE @numUdc INT
	DECLARE @udcInLdpPrel BIT
	
	-- controllo cella di partenza
	SET		@IdxCellaFrom = (SELECT IdxCella FROM PosizioneUdcCorrente WHERE UDC = @UDC)
	SET		@IdxCellaFrom = ISNULL(@IdxCellaFrom,0) -- controllo x cella null...
	
	-- controllo UDC, se faccia parte di LDP che NON permette MOV...
	SET		@udcInLdpPrel = ( SELECT ISNULL(COUNT(rldp.UDC),0)
								FROM	RigheListePrelievo rldp INNER JOIN ElencoListePrelievo ldp 
									ON ldp.CodLista=rldp.CodLista INNER JOIN AnagStatiListe asl
									ON ldp.CodStatoLista = asl.CodStatoLista
								WHERE	asl.canMovUDC = 0
								AND		rldp.UDC=@UDC )
	-- controllo se cella di destinazione e di partenza coincidono NON FACCIO NULLA... altrimenti procedo
	IF (@IdxCellaTo <> @IdxCellaFrom)
		BEGIN
			-- controllo UDC "libero" da LDP (ovvero non faccia parte di LDP in uno stato che NON permette MOV, nel qual caso NON sposto)
			IF (@udcInLdpPrel = 0)
				-- tutto ok PROCEDO!
				BEGIN
					
					-- controllo se la cella di partenza vada indicata come piena o meno
					SET		@capienza = (
											SELECT tc.Capienza 
												FROM TipoCella TC INNER JOIN Celle c ON TC.IdxTipoCella=c.IdxTipoCella
												WHERE c.IdxCella = @IdxCellaFrom	
										)
					SET @numUdc = (SELECT COUNT(*) FROM PosizioneUdcCorrente WHERE IdxCella = @IdxCellaFrom)
					-- se capienza cella di partenza NON raggiunta aggiorno NON Piena
					IF(@numUdc -1 < @capienza)
						BEGIN
							EXEC stp_celle_updPiena @IdxCellaFrom, 0
						END

					-- aggiorno utente x la posizione corrente, in modo da poter POI salvare l'utente che scarica UDC
					UPDATE	PosizioneUdcCorrente
					SET		CodSoggetto = @CodSoggetto
					WHERE	UDC = @UDC
	
					-- cancello posizione occupata
					DELETE
					FROM	PosizioneUdcCorrente
					WHERE	UDC = @UDC
					
					-- SE RICHIESTO cancello eventuali righe liste di prelievo FUSI per l'UDC
					IF(@resetRLP = 1)
					BEGIN
						DELETE FROM RigheListePrelievo
							WHERE UDC = @UDC AND CodLista IN ( 
								SELECT CodLista FROM ElencoListePrelievo 
								--WHERE CodTipoLista='01-PreFus'
								WHERE CodStatoLista < 4
							)
					END

					
					
					-- creo una nuova posizione per l'UDC
					INSERT INTO PosizioneUdcCorrente(UDC, IdxCella, CodCS, DataRif, CodSoggetto)
					VALUES(@UDC, @IdxCellaTo, @CodCS, GETDATE(), @CodSoggetto)
					
					SET @numUdc = (SELECT COUNT(*) FROM PosizioneUdcCorrente WHERE IdxCella = @IdxCellaTo)
				
					-- controllo se la cella di dest vada indicata come piena, altrimenti NON la indicherò (mai) come piena...
					SET		@capienza = (
											SELECT CASE CheckPiena WHEN 1 THEN tc.Capienza ELSE @numUdc + 1 END
												FROM TipoCella TC INNER JOIN Celle c ON TC.IdxTipoCella=c.IdxTipoCella
												WHERE c.IdxCella = @IdxCellaTo	
										)
				
				
					-- se capienza raggiunta aggiorno...
					IF(@numUdc >= @capienza)
						BEGIN
							EXEC stp_celle_updPiena @IdxCellaTo, 1
						END
						
				END -- cellaFrom e cellaTo non coincidono...
		END -- UDC NON appartiene a LDP già prelevate...
	
COMMIT TRAN

RETURN
go

commit;
go


set xact_abort on;
go

begin transaction;
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(50),
	@DoDeleteUdcParent BIT,
	@Note NVARCHAR(500)
)
AS

-- DECLARE iniziali
DECLARE @UDC AS VARCHAR(50)
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

SET @UDC_parent = UPPER(@UDC_parent) -- nel caso sia passato in minuscolo

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

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

-- se non lo trova provo anche nell'anagrafica leghe
IF(@DescParticolare = 'ND')-- OR (@DescParticolare is null)
	BEGIN
		SET @DescParticolare = ISNULL(
		(
			SELECT        DescLega
			FROM            RilPro.AnagLeghe
			WHERE        ('L'+CodLega = @Particolare)
		)
		, '')
	END
-- cerco codice disegno grezzo
SET @DisegnoGrezzo = ISNULL(
(
	SELECT        DisegnoGrezzo
	FROM            RilPro.AnagParticolari
	WHERE        (Particolare = @Particolare)
)
, '')

-- cerco descrizione Impianto
SET @DescImpianto = ISNULL(
(
	SELECT        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 se esiste contatore x il flusso
    -- controllo se record c'è...
	IF EXISTS(  SELECT TOP 1 Flusso FROM ContatoriUdc 
		        WHERE	CodCS		=	@CodCS
		        AND		Flusso		=	@Flusso
		        AND		Anno		=	@Anno )
	    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 = 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, CodEvento)
	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, @CodEvento)

	-- 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(UDC, IdxCella, CodCS, DataRif, CodSoggetto)
	VALUES(@Udc, @IdxCella, @CodCS, GETDATE(), @CodSoggetto)
------------------------------------------------------------------------------------------------------


------------------------------------------------------------------------------------------------------
-- 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
*
****************************************/
alter 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(50),
	@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 = ISNULL(
(
	SELECT        RagSociale
	FROM            RilPro.AnagClienti
	WHERE        (CodCliente = @CodCliente)
)
, '') 

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

-- se non lo trova provo anche nell'anagrafica leghe
IF(@DescParticolare = 'ND')-- OR (@DescParticolare is null)
	BEGIN
		SET @DescParticolare = ISNULL(
		(
			SELECT DescLega
			FROM   RilPro.AnagLeghe
			WHERE  ('L'+CodLega = @Particolare)
		)
		, '')
	END
-- cerco codice disegno grezzo
SET @DisegnoGrezzo = ISNULL(
(
	SELECT DisegnoGrezzo
	FROM   RilPro.AnagParticolari
	WHERE  (Particolare = @Particolare)
)
, '')

-- cerco descrizione Impianto
SET @DescImpianto = ISNULL(
(
	SELECT 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, CodEvento)
	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, @CodEvento)

	-- 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(UDC, IdxCella, CodCS, DataRif, CodSoggetto)
	VALUES(@Udc, @IdxCella, @CodCS, GETDATE(), @CodSoggetto)
------------------------------------------------------------------------------------------------------

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

RETURN
go

commit;
go






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