Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

  • Membros Pro
Postado

boa tarde a todos

logo que iniciei a integralizar meu aplicativo com o componente ACBrNFe  fui orientado pelo Ítalo, a sempre gravar o XML gerado em um banco de dados, porque em uma certa ocasião o usuário deletou o xml de sua pasta, e tivemos de efetuar o download da Sefaz. A partir dai efetuei essa evolução em meu aplicativo. e quando isso acontece eu tenho um botão em meu aplicativo em que o usuário informa a chave da NFe e ele efetua a rotina abaixo:

     (CdsGeral.FieldByName('xmlarq') as TBlobField).SaveToFile(ExtractFilePath(edtPathLogs.Text) + vChave + '-nfe.xml');

     ACBrNFe1.NotasFiscais.LoadFromFile(edtPathLogs.Text + vChave + '-nfe.xml');

     ACBrNFe1.Consultar;

    ShowMessage('Processo Finalizado Com Geração do XML Em Sua Respectiva Pasta');

Quando eu efetua essa rotina antes de atualizar hoje dia 25/9/2015, ele gravava na pasta de logs os arquivos de pedidos que são -ped-sit.xml, o -sit.xml, e o -nfe.xml ele gravava na pasta correta do xml ou seja cnpj/nfe/aaaamm/nfe/....xml. Mesmo eu informando o edtPathLogs.Text. Eu acredito que a função ACBrNF1.Consultar foi alterada para que isso não acontece-se mais. Tentei mudar o edtPathLogs.txt, para edtPathNFe.txt, e ai ele gravou os pedidos na pasta de logs, mas o -nfe.xml gravou fora, em meu %meupath%, não gravou dentro do %meupath%/cnpj/nfe/aaaamm/nfe/....xml.

Alguem poderia verificar isso?

muito obrigado

Paulinho

 

 

  • Membros Pro
Postado

Bom dia Régys

Eu preciso manter esses arquivos em uma base de dados, porque já me aconteceu do usuário deletar o xml da pasta. e ai c tenho ele guardado em uma base de dados, fica simples eu carregar o mesmo e efetuar o download. Essa propriedade já esta como true. acontece que antes dessa atualização o comando ACBrNFe1.Consultar; salvava os arquivos -ped-sit.xml, o -sit.xml na pasta de logs, e o -nfe.xml, na sua pasta respectiva ao ano/mes, eu gostaria que permanece assim, alguma alteração ai trocou essa lógica, que era otima. agora esta salvando tudo na pasta de logs.

Por favor tem como voltar como era antes?

Obrigado

Paulinho

  • Moderadores
Postado

Você não entendeu, devemos sim sempre gravar na base de dados, mas somente o XML autorizado, não todos os XMLs de pedidos, situação, etc, etc.

Você deve gravar somente o XML autorizado e retornado pelo SEFAZ, esse é o que tem a validade jurídica é não pode ser perdido, todo o resto só é necessário durante o processo de autorização e em caso de um novo envio são gerados novamente do zero, não são usados para mais nada.

Grave somente o XML retornado e autorizado o resto é desnecessário.

Equipe ACBr

Régys Borges da Silveira

http://www.regys.com.br

certificacao delphicertificacao delphi
  • Membros Pro
Postado (editado)

Régys bom dia

Obrigado pelo retorno. mas é exatamente isso que faço, eu só guardo os XML autorizado. Pode ser que eu não esteja me explicando direito a voce.

Vamo lá. Hoje eu só guardo o xml autorizado, mas acontece que o usuario foi lá na pasta %meupath%/cnpj/aaaamm/nfe, e deletou o xml de lá. Ai eu preciso efetuar um download atraves dessa guarda em que gravei em minha base, e ai eu uso essa função. O que mé é estranho e que estava funcionando certinho até dia 25, depois entornou tudu.

função simples que funcionada certinho

o que eu queria que fica-se como era. o -nfe.xml grava na sua respectiva pasta de geração, e os outros dois poderia ficar nn pasta de log

     (CdsGeral.FieldByName('xmlarq') as TBlobField).SaveToFile(ExtractFilePath(edtPathLogs.Text) + vChave + '-nfe.xml');

     ACBrNFe1.NotasFiscais.LoadFromFile(edtPathLogs.Text + vChave + '-nfe.xml');

     ACBrNFe1.Consultar;

    ShowMessage('Processo Finalizado Com Geração do XML Em Sua Respectiva Pasta');

