Files
GMW/GMW_data/SqlScripts/V1.1/GMW_00215.sql
T
Samuele E. Locatelli bdd7b413e8 Riaggiunto GMW_data
2016-11-22 17:58:00 +01:00

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