Files
C2P/C2P_Project/dbo/Functions/f_getDataCodPackag.sql
T
2014-02-18 18:01:35 +01:00

70 lines
2.0 KiB
Transact-SQL

-- =============================================
-- Author: Steamware
-- Create date: 2014-01-30
-- Description: Ritorna l'imballo e i dati associati
-- =============================================
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)
-- 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 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 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