Ir para conteúdo
  • Cadastre-se

dev botao

Erro no GetPathEvento


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

Recommended Posts

  • Consultores

Boa noite a todos,

Por favor atualizem os fontes e realizem novos testes.

Pois foi removido dos componentes ACBrCTe e ACBrMDFe a propriedade SalvarEvento.

Agora quem determina se os arquivos *-procEventoCTe.xml e *-procEventoMDFe.xml serão ou não gravados em disco é a propriedade de configuração:

Configuracoes.Arquivos.Salvar := [True = Grava | False = Não Grava];

Consultor SAC ACBr

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

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

  • Fundadores

Italo,

pergunta de quem não conhece CTe ou MDFe...

e se o programador quiser saldar apenas os XMLs recebidos e assinados ( mas não quiser salvar os eventos ) ?

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.

Link para o comentário
Compartilhar em outros sites

  • Consultores

Bom dia Daniel,

No ACBrNFe a propriedade SalvarEvento antes se chamava SalvarCCeCanEvento e tinha como finalidade definir se os XMLs referente a eventos: CCe e Cancelamento seriam salvos na pasta definida por GetPathEvento ou salvos na pasta definida por GetPathCCe / GetPathCan.

Sendo assim ela não tinha a função de informar se os XMLs seriam salvos ou não e sim definir o local de gravação, quem realmente defini se será salvo ou não é a propriedade Salvar (Configuracoes.Arquivos.Salvar).

Se você abrir a unit ACBrNFeWebServices (repositório Trunk) e procurar pela propriedade SalvarCCeCanEvento vai encontra-la apenas em: function TNFeEnvEvento.GerarPathEvento: String; e vai poder confirmar o que escrevi acima.

Se tratando de Eventos, o componente ACBrNFe gera 3 XMLs, são eles: 

*-ped-eve.xml  <=== XML que contem o pedido do evento, ou seja, é a solicitação enviada a SEFAZ

*-eve.xml  <=== XML que contem o retorno da SEFAZ informando que o evento foi registrado ou não.

*-procEventoNFe.xml  <=== esse XML contem o pedido e o retorno, ou seja, o conteúdo dos dois acima e é o XML que devemos encaminhar para o destinatário e é este que usamos para imprimir ou gerar o PDF do Evento.

Lembre-se que o XML da NF-e, ou seja, *-nfe.xml é a nota e esse arquivo para ter validade jurídica tem que estar assinado e com o protocolo de autorização.

Caso esta nota venha ser cancelada, o XML da NF-e não deve ser alterado (em nenhum manual ou nota técnica diz que devemos substituir o protocolo de autorização pelo de cancelamento).

Sendo assim ao efetuar o cancelamento (evento) teremos o *-procEventoNFe.xml, este é um documento com validade jurídica pois esta assinado e possui o protocolo da SEFAZ que diz que o evento foi registrado e vinculado a NF-e.

De forma semelhante os componentes ACBrCTe e ACBrMDFe geram os 3 XMLs acima citados e com os mesmos propósitos sendo que o último tem o seu nome diferente: *-procEventoCTe.xml / *-procEventoMDFe.xml

No meu entendimento e pela legislação devemos armazenar em disco ou no banco de dados os arquivos que tem validade jurídica, os demais podemos com o passar do tempo excluir ou até mesmo não salvar.

Sendo assim concluo que a propriedade: Configuracoes.Arquivos.Salvar tem que ser usada para definir se os arquivos com validade jurídica serão salvos em disco ou não, se eu optar por não salvar tenho que ler a propriedade que contem o XML em questão para poder armazena-lo no banco de dados.

Por outro lado a propriedade: Configuracoes.Geral.Salvar tem que ser usada para definir se os demais arquivos (sem validade jurídica) serão salvos em disco ou não.

 

  • Curtir 2
Consultor SAC ACBr

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

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

  • Membros Pro

Italo, 

Com relação a NFe: quando emito uma NFe estão sendo salvos os arquivos final -env-lot.xml, -rec.xml, -ped-rec.xml e -proc-rec.xml.

Setei as configurações Geral.Salvar:= False, Arquivos.Salvar:= True, Arquivos.SalvarApenasNFeProcessadas:= True, Arquivos.SalvarEvento:= False;

Atualizei o ACBr agora e mesmo assim esses arquivos continuam sendo salvos. Tem mais alguma configuração a ser feita ?

Obrigado,

Marcello Cainelli

Doutor Byte Sistemas

Link para o comentário
Compartilhar em outros sites

  • Consultores

Bom dia Marcello,

Os arquivos: -env-lot.xml, -rec.xml, -ped-rec.xml e -proc-rec.xml, entre outros são arquivos de envio e de retorno da SEFAZ e conforme a minha postagem anterior não os considero como arquivos com validade jurídica.

