Riaggiunto GMW_data
This commit is contained in:
@@ -0,0 +1,149 @@
|
||||
/* Modificate 2 viste (tolto order by e top) ed una stored (x controllare ed IMPEDIRE spostamenti UDC che facciano aprte di LDP in stato 4 = scaricate */
|
||||
set xact_abort on;
|
||||
go
|
||||
|
||||
begin transaction;
|
||||
go
|
||||
|
||||
set ANSI_NULLS on;
|
||||
go
|
||||
|
||||
alter VIEW V_elencoListePrelievo
|
||||
AS
|
||||
SELECT dbo.ElencoListePrelievo.CodLista, dbo.ElencoListePrelievo.CodTipoLista, dbo.ElencoListePrelievo.CodCS, dbo.ElencoListePrelievo.DataCreaz,
|
||||
dbo.ElencoListePrelievo.CodCliente, dbo.ElencoListePrelievo.RagSociale, dbo.ElencoListePrelievo.CodSoggetto, dbo.ElencoListePrelievo.Particolare,
|
||||
dbo.ElencoListePrelievo.DescParticolare, dbo.ElencoListePrelievo.DisegnoGrezzo, dbo.ElencoListePrelievo.Esponente, dbo.ElencoListePrelievo.Figura,
|
||||
dbo.ElencoListePrelievo.CodImballo, dbo.ElencoListePrelievo.QtaTot, dbo.ElencoListePrelievo.CodStatoLista, ISNULL(dbo.v_righePrelevate.TotQta, 0) AS Prelevato,
|
||||
dbo.ElencoListePrelievo.Destinatario, ISNULL(dbo.ElencoListePrelievo.DestinatarioDescrizione, N'nd') AS DestinatarioDescrizione
|
||||
FROM dbo.ElencoListePrelievo LEFT OUTER JOIN
|
||||
dbo.v_righePrelevate ON dbo.ElencoListePrelievo.CodLista = dbo.v_righePrelevate.CodLista
|
||||
go
|
||||
|
||||
commit;
|
||||
go
|
||||
|
||||
|
||||
set xact_abort on;
|
||||
go
|
||||
|
||||
begin transaction;
|
||||
go
|
||||
|
||||
set ANSI_NULLS on;
|
||||
go
|
||||
|
||||
/***************************************
|
||||
* STORED stp_spostaUdc
|
||||
*
|
||||
* sposta un UDC, salvandone la posizione precedente (se esiste) nella tab storica
|
||||
*
|
||||
* Steamware, S.E.L.
|
||||
* mod: 2010.06.11
|
||||
*
|
||||
****************************************/
|
||||
alter PROCEDURE stp_spostaUdc
|
||||
(
|
||||
@CodCS VARCHAR(2),
|
||||
@UDC VARCHAR(50),
|
||||
@IdxCellaTo INT,
|
||||
@resetRLP BIT
|
||||
)
|
||||
AS
|
||||
|
||||
BEGIN TRAN
|
||||
|
||||
-- DICHIARAZIONI iniziali variabili
|
||||
DECLARE @IdxCellaFrom INT
|
||||
DECLARE @capienza INT
|
||||
DECLARE @numUdc INT
|
||||
DECLARE @udcInLdpPrel BIT
|
||||
|
||||
-- controllo cella di partenza
|
||||
SET @IdxCellaFrom = (SELECT IdxCella FROM PosizioneUdcCorrente WHERE UDC = @UDC)
|
||||
SET @IdxCellaFrom = ISNULL(@IdxCellaFrom,0) -- controllo x cella null...
|
||||
|
||||
-- controllo UDC, se faccia aprte di LDP già prelevata...
|
||||
SET @udcInLdpPrel = ( SELECT ISNULL(COUNT(rldp.UDC),0)
|
||||
FROM RigheListePrelievo rldp INNER JOIN ElencoListePrelievo ldp
|
||||
ON ldp.CodLista=rldp.CodLista
|
||||
WHERE ldp.CodStatoLista = 4
|
||||
AND rldp.UDC=@UDC )
|
||||
-- controllo se cella di destinazione e di partenza coincidono NON FACCIO NULLA... altrimenti procedo
|
||||
IF (@IdxCellaTo <> @IdxCellaFrom)
|
||||
BEGIN
|
||||
-- controllo UDC "libero" da LDP (ovvero non faccia aprte di LDP già scaricata, nel qual caso NON sposto)
|
||||
IF (@udcInLdpPrel = 0)
|
||||
-- tutto ok PROCEDO!
|
||||
BEGIN
|
||||
|
||||
-- controllo se la cella di partenza vada indicata come piena o meno
|
||||
SET @capienza = (
|
||||
SELECT tc.Capienza
|
||||
FROM TipoCella TC INNER JOIN Celle c ON TC.IdxTipoCella=c.IdxTipoCella
|
||||
WHERE c.IdxCella = @IdxCellaFrom
|
||||
)
|
||||
SET @numUdc = (SELECT COUNT(*) FROM PosizioneUdcCorrente WHERE IdxCella = @IdxCellaFrom)
|
||||
-- se capienza cella di partenza NON raggiunta aggiorno NON Piena
|
||||
IF(@numUdc -1 < @capienza)
|
||||
BEGIN
|
||||
EXEC stp_celle_updPiena @IdxCellaFrom, 0
|
||||
END
|
||||
|
||||
-- cancello posizione occupata
|
||||
DELETE
|
||||
FROM PosizioneUdcCorrente
|
||||
WHERE UDC = @UDC
|
||||
|
||||
-- SE RICHIESTO cancello eventuali righe liste di prelievo FUSI per l'UDC
|
||||
IF(@resetRLP = 1)
|
||||
BEGIN
|
||||
DELETE FROM RigheListePrelievo
|
||||
WHERE UDC = @UDC AND CodLista IN (
|
||||
SELECT CodLista FROM ElencoListePrelievo
|
||||
--WHERE CodTipoLista='01-PreFus'
|
||||
WHERE CodStatoLista < 4
|
||||
)
|
||||
END
|
||||
|
||||
|
||||
|
||||
-- creo una nuova posizione per l'UDC
|
||||
INSERT INTO PosizioneUdcCorrente(UDC, IdxCella, CodCS, DataRif)
|
||||
VALUES(@UDC, @IdxCellaTo, @CodCS, GETDATE())
|
||||
|
||||
SET @numUdc = (SELECT COUNT(*) FROM PosizioneUdcCorrente WHERE IdxCella = @IdxCellaTo)
|
||||
|
||||
-- controllo se la cella di dest vada indicata come piena, altrimenti NON la indicherò (mai) come piena...
|
||||
SET @capienza = (
|
||||
SELECT CASE CheckPiena WHEN 1 THEN tc.Capienza ELSE @numUdc + 1 END
|
||||
FROM TipoCella TC INNER JOIN Celle c ON TC.IdxTipoCella=c.IdxTipoCella
|
||||
WHERE c.IdxCella = @IdxCellaTo
|
||||
)
|
||||
|
||||
|
||||
-- se capienza raggiunta aggiorno...
|
||||
IF(@numUdc >= @capienza)
|
||||
BEGIN
|
||||
EXEC stp_celle_updPiena @IdxCellaTo, 1
|
||||
END
|
||||
|
||||
END -- cellaFrom e cellaTo non coincidono...
|
||||
END -- UDC NON appartiene a LDP già prelevate...
|
||||
|
||||
COMMIT TRAN
|
||||
|
||||
RETURN
|
||||
go
|
||||
|
||||
commit;
|
||||
go
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
-- registro versione...
|
||||
INSERT INTO [dbo].[LogUpdateDb] ([Versione],[Data]) VALUES(461, GETDATE())
|
||||
GO
|
||||
Reference in New Issue
Block a user