Nfe shipment to MG in Versao 3.10

Asked

Viewed 970 times

7

To send XML from an Nfe to MG in version 2.0 I do as follows:

Public Function enviaNFe2(ByVal NumeroDoLote As Integer, ByVal ListiView As ListView, ByVal Label As ToolStripStatusLabel) As Boolean
    Dim ret As Boolean = False
    Dim xmlRetorno As String = Nothing
    Dim sNFeDadosMsg As String = Nothing
    Dim xmlDoc As XmlDocument = Nothing
    Dim arquivoRetorno As String = Nothing

    Try
        'vrifica a existência do arquivo
        If File.Exists(Me.ArquivoXml) = True Then

            Me.labelMsg.Visible = True
            Me.labelMsg.Text = Space(40) & "Aguarde um instante por Favor. Enviando o arquivo...."
            My.Application.DoEvents()

            'Carrega o arquivo xml para dentro do objeto xmlDoc
            xmlDoc = New XmlDocument
            xmlDoc.Load(Me.ArquivoXml)

            'Declara variável (tipo string) com o conteúdo do Lote NF-e 
            sNFeDadosMsg = xmlDoc.OuterXml()

            'Seleciona o certificado digital
            If Me.SelecionarCertificado = True Then

                Select Case Me.tipoAmbiente
                    Case "1" ' P R O D U Ç Ã O
                        'Define o cabeçalho
                        Dim pnfeCabecMsg As pNfeRecepcao2.nfeCabecMsg
                        pnfeCabecMsg = New pNfeRecepcao2.nfeCabecMsg
                        With pnfeCabecMsg
                            .cUF = "31"
                            .versaoDados = "2.00"
                        End With

                        'Envia o arquivo .xml (Consome o WS)
                        Dim oWS_pNFeRecepcao As pNfeRecepcao2.NfeRecepcao2 = New pNfeRecepcao2.NfeRecepcao2
                        With oWS_pNFeRecepcao
                            .Url = "https://nfe.fazenda.mg.gov.br/nfe2/services/NfeRecepcao2.asmx"
                            .nfeCabecMsgValue = pnfeCabecMsg
                            .Timeout = 50000
                            .ClientCertificates.Add(Me.X509Cert)
                            xmlRetorno = .nfeRecepcaoLote2(xmlDoc.DocumentElement).OuterXml
                        End With

                        'obtem o numero do lote enviado
                        Me.nLote = clsNFeLote2.obtemNumeroDoLote(Me.ArquivoXml)

                        'Salva o retorno da chamada ao processo em um arquivo xml
                        arquivoRetorno = Me.PathNFeMsg & "retornoLote-" & Me.nLote.ToString & ".xml"

                        With xmlDoc
                            .LoadXml(xmlRetorno)
                            .Save(arquivoRetorno)
                        End With

           ....

                        return(true)

                    case "2" 'H O M O L O G A Ç Ã O
           ...
                end select
            else
                return(false)

            end if

    Catch ex As Exception
        MessageBox.Show("Problemas no envio/retorno do arquivo." & vbNewLine & "Descrição do erro: " & ex.ToString, "Gestor .NET", MessageBoxButtons.OK, MessageBoxIcon.Error)
    Finally
        Me.labelMsg.Visible = False
        Label.Text = "Processo Concluído."
        Application.DoEvents()
    End Try
end function

I’m in the process of upgrading to version 3.10 (third generation) and I’m not being able to send.

I’m trying to do this (synchronous mode):

Public Function enviaNFe3(ByVal NumeroDoLote As Integer, ByVal ListiView As ListView, ByVal Label As ToolStripStatusLabel) As Boolean
    Dim ret As Boolean = False
    Dim objRetorno() As object = Nothing
    Dim xmlDoc As XmlDocument = Nothing
    Dim arquivoRetorno As String = Nothing

    Try
        'vrifica a existência do arquivo
        If File.Exists(Me.ArquivoXml) = True Then

            Me.labelMsg.Visible = True
            Me.labelMsg.Text = Space(40) & "Aguarde um instante por Favor. Enviando o arquivo...."
            My.Application.DoEvents()

            'Carrega o arquivo xml para dentro do objeto xmlDoc
            xmlDoc = New XmlDocument
            xmlDoc.Load(Me.ArquivoXml)

            'Seleciona o certificado digital
            If Me.SelecionarCertificado = True Then

                'Define o cabeçalho
                Dim NFeCabecMsg As pNfeAutorizacao3G.nfeCabecMsg = New pNfeAutorizacao3G.nfeCabecMsg
                With NFeCabecMsg
                    .cUF = "31"
                    .versaoDados = "3.10"
                End With

                ''Dados da NFe
                Dim NFeDadosMsg As pNfeAutorizacao3G.nfeDadosMsg = New pNfeAutorizacao3G.nfeDadosMsg
                With NFeDadosMsg
               '(1)???? Da erro de Referencia de objeto não definida para uma instancia de objeto.
                    .Any.SetValue(xmlDoc, 0)
                End With

                'Envia o arquivo .xml (Consome o WS)
                Dim oWS_pNFeAutorizacao3 As pNfeAutorizacao3G.NfeAutorizacao = New pNfeAutorizacao3G.NfeAutorizacao
                With oWS_pNFeAutorizacao3
                    .Url = "https://nfe.fazenda.mg.gov.br/nfe2/services/NfeAutorizacao.asmx"
                    .nfeCabecMsgValue = NFeCabecMsg
                    .Timeout = 50000
                    .ClientCertificates.Add(Me.X509Cert)
                    .SoapVersion = Web.Services.Protocols.SoapProtocolVersion.Soap12
                    '(2)???? Como faço para pegar o retorno?
                    objRetorno = .nfeAutorizacaoLote(NFeDadosMsg)
                End With

                'aqui eu faria o tratamento do retorno

               return (true)
            else
               return (false)
            end if
      end if
    Catch ex As Exception
        MessageBox.Show("Problemas no envio/retorno do arquivo." & vbNewLine & "Descrição do erro: " & ex.ToString, "Gestor .NET", MessageBoxButtons.OK, MessageBoxIcon.Error)
    Finally
        Me.labelMsg.Visible = False
        Label.Text = "Processo Concluído."
        Application.DoEvents()
    End Try
end function

I checked that in other states the requested parameter for the function NfeAutorizacaoLote is the type system.xml.xmlnode but for MG the requested parameter is of type nfeDadosMsg.

I’d be very grateful if someone could help me.

  • Check this link
 
 http://answall.com/questions/50629/retorno-authorize%C3%A7%C3%A3o-nfe-3-10-mg-c? lq=1

1 answer

0

See if it works:
(1)

.Any = New XmlNode() {xmlDoc} 
'dad.Any(0).OuterXml conteudo do arquivo xml

(2)

Dim serv = New NFe.NfeAutorizacaoSoapClient 
'verifique as propriedades adicionais de (NfeAutorizacaoSoapClient) para a correta transmissão (certificado por exemplo)
Dim teste = serv.NfeAutorizacaoLote(nfeCabecMsg, nfeDadosMsg) 
'teste recebe retorno webservice


Good luck.

  • Specify better what you did to solve the problem. @YELAR Don’t forget to evaluate the answer to your question.

Browser other questions tagged

You are not signed in. Login or sign up in order to post.