Para mim, os XMLs: *-nfe.xml (assinado e protocolado), *-procEventoNFe.xml e *-procInutNFe.xml são os únicos com validade jurídica, os demais não.

É por isso que deveríamos mudar o conceito das propriedades Salvar para:

Configuracoes.Geral.Salvar <== Salva ou não os arquivos sem validade jurídica

Configuracoes.Arquivos.Salvar <== Salva ou não os arquivos com validade jurídica

Essa alteração é simples de ser feita e seria realizada em apenas uma unit.

Fazendo essa alteração os componentes ACBrNFe, ACBrCTe e ACBrMDFe por herança passariam a ter o mesmo comportamento no que diz respeito a essas propriedades.

 
  • Curtir 2
Consultor SAC ACBr

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

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

  Boa Noite Italo, muito obrigado pela suas explicações, mas estou com uma duvida assim como o Marcello, segui as suas orientações setando as propriedades salvar, porém continua gerando os eventos de -env-lote.xml, -rec.xml, etc. você diz que esta alteração poderia ser feita em uma UNIT dentro ACBR ou seria na UNIT do nosso projeto, pois dentro do projeto eu já alterei e não surtiu efeito. Veja como fiz e se puder me ajudar eu lhe agradeço.

      if vs_param_temp <> 'S' then
        ACBrNFe.Configuracoes.Geral.Salvar := False
      else
        ACBrNFe.Configuracoes.Geral.Salvar := True;

      with ACBrNFe.Configuracoes.Arquivos do
       begin
         Salvar             := True;
         SepararPorMes      := false;
         AdicionarLiteral   := False;
         EmissaoPathNFe     := false;
         SalvarEvento       := False;
         SepararPorCNPJ     := false;
         SepararPorModelo   := false;
         PathSalvar         := vs_path_temp;
         PathSchemas        := vs_path_schemas;
         PathNFe            := vs_path_temp;
         PathInu            := vs_path_temp;
         PathEvento         := vs_path_temp;
       end;

   Obrigado por sua disposição a nos ajudar.

   Atenciosamente,

              Nilson.

 

 

Link para o comentário
Compartilhar em outros sites

Boa tarde!

Mesmo setando o ACBr conforme abaixo, ainda está salvando os arquivos "auxiliares".

  ACBrNFe1.Configuracoes.Geral.Salvar := False;
  ACBrNFe1.Configuracoes.Arquivos.Salvar := True;

Verifiquei no código da imagem em anexo que esses arquivos estão utilizando a Arquivos.Salvar e não a Geral.Salvar. Seria isso mesmo?

Att,

Wilson.

salvar.png

Link para o comentário
Compartilhar em outros sites

  • Consultores

Bom dia Wilson,

Exatamente, essa é a alteração que estou sugerindo que seja feita, no IF em vez de checar o valor de Arquivos.Salvar, checar o valor de Geral.Salvar.

Essa procedure SalvarEnvio, é responsável por salvar os XML de envio para a SEFAZ, que pode ser um evento, uma consulta entre outros.

Fazendo essa alteração podemos determinar se desejamos ou não se esses tipos de arquivos sejam salvos ou não em disco.

Por outro lado os arquivos de validade jurídica, como o XML da NF-e assinado e protocolado, mais os XMLs de *-procEventoNFe.xml e *-procInutNFe.xml seriam salvos em disco ou não mediante o valor da propriedade Arquivos.Salvar.

No meu entendimento devemos conceituar:

Geral.Salvar -> salva ou não arquivos gerais, ou seja, arquivos de envio e de retorno da SEFAZ.

Arquivos.Salvar -> salva ou não arquivos com validade jurídica.

WebServices.Salvar -> salva ou não arquivos gerais mas de forma completa ou seja com as TAGs de envelopamento.

  • Curtir 3
Consultor SAC ACBr

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

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

  • Fundadores

Oi Italo... Vamos debater sobre isso na área privada dos moderadores... eu pessoalmente, concordo com o seu ponto de vista...

Vamos dar uma chance dos demais desenvolvedores com direito a commit, se manifestarem contra ou a favor da modificação...  Se ninguém o fizer, procedemos com a modificação...

Você pode abrir um novo tópico lá ?

  • Curtir 3
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.

Link para o comentário
Compartilhar em outros sites

  • Membros Pro

Oi amigos,

Estou seguindo esse post e hoje atualizei os fontes pra ver como os arquivos estão sendo salvos.

Eu não me importo em salvar arquivos com ou sem validade jurídica.

O que me interessa é que na pasta mensal, já que sempre utilizei esse recurso, salve os arquivos com validade jurídica.

Porém isso não está acontecendo. Eu tenho uma pasta chamada ArqCte onde as pastas mensais são criadas dentro dela.

