Ir para conteúdo
  • Cadastre-se

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

Recommended Posts

Postado

Pessoal,

Já uso o ACbrNFe2 com sucesso em alguns clientes, mas em todos eles eu faço o envio nota a nota ou seja, apenas uma note por lote e não uso nenhum tipo de contingência ; quando a receita fica for do ar, os clientes aguardam voltar.

Agora surgiram duas necessidades novas :

1 - Preciso enviar mais notas por lote, para agilizar o processo.

Sei como fazer isso, mas minha dúvida está com relação ao retorno ; hoje eu trato o retorno e faço os updates necessários na minha base. No caso de enviar várias NFs em um lote, como pego o retorno separado para cada NF ?

2 - Contingência

Há algum exemplo sobre como usar as contingências quando a receita está offline ?

Valeu e muito obrigado !

Postado

Já existem alguns tópicos falando sobre isso, também tem o exemplo no demo, mas, basicamente, é fazer u while com o Add.NFe:

with ACBrNFe.NotasFiscais.Add.NFe do

begin

Ide.cNF := QryNfeDados.FieldByName('NF_NUMERONOTAFISCAL').AsInteger; //Caso não seja preenchido será gerado um número aleatório pelo componente

Ide.natOp := QryNfeDados.FieldByName('NF_DESCRICAOCFOP').AsString;

Ide.indPag := TPcnIndicadorPagamento(QryNfeDados.FieldByName('NF_CODIGOFORMAPAGAMENTO').AsInteger);

.....

end;

- Sou desenvolvedor.

- De que linguagem, delphi? .NET? Java?

- Qualquer uma, sou desenvolvedor.

Postado

Já existem alguns tópicos falando sobre isso, também tem o exemplo no demo, mas, basicamente, é fazer u while com o Add.NFe:

with ACBrNFe.NotasFiscais.Add.NFe do

begin

Ide.cNF := QryNfeDados.FieldByName('NF_NUMERONOTAFISCAL').AsInteger; //Caso não seja preenchido será gerado um número aleatório pelo componente

Ide.natOp := QryNfeDados.FieldByName('NF_DESCRICAOCFOP').AsString;

Ide.indPag := TPcnIndicadorPagamento(QryNfeDados.FieldByName('NF_CODIGOFORMAPAGAMENTO').AsInteger);

.....

end;

Obrigado, mas minha dúvida não é sobre como adicionar, isso eu já sei ; a dúvida é com relação ao retorno, como pego o retorno separado para cada NF enviada.

Postado

Ops, foi mal,

eu faço assim:

 

for IdNota := 0 to ACBrNFe.NotasFiscais.Count - 1 do

begin

       .....

       cStat := ACBrNFe.WebServices.Enviar.CStat;

       Lote := IntToStr(pLote);

       Recibo := ACBrNFe.WebServices.Enviar.Recibo;

       dhRecbto := ACBrNFe.WebServices.Enviar.dhRecbto;

       TpAmb := ACBrNFe.WebServices.Enviar.TpAmb;

       ....

end;
quando preciso pegar alguma informação da nota, percorro os itens com um for

for IdNota := 0 to ACBrNFe.NotasFiscais.Count - 1 do

begin

   nr_nota = ACBrNFe.NotasFiscais.Items[IdNota].NFe.Ide.nNF;

  ...

end;

    

- Sou desenvolvedor.

- De que linguagem, delphi? .NET? Java?

- Qualquer uma, sou desenvolvedor.

  • Moderadores
Postado

Vc deve percorrer todos os itens da propriedade ACBrNFe1.WebServices.Retorno.NFeRetorno.ProtNFe.Items[X], comparando o campo chNFe com a chave que foi enviada e o campo digVal.


ACBrNFe1.WebServices.Retorno.NFeRetorno.ProtNFe.Items[0].tpAmb
ACBrNFe1.WebServices.Retorno.NFeRetorno.ProtNFe.Items[0].verAplic
ACBrNFe1.WebServices.Retorno.NFeRetorno.ProtNFe.Items[0].chNFe
ACBrNFe1.WebServices.Retorno.NFeRetorno.ProtNFe.Items[0].dhRecbto
ACBrNFe1.WebServices.Retorno.NFeRetorno.ProtNFe.Items[0].nProt
ACBrNFe1.WebServices.Retorno.NFeRetorno.ProtNFe.Items[0].digVal
ACBrNFe1.WebServices.Retorno.NFeRetorno.ProtNFe.Items[0].cStat
ACBrNFe1.WebServices.Retorno.NFeRetorno.ProtNFe.Items[0].xMotivo
[/code]

djsystem-logo.png
 youtube.png facebook.png instagram.png linkedin.png
André Ferreira de Moraes | Analista de Sistemas
www.djsystem.com.br | www.djpdv.com.br
www.tefhouse.com.br | www.xpos.com.br
Postado

Valeu pela dica ! E quanto à contingência ? Quando a receita fica offline, temos que aguardar voltar ou o componente prevê algum workaround ?

Obrigado !

Postado

Vc deve percorrer todos os itens da propriedade ACBrNFe1.WebServices.Retorno.NFeRetorno.ProtNFe.Items[X], comparando o campo chNFe com a chave que foi enviada e o campo digVal.


 ACBrNFe1.WebServices.Retorno.NFeRetorno.ProtNFe.Items[0].tpAmb

 ACBrNFe1.WebServices.Retorno.NFeRetorno.ProtNFe.Items[0].verAplic

 ACBrNFe1.WebServices.Retorno.NFeRetorno.ProtNFe.Items[0].chNFe

 ACBrNFe1.WebServices.Retorno.NFeRetorno.ProtNFe.Items[0].dhRecbto

 ACBrNFe1.WebServices.Retorno.NFeRetorno.ProtNFe.Items[0].nProt

 ACBrNFe1.WebServices.Retorno.NFeRetorno.ProtNFe.Items[0].digVal

 ACBrNFe1.WebServices.Retorno.NFeRetorno.ProtNFe.Items[0].cStat

 ACBrNFe1.WebServices.Retorno.NFeRetorno.ProtNFe.Items[0].xMotivo

Eu notei que esse array só contém notas que foram aceitas, certo ? Testei com uma nota já existente e como a resposta foi duplicidade de nfe, rolou um AV ao tentar acessar este array.

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