Ir para conteúdo
  • Cadastre-se

dev botao

  • Este tópico foi criado há 1953 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Moderadores
Postado
1 hora atrás, Clésio disse:

Esta dando esse erro na hora de enviar, mas vou no validador do XML da ok.

 

Rejeição 253 MDFE Digito Verificador da chave de acesso composta invalida

MDFe_71.xml 2 kB · 0 downloads

O dígito cDV está incorreto.

Esse XML foi gerado pelo ACBr?

Como está preenchendo o campo cMDF?

Equipe ACBr BigWings
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

 

Postado
3 minutos atrás, BigWings disse:

O dígito cDV está incorreto.

Esse XML foi gerado pelo ACBr?

Como está preenchendo o campo cMDF?

Amigo foi gerado nao.

mas estou precisando de ajuda.

2 minutos atrás, Clésio disse:

Amigo foi gerado nao.

mas estou precisando de ajuda.

Amigo em homologação passa.

  • Moderadores
Postado
4 minutos atrás, Clésio disse:

Amigo foi gerado nao.

Nesse caso movi o tópico para o sub-fórum mais apropriado.

4 minutos atrás, Clésio disse:

mas estou precisando de ajuda.

Se você der mais detalhes de como está fazendo para gerar a chave, qual linguagem usa, etc. talvez alguém consiga ajudar.

Equipe ACBr BigWings
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

 

Postado
2 minutos atrás, BigWings disse:

Nesse caso movi o tópico para o sub-fórum mais apropriado.

Se você der mais detalhes de como está fazendo para gerar a chave, qual linguagem usa, etc. talvez alguém consiga ajudar.

  Public Function GeraChave_MDFe(ByVal COD_UF As String, ByVal Data_emissao As String, ByVal CNPJ_EMIT As String, ByVal Modelo As String, ByVal Serie As String, ByVal Numero_nota As String, ByVal Tipo_emissao As String, ByVal Numero_sequencia As String) As String
        Try
            Dim N_CodUF As String
            Dim N_DEMI As String
            Dim N_CNPJ As String
            Dim N_SERIE As String
            Dim N_nota As String
            Dim N_chave As String
            Dim N_Numero_sequencia As String
            Dim i As Integer = 0
            Dim Ano As String = ""
            Dim Mes As String = ""
            Dim Calculo As Integer = 0
            Dim Semichave As String
            Dim semi_peso As String

            N_CodUF = Formata_campo_str(2, COD_UF, 0)

            Ano = Convert.ToDateTime(Data_emissao).Year
            Mes = Convert.ToDateTime(Data_emissao).Month

            N_DEMI = Ano.Substring(2, 2) & Formata_campo_str(2, SoNumeros(Mes), 0)

            N_CNPJ = Formata_campo_str(14, SoNumeros(CNPJ_EMIT), 0)

            N_SERIE = Formata_campo_str(3, Serie, 0)

            N_nota = Formata_campo_str(9, Numero_nota, 0)

            N_Numero_sequencia = Formata_campo_str(8, Numero_sequencia, 0)

            N_chave = N_CodUF & N_DEMI & N_CNPJ & Modelo & N_SERIE & N_nota & Tipo_emissao & N_Numero_sequencia

            Calculo = Mid(N_chave, 1, 1) - Val(1)

            If Calculo <= 1 Then

                semi_peso = "9"

            Else : semi_peso = Calculo

            End If

            Semichave = semi_peso
            For i = 1 To 42
                semi_peso = semi_peso - Val(1)

                If semi_peso <= 1 Then
                    semi_peso = "9"
                End If

                Semichave = Semichave & semi_peso
            Next

            Dim baseCalculo As String = Semichave
            Dim somaResultados As Integer = 0

            For i = 0 To N_chave.Length - 1
                Dim numNF As Integer = Convert.ToInt32(N_chave(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
                GeraChave_MDFe = N_chave & "0"
            Else
                GeraChave_MDFe = N_chave & dv
            End If
        Catch ex As Exception
            Return ex.Message
        End Try
    End Function
essa e função  que uso e foi desenvolvida em vb net.

 

 

Postado
Em 23/07/2019 at 15:28, Clésio disse:

  Public Function GeraChave_MDFe(ByVal COD_UF As String, ByVal Data_emissao As String, ByVal CNPJ_EMIT As String, ByVal Modelo As String, ByVal Serie As String, ByVal Numero_nota As String, ByVal Tipo_emissao As String, ByVal Numero_sequencia As String) As String
        Try
            Dim N_CodUF As String
            Dim N_DEMI As String
            Dim N_CNPJ As String
            Dim N_SERIE As String
            Dim N_nota As String
            Dim N_chave As String
            Dim N_Numero_sequencia As String
            Dim i As Integer = 0
            Dim Ano As String = ""
            Dim Mes As String = ""
            Dim Calculo As Integer = 0
            Dim Semichave As String
            Dim semi_peso As String

            N_CodUF = Formata_campo_str(2, COD_UF, 0)

            Ano = Convert.ToDateTime(Data_emissao).Year
            Mes = Convert.ToDateTime(Data_emissao).Month

            N_DEMI = Ano.Substring(2, 2) & Formata_campo_str(2, SoNumeros(Mes), 0)

            N_CNPJ = Formata_campo_str(14, SoNumeros(CNPJ_EMIT), 0)

            N_SERIE = Formata_campo_str(3, Serie, 0)

            N_nota = Formata_campo_str(9, Numero_nota, 0)

            N_Numero_sequencia = Formata_campo_str(8, Numero_sequencia, 0)

            N_chave = N_CodUF & N_DEMI & N_CNPJ & Modelo & N_SERIE & N_nota & Tipo_emissao & N_Numero_sequencia

            Calculo = Mid(N_chave, 1, 1) - Val(1)

            If Calculo <= 1 Then

                semi_peso = "9"

            Else : semi_peso = Calculo

            End If

            Semichave = semi_peso
            For i = 1 To 42
                semi_peso = semi_peso - Val(1)

                If semi_peso <= 1 Then
                    semi_peso = "9"
                End If

                Semichave = Semichave & semi_peso
            Next

            Dim baseCalculo As String = Semichave
            Dim somaResultados As Integer = 0

            For i = 0 To N_chave.Length - 1
                Dim numNF As Integer = Convert.ToInt32(N_chave(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
                GeraChave_MDFe = N_chave & "0"
            Else
                GeraChave_MDFe = N_chave & dv
            End If
        Catch ex As Exception
            Return ex.Message
        End Try
    End Function
essa e função  que uso e foi desenvolvida em vb net.

 

 

Amigo boa tarde, viu o que pode ser que estou fazendo de errado ?

  • Consultores
Postado

Meu VB está bem enferrujado, então não vou me arriscar em sugerir uma correção no seu código.

Tenho uma sugestão diferente. Pegue um exemplo de MDFe emitido em produção e, passando os parâmetros pra sua função, verifique se seu código está calculando o valor do DV corretamente.

  • Curtir 1

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Postado
4 horas atrás, EMBarbosa disse:

Meu VB está bem enferrujado, então não vou me arriscar em sugerir uma correção no seu código.

Tenho uma sugestão diferente. Pegue um exemplo de MDFe emitido em produção e, passando os parâmetros pra sua função, verifique se seu código está calculando o valor do DV corretamente.

vc teria um exemplo em delphi, ai converto em vb, desde ja agradeço sua atenção. 

  • Este tópico foi criado há 1953 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.