O arquivo com validade jurídica está sendo salvo na pasta ArqCte e na pasta mensal está sendo salvo um arquivo sem a informação de autorização do cte.

Já fiz todas as tentativas e não salva. Segue abaixo o fonte. 

  DM1.ACBrCTe1.Configuracoes.Arquivos.Salvar := True;
  DM1.ACBrCTe1.Configuracoes.Geral.Salvar := True;
  DM1.ACBrCTe1.Configuracoes.WebServices.Salvar := True;
  DM1.ACBrCTe1.Configuracoes.Arquivos.EmissaoPathCTe := True;
  DM1.ACBrCTe1.Configuracoes.Arquivos.SepararPorMes := True;
  DM1.ACBrCTe1.Configuracoes.Arquivos.AdicionarLiteral := True;
  DM1.ACBrCTe1.Configuracoes.Arquivos.PathSalvar := IncludeTrailingPathDelimiter(DM1.TB99840PATHCTE.Value);
  DM1.ACBrCTe1.Configuracoes.Arquivos.PathCTe := IncludeTrailingPathDelimiter(DM1.TB99840PATHCTE.Value);
  DM1.ACBrCTe1.Configuracoes.Arquivos.PathInu := IncludeTrailingPathDelimiter(DM1.TB99840PATHCTE.Value);
  DM1.ACBrCTe1.Configuracoes.Arquivos.PathEvento := IncludeTrailingPathDelimiter(DM1.TB99840PATHCTE.Value);
  DM1.ACBrCTe1.Configuracoes.Arquivos.PathSchemas := ExtractFilePath(Application.ExeName) + '\SchemasCte';

 

O que devo fazer mais do que isso?

Rodrigo Cardilo

Card System Info

[email protected]

Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois ...
  • Membros Pro

Italo,

Testando com o meu sistema e também com o Demo do ACBr, configurei para Salvar em pastas separadas, criar pastas mensais, salvar arquivos de eventos, separar arquivos pelo modelo do documento, mas não esta salvando na pasta eventos separado CCe e Cancelamento e sim todos os eventos juntos em ...\Evento\NFe\201508.

Testei todas as opções no Demo e mesmo assim em nenhuma situação criou a pasta CCe ou Cancelamento.

Um detalhe, não quero usar a opção Separar por CNPJ do Certificado, mas com ela marcada criou uma pasta com o meu CNPJ para as NFes emitidas e outra pasta com o meu CPF para os eventos e mesmo assim não criou as pastas CCe e Cancelamento.

Já fazem horas que estou me batendo e peço ajuda pois esgotei minhas idéias.

Obrigado,

Marcello Cainelli

Doutor Byte Sistemas

Marcelo

Boa tarde

Estou com esse mesmo problema não esta criando a pasta CCe e Cancelamento. Voce conseguiu acertar?

Somente a pasta cnpj/nfe/yyyymm

obrigado

 

Boa tarde Marcello,

A propriedade: AdicionarLiteral esta com o valor True?

Italo para que o componente crie as pastas dentro dos eventos\cancelamento e CCe a propriedade AdicionarLiteral terá que estar com o valor True?

Obrigado

Paulinho

 

Link para o comentário
Compartilhar em outros sites

  • Consultores

Boa noite Paulo,

Sim, as sub-pastas dentro da pasta Evento só serão criadas caso a propriedade AdicionarLiteral estiver com o valor True.

Consultor SAC ACBr

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

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois ...

Ola   gostaria de sugerir uma mudança na estrutura.. foi determinado dessa forma

%MeuPath%
  \CNPJ
   \YYYYMM
    \Evento
     \CCe
     \Cancelamento
     \EPEC
     \Confirmacao
     \Ciencia
     \Desconhecimento
     \NaoRealizada

 

Ocorre se nao for marcado por CNPJ vai ficar assim

 

%MeuPath%
   \YYYYMM
    \Evento
     \CCe
     \Cancelamento
     \EPEC
     \Confirmacao
     \Ciencia
     \Desconhecimento
     \NaoRealizada

aconselho mudar antes de /YYYYMM colocar o Evento
 
Ficando
%MeuPath%
   \Evento
    \YYYYMM
     \CCe
     \Cancelamento
     \EPEC
     \Confirmacao
     \Ciencia
     \Desconhecimento
     \NaoRealizada
 
Pois acho que dentro de evento deve ter a divisao por data e depois os eventos em si....
 
Analisem,...
 
E tambem voltar a salvar na pasta de retorno... isso era muito util.. pois considerava um backup... era muito bom todos arquivos ficarem na pasta de retorno...
Grato
Editado por sfwinfo
Acrescentar informacao

Nilton Bonilha - São Paulo - SP

