Ir para conteúdo
  • Cadastre-se

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

Recommended Posts

Postado

Olá amigos do forum.

Estou implementando a NFe no meu sistema e me deparei com este problema:

Executo a função ACBrNFe1.Enviar.

No meus sistema, após a nota ter sido enviada e autorizada, eu gravo numa tabela a chave, protocolo e entre outros gravo o "Status = "Enviada".

o problema é quando, após o envio e autorização, se por qualquer motivo, dá erro na impressão, o componente não retorna chave, protocolo.

Dai fica assim, o usuario não sabe se a nota foi autorizada, e minha tela não atualiza pois, para meu sistema a nota ainda está pendente.

Alguém sabe como contornar esta situação? O ideal seria que o componente retornasse positivamente a chave, protocolo etc, mesmo antes de exibir a tela de impressão.

Obrigado pela atenção..

Postado

Utilize os metodos separados para geracao do xml, assinatura, validacao e envio ao inves de usar o ENVIAR que engloba tudo.

Grato pela atenção.

estou implementando agora o componente e confesso que estou seguindo a rotina do exemplo.

Teria como você me passar um exemplo simples de utilização dos metodos separadamente..

mais uma vez obrigado.

  • Moderadores
Postado

...

ACBrNFe1.NotasFiscais.GerarNFe;

ACBrNFe1.NotasFiscais.Assinar;

ACBrNFe1.NotasFiscais.Valida;

ACBrNFe1.WebServices.Envia(DataModule_NF.qry_nf.FieldByName('n_nf').AsInteger);

...

João Henrique de Souza

 

Manual de como configurar o TortoiseSVN para não ficar mostrando a senha repetidas vezes (somente para commiters):

https://sourceforge.net/p/forge/community-docs/TortoiseSVN/

 

 

Postado

...

ACBrNFe1.NotasFiscais.GerarNFe;

ACBrNFe1.NotasFiscais.Assinar;

ACBrNFe1.NotasFiscais.Valida;

ACBrNFe1.WebServices.Envia(DataModule_NF.qry_nf.FieldByName('n_nf').AsInteger);

...

ok amigo. e se eu , após o comando ACBrNFe1.WebServices.Envia , quiser ativar a impressão da nota enviada, que comando devo utilizar??

  • Moderadores
Postado

Ola

Dae vc pode usar semelhante ao que esta no DEMO.

Repare que no demo, primeiro ele carrega a NF para o componente, nesse caso vc nao precisaria carregar a nf pq ela ja esta no componente.

João Henrique de Souza

 

Manual de como configurar o TortoiseSVN para não ficar mostrando a senha repetidas vezes (somente para commiters):

https://sourceforge.net/p/forge/community-docs/TortoiseSVN/

 

 

Postado

...

ACBrNFe1.NotasFiscais.GerarNFe;

ACBrNFe1.NotasFiscais.Assinar;

ACBrNFe1.NotasFiscais.Valida;

ACBrNFe1.WebServices.Envia(DataModule_NF.qry_nf.FieldByName('n_nf').AsInteger);

...

ok amigo. e se eu , após o comando ACBrNFe1.WebServices.Envia , quiser ativar a impressão da nota enviada, que comando devo utilizar??

So para finalizar rsss;

o metodo ACBrNFe1.WebServices.Envia(DataModule_NF.qry_nf.FieldByName('n_nf').AsInteger) é o ultimo antes da impressão. Então e ele que vai me retornar o numero da chave, protocolo??

Vê se o codigo e a sequencia abaixo estão corretos:

ACBrNFe1.NotasFiscais.Clear;

with ACBrNFe1.NotasFiscais.Add.NFe do

begin

1 ....//aqui eu vou preencher as tags do componente, impostos e outros

2 NotasFiscais.GerarNFe;

3 NotasFiscais.Assinar;

4 NotasFiscais.Valida;

5 WebServices.Envia(numero_NFe);

6 ...//aqui eu gravo a chave e o protocolo recebido

mytable.fieldByName('PCHAVE').AsString := WebServices.Retorno.ChaveNFe;

mytable.fieldByName('PMOTIVO').AsString := WebServices.Retorno.xMotivo;

mytable.fieldByName('PPROT').AsString := WebServices.Retorno.Protocolo;

7 NotasFiscais.Imprimir;

end;

end;

.

Postado

Imagina...

+ uma coisa.... utilize os blocos try except para recuperar os erros de webservices.

Eu uso assim e fica perfeito.

Boa sorte

Value a sugestão.. mais uma vez obrigado

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