Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

  • Membros Pro
Postado
oa tarde.
 
Estou com uma duvida no retorno desta função, se este pode ser a causa do meu problema...
Fiz o processo de busca das notas emitidas, dentro de um loop, cfe manda o figurino, o processo vai até o fim, mas não me retornam todas as notas, apenas algumas...
 
Chamo a função assim (denro de um loop, vou testando até chegar no status de que não tem mais nota)
 
  ACBrNFe.ConsultaNFeDest(CNPJ,
                          StrToIndicadorNFe(ok,indNFe),
                          StrToIndicadorEmissor(ok,IndEmi),
                          UltNSu);

 

if AcbrNFe.WebServices.ConsNFeDest.retConsNFeDest.cStat = 138 then
   begin
            vsRetorno := UTF8Encode(AcbrNFe.WebServices.ConsNFeDest.retConsNFeDest.XML);
 
     daí trato meu retorno...
end;
 
Assim, estou tratando como se tivesse UMA nota fiscal dentro deste retorno... É assim mesmo, ou este retorno tem um array de notas fiscais dentro?
 
Grato.
  • Membros Pro
Postado

Complementando minha duvida, nos meus testes aqui tinha poucas notas...

 

 

Este "AcbrNFe.WebServices.ConsNFeDest.retConsNFeDest.XML" contem apenas o XML de uma nota ou é um xml com varias notas dentro?

Postado

O mais correto é utilizar o retorno indCont. Enquanto ele for = '1' existem notas a serem consultadas, quando ele retornar '0' indicará o verdadeiro fim da consulta.

 

Entre o '1' e o '0', chegarão alguns retornos vazios e alguns com notas. Isso se dá porque a consulta é sequencial no servidor da SEFAZ e é paginada de 50.000 em 50.000 notas na ordem em que forão recebidas e autorizadas. O limite do retorno é de 50 por consulta. Nenhuma nota será retornada pela consulta, apenas os dados básicos para identificação dela:

 

nsu = Número Sequencial Único da nota, gerado em ordem de chegada no servidor da SEFAZ;
chnfe= Chave da NFe;
cnpj= CNPJ do Emitente da NFe;
xnome= Razão Social do Emitente da NFe;
ie= Inscrição Estadual do Emitente da NFe;

demi= Data da Emissão da NFe;
tpnf= Tipo da NFe 0 = Entrada 1 = Saída;
vnf=' Valor da NFe;
digval = Dígitos de Validação;
dhrecbto = Data/Hora em que a NFe foi recebida pela SEFAZ;
csitnfe = Situação da NFe  (1=Normal 3=Cancelada);
csitconf = Situação da Confirmação da NFe (0=Não Manifestada, 1=Confirmada, 2=Desconhecimento 3=Não Realizada 4=Ciência da Operação);

  • Membros Pro
Postado

Boa noite, obrigado pela resposta.

Sim, eu vou utilizando o indcont, para verificar se tem mais notas, enquanto ele nao me retornar 0.

tudo isto funciona bem.

 

Quanto ao retorno, o que quis saber é se em cada retorno deste, cada vez que chamo a ACBrNFe.ConsultaNFeDest

 passando como parametro o ultimo NSU, vai retornar sempre uma nota, ou se tem um array de notas que devo percorrer em cada retorno...

 

Grato!

Postado

Veja um exemplo utilizando o ACBRNFeMonitor:

 

Primeira consulta. Resultou vazia porque no intervalo de 50.000 notas iniciadas com o NSU que informei, nenhuma delas foi destinada ao meu CNPJ:

23/04/2013 17:17:32 - Nfe.ConsultaNFeDest("99999999999999","0","0","6943982783")

OK:

versao=1.01

tpAmb=1

verAplic=1.0.0

cStat=137

xMotivo=Nenhum documento localizado para o destinatario

dhResp=23/04/2013 17:17:16

indCont=1

ultNSU=6944482783

 

Dentro do loop, acaba acontecendo de surgir uma ou mais notas:

23/04/2013 17:17:34 - Nfe.ConsultaNFeDest("99999999999999","0","0","6944482782")

OK:

versao=1.01

tpAmb=1

verAplic=1.0.0

cStat=138

xMotivo=Documento localizado para o destinatario

dhResp=23/04/2013 17:17:18

indCont=1

ultNSU=6944982782

[RESNFE001]

NSU=6944644777

chNFe=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

CNPJ=99999999999999

xNome=EXEXRXCXL - XLXTXIXA XOXEXCXAX LTDA

IE=999999999

dEmi=23/04/2013

tpNF=1

vNF=390,31

digVal=mV7T+ck85A9lVRADBOQQUgRQEOU=

dhRecbto=23/04/2013 15:36:26

cSitNFe=3

cSitConf=0

[RESCANC001]

NSU=6944933322

chNFe=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

CNPJ=99999999999999

xNome=EXEXRXCXL - XLXTXIXA XOXEXCXAX LTDA

IE=999999999

dEmi=23/04/2013

tpNF=1

vNF=390,31

digVal=mV7T+ck85A9lVRADBOQQUgRQEOU=

dhRecbto=23/04/2013 15:36:26

cSitNFe=3

cSitConf=0

 

Repare que no arquivo de resposta as notas resultantes recebem numeração sequencial dentro da consulta no exemplo,. RESNFE001 representa a primeira nota resultante na página. Se retornasse outra nota, a mesma receberia a identificação RESNFE002, e assim sucessivamente até o limite de RESNFE050. Repare que, no caso do retorno RESNFE001, logo em seguida vem a informação de que a nota foi cancelada, confirmando a  cSitNFe=3 e permitindo que você armazene os dados de cancelamento, se quiser. Entenda que o tratamento deve ser linha-a-linha, semelhante ao que se faz no TEF.

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