Ir para conteúdo
  • Cadastre-se

dev botao

Generalização de algumas Units


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

Recommended Posts

  • Consultores

Bom dia a todos,

Foi feito uma generalização nas Units: pcnConsCad, pcnRetConsCad, pcnConsStatServ, pcnRetConsStatServ, pcnDistDFeInt e pcnRetDistDFeInt.

A motivação é porque elas aparecem de forma repetidas com nomes diferentes nos fontes dos componentes ACBrNFe, ACBrCTe, ACBrMDFe e ACBrBPe.

A generalização e migração para a pasta PCNComum faz com que tenhamos mais controle das correções e melhorias, sem falar na redução de código.

Infelizmente ao generalizar o pcnRetDistDFeInt ocorreu uma quebra de código, pois se fez necessário alterar o nome de uma classe e de algumas propriedades publicas.

Para quem usa o DistribuicaoDFe será necessários fazer alguns ajustes no código da aplicação.

Trocar os resNFe por resDFe e chNFe por chDFe (para quem baixa as Notas).

Trocar os resCTe por resDFe e chCTe por chDFe (para quem baixa os Conhecimentos).

Trocar os resMDFe por resDFe e chMDFe por chDFe (para quem baixa os Manifestos). 

  • Curtir 9
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 para o comentário
Compartilhar em outros sites

  • Moderadores
Citar

Para quem usa o DistribuicaoDFe será necessários fazer alguns ajustes no código da aplicação.

Trocar os resNFe por resDFe e chNFe por chDFe (para quem baixa as Notas).

Trocar os resCTe por resDFe e chCTe por chDFe (para quem baixa os Conhecimentos).

Trocar os resMDFe por resDFe e chMDFe por chDFe (para quem baixa os Manifestos). 

 

@Italo Jurisato Junior

Se você preferir pode criar um apelido para classe:

TresNFe  = class(TresDFe);

Dessa forma você não gera esses ajustes na aplicação;

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • Consultores

Boa tarde Walmir,

Os ajustes são tão pequenos que na minha aplicação não levei mais do que 20 segundos para corrigir e compilar com sucesso.

  • Curtir 2
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 para o comentário
Compartilhar em outros sites

  • Consultores

Boa tarde Valdir,

Acabei de enviar tudo, favor atualizar os fontes e reinstale usando o ACBrInstall_Trunk2, não esqueça de marcar a opção para apagar os fontes antigos.

  • Curtir 1
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 para o comentário
Compartilhar em outros sites

  • Membros Pro
13 horas atrás, Italo Jurisato Junior disse:

Boa tarde Valdir,

Acabei de enviar tudo, favor atualizar os fontes e reinstale usando o ACBrInstall_Trunk2, não esqueça de marcar a opção para apagar os fontes antigos.

Bom dia,

Beleza, atualizei novamente agora e tudo certo, as mudanças estão presentes.

Obrigado.

Abraços.

  • Curtir 2

Valdir Dill

Rio de Janeiro - RJ

 

 

Link para o comentário
Compartilhar em outros sites

  • Consultores

Boa tarde a todos,

Vamos cortar mais algumas gorduras, chegou a vez da Consulta ao Recibo.

Tanto a unit que gera o XML de consulta bem como a que lê o retorno foram generalizadas e agora se encontram dentro da pasta PCNComum.

Como nem tudo são flores, ocorreu quebra de código, abaixo um exemplo de correção a ser feita em suas aplicações:


       for i := 0 to (ACBrNFe.WebServices.Retorno.NFeRetorno.ProtNFe.Count - 1) do
        begin
         sDataHora     := DateTimeToStr(ACBrNFe.WebServices.Retorno.NFeRetorno.ProtNFe.Items.dhRecbto);
         sProtocolo    := ACBrNFe.WebServices.Retorno.NFeRetorno.ProtNFe.Items.nProt;
         sStat         := IntToStr(ACBrNFe.WebServices.Retorno.NFeRetorno.ProtNFe.Items.cStat);
         sMotivo       := ACBrNFe.WebServices.Retorno.NFeRetorno.ProtNFe.Items.xMotivo;
         sNotaFiscal   := Copy(ACBrNFe.WebServices.Retorno.NFeRetorno.ProtNFe.Items.chNFe, 26, 3)
                          + '.' + Copy(ACBrNFe.WebServices.Retorno.NFeRetorno.ProtNFe.Items.chNFe, 29, 3)
                          + '.' + Copy(ACBrNFe.WebServices.Retorno.NFeRetorno.ProtNFe.Items.chNFe, 32, 3);

         MemoStatus.Lines.Add('  ' + sNotaFiscal + '  ' + sProtocolo + ' ' + sDataHora + '  ' + sStat + ' - ' + sMotivo);
        end;

