** Função SQL…

** Função SQL Server para gerar EAN13 
ALTER FUNCTION [dbo].[UFN_GeraCodigoEAN](@ID VARCHAR(20)) 
RETURNS VARCHAR(20) AS 
BEGIN    
  DECLARE @Retorno VARCHAR(20), @Digito CHAR(1)    

  DECLARE @chk_digit int, @chk int

  DECLARE @num TABLE (num int)

  SELECT @ID = RTRIM(LTRIM(@ID))

  SELECT @ID = '999'
               + ISNULL(REPLICATE('0', 9 - len(ISNULL(@ID ,0))), '') 
               + @ID

   INSERT INTO @num    
   SELECT 1 UNION ALL 
   SELECT 2 UNION ALL 
   SELECT 3 UNION ALL 
   SELECT 4 UNION ALL  
   SELECT 5 UNION ALL 
   SELECT 6 UNION ALL
   SELECT 7 UNION ALL
   SELECT 8 UNION ALL
   SELECT 9 UNION ALL
   SELECT 10 UNION ALL
   SELECT 11 UNION ALL
   SELECT 12

   SELECT @chk_digit = SUM(
          CONVERT(int, SUBSTRING(@ID, LEN(@ID) - num + 1, 1)) 
          * CASE WHEN num % 2 = 1 THEN 3 
            ELSE 1 END)
   FROM  @num    
   WHERE num <= LEN(@ID)

   SELECT @chk_digit = (10 - (@chk_digit % 10)) % 10
   
   SELECT @Digito=CHAR(ASCII('0') + @chk_digit)
   
   SELECT @Retorno=@ID + @Digito

   RETURN @Retorno 
END
  1. Nenhum comentário ainda.
  1. No trackbacks yet.

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: