alter table StoricoCartellini drop
  constraint FK_StoricoEventi_AnagTipoEvento ,
  column CodEvento,
  constraint DF_StoricoEventi_CodTipoDichiaraz ,
  constraint FK_StoricoEventi_AnagTipoDichiaraz ,
  column CodTipoDichiaraz
go


set xact_abort on
go

begin transaction
go

set ANSI_NULLS on
go

-- =============================================
-- Author:		Samuele E. Locatelli
-- Create date: 2009-10-27
-- Description:	trigger x inserimento valori in archivio storico alla cancellazione/modifica del dato
-- =============================================
create TRIGGER trg_storicoUDC 
   ON  ElencoCartellini 
   AFTER DELETE,UPDATE
AS 
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

    -- metto in storico la posizione attuale dell'UDC (SE esiste) CANCELLATO
	INSERT INTO StoricoCartellini(DataEv, UDC, CodCS, CodCliente, RagSociale, Particolare, DescParticolare, DisegnoGrezzo, Esponente, CodImpianto,
				DescImpianto, CodStampo, Figura, DataFus, TurnoFus, CodImballo, CodSoggetto, NumCont, Tara, Qta, CodStato, IdxPosizione, PesoTot, PesoCad)
	(
		
		SELECT		GETDATE(), UDC, CodCS, CodCliente, RagSociale, Particolare, DescParticolare, DisegnoGrezzo, Esponente, CodImpianto, DescImpianto, 
					CodStampo, Figura, DataFus, TurnoFus, CodImballo, CodSoggetto, NumCont, Tara, Qta, CodStato, IdxPosizione, PesoTot, PesoCad
		FROM	deleted
	)

END
go

commit
go


set xact_abort on
go

begin transaction
go

set ANSI_NULLS on
go

/***************************************
* STORED stp_LP_exportToAs400
*
* esporta la lista di prelievo (e le relative righe) verso AS400 andando a copaire nelle relative tabelle _AS
*
* Steamware, S.E.L.
* mod: 2010.07.19
*
****************************************/
alter PROCEDURE stp_LP_exportToAs400
(
	@CodLista NVARCHAR(12)
)
AS

-- copio la lista (intestazione)
INSERT INTO ElencoListePrelievo_AS(CodLista, CodTipoLista, CodCS, DataCreaz, CodCliente, RagSociale, CodSoggetto, Particolare, DescParticolare, 
					DisegnoGrezzo, Esponente, Figura, CodImballo,  QtaTot, CodStatoLista, Destinatario)
SELECT		CodLista, CodTipoLista, CodCS, DataCreaz, CodCliente, RagSociale, CodSoggetto, Particolare, DescParticolare, 
			DisegnoGrezzo, Esponente, Figura, CodImballo,  QtaTot, CodStatoLista, Destinatario
FROM        ElencoListePrelievo
WHERE       (CodLista = @CodLista)

-- copio le righe lista di dettaglio
INSERT INTO RigheListePrelievo_AS(CodLista, UDC, Qta, Proposto, Prelevato)
SELECT		CodLista, UDC, Qta, Proposto, Prelevato
FROM        RigheListePrelievo
WHERE       (CodLista = @CodLista) AND Prelevato = 1

-- aggiorno le quantità passate ad AS...
UPDATE		ElencoListePrelievo_AS 
SET			QtaTot = ( SELECT SUM(Qta) AS QtaTot FROM RigheListePrelievo WHERE (CodLista = @CodLista) AND Prelevato = 1 )
WHERE       (CodLista = @CodLista)

-- IMPORTANTE: in caso siano rimasti riferimenti ad un UDC scaricato in AS in altre liste di prelievo li tolgo in modo da "ripulirle" ed evitare che lo stesso UDC venga prelevato 2 volte...
DELETE		RLP
FROM		RigheListePrelievo RLP
INNER JOIN	ElencoListePrelievo ELP
		ON	RLP.CodLista = ELP.CodLista
WHERE		ELP.CodStatoLista < 4 AND RLP.CodLista <> @CodLista AND RLP.UDC IN (
					SELECT	UDC 
					FROM	RigheListePrelievo
					WHERE   (CodLista = @CodLista) AND Prelevato = 1
					)

RETURN
go

commit
go











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