Ir para conteúdo
  • Cadastre-se

José Jair de Oliveira

Membros
  • Total de ítens

    43
  • Registro em

  • Última visita

Posts postados por José Jair de Oliveira

  1. Boa tarde Italo.

    Ajustei a DSF.Provider como segue:

    adicionei StrUtilsEx em USES

    function TACBrNFSeXWebserviceDSF200.TratarXmlRetornado(
      const aXML: string): string;

    begin
      Result := inherited TratarXmlRetornado(aXML);

      Result := ParseText(AnsiString(Result), True, False);

      Result := FaststringReplace(Result, '
', '!#xD;!#xA;', [rfReplaceAll]);
      Result := FaststringReplace(Result, '&', ' ', [rfReplaceAll]);
      Result := FaststringReplace(Result, '!#xD;!#xA;', '
', [rfReplaceAll]);
    end;

    Dessa forma substituirá todos os & por espaço, mantendo os que compõem a expressão que pula linha.

    Obrigado

    DSF.Provider.pas

  2. UNIT   ACBrNFSeXWebserviceBase (modificada)

    function TACBrNFSeXWebservice.ExtrairRetorno(const ARetorno: string;
      responseTag: array of string): string;
    var
      Document: TACBrXmlDocument;
      ANode: TACBrXmlNode;
      I: Integer;
      xRetorno: string;
    begin
      Result := '';

      xRetorno := TratarXmlRetornado(ARetorno);

      if xRetorno = '' then
        Exit;

      if not StringIsXML(xRetorno) then
      begin
        Result := xRetorno;
        Exit;
      end;

      if (Length(responseTag) = 0) then
      begin
        Result := xRetorno;
        Exit;
      end;

      Document := TACBrXmlDocument.Create;
      try
        xRetorno := ReplaceString( TratarXmlRetornado(ARetorno), 'R & J','R J');   // Forçando a remoção do & no nome do prestador apenas
        Document.LoadFromXml(xRetorno);   //<== Gerava erro nesse ponto

     

    UNIT ACBrXmlDocument (não modifiquei)

    procedure TACBrXmlDocument.LoadFromXml(AXmlDocument: string);
    var
      loadedDoc: xmlDocPtr;
      loadedRoot: xmlNodePtr;
    begin
      loadedDoc := xmlParseDoc(PAnsiChar(ansistring(AXmlDocument)));

    A variável loadedDoc  retornava vazia sem a remoção do & na razão social

     

    Na urgência tive que fazer o que não se faz...até termos a solução adequada.

    Obrigado

     

  3. Bom dia
    Desde o dia 11/10, um único cliente que contém & na sua Razão Social no cadastro da prefeitura de Sorocaba(DSF) retorna o erro "xmlParseEntityRef: no name" ao enviar NFS e ao Consultar o Lote.

    Todos os demais clientes que emitem NFS estão obtendo o retorno normalmente.

    A NF é gerada e consta o lote de retorno, porém o componente dispara o erro acima e estão parados sem poder emitir notas.

    Provedor: DSF
    ERRO Código  : X999 Erro de Conexão: xmlParseEntityRef: no name

    Correção:
    ---------

    Agradeço a atenção

    1-env-lot-sinc.xml 1-env-lot-sinc-soap.xml 1-lista-nfse-sinc-soap.xml 017122476-con-lot.xml 017122476-con-lot-soap.xml 017122476-lista-nfse-con-lot-soap.xml

  4. Italo, boa tarde.

    Fiz os testes e tudo OK
    Leitura do XML original e Observações

    Essas observações eu estava fazendo nas minhas emissões de notas e agora vou atualizar o sistema em um cliente que emite com mais frequência, mas acredito que não tenhamos maiores transtornos.

    Desde já meu muito obrigado pelos retornos.

    Abraço

  5. Boa tarde Italo,

    Atualizei os fontes, reinstalei o ACBR e recompilei a aplicação, mas ainda retorna ERRO UTF ao ler o XML original.

    Vou anexar outro para novos testes.

    Outro ponto que notei.

    Na impressão da DANFE, os OBS (informações complementares) não eram exibidas..o provedor AcessorPublico aparentemente não tem um campo de OBS Gerais da NF apenas a tag <OBSSERVICO> e a DANFE exibe informações do objeto NFSe.OutrasInformacoes, então ajustei a unit AssessorPublico.LerXml.pas, linha 147 a 151 (segue em anexo).

    No meu envio das informações para o componente estou preenchendo os 2 campos   Servico.Discriminacao e  OutrasInformacoes com as observações da NF, onde Servico.Discriminacao chega ao WebService e registra na NF e  OutrasInformacoes apenas caso queiram visualizar a NF antes da transmissão.

    A DANFE também não exibe o endereço, mas nesse caso no XML retornado do provedor, as tags estão em branco.

    Obrigado.

    erro utf.png

    AssessorPublico.LerXml.pas XML AcessorPublico.xml

  6. Boa tarde
    Obrigado Italo.

    Erro 1) resolvido

    Erro 2) ainda permanece

    Numa reimpressão da Nota no sistema, estou salvando o XML original num arquivo, carrego em outro componente, trato as codificações, etc, salvo e depois carrego no ACBrNFSeX

            QR_NOTAnfe_xml.SaveToFile(GetEnvironmentVariable('TEMP')+'\temp.xml');
            MemoResp.Lines.LoadFromFile(GetEnvironmentVariable('TEMP')+'\temp.xml');
            if ACBrNFSeX1.Configuracoes.Geral.Provedor=proAssessorPublico then
            begin
               MemoResp.Lines.Text:=TratarXmlUTF8(MemoResp.Text);
               MemoResp.Lines.SaveToFile(GetEnvironmentVariable('TEMP')+'\temp.xml');
            end;
            ACBrNFSeX1.NotasFiscais.LoadFromFile(GetEnvironmentVariable('TEMP')+'\temp.xml');

     

    provedor ISSDSF (Sorocaba) não gera o erro do AssessorPublico(Votorantim)

    Obrigado.

  7. Boa tarde,

    Não será por conta de que agora devemos passar como parâmetro o nr do protocolo que retorna no envio e não mais o nr lote?

      with ACBrNFSeX1.WebService do
      begin
          if Enviando then
          begin
              with Emite do
              begin
                  NumLote:=Lote;
                  NumProtocolo:=Protocolo;

    ....

    na consulta...            ACBrNFSeX1.ConsultarLoteRps(NumProtocolo, NumLote);

     

    o erro HTTP 500 tem retornado constantemente, pois desde o dia 01/04 está muito instável o serviço, todo dia tem essas oscilações na conexão.

     

    Abraço!

  8. Bom dia Italo, tudo bem?
    Segue mais algumas observações das últimas atualizações do provedor AssessorPublico.

    1)

    Na unit AssessorPublico.LerXml.pas:
    function TNFSeR_AssessorPublico.LerXmlNfse(const ANode: TACBrXmlNode): Boolean;

    Linha 254

    O sinal (+) deve ser (*)...está resultando em valores totais dos itens incorretos na DANFESeX

     Está ==> ValorTotal := Quantidade + ValorUnitario;  

     Correto ==> ValorTotal := Quantidade * ValorUnitario;  

     

    2)

    Ao carregar o XML *sem ser na consulta do lote*, usando ACBrNFSeX1.NotasFiscais.LoadFromFile, retorna erro proper UTF-8...acredito que devido a tag <LINK> ou <SERIEDESC> ou <OBSSERVICO> ou <ATIVDESC> ou <PRESTNOMERAZAO> retornarem informações acentuadas ou com caracteres codificados ...vou anexar algum retorno para seus testes.

    temp.xml

  9. Boa tarde Italo, obrigado por adicionar as solicitações acima na sua lista.

    Hoje precisei cancelar uma NF e ao consultar na prefeitura, a NF posterior que havia sido cancelada.

    Fiz um ajuste e após isso cancelou a NF correta.

    arquivo:   ...ACBR\Fontes\ACBrDFe\ACBrNFSeX\Provedores\AssessorPublico.Provider.pas

    -> procedure TACBrNFSeProviderAssessorPublico.PrepararCancelaNFSe

    LInha 543:

      Response.ArquivoEnvio := '<NFSE>' +
                             '<IDENTIFICACAO>' +
                               '<INSCRICAO>' +
                                  Emitente.InscMun +
                               '</INSCRICAO>' +
                               '<LOTE>' +
                                  Response.InfCancelamento.NumeroLote +
                               '</LOTE>' +
    //                           '<SEQUENCIA>' +
    //                              Response.InfCancelamento.NumeroNFSe +
                               '<SEQUENCIA>' +
                                  inttostr(Response.InfCancelamento.NumeroRps) +
                               '</SEQUENCIA>' +
                               '<OBSERVACAO>' +
                                  Response.InfCancelamento.MotCancelamento +
                               '</OBSERVACAO>' +
                             '</IDENTIFICACAO>' +
                           '</NFSE>';

    a TAG <SEQUENCIA> estava recebendo o NR da Nota Fiscal e passei a informar o NR do RPS (Esse nr RPS está sendo retornado no XML do provedor no campo ACBrNFSeX1.NotasFiscais.Items[0].NFSe.IdentificacaoRps.Serie)

    Obrigado Italo.

    AssessorPublico.Provider.pas

    • Curtir 1
  10. Boa tarde, como estão?

    Fiz essa semana a troca de ACBrNFSe para ACBrNFSeX para Sorocaba (DSF) e Votorantim(AccessorPublico).

    Sorocaba está indo bem, mesmo com alguns bugs e instabilidades no WebService decorrentes da recente migração, acredito.

    Para Votorantim tenho algumas considerações e agradeço a análise de vcs no devido tempo:

    ** Dados da Cidade: ACBrNFSeXServicos.ini
    [3557006]
    Nome=Votorantim
    UF=SP
    Provedor=AssessorPublico
    ProRecepcionar=http://sql.sefvotorantim.sp.gov.br:8080/issonline/servlet/anfse?wsdl
    HomRecepcionar=http://sql.sefvotorantim.sp.gov.br:8080/issonline_teste/servlet/anfse?wsdl

    **Está retornando erro caso nenhuma informação seja enviada no COMPLEMENTO do endereço do tomador

    **A montagem da DANFESe não exibe os itens de serviço (AssessorPublico aceita mais de um item de serviço)..A NF é registrada com todos os itens normalmente, aparentemente é algum detalhe na montagem do relatório.

    **No retorno: ACBrNFSeX1.NotasFiscais.Items[X].NFSe.IdentificacaoRps.Numero  está retornando CÓDIGO DE VERIFICAÇÃO

    **No retorno: ACBrNFSeX1.NotasFiscais.Items[X].NFSe.IdentificacaoRps.Serie  está retornando NR RPS

    **Ao ler os dados das NFs em ACBrNFSeX1.NotasFiscais após consultar o lote TUDO OK, mas se salvar o XML e ler do arquivo
    ACBrNFSeX1.NotasFiscais.LoadFromFile() retorna o erro:
    Input is not proper UTF-8, indicate encoding !
    Bytes: 0xF4 0x6E 0x69 0x63
    Não sei se devido ao LINK para visualização da NF retornado no XML

    *OutrasInformacoes e InformacoesComplementares Não estão sendo considerados...mesmo preenchido qq um deles não é registrado na NF(WebService), a NF é gerada sem as informações.

    Agradeço a atenção e tenham todos uma boa tarde.

     

    • Curtir 1
  11. Bom dia Italo.
    Também no provedor AssessorPublico ao enviar RPS com retenções de PIS, COFINS, IR e CSLL, temos que enviar parâmetros para que tais retenções sejam aceitas:

    Obrigado.

      Gerador.wCampo(tcDe2, '', 'PIS', 1, 1, 1,NFSe.Servico.Valores.ValorPis, '');
      if NFSe.Servico.Valores.ValorPis>0 then
         Gerador.wCampo(tcStr, '', 'RETPIS', 1, 1, 1, 'S', '');
      Gerador.wCampo(tcDe2, '', 'COFINS', 1, 1, 1, NFSe.Servico.Valores.ValorCofins, '');
      if NFSe.Servico.Valores.ValorCofins>0 then
         Gerador.wCampo(tcStr, '', 'RETCOFINS', 1, 1, 1, 'S', '');
      Gerador.wCampo(tcDe2, '', 'INSS', 1, 1, 1, NFSe.Servico.Valores.ValorInss , '');
      if NFSe.Servico.Valores.ValorInss>0 then
         Gerador.wCampo(tcStr, '', 'RETINSS', 1, 1, 1, 'S', '');
      Gerador.wCampo(tcDe2, '', 'IR', 1, 1, 1, NFSe.Servico.Valores.ValorIr, '');
      if NFSe.Servico.Valores.ValorIr>0 then
         Gerador.wCampo(tcStr, '', 'RETIR', 1, 1, 1, 'S', '');
      Gerador.wCampo(tcDe2, '', 'CSLL', 1, 1, 1,  NFSe.Servico.Valores.ValorCsll  , '');
      if NFSe.Servico.Valores.ValorCsll>0 then
         Gerador.wCampo(tcStr, '', 'RETCSLL', 1, 1, 1, 'S', '');

     

  12. Sim... no primeiro caso com duas notas até apareceu os números dos dois RPS 3205 e 3206, mas com 3 ficou repetindo o mesmo erro do primeiro RPS para cada ocorrência.
    O PDF que geram no link até está com informações mais corretas, embora cada RPS com apenas 1 erro está repetindo duas vezes.

    Vou encaminhar para os desenvolvedores nossas consideraçõeos e ver o que nos respondem.

    Obrigado Italo

    • Curtir 2
  13. document.pdf

    Duas notas:  RPS 3205 e 3206 no lote 410073948

    Enviei com 2 tipos de erro em ambas: Alíquota de ISS normal   e Alíquota de ISS Retenção ...Gerei com % acima do correto por se tratar de testes e verificação dos retornos.

     

    Fiz novos envios agora com 3 notas, apenas % ISS incorreto em todas e a última (RPS 3207) também com código do serviço incorreto.

    Abrindo o PDF pelo site da prefeitura até fica +- link abaixo e PDF anexo

    http://sql.sefvotorantim.sp.gov.br:8080/issonline/servlet/hrelprocessoinconsistencia?zLyutwVzqrd%2Fxzd%2BbPY9IQ%3D%3D

     

    agora o retorno em XML que vem, ficou esquisito.

    document com 3 RPS.pdfErros AssessorPublico com 3 RPS.xml

     

     

  14. Bom dia Italo

    Fiz o teste e tudo ok com o envio de mais de uma NF no lote.

    Enviei informações com erros e ao consultar o lote

    function TWebServices.ConsultaLoteRps(const ANumLote, AProtocolo: String): Boolean;
    begin
      FConsLote.FNumeroLote := ANumLote;
      FConsLote.FProtocolo  := AProtocolo;

      Result := FConsLote.Executar;

      if not (Result) then
        FConsLote.GerarException( FConsLote.Msg );
    end;

    Na    unit ACBrNFSeWebServices    a linha       Result := FConsLote.Executar;    retorna FALSE  resultando em erro.

    Quando o lote não contem erros retorna TRUE e a NF é gerada com sucesso no servidor da prefeitura ou seja, apenas não está conseguindo pegar as observações do WebService, que contém os erros que invalidaram o lote.

    Mas agora já está 99,99% funcional

    Muito obrigado.

×
×
  • 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.