1f7b3ff79f
git-svn-id: https://keyhammer.ath.cx/svn/GMW/trunk@483 365432ac-a1b5-4ffd-bb28-6d3099d32164
268 lines
10 KiB
Transact-SQL
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 |