Skip to content

Commit 78e1f2f

Browse files
committed
feat: adiciona suporte a caracteres alfanumericos
1 parent fc8678b commit 78e1f2f

1 file changed

Lines changed: 13 additions & 2 deletions

File tree

DFe.Utils/ChaveFiscal.cs

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -95,8 +95,8 @@ private static string ObterDigitoVerificador(string chave)
9595
//percorrendo cada caractere da chave da direita para esquerda para fazer os cálculos com o peso
9696
for (var i = chave.Length - 1; i != -1; i--)
9797
{
98-
var ch = Convert.ToInt32(chave[i].ToString());
99-
soma += ch*peso;
98+
var valorCaractere = ObterValorDoCaractere(chave[i]);
99+
soma += valorCaractere * peso;
100100
//sempre que for 9 voltamos o peso a 2
101101
if (peso < 9)
102102
peso += 1;
@@ -115,6 +115,17 @@ private static string ObterDigitoVerificador(string chave)
115115
return dv.ToString();
116116
}
117117

118+
/// <summary>
119+
/// Obtem o valor de um caractere
120+
/// </summary>
121+
/// <param name="caractere"></param>
122+
/// <returns></returns>
123+
private static int ObterValorDoCaractere(char caractere)
124+
{
125+
const int zeroASCII = 48;
126+
return caractere - zeroASCII;
127+
}
128+
118129
/// <summary>
119130
/// Informa se a chave de um DF-e é válida
120131
/// </summary>

0 commit comments

Comments
 (0)