forked from gammasoft/ie
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathie.min.js
13 lines (13 loc) · 6.49 KB
/
ie.min.js
1
2
3
4
5
6
7
8
9
10
11
12
13
/*
inscricaoestadual v0.0.5 (28/09/2016)
-------------------------------------
Autor: Gammasoft Desenvolvimento de Software Ltda <contato@gammasoft.com.br>
Contibuidores:
- Sérgio Vilar - https://github.com/sergiovilar
- Renato Gama - https://github.com/renatoargh
- vinidalmagro - https://github.com/vinidalmagro
Descrição: Biblioteca de validação de inscrições estaduais
Repositório: https://github.com/gammasoft/ie.git
Licença: MIT
*/
"use strict";function eIndefinido(a){return"undefined"==typeof a}function tamanhoNaoE(a,b){return eIndefinido(b)&&(b=9),a.length!==b}function tamanhoE(a,b){return!tamanhoNaoE(a,b)}function serie(a,b){for(var c=[];b>=a;)c.push(a++);return c}function primeiros(a,b){return eIndefinido(b)&&(b=8),a.substring(0,b)}function substracaoPor11SeMaiorQue2CasoContrario0(a){return 2>a?0:11-a}function mod(a,b,c){eIndefinido(c)&&(c=11),eIndefinido(b)&&(b=serie(2,9));var d=0;return a.split("").reduceRight(function(a,c){return d>b.length-1&&(d=0),b[d++]*parseInt(c,10)+a},0)%c}function calculoTrivial(a,b,c){if(!c&&tamanhoNaoE(a))return!1;eIndefinido(b)&&(b=primeiros(a));var d=substracaoPor11SeMaiorQue2CasoContrario0(mod(b));return a===b+d}function naoComecaCom(a,b){return a.substring(0,b.length)!==b}function entre(a,b,c){return"string"==typeof a&&(a=parseInt(a,10)),a>=b&&c>=a}function lookup(a){var b=[];for(var c in funcoes)funcoes[c](a)&&b.push(c);return tamanhoE(b,0)?!1:b}function validar(a,b){if((eIndefinido(b)||null===b)&&(b=""),b=b.toLowerCase(),""!==b&&!(b in funcoes))throw new Error("estado não é válido");if(eIndefinido(a))throw new Error("ie deve ser fornecida");if(Array.isArray(a))return a.map(function(a){return validar(a,b)});if("string"!=typeof a)throw new Error("ie deve ser string ou array de strings");return a.match(/^ISENTO$/i)?!0:(a=a.replace(/[\.|\-|\/|\s]/g,""),""===b?lookup(a):/^\d+$/.test(a)||"sp"===b?funcoes[b](a):!1)}var funcoes={ba:function(a){if(tamanhoNaoE(a,8)&&tamanhoNaoE(a))return!1;var b,c,d,e,f=primeiros(a,a.length-2),g=serie(2,7),h=serie(2,8),i=a.substring(0,1);return tamanhoE(a,9)&&(g.push(8),h.push(9),i=a.substring(1,2)),-1!=="0123458".split("").indexOf(i)?(e=mod(f,g,10),c=0===e?0:10-e,d=mod(f+c,h,10),b=0===d?0:10-d):(e=mod(f,g),c=substracaoPor11SeMaiorQue2CasoContrario0(e),d=mod(f+c,h),b=substracaoPor11SeMaiorQue2CasoContrario0(d)),a===f+b+c},se:function(a){return tamanhoNaoE(a)?!1:calculoTrivial(a)},al:function(a){if(tamanhoNaoE(a))return!1;if(naoComecaCom(a,"24"))return!1;var b=primeiros(a),c=10*mod(b);c-=11*parseInt(c/11,10);var d=10===c?0:c;return a===b+d},pb:function(a){return tamanhoNaoE(a)?!1:calculoTrivial(a)},rn:function(a){if(tamanhoNaoE(a)&&tamanhoNaoE(a,10))return!1;if(naoComecaCom(a,"20"))return!1;var b=a.substring(0,a.length-1),c=serie(2,9);tamanhoE(a,10)&&c.push(10);var d=10*mod(b,c)%11,e=10===d?0:d;return a===b+e},ap:function(a){if(tamanhoNaoE(a))return!1;if(naoComecaCom(a,"03"))return!1;var b,c,d=primeiros(a);entre(d,3000001,3017e3)?(b=5,c=0):entre(d,3017001,3019022)?(b=9,c=1):(b=0,c=0);var e,f=mod(b+d,[2,3,4,5,6,7,8,9,1]);return e=1===f?0:0===f?c:11-f,a===d+e},rr:function(a){if(tamanhoNaoE(a))return!1;if(naoComecaCom(a,"24"))return!1;var b=primeiros(a),c=mod(b,[8,7,6,5,4,3,2,1],9);return a===b+c},am:function(a){return tamanhoNaoE(a)?!1:calculoTrivial(a)},ro:function(a){var b,c,d;return tamanhoE(a,9)?(b=a.substring(3,8),c=substracaoPor11SeMaiorQue2CasoContrario0(mod(b)),a===a.substring(0,3)+b+c):tamanhoE(a,14)?(b=primeiros(a,13),d=mod(b),c=1>=d?1:11-d,a===b+c):!1},rj:function(a){if(tamanhoNaoE(a,8))return!1;var b=primeiros(a,7),c=substracaoPor11SeMaiorQue2CasoContrario0(mod(b,serie(2,7)));return a===b+c},sc:function(a){return calculoTrivial(a)},pi:function(a){return calculoTrivial(a)},es:function(a){return calculoTrivial(a)},pr:function(a){if(tamanhoNaoE(a,10))return!1;var b=primeiros(a),c=mod(b,serie(2,7)),d=11-c>=10?0:11-c,e=mod(b+d,serie(2,7)),f=11-e>=10?0:11-e;return a===b+d+f},pa:function(a){return tamanhoNaoE(a)?!1:naoComecaCom(a,"15")?!1:calculoTrivial(a)},ce:function(a){return tamanhoNaoE(a)?!1:naoComecaCom(a,"06")?!1:calculoTrivial(a)},pe:function(a){var b=a.substring(0,a.length-2),c=mod(b),d=11-c>=10?0:11-c,e=mod(b+d),f=11-e>=10?0:11-e;return a===b+d+f},ma:function(a){return tamanhoNaoE(a)?!1:naoComecaCom(a,"12")?!1:calculoTrivial(a)},ac:function(a){if(tamanhoNaoE(a,13))return!1;if(naoComecaCom(a,"01"))return!1;var b=primeiros(a,11),c=substracaoPor11SeMaiorQue2CasoContrario0(mod(b)),d=substracaoPor11SeMaiorQue2CasoContrario0(mod(b+c));return a===b+c+d},rs:function(a){if(tamanhoNaoE(a,10))return!1;var b=primeiros(a,9);return calculoTrivial(a,b,!0)},mt:function(a){if(tamanhoNaoE(a,11)&&tamanhoNaoE(a))return!1;var b=tamanhoE(a,11)?a.substring(0,10):primeiros(a);return calculoTrivial(a,b)},sp:function(a){a=a.toUpperCase();var b;if("P"===a.substr(0,1)){if(tamanhoNaoE(a,13))return!1;var c=a.substring(1,9);b=a.substring(10,13);var d=mod(c,[10,8,7,6,5,4,3,1]).toString(),e=d.length>1?d[1]:d[0];return a==="P"+c+e+b}if(tamanhoNaoE(a,12))return!1;var f=primeiros(a);b=a.substring(9,11);var g=mod(f,[10,8,7,6,5,4,3,1]).toString(),h=g.length>1?g[1]:g[0],i=mod(f+h+b,serie(2,10)).toString(),j=i.length>1?i[1]:i[0];return a===f+h+b+j},mg:function(a){if(tamanhoNaoE(a,13))return!1;var b=primeiros(a,11),c=a.substring(0,3)+"0"+a.substring(3,11),d=0,e=c.split("").reduceRight(function(a,b){return d>[2,1].length-1&&(d=0),([2,1][d++]*parseInt(b,10)).toString()+a.toString()},"").split("").reduce(function(a,b){return a+parseInt(b)},0),f=10*(parseInt(e/10)+1)-e;10===f&&(f=0);var g=substracaoPor11SeMaiorQue2CasoContrario0(mod(b+f,serie(2,11)));return a===b+f+g},to:function(a){if(tamanhoNaoE(a)&&tamanhoNaoE(a,11))return!1;var b;if(tamanhoE(a,11)){if(-1===["01","02","03","99"].indexOf(a.substring(2,4)))return!1;b=a.substring(0,2)+a.substring(4,10)}else b=primeiros(a);var c=substracaoPor11SeMaiorQue2CasoContrario0(mod(b));return a===a.substring(0,a.length-1)+c},go:function(a){if(tamanhoNaoE(a))return!1;if(-1===["10","11","15"].indexOf(a.substring(0,2)))return!1;var b=primeiros(a);if("11094402"===b)return"1"===a.substr(8)||"0"===a.substr(8);var c,d=mod(b);return c=0===d?0:1===d?entre(b,10103105,10119997)?1:0:11-d,a===b+c},ms:function(a){return naoComecaCom(a,"28")?!1:calculoTrivial(a)},df:function(a){if(tamanhoNaoE(a,13))return!1;var b=primeiros(a,11),c=substracaoPor11SeMaiorQue2CasoContrario0(mod(b)),d=substracaoPor11SeMaiorQue2CasoContrario0(mod(b+c));return a===b+c+d}};"undefined"!=typeof exports&&"undefined"!=typeof module&&module.exports?module.exports=validar:"undefined"!=typeof define?define([],function(){return validar}):window.inscricaoEstadual=validar;