Digito Verificador NFe C#

Para quem esteve procurando uma função que calcula o digito verificador
para montagem do XML da Nota Fiscal Eletronica em C# e não encontrou,
acabaram se os seus problemas eis abaixo o código da que eu criei quando precisei.
Aproveitem. Fiz porque não encontrei nenhuma pronta em C# na web. (Não procurei muito !!! rsrs)
private int GerarDigitoVerificadorNFe(string chave)
{
	int soma = 0; // Vai guardar a Soma
	int mod = -1; // Vai guardar o Resto da divisão
	int dv = -1;  // Vai guardar o DigitoVerificador
	int pesso = 2; // vai guardar o pesso de multiplicacao

	//percorrendo cada caracter da chave da direita para esquerda para fazer os calculos com o pesso
	for (int i = chave.Length - 1; i != -1; i--)
	{
		int ch = Convert.ToInt32(chave[i].ToString());
		soma += ch * pesso;
		//sempre que for 9 voltamos o pesso a 2
		if (pesso < 9)
			pesso += 1;
		else
			pesso = 2;
	}

	//Agora que tenho a soma vamos pegar o resto da divisão por 11
	mod = soma % 11;
	//Aqui temos uma regrinha, se o resto da divisão for 0 ou 1 então o dv vai ser 0
	if (mod == 0 || mod == 1)
		dv = 0;
	else
		dv = 11 - mod;

	return dv;
}
Anúncios

2 Comments

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s