Ir para conteúdo
  • Cadastre-se

dev botao

ACBrNFSeX - Erro na leitura do XML Fortaleza/CE


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

Recommended Posts

  • Solution

ACBr revision 25950 (27/06/2022 10:42:53)

Retorno do Log na consulta do NFSe/Lote:

Método Executado: ConsultarNFSe
 
Parâmetros de Envio
Num. Ini. NFSe: 
Num. Fin. NFSe: 
Data Inicial  : 27/06/2022
Data Final    : 27/06/2022
 
Parâmetros de Retorno
Sucesso       : True
 
Erro(s):
Código  : X999
Mensagem: Erro de Conexão: '27/03:00' is not a valid integer value
Correção: 
---------
 
NFS-e Numero....: 666
Cod. Verificacao: 746212305
Prestador.......: 
Tomador.........: 

---------------------------------------------------------------------------------

Trecho do XML de retorno da prefeitura de Fortaleza:

<DataEmissaoRps>2022-06-27-03:00</DataEmissaoRps>
<NaturezaOperacao>1</NaturezaOperacao>
<OptanteSimplesNacional>2</OptanteSimplesNacional>
<IncentivadorCultural>2</IncentivadorCultural>
<Competencia>2022-06-27-03:00</Competencia>

     O problema esta na unidade ACBrUtil.DateTime, na função AjustarData.

     A função ParseDataHora da mesma unit, faz a chamada substituindo "-" por "/"

xData := AjustarData(StringReplace(xData, '-', '/', [rfReplaceAll]));

  Trecho da função AjustarData

function AjustarData(const DataStr: string): string;
var
  Ano, Mes, Dia, i: Integer;
  xData: string;
begin
  xData := DataStr;

  i := Pos('/', xData);

  if i = 0 then
  begin
    Result := xData;
  end
  else
  begin
    if i = 5 then
    begin
      xData := copy(xData, 1, 10); //alterado para utilizar os 10 primeiros digitos
      Ano := StrToInt(Copy(xData, 1, 4));
      xData := Copy(xData, 6, Length(xData));
      i := Pos('/', xData);
      Mes := StrToInt(Copy(xData, 1, i-1));
      Dia := StrToInt(Copy(xData, i+1, Length(xData)));

      Result := FormatFloat('0000', Ano) + '/' +
                FormatFloat('00', Mes) + '/' +
                FormatFloat('00', Dia);
    end

     Como a posição da "/" = 5, o código pega o Ano = 2022, o mês = 06, porém o Dia ele retornava "27/03:00",  retornando a exceção na primeira NFSe lida no arquivo.

     Ao acrescentar a linha:     

xData := copy(xData, 1, 10); //utilizar os 10 primeiros digitos

     A leitura voltou ao normal, na consulta por NFSe e Lote.

Link para o comentário
Compartilhar em outros sites

  • Consultores

Bom dia Gil,

Favor anexar a unit alterada para que possamos avaliar.

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

  • Consultores

Boa tarde Gil,

Muito obrigado pela colaboração, já inclui na minha lista de tarefas para avaliar. TK-2853

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

  • Consultores

Boa tarde Gil, 

Já esta no SVN.

Favor atualizar os fontes, reinstale o ACBr e faça novos testes.

  • Obrigado 1
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

  • Consultores

Obrigado por reportar.

Fechando. Para novas dúvidas, criar um novo tópico.

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á 674 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • 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.