set xact_abort on go begin transaction go set ANSI_NULLS on go /*************************************** * STORED stp_paretoDettMagByParticolare * * restituisce elenco giacenze a magazzino in logica pareto (quantità) per un dato particolare * * Steamware, S.E.L. * mod: 2010.06.04 * ****************************************/ create PROCEDURE stp_paretoDettMagByParticolare ( @CodCS VARCHAR(2), @Particolare VARCHAR(20) ) AS SELECT TOP (100) PERCENT AnagMag.CodCS, AnagMag.CodMag, AnagMag.DescMag, Blocchi.IdxBlocco, Blocchi.CodBlocco, ElencoCartellini.Particolare, ElencoCartellini.Esponente, COUNT(PosizioneUdcCorrente.UDC) AS NumUDC, ISNULL(MIN(PosizioneUdcCorrente.DataRif), GETDATE()) AS Oldest, ISNULL(MAX(PosizioneUdcCorrente.DataRif), GETDATE()) AS Newest, SUM(ElencoCartellini.Qta) AS QtaTotPz, AnagStatiProdotto.DescStato FROM AnagMag INNER JOIN Blocchi ON AnagMag.CodMag = Blocchi.CodMag AND AnagMag.CodCS = Blocchi.CodCS INNER JOIN Celle INNER JOIN ElencoCartellini INNER JOIN PosizioneUdcCorrente ON ElencoCartellini.UDC = PosizioneUdcCorrente.UDC ON Celle.IdxCella = PosizioneUdcCorrente.IdxCella ON Blocchi.IdxBlocco = Celle.IdxBlocco INNER JOIN AnagStatiProdotto ON ElencoCartellini.CodStato = AnagStatiProdotto.CodStato WHERE (Celle.Attiva = 1) AND (AnagMag.CodCS = @CodCS) AND (ElencoCartellini.Particolare = @Particolare) GROUP BY AnagMag.CodCS, AnagMag.CodMag, AnagMag.DescMag, Blocchi.IdxBlocco, Blocchi.CodBlocco, Blocchi.NumX, Blocchi.NumY, Blocchi.NumZ, ElencoCartellini.Particolare, ElencoCartellini.Esponente, AnagStatiProdotto.DescStato ORDER BY QtaTotPz DESC RETURN go /*************************************** * STORED stp_paretoDettPartByFullSpec * * restituisce elenco particolari in logica pareto (quantità) per un dato blocco di magazzino e il particolare * * Steamware, S.E.L. * mod: 2010.06.04 * ****************************************/ create PROCEDURE stp_paretoDettPartByFullSpec ( @CodCS VARCHAR(2), @CodMag VARCHAR(50), @IdxBlocco INT, @Particolare VARCHAR(20) ) AS SELECT TOP (100) PERCENT AnagMag.CodCS, AnagMag.CodMag, AnagMag.DescMag, Blocchi.IdxBlocco, Blocchi.CodBlocco, ElencoCartellini.Particolare, ElencoCartellini.Esponente, COUNT(PosizioneUdcCorrente.UDC) AS NumUDC, ISNULL(MIN(PosizioneUdcCorrente.DataRif), GETDATE()) AS Oldest, ISNULL(MAX(PosizioneUdcCorrente.DataRif), GETDATE()) AS Newest, SUM(ElencoCartellini.Qta) AS QtaTotPz, AnagStatiProdotto.DescStato FROM AnagMag INNER JOIN Blocchi ON AnagMag.CodMag = Blocchi.CodMag AND AnagMag.CodCS = Blocchi.CodCS INNER JOIN Celle INNER JOIN ElencoCartellini INNER JOIN PosizioneUdcCorrente ON ElencoCartellini.UDC = PosizioneUdcCorrente.UDC ON Celle.IdxCella = PosizioneUdcCorrente.IdxCella ON Blocchi.IdxBlocco = Celle.IdxBlocco INNER JOIN AnagStatiProdotto ON ElencoCartellini.CodStato = AnagStatiProdotto.CodStato WHERE (Celle.Attiva = 1) AND (AnagMag.CodCS = @CodCS) AND (AnagMag.CodMag = @CodMag) AND (Blocchi.IdxBlocco = @IdxBlocco) AND (ElencoCartellini.Particolare = @Particolare) GROUP BY AnagMag.CodCS, AnagMag.CodMag, AnagMag.DescMag, Blocchi.IdxBlocco, Blocchi.CodBlocco, Blocchi.NumX, Blocchi.NumY, Blocchi.NumZ, ElencoCartellini.Particolare, ElencoCartellini.Esponente, AnagStatiProdotto.DescStato ORDER BY QtaTotPz DESC RETURN go /*************************************** * STORED stp_paretoPartByMagBlocco * * restituisce elenco particolari in logica pareto (quantità) per un dato blocco di magazzino, aggregati (no stato) * * Steamware, S.E.L. * mod: 2010.06.03 * ****************************************/ create PROCEDURE stp_paretoPartByMagBlocco ( @CodCS VARCHAR(2), @CodMag VARCHAR(50), @IdxBlocco INT ) AS SELECT TOP (100) PERCENT dbo.AnagMag.CodCS, dbo.AnagMag.CodMag, dbo.AnagMag.DescMag, dbo.Blocchi.IdxBlocco, dbo.Blocchi.CodBlocco, dbo.ElencoCartellini.Particolare, '' as Esponente, COUNT(dbo.PosizioneUdcCorrente.UDC) AS NumUDC, ISNULL(MIN(dbo.PosizioneUdcCorrente.DataRif), GETDATE()) AS Oldest, ISNULL(MAX(dbo.PosizioneUdcCorrente.DataRif), GETDATE()) AS Newest, SUM(dbo.ElencoCartellini.Qta) AS QtaTotPz, '' AS DescStato FROM dbo.AnagMag INNER JOIN dbo.Blocchi ON dbo.AnagMag.CodMag = dbo.Blocchi.CodMag AND dbo.AnagMag.CodCS = dbo.Blocchi.CodCS INNER JOIN dbo.Celle INNER JOIN dbo.ElencoCartellini INNER JOIN dbo.PosizioneUdcCorrente ON dbo.ElencoCartellini.UDC = dbo.PosizioneUdcCorrente.UDC ON dbo.Celle.IdxCella = dbo.PosizioneUdcCorrente.IdxCella ON dbo.Blocchi.IdxBlocco = dbo.Celle.IdxBlocco INNER JOIN dbo.AnagStatiProdotto ON dbo.ElencoCartellini.CodStato = dbo.AnagStatiProdotto.CodStato WHERE (dbo.Celle.Attiva = 1) AND (AnagMag.CodCS = @CodCS) AND AnagMag.CodMag = @CodMag AND Blocchi.IdxBlocco = @IdxBlocco GROUP BY dbo.AnagMag.CodCS, dbo.AnagMag.CodMag, dbo.AnagMag.DescMag, dbo.Blocchi.IdxBlocco, dbo.Blocchi.CodBlocco, dbo.Blocchi.NumX, dbo.Blocchi.NumY, dbo.Blocchi.NumZ, dbo.ElencoCartellini.Particolare ORDER BY QtaTotPz DESC RETURN go /*************************************** * STORED stp_ParticolariOverview * * elenco di overview sull'impiego dei particolari (dettaglio a "maglie larghe") * * Steamware, S.E.L. * mod: 2010.05.31 * ****************************************/ create PROCEDURE stp_ParticolariOverview ( @searchVal VARCHAR(50), @CodCS VARCHAR(2) ) AS 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 = @searchVal GROUP BY RilPro.AnagParticolari.Particolare, RilPro.AnagParticolari.DescParticolare RETURN go /*************************************** * STORED stp_ParticolariOverviewLike * * elenco di overview sull'impiego dei particolari (dettaglio a "maglie larghe") - modalità LIKE * * Steamware, S.E.L. * mod: 2010.05.31 * ****************************************/ create PROCEDURE stp_ParticolariOverviewLike ( @searchVal VARCHAR(50), @CodCS VARCHAR(2) ) AS SELECT RilPro.AnagParticolari.Particolare, RilPro.AnagParticolari.DescParticolare, ISNULL(COUNT(ElencoCartellini.UDC), 0) AS NumUDC, SUM(ISNULL(ElencoCartellini.Qta, 0)) AS TotQta, ISNULL(COUNT(PosizioneUdcCorrente.IdxCella), 0) AS NumInMag FROM RilPro.AnagParticolari LEFT OUTER JOIN ElencoCartellini ON RilPro.AnagParticolari.Particolare = ElencoCartellini.Particolare LEFT OUTER JOIN PosizioneUdcCorrente ON ElencoCartellini.UDC = PosizioneUdcCorrente.UDC WHERE (RilPro.AnagParticolari.CodCS = @CodCS) AND (RilPro.AnagParticolari.Particolare LIKE '%' + @searchVal + '%') GROUP BY RilPro.AnagParticolari.Particolare, RilPro.AnagParticolari.DescParticolare RETURN go /*************************************** * STORED stp_posizioniGetByIdxBlocco * * ottiene l'elenco delle posizioni UDC associate ad un dato blocco * * Steamware, S.E.L. * mod: 2010.06.02 * ****************************************/ create PROCEDURE stp_posizioniGetByIdxBlocco ( @IdxBlocco INT ) AS SELECT PosizioneUdcCorrente.UDC, PosizioneUdcCorrente.IdxCella, PosizioneUdcCorrente.CodCS, PosizioneUdcCorrente.DataRif FROM Celle INNER JOIN PosizioneUdcCorrente ON Celle.IdxCella = PosizioneUdcCorrente.IdxCella WHERE (Celle.IdxBlocco = @IdxBlocco) RETURN go /*************************************** * STORED stp_posizioniGetByIdxCella * * ottiene una singola posizione data la cella richiesta * * Steamware, S.E.L. * mod: 2010.06.03 * ****************************************/ create PROCEDURE stp_posizioniGetByIdxCella ( @IdxCella INT ) AS SELECT UDC, IdxCella, CodCS, DataRif FROM PosizioneUdcCorrente WHERE (IdxCella = @IdxCella) RETURN go /*************************************** * STORED stp_UdcDetailGetByIdxBlocco * * ottiene l'elenco degli UDC con dettaglio posizioni OCCUPATE associati ad un dato blocco di magazzino * * Steamware, S.E.L. * mod: 2010.06.03 * ****************************************/ create PROCEDURE stp_UdcDetailGetByIdxBlocco ( @IdxBlocco INT ) AS SELECT ElencoCartellini.UDC, ElencoCartellini.RagSociale, ElencoCartellini.Particolare, ElencoCartellini.DescParticolare, ElencoCartellini.DisegnoGrezzo, ElencoCartellini.Esponente, ElencoCartellini.DescImpianto, ElencoCartellini.DataFus, ElencoCartellini.TurnoFus, ElencoCartellini.CodImballo, ElencoCartellini.Qta, AnagStatiProdotto.DescStato, ElencoCartellini.ModDate, ISNULL(Blocchi.CodMag, N'') AS CodMag, ISNULL(Blocchi.CodBlocco, N'') AS CodBlocco, ISNULL(Celle.CodCella, N'') AS CodCella, ISNULL(Celle.X, 0) AS X, ISNULL(Celle.Y, 0) AS Y, ISNULL(Celle.Z, 0) AS Z FROM AnagStatiProdotto RIGHT OUTER JOIN ElencoCartellini ON AnagStatiProdotto.CodStato = ElencoCartellini.CodStato AND AnagStatiProdotto.CodStato = ElencoCartellini.CodStato LEFT OUTER JOIN Celle INNER JOIN PosizioneUdcCorrente ON Celle.IdxCella = PosizioneUdcCorrente.IdxCella AND Celle.IdxCella = PosizioneUdcCorrente.IdxCella AND Celle.IdxCella = PosizioneUdcCorrente.IdxCella INNER JOIN Blocchi ON Celle.IdxBlocco = Blocchi.IdxBlocco INNER JOIN AnagMag ON Blocchi.CodMag = AnagMag.CodMag AND Blocchi.CodCS = AnagMag.CodCS AND Blocchi.CodMag = AnagMag.CodMag AND Blocchi.CodCS = AnagMag.CodCS AND Blocchi.CodMag = AnagMag.CodMag AND Blocchi.CodCS = AnagMag.CodCS ON ElencoCartellini.UDC = PosizioneUdcCorrente.UDC WHERE (Celle.IdxBlocco = @IdxBlocco) RETURN go commit go -- registro versione... INSERT INTO [dbo].[LogUpdateDb] ([Versione],[Data]) VALUES(84, GETDATE()) GO