Bom dia pessoal,
Alguém tem ou conhece alguma função para validação de Inscrição Estadual em javascript?
[]´s
Bom dia pessoal,
Alguém tem ou conhece alguma função para validação de Inscrição Estadual em javascript?
[]´s
bom, achei essa regra de validacao…nao tah em JS, mas deve ser tranquilo adaptar…
pelo q vi, jah tem p/ todos os estados, jah q cada um tem a sua forma de validar…
*************************************************
* IeOk(p1,p2) : Validacao de Inscricao Estadual
* Parametros : p1 : string,2 caracteres,maiusculo,unidade federal
* p2 : string,tam.variavel,alfanumerico maiusculo,insc.estadual
* Retorno : Logico
*************************************************
procedure ieok(puf,pie)
local ok:=.f.,base,vpos,valg,vsom,vres,vdig1,vdig2,vpro,p,d,n,vbase2,origem
vbase2:=base:=origem:=""
if alltrim(pie)=="ISENTO";return .t.;endif
for vpos:=1 to len(alltrim(pie))
if substr(pie,vpos,1)$"0123456789P"
origem+=substr(pie,vpos,1)
endif
next
mascara:="99999999999999"
if puf=="AC"
mascara:="99,99,9999-9"
base :=padr(origem,9,"0")
if left(base,2)=="01" .and. substr(base,3,2)<>"00"
vsom:=0
for vpos:=1 to 8
valg:=val(substr(base,vpos,1))
valg:=valg*(10-vpos)
vsom+=valg
next
vres :=vsom%11
vdig1 :=str(if(vres<2,0,11-vres),1,0)
vbase2:=left(base,8)+vdig1
ok :=(vbase2==origem)
endif
elseif puf=="AL"
mascara:="999999999"
base :=padr(origem,9,"0")
if left(base,2)=="24"
vsom:=0
for vpos:=1 to 8
valg:=val(substr(base,vpos,1))
valg:=valg*(10-vpos)
vsom+=valg
next
vpro :=vsom*10
vres :=vpro%11
vdig1 :=if(vres==10,"0",str(vres,1,0))
vbase2:=left(base,8)+vdig1
ok :=(vbase2==origem)
endif
elseif puf=="AM"
mascara:="99,999,999-9"
base :=padr(origem,9,"0")
vsom :=0
for vpos:=1 to 8
valg:=val(substr(base,vpos,1))
valg:=valg*(10-vpos)
vsom+=valg
next
if vsom<11
vdig1:=str(11-vsom,1,0)
else
vres :=vsom%11
vdig1:=if(vres<2,"0",str(11-vres,1,0))
endif
vbase2:=left(base,8)+vdig1
ok :=(vbase2==origem)
elseif puf=="AP"
mascara:="999999999"
base :=padr(origem,9,"0")
if left(base,2)=="03"
n:=val(left(base,8))
if n>=3000001 .and. n<=3017000
p:=5
d:=0
elseif n>=3017001 .and. n<=3019022
p:=9
d:=1
elseif n>=3019023
p:=0
d:=0
endif
vsom:=p
for vpos:=1 to 8
valg:=val(substr(base,vpos,1))
valg:=valg*(10-vpos)
vsom+=valg
next
vres :=vsom%11
vdig1:=11-vres
if vdig1==10
vdig1:=0
elseif vdig1==11
vdig1:=d
endif
vdig1 :=str(vdig1,1,0)
vbase2:=left(base,8)+vdig1
ok :=(vbase2==origem)
endif
elseif puf=="BA"
mascara:="999999-99"
base :=padr(origem,8,"0")
if left(base,1)$"0123458"
vsom:=0
for vpos:=1 to 6
valg:=val(substr(base,vpos,1))
valg:=valg*(8-vpos)
vsom+=valg
next
vres :=vsom%10
vdig2 :=str(if(vres==0,0,10-vres),1,0)
vbase2:=left(base,6)+vdig2
vsom :=0
for vpos:=1 to 7
valg:=val(substr(vbase2,vpos,1))
valg:=valg*(9-vpos)
vsom+=valg
next
vres :=vsom%10
vdig1:=str(if(vres==0,0,10-vres),1,0)
else
vsom:=0
for vpos:=1 to 6
valg:=val(substr(base,vpos,1))
valg:=valg*(8-vpos)
vsom+=valg
next
vres :=vsom%11
vdig2 :=str(if(vres<2,0,11-vres),1,0)
vbase2:=left(base,6)+vdig2
vsom :=0
for vpos:=1 to 7
valg:=val(substr(vbase2,vpos,1))
valg:=valg*(9-vpos)
vsom+=valg
next
vres :=vsom%11
vdig1:=str(if(vres<2,0,11-vres),1,0)
endif
vbase2:=left(base,6)+vdig1+vdig2
ok:=(vbase2==origem)
elseif puf=="CE"
mascara:="99999999-9"
base :=padr(origem,9,"0")
vsom :=0
for vpos:=1 to 8
valg:=val(substr(base,vpos,1))
valg:=valg*(10-vpos)
vsom+=valg
next
vres :=vsom%11
vdig1:=11-vres
if vdig1>9;vdig1:=0;endif
vbase2:=left(base,8)+str(vdig1,1,0)
ok :=(vbase2==origem)
elseif puf=="DF"
mascara:="999,99999,999-99"
base :=padr(origem,13,"0")
if left(base,3)=="073"
vsom:=0
vmul:={4,3,2,9,8,7,6,5,4,3,2}
for vpos:=1 to 11
valg:=val(substr(base,vpos,1))
valg:=valg*vmul[vpos]
vsom+=valg
next
vres :=vsom%11
vdig1 :=if(vres<2,0,11-vres)
vbase2:=left(base,11)+str(vdig1,1,0)
vsom :=0
vmul :={5,4,3,2,9,8,7,6,5,4,3,2}
for vpos:=1 to 12
valg:=val(substr(vbase2,vpos,1))
valg:=valg*vmul[vpos]
vsom+=valg
next
vres :=vsom%11
vdig2 :=if(vres<2,0,11-vres)
vbase2+=str(vdig2,1,0)
ok :=(vbase2==origem)
endif
elseif puf=="ES"
mascara:="999999999"
base :=padr(origem,9,"0")
vsom :=0
for vpos:=1 to 8
valg:=val(substr(base,vpos,1))
valg:=valg*(10-vpos)
vsom+=valg
next
vres :=vsom%11
vdig1 :=str(if(vres<2,0,11-vres),1,0)
vbase2:=left(base,8)+vdig1
ok :=(vbase2==origem)
elseif puf=="GO"
mascara:="99,999,999-9"
base :=padr(origem,9,"0")
if left(base,2)$"10,11,15"
vsom:=0
for vpos:=1 to 8
valg:=val(substr(base,vpos,1))
valg:=valg*(10-vpos)
vsom+=valg
next
vres:=vsom%11
if vres==0
vdig1:="0"
elseif vres==1
n :=val(left(base,8))
vdig1:=if(n>=10103105 .and. n<=10119997,"1","0")
else
vdig1:=str(11-vres,1,0)
endif
vbase2:=left(base,8)+vdig1
ok :=(vbase2==origem)
endif
elseif puf=="MA"
mascara:="999999999"
base :=padr(origem,9,"0")
if left(base,2)=="12"
vsom:=0
for vpos:=1 to 8
valg:=val(substr(base,vpos,1))
valg:=valg*(10-vpos)
vsom+=valg
next
vres :=vsom%11
vdig1 :=str(if(vres<2,0,11-vres),1,0)
vbase2:=left(base,8)+vdig1
ok :=(vbase2==origem)
endif
elseif puf=="MT"
mascara:="9999999999-9"
vmul :={3,2,9,8,7,6,5,4,3,2}
vsom:=0
for vpos:=1 to 10
valg:=val(substr(base,vpos,1))
valg:=valg*vmul[vpos]
vsom+=valg
next
vres :=vsom%11
vdig1 :=if(vres<2,0,11-vres)
vbase2:=left(base,10)+str(vdig1,1,0)
ok :=(vbase2==origem)
elseif puf=="MS"
mascara:="999999999"
base :=padr(origem,9,"0")
if left(base,2)=="28"
vsom:=0
for vpos:=1 to 8
valg:=val(substr(base,vpos,1))
valg:=valg*(10-vpos)
vsom+=valg
next
vres :=vsom%11
vdig1 :=str(if(vres<2,0,11-vres),1,0)
vbase2:=left(base,8)+vdig1
ok :=(vbase2==origem)
endif
elseif puf=="MG"
mascara:="999,999,999/9999"
base :=padr(origem,13,"0")
vbase2 :=left(base,3)+"0"+substr(base,4,8)
n :=2
vsom :=""
for vpos:=1 to 12
valg:=val(substr(vbase2,vpos,1))
n :=if(n==2,1,2)
valg:=alltrim(str(valg*n,2,0))
vsom+=valg
next
n :=0
for vpos:=1 to len(vsom);n+=val(substr(vsom,vpos,1));next
vsom :=n
do while right(str(n,3,0),1)<>"0";n++;enddo
vdig1 :=str(n-vsom,1,0)
vbase2:=left(base,11)+vdig1
vsom :=0
vmul :={3,2,11,10,9,8,7,6,5,4,3,2}
for vpos:=1 to 12
valg:=val(substr(vbase2,vpos,1))
valg:=valg*vmul[vpos]
vsom+=valg
next
vres :=vsom%11
vdig2 :=if(vres<2,0,11-vres)
vbase2+=str(vdig2,1,0)
ok :=(vbase2==origem)
elseif puf=="PA"
mascara:="99-999999-9"
base :=padr(origem,9,"0")
if left(base,2)=="15"
vsom:=0
for vpos:=1 to 8
valg:=val(substr(base,vpos,1))
valg:=valg*(10-vpos)
vsom+=valg
next
vres :=vsom%11
vdig1 :=str(if(vres<2,0,11-vres),1,0)
vbase2:=left(base,8)+vdig1
ok :=(vbase2==origem)
endif
elseif puf=="PB"
mascara:="99,999,999-9"
base :=padr(origem,9,"0")
vsom :=0
for vpos:=1 to 8
valg:=val(substr(base,vpos,1))
valg:=valg*(10-vpos)
vsom+=valg
next
vres :=vsom%11
vdig1 :=11-vres
if vdig1>9;vdig1:=0;endif
vbase2:=left(base,8)+str(vdig1,1,0)
ok :=(vbase2==origem)
elseif puf=="PE"
mascara:="99,9,999,9999999-9"
base :=padr(origem,14,"0")
vsom :=0
vmul :={5,4,3,2,1,9,8,7,6,5,4,3,2}
for vpos:=1 to 13
valg:=val(substr(base,vpos,1))
valg:=valg*vmul[vpos]
vsom+=valg
next
vres :=vsom%11
vdig1 :=11-vres
if(vdig1>9,vdig1-=10,)
vbase2:=left(base,13)+str(vdig1,1,0)
ok :=(vbase2==origem)
elseif puf=="PI"
mascara:="999999999"
base :=padr(origem,9,"0")
vsom :=0
for vpos:=1 to 8
valg:=val(substr(base,vpos,1))
valg:=valg*(10-vpos)
vsom+=valg
next
vres :=vsom%11
vdig1 :=str(if(vres<2,0,11-vres),1,0)
vbase2:=left(base,8)+vdig1
ok :=(vbase2==origem)
elseif puf=="PR"
mascara:="999,99999-99"
base :=padr(origem,10,"0")
vsom :=0
vmul :={3,2,7,6,5,4,3,2}
for vpos:=1 to 8
valg:=val(substr(base,vpos,1))
valg:=valg*vmul[vpos]
vsom+=valg
next
vres :=vsom%11
vdig1 :=str(if(vres<2,0,11-vres),1,0)
vbase2:=left(base,8)+vdig1
vsom :=0
vmul :={4,3,2,7,6,5,4,3,2}
for vpos:=1 to 9
valg:=val(substr(vbase2,vpos,1))
valg:=valg*vmul[vpos]
vsom+=valg
next
vres :=vsom%11
vdig2 :=str(if(vres<2,0,11-vres),1,0)
vbase2+=vdig2
ok :=(vbase2==origem)
elseif puf=="RJ"
mascara:="99,999,99-9"
base :=padr(origem,8,"0")
vsom :=0
vmul :={2,7,6,5,4,3,2}
for vpos:=1 to 7
valg:=val(substr(base,vpos,1))
valg:=valg*vmul[vpos]
vsom+=valg
next
vres :=vsom%11
vdig1 :=str(if(vres<2,0,11-vres),1,0)
vbase2:=left(base,7)+vdig1
ok :=(vbase2==origem)
elseif puf=="RN"
mascara:="99,999,999-9"
base :=padr(origem,9,"0")
if left(base,2)=="20"
vsom:=0
for vpos:=1 to 8
valg:=val(substr(base,vpos,1))
valg:=valg*(10-vpos)
vsom+=valg
next
vpro :=vsom*10
vres :=vpro%11
vdig1 :=str(if(vres>9,0,vres),1,0)
vbase2:=left(base,8)+vdig1
ok :=(vbase2==origem)
endif
elseif puf=="RO"
mascara:="999999999"
base :=padr(origem,9,"0")
vbase2 :=substr(base,4,5)
vsom :=0
for vpos:=1 to 5
valg:=val(substr(vbase2,vpos,1))
valg:=valg*(7-vpos)
vsom+=valg
next
vres :=vsom%11
vdig1 :=11-vres
if vdig1>9;vdig1-=10;endif
vbase2:=left(base,8)+str(vdig1,1,0)
ok :=(vbase2==origem)
elseif puf=="RR"
mascara:="99999999-9"
base :=padr(origem,9,"0")
if left(base,2)=="24"
vsom:=0
for vpos:=1 to 8
valg:=val(substr(base,vpos,1))
valg:=valg*vpos
vsom+=valg
next
vres :=vsom%9
vdig1 :=str(vres,1,0)
vbase2:=left(base,8)+vdig1
ok :=(vbase2==origem)
endif
elseif puf=="RS"
mascara:="999/999999-9"
base :=padr(origem,10,"0")
n :=val(left(base,3))
if n>0 .and. n<468
vsom:=0
vmul:={2,9,8,7,6,5,4,3,2}
for vpos:=1 to 9
valg:=val(substr(base,vpos,1))
valg:=valg*vmul[vpos]
vsom+=valg
next
vres :=vsom%11
vdig1 :=11-vres
if vdig1>9;vdig1:=0;endif
vbase2:=left(base,9)+str(vdig1,1,0)
ok :=(vbase2==origem)
endif
elseif puf=="SC"
mascara:="999,999,999"
base :=padr(origem,9,"0")
vsom :=0
for vpos:=1 to 8
valg:=val(substr(base,vpos,1))
valg:=valg*(10-vpos)
vsom+=valg
next
vres :=vsom%11
vdig1 :=if(vres<2,"0",str(11-vres,1,0))
vbase2:=left(base,8)+vdig1
ok :=(vbase2==origem)
elseif puf=="SE"
mascara:="99999999-9"
base :=padr(origem,9,"0")
vsom :=0
for vpos:=1 to 8
valg:=val(substr(base,vpos,1))
valg:=valg*(10-vpos)
vsom+=valg
next
vres :=vsom%11
vdig1 :=11-vres
if vdig1>9;vdig1:=0;endif
vbase2:=left(base,8)+str(vdig1,1,0)
ok :=(vbase2==origem)
elseif puf=="SP"
if left(base,1)=="P"
mascara:="P-99999999,9/999"
base :=padr(origem,13,"0")
vbase2 :=substr(base,2,8)
vsom :=0
vmul :={1,3,4,5,6,7,8,10}
for vpos:=1 to 8
valg:=val(substr(vbase2,vpos,1))
valg:=valg*vmul[vpos]
vsom+=valg
next
vres :=vsom%11
vdig1 :=right(str(vres,2,0),1)
vbase2:=left(base,9)+vdig1+substr(base,11,3)
else
mascara:="999,999,999,999"
base :=padr(origem,12,"0")
vsom :=0
vmul :={1,3,4,5,6,7,8,10}
for vpos:=1 to 8
valg:=val(substr(base,vpos,1))
valg:=valg*vmul[vpos]
vsom+=valg
next
vres :=vsom%11
vdig1 :=right(str(vres,2,0),1)
vbase2:=left(base,8)+vdig1+substr(base,10,2)
vsom :=0
vmul :={3,2,10,9,8,7,6,5,4,3,2}
for vpos:=1 to 11
valg:=val(substr(vbase2,vpos,1))
valg:=valg*vmul[vpos]
vsom+=valg
next
vres :=vsom%11
vdig2 :=right(str(vres,2,0),1)
vbase2+=vdig2
endif
ok:=(vbase2==origem)
elseif puf=="TO"
mascara:="99,99,999999-9"
base :=padr(origem,11,"0")
if substr(base,3,2)$"01,02,03,99"
vbase2:=left(base,2)+substr(base,5,6)
vsom :=0
for vpos:=1 to 8
valg:=val(substr(vbase2,vpos,1))
valg:=valg*(10-vpos)
vsom+=valg
next
vres :=vsom%11
vdig1 :=str(if(vres<2,0,11-vres),1,0)
vbase2:=left(base,10)+vdig1
ok :=(vbase2==origem)
endif
else
alert("Unidade Federal Invalida !")
endif
if !ok
if empty(vbase2)
alert("Os D¡gitos Identificadores de Cidade e/ou Estado N„o Conferem !")
else
vbase2:=strtran(transform(val(vbase2),mascara)," ","0")
vbase2:=strtran(vbase2,",",".")
alert("Inscri‡„o Inv lida !;O Correto Seria;"+vbase2)
endif
endif
return .t.
falow
ops, depois q postei o codigo aki vi q ele pode ser meio chatinho, pois estah em Clipper…
tem mais esses 2 links:
http://forum.wmonline.com.br/index.php?s=4a4a04cfe8ebec24dc2c7d072018e774&showtopic=92540
http://www.sintegra.gov.br/insc_est.html
o ultimo tem as regras usadas em todos os estados…
falow ae…
Vou dar uma olhada.
Já tenho uma função aqui em javascript, mas está dando erro para o estado do “AP”.
[]´s
Bom dia!
Por acaso, alguém conseguiu uma versão em javascript para validar a inscrição estadual?!
Obrigado!
Código que valida as inscrições estaduais do brasil todo, em JAVASCRIPT:
http://codingz.info/src/JavaScript%20-%20Inscri��o%20estadual/
Tem a versão em delphi e uma em javascript.
Utilização do mesmo é simples, só entender a última função do script e ta tudo certo.
Qualquer coisa só me mandar por email que está no fonte.
– wG @ codingz.info - Belo Horizonte / MG / Brasil
P/ tirar dúvida sobre o código javascript de inscrição estadual
ou falar alguma coisa, sugerir ou sei la o que
é só acessar o fórum do site http://www.codingz.info/forum/forum.php
ai voces trocam idéia sobre ele, nem precisa registrar p/ postar
flw