Clipper On Line • Ver Tópico - Atenção "SEM GTIN" na entrada dos produtos.

Atenção "SEM GTIN" na entrada dos produtos.

Discussão sobre desenvolvimento de software para atender as exigências da legislação fiscal e tributária (ECF, TEF, SINTEGRA, NF-e, ECD, EFD, etc.)

Moderador: Moderadores

 

Atenção "SEM GTIN" na entrada dos produtos.

Mensagempor JoséQuintas » 24 Set 2018 22:57

Quanto mais se procura, pior....
No perguntas e respostas, Fazenda SP.

"GTIN tributável é a unidade utilizada pra calcular o ICMS Substituição Tributária"

"como por exemplo a unidade de venda do varejo" - não significa que seja exatamente ela

gtin.png
José M. C. Quintas
Harbour 3.4, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, hbnetio, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
Avatar de usuário

JoséQuintas
Colaborador

Colaborador
 
Mensagens: 10582
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 6 vezes
Mens.Curtidas: 676 vezes

Atenção "SEM GTIN" na entrada dos produtos.

Mensagempor hazael » 27 Set 2018 10:56

Ao meu entender isso não mudou nada no que eu havia entendido anteriormente.
Inclusive o exemplo fala da caixa com 9 unidades (provavelmente GTIN-14) e a unidade tributável (provavelmente GTIN-13)
Harbour | GTWVT | MingW | Visual Studio Code
Avatar de usuário

hazael
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 492
Data de registro: 27 Nov 2016 12:59
Curtiu: 9 vezes
Mens.Curtidas: 36 vezes

Atenção "SEM GTIN" na entrada dos produtos.

Mensagempor JoséQuintas » 27 Set 2018 11:03

Sim, até aí tudo bem.
Mas a dúvida agora é sobre a quantidade.

1 caixa com 24 latas

Se a unidade comercial é 1 caixa, e a unidade tributável é uma lata...
No meu entender, 1 caixa = 24 latas, então 1 unidade comercial = 24 unidades tributáveis
Mas nessa nota que indiquei, a quantidade é 1 nos dois, mesmo sendo unidade diferente.
José M. C. Quintas
Harbour 3.4, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, hbnetio, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
Avatar de usuário

JoséQuintas
Colaborador

Colaborador
 
Mensagens: 10582
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 6 vezes
Mens.Curtidas: 676 vezes

Atenção "SEM GTIN" na entrada dos produtos.

Mensagempor rochinha » 27 Out 2018 15:04

Amiguinhos,

jairo maia
A função ValidaGTIN() permite validar EAN13?
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para fivolution@hotmail.com. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Avatar de usuário

rochinha
Membro Master

Membro Master
 
Mensagens: 4169
Data de registro: 18 Ago 2003 20:43
Cidade/Estado: São Paulo - Brasil
Curtiu: 468 vezes
Mens.Curtidas: 180 vezes

Atenção "SEM GTIN" na entrada dos produtos.

Mensagempor Jairo Maia » 27 Out 2018 19:35

Olá Rochinha,

Sim. Valida todos os GTIN´s. EAN8, EAN12, EAN13 e EAN14.
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Avatar de usuário

Jairo Maia
Colaborador

Colaborador
 
Mensagens: 2361
Data de registro: 16 Ago 2010 13:46
Cidade/Estado: Campinas-SP
Curtiu: 274 vezes
Mens.Curtidas: 249 vezes

Atenção "SEM GTIN" na entrada dos produtos.

Mensagempor JSystem » 14 Mai 2019 18:30

Olá Jairo,

Acerca da função ValidaGtin(), estou adaptando ela para o clipper, gostaria de saber como poderia substituir essa função Hb_NToS() ?

Grato,
Josadac
JSystem
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 115
Data de registro: 21 Jan 2010 20:10
Cidade/Estado: Uberaba
Curtiu: 1 vez
Mens.Curtidas: 0 vez

Atenção "SEM GTIN" na entrada dos produtos.

Mensagempor Jairo Maia » 14 Mai 2019 19:07

Olá JSystem,

Em Clipper use: LTrim( Str( nVar ) )
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Avatar de usuário

