Ir para conteúdo
  • Cadastre-se

dev botao

Nota Tecnica 2011/004


Gr@c@
  • Este tópico foi criado há 4649 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Moderadores

Duvida 1 - O ACBr_NFe2 já está preparado para atender a esta Nota Técnica? Já posso adaptar meu aplicativo para atender a esta Nota Técnica e colocar em produção?

Duvida 2 - 4.1-Validação NF-e/CPF do Destinatario

Se informado IE do Destinatario e CPF, haverá rejeição caso o mesmo não esteja cadastrado como contribuinte ou não haja vinculo entre a IE e o CPF.

Se tem CPF e não consta IE, atualmente estou informando ISENTO. Deverei informar a tag sem conteudo?

Duvida 3 - 4.2 - Validação do DV do cEAN e cEANTrib

qual a função do ACBr que irá validar o cEAN, seja ele de 8 digitos, 13 ou 14?

Em caso de cEAN ou cEANTrib não válido, devo informar a tag sem conteudo?

Link para o comentário
Compartilhar em outros sites

  • Moderadores

OI Gr@c@

Duvida 1 - (...) Já posso adaptar meu aplicativo para atender a esta Nota Técnica e colocar em produção?

Página 2 da NT2011.004

1. Resumo

Esta edição divulga atualização do leiaute da NF-e e das regras de validação da NF-e.

Prazos de entrada em vigência das alterações:

· Ambiente de homologação – 01/10/2011

· Ambiente de produção – 01/11/2011

Ainda não é possível colocar em produção pois o ambiente não está liberado, porém algumas mudanças que não afetem mudanças com respeito a schemas, você pode ir adaptando.

Duvida 2 - (...) Se tem CPF e não consta IE, atualmente estou informando ISENTO. Deverei informar a tag sem conteudo?

Se não consta IE, continue informando ISENTO.

Duvida 3 - Qual a função do ACBr que irá validar o cEAN, seja ele de 8 digitos, 13 ou 14?

Quando a isto, na minha opinião mesmo que o ACBr faça validação a respeito do EAN eu acho que é muito importante que qualquer sistema tenha uma rotina que valide o EAN no momento que o código é inserido no cadastro de produtos e não que você tenha esta informação somente no momento da emissão da NFe.

Então eu creio que você deverá desenvolver uma rotina caso ainda não tenha.

Eu não programo em Delphi, mas deve ter alguma função pronta para você usar. Caso não encontre abaixo segue a lógica do código EAN e você poderá desenvolver a rotina.

Exemplo com o código 7909010155591

7909010155591 - Código de barras

790901015_5_5_9_1 -> Ignore os "_" estão ai só para fixar a posição dos números abaixo

12345678910111213 -> Posicao dos números de 1 a 13.

