72 lines
2.2 KiB
Transact-SQL
72 lines
2.2 KiB
Transact-SQL
|
|
|
|
|
|
|
|
-- =============================================
|
|
-- Author: Steamware
|
|
-- Create date: 2014-01-30
|
|
-- Description: Ritorna l'imballo e i dati associati ( sostituita da stored ma lasciata nel caso di query on-line )
|
|
-- =============================================
|
|
CREATE FUNCTION [dbo].[f_getDataCodPackag]
|
|
(
|
|
@CodItem NVARCHAR(50),
|
|
@CodClient NVARCHAR(50)
|
|
)
|
|
RETURNS
|
|
@Table TABLE
|
|
(
|
|
[CodItem] [nvarchar](50) NOT NULL,
|
|
[CodClient] [nvarchar](50) NOT NULL,
|
|
[CodPackag] [nvarchar](50) NOT NULL,
|
|
[TotQta] [decimal](18, 3) NOT NULL,
|
|
[Weight] [decimal](18, 6) NOT NULL,
|
|
[Tare] [decimal](18, 6) NOT NULL,
|
|
[NumImb] [decimal](9, 6) NOT NULL,
|
|
[Durata] [decimal](18, 6) NOT NULL,
|
|
[LivPackag] [nvarchar](50) NOT NULL,
|
|
[LivPackagDet] [nvarchar](50) NOT NULL
|
|
)
|
|
AS
|
|
BEGIN
|
|
|
|
DECLARE @output NVARCHAR(50)
|
|
DECLARE @trovati INT = 0
|
|
-- setup iniziale: imposto a zero...
|
|
SET @output = '0'
|
|
|
|
-- SELECT @trovati = COUNT(*) FROM Package2ItemClient WHERE CodClient = @CodClient AND CodItem = @CodItem
|
|
--IF(@trovati > 0)
|
|
|
|
IF EXISTS ( SELECT * FROM dbo.Package2ItemClient WHERE CodClient = @CodClient AND CodItem = @CodItem)
|
|
-- primo tentativo: cerco il package dato SIA cliente che ITEM
|
|
BEGIN
|
|
INSERT @Table
|
|
SELECT TOP 1 CodItem, CodClient , CodPackag, TotQta, Weight, Tare, NumImb, Durata
|
|
,'Item-Client-Package', @CodItem + '-' + @CodClient + '-' + CodPackag
|
|
FROM dbo.Package2ItemClient WHERE CodClient = @CodClient AND CodItem = @CodItem
|
|
ORDER BY TotQta DESC
|
|
END
|
|
ELSE IF EXISTS ( SELECT * FROM Package2Item WHERE CodItem = @CodItem )
|
|
-- secondo tentativo: se non lo trovo cerco per SOLO ITEM
|
|
BEGIN
|
|
INSERT @Table
|
|
SELECT TOP 1 CodItem, 'ND' AS CodClient , CodPackag, TotQta, Weight, Tare, NumImb, Durata
|
|
,'Item-Package', @CodItem + '-' + CodPackag
|
|
FROM dbo.Package2Item WHERE CodItem = @CodItem
|
|
ORDER BY TotQta DESC
|
|
END
|
|
ELSE
|
|
-- secondo tentativo: se non lo trovo cerco per SOLO ITEM
|
|
BEGIN
|
|
INSERT @Table
|
|
SELECT TOP 1 'ND', 'ND' AS CodClient , CodPackag, TotQta, Weight, Tare, NumImb, Durata
|
|
,'Package', CodPackag
|
|
FROM dbo.Package2 WHERE CodPackag = 0
|
|
END
|
|
|
|
RETURN
|
|
END
|
|
|
|
|
|
|