Jairo Maia
Colaborador

Colaborador
 
Mensagens: 2361
Data de registro: 16 Ago 2010 13:46
Cidade/Estado: Campinas-SP
Curtiu: 274 vezes
Mens.Curtidas: 249 vezes

Atenção "SEM GTIN" na entrada dos produtos.

Mensagempor JSystem » 14 Mai 2019 21:46

Ok Jairo,

Obrigado pelo retorno.
JSystem
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 115
Data de registro: 21 Jan 2010 20:10
Cidade/Estado: Uberaba
Curtiu: 1 vez
Mens.Curtidas: 0 vez

Atenção "SEM GTIN" na entrada dos produtos.

Mensagempor JSystem » 14 Mai 2019 23:42

Jairo,

Fiz as mudanças, porém não deu certo, segue abaixo o código, percebi que retorna .T. qualquer numero que digitar, desde que o último dígito seja 0.

Func ValidaGTIN( cCodGtin )

Local nPosi       := 0
Local nDigito     := 0
Local nSomatoria  := 0
Local aAlgoritmo  := {}
Local lRetorno    := .F.

aAlgoritmo := { 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3 }

cCodGtin := AllTrim( str(cCodGtin,14) )

If ( Val( cCodGtin ) <= 0 ) .Or. !( StrZero( Len( cCodGtin ), 2 ) $ [08,12,13,14] )
    Return lRetorno
Else
    nPosi := ( ( 14 - Len( cCodGtin ) ) + 1 )
EndIf

For x := 1 To ( Len( cCodGtin ) - 1 )
     nSomatoria += ( Val( SubStr( cCodGtin, x, 1 ) ) * aAlgoritmo[ nPosi ] )
     nPosi++
Next

// nDigito := Val( Right( Hb_NToS( nSomatoria ), 1 ) )
nDigito := Val( Right( LTrim( Str(nSomatoria,1) ), 1 ) )
If nDigito != 0
    nDigito := ( 10 - nDigito )
EndIf

lRetorno := ( LTrim( Str(nDigito,1) ) = Right( cCodGtin, 1 ) )

Return lRetorno


Segue três códigos de barras válidos de produtos que consegui emitir NFe, caso queira testar:

7898584070440 - Apenas este retorna .T.
7898584070457
7898584070464

Se puder me ajudar ficarei grato.

Att.
JSystem
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 115
Data de registro: 21 Jan 2010 20:10
Cidade/Estado: Uberaba
Curtiu: 1 vez
Mens.Curtidas: 0 vez

Atenção "SEM GTIN" na entrada dos produtos.

Mensagempor Jairo Maia » 15 Mai 2019 09:12

Olá JSystem,

Você fez confusão ao alterar as linhas 11 e 25 da função e tirou a funcionalidade dela. Pela linha 11, percebe-se que você envia o GTIN numérico, e não caractere. Alterei a função para tratar se envia numérico ou caractere, e está compatível com Clipper. Use essa função:
Func ValidaGTIN( cCodGtin )

Local nPosi       := 0
Local nDigito     := 0
Local nSomatoria  := 0
Local aAlgoritmo  := {}
Local lRetorno    := .F.

aAlgoritmo := { 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3 }

If ValType( cCodGtin ) = "N"
  cCodGtin := AllTrim( Str( cCodGtin ) )
Else
  cCodGtin := AllTrim( cCodGtin )
EndIf

If ( Val( cCodGtin ) <= 0 ) .Or. !( StrZero( Len( cCodGtin ), 2 ) $ [08,12,13,14] )
    Return lRetorno
Else
    nPosi := ( ( 14 - Len( cCodGtin ) ) + 1 )
EndIf

For x := 1 To ( Len( cCodGtin ) - 1 )
     nSomatoria += ( Val( SubStr( cCodGtin, x, 1 ) ) * aAlgoritmo[ nPosi ] )
     nPosi++
Next

nDigito := Val( Right( LTrim( Str( nSomatoria ) ), 1 ) )
If nDigito != 0
    nDigito := ( 10 - nDigito )
EndIf

lRetorno := ( LTrim( Str(nDigito,1) ) = Right( cCodGtin, 1 ) )

