Validar Inscrição Estadual BA

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

Avatar do usuário
rosalvo rosa
Usuário Nível 3
Usuário Nível 3
Mensagens: 156
Registrado em: 10 Jan 2006 19:21
Localização: Curitiba - PR

Validar Inscrição Estadual BA

Mensagem por rosalvo rosa »

Bom dia amigos do Forum.

A Inscrição estadual da BA foi alterada ?

Até 2012 eu estava emitindo NFe para clientes da BA que tinham IE com a máscara "999999-99", e agora
consultando o SINTEGRA da BA, vejo que mudou a IE para "999.999.999".

Alguém tem o verificador para a nova inscrição ?


Desde já agradeço.

Att

Rosalvo
Maurício Elias
Usuário Nível 3
Usuário Nível 3
Mensagens: 304
Registrado em: 12 Mai 2005 08:48

Validar Inscrição Estadual BA

Mensagem por Maurício Elias »

Bom dia companheiro.
Me passa uma ou mais IE válidas prá eu testar no meu validador, ai eu te passo ele.
Abraços.
_______
Maurício
Avatar do usuário
rosalvo rosa
Usuário Nível 3
Usuário Nível 3
Mensagens: 156
Registrado em: 10 Jan 2006 19:21
Localização: Curitiba - PR

Validar Inscrição Estadual BA

Mensagem por rosalvo rosa »

Ok.

Ex. :
IE antiga : 542.348-31 , hoje ela é : 054.234.831

Essa eu só tenho a atual : 106.636.242

Veja se vc consegue validar.

Rosalvo
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

Validar Inscrição Estadual BA

Mensagem por Toledo »

Se não errei nada, a função seria a seguinte:

Código: Selecionar todos

Function ValidaIE_BA(cIE)
local cStr := Left(cIE,7)
local nMod := if(Left(cIE,1) $ "679", 11, 10)
local nTot := 0
local i,k
*
for i := 1 to 2
    for k := Len(cStr) to 1 step -1
        nTot += Val(SubStr(cStr,k,1)) * ((8+i)-k)
    next
    cStr += if(nTot%nMod < nMod-9, "0", Str(nMod-(nTot%nMod),1))
    nTot := 0
next
return SubStr(cStr,9,1)+SubStr(cStr,8,1) == SubStr(cIE,8,2)
http://www.sefaz.ba.gov.br/contribuinte ... culodv.htm

Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Avatar do usuário
zazibr
Usuário Nível 2
Usuário Nível 2
Mensagens: 72
Registrado em: 11 Set 2004 17:07
Localização: Campo Grande/MS

Validar Inscrição Estadual BA

Mensagem por zazibr »

que coisa doida ... a dll do sintegra tem que mudar que coisa será que vao mudar isso ?

pois a dll da erro na validação dessa nova inscrição estadual do estado da bahia


aqui funciona https://www.sefaz.rs.gov.br/NFE/NFE-CCC.aspx

e aqui nao funciona http://www.sintegra.gov.br/download.html#dll

ta certo que o maldito site foi (atualizado em 29.12.2005)


que coisa de doido

sorte que nao atendo esse estado
lucimauro
Usuário Nível 3
Usuário Nível 3
Mensagens: 465
Registrado em: 21 Set 2004 21:02
Localização: Sobral-CE

Validar Inscrição Estadual BA

Mensagem por lucimauro »

Estou usando a dll do sintegra, todas velidarão.
Maurício Elias
Usuário Nível 3
Usuário Nível 3
Mensagens: 304
Registrado em: 12 Mai 2005 08:48

Validar Inscrição Estadual BA

Mensagem por Maurício Elias »

No meu validador tb dão erros essas duas novas inscrições.
Mas eu não travo o usuário não, apenas dou o alerta e continuo...
Abraços.
_______
Maurício
Avatar do usuário
rosalvo rosa
Usuário Nível 3
Usuário Nível 3
Mensagens: 156
Registrado em: 10 Jan 2006 19:21
Localização: Curitiba - PR