Alterar para:

       for i := 0 to (ACBrNFe.WebServices.Retorno.NFeRetorno.ProtDFe.Count - 1) do
        begin
         sDataHora     := DateTimeToStr(ACBrNFe.WebServices.Retorno.NFeRetorno.ProtDFe.Items.dhRecbto);
         sProtocolo    := ACBrNFe.WebServices.Retorno.NFeRetorno.ProtDFe.Items.nProt;
         sStat         := IntToStr(ACBrNFe.WebServices.Retorno.NFeRetorno.ProtDFe.Items.cStat);
         sMotivo       := ACBrNFe.WebServices.Retorno.NFeRetorno.ProtDFe.Items.xMotivo;
         sNotaFiscal   := Copy(ACBrNFe.WebServices.Retorno.NFeRetorno.ProtDFe.Items.chDFe, 26, 3)
                          + '.' + Copy(ACBrNFe.WebServices.Retorno.NFeRetorno.ProtDFe.Items.chDFe, 29, 3)
                          + '.' + Copy(ACBrNFe.WebServices.Retorno.NFeRetorno.ProtDFe.Items.chDFe, 32, 3);

         MemoStatus.Lines.Add('  ' + sNotaFiscal + '  ' + sProtocolo + ' ' + sDataHora + '  ' + sStat + ' - ' + sMotivo);
        end;

Notem que devemos trocar o ProtNFe por ProtDFe e chNFe por chDFe (não coloquei em negrito todos, mas acho que ficou claro).

  • Curtir 6
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 para o comentário
Compartilhar em outros sites

Bom dia!
Após a atualização estou tendo o seguinte erro ao compilar no Lazarus:

ACBrNFeWebServices.pas(47,30) Fatal: Impossível localizar pcnRetConsCad usado por ACBrNFeWebServices, ppu incompatível=D:\COMPONENTES\ACBr\Lib\Lazarus\PCNComum\i386-win32\pcnRetConsCad.ppu, pacotes múltiplos: PCNComum, ACBr_NFe

Link para o comentário
Compartilhar em outros sites

  • Consultores

Acabei de reinstalar aqui no Lazarus 2.0RC3 e foi tranquilo.
Você precisa recompilar a IDE. Talvez seja necessário fazer uma limpeza antes.

  • Curtir 2

[]'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.
Link para o comentário
Compartilhar em outros sites

  • Moderadores
1 hora atrás, Fagner Costa disse:

Bom dia!
Após a atualização estou tendo o seguinte erro ao compilar no Lazarus:

ACBrNFeWebServices.pas(47,30) Fatal: Impossível localizar pcnRetConsCad usado por ACBrNFeWebServices, ppu incompatível=D:\COMPONENTES\ACBr\Lib\Lazarus\PCNComum\i386-win32\pcnRetConsCad.ppu, pacotes múltiplos: PCNComum, ACBr_NFe

Boa tarde, certifique-se de que não há novas atualizações pendentes, após isso utilize no Lazarus a opção: Tools / Build Lazarus: clean up + build all ", isso vai Compilar os packages atualizados.

 

Consultor SAC ACBr

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

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

Link para o comentário
Compartilhar em outros sites

Boa tarde

Só para compartilhar, eu sincronizei os fontes, fiz a instalação marcando a opção para apagar os fontes antigos. Compilou tudo com sucesso.

Ao compilar a minha aplicação estava dando erro. Ela ainda estava apontando para o arquivo pcnDistDFeInt, na pasta PCNNFe. Então deletei a pasta, sincronizei e instalei novamente e ai funcionou.

Por algum motivo o arquivo não tinha sido deletado.

  • Curtir 2
Link para o comentário
Compartilhar em outros sites

16 minutos atrás, Augusto Fontana disse:

Boa tarde

Só para compartilhar, eu sincronizei os fontes, fiz a instalação marcando a opção para apagar os fontes antigos. Compilou tudo com sucesso.

Ao compilar a minha aplicação estava dando erro. Ela ainda estava apontando para o arquivo pcnDistDFeInt, na pasta PCNNFe. Então deletei a pasta, sincronizei e instalei novamente e ai funcionou.

Por algum motivo o arquivo não tinha sido deletado.

Acredito que tenha passado batido algum conflito na hora da sincronia, então tem que ficar ligado na hora de sincronizar para deletar os arquivos antigos.

  • Curtir 2
Link para o comentário
Compartilhar em outros sites

  • 1 mês depois ...

Ola
Eu pegava o conteudo do xml nesta propriedade
ACBrNFe1.WebServices.DownloadNFe.retDownloadNFe.XML

Agora ela não existe mais.
Como eu faço pra pegar o conteudo do XML no geral não deu outros erros 

So mesmo trocar pra coisas do DistribuicaoDFe.retDistDFe

 

Mas esta ACBrNFe1.WebServices.DownloadNFe.retDownloadNFe.XML não consegui entender

Link para o comentário
Compartilhar em outros sites

  • Consultores

Bom dia John,

Conforme consta na página 5 da Nota Técnica 2014/002 versão 1.02b os webservices: ConstNFeDest e DownloadNFe foram desativados em 31/05/2017 sendo substituídos pelo DistribuicaoDFe.

Mantivemos por um certo tempo no componente código referente a esses dois métodos, mas recentemente foram removidos, pelo simples fato de não fazer nenhum sentido manter uma rotina que acessa um webservice que não existe mais.

Sugiro que leia com muita atenção a Nota Técnica mencionada acima para entender como que funciona o DistribuicaoDFe e consequentemente implementar de forma correta em sua aplicação.

  • Curtir 2
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 para o comentário
Compartilhar em outros sites

×
×
  • 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.