Ir para conteúdo
  • Cadastre-se

dev botao

Validação GTIN


Ver Solução Respondido por Italo Giurizzato Junior,
  • Este tópico foi criado há 1248 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Bom dia!. No fonte pcnNFeW , na linha  830 temos uma validação comentada: 
 // Implementação futura - regra de validação somente em 01/12/2018
//  if (NFe.infNFe.Versao >= 4) and (trim(nfe.Det.Prod.cEAN) = '') then
//    nfe.Det.Prod.cEAN := SEMGTIN;
 

esta validação esta em vigor desde 01/12/2018. Toda vez que atualizo tenho que descomentar essa validação. Tem algum estado outra justificativa para ainda estar comentado?.

Link para o comentário
Compartilhar em outros sites

  • Consultores

Bom dia Joas,

No primeiro momento essas linhas foram comentadas pois a regra não tinha sido implementada.

E após a sua implementação muitos desenvolvedores colocaram essa condição em suas rotinas que alimentam o componente.

Temos dois caminhos a seguir:

1. Na rotina que alimenta o componente, informar os dados corretos como por exemplo a questão do GTIN, que ao ler o código do cadastro do produto alimentar o componente com o código lido ou na sua ausência alimentar com o literal "SEMGTIN" (que ao meu ver é o mais correto).

2. Ou deixar por conta do componente fazer as devidas correções que as vezes podem não ser a mais correta.

Pois esse IF que esta comentado se for descomentado ele vai gerar o literal "SEMGTIN" na tag cEAN caso esse campo no componente não venha a ser alimentado.

A nota talvez seja autorizada, mas e se o produto realmente tem um código?

  • Curtir 1
Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

  • Moderadores
6 minutos atrás, Joas Vilas Boas Fernandes disse:

Entendi. Nome codigo esta assim:  
if (Length(oItemProduto.Prod.cEAN) = 0) then
      oItemProduto.Prod.cEAN := EmptyStr;

ai na pcnNFeW coloca a literal 'SEMGTIN'. Mas seu colocar a literal 'SEMGTIN' em vez de EmptyStr vai resolver.

Isso mesmo Joas

  • Curtir 1
Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Black-02.png
 

 

Link para o comentário
Compartilhar em outros sites

  • Consultores
  • Solution

Boa tarde Joas,

Vou descomentar as linhas e enviar para o repositório para que o pcnNFeW continue compatível com a versão anterior a 4 da NF-e.

Pois na versão 3.10 se o produto não possuía o código tínhamos que atribuir uma string vazia a cEAN.

Mas o recomendado é sempre alimentar o componente com os dados corretos.

  • Curtir 1
Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

  • Moderadores

tá e vamos combinar que se ocorrer erros devido a falta de atenção por achar que o componente é quem deve de saber que o produto tem gtin ninguém reclama. ;-)

10 horas atrás, GAC Sistemas disse:

vamos combinar, ninguém mais "rélah" nessas linhas ;)

 

  • Obrigado 1
Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Black-02.png
 

 

Link para o comentário
Compartilhar em outros sites

  • 4 meses depois ...
  • Membros Pro

Pesquisando encontrei o seguinte endereço:

https://www.gs1.org/standards/id-keys/company-prefix

Nele está definido como prefixos válidos para o Brasil, 789 - 790.

Investiguei o código do componente e não encontrei nenhum tipo de validação.

Existe algum parâmetro relativo à origem da mercadoria?

Criei uma validação em relação ao prefixo, resolveu.

assinatura.png

Link para o comentário
Compartilhar em outros sites

Bom dia.

Você pode validar o prefixo com o componente AcbrValidador do acbr: 

   ACBrValidador1.Documento:=SEU_EAN;
   ACBrValidador1.TipoDocto := docPrefixoGTIN;

   if not ACBrValidador1.Validar then
      SEU_EAN:='SEM GTIN';
e também pode validar o EAN todo com o    ACBrValidador1.TipoDocto := docGTIN;

Link para o comentário
Compartilhar em outros sites

3 horas atrás, freitagnx disse:

Prezados!

O que fazer quando temos um código de barras como este: '7988926061097'.

Passou pela validação, porém o retorno na validação da NFC-e é de prefixo inválido?

Qual a estratégia que vcs têm usado, ou recomendam?

Você pode validar antes de enviar: (só pra constar acho que erraram ao digitar "789" para "798")

 sErro := ACBrValidador.ValidarPrefixoGTIN('7988926061097');
 If sErro <> '' Then
  ShowMessage(sErro);

 

915545992_Semttulo.png.629cda903b0ef7f655399491008c3ae2.png

Editado por datilas
Link para o comentário
Compartilhar em outros sites

  • 5 semanas depois ...
  • Membros Pro
Em 29/09/2020 at 11:20, datilas disse:

Você pode validar antes de enviar: (só pra constar acho que erraram ao digitar "789" para "798")


 sErro := ACBrValidador.ValidarPrefixoGTIN('7988926061097');
 If sErro <> '' Then
  ShowMessage(sErro);

 

915545992_Semttulo.png.629cda903b0ef7f655399491008c3ae2.png

Justamente.
Depois que compreendi o funcionamento fui observar o código do componente com um pouco mais de atenção e descobri que está tudo lá.

Obrigado pela reposta.

assinatura.png

Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 1248 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.