Jump to content

2 Dia do ACBr

Visite Stands dos Patrocinadores
Control iD, CS Devices, Elgin, Gertec, Bematech, Jetway, PlugMobile, Epson, Custom e Sweda
Inscreva-se

Nova Loja Oficial
loja.projetoacbr.com.br
Ajude o projeto a crescer, com estilo

Comprar

Balança SM100 performance surpreendente

Tecnologia Japonesa   Teclado e Visor resistentes a água
Consumo inteligente de etiquetas   Baixo custo de manutenção
Comunicação Ethernet e WIFI independentes

Saiba mais

Impressora de Etiquetas ELGIN - L42 PRO

Protocolos PPLA, PPLB, ZPL, EPL (automático)
Porta USB padrão Opcionais: Ethernet, Serial, Paralela
Sensor de Etiquetas Móvel Garantia de 18 meses

Saiba mais

castrocac

ANSWERED Ativar Contingência OFF Line NFCe

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

Share this post


Link to post
Share on other sites

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

 

  • Like 1

Consultor SAC ACBr

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

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

Share this post


Link to post
Share on other 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

  • Like 3

Consultor SAC ACBr Rafael Dias
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

ACBrFramework Desenvolvedor ACBrFramework.

 

Share this post


Link to post
Share on other 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?

Share this post


Link to post
Share on other sites
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?

  • Like 1

[]'s

Consultor SAC ACBr

Elton
Ajude o Projeto ACBr crescer - Assine o SAC

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.

Share this post


Link to post
Share on other 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?

Share this post


Link to post
Share on other sites
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...).

  • Like 1

[]'s

Consultor SAC ACBr

Elton
Ajude o Projeto ACBr crescer - Assine o SAC

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.

Share this post


Link to post
Share on other 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?

Share this post


Link to post
Share on other sites
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.

  • Like 2

[]'s

Consultor SAC ACBr

Elton
Ajude o Projeto ACBr crescer - Assine o SAC

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.

Share this post


Link to post
Share on other 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.

  • Like 1

Share this post


Link to post
Share on other sites
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
Ajude o Projeto ACBr crescer - Assine o SAC

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.

Share this post


Link to post
Share on other 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.

Edited by castrocac

Share this post


Link to post
Share on other sites

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.

  • Like 1

Share this post


Link to post
Share on other sites
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.

  • Like 1

[]'s

Consultor SAC ACBr

Elton
Ajude o Projeto ACBr crescer - Assine o SAC

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.

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.

×
×
  • Create New...