/* Sistemo unique x cod blocco */ set xact_abort on go begin transaction go update Blocchi set CodBlocco = N'' where CodBlocco is null go alter table Blocchi alter column CodBlocco nvarchar(3) not null go alter table Blocchi add constraint i_CodBlocco unique(CodBlocco) 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 SELECT * FROM ElencoListePrelievo WHERE (CodLista = @CodLista) -- copio le righe lista di dettaglio INSERT INTO RigheListePrelievo_AS SELECT * 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 set xact_abort on go begin transaction go set ANSI_NULLS on go /*************************************** * STORED stp_RLP_sbloccaNonPrelevate * * sblocca righe liste di prelievo ATTIVE x UDC non prelevati * * Steamware, S.E.L. * mod: 2010.08.31 * ****************************************/ create PROCEDURE stp_RLP_sbloccaNonPrelevate ( @UDC NVARCHAR(50) ) AS -- creo una CTE x le righe liste prelievo ATTIVE (escludo bozze e liste scaricate) - candidate per sblocco WITH cteUdcRigheAttive AS ( SELECT RLP.CodLista, RLP.UDC, RLP.Prelevato FROM RigheListePrelievo AS RLP INNER JOIN ElencoListePrelievo AS ELP ON RLP.CodLista = ELP.CodLista WHERE (ELP.CodStatoLista BETWEEN 1 AND 3) AND RLP.Prelevato = 1 ) /* , -- creo una CTE x gli UDC che sono attualmente nella posizione virtuale di VLP (Virtual Lista Prelievo) e quindi VANNO ESCLUSE dallo sblocco cteUdcInPrelievo AS ( SELECT UDC FROM PosizioneUdcCorrente WHERE (IdxCella IN ( SELECT c.IdxCella FROM Celle AS c INNER JOIN TipoCella AS tc ON c.IdxTipoCella = tc.IdxTipoCella WHERE (tc.CodMag = 'VMLP'))) ) -- effettua "sblocco" delle righe liste prelievo che danno UDC prelevati ma che NON risultano UPDATE cteUdcRigheAttive SET Prelevato = 0 WHERE (Prelevato = 1) AND (UDC NOT IN (select * from cteUdcInPrelievo)) */ -- effettua "sblocco" delle righe liste prelievo che danno UDC prelevati ma che NON risultano UPDATE cteUdcRigheAttive SET Prelevato = 0 WHERE UDC = @UDC RETURN go commit go -- registro versione... INSERT INTO [dbo].[LogUpdateDb] ([Versione],[Data]) VALUES(215, GETDATE()) GO