IE do destinatário invalida em ACBrNFe Postado 7 Dezembro, 2020 Em 01/10/2020 at 09:37, EMBarbosa disse: Boa tarde Marcos, apesar de estar liberado esse 08 e ele não estar no cálculo publicado, o resto continua o mesmo. Assim, é possível validar com o mesmo algoritmo desde que você o atualize para aceitar esse segundo caractere como "8". Foi o que fizemos com o ACBrValidador. Ele agora já está funcional. Amigo, poderia divulgar o código? Não estou conseguindo validar com o mesmo algorítimo que possuo IF p_uf = 'DF' THEN IF length(TRIM(p_nr_inscricao_estadual)) <> 13 OR substr(p_nr_inscricao_estadual, 1, 2) <> 07 THEN v_verificador := 'ERRADO'; ELSE v_calculo := substr(p_nr_inscricao_estadual, 1, 1) * 4; v_calculo := v_calculo + substr(p_nr_inscricao_estadual, 2, 1) * 3; v_calculo := v_calculo + substr(p_nr_inscricao_estadual, 3, 1) * 2; v_calculo := v_calculo + substr(p_nr_inscricao_estadual, 4, 1) * 9; v_calculo := v_calculo + substr(p_nr_inscricao_estadual, 5, 1) * 8; v_calculo := v_calculo + substr(p_nr_inscricao_estadual, 6, 1) * 7; v_calculo := v_calculo + substr(p_nr_inscricao_estadual, 7, 1) * 6; v_calculo := v_calculo + substr(p_nr_inscricao_estadual, 8, 1) * 5; v_calculo := v_calculo + substr(p_nr_inscricao_estadual, 9, 1) * 4; v_calculo := v_calculo + substr(p_nr_inscricao_estadual, 10, 1) * 3; v_calculo := v_calculo + substr(p_nr_inscricao_estadual, 11, 1) * 2; v_digito := 11 - MOD(v_calculo, 11); IF v_digito >= 10 THEN v_digito := 0; END IF; IF substr(p_nr_inscricao_estadual, 12, 1) <> v_digito THEN v_verificador := 'ERRADO'; ELSE v_calculo := substr(p_nr_inscricao_estadual, 1, 1) * 5; v_calculo := v_calculo + substr(p_nr_inscricao_estadual, 2, 1) * 4; v_calculo := v_calculo + substr(p_nr_inscricao_estadual, 3, 1) * 3; v_calculo := v_calculo + substr(p_nr_inscricao_estadual, 4, 1) * 2; v_calculo := v_calculo + substr(p_nr_inscricao_estadual, 5, 1) * 9; v_calculo := v_calculo + substr(p_nr_inscricao_estadual, 6, 1) * 8; v_calculo := v_calculo + substr(p_nr_inscricao_estadual, 7, 1) * 7; v_calculo := v_calculo + substr(p_nr_inscricao_estadual, 8, 1) * 6; v_calculo := v_calculo + substr(p_nr_inscricao_estadual, 9, 1) * 5; v_calculo := v_calculo + substr(p_nr_inscricao_estadual, 10, 1) * 4; v_calculo := v_calculo + substr(p_nr_inscricao_estadual, 11, 1) * 3; v_calculo := v_calculo + substr(p_nr_inscricao_estadual, 12, 1) * 2; v_digito := 11 - MOD(v_calculo, 11); IF v_digito >= 10 THEN v_digito := 0; END IF; IF substr(p_nr_inscricao_estadual, 13, 1) <> v_digito THEN v_verificador := 'ERRADO'; ELSE v_verificador := 'CERTO'; END IF; END IF; END IF; RETURN v_verificador; END IF;
IE do destinatário invalida
em ACBrNFe
Postado
Amigo, poderia divulgar o código? Não estou conseguindo validar com o mesmo algorítimo que possuo
IF p_uf = 'DF' THEN
IF length(TRIM(p_nr_inscricao_estadual)) <> 13 OR
substr(p_nr_inscricao_estadual, 1, 2) <> 07 THEN
v_verificador := 'ERRADO';
ELSE
v_calculo := substr(p_nr_inscricao_estadual, 1, 1) * 4;
v_calculo := v_calculo + substr(p_nr_inscricao_estadual, 2, 1) * 3;
v_calculo := v_calculo + substr(p_nr_inscricao_estadual, 3, 1) * 2;
v_calculo := v_calculo + substr(p_nr_inscricao_estadual, 4, 1) * 9;
v_calculo := v_calculo + substr(p_nr_inscricao_estadual, 5, 1) * 8;
v_calculo := v_calculo + substr(p_nr_inscricao_estadual, 6, 1) * 7;
v_calculo := v_calculo + substr(p_nr_inscricao_estadual, 7, 1) * 6;
v_calculo := v_calculo + substr(p_nr_inscricao_estadual, 8, 1) * 5;
v_calculo := v_calculo + substr(p_nr_inscricao_estadual, 9, 1) * 4;
v_calculo := v_calculo + substr(p_nr_inscricao_estadual, 10, 1) * 3;
v_calculo := v_calculo + substr(p_nr_inscricao_estadual, 11, 1) * 2;
v_digito := 11 - MOD(v_calculo, 11);
IF v_digito >= 10 THEN
v_digito := 0;
END IF;
IF substr(p_nr_inscricao_estadual, 12, 1) <> v_digito THEN
v_verificador := 'ERRADO';
ELSE
v_calculo := substr(p_nr_inscricao_estadual, 1, 1) * 5;
v_calculo := v_calculo + substr(p_nr_inscricao_estadual, 2, 1) * 4;
v_calculo := v_calculo + substr(p_nr_inscricao_estadual, 3, 1) * 3;
v_calculo := v_calculo + substr(p_nr_inscricao_estadual, 4, 1) * 2;
v_calculo := v_calculo + substr(p_nr_inscricao_estadual, 5, 1) * 9;
v_calculo := v_calculo + substr(p_nr_inscricao_estadual, 6, 1) * 8;
v_calculo := v_calculo + substr(p_nr_inscricao_estadual, 7, 1) * 7;
v_calculo := v_calculo + substr(p_nr_inscricao_estadual, 8, 1) * 6;
v_calculo := v_calculo + substr(p_nr_inscricao_estadual, 9, 1) * 5;
v_calculo := v_calculo + substr(p_nr_inscricao_estadual, 10, 1) * 4;
v_calculo := v_calculo + substr(p_nr_inscricao_estadual, 11, 1) * 3;
v_calculo := v_calculo + substr(p_nr_inscricao_estadual, 12, 1) * 2;
v_digito := 11 - MOD(v_calculo, 11);
IF v_digito >= 10 THEN
v_digito := 0;
END IF;
IF substr(p_nr_inscricao_estadual, 13, 1) <> v_digito THEN
v_verificador := 'ERRADO';
ELSE
v_verificador := 'CERTO';
END IF;
END IF;
END IF;
RETURN v_verificador;
END IF;