﻿-- select a=[C6MartPeriodico].[getDESPRODCAT]('04863590',NULL)
CREATE FUNCTION [C6MartPeriodico].[getDESPRODCAT] 
(
	@CODPROD as varchar(8),
	@SUBPROD as varchar(5) 
)
RETURNS varchar(128)
AS
BEGIN
DECLARE @DESPROD as varchar(128)
DECLARE @conta as smallint 
SET @DESPROD = ''
if @SUBPROD is null 
    BEGIN
    SELECT @conta = count(nomeProdotto) FROM c6StagingPeriodico.RP_CatalogoProdotti
WHERE CODINTERNO = @CODPROD AND CODSOTTOPRODOTTO IS NULL AND visibilita = 1   
IF @conta = 1       
		SELECT  @DESPROD  = nomeProdotto   FROM c6StagingPeriodico.RP_CatalogoProdotti
		WHERE CODINTERNO = @CODPROD AND CODSOTTOPRODOTTO IS NULL AND visibilita = 1  
ELSE
	BEGIN
		SELECT @conta = count(nomeProdotto) FROM c6StagingPeriodico.RP_CatalogoProdotti
		WHERE CODINTERNO = @CODPROD AND CODSOTTOPRODOTTO = @CODPROD AND visibilita = 1   
		IF @conta = 1       
			SELECT  @DESPROD  = nomeProdotto   FROM c6StagingPeriodico.RP_CatalogoProdotti
			WHERE CODINTERNO = @CODPROD AND CODSOTTOPRODOTTO = @CODPROD AND visibilita = 1 
			ELSE
		BEGIN 
			SELECT @conta = count(nomeProdotto) FROM c6StagingPeriodico.RP_CatalogoProdotti
			WHERE CODINTERNO = @CODPROD AND CODSOTTOPRODOTTO IS NULL
			IF @conta = 1       
				SELECT  @DESPROD  = nomeProdotto   FROM c6StagingPeriodico.RP_CatalogoProdotti
				WHERE CODINTERNO = @CODPROD AND CODSOTTOPRODOTTO IS NULL 
			ELSE
				BEGIN
					SELECT @conta = count(nomeProdotto) FROM c6StagingPeriodico.RP_CatalogoProdotti
					WHERE CODINTERNO = @CODPROD AND CODSOTTOPRODOTTO = @CODPROD     
					IF @conta = 1       
						SELECT  @DESPROD  = nomeProdotto   FROM c6StagingPeriodico.RP_CatalogoProdotti
						WHERE CODINTERNO = @CODPROD AND CODSOTTOPRODOTTO = @CODPROD   
				END  
		END 
	END  
    END
ELSE
SELECT @conta = count(nomeProdotto) FROM c6StagingPeriodico.RP_CatalogoProdotti
WHERE CODINTERNO = @CODPROD AND CODSOTTOPRODOTTO = @SUBPROD AND visibilita = 1   
IF @conta = 1       
		SELECT  @DESPROD  = nomeProdotto   FROM c6StagingPeriodico.RP_CatalogoProdotti
		WHERE CODINTERNO = @CODPROD AND CODSOTTOPRODOTTO = @SUBPROD AND visibilita = 1  
ELSE
	BEGIN
		SELECT @conta = count(nomeProdotto) FROM c6StagingPeriodico.RP_CatalogoProdotti
		WHERE CODINTERNO = @CODPROD AND CODSOTTOPRODOTTO = @CODPROD AND visibilita = 1   
		IF @conta = 1       
			SELECT  @DESPROD  = nomeProdotto   FROM c6StagingPeriodico.RP_CatalogoProdotti
			WHERE CODINTERNO = @CODPROD AND CODSOTTOPRODOTTO = @CODPROD AND visibilita = 1 
			ELSE
		BEGIN 
			SELECT @conta = count(nomeProdotto) FROM c6StagingPeriodico.RP_CatalogoProdotti
			WHERE CODINTERNO = @CODPROD AND CODSOTTOPRODOTTO = @SUBPROD
			IF @conta = 1       
				SELECT  @DESPROD  = nomeProdotto   FROM c6StagingPeriodico.RP_CatalogoProdotti
				WHERE CODINTERNO = @CODPROD AND CODSOTTOPRODOTTO = @SUBPROD  
			ELSE
				BEGIN
					SELECT @conta = count(nomeProdotto) FROM c6StagingPeriodico.RP_CatalogoProdotti
					WHERE CODINTERNO = @CODPROD AND CODSOTTOPRODOTTO = @CODPROD     
					IF @conta = 1       
						SELECT  @DESPROD  = nomeProdotto   FROM c6StagingPeriodico.RP_CatalogoProdotti
						WHERE CODINTERNO = @CODPROD AND CODSOTTOPRODOTTO = @CODPROD   
					ELSE
						BEGIN
						    IF @SUBPROD in ('L191', 'L192','V301','V302')
						        BEGIN
								SELECT @conta = count(nomeProdotto) FROM c6StagingPeriodico.RP_CatalogoProdotti
								WHERE CODINTERNO = @CODPROD AND CODSOTTOPRODOTTO = @SUBPROD AND CODISIN IS NULL  
								IF @conta = 1       
									SELECT @DESPROD  = nomeProdotto FROM c6StagingPeriodico.RP_CatalogoProdotti
									WHERE CODINTERNO = @CODPROD AND CODSOTTOPRODOTTO = @SUBPROD AND CODISIN IS NULL   
						        END
						END  						
				END  
		END 
	END  
RETURN @DESPROD
END