xHarbour.

LOGOSFW.jpg.aed61309847a9f4c30e8328f9c17

Link para o comentário
Compartilhar em outros sites

  • Fundadores

Não podemos mudar a estrutura de pastas.. isso pode quebrar muitas aplicações...

Não compreendi o que você disse em: "E tambem voltar a salvar na pasta de retorno..."

Sua propriedade "WebServices.Salvar" está ativa ?

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.

Link para o comentário
Compartilhar em outros sites

  • Membros Pro

Boa tarde Cardilo,

Estamos analisando esse problema, por favor aguarde mais um pouco.

Italo

bom dia voce poderia me informar si esse post foi resolvido? Eu queria setar alguma coisa que não grave o xml sem validade juridica. ex. quando emito uma nfe que da duplicidade por algum erro que usuario informou o mesmo numero da nfe ele esta gravando na pasta do xml, sem protocolo de autorização, e acaba substituindo a correta, e ai tenho que efetuar o download na sefa da verdadeira.

obrigado

paulinho

Link para o comentário
Compartilhar em outros sites

  • Membros Pro

Daniel deu certinho.

é que no demo esta opção esta confusa. esta assim: Salvar Arquivos em Pastas Separadas, vou alterar para salvar xml sem validade juridica em meu aplicativo

muito obrigado

Paulinho

Daniel me desculpe não deu não. caso eu desabilite essa opção ele não grava nem o xml com validade juridica

 

Editado por Antonio Paulo Mangili
Link para o comentário
Compartilhar em outros sites

  • Membros Pro

Boa tarde Cardilo,

Estamos analisando esse problema, por favor aguarde mais um pouco.

Italo

bom dia voce poderia me informar si esse post foi resolvido? Eu queria setar alguma coisa que não grave o xml sem validade juridica. ex. quando emito uma nfe que da duplicidade por algum erro que usuario informou o mesmo numero da nfe ele esta gravando na pasta do xml, sem protocolo de autorização, e acaba substituindo a correta, e ai tenho que efetuar o download na sefa da verdadeira.

obrigado

paulinho

Paulo, 

Eu atualizei os fontes e no meu caso o problema foi resolvido. Nem mesmo postei aqui pois já tinha outros tópicos sobre o assunto.

Abraço

Rodrigo Cardilo

Card System Info

[email protected]

Link para o comentário
Compartilhar em outros sites

  • Fundadores

Paulo,

Não compreendi exatamente o que você quer...

Você quer que ele grave NOVOS XMLs na pasta, mas que NUNCA modifique os XMLs já existentes... é isso ?

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.

Link para o comentário
Compartilhar em outros sites

  • Membros Pro

Daniel 

obrigado pelo retorno

é assim, eu gostaria que só fosse gravado na pasta dos xml da NFe os xml que foram assinados, e protocolados com autorização.

aqueles xmls que derem erros como: duplicidade de nfe, ou outros erro qualquer não fosse gravado na pasta xml.

porque o que acontece hoje: caso a nfe de duplicidade ele esta gravando na pasta do xml, e substituindo o correto.

eu fiz o que voce me orientou, e realmente, quando da duplicidade ele não grava, mas quando autoriza ele tambem não estava gravando.

eu volteio habilitar  "Arquivos.Salvar" como true, ai voltou a gravar os xml autorizados, e os com erros.

espero ter conseguido me explicar corretamente.

obrigado

paulinho

Link para o comentário
Compartilhar em outros sites

  • Consultores

Boa tarde a todos,

Paulo, a propriedade Arquivos.Salvar se você atribuir o valor False não vai gravar nenhum documento fiscal, autorizado ou não.

Isso é útil para aqueles que desejam salvar os arquivos no banco de dados e não em disco.

Por outro lado temos a propriedade SalvarApenasNFeProcessadas se receber o valor False vai salvar as processadas, ou seja, receberam o procolo de autorização e as que não receberam.

Agora se você esta tendo problemas com duplicidade de numeração, isso é falha na sua aplicação, deixando o usuário enviar novamente uma nota que já foi enviada ou permitir que o mesmo escolha o numero da nota.

Se ao enviar uma nota ocorre um erro na aplicação, temos que primeiro acreditar que o envio foi realizado, neste caso devemos carregar o componente com o XML assinado da nota e realizar uma consulta.

Se a SEFAZ retornar a mensagem acusando que a nota não existe no banco de dados ai sim podemos envia-la novamente.

Por outro lado se problema ocorreu no retorno ao realizar a consulta a SEFAZ vai retornar o protocolo de autorização, o XML assinado será atualizado, ou seja, receberá o protocolo de autorização..

  • Curtir 1
Consultor SAC ACBr

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

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 2788 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.

The popup will be closed in 10 segundos...