Files
Samuele E. Locatelli bdd7b413e8 Riaggiunto GMW_data
2016-11-22 17:58:00 +01:00

290 lines
7.7 KiB
Transact-SQL

set xact_abort on
go
begin transaction
go
set ANSI_NULLS on
go
/***************************************
* STORED stp_getUDC_UnusedOlder
*
* ottiene l'elenco degli UDC più vecchi in ordine asc TRA QUELLI NON ANCORA PRELEVATI nè proposti nella lista corrente
*
* Steamware, S.E.L.
* mod: 2010.07.06
*
****************************************/
alter PROCEDURE stp_getUDC_UnusedOlder
(
@CodLista VARCHAR(12)
)
AS
-- variabili locali che mi servono
DECLARE @Figura AS VARCHAR(4)
DECLARE @Esponente AS VARCHAR(6)
DECLARE @CodImballo AS VARCHAR(15)
DECLARE @Particolare AS VARCHAR (50)
DECLARE @CodTipoLista AS VARCHAR (10)
--DECLARE @IdxPosizione AS INT
SET @Figura = (SELECT Figura FROM ElencoListePrelievo WHERE CodLista = @CodLista)
SET @Esponente = (SELECT Esponente FROM ElencoListePrelievo WHERE CodLista = @CodLista)
SET @CodImballo = (SELECT CodImballo FROM ElencoListePrelievo WHERE CodLista = @CodLista)
SET @Particolare = (SELECT Particolare FROM ElencoListePrelievo WHERE CodLista = @CodLista)
SET @CodTipoLista = (SELECT CodTipoLista FROM ElencoListePrelievo WHERE CodLista = @CodLista)
/*
SET @IdxPosizione = (SELECT tt.IdxPosizione
FROM TipoListaPrelievo tlp INNER JOIN TabTranPosizEventi tt ON tlp.CodEvento = tt.CodEvento
WHERE (tlp.CodTipoLista = @CodTipoLista))
*/
-- effettuo la selezione
SELECT *
FROM ElencoCartellini
WHERE (Particolare = @Particolare) AND (IdxPosizione IN (SELECT tt.IdxPosizione
FROM TipoListaPrelievo tlp INNER JOIN TabTranPosizEventi tt ON tlp.CodEvento = tt.CodEvento
WHERE (tlp.CodTipoLista = @CodTipoLista))) AND
(Figura = CASE WHEN @Figura = '*' THEN Figura ELSE @Figura END) AND
(Esponente = CASE WHEN @Esponente = '*' THEN Esponente ELSE @Esponente END) AND
(CodImballo = CASE WHEN @CodImballo = '*' THEN CodImballo ELSE @CodImballo END)
AND UDC NOT IN (
SELECT DISTINCT UDC
FROM RigheListePrelievo INNER JOIN ElencoListePrelievo
ON RigheListePrelievo.CodLista = ElencoListePrelievo.CodLista
WHERE (ElencoListePrelievo.CodLista = @CodLista)
OR (ElencoListePrelievo.CodLista <> @CodLista AND CodStatoLista > 1 AND Prelevato = 1)
)
ORDER BY ElencoCartellini.DataFus
RETURN
go
commit
go
set xact_abort on
go
begin transaction
go
set ANSI_NULLS on
go
/***************************************
* STORED stp_ParticolariOverviewPerListaPrelievo
*
* elenco di overview sull'impiego dei particolari (dettaglio a "maglie larghe") x una possibile lista di prelievo
*
* Steamware, S.E.L.
* mod: 2010.05.31
*
****************************************/
alter PROCEDURE stp_ParticolariOverviewPerListaPrelievo
(
@Particolare VARCHAR(50),
@CodCS VARCHAR(2),
@Esponente NVARCHAR(6),
@Figura NVARCHAR(4),
@CodImballo NVARCHAR(15),
@CodTipoLista NVARCHAR (10)
)
AS
/*
DECLARE @IdxPosizione AS INT
SET @IdxPosizione = (SELECT tt.IdxPosizione
FROM TipoListaPrelievo tlp INNER JOIN TabTranPosizEventi tt ON tlp.CodEvento = tt.CodEvento
WHERE (tlp.CodTipoLista = @CodTipoLista))
*/
SELECT RilPro.AnagParticolari.Particolare, RilPro.AnagParticolari.DescParticolare, ISNULL(COUNT(dbo.ElencoCartellini.UDC), 0) AS NumUDC,
ISNULL(SUM(dbo.ElencoCartellini.Qta), 0) AS TotQta, ISNULL(COUNT(dbo.PosizioneUdcCorrente.IdxCella), 0) AS NumInMag
FROM RilPro.AnagParticolari LEFT OUTER JOIN
dbo.ElencoCartellini ON RilPro.AnagParticolari.Particolare = dbo.ElencoCartellini.Particolare LEFT OUTER JOIN
dbo.PosizioneUdcCorrente ON dbo.ElencoCartellini.UDC = dbo.PosizioneUdcCorrente.UDC
WHERE RilPro.AnagParticolari.CodCS = @CodCS AND
RilPro.AnagParticolari.Particolare = @Particolare AND
(IdxPosizione IN (SELECT tt.IdxPosizione
FROM TipoListaPrelievo tlp INNER JOIN TabTranPosizEventi tt ON tlp.CodEvento = tt.CodEvento
WHERE (tlp.CodTipoLista = @CodTipoLista))) AND
(dbo.ElencoCartellini.Figura = CASE WHEN @Figura = '*' THEN dbo.ElencoCartellini.Figura ELSE @Figura END) AND
(dbo.ElencoCartellini.Esponente = CASE WHEN @Esponente = '*' THEN dbo.ElencoCartellini.Esponente ELSE @Esponente END) AND
(dbo.ElencoCartellini.CodImballo = CASE WHEN @CodImballo = '*' THEN dbo.ElencoCartellini.CodImballo ELSE @CodImballo END)
GROUP BY RilPro.AnagParticolari.Particolare, RilPro.AnagParticolari.DescParticolare
RETURN
go
commit
go
set xact_abort on
go
begin transaction
go
set ANSI_NULLS on
go
/***************************************
* STORED stp_riattivaUdc
*
* riattiva un dato UDC (da mag consumato negativo a corrispettivo positivo) --> se era positivo NON FA NULLA!!! (perchè uso ABS e controllo sia < 0)
*
* Steamware, S.E.L.
* mod: 2010.11.04
*
****************************************/
alter PROCEDURE stp_riattivaUdc
(
@UDC VARCHAR(20),
@CodSoggetto NVARCHAR(17)
)
AS
DECLARE @CodEvento VARCHAR(10)
DECLARE @CodTipoDichiaraz VARCHAR(1)
DECLARE @IdxCella INT
DECLARE @CodCS NVARCHAR(2)
SET @CodEvento = 'UDC_RIA'
SET @CodTipoDichiaraz = 'U'
BEGIN TRAN
-- faccio update posizione
UPDATE ElencoCartellini
SET IdxPosizione = ABS(IdxPosizione), ModDate=GETDATE(), CodSoggetto = @CodSoggetto
WHERE UDC = @UDC AND IdxPosizione IN (SELECT IdxPosizione FROM AnagPosizioni WHERE (IsRiattivaEnabled = 1)
)
-- lo elimino da eventuali precedenti liste di prelievo sennò poi non potrei + prelevarlo
DELETE FROM RigheListePrelievo
WHERE UDC = @UDC
-- imposto posizione CELLA corrente x l'udc nella prima libera
SET @IdxCella = (SELECT c.IdxCella FROM Celle c inner join Blocchi b ON c.IdxBlocco=b.IdxBlocco INNER JOIN ElencoCartellini e ON b.CodMag = CAST(e.IdxPosizione AS NVARCHAR(50)) WHERE e.UDC = @UDC)
SET @CodCS = (SELECT CodCS FROM ElencoCartellini WHERE UDC = @UDC)
INSERT INTO PosizioneUdcCorrente
VALUES(@Udc, @IdxCella, @CodCS, GETDATE())
COMMIT TRAN
RETURN
go
commit
go
set xact_abort on
go
begin transaction
go
set ANSI_NULLS on
go
/***************************************
* STORED stp_UDC_updateIdxPosizione
*
* aggiorna un cartellino x la sua posizione logica
*
* Steamware, S.E.L.
* mod: 2010.06.12
*
****************************************/
alter PROCEDURE stp_UDC_updateIdxPosizione
(
@UDC VARCHAR(20),
@IdxPosizione INT
)
AS
------------------------------------------------------------------------------------------------------
-- Ciclo principale x edit record
------------------------------------------------------------------------------------------------------
BEGIN TRAN
-- modifico il record
UPDATE ElencoCartellini
SET IdxPosizione = @IdxPosizione, ModDate = GETDATE()
WHERE UDC = @UDC
COMMIT TRAN
------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------
-- restituisco la tab dati con l'udc appena inserito
------------------------------------------------------------------------------------------------------
SELECT *
FROM ElencoCartellini
WHERE UDC = @UDC
------------------------------------------------------------------------------------------------------
RETURN
go
commit
go
set xact_abort on
go
begin transaction
go
INSERT INTO dbo.AnagPosizioni
VALUES (-54, N'AM - FINITI consumati', 0)
go
commit transaction
go
set xact_abort on
go
begin transaction
go
INSERT INTO dbo.AnagTipoEvento
VALUES (N'UDC_RITER', N'Richiesta UDC Rientro terzista')
go
commit transaction
go
set xact_abort on
go
begin transaction
go
INSERT INTO dbo.TabTranPosizEventi
VALUES (N'UDC_CONS', 54, -54)
go
commit transaction
go
-- registro versione...
INSERT INTO [dbo].[LogUpdateDb] ([Versione],[Data]) VALUES(310, GETDATE())
GO