BOA TARDE PRECISO DE AJUDA, COM A CHAVE DO CTE
Tenho uma funcao que gera a chave do cte, mas ela nao gera direito, pois as vezes a chave e aceita as vezes nao, gostaria de saber se alguem tem uma funcao que gera esta chave que possa me mandar.
desde ja agradeço a atencao de vcs.
desde ja agradeço a atencao de vcs.
Malac,
Posta o código pra agente ajudar você a analisar
Abs,
Posta o código pra agente ajudar você a analisar
Abs,
Private Function GeraChave(ByVal cUF As String, ByVal Ano As String, ByVal Mes As String, ByVal CNPJEmi As String, ByVal Modelo As String, ByVal Serie As String, ByVal nroCte As String, ByVal MsgResultado As String, ByRef cCT As String, ByRef cDV As String, ByRef ChaveCte As String) As String
Dim chaveNFE As String = [Ô][Ô]
Dim Soma As Long = 0
Dim cCTtmp As String = [Ô][Ô]
Randomize()
cCT = Format((999999999 * Rnd() + 1), [Ô]000000000[Ô])
chaveNFE = cUF & Ano & Mes & CNPJEmi & Modelo & Serie.PadLeft(3, [Ô]0[Ô]) & nroCte.PadLeft(9, [Ô]0[Ô]) & cCT
If chaveNFE.Length <> 43 Then
Throw New Exception([Ô]Chave inválida, não foi possÃvel calcular o digito verificador[Ô])
End If
[ô]Dim dv1 As String = [Ô][Ô]
[ô]dv1 = calculaDV(chaveNFE)
Dim baseCalculo As String = [Ô]4329876543298765432987654329876543298765432[Ô]
Dim somaResultados As Integer = 0
For i As Integer = 0 To chaveNFE.Length - 1
Dim numNF As Integer = Convert.ToInt32(chaveNFE(i).ToString())
Dim numBaseCalculo As Integer = Convert.ToInt32(baseCalculo(i).ToString())
somaResultados += (numBaseCalculo * numNF)
Next
Dim restoDivisao As Integer = (somaResultados Mod 11)
Dim dv As Integer = 11 - restoDivisao
If (dv = 0) OrElse (dv > 9) Then
cDV = 0
Else
cDV = dv
End If
ChaveCte = chaveNFE & dv
Return dv
End Function
O codigo esta, nem sempre a minha chave passa, tenho que gerar varias vezes, para ela dar certo.
e obrigado pela a atenção
Dim chaveNFE As String = [Ô][Ô]
Dim Soma As Long = 0
Dim cCTtmp As String = [Ô][Ô]
Randomize()
cCT = Format((999999999 * Rnd() + 1), [Ô]000000000[Ô])
chaveNFE = cUF & Ano & Mes & CNPJEmi & Modelo & Serie.PadLeft(3, [Ô]0[Ô]) & nroCte.PadLeft(9, [Ô]0[Ô]) & cCT
If chaveNFE.Length <> 43 Then
Throw New Exception([Ô]Chave inválida, não foi possÃvel calcular o digito verificador[Ô])
End If
[ô]Dim dv1 As String = [Ô][Ô]
[ô]dv1 = calculaDV(chaveNFE)
Dim baseCalculo As String = [Ô]4329876543298765432987654329876543298765432[Ô]
Dim somaResultados As Integer = 0
For i As Integer = 0 To chaveNFE.Length - 1
Dim numNF As Integer = Convert.ToInt32(chaveNFE(i).ToString())
Dim numBaseCalculo As Integer = Convert.ToInt32(baseCalculo(i).ToString())
somaResultados += (numBaseCalculo * numNF)
Next
Dim restoDivisao As Integer = (somaResultados Mod 11)
Dim dv As Integer = 11 - restoDivisao
If (dv = 0) OrElse (dv > 9) Then
cDV = 0
Else
cDV = dv
End If
ChaveCte = chaveNFE & dv
Return dv
End Function
O codigo esta, nem sempre a minha chave passa, tenho que gerar varias vezes, para ela dar certo.
e obrigado pela a atenção
Tópico encerrado , respostas não são mais permitidas