Aprenda a calcular o dígito verificador da chave de NFe

Com essa função é possível calcular o dígito verificador da chave de acesso da Nota Fiscal Eletrônica ou NFe.

Espero que seja útil.

function calcula_dv($chave43) {
    $multiplicadores = array(2,3,4,5,6,7,8,9);
    $i = 42;
    while ($i >= 0) {
        for ($m=0; $m<count($multiplicadores) && $i>=0; $m++) {
            $soma_ponderada+= $chave43[$i] * $multiplicadores[$m];
            $i--;
        }
    }
    $resto = $soma_ponderada % 11;
    if ($resto == '0' || $resto == '1') {
        return 0;
    } else {
        return (11 - $resto);
   }
}

$nfe = "3511030212322300017155001000115328186185490";
$nfe.=calcula_dv($nfe);

echo $nfe;

Nós queremos saber sua opinião aqui

ave disse:

Oi Gustavo tudo bem? Sou novato com javascript e tb jquery e estou com dificuldades para reproduzir o código de verificação da chave NFe em javascript, você poderia ajudar? o meu cenário é: o usuário digita os 44 dígitos e quando avança retorna true ou false… será que me fiz entender? muito obrigado pela ajuda cara!!

$(function calcula_dv(chave43) {
var multiplicadores = ["2", "3", "4", "5", "6", "7", "8", "9"];
var soma_ponderada = new Array();
var m = 42;
while (m >= 0) {
for (i = 0; i = 0; i++) {
soma_ponderada+= chave43[i] * multiplicadores[i];
i–;
}
}
var resto = soma_ponderada % 11;
if (resto == ’0′ || resto == ’1′) {
return 0;
} else {
return (11 – $resto);
}

var nfe = “3511030212322300017155001000115328186185490″;
var nfeCalculada = calcula_dv(nfe);

alert(nfeCalculada);

function mostraMensagem() {
if (nfeCalculada != true) {
$(“.mensagem_de_erro”).show();
return false;
} else {
return true;
}
}
});

Ops, sua chave não é valida, tente novamente