Jump to content

dev botao

Inclusão de Condutor - Erro sub EventoIncCondutor


tborges
Go to solution Solved by José M. S. Junior,
  • Este tópico foi criado há 633 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Membros Pro

Bom dia,

Conforme relatado no Discord, estamos utilizando a Sub EventoIncCondutor para gerar o evento de inclusão de condutores, no entanto ela esta gerando .INI de maneira incorreta e a SEFAZ rejeita o evento.

A sub possui apenas a propriedade CNPJ, mas o correto é CNPJCPF. Dessa forma, não é possivel efetuar a inclusão do Condutor na SEFAZ pois falha a validação de schema.

{[EVENTO]
idLote=1

[EVENTO001]
xNome=Condutor 11
CPF=11111111111
chMDFe=35220505379815000147580030000001821000000012
cOrgao=35
CNPJ=xxxxxxxxxxxxxxxx (Deveria ser CNPJCPF)
dhEvento=20/05/2022 10:51:18
tpEvento=110114
nSeqEvento=1
versaoEvento=3.00

}

O código que estamos utilizando é o seguinte:

        Dim MDFe As New ACBrMDFe
        Dim Lote As Integer = 1
        Dim Eventos As Integer = 1
        Dim boRet As Boolean = False

        MDFe.LimparListaEventos()

        Dim Condutor As New EventoIncCondutor With {.nSeqEvento = Eventos, .chMDFe = Chave, .xNome = Nome,
            .CPF = CPF, .dhEvento = DateTime.Now, .cOrgao = 35, .CNPJ = xxxxxxxxxxxxx}

        MDFe.CarregarEvento(Condutor)
        MDFe.EnviarEvento(Lote)

Fizemos um truque de pegar o valor de Condutor após chamar a sub, substituir CNPJ por CNPJCPF e passar corrigido para MDFe.CarregarEvento e passou na SEFAZ.

É necessário corrigir EventoIncCondutor para gerar CNPJCPF

Tiago Borges
Head de Produtos

separado.png

logo.gif


Cel: (12) 98190.3952
Site:
www.estrategiasoftware.com.br

Link to comment
Share on other sites

  • Membros Pro

Como EventoIncCondutor apresenta a propriedade .CNPJ e o String INI usa CNPJCPF a solução mais rápida encontra foi esta....

E funciona 100%, até que a equipe de desenvolvimento da ACBr resolva este problema..

Solução adotada(morde e assopra)

        MDFE.LimparListaEventos()

        Dim Condutor As New EventoIncCondutor With {.nSeqEvento = Eventos, .chMDFe = Chave, .xNome = Nome,
            .CNPJ = CNPJ, .CPF = CPF, .dhEvento = DateTime.Now, .cOrgao = 35}

        MDFE.CarregarEvento(Condutor)

        Dim Ini As String = Condutor.ToString
        Ini = Ini.Replace("CNPJ", "CNPJCPF")

        MDFE.LimparListaEventos()
        MDFE.CarregarEventoINI(Ini)

Tiago Borges
Head de Produtos

separado.png

logo.gif


Cel: (12) 98190.3952
Site:
www.estrategiasoftware.com.br

Link to comment
Share on other sites

  • Consultores

Boa tarde Tiago,

Analisando o código que faz a leitura do arquivo INI temos o seguinte:

        infEvento.CNPJCPF    := INIRec.ReadString(sSecao, 'CNPJCPF', '');

Acredito que o manual esteja errado, pois o correto é CNPJCPF.

Você deve gerar o arquivo INI com o campo CNPJCPF.

E não gerar com o CNPJ e depois usar o Replace para trocar por CNPJCPF.

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link to comment
Share on other sites

  • Membros Pro

O problema Italo é que não gero arquivo Ini, se olhar o código eu uso as Classes...então o bug esta no Metodo que converte a Classe em Ini string...

As Classes são ferramentas mais modernas...me permite serializar,que não usei ainda porque estou entrando agora no mundo ACBr Lib...

Usando as Classes Boleto fiz todo o processo em 4 dias...

O MDFe iniciei na 2ª e agora só falta Encerrar que pretendo terminar ainda hoje a tarde....

E considero isso um aquecimento para entrar na NFe...

Mas valeu sua atenção....

  • Like 1

Tiago Borges
Head de Produtos

separado.png

logo.gif


Cel: (12) 98190.3952
Site:
www.estrategiasoftware.com.br

Link to comment
Share on other sites

  • Membros Pro

