Ir para conteúdo
  • Cadastre-se

dev botao

Ativar Contingência OFF Line NFCe


Ver Solução Respondido por EMBarbosa,
  • Este tópico foi criado há 1722 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

   Boa tarde a todos. Eu vi o vídeo "NFCe e SAT, como tratar a contingência", lá o autor do vídeo mostra a propriedade "ACBrNFe1TransmitError" para pegar o erro de http, mas não aprofunda muito em como tratar e ativar a contingência off line, caso dê algum erro. 

   Alguém aqui do grupo que use essa propriedade para ativar a contingência e que poderia me enviar um exemplo de como estão fazendo?

   Grato

Link para o comentário
Compartilhar em outros sites

  • Moderadores

Bom dia, não está muito claro qual exatamente a dúvida. Mas o procedimento após obter algum erro HTTP é já mudar a emissão para OFF Line e realizar consultas periódicas consultando Status do Serviço, quando restabelecer a conexão altere novamente para emissão normal e transmite as NFCes emitidas Off-Line. (Sua aplicação precisa controlar NFCes emitidas Off-Line ainda não transmitidas, e ter uma rotina para alterar para Off-line ou normal ).

Para gerar XML para emissão Off-line precisa mudar apenas os campos:  "tpEmis = 9", "DhCont" data hora entrada em contingencia, "xJust" Justificativa para emissão off-line.  No componente ACBrNFe altere a propriedade  "FormaEmissao:= teOffLine"

Emita a NFCe Off-line em duas vias. Se acontecer de transmitir a NFCe normal e não obter retorno, mantenha uma rotina para consultar a NFCe na SEFAZ antes de mudar para Off-Line, isso evita de gerar NFCe em duplicidade. 

Espero ter ajudado...  

 

  • Curtir 1
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

A função não é ACBrNFe1TransmitError e sim um evento chamado OnTransmitError este evento é lançado quando ocorre erro HTTP ou seja quando da erro de comunicação é lançado este evento.

Se olhar no demo do ACBrNFe tem o evento lá mais é apenas mostrado o erro, neste evento você pode checar a url e o erro http e tratar as coisas de acordo.
https://pt.wikipedia.org/wiki/Lista_de_códigos_de_estado_HTTP

se realmente tem erro no servidor da sefaz ou na sua internet faça como o @José M. S. Junior orientou.

Sem título.png

  • Curtir 3

 

Link para o comentário
Compartilhar em outros sites

   Boa noite a todos. Me desculpa a demora em dar um retorno em meu post, mas peguei uma gripe muito forte que me derrubou por  muitos dias 😥🤯

    Ficou claro pra mim que o evento onTransmitError acontece quando ocorre algum erro HTTP, estou com a rotina pronta quando dá erro http, gero uma nota em contingencia e envio. Eu gostaria de saber como vocês estão tratando quando há um erro por exemplo de validação de NCM, CSOSN, enfim ,de validação de dados. Na minha opinião não posso ativar a contingencia offline quando acontece esse erro de validação de dados.

  Estou tendo dificuldades em pegar o erro quando é de validação, poderiam me orientar ou dar um exemplo de como estão fazendo?

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

  • Consultores
  • Solution
11 horas atrás, castrocac disse:

Eu gostaria de saber como vocês estão tratando quando há um erro por exemplo de validação de NCM, CSOSN, enfim ,de validação de dados. Na minha opinião não posso ativar a contingencia offline quando acontece esse erro de validação de dados.

Você tem razão. Isso não é um motivo para ativar contigência offline.

11 horas atrás, castrocac disse:

Estou tendo dificuldades em pegar o erro quando é de validação, poderiam me orientar ou dar um exemplo de como estão fazendo?

Acho que não entendi qual a sua dificuldade. Basta você retornar ao usuário a mensagem de erro, não?

  • Curtir 1

[]'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

1 hora atrás, EMBarbosa disse:

Você tem razão. Isso não é um motivo para ativar contigência offline.

Acho que não entendi qual a sua dificuldade. Basta você retornar ao usuário a mensagem de erro, não?

 Olá @EMBarbosa, eu irei mostrar a mensagem, mas convenhamos, a maioria dos usuários de frente de caixa não vão ter idéia do que é um NCM, CSOSN ou outros campos que são necessários numa Nota, e podem achar que seja necessária a ativação da contingência offline em vez de avisarem o administrador a consertarem a falha no cadastro de produtos.

  O que eu não queria era justamente isso, não poder ativar contigência quando for um erro de validação ou de schemas. Não to sabendo pegar em que determinado momento houve esse erro de validação, teria algum evento próprio como há para erros de conexões com o OnTransmitError?

Link para o comentário
Compartilhar em outros sites

  • Consultores
2 horas atrás, castrocac disse:

 Olá @EMBarbosa, eu irei mostrar a mensagem, mas convenhamos, a maioria dos usuários de frente de caixa não vão ter idéia do que é um NCM, CSOSN ou outros campos que são necessários numa Nota, e podem achar que seja necessária a ativação da contingência offline em vez de avisarem o administrador a consertarem a falha no cadastro de produtos.