eu acho que o problema esta na função consultar. foi ai que foi alterado

Muito obrigado

Paulinho

 

Editado por Antonio Paulo Mangili
  • Moderadores
Postado

Desculpe mas não estou entendendo o que você deseja.

Você disse que grava o XML autorizado no Banco de Dados, então independente de arquivos gravados em disco, você tem um campo no Banco de Dados onde os XMLs estão, basta salvar diretamente de lá como deseja.

Equipe ACBr

Régys Borges da Silveira

http://www.regys.com.br

certificacao delphicertificacao delphi
  • Membros Pro
Postado (editado)

Régys boa noite

Tá muito simples. Sim eu gravo o xml em um banco meu. Só que para salvar eu preciso fazer o ACBrNFe1.NotasFiscais.LoadFromFile(edtPathLogs.Text + vChave + '-nfe.xml');

ACBrNFe1.Consultar;

Ok

Só que quando eu fazia isso o arquivo consultado gravava na pasta correta (%meupath%/cnpj/nfe/aaaamm/nfe. agora esta gravando na pasta log, e eu preciso que volte como era.

Tenho uma versão antiga aqui que estava fazendo isso, foi depois da alteração do dia 25/9 que ferro tudu.

Eu uso isso quando o usuário deleta o xml autorizado na pasta de armazenamento.

Régys no manual a função acbrnfe1.consultar faz isso

ACBrNFe1.Consultar: Boolean;
Essa função é muito útil quando ocorre algum problema após o envio da NF-e
para SEFAZ e o XML assinado fica sem o protocolo de autorização e na SEFAZ
a mesma encontra-se autorizada.
A função Consultar realiza uma consulta a SEFAZ e obtém como resposta a
situação atual da NF-e informada.
É aconselhável alimentar o componente com os dados da NF-e a ser
consultada, lendo o XML da mesma através do LoadFromFile (por exemplo),
desta forma se o XML estiver assinado, receberá as TAGs referentes ao
protocolo de autorização caso esta tenha sido autorizada.

Eu alimentei o componente com as informações do meu banco. Onde ele salva esse XML???. Antes salvava na pasta correta agora esta salvando no log

Obrigado

Paulinho

Editado por Antonio Paulo Mangili
  • Moderadores
Postado

Olha você está fazendo errado, para que ler o arquivo XML do arquivo e consultar após enviar, sendo que o componente já tem o arquivo XML autorizado é pronto nele?

Basta após enviar ler a propriedade XML

ACBrNFe1.NotasFiscais[0].XML

Isso ai vai retornar o XML autorizado que você grava no banco, não tem porque ficar lendo arquivos, consultando, etc, etc, basta enviar, tratar o retorno e gravar no banco.

 

Equipe ACBr

Régys Borges da Silveira

http://www.regys.com.br

certificacao delphicertificacao delphi
  • Membros Pro
Postado

Régys Obrigado pelo retorno, mas veja só

Voce esta supondo que no meu arquivo tenha salvo o XML com autorização, mas caso não eu preciso efetuar a consulta para anexar a autorização de uso correto?, e ai executo essa função abaixo que esta no manual, Mas acontece que quando eu efetuava essa função ele armazenava o xml, assinado, e protocolado na pasta correta e não na pasta de log como esta hoje. essa função acima que lhe passei uso desde que implementei minha ERP com o projeto acbr, mas acontece que depois do dia 25/9 ele passou a gravar na pasta do log.

ACBrNFe1.Consultar: Boolean;
Essa função é muito útil quando ocorre algum problema após o envio da NF-e
para SEFAZ e o XML assinado fica sem o protocolo de autorização e na SEFAZ
a mesma encontra-se autorizada.
A função Consultar realiza uma consulta a SEFAZ e obtém como resposta a
situação atual da NF-e informada.
É aconselhável alimentar o componente com os dados da NF-e a ser
consultada, lendo o XML da mesma através do LoadFromFile (por exemplo),
desta forma se o XML estiver assinado, receberá as TAGs referentes ao
protocolo de autorização caso esta tenha sido autorizada.

obrigado

paulinho

  • Membros Pro
Postado

Bom dia Daniel.

Obrigado por me retornar. Vou tentar ser mais explicativo possível diante do manual que tenho aqui comigo Ok.

Vamos supor que tenha ocorrido esse detalhe abaixo:

Por algum motivo ocorrer algum problema após o envio da NF-e para sefaz e o xml assinado fica sem protocolo de autorização e na sefaz a mesma encontra-se autorizada.

O que eu faço: Eu carrego o componente novamente com os dados arquivado em minha base de dados com a função abaixo:

     (CdsGeral.FieldByName('xmlarq') as TBlobField).SaveToFile(ExtractFilePath(edtPathLogs.Text) + vChave + '-nfe.xml'); PS: essa variavel vChave contem o xml completo mas sem o protocolo de autorização porque ocorreu algum motivo.

     ACBrNFe1.NotasFiscais.LoadFromFile(edtPathLogs.Text + vChave + '-nfe.xml');

     ACBrNFe1.Consultar;

Nesse exato momento o projeto recebe as tag referentes ao protocolo de autorização e salva os arquivos -ped-sit.xml, o -sit.xml na pasta de logs, e o -nfe.xml, ele estava salvando na pasta %meupath%/cnpj/nfe/aaaamm/nfe, mas agora não esta salvando mais.Ele salva tudo na pasta de log. Eu gostaria que volta-se como era antes

Estava certo desde o dia 25/9 quando fiz o svn. após isso esta ocorrendo isso. inclusive no demo esta assim também, porque já fiz um teste.

Após essa atualização estou também com outro problema que o Régys esta tentando acertar para mim.http://www.projetoacbr.com.br/forum/topic/24656-pasta-de-gravação-dos-eventos/#comment-159732

Peço por favor Daniel que veja isso para mim, porque esta provocando um desconforto em meu cliente. Sei que o tempo de voceis é bem corrido, mas peço gentilmente.

Obrigado

Paulinho

 

  • Fundadores
Postado

Paulo,

Por favor vamos ser mais objetivos... Entenda que para debugarmos o erro, primeiro precisamos conseguir reproduzi-lo... nós não temos os seu ambiente ou seus fontes...

Como eu reproduzo o problema usando o Demo do ACBrNFe ? (passo a passo)

Se você não consegue reproduzir o problema no Demo, por favor crie um mini-projeto, com um botão, que quando clicado, chame a sequencia de comandos que demonstre o erro...

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

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

  • Membros Pro
Postado

Daniel.

Eu não consigo ser mais claro para voceis. Vou deixar assim, e tentar solucionar esse procedimento com alguma função em meu projeto. Já fiz de tudo para explicar uma coisa bem simples que estava funcionando normal até o dia 25/9, e que por alguma alteração afetou isso. Esse post vou fechar. Eu não sei mais como explicar. Tenho outro conforme informado a voce com um problema que estava funcionando certinho e depois do svn de 25/9 afetou tambem, mas esse preciso que voceis acertam. o italo acerto isso conforme revisão 10103,10102, mas acertou somente para o CTe e o MDFe, é preciso acertar para a NF-e também

Obrigado

Paulinho

 

  • Fundadores
Postado

Prezado,

suas palavras:

Estava certo desde o dia 25/9 quando fiz o svn. após isso esta ocorrendo isso. inclusive no demo esta assim também, porque já fiz um teste.

Se você consegue reproduzir o problema no Demo... isso é TUDO o que estou lhe pedindo a 3 interações...

Como posso reproduzir o problema no Demo do ACBrNFe ? como configurá-lo ? qual a sequencia de comandos ?

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

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

  • Membros Pro
Postado

Prezado,

suas palavras:

Estava certo desde o dia 25/9 quando fiz o svn. após isso esta ocorrendo isso. inclusive no demo esta assim também, porque já fiz um teste.

Se você consegue reproduzir o problema no Demo... isso é TUDO o que estou lhe pedindo a 3 interações...

Como posso reproduzir o problema no Demo do ACBrNFe ? como configurá-lo ? qual a sequencia de comandos ?

Esse é o comando:

     ACBrNFe1.NotasFiscais.LoadFromFile(edtPathLogs.Text + vChave + '-nfe.xml');

     ACBrNFe1.Consultar;

Se voce produzir ele no demo vera que o XML ira salvar na pasta de logs e não  na pasta correta

Obrigado

 

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