Posiçoes pares (Soma os numeros das posicoes pares 2+4+6+8+10+12 e o resultado multiplica-se por 3

2->9

4->9

6->1

8->1

10->5

12->9

(9+9+1+1+5+9)=34 (soma das posicoes pares)

34*3=102 (resultado multiplicado por 3)

Posicoes impares (somar os números das posicoes impares. Não somar o número da posição 13, apenas até o 11)

1->7

3->0

5->0

7->0

9->5

11->5

(7+0+0+0+5+5)=17 (resultado das posicoes impares)

Somar resultado dos pares + resultado dos impares. Pegar o ultimo digito.

102+17=119 (ult. digito=9)

10-9=1 (digito verificador= 10 (dez) menos o ultimo digito). Se maior que 9 = 0

Aqui vc tem o verificador do número que é igual a 1, então agora basta ver se o número do digito é o mesmo que o resto da divisao do número por 10.

Exemplo:

7909010155591/10=790901015559,1

Para números que não alcance 13 posições, exemplo 12 ou 8 complete com 0 (zero) a esquerda e poderá usar a mesma fórmula.

Exemplo:

882224004060 -> acrescentando zero a esquerda = 0882224004060

088222400_4_0_6_0 (cod. barra)

12345678910111213 (posição dos números)

soma pares: (8+2+2+0+4+6)= 22 x 3 = 66

soma impares: (0+8+2+4+0+0) = 14 (sempre somar até a posição 11)

66+14=80 (ult. digito=0)

0882224004060/10=10 ou 0882224004060%10= 10

Se o resultado for maior que 9 = 0

Com a rotina você pegará 12 digitos do código digitado (ficará de fora o digito verificador), fará o calculo dele e acrescentará nos 12 digitos, ficando portanto com 13 e agora basta comparar o código gerado com o código digitado.


logoacbr.pngConheça o Portal do Projeto ACBr

Ajude o Projeto ACBr crescer - Assine o SAC ACBr
Assine um dos planos de longa duração do SAC ACBr, obtenha Descontos Especiais, Parcele no Cartão e ainda ganhe Brindes Exclusivos. Saiba mais aqui

Conheça o ACBrLib, o ACBr de forma nativa para qualquer linguagem de programação. Saiba mais aqui

 

 

 

 

Link para o comentário
Compartilhar em outros sites

  • Moderadores

Dando uma olhada no forum eu achei esta informação que o Daniel Simões postou

Hoje existe em ACBrUtil as funçoes:

function EAN13Valido( CodEAN13 : String ) : Boolean ;

function EAN13_DV( CodEAN13 : String ) : String ;

_________________

[]s Daniel

Conheça o Projeto ACBr - Automaçao Comercial Brasil

DJSystem a Loja Patrocinadora do ACBr

Então veja se você localiza estas funções, caso vc programe em Delphi estará fácil de usa-las.


logoacbr.pngConheça o Portal do Projeto ACBr

Ajude o Projeto ACBr crescer - Assine o SAC ACBr
Assine um dos planos de longa duração do SAC ACBr, obtenha Descontos Especiais, Parcele no Cartão e ainda ganhe Brindes Exclusivos. Saiba mais aqui

Conheça o ACBrLib, o ACBr de forma nativa para qualquer linguagem de programação. Saiba mais aqui

 

 

 

 

Link para o comentário
Compartilhar em outros sites

  • Moderadores

Oi Wagner!

Amigo Kiko você programa em que linguagem ???

Programo em Visual Objects Versão 2.8


logoacbr.pngConheça o Portal do Projeto ACBr

Ajude o Projeto ACBr crescer - Assine o SAC ACBr
Assine um dos planos de longa duração do SAC ACBr, obtenha Descontos Especiais, Parcele no Cartão e ainda ganhe Brindes Exclusivos. Saiba mais aqui

Conheça o ACBrLib, o ACBr de forma nativa para qualquer linguagem de programação. Saiba mais aqui

 

 

 

 

Link para o comentário
Compartilhar em outros sites

  • Moderadores

Wagner, enviei por MP, se não receber a mensagem ou tiver dificuldades para encontra-la, me avise.


logoacbr.pngConheça o Portal do Projeto ACBr

Ajude o Projeto ACBr crescer - Assine o SAC ACBr
Assine um dos planos de longa duração do SAC ACBr, obtenha Descontos Especiais, Parcele no Cartão e ainda ganhe Brindes Exclusivos. Saiba mais aqui

Conheça o ACBrLib, o ACBr de forma nativa para qualquer linguagem de programação. Saiba mais aqui

 

 

 

 

Link para o comentário
Compartilhar em outros sites

O ideal é colocar um CHECK no próprio banco de dados.

Exemplo:

CREATE FUNCTION ean13_gtin14_valido(codigo) RETURNS boolean

...

codigo que checa o DV

...

CREATE TABLE codigo_barras (

cod_barras bigint primary key,

cod_interno integer not null,

CHECK (ean13_gtin14_valido(cod_barras)),

FOREIGN KEY (cod_interno) REFERENCES produto (codigo)

);

Alexsander da Rosa

Rednaxel Informática

http://rednaxel.com

Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 4649 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.