Ir para conteúdo
  • Cadastre-se

dev botao

Sequência para enviar a Nfse e imprimir


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

Recommended Posts

Postado

Olá, novamente venho pedir ajuda, gostaria de deixar o módulo de enviar NFSE igual ao de NFE, no sentido assim, ENVIA e IMPRIMI (DANFE), porque falo isto, pois não estou mais conseguindo, como citei em outro tópico antes do CAPICOM das formas de instalação e tal, tudo funcionava blz, agora parou!

Hoje foi enviar uma nota fiscal de serviço, deu erro dizendo que não era SINCRONO, pois bem alterei para GERAR deu erro no Schema, dizendo que não informava o Tomador e InformacaoNfse, eu comparei com o exemplo, ajustei poucas coisas, mas continuou o erro, achei um tópico aqui com o mesmo erro, dizendo para não utilizar o GERAR e sim ENVIAR, bom eu fiz o ENVIAR, mas e agora como IMPRIMIR ? 

Ao tentar ENVIAR novamente aparece a mensagem que já está protocolado tal lote, mas consultando no site da Prefeitura não localizo nada, enfim qual o procedimento correto?

Estranho que antes funcionava, realmente me perdi legal agora, se puderem me orientar agradeço! Fiz várias buscas ok e nada!

Cidade: Piracicaba

Provedor: Simpliss

Último código que possuo: 


procedure TFGeraNFSE.btnGerarRPSClick(Sender: TObject);
var
  vNumRPS, sNomeArq: String;
begin

  vNumRPS := D.CNotNotNum.asString;

  GerarNFSe(vNumRPS);
  ACBrNFSe1.Enviar(StrToInt(vNumRPS));

  ACBrNFSe1.Enviar(vNumLote);

  MemoDados.Lines.Add('Nome XML: ' + ACBrNFSe1.NotasFiscais.Items[0].NomeArq);
  MemoDados.Lines.Add('Nota Numero: ' + ACBrNFSe1.NotasFiscais.Items[0]
    .NFSe.Numero);
  MemoDados.Lines.Add('Código de Verificação: ' + ACBrNFSe1.NotasFiscais.Items
    [0].NFSe.CodigoVerificacao);

  ACBrNFSe1.NotasFiscais.Clear;
end;

Obs.: Eu utilizo  o numero do lote igual ao numero da nota fiscal, sequencial!

 

  • Consultores
  • Solution
Postado

Boa tarde Cesar,

A NFSe não funciona da mesma forma que a NF-e, sendo assim em não me atreveria fazer algo semelhante a NF-e.

Na NF-e o componente ACBrNFe gera o XML da NF-e que é enviado para a SEFAZ e esta retorna o protocolo de autorização, o componente por sua vez acrescenta o protocolo ao XML da NF-e deixando-o com validade jurídica, dai podemos imprimir o DANFE.

Já a NFS-e o componente ACBrNFSe gera o XML do RPS e envia para o webservice do provedor, este processa e gera o XML da NFS-e.

Mas atenção, existem 3 métodos para realizar o envio do RPS, são eles: Enviar, EnviarSincrono e Gerar.

Se o provedor segue a versão 1 do layout da ABRASF somente o método Enviar poderá ser utilizado.

Já os provedores que seguem a versão 2 do layout da ABRASF a principio deveria disponibilizar os 3 métodos, mas nem sempre isso ocorre.

Como você pode ver, qual método deve ser executado vai depender do provedor, portanto você precisa ter na sua aplicação uma configuração que determine qual método será executado.

Depois do envio se faz necessário uma consulta ou duas.

Se o provedor segue a versão 1 do layout da ABRASF devemos após o envio executar o método ConsultarSituacao para saber a situação do lote enviado, se for 3 ou 4 devemos executar o método ConsultarLote.

Se a situação for 3 teremos como resposta a lista de rejeições, por outro lado ser for 4 teremos o XML da NFS-e, por fim você pode executar o método para imprimir o DANFSE.

Agora se o provedor segue a versão 2, devemos executar somente o método ConsultarLote e depois mandar imprimir o DANFSE caso o retorno da consulta retornar o XML da NFS-e.

Espero ter ajudado.

  • Curtir 1
Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

Postado

Perfeito Italo, mais do que entendido, eu usei a NFE como forma operacional, acabei não explicando direito, apenas para padronizar e facilitar para o usuário.

Vou verificar qual layout o Simpliss utiliza enfim, muito obrigado novamente!

  • Curtir 1
  • Membros Pro
Postado
22 horas atrás, Italo Jurisato Junior disse:

Boa tarde Cesar,

A NFSe não funciona da mesma forma que a NF-e, sendo assim em não me atreveria fazer algo semelhante a NF-e.

