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á 1490 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado

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?.

  • Consultores
Postado

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 / Araraquara-SP

Araraquara - A era dos Trólebus

  • Moderadores
Postado
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_Transparent-02.png
 

 

  • Consultores
  • Solution
Postado

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 / Araraquara-SP

Araraquara - A era dos Trólebus

  • Moderadores
Postado

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_Transparent-02.png
 

 

  • 4 meses depois ...
  • Membros Pro
Postado

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?

assinatura.png

Postado

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;

Postado (editado)
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
  • 5 semanas depois ...
  • Membros Pro
Postado
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

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