Ir para conteúdo
  • Cadastre-se

dev botao

Cancelamento de NFS-e


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

Recommended Posts

Pessoal, estou testando o cancelamento de notas, ele ocorre, a nota é realmente cancelada, só que as informações não são carregadas para o retorno, a data de cancelamento está zerada.

Meu código de solicitação:

var

   Stream: TStringStream;

begin

Result := nil;


if aEnvio = nil then

   Exit;


FNFSe.NotasFiscais.Clear;

CarregaConfiguracao(FCodUnidade);


try

   try

      MostraTelaConexao();


      if FNFSe.ConsutaNFSeporRps(IntToStr(aEnvio.NumeroRps), aEnvio.Serie, IntToStr(aEnvio.Tipo), aEnvio.Cnpj, aEnvio.InscricaoMunicipal) then

         begin

         Stream := TStringStream.Create(FNFSe.WebServices.ConsNfseRps.RetWS);

         FNFSe.NotasFiscais.LoadFromStream(Stream);


         Application.MessageBox(PChar(FNFSe.NotasFiscais.Items[0].NFSe.IdentificacaoRps.Numero), 'Erro', MB_ICONERROR + MB_OK + MB_DEFBUTTON1);


         if FNFSe.CancelarNFSe('2') then

            Result := TRespostaCancelamentoNfse.Create(FNFSe);

         end;

   finally

      FechaTelaConexao();

   end;

except

   on E: Exception do

      TrataErro(E);

end;
Meu código de tratamento do retorno:
constructor TRespostaCancelamentoNfse.Create(aNFSe: TACBrNFSe);

begin

inherited Create();


FSucesso := False;


if aNFSe.WebServices.CancNfse.NFSeRetorno.InfCanc <> nil then

   FSucesso := aNFSe.WebServices.CancNfse.NFSeRetorno.InfCanc.DataHora <> 0;

end;

Estou usando algo de forma errada?

Obs.: estou usando os novos fontes.

Link para o comentário
Compartilhar em outros sites

  • 3 semanas depois ...

Senhores boa noite,

Estava testando o cancelamento e verifiquei que os campos com informações de cancelamento não estavam sendo apresentados, analisado o XML de resposta vi que tinham divergências com a implementação do fonte pnfsCancNfseResposta.

OBS: Estou testando em Ribeirão Preto/SP - GINFES

Posso postar o pas inteiro se acharem que vale, segue algumas alterações feitas para analise:

Xml de retorno


<?xml version="1.0" encoding="UTF-8" standalone="true"?>

true
2012-08-21T19:02:32


A NFSe foi cancelada com sucesso.




Função alterada

function TretCancNFSe.LerXml: boolean;

var

  i: Integer;

begin

  result := False;

  try

    Leitor.Grupo := Leitor.Arquivo;


    if (leitor.rExtrai(1, Prefixo2 + 'CancelarNfseResposta') <> '') or (leitor.rExtrai(1, Prefixo2 + 'CancelarNfseReposta') <> '') then

    begin


      InfCanc.FSucesso  := Leitor.rCampo(tcStr,    prefixo2 + 'Sucesso');

      InfCanc.FDataHora := Leitor.rCampo(tcDatHor, prefixo2 + 'DataHora');


      // Ler a Lista de Mensagens

      i := 0;

      while Leitor.rExtrai(2, prefixo2 + 'MensagemRetorno', '', i + 1) <> '' do

      begin

          InfCanc.FMsgRetorno.Add;

          InfCanc.FMsgRetorno[i].FCodigo   := Leitor.rCampo(tcStr,    prefixo3 + 'Codigo');

          InfCanc.FMsgRetorno[i].FMensagem := Leitor.rCampo(tcStr,    prefixo3 + 'Mensagem');

          InfCanc.FMsgRetorno[i].FCorrecao := Leitor.rCampo(tcStr,    prefixo3 + 'Correcao');


          inc(i);

      end;

      result := True;

    end;

  except

    result := False;

  end;

end;

Link para o comentário
Compartilhar em outros sites

  • 8 meses depois ...

Senhores boa noite,

Estava testando o cancelamento e verifiquei que os campos com informações de cancelamento não estavam sendo apresentados, analisado o XML de resposta vi que tinham divergências com a implementação do fonte pnfsCancNfseResposta.

OBS: Estou testando em Ribeirão Preto/SP - GINFES

Posso postar o pas inteiro se acharem que vale, segue algumas alterações feitas para analise:

Xml de retorno

 

<?xml version="1.0" encoding="UTF-8" standalone="true"?>
<ns2:CancelarNfseResposta xmlns:ns5="http://www.ginfes.com.br/servico_cancelar_nfse_envio" xmlns:ns3="http://www.ginfes.com.br/tipos"    xmlns:ns4="http://www.ginfes.com.br/servico_consultar_nfse_envio" xmlns:ns2="http://www.w3.org/2000/09/xmldsig#">       
         <ns2:Sucesso>true</ns2:Sucesso>
         <ns2:DataHora>2012-08-21T19:02:32</ns2:DataHora>
         <ns2:MensagemRetorno>
                     <ns3:Codigo/>
                     <ns3:Mensagem>A NFSe foi cancelada com sucesso.</ns3:Mensagem>
                    <ns3:Correcao/>
         </ns2:MensagemRetorno>
</ns2:CancelarNfseResposta>
Função alterada

function TretCancNFSe.LerXml: boolean;
var
  i: Integer;
begin
  result := False;
  try
    Leitor.Grupo := Leitor.Arquivo;

    if (leitor.rExtrai(1, Prefixo2 + 'CancelarNfseResposta') <> '') or (leitor.rExtrai(1, Prefixo2 + 'CancelarNfseReposta') <> '') then
    begin

      InfCanc.FSucesso  := Leitor.rCampo(tcStr,    prefixo2 + 'Sucesso');
      InfCanc.FDataHora := Leitor.rCampo(tcDatHor, prefixo2 + 'DataHora');

      // Ler a Lista de Mensagens
      i := 0;
      while Leitor.rExtrai(2, prefixo2 + 'MensagemRetorno', '', i + 1) <> '' do
      begin
          InfCanc.FMsgRetorno.Add;
          InfCanc.FMsgRetorno[i].FCodigo   := Leitor.rCampo(tcStr,    prefixo3 + 'Codigo');
          InfCanc.FMsgRetorno[i].FMensagem := Leitor.rCampo(tcStr,    prefixo3 + 'Mensagem');
          InfCanc.FMsgRetorno[i].FCorrecao := Leitor.rCampo(tcStr,    prefixo3 + 'Correcao');

          inc(i);
      end;
      result := True;
    end;
  except
    result := False;
  end;
end;

 

Olá Julio eu tambem estou tendo os mesmos problemas...

sera q vc poderia me conseguir o pas?

 

Desde já agradeçço

Link para o comentário
Compartilhar em outros sites

  • Consultores

Bom dia lord82,

 

Você esta com todos os fontes de todos os componentes atualizados?

 

Se sim, esse problema era para estar resolvido.

Consultor SAC ACBr

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

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

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