Files
C2P/C2P_Project/dbo/Functions/f_getDataCodPackag.sql
2014-07-18 16:58:50 +02:00

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