613 lines
20 KiB
Transact-SQL
613 lines
20 KiB
Transact-SQL
set xact_abort on;
|
|
go
|
|
|
|
begin transaction;
|
|
go
|
|
|
|
set ANSI_NULLS on;
|
|
go
|
|
|
|
create VIEW v_selTipoPart
|
|
AS
|
|
SELECT val AS value, CASE WHEN val = 'A' THEN 'Anime' WHEN val = 'P' THEN 'Produzione' ELSE val + ' (n.d.)' END AS label
|
|
FROM (SELECT DISTINCT ClassifArticolo AS val
|
|
FROM RilPro.AnagParticolari) AS derivedtbl_1
|
|
go
|
|
|
|
exec sp_addextendedproperty 'MS_DiagramPane1', '[0E232FF0-B466-11cf-A24F-00AA00A3EFFF, 1.00]
|
|
Begin DesignProperties =
|
|
Begin PaneConfigurations =
|
|
Begin PaneConfiguration = 0
|
|
NumPanes = 4
|
|
Configuration = "(H (1[40] 4[20] 2[20] 3) )"
|
|
End
|
|
Begin PaneConfiguration = 1
|
|
NumPanes = 3
|
|
Configuration = "(H (1 [50] 4 [25] 3))"
|
|
End
|
|
Begin PaneConfiguration = 2
|
|
NumPanes = 3
|
|
Configuration = "(H (1 [50] 2 [25] 3))"
|
|
End
|
|
Begin PaneConfiguration = 3
|
|
NumPanes = 3
|
|
Configuration = "(H (4 [30] 2 [40] 3))"
|
|
End
|
|
Begin PaneConfiguration = 4
|
|
NumPanes = 2
|
|
Configuration = "(H (1 [56] 3))"
|
|
End
|
|
Begin PaneConfiguration = 5
|
|
NumPanes = 2
|
|
Configuration = "(H (2 [66] 3))"
|
|
End
|
|
Begin PaneConfiguration = 6
|
|
NumPanes = 2
|
|
Configuration = "(H (4 [50] 3))"
|
|
End
|
|
Begin PaneConfiguration = 7
|
|
NumPanes = 1
|
|
Configuration = "(V (3))"
|
|
End
|
|
Begin PaneConfiguration = 8
|
|
NumPanes = 3
|
|
Configuration = "(H (1[56] 4[18] 2) )"
|
|
End
|
|
Begin PaneConfiguration = 9
|
|
NumPanes = 2
|
|
Configuration = "(H (1 [75] 4))"
|
|
End
|
|
Begin PaneConfiguration = 10
|
|
NumPanes = 2
|
|
Configuration = "(H (1[66] 2) )"
|
|
End
|
|
Begin PaneConfiguration = 11
|
|
NumPanes = 2
|
|
Configuration = "(H (4 [60] 2))"
|
|
End
|
|
Begin PaneConfiguration = 12
|
|
NumPanes = 1
|
|
Configuration = "(H (1) )"
|
|
End
|
|
Begin PaneConfiguration = 13
|
|
NumPanes = 1
|
|
Configuration = "(V (4))"
|
|
End
|
|
Begin PaneConfiguration = 14
|
|
NumPanes = 1
|
|
Configuration = "(V (2))"
|
|
End
|
|
ActivePaneConfig = 0
|
|
End
|
|
Begin DiagramPane =
|
|
Begin Origin =
|
|
Top = 0
|
|
Left = 0
|
|
End
|
|
Begin Tables =
|
|
Begin Table = "derivedtbl_1"
|
|
Begin Extent =
|
|
Top = 6
|
|
Left = 38
|
|
Bottom = 85
|
|
Right = 208
|
|
End
|
|
DisplayFlags = 280
|
|
TopColumn = 0
|
|
End
|
|
End
|
|
End
|
|
Begin SQLPane =
|
|
End
|
|
Begin DataPane =
|
|
Begin ParameterDefaults = ""
|
|
End
|
|
Begin ColumnWidths = 9
|
|
Width = 284
|
|
Width = 1500
|
|
Width = 1500
|
|
Width = 1500
|
|
Width = 1500
|
|
Width = 1500
|
|
Width = 1500
|
|
Width = 1500
|
|
Width = 1500
|
|
End
|
|
End
|
|
Begin CriteriaPane =
|
|
Begin ColumnWidths = 11
|
|
Column = 1440
|
|
Alias = 900
|
|
Table = 1170
|
|
Output = 720
|
|
Append = 1400
|
|
NewValue = 1170
|
|
SortType = 1350
|
|
SortOrder = 1410
|
|
GroupBy = 1350
|
|
Filter = 1350
|
|
Or = 1350
|
|
Or = 1350
|
|
Or = 1350
|
|
End
|
|
End
|
|
End
|
|
', 'SCHEMA', 'dbo', 'VIEW', 'v_selTipoPart';
|
|
go
|
|
|
|
exec sp_addextendedproperty 'MS_DiagramPaneCount', 1, 'SCHEMA', 'dbo', 'VIEW', 'v_selTipoPart';
|
|
go
|
|
|
|
commit;
|
|
go
|
|
|
|
|
|
set xact_abort on;
|
|
go
|
|
|
|
begin transaction;
|
|
go
|
|
|
|
set ANSI_NULLS on;
|
|
go
|
|
|
|
/***************************************
|
|
* STORED stp_elencoListePrelievoFilt
|
|
*
|
|
* restituisce l'elenco delle liste di prelievo secondo criteri di filtraggio
|
|
*
|
|
* Steamware, S.E.L.
|
|
* mod: 2010.07.06
|
|
*
|
|
****************************************/
|
|
alter PROCEDURE stp_elencoListePrelievoFilt
|
|
(
|
|
@DataFrom DATETIME,
|
|
@DataTo DATETIME,
|
|
@classifArticolo NCHAR(1) = '*'
|
|
)
|
|
AS
|
|
-- utilizza la vista righe lista prelievo e quindi solo le prelevate ...
|
|
|
|
SELECT velp.*
|
|
FROM V_elencoListePrelievo velp INNER JOIN RilPro.AnagParticolari ap ON velp.Particolare = ap.Particolare
|
|
WHERE (velp.DataCreaz BETWEEN @DataFrom AND @DataTo)
|
|
AND ap.classifArticolo = CASE WHEN ISNULL(@classifArticolo,'*') = '*' THEN ap.classifArticolo ELSE @classifArticolo END
|
|
ORDER BY velp.DataCreaz DESC
|
|
|
|
RETURN
|
|
go
|
|
|
|
commit;
|
|
go
|
|
|
|
|
|
set xact_abort on;
|
|
go
|
|
|
|
begin transaction;
|
|
go
|
|
|
|
set ANSI_NULLS on;
|
|
go
|
|
|
|
/***************************************
|
|
* STORED stp_LP_updateDestTipo
|
|
*
|
|
* aggiorna destinatario e tipo per una lista di prelievo
|
|
*
|
|
* Steamware, S.E.L.
|
|
* mod: 2012.03.06
|
|
*
|
|
************************************/
|
|
alter PROCEDURE stp_LP_updateDestTipo
|
|
(
|
|
@Original_CodLista NVARCHAR(12),
|
|
@CodTipoLista VARCHAR(10),
|
|
@CodCliente NVARCHAR(6),
|
|
@RagSociale NVARCHAR(50),
|
|
@CodSoggetto VARCHAR(17),
|
|
@DataMod DATETIME
|
|
)
|
|
AS
|
|
|
|
--SET XACT_ABORT ON;
|
|
|
|
--BEGIN TRY
|
|
-- BEGIN TRANSACTION;
|
|
|
|
-- aggiorno lista prelievo con nuovo UDC
|
|
UPDATE dbo.ElencoListePrelievo
|
|
SET CodTipoLista = @CodTipoLista,
|
|
Destinatario = @CodCliente,
|
|
DestinatarioDescrizione = @RagSociale,
|
|
CodSoggetto = @CodSoggetto,
|
|
DataModStato = @DataMod
|
|
WHERE CodLista = @Original_CodLista
|
|
AND CodStatoLista = 3
|
|
|
|
-- memorizzo errore
|
|
-- IF ( SELECT CodStatoLista FROM ElencoListePrelievo WHERE CodLista = @Original_CodLista ) <> 3
|
|
-- INSERT TK_AS400.dbo.TabErrori
|
|
-- SELECT GETDATE(), 'STORED stp_LP_updateDestTipo Modifica Tipo Lista non Corretto ' + @Original_CodLista + ' New Tipo ' + @CodTipoLista + ' New Cliente ' + @CodCliente
|
|
|
|
-- COMMIT TRANSACTION;
|
|
--END TRY
|
|
--BEGIN CATCH
|
|
|
|
-- SELECT
|
|
-- ERROR_NUMBER() AS ErrorNumber,
|
|
-- ERROR_MESSAGE() AS ErrorMessage;
|
|
|
|
-- -- Test XACT_STATE for 1 or -1.
|
|
-- -- XACT_STATE = 0 means there is no transaction and
|
|
-- -- a commit or rollback operation would generate an error.
|
|
|
|
-- -- Test whether the transaction is uncommittable.
|
|
-- IF (XACT_STATE()) = -1
|
|
-- BEGIN
|
|
-- PRINT
|
|
-- N'The transaction is in an uncommittable state. ' +
|
|
-- 'Rolling back transaction.'
|
|
-- ROLLBACK TRANSACTION;
|
|
-- END;
|
|
|
|
-- -- Test whether the transaction is active and valid.
|
|
-- IF (XACT_STATE()) = 1
|
|
-- BEGIN
|
|
-- PRINT
|
|
-- N'The transaction is committable. ' +
|
|
-- 'Committing transaction.'
|
|
-- COMMIT TRANSACTION;
|
|
-- END;
|
|
|
|
-- DECLARE @ErrorMessage NVARCHAR(4000);
|
|
-- DECLARE @ErrorSeverity INT;
|
|
-- DECLARE @ErrorState INT;
|
|
|
|
-- SELECT
|
|
-- @ErrorMessage = ERROR_MESSAGE(),
|
|
-- @ErrorSeverity = ERROR_SEVERITY(),
|
|
-- @ErrorState = ERROR_STATE();
|
|
|
|
-- -- Use RAISERROR inside the CATCH block to return error
|
|
-- -- information about the original error that caused
|
|
-- -- execution to jump to the CATCH block.
|
|
-- RAISERROR (@ErrorMessage, -- Message text.
|
|
-- @ErrorSeverity, -- Severity.
|
|
-- @ErrorState -- State.
|
|
-- ) ; -- WITH LOG;
|
|
--END CATCH;
|
|
|
|
|
|
--
|
|
|
|
/* 18-06-2013 messo blocco anche qui dopo aver trovati liste di prelievo già scaricate con tipo e destinatario
|
|
modificati
|
|
UPDATE ElencoListePrelievo
|
|
SET CodTipoLista = @CodTipoLista,
|
|
Destinatario = @CodCliente,
|
|
DestinatarioDescrizione = @RagSociale
|
|
WHERE CodLista = @Original_CodLista
|
|
*/
|
|
|
|
|
|
RETURN
|
|
go
|
|
|
|
commit;
|
|
go
|
|
|
|
|
|
set xact_abort on;
|
|
go
|
|
|
|
begin transaction;
|
|
go
|
|
|
|
set ANSI_NULLS on;
|
|
go
|
|
|
|
/***************************************
|
|
* STORED stp_ParticolariOverview
|
|
*
|
|
* elenco di overview sullo stato dei magazzini (dettaglio a "maglie larghe")
|
|
*
|
|
* Steamware, S.E.L.
|
|
* mod: 2013.06.17 x Cella Terra Bloccata non visibile
|
|
* procedura vecchia in fondo
|
|
****************************************/
|
|
alter PROCEDURE stp_magazzinoOverview
|
|
(
|
|
@CodCS VARCHAR(2),
|
|
@particolare NVARCHAR(15) = ''
|
|
)
|
|
AS
|
|
|
|
-- controllo se particolare vuoto o '*' mostro tutto...
|
|
IF(@particolare = '' OR @particolare='*' OR @particolare IS NULL)
|
|
BEGIN
|
|
|
|
SELECT
|
|
AnagMag.CodCS ,
|
|
AnagMag.CodMag ,
|
|
AnagMag.DescMag ,
|
|
Blocchi.IdxBlocco ,
|
|
Blocchi.CodBlocco ,
|
|
Blocchi.DescBlocco ,
|
|
TipoCella.Capienza * Blocchi.NumX * Blocchi.NumY * Blocchi.NumZ AS TotCelle,
|
|
TipoCella.Capienza * COUNT( DISTINCT ( CASE WHEN Celle.Attiva = 1 THEN Celle.IdxCella
|
|
ELSE NULL END ) ) AS CelleAttive,
|
|
COUNT( PosizioneUdcCorrente.UDC) AS CelleOccupate,
|
|
-- COUNT( CASE WHEN Celle.Attiva = 1 THEN PosizioneUdcCorrente.UDC ELSE NULL END ) AS CelleAttiveOccupate,
|
|
-- CelleLibere = CelleAttive - CelleOccupate ( solo se attive )
|
|
( TipoCella.Capienza * COUNT( DISTINCT ( CASE WHEN Celle.Attiva = 1
|
|
THEN Celle.IdxCella ELSE NULL END )) )
|
|
- ( COUNT( CASE WHEN Celle.Attiva = 1 THEN PosizioneUdcCorrente.UDC ELSE NULL END ) ) AS CelleLibere,
|
|
|
|
ISNULL( MIN( PosizioneUdcCorrente.DataRif ) , GETDATE( ))AS Oldest ,
|
|
ISNULL( MAX( PosizioneUdcCorrente.DataRif ) , GETDATE( ))AS Newest
|
|
FROM AnagMag
|
|
INNER JOIN Blocchi
|
|
ON AnagMag.CodMag = Blocchi.CodMag AND AnagMag.CodCS = Blocchi.CodCS
|
|
INNER JOIN TipoCella
|
|
ON AnagMag.CodMag = TipoCella.CodMag AND AnagMag.CodCS = TipoCella.CodCS
|
|
INNER JOIN Celle
|
|
ON TipoCella.IdxTipoCella = Celle.IdxTipoCella AND Blocchi.IdxBlocco = Celle.IdxBlocco
|
|
LEFT OUTER JOIN PosizioneUdcCorrente
|
|
ON Celle.IdxCella = PosizioneUdcCorrente.IdxCella
|
|
|
|
WHERE AnagMag.CodCS = @CodCS AND ISNULL( AnagMag.Nascosto , 0 ) = 0 -- escludo mag. nascosti
|
|
GROUP BY AnagMag.CodCS ,
|
|
AnagMag.CodMag ,
|
|
AnagMag.DescMag ,
|
|
Blocchi.IdxBlocco ,
|
|
Blocchi.CodBlocco ,
|
|
Blocchi.DescBlocco ,
|
|
Blocchi.NumX ,
|
|
Blocchi.NumY ,
|
|
Blocchi.NumZ ,
|
|
TipoCella.Capienza
|
|
ORDER BY AnagMag.CodMag , Blocchi.CodBlocco;
|
|
END
|
|
ELSE
|
|
BEGIN
|
|
|
|
SELECT
|
|
AnagMag.CodCS ,
|
|
AnagMag.CodMag ,
|
|
AnagMag.DescMag ,
|
|
Blocchi.IdxBlocco ,
|
|
Blocchi.CodBlocco ,
|
|
Blocchi.DescBlocco ,
|
|
TipoCella.Capienza * Blocchi.NumX * Blocchi.NumY * Blocchi.NumZ AS TotCelle,
|
|
-- CelleLibere e CelleAttive = 0 altrimenti grafico videata non corretto con selezione particolare
|
|
CONVERT(INT, 0 ) AS CelleAttive,
|
|
COUNT( CASE WHEN ec.particolare = @particolare THEN PosizioneUdcCorrente.UDC ELSE NULL END ) AS CelleOccupate,
|
|
CONVERT(INT, 0 ) AS CelleLibere,
|
|
|
|
-- Calcoli normali x CelleLibere e CelleAttive ( verificare grafico videata - calcoli corretti )
|
|
--TipoCella.Capienza * COUNT( DISTINCT ( CASE WHEN Celle.Attiva = 1 THEN Celle.IdxCella
|
|
-- ELSE NULL END ) ) AS CelleAttive,
|
|
--COUNT( CASE WHEN ec.particolare = @particolare THEN PosizioneUdcCorrente.UDC ELSE NULL END ) AS CelleOccupate,
|
|
--( TipoCella.Capienza * COUNT( DISTINCT ( CASE WHEN Celle.Attiva = 1 THEN Celle.IdxCella ELSE NULL END )) )
|
|
-- - ( COUNT( CASE WHEN Celle.Attiva = 1 THEN PosizioneUdcCorrente.UDC ELSE NULL END ) ) AS CelleLibere,
|
|
|
|
ISNULL( MIN( CASE WHEN ec.particolare = @particolare THEN PosizioneUdcCorrente.DataRif ELSE NULL END ) , GETDATE( ))AS Oldest ,
|
|
ISNULL( MAX( CASE WHEN ec.particolare = @particolare THEN PosizioneUdcCorrente.DataRif ELSE NULL END ) , GETDATE( ))AS Newest
|
|
FROM AnagMag
|
|
INNER JOIN Blocchi
|
|
ON AnagMag.CodMag = Blocchi.CodMag AND AnagMag.CodCS = Blocchi.CodCS
|
|
INNER JOIN TipoCella
|
|
ON AnagMag.CodMag = TipoCella.CodMag AND AnagMag.CodCS = TipoCella.CodCS
|
|
INNER JOIN Celle
|
|
ON TipoCella.IdxTipoCella = Celle.IdxTipoCella AND Blocchi.IdxBlocco = Celle.IdxBlocco
|
|
LEFT OUTER JOIN PosizioneUdcCorrente
|
|
ON Celle.IdxCella = PosizioneUdcCorrente.IdxCella
|
|
LEFT OUTER JOIN ElencoCartellini ec ON PosizioneUdcCorrente.UDC = ec.UDC
|
|
|
|
WHERE AnagMag.CodCS = @CodCS AND ISNULL( AnagMag.Nascosto , 0 ) = 0 -- escludo mag. nascosti
|
|
GROUP BY AnagMag.CodCS ,
|
|
AnagMag.CodMag ,
|
|
AnagMag.DescMag ,
|
|
Blocchi.IdxBlocco ,
|
|
Blocchi.CodBlocco ,
|
|
Blocchi.DescBlocco ,
|
|
Blocchi.NumX ,
|
|
Blocchi.NumY ,
|
|
Blocchi.NumZ ,
|
|
TipoCella.Capienza
|
|
-- filtro solo i magazzini con il particolare richiesto
|
|
HAVING COUNT( CASE WHEN ec.particolare = @particolare THEN PosizioneUdcCorrente.UDC ELSE NULL END ) > 0
|
|
ORDER BY AnagMag.CodMag , Blocchi.CodBlocco;
|
|
|
|
END
|
|
|
|
/* OLD 17/06/2013 Problema della cella terra bloccata non più visibile e delle celle bloccate piene
|
|
SELECT AnagMag.CodCS, AnagMag.CodMag, AnagMag.DescMag, Blocchi.IdxBlocco, Blocchi.CodBlocco, Blocchi.DescBlocco,
|
|
TipoCella.Capienza * Blocchi.NumX * Blocchi.NumY * Blocchi.NumZ AS TotCelle,
|
|
TipoCella.Capienza * COUNT(DISTINCT Celle.IdxCella) AS CelleAttive,
|
|
COUNT(PosizioneUdcCorrente.UDC) AS CelleOccupate,
|
|
TipoCella.Capienza * COUNT(DISTINCT Celle.IdxCella) - COUNT(PosizioneUdcCorrente.UDC) AS CelleLibere,
|
|
ISNULL(MIN(PosizioneUdcCorrente.DataRif), GETDATE()) AS Oldest, ISNULL(MAX(PosizioneUdcCorrente.DataRif), GETDATE()) AS Newest
|
|
FROM TipoCella INNER JOIN
|
|
AnagMag INNER JOIN
|
|
Blocchi ON AnagMag.CodMag = Blocchi.CodMag AND AnagMag.CodCS = Blocchi.CodCS ON TipoCella.CodMag = AnagMag.CodMag AND
|
|
TipoCella.CodCS = AnagMag.CodCS LEFT OUTER JOIN
|
|
Celle ON TipoCella.IdxTipoCella = Celle.IdxTipoCella AND Blocchi.IdxBlocco = Celle.IdxBlocco LEFT OUTER JOIN
|
|
PosizioneUdcCorrente ON Celle.IdxCella = PosizioneUdcCorrente.IdxCella
|
|
WHERE (Celle.Attiva = 1) AND (AnagMag.CodCS = @CodCS) AND (ISNULL(AnagMag.Nascosto, 0) = 0)
|
|
GROUP BY AnagMag.CodCS, AnagMag.CodMag, AnagMag.DescMag, Blocchi.IdxBlocco, Blocchi.CodBlocco, Blocchi.DescBlocco,
|
|
Blocchi.NumX, Blocchi.NumY, Blocchi.NumZ,
|
|
TipoCella.Capienza
|
|
ORDER BY AnagMag.CodMag, Blocchi.CodBlocco
|
|
END
|
|
ELSE
|
|
BEGIN
|
|
SELECT AnagMag.CodCS, AnagMag.CodMag, AnagMag.DescMag, Blocchi.IdxBlocco, Blocchi.CodBlocco, Blocchi.DescBlocco,
|
|
TipoCella.Capienza * Blocchi.NumX * Blocchi.NumY * Blocchi.NumZ AS TotCelle,
|
|
TipoCella.Capienza * COUNT(DISTINCT Celle.IdxCella) AS CelleAttive,
|
|
COUNT(PosizioneUdcCorrente.UDC) AS CelleOccupate,
|
|
TipoCella.Capienza * COUNT(DISTINCT Celle.IdxCella) - COUNT(PosizioneUdcCorrente.UDC) AS CelleLibere,
|
|
ISNULL(MIN(PosizioneUdcCorrente.DataRif), GETDATE()) AS Oldest, ISNULL(MAX(PosizioneUdcCorrente.DataRif), GETDATE()) AS Newest
|
|
FROM TipoCella INNER JOIN
|
|
AnagMag INNER JOIN
|
|
Blocchi ON AnagMag.CodMag = Blocchi.CodMag AND AnagMag.CodCS = Blocchi.CodCS ON TipoCella.CodMag = AnagMag.CodMag AND
|
|
TipoCella.CodCS = AnagMag.CodCS LEFT OUTER JOIN
|
|
Celle ON TipoCella.IdxTipoCella = Celle.IdxTipoCella AND Blocchi.IdxBlocco = Celle.IdxBlocco LEFT OUTER JOIN
|
|
PosizioneUdcCorrente ON Celle.IdxCella = PosizioneUdcCorrente.IdxCella
|
|
INNER JOIN ElencoCartellini ec ON PosizioneUdcCorrente.UDC = ec.UDC
|
|
WHERE (Celle.Attiva = 1) AND (AnagMag.CodCS = @CodCS) AND (ISNULL(AnagMag.Nascosto, 0) = 0) AND ec.particolare = @particolare
|
|
GROUP BY AnagMag.CodCS, AnagMag.CodMag, AnagMag.DescMag, Blocchi.IdxBlocco, Blocchi.CodBlocco, Blocchi.DescBlocco,
|
|
Blocchi.NumX, Blocchi.NumY, Blocchi.NumZ,
|
|
TipoCella.Capienza
|
|
ORDER BY AnagMag.CodMag, Blocchi.CodBlocco
|
|
END
|
|
*/
|
|
|
|
RETURN
|
|
go
|
|
|
|
commit;
|
|
go
|
|
|
|
|
|
set xact_abort on;
|
|
go
|
|
|
|
begin transaction;
|
|
go
|
|
|
|
set ANSI_NULLS on;
|
|
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
|
|
*
|
|
****************************************/
|
|
alter 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 -- disattivata Redmine #46
|
|
(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_paretoPartByMagBloccoCodMagLog
|
|
*
|
|
* restituisce elenco particolari in logica pareto (quantità) per un dato blocco di magazzino ed un dato magazzino logico, aggregati (no stato)
|
|
*
|
|
* Steamware, S.E.L.
|
|
* mod: 2010.09.15
|
|
*
|
|
****************************************/
|
|
alter PROCEDURE stp_paretoPartByMagBloccoCodMagLog
|
|
(
|
|
@CodCS VARCHAR(2),
|
|
@CodMag VARCHAR(50),
|
|
@IdxBlocco INT,
|
|
@CodMagLog 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 -- disattivata Redmine #46
|
|
(AnagMag.CodCS = @CodCS) AND AnagMag.CodMag = @CodMag AND Blocchi.IdxBlocco = @IdxBlocco
|
|
AND ElencoCartellini.IdxPosizione = @CodMagLog
|
|
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
|
|
|
|
commit;
|
|
go
|
|
|
|
|
|
set xact_abort on;
|
|
go
|
|
|
|
begin transaction;
|
|
go
|
|
|
|
set ANSI_NULLS on;
|
|
go
|
|
|
|
/***************************************
|
|
* STORED stp_RLP_eliminaUdc
|
|
*
|
|
* elimina eventuali righe dato cod UDC (x scarico diretto)
|
|
*
|
|
* Steamware, S.E.L.
|
|
* mod: 2013.05.07
|
|
*
|
|
****************************************/
|
|
create PROCEDURE stp_RLP_eliminaUdc
|
|
(
|
|
@UDC NVARCHAR(50)
|
|
)
|
|
AS
|
|
|
|
DELETE FROM RigheListePrelievo
|
|
WHERE UDC = @UDC
|
|
|
|
RETURN
|
|
go
|
|
|
|
commit;
|
|
go
|
|
|
|
|
|
|
|
|
|
|
|
|
|
-- registro versione...
|
|
INSERT INTO [dbo].[LogUpdateDb] ([Versione],[Data]) VALUES(562, GETDATE())
|
|
GO
|
|
SELECT TOP 5 * FROM LogUpdateDb ORDER BY Versione DESC
|
|
GO
|