153 lines
3.4 KiB
Transact-SQL
153 lines
3.4 KiB
Transact-SQL
/* 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
|