Acho que o problema é esta Classe aqui...

image.png.d25fc0597a318709fcd8ac19d5608df0.png

Ela disponibiliza CNPJ e não CNPJCPF, veja ai se isso confere...

Se for isso e vocês arrumarem ai os codigos de inicialização de classes deve mudar....

 

        Dim Encerramento As New EventoEncerramento With {.chMDFe = ChaveAcesso, .cMun = cMun, .CNPJ = CNPJ,
            .cOrgao = 35, .cUF = nUF, .dhEvento = DateTime.Now, .dtEnc = DtEncerramento, .nProt = Protocolo,
            .nSeqEvento = Eventos}

        MDFE.CarregarEvento(Encerramento)

        Dim Ini As String = Encerramento.ToString
        Ini = Ini.Replace("CNPJ", "CNPJCPF")
 

Onde esta .CNPJ disponibilizado pela Classe deve aprensetar CNPJCPF quando arrumar a Classe EventoBase...

Ai o truque do INI e INI.replace sai do código...

Check isso...at+

 

  • Like 1

Tiago Borges
Head de Produtos

separado.png

logo.gif


Cel: (12) 98190.3952
Site:
www.estrategiasoftware.com.br

Link to comment
Share on other sites

  • Membros Pro

Acho que o problema é esta Classe aqui...

image.png.d25fc0597a318709fcd8ac19d5608df0.png

Ela disponibiliza CNPJ e não CNPJCPF, veja ai se isso confere...

Se for isso e vocês arrumarem ai os codigos de inicialização de classes deve mudar....

 

        Dim Encerramento As New EventoEncerramento With {.chMDFe = ChaveAcesso, .cMun = cMun, .CNPJ = CNPJ,
            .cOrgao = 35, .cUF = nUF, .dhEvento = DateTime.Now, .dtEnc = DtEncerramento, .nProt = Protocolo,
            .nSeqEvento = Eventos}

        MDFE.CarregarEvento(Encerramento)

        Dim Ini As String = Encerramento.ToString
        Ini = Ini.Replace("CNPJ", "CNPJCPF")
 

Onde esta .CNPJ disponibilizado pela Classe deve aprensetar CNPJCPF quando arrumar a Classe EventoBase...

Ai o truque do INI e INI.replace sai do código...

Check isso...at+

 

Italo como disse meu prazo de termino do MDFe era hoje e hoje foi finalizado...

Gerando MDFe com todas as Classes envolvidas e todos os Eventos...

Isso reforça que  o uso da Lib é ótimo...

Foram gasto 5 dias para escrever todo o MDFe, apesar dos 3 problemas encontrados...

Então vale a pena corrigi-los, pois vai aumentar em muito a produtividade e confiança dos programadores de Aplicações Comerciais e Industruiais.

Um abraço e um bom final se semana, vou para uma cervejinha merecida hoje...

 

Tiago Borges
Head de Produtos

separado.png

logo.gif


Cel: (12) 98190.3952
Site:
www.estrategiasoftware.com.br

Link to comment
Share on other sites

  • Consultores

Tiago,

Não foi eu que escrevei a Lib, apenas tentei ajudar e encontrar o problema.

Já passei a bola para a Equipe ACBr, acredito que semana que vem teremos uma nova versão da DLL com esse problema corrigido.

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link to comment
Share on other sites

  • Moderadores
Em 20/05/2022 at 15:50, tborges disse:

Acho que o problema é esta Classe aqui...

Bom dia, como essa é classe base dos eventos pode afetar para outros eventos DFe que de fato utilizam a nomenclatura CNPJ, mas estamos solucionando esse problema e os demais referente a conversão para gerar o arquivo .ini de entrada e saída utilizando essas classes. Em breve postamos aqui.

Consultor SAC ACBr

José Junior
Ajude o Projeto ACBr crescer - Assine o SAC

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

Link to comment
Share on other sites

  • 2 weeks later...
  • Moderadores
  • Solution

Bom dia, 

Favor atualizar os fontes dos exemplos C# do nosso SVN para testes da solicitação acima.

http://svn.code.sf.net/p/acbr/code/trunk2/Projetos/ACBrLib/Demos/C%23/

Foi ajustado também o retorno da propriedade "tpAmb" que estava retornando o valor default em algumas situações.

Consultor SAC ACBr

José Junior
Ajude o Projeto ACBr crescer - Assine o SAC

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

Link to comment
Share on other sites

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.