BOA TARDE PRECISO DE AJUDA, COM A CHAVE DO CTE

MALA 03/11/2010 14:06:17
#356542
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.
RRANGON 03/11/2010 16:33:10
#356554
Resposta escolhida
Malac,

Posta o código pra agente ajudar você a analisar

Abs,
MALA 05/11/2010 08:03:31
#356687
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
Tópico encerrado , respostas não são mais permitidas