Ir para conteúdo
  • Cadastre-se

dev botao

Alimentação da propriedade cStat


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

Recommended Posts

Postado

Pessoal,

Estou com uma dúvida referente ao cStat (pode até parecer besta, mas não estou conseguindo simular)

Eu percebi que quando

  • Envia uma nota fiscal, a propriedade ACBrNFe.WebServices.Enviar.cStat é alimentada.
  • Cancela uma nota fiscal, a propriedade ACBrNFe.WebServices.EnvEvento.EventoRetorno.retEvento.Items[0].RetInfEvento.cStat é alimentada
  • Inutiliza uma nota fiscal, a propriedade ACBrNFe.WebServices.Inutilizacao.cStat é alimentada
  • Consulta uma nota fiscal, ACBrNFe.WebServices.Consulta.cStat é alimentada

O que não consegui identificar muito bem é quando que a propriedade ACBrNFe.WebServices.Retorno.cStat é alimentada.

Fazendo alguns testes e pesquisando aqui no fórum, notei que quando é NFCe o cStat é no Enviar, quando é NFE o cStat é no Retorno.

        if ACBrNFe.NotasFiscais[0].NFe.Ide.modelo = 55 then
          ACBrNFe.Enviar(ACBrNFe.NotasFiscais[0].NFe.Ide.nNF + StrToInt(FormatDateTime('hhMMss', now)), False, False)
        else
          ACBrNFe.Enviar(ACBrNFe.NotasFiscais[0].NFe.Ide.nNF + StrToInt(FormatDateTime('hhMMss', now)), False, True);   //NFCe é Sincrono

 

Isso é porque a NFCe é Sincrona, ou seja, já tem o status no retorno do envio.

 

Estou certo no meu  raciocínio? O modo de enviar as notas é como está mencionado acima, NFe assincrono e NFCe sincrono ?

Se eu enviar NFE em modo Síncrono, pode ter algum problema no futuro? Fiz um teste aqui em homologação e enviou normalmente.

 

Desde já obrigado!

  • Solution
Postado

Log Programador,

Quando desenvolvi minha rotina, eu olhei no programa exemplo, e depois fiz a seguinte regra: Independente do modelo, a rotina é mesma, apenas tem uma configuração onde o usuário fala que o modelo 65, pode ser sincrono ou assincrono.

Ao fazer o envio, utilizo o trecho de código abaixo.

Sincrono := FALSE ou TRUE;

                                        //realizar o envio da NFe
                                       FnotaNFe.Enviar(OnlyNumber(pNFID),FALSE,Sincrono);

                                       //Apos o retorno, salvar os dados na tabela
                                       qryNF_HDR.edit;

                                       if not Sincrono then
                                       begin
                                          qryNF_HDRPROTOCOL_NFE.Value:= FnotaNFe.WebServices.Retorno.Protocolo;
                                          qryNF_HDRDT_HR_PROTOCOL.value:= now;

                                          qryNF_HDRST_PROCESS_NF.Value:= FnotaNFe.WebServices.Retorno.cStat;
                                          qryNF_HDRCHAVE_NFE.Value:= FnotaNFe.WebServices.Retorno.ChaveNFe;
                                       end
                                       else
                                         begin
                                           qryNF_HDRPROTOCOL_NFE.Value:=FnotaNFe.NotasFiscais[j].NFe.procNFe.nProt;
                                           qryNF_HDRDIGEST_VALUE.Value:=FnotaNFe.NotasFiscais[j].NFe.signature.DigestValue;
                                           qryNF_HDRDT_HR_PROTOCOL.value:= FnotaNFe.NotasFiscais[j].NFe.procNFe.dhRecbto;
                                           qryNF_HDRST_PROCESS_NF.Value:= FnotaNFe.NotasFiscais[j].NFe.procNFe.cStat;
                                           qryNF_HDRCHAVE_NFE.Value:= OnlyNumber(FnotaNFe.NotasFiscais[j].NFe.infNFe.ID);
                                         end;

                                         sXML := ACBrUtil.ConverteXMLtoUTF8(FnotaNFe.NotasFiscais.Items[j].XMLAssinado);
 

Espero que tenha consigo esclarecer sua dúvida.

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