Na NF-e o componente ACBrNFe gera o XML da NF-e que é enviado para a SEFAZ e esta retorna o protocolo de autorização, o componente por sua vez acrescenta o protocolo ao XML da NF-e deixando-o com validade jurídica, dai podemos imprimir o DANFE.

Já a NFS-e o componente ACBrNFSe gera o XML do RPS e envia para o webservice do provedor, este processa e gera o XML da NFS-e.

Mas atenção, existem 3 métodos para realizar o envio do RPS, são eles: Enviar, EnviarSincrono e Gerar.

Se o provedor segue a versão 1 do layout da ABRASF somente o método Enviar poderá ser utilizado.

Já os provedores que seguem a versão 2 do layout da ABRASF a principio deveria disponibilizar os 3 métodos, mas nem sempre isso ocorre.

Como você pode ver, qual método deve ser executado vai depender do provedor, portanto você precisa ter na sua aplicação uma configuração que determine qual método será executado.

Depois do envio se faz necessário uma consulta ou duas.

Se o provedor segue a versão 1 do layout da ABRASF devemos após o envio executar o método ConsultarSituacao para saber a situação do lote enviado, se for 3 ou 4 devemos executar o método ConsultarLote.

Se a situação for 3 teremos como resposta a lista de rejeições, por outro lado ser for 4 teremos o XML da NFS-e, por fim você pode executar o método para imprimir o DANFSE.

Agora se o provedor segue a versão 2, devemos executar somente o método ConsultarLote e depois mandar imprimir o DANFSE caso o retorno da consulta retornar o XML da NFS-e.

Espero ter ajudado.

Italo, para a emissão da NFSe eu necessariamente tenho de emitir uma RPS e depois a NFSe?

Tem como fazer de forma dinâmica o envio da NFSe independente do servidor e pegar este retorno tbm?

Eu preciso desenvolver a emissão da NFSe, estou olhando o exemplo da ACBr, mas estou um pouco perdido. 

Com sua explicação acima eu consegui entender bastante coisa, mas não estou muito seguro.

Valter Patrick

Gerente de Projetos na empresa CTEC

(33)98400-0936

GitHub: https://github.com/valterpatrick

  • Consultores
Postado

Boa tarde Valter,

O componente ACBrNFSe gera o XML do RPS e envia para o provedor (empresa contratada pela prefeitura).

O Webservice do provedor processa o RPS e se tudo estiver OK gera o XML da NFS-e.

Para obter o XML da NFS-e se faz necessário uma consulta.

O componente possui 3 métodos de consulta: ConsultarLote, ConsultarNFSePorRps e ConsultarNFSe.

No primeiro você informa o numero do lote e o protocolo, no segundo você informa o numero, serie do RPS, já o terceiro se faz necessário saber o numero e serie da NFS-e, sendo assim este ultimo é útil quando você perde o XML e deseja baixar ele novamente.

Normalmente usamos o ConsultarLote, uma vez que o numero do lote é gerado pelo emitente e o protocolo é retornado automaticamente logo após o envio.

O componente possui uma propriedade de configuração chamada: ConsultaLoteAposEnvio.

Se o valor dela for True, o componente se encarrega de realizar todo o processo, ou seja, envia o RPS, aguarda o retorno, consulta o lote para obter o XML da NFS-e.

Andes de sair escrevendo a sua aplicação, faça os testes com o programa exemplo do componente.

 

  • Curtir 1
Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

  • Membros Pro
Postado
Em 20/05/2020 at 15:35, Italo Jurisato Junior disse:

Boa tarde Valter,

O componente ACBrNFSe gera o XML do RPS e envia para o provedor (empresa contratada pela prefeitura).

O Webservice do provedor processa o RPS e se tudo estiver OK gera o XML da NFS-e.

Para obter o XML da NFS-e se faz necessário uma consulta.

O componente possui 3 métodos de consulta: ConsultarLote, ConsultarNFSePorRps e ConsultarNFSe.

No primeiro você informa o numero do lote e o protocolo, no segundo você informa o numero, serie do RPS, já o terceiro se faz necessário saber o numero e serie da NFS-e, sendo assim este ultimo é útil quando você perde o XML e deseja baixar ele novamente.

Normalmente usamos o ConsultarLote, uma vez que o numero do lote é gerado pelo emitente e o protocolo é retornado automaticamente logo após o envio.

O componente possui uma propriedade de configuração chamada: ConsultaLoteAposEnvio.

Se o valor dela for True, o componente se encarrega de realizar todo o processo, ou seja, envia o RPS, aguarda o retorno, consulta o lote para obter o XML da NFS-e.

Andes de sair escrevendo a sua aplicação, faça os testes com o programa exemplo do componente.

 

Obrigado, seguirei suas dicas.

Valter Patrick

Gerente de Projetos na empresa CTEC

(33)98400-0936

GitHub: https://github.com/valterpatrick

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

The popup will be closed in 10 segundos...