Validar Inscrição Estadual BA

Mensagem por rosalvo rosa »

Testei a funçao do mestre Toledo e deu certo. Nas duas opções, tanto na velha como na atual.

Obrigado Toledo.

Rosalvo
Avatar do usuário
janio
Colaborador
Colaborador
Mensagens: 1846
Registrado em: 06 Jul 2004 07:43
Localização: UBAJARA - CE

Validar Inscrição Estadual BA

Mensagem por janio »

Uma pequena correção na função q o Toledo postou.

Substituir

Código: Selecionar todos

local nMod := if(Left(cIE,1) $ "679", 11, 10)
por

Código: Selecionar todos

local nMod := if( SubStr(cIE,2,1) $ "679", 11, 10)
fui...
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Validar Inscrição Estadual BA

Mensagem por JoséQuintas »

Vou ter que atualizar na SefazClass.
À primeira vista, é o mesmo cálculo anterior, mas agora duas vezes.
E ao aumentar um dígito, ao invés de analisar o primeiro vai ser o segundo, continua o oitavo de trás pra frente.

Pra quem não sabia, nem só de NFE trata a SefazClass.... rs

Mas fica a dúvida: os códigos anteriores valem até a troca, e por isso esses dois ainda valem apesar de não funcionar no cálculo novo?
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Validar Inscrição Estadual BA

Mensagem por JoséQuintas »

Acabo de consultar no site da Bahia, as duas inscrições são válidas, a velha e a nova.
Então precisará mais uma análise: se o primeiro dígito for ZERO, calcula do jeito antigo, apesar do site dizer diferente.

Só não entendo pra que m. serve aumentar um dígito, se vai aumentar um dígito de controle.
Acaba tendo somente 7 dígitos disponíveis pra numeração de IE, como era antes.

Talvez melhor manter o cálculo anterior, só aumentando um dígito, pelo menos por enquanto.
Ainda vou tentar entender o troço.... rs
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Validar Inscrição Estadual BA

Mensagem por JoséQuintas »

Legal.... rs

No site do Sintegra, há duas rotinas de cálculo, uma pra 8 dígitos e outra pra 9 dígitos.
IE_BA.png
Nota:
Na verdade antes já existiam dois dígitos de controle, então houve um aumento real de um dígito.
Agora é pensar mais no assunto antes de alterar....

Primeiro é pensar, e só depois alterar.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Validar Inscrição Estadual BA

Mensagem por JoséQuintas »

Agora teremos a seguinte situação:

Se a checagem for pelo tamanho da IE, não pode ser adicionado o ZERO no início das IEs antigas, mas na consulta ao Sintegra, a BAHIA FEZ ISSO.

Não sei se poderia acontecer, mas pode ser reutilizado um número que ficou livre, desses antigos.

Nesse caso, o número reaproveitado, seria calculado da forma nova ou da forma antiga?

E na nota eletrônica, vão validar com ou sem o zero significativo?

Usando um termo técnico... acho que fud.....
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Validar Inscrição Estadual BA

Mensagem por JoséQuintas »

Testei a funçao do mestre Toledo e deu certo. Nas duas opções, tanto na velha como na atual.
Ué... isso já é um indício que a rotina está errada, porque os cálculos são diferentes.

Aqui também está errado:

Código: Selecionar todos

return SubStr(cStr,9,1)+SubStr(cStr,8,1) == SubStr(cIE,8,2)
Supondo que os dígitos calculados sejam "42", nessa comparação, SubStr(cStr,9,1)+SubStr(cStr,8,1) equivale a 24 e não a 42.
Isso deixa confuso.... rs
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Validar Inscrição Estadual BA

Mensagem por JoséQuintas »

Ok, sobre a inversão de números, é normal, é isso mesmo.
Na minha rotina, baseada no site do Sintegra, e o exemplo do Sintegra, bateu.
Mas acusa erro nessas duas.... rs
Ainda revisando.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Responder