Eu concordo com você. O usuário do frente de caixa talvez nem tenha permissão para corrigir um NCM.

É por isso que você precisa fazer essas validações antes. Faça elas no seu cadastro de produto por exemplo. Valide os campos necessários como NCM, CSOSN, Tributos, Código de barras, descrição, e todos os outros campos que são necessários para os documentos fiscais que seu software trabalha (NFe, SAT, etc...).

  • Curtir 1

[]'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

2 horas atrás, EMBarbosa disse:

Eu concordo com você. O usuário do frente de caixa talvez nem tenha permissão para corrigir um NCM.

É por isso que você precisa fazer essas validações antes. Faça elas no seu cadastro de produto por exemplo. Valide os campos necessários como NCM, CSOSN, Tributos, Código de barras, descrição, e todos os outros campos que são necessários para os documentos fiscais que seu software trabalha (NFe, SAT, etc...).

   @EMBarbosa, entendido, mas vamos supor que eu mesmo tenha esquecido de tratar alguma validação de um campo, existe algum evento em que eu consiga saber se houve algum erro de validação?

Link para o comentário
Compartilhar em outros sites

  • Consultores
1 hora atrás, castrocac disse:

   @EMBarbosa, entendido, mas vamos supor que eu mesmo tenha esquecido de tratar alguma validação de um campo, existe algum evento em que eu consiga saber se houve algum erro de validação?

Não existe nenhum evento específico para validação de schemas porque ele é desnecessário. Imagine que houvesse, a mensagem de erro seria a mesma.

EDIT: Você pode tratar com Try..Except o método validar da NFe que vai pegar os erros dos schemas. Ou utilizar o método ValidarRegrasdeNegocios que retorna se validou e uma string com a mensagem de erro.

Estamos trabalhando internamente num novo sistema de regras de negócios. Mas no momento nem cabe especular muito sobre ele porque nosso foco principal é a ACBrLib.

  • 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

16 horas atrás, EMBarbosa disse:

Não existe nenhum evento específico para validação de schemas porque ele é desnecessário. Imagine que houvesse, a mensagem de erro seria a mesma.

EDIT: Você pode tratar com Try..Except o método validar da NFe que vai pegar os erros dos schemas. Ou utilizar o método ValidarRegrasdeNegocios que retorna se validou e uma string com a mensagem de erro.

Estamos trabalhando internamente num novo sistema de regras de negócios. Mas no momento nem cabe especular muito sobre ele porque nosso foco principal é a ACBrLib.

Putz !!! Salvou meu dia, tinha esquecido completamente do método ValidarRegrasdeNegocios.

Obrigado @EMBarbosa.

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

  • Consultores
27 minutos atrás, castrocac disse:

@EMBarbosa, conseguiria me ajudar com esse erro retornado pelo método ValidarRegrasdeNegocios. Pelo xml parece que está tudo ok, ele segue anexo. Grato.

image.png.d8edaac1879c716c192cb45d94d4c45c.png

31190721653241000100650010000003071000019714-nfe.xml 5 kB · 0 downloads

Eu peguei esse arquivo e validei utilizando o programa de exemplo e não consegui reproduzir essas mensagens de erro.

Você está fazendo a validação depois que o arquivo a nota está pronta?

É possível que você tenha alterações locais no código do ACBr? Veja por exemplo isso no seu arquivo que ele está gerando um xml com várias casas decimais no valor unitário:

image.png

 

[]'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

1 hora atrás, EMBarbosa disse:

Eu peguei esse arquivo e validei utilizando o programa de exemplo e não consegui reproduzir essas mensagens de erro.

Você está fazendo a validação depois que o arquivo a nota está pronta?

É possível que você tenha alterações locais no código do ACBr? Veja por exemplo isso no seu arquivo que ele está gerando um xml com várias casas decimais no valor unitário:

image.png

 

   @EMBarbosa, eu tenho somente essa rotina depois da Nota Gerada:

   ACBrNFe1.NotasFiscais.Assinar;
   ACBrNFe1.NotasFiscais.GerarNFe;
   ACBrNFe1.NotasFiscais.ValidarRegrasdeNegocios(sErros);
   meErro.Lines.Add(sErros);

 

  Quanto as casas decimais, sempre usei assim. Tem como limitar via configuração as casas decimais por exemplo para duas casas? O mais interessante é que está ocorrendo somente quando vendo esse produto no valor de 28,11. Outros trocos não estão dando erro.

Editado por castrocac
Link para o comentário
Compartilhar em outros sites

  • Consultores
6 minutos atrás, castrocac disse:

Consegui descobrir aqui @EMBarbosa, no campo "Total.ICMSTot.vNF"  eu estava passando um valor que estava com casas decimais, por exemplo 28,10999999 e no total do produto estava indo 28,11. Acertei a gravação arredondando e deu certo. 

  Obrigado meu caro.

Joia. Obrigado pelo retorno.

Estou fechando esse tópico.
Para novas dúvidas crie um novo tópico.

  • Curtir 1

[]'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

  • Este tópico foi criado há 1722 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • 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.