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