PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 25 → Função Válida Inscrição Estadual para cálculos usados para fins fiscais no Brasil
Função Válida Inscrição Estadual para cálculos usados para fins fiscais no Brasil
Iniciado por Boller, 05,ago. 2021 19:02 - No hay respuesta
Miembro registrado
4.547 mensajes
Publicado el 05,agosto 2021 - 19:02
function ie(inscEst,estado)
{
if (estado=="AC")
{
if (inscEst.length!=13)
{
return false;
}
primDigito=0;
seguDigito=0;
pesos="43298765432";
soma=0;
for(i=0;i soma=soma+(parseInt(inscEst.substr(i,1))*parseInt(pesos.substr(i,1)));
}
primDigito=11-(soma%11);
if (primDigito>9){
primDigito=0;
}
pesos="543298765432";
soma=0;
for(i=0;i soma=soma+(parseInt(inscEst.substr(i,1))*parseInt(pesos.substr(i,1)));
}
seguDigito=11-(soma%11);
if (seguDigito>9){
seguDigito=0;
}
if ((parseInt(inscEst.substr(11,1))!=primDigito) || (parseInt(inscEst.substr(12,1))!=seguDigito)) {
return false;
}
}
if (estado=="AL")
{
if (inscEst.length!=9)
{
return false;
}
primDigito=0;
pesos="98765432";
soma=0;
for(i=0;i soma=soma+(parseInt(inscEst.substr(i,1))*parseInt(pesos.substr(i,1)));
}
soma=soma*10;
primDigito=soma%11;
if (primDigito>9){
primDigito=0;
}
if (parseInt(inscEst.substr(8,1))!=primDigito) {
return false;
}
}
if (estado=="AP")
{
if (inscEst.length!=9)
{
return false;
}
if (inscEst.substr(0,2) != "03") {
return false;
}
if (parseFloat(inscEst.substr(0,8))<3017000) {
p=5;
d=0;
}
else{
if (parseFloat(inscEst.substr(0,8))<3019022) {
p=9;
d=1;
}else{
p=0;
d=0;
}
}
primDigito=0;
pesos="98765432";
soma=p;
for(i=0;i soma=soma+(parseInt(inscEst.substr(i,1))*parseInt(pesos.substr(i,1)));
}
primDigito=11-(soma%11);
if (primDigito==10){
primDigito=0;
}
else if (primDigito==11){
primDigito=d;
}
if (parseInt(inscEst.substr(8,1))!=primDigito) {
return false;
}
}
if (estado=="AM")
{
if (inscEst.length!=9)
{
return false;
}
primDigito=0;
pesos="98765432";
soma=0;
for(i=0;i soma=soma+(parseInt(inscEst.substr(i,1))*parseInt(pesos.substr(i,1)));
}
if (soma<11){
primDigito=11-soma;
}
else {
primDigito=soma%11;
}
if (primDigito<2){
primDigito=0;
}
else{
primDigito=11-primDigito;
}
if (parseInt(inscEst.substr(8,1))!=primDigito) {
return false;
}
}
if (estado=="BA")
{
if (inscEst.length!=9)
{
return false;
}
primDigito=0;
seguDigito=0;
if ((parseInt(inscEst.substr(1,1))<6) || (parseInt(inscEst.substr(1,1))==8)){
modulo=10;
}
else {
modulo=11;
}
pesos="8765432";
soma=0;
for(i=0;i soma=soma+(parseInt(inscEst.substr(i,1))*parseInt(pesos.substr(i,1)));
}
seguDigito=parseInt(soma%modulo);
if ((modulo==10 && seguDigito>0) || (modulo==11 && seguDigito>1)){
seguDigito=parseInt(modulo-seguDigito);
}
var inscEstAux=inscEst;
inscEstAux=inscEst.substr(0,7) + inscEst.substr(8,1);
pesos="98765432";
soma=0;
for(i=0;i soma=soma+(parseInt(inscEstAux.substr(i,1))*parseInt(pesos.substr(i,1)));
}
primDigito=parseInt(soma%modulo);
if ((modulo==10 && primDigito>0) || (modulo==11 && primDigito>1)){
primDigito=parseInt(modulo-primDigito);
}
if ((parseInt(inscEst.substr(7,1))!=primDigito) || (parseInt(inscEst.substr(8,1))!=seguDigito)) {
return false;
}
}
if (estado=="CE")
{
if (inscEst.length!=9)
{
return false;
}
primDigito=0;
pesos="98765432";
soma=0;
for(i=0;i soma=soma+(parseInt(inscEst.substr(i,1))*parseInt(pesos.substr(i,1)));
}
primDigito=11-(soma%11);
if (primDigito>9){
primDigito=0;
}
if (parseInt(inscEst.substr(8,1))!=primDigito) {
return false;
}
}
if (estado=="DF")
{
if (inscEst.length!=13)
{
return false;
}
if (inscEst.substr(0,2) != "07") {
return false;
}
primDigito=0;
seguDigito=0;
pesos="43298765432";
soma=0;
for(i=0;i soma=soma+(parseInt(inscEst.substr(i,1))*parseInt(pesos.substr(i,1)));
}
primDigito=11-(soma%11);
if (primDigito>9){
primDigito=0;
}
pesos="543298765432";
soma=0;
for(i=0;i soma=soma+(parseInt(inscEst.substr(i,1))*parseInt(pesos.substr(i,1)));
}
seguDigito=11-(soma%11);
if (seguDigito>9){
seguDigito=0;
}
if ((parseInt(inscEst.substr(11,1))!=primDigito) || (parseInt(inscEst.substr(12,1))!=seguDigito)) {
return false;
}
}
if (estado=="ES")
{
if (inscEst.length!=9)
{
return false;
}
primDigito=0;
pesos="98765432";
soma=0;
for(i=0;i soma=soma+(parseInt(inscEst.substr(i,1))*parseInt(pesos.substr(i,1)));
}
primDigito=11-(soma%11);
if (primDigito>9){
primDigito=0;
}
if (parseInt(inscEst.substr(8,1))!=primDigito) {
return false;
}
}
if (estado=="GO")
{
if (inscEst.length!=9)
{
return false;
}
primDigito=0;
pesos="98765432";
soma=0;
for(i=0;i soma=soma+(parseInt(inscEst.substr(i,1))*parseInt(pesos.substr(i,1)));
}
primDigito=11-(soma%11);
if (inscEst.substr(0,8)=="11094402") {
if ((parseInt(inscEst.substr(8,1))!="0") && (parseInt(inscEst.substr(8,1))!="1")) {
return false;
}
}
if (primDigito==11){
primDigito=0;
}
else{
if (primDigito==10) {
if ((parseFloat(inscEst.substr(0,8))>=10103105) && (parseFloat(inscEst.substr(0,8))<=10119997)){
primDigito=1;
}else{
primDigito=0;
}
}
}
if (parseInt(inscEst.substr(8,1))!=primDigito) {
return false;
}
}
if (estado=="MA")
{
if (inscEst.length!=9)
{
return false;
}
if (inscEst.substr(0,2) != "12") {
return false;
}
primDigito=0;
pesos="98765432";
soma=0;
for(i=0;i soma=soma+(parseInt(inscEst.substr(i,1))*parseInt(pesos.substr(i,1)));
}
primDigito=11-(soma%11);
if (primDigito>9){
primDigito=0;
}
if (parseInt(inscEst.substr(8,1))!=primDigito) {
return false;
}
}
if (estado=="MT")
{
if (inscEst.length!=11)
{
return false;
}
primDigito=0;
pesos="3298765432";
soma=0;
for(i=0;i soma=soma+(parseInt(inscEst.substr(i,1))*parseInt(pesos.substr(i,1)));
}
primDigito=11-(soma%11);
if (primDigito>9){
primDigito=0;
}
if (parseInt(inscEst.substr(10,1))!=primDigito) {
return false;
}
}
if (estado=="MS")
{
if (inscEst.length!=9)
{
return false;
}
if (inscEst.substr(0,2) != "28") {
return false;
}
primDigito=0;
pesos="98765432";
soma=0;
for(i=0;i soma=soma+(parseInt(inscEst.substr(i,1))*parseInt(pesos.substr(i,1)));
}
primDigito=11-(soma%11);
if (primDigito>9){
primDigito=0;
}
if (parseInt(inscEst.substr(8,1))!=primDigito) {
return false;
}
}
if (estado=="MG")
{
if (inscEst.length!=13)
{
return false;
}
inscEst=inscEst.substr(0,3)+"0"+inscEst.substr(3);
primDigito=0;
seguDigito=0;
pesos="121212121212";
soma=0;
resultado=0;
for(i=0;i resultado=parseInt(inscEst.substr(i,1))*parseInt(pesos.substr(i,1));
resultado=resultado+"";
for(j=0;j soma=soma+(parseInt(resultado.substr(j,1)));
}
}
somaAux=soma+"";
primDigito=parseInt((parseInt(somaAux.substr(0,1))+1)+"0")-soma;
if (primDigito>9){
primDigito=0;
}
inscEst=inscEst.substr(0,3)+inscEst.substr(4);
pesos="321098765432";
soma=0;
for(i=0;i mult=parseInt(pesos.substr(i,1));
if ((i>1) && (i<4)){
mult=parseInt(pesos.substr(i,1))+10;
}
soma=soma+(parseInt(inscEst.substr(i,1))*mult);
}
seguDigito=11-(soma%11);
if (seguDigito>9){
seguDigito=0;
}
if ((parseInt(inscEst.substr(11,1))!=primDigito) || (parseInt(inscEst.substr(12,1))!=seguDigito)) {
return false;
}
}
if (estado=="PA")
{
if (inscEst.length!=9)
{
return false;
}
if (inscEst.substr(0,2) != "15") {
return false;
}
primDigito=0;
pesos="98765432";
soma=0;
for(i=0;i soma=soma+(parseInt(inscEst.substr(i,1))*parseInt(pesos.substr(i,1)));
}
primDigito=11-(soma%11);
if (primDigito>9){
primDigito=0;
}
if (parseInt(inscEst.substr(8,1))!=primDigito) {
return false;
}
}
if (estado=="PB")
{
if (inscEst.length!=9)
{
return false;
}
primDigito=0;
pesos="98765432";
soma=0;
for(i=0;i soma=soma+(parseInt(inscEst.substr(i,1))*parseInt(pesos.substr(i,1)));
}
primDigito=11-(soma%11);
if (primDigito>9){
primDigito=0;
}
if (parseInt(inscEst.substr(8,1))!=primDigito) {
return false;
}
}
if (estado=="PR")
{
if (inscEst.length!=10)
{
return false;
}
primDigito=0;
seguDigito=0;
pesos="32765432";
soma=0;
for(i=0;i {
soma=soma+(parseInt(inscEst.substr(i,1))*parseInt(pesos.substr(i,1)));
}
primDigito=11-(soma%11);
if (primDigito>9)
{
primDigito=0;
}
pesos="432765432";
soma=0;
for(i=0;i {
soma=soma+(parseInt(inscEst.substr(i,1))*parseInt(pesos.substr(i,1)));
}
seguDigito=11-(soma%11);
if (seguDigito>9)
{
seguDigito=0;
}
if ((parseInt(inscEst.substr(8,1))!=primDigito) || (parseInt(inscEst.substr(9,1))!=seguDigito))
{
return false;
}
}
if (estado=="PE")
{
if (inscEst.length!=9)
{
return false;
}
primDigito=0;
seguDigito=0;
pesos="8765432";
soma=0;
for(i=0;i {
soma=soma+(parseInt(inscEst.substr(i,1))*parseInt(pesos.substr(i,1)));
}
primDigito=parseInt(soma%11);
if (primDigito==1 || primDigito==0){
primDigito=0;
}else{
primDigito=11-primDigito;
}
pesos="98765432";
soma=0;
for(i=0;i {
soma=soma+(parseInt(inscEst.substr(i,1))*parseInt(pesos.substr(i,1)));
}
seguDigito=parseInt(soma%11);
if (seguDigito==1 || seguDigito==0){
seguDigito=0;
}else{
seguDigito=11-seguDigito;
}
if (parseInt(inscEst.substr(7,1))!=primDigito || parseInt(inscEst.substr(8,1))!=seguDigito)
{
return false;
}
}
if (estado=="PI")
{
if (inscEst.length!=9)
{
return false;
}
primDigito=0;
pesos="98765432";
soma=0;
for(i=0;i soma=soma+(parseInt(inscEst.substr(i,1))*parseInt(pesos.substr(i,1)));
}
primDigito=11-(soma%11);
if (primDigito>9){
primDigito=0;
}
if (parseInt(inscEst.substr(8,1))!=primDigito)
{
return false;
}
}
if (estado=="RJ")
{
if (inscEst.length!=8)
{
return false;
}
primDigito=0;
pesos="2765432";
soma=0;
for(i=0;i soma=soma+(parseInt(inscEst.substr(i,1))*parseInt(pesos.substr(i,1)));
}
primDigito=11-(soma%11);
if (primDigito>9){
primDigito=0;
}
if (parseInt(inscEst.substr(7,1))!=primDigito) {
return false;
}
}
if (estado=="RN")
{
if (inscEst.length!=9)
{
return false;
}
primDigito=0;
pesos="98765432";
soma=0;
for(i=0;i soma=soma+(parseInt(inscEst.substr(i,1))*parseInt(pesos.substr(i,1)));
}
soma=soma*10;
primDigito=soma%11;
if (primDigito>9){
primDigito=0;
}
if (parseInt(inscEst.substr(8,1))!=primDigito) {
return false;
}
}
if (estado=="RS")
{
if (inscEst.length!=10)
{
return false;
}
primDigito=0;
pesos="298765432";
soma=0;
for(i=0;i soma=soma+(parseInt(inscEst.substr(i,1))*parseInt(pesos.substr(i,1)));
}
primDigito=11-(soma%11);
if (primDigito>9){
primDigito=0;
}
if (parseInt(inscEst.substr(9,1))!=primDigito) {
return false;
}
}
if (estado=="RO")
{
if (inscEst.length!=14)
{
return false;
}
primDigito=0;
pesos="6543298765432";
soma=0;
for(i=0;i soma=soma+(parseInt(inscEst.substr(i,1))*parseInt(pesos.substr(i,1)));
}
primDigito=11-(soma%11);
if (primDigito>9){
primDigito-=10;
}
if (parseInt(inscEst.substr(13,1))!=primDigito) {
return false;
}
}
if (estado=="RR")
{
if (inscEst.length!=9)
{
return false;
}
primDigito=0;
pesos="12345678";
soma=0;
for(i=0;i soma=soma+(parseInt(inscEst.substr(i,1))*parseInt(pesos.substr(i,1)));
}
soma=soma*10;
primDigito=soma%9;
if (parseInt(inscEst.substr(8,1))!=primDigito) {
return false;
}
}
if (estado=="SC")
{
if (inscEst.length!=9)
{
return false;
}
primDigito=0;
pesos="98765432";
soma=0;
for(i=0;i soma=soma+(parseInt(inscEst.substr(i,1))*parseInt(pesos.substr(i,1)));
}
soma=soma*10;
primDigito=soma%11;
if (primDigito>9){
primDigito=0;
}
if (parseInt(inscEst.substr(8,1))!=primDigito) {
return false;
}
}
if (estado=="SP")
{
if (inscEst.length!=12)
{
return false;
}
primDigito=0;
seguDigito=0;
pesos="13456780";
soma=0;
for(i=0;i mult=parseInt(pesos.substr(i,1));
if (i==7){
mult=10;
}
soma=soma+(parseInt(inscEst.substr(i,1))*mult);
}
primDigito=soma%11;
if (primDigito>9){
primDigito=0;
}
pesos="32098765432";
soma=0;
for(i=0;i mult=parseInt(pesos.substr(i,1));
if (i==2){
mult=10;
}
soma=soma+(parseInt(inscEst.substr(i,1))*mult);
}
seguDigito=soma%11;
if (seguDigito>9){
seguDigito=0;
}
if ((parseInt(inscEst.substr(8,1))!=primDigito) || (parseInt(inscEst.substr(11,1))!=seguDigito)) {
return false;
}
}
if (estado=="SE")
{
if (inscEst.length!=9)
{
return false;
}
primDigito=0;
pesos="98765432";
soma=0;
for(i=0;i soma=soma+(parseInt(inscEst.substr(i,1))*parseInt(pesos.substr(i,1)));
}
primDigito=11-(soma%11);
if (primDigito>9){
primDigito=0;
}
if (parseInt(inscEst.substr(8,1))!=primDigito) {
return false;
}
}
if (estado=="TO")
{
if (inscEst.length!=9 && inscEst.length!=11)
{
return false;
}
if (inscEst.length==11){
inscEst=inscEst.substr(0,2)+inscEst.substr(4,7);

}
primDigito=0;
pesos="98765432";
soma=0;
for(i=0;i soma=soma+(parseInt(inscEst.substr(i,1))*parseInt(pesos.substr(i,1)));
}
primDigito=parseInt(soma%11)
if (primDigito>1){
primDigito=11-(soma%11);
}else{
primDigito=0;
}
if (parseInt(inscEst.substr(8,1))!=primDigito) {
return false;
}
}
return true;
}


--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 99949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/