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

268 lines
10 KiB
Transact-SQL

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