
/***************************************
* STORED stp_UDC_upsertPrelevato
*
* fa un upsert sulle righe liste prelievo indicando che è stato prelevato un dato udc
* (upsert: se c'è update, se non c'è insert...)
*
* Steamware, S.E.L.
* mod: 2010.06.29
*
************************************/
CREATE PROCEDURE [dbo].[stp_UDC_upsertPrelevato]
(
	@CodLista NVARCHAR(12),
	@UDC NVARCHAR(50)
)
AS

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

-- controllo se ci sia l'UDC tra quelli proposti...
DECLARE @trovato AS BIT

SET @trovato = (SELECT	COUNT(*) AS trovati
                FROM    RigheListePrelievo
                WHERE   (CodLista = @CodLista) AND (UDC = @UDC))

-- controllo x scelta upsert

IF ( @trovato > 0) -- UPDATE!
	BEGIN
		UPDATE RigheListePrelievo
		SET Prelevato=1
		WHERE     (CodLista = @CodLista) AND (UDC = @UDC)
	END
ELSE -- INSERT!
	BEGIN
		INSERT INTO RigheListePrelievo (CodLista, UDC, Qta, Proposto, Prelevato)
		SELECT	@CodLista, @UDC, Qta, 0, 1 
		FROM    ElencoCartellini
		WHERE   (UDC = @UDC)
	END


-- restituisce la tab delle righe di prelievo della lista indicata

SELECT	*
FROM    RigheListePrelievo
WHERE   (CodLista = @CodLista) AND (UDC = @UDC)