Return lRetorno
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Avatar de usuário

Jairo Maia
Colaborador

Colaborador
 
Mensagens: 2361
Data de registro: 16 Ago 2010 13:46
Cidade/Estado: Campinas-SP
Curtiu: 274 vezes
Mens.Curtidas: 249 vezes

Atenção "SEM GTIN" na entrada dos produtos.

Mensagempor JSystem » 15 Mai 2019 18:56

Olá Jairo,

Novamente te dando trabalho, vai tendo um pouco de paciência rsrs.

Substitui a função, porém a falha continua, retornando .T. apenas para os códigos de barras terminados com o número 0, inclusive testei o seguinte, 9999999999990, retornou .T.
JSystem
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 115
Data de registro: 21 Jan 2010 20:10
Cidade/Estado: Uberaba
Curtiu: 1 vez
Mens.Curtidas: 0 vez

Atenção "SEM GTIN" na entrada dos produtos.

Mensagempor JSystem » 16 Mai 2019 08:41

Olá Pessoal,

Até que o Jairo atenha condição de me retornar, alguém mais utiliza a função e pode me orientar acerca dessa falha ?

Grato.
JSystem
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 115
Data de registro: 21 Jan 2010 20:10
Cidade/Estado: Uberaba
Curtiu: 1 vez
Mens.Curtidas: 0 vez

Atenção "SEM GTIN" na entrada dos produtos.

Mensagempor Jairo Maia » 16 Mai 2019 10:06

Olá JSystem,

Sua primeira alteração realmente estava com problema, mas fiz as correções e funcionou corretamente. Não vejo razão por ser Clipper e estar dando o problema, acho que você está fazendo algo errado, e ai só você para saber mesmo. Compile o exemplo abaixo em Clipper e veja que resultado retorna:
CLS
?
? ValidaGTIN( Val( "7898584070440" ) )
? ValidaGTIN( Val( "7898584070457" ) )
? ValidaGTIN( Val( "7898584070464" ) )
?

Func ValidaGTIN( cCodGtin )

Local nPosi       := 0
Local nDigito     := 0
Local nSomatoria  := 0
Local aAlgoritmo  := {}
Local lRetorno    := .F.

aAlgoritmo := { 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3 }

If ValType( cCodGtin ) = "N"
  cCodGtin := AllTrim( Str( cCodGtin ) )
Else
  cCodGtin := AllTrim( cCodGtin )
EndIf

If ( Val( cCodGtin ) <= 0 ) .Or. !( StrZero( Len( cCodGtin ), 2 ) $ [08,12,13,14] )
    Return lRetorno
Else
    nPosi := ( ( 14 - Len( cCodGtin ) ) + 1 )
EndIf

For x := 1 To ( Len( cCodGtin ) - 1 )
     nSomatoria += ( Val( SubStr( cCodGtin, x, 1 ) ) * aAlgoritmo[ nPosi ] )
     nPosi++
Next

nDigito := Val( Right( LTrim( Str( nSomatoria ) ), 1 ) )
If nDigito != 0
    nDigito := ( 10 - nDigito )
EndIf

lRetorno := ( LTrim( Str(nDigito,1) ) = Right( cCodGtin, 1 ) )

Return lRetorno
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Avatar de usuário

Jairo Maia
Colaborador

Colaborador
 
Mensagens: 2361
Data de registro: 16 Ago 2010 13:46
Cidade/Estado: Campinas-SP
Curtiu: 274 vezes
Mens.Curtidas: 249 vezes

Atenção "SEM GTIN" na entrada dos produtos.

Mensagempor JSystem » 17 Mai 2019 22:40

Olá Jairo,

Depois de bastante tempo e apanhar bastante, descobri que o problema era na variável de ambiente, set fixed on, foi só desativar funcionou perfeito.

Obrigado pela atenção e paciência.

Grato.
JSystem
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 115
Data de registro: 21 Jan 2010 20:10
Cidade/Estado: Uberaba
Curtiu: 1 vez
Mens.Curtidas: 0 vez

Anterior



Retornar para Legislação Fiscal e Tributária

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 2 visitantes


Faça uma doação para o forum
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro