Ir para conteúdo
  • Cadastre-se

Rodrigo - Digibyte

Membros Pro
  • Total de ítens

    284
  • Registro em

  • Última visita

  • Days Won

    1

Posts postados por Rodrigo - Digibyte

  1. Adicionado "IF" pois o node IdentificacaoRps pode ser null ocasionando AV

        if Node <> nil then
        begin
          NumRps := ObterConteudoTag(Node.Childrens.FindAnyNs('Numero'), tcStr);
          SerieRps := ObterConteudoTag(Node.Childrens.FindAnyNs('Serie'), tcStr);
        end;

    function TACBrNFSeProviderABRASFv1.PreencherNotaRespostaConsultaNFSe(Node,
      parentNode: TACBrXmlNode; Response: TNFSeConsultaNFSeResponse): Boolean;
    var
      NumNFSe, CodVerif, NumRps, SerieRps: String;
      ANota: TNotaFiscal;
      AResumo: TNFSeResumoCollectionItem;
    begin
      Result := False;
    
      if Node <> nil then
      begin
        Node := Node.Childrens.FindAnyNs('InfNfse');
        NumNFSe := ObterConteudoTag(Node.Childrens.FindAnyNs('Numero'), tcStr);
        CodVerif := ObterConteudoTag(Node.Childrens.FindAnyNs('CodigoVerificacao'), tcStr);
        Node := Node.Childrens.FindAnyNs('IdentificacaoRps');
        if Node <> nil then
        begin
          NumRps := ObterConteudoTag(Node.Childrens.FindAnyNs('Numero'), tcStr);
          SerieRps := ObterConteudoTag(Node.Childrens.FindAnyNs('Serie'), tcStr);
        end;
    
        AResumo := Response.Resumos.New;
        AResumo.NumeroNota := NumNFSe;
        AResumo.CodigoVerificacao := CodVerif;
        AResumo.NumeroRps := NumRps;
        AResumo.SerieRps := SerieRps;
    
        ANota := TACBrNFSeX(FAOwner).NotasFiscais.FindByRps(NumRps);
    
        ANota := CarregarXmlNfse(ANota, parentNode.OuterXml);
        SalvarXmlNfse(ANota);
        Result := True; // Processado com sucesso pois retornou a nota
      end;
    end;

     

  2. Investigando um pouco, na procedure TACBrNFSeProviderABRASFv1.TratarRetornoConsultaNFSe(Response: TNFSeConsultaNFSeResponse) temos:

          ANodeArray := ANode.Childrens.FindAllAnyNs('CompNfse');
          if ANodeArray = nil then
            ANodeArray := ANode.Childrens.FindAllAnyNs('ComplNfse');
    
          if not Assigned(ANodeArray) then
          begin
            AErro := Response.Erros.New;
            AErro.Codigo := Cod203;
            AErro.Descricao := Desc203;
            Exit;
          end;
    
          for I := Low(ANodeArray) to High(ANodeArray) do
          begin
            ANode := ANodeArray[I];

    Pelo que entendi vai percorrer uma lista de tags CompNfse porém as notas estão dentro de tcCompNfse então o código só faz uma interação.

    <?xml version="1.0" encoding="utf-8"?>
    <soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
        <soap:Body>
            <ConsultarNfseResponse xmlns="http://www.e-governeapps2.com.br/">
                <ConsultarNfseResult>
                    <ListaNfse>
                        <CompNfse>
                            <tcCompNfse>
                                <Nfse>
                                    <InfNfse>
                                        <Numero>13943</Numero>
    								</InfNfse>
    							</Nfse>
    						</tcCompNfse>
    						<tcCompNfse>
    							<Nfse>
    								<InfNfse>
    									<Numero>13944</Numero>

     

  3. Durante a importação de xml do provedor Abaco foi observado um erro ocasionado pela leitura da tag DataEmissaoRps com uma data inválida. Ela não está preenchida pois esta nota não teve um RPS gerado.

    Alterei a procedure TNFSeR_ABRASFv1.LerInfNfse inserindo o "if" para fazer o tratamento e evitar o erro

        if (NFSe.IdentificacaoRps.Numero <> '0') then
          NFSe.DataEmissaoRps           := LerDataEmissaoRps(AuxNode);

     

    Acho até que esse tratamento deveria estar nas classes do ACBR que tratam a conversão de datas mas não quis mexer nessa parte, fica como sugestão.

     

    Não consigo fazer upload do arquivo, retorna erro de upload, a unit é ACBrNFSeXLerXml_ABRASFv1.pas

     

    <IdentificacaoRps>
    <Numero>0</Numero>
    <Serie/>
    <Tipo>0</Tipo>
    </IdentificacaoRps>
    <DataEmissaoRps>0000-00-00</DataEmissaoRps>
    <NaturezaOperacao>1</NaturezaOperacao>

     

  4. Provedor SisPMJP 2.02

    Já atualizei o ACBR

    Em anexo o XML da requisição

    Estou tendo o erro abaixo ao tentar consultar por faixa de notas, alguma dica?

     

    Erro(s):
    Código  : X999
    Mensagem: Erro de Conexão: Erro Interno: 0
    Erro HTTP: 401
    URL: https://sispmjp.joaopessoa.pb.gov.br:8443/sispmjp/NfseWSService

    Premature end of data in tag html line 1

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

     

    000000001001430000000001001435000001-con-nfse-fai-soap.xml

  5. Tentei mandar o arquivo mas está erro de upload

     

    [3539202]
    ; Incluido 06/10/2022
    Nome=Pirapozinho
    UF=SP
    Provedor=Fiorilli
    Versao=2.00
    ProRecepcionar=http://186.227.40.20:8080/IssWeb-ejb/IssWebWS/IssWebWS
    ProLinkURL=http://186.227.40.20:8080/issweb/formGerarNF.jsf?nroNota=%NumeroNFSe%&codVerificacao=%CodVerif%&cnpj=%Cnpj%&hash=%ChaveAcesso%

    [5001102]
    ; Corrigido 06/10/22
    Nome=Aquidauana
    UF=MS
    Provedor=Fiorilli
    Versao=2.00
    ProRecepcionar=http://pmaquidauana.rcmsuporte.com.br:8080/IssWeb-ejb/IssWebWS/IssWebWS
    ProLinkURL=http://pmaquidauana.rcmsuporte.com.br:8080/issweb/formGerarNF.jsf?nroNota=%NumeroNFSe%&codVerificacao=%CodVerif%&cnpj=%Cnpj%&hash=%ChaveAcesso%
     

    • Curtir 1
  6.  

    Opa, ia responder mas você foi mais rápido. Obrigado pelo retorno.

    1. Sim, a cidade trocou de provedor mas os erros acima já são no provedor correto > fiorilli . Se quiser pode até arrumar no ini ou posto separado ...
    2. Na demonstração vi que estava desmarcada a opção de montar o path dos schemas automaticamente (pegava errado), esse era o meu primeiro erro.
    3. Depois notei que não existem schemas da versão 2.01, mudei no ini para 2.00 e fez a consulta corretamente. Apesar que pelo manual deles eu entendi que seria versão 2.01.
    4. Agora deu um erro pedindo certificado digital, achei que bastava usuário e senha, vou testar. O erro principal foi solucionado, dá pra fechar.
    Erro(s):
    Código  : X999
    Mensagem: Erro de Conexão: Erro Interno: 0
    Erro HTTP: 0
    URL: http://issweb.jardim.ms.gov.br:8088/IssWeb-ejb/IssWebWS/IssWebWS
    
    DadosPFX, ArquivoPFX, URLPFX ou NumeroSerie não especificados !
    [5005004]
    Nome=Jardim
    UF=MS
    Provedor=Fiorilli
    Versao=2.00
    ProRecepcionar=http://issweb.jardim.ms.gov.br:8088/IssWeb-ejb/IssWebWS/IssWebWS
    ProLinkURL=http://issweb.jardim.ms.gov.br:8088/issweb/formGerarNF.jsf?nroNota=%NumeroNFSe%&codVerificacao=%CodVerif%&cnpj=%Cnpj%&hash=%ChaveAcesso%

     

  7. Olá.

    Estou tentando baixar as notas por faixa de numeração e obtenho o erro abaixo. Estou utilizando o programa de exemplo, é a primeira vez que tento fazer consulta pelo WS de prefeitura então não sei por onde começar. Alguma dica de como resolver? O que estaria errado?

    Erro(s):
    Código  : X800
    Mensagem: Erro de Validação: 1845 - Element '{http://www.abrasf.org.br/nfse.xsd}ConsultarNfseFaixaEnvio': No matching global declaration available for the validation root.

    Esse é o arquivo ini modificado - o provedor estava incorreto

    [5005004]
    Nome=Jardim
    UF=MS
    Provedor=Fiorilli
    Versao=2.01
    ProRecepcionar=http://issweb.jardim.ms.gov.br:8088/IssWeb-ejb/IssWebWS/IssWebWS
    ProLinkURL=http://issweb.jardim.ms.gov.br:8088/issweb/formGerarNF.jsf?nroNota=%NumeroNFSe%&codVerificacao=%CodVerif%&cnpj=%Cnpj%&hash=%ChaveAcesso%

    Essa é a requisição

    - <ConsultarNfseFaixaEnvio xmlns="http://www.abrasf.org.br/nfse.xsd">
    - <Prestador>
    - <CpfCnpj>
      <Cnpj>XXXXXXXXXXXXXXXX</Cnpj> 
      </CpfCnpj>
      </Prestador>
    - <Faixa>
      <NumeroNfseInicial>2200</NumeroNfseInicial> 
      <NumeroNfseFinal>2220</NumeroNfseFinal> 
      </Faixa>
      <Pagina>1</Pagina> 
      </ConsultarNfseFaixaEnvio>

     

  8. Eu imaginei que a versão fosse 2.01 por causa do arquivo...  no site do município todas as instruções são usando o portal deles, não tem nada a respeito de integração, olhei todos os manuais que achei

     

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <CompNfse xmlns="http://www.abrasf.org.br/nfse.xsd" xmlns:ns2="http://www.w3.org/2000/09/xmldsig#">
    	<Nfse versao="2.01">

  9. @Italo Giurizzato Junior Boa tarde, seguem os arquivos com implementação que fiz.

    Basicamente criei um novo tipo de documento ( TtpXML = (txmlRPS, txmlNFSe, txmlEspelho); ) e fiz a implementação da leiturado do XML. Lembro que esse arquivo de espelho da nota é baixado do portal da prefeitura. Sendo aceito vou fazer de outros provedores.

    ACBrNFSeXNotasFiscais.pas ACBrNFSeXConversao.pas SigISS.LerXml.pas

  10. Bom dia. Fiz uma comparação do arquivo baixado pelo portal com o manual do provedor e realmente os arquivos são diferentes. No caso de Londrina seria até complicado baixar a nota usando o WS pois é só uma a uma, não dá por faixa de datas.

    Seria valido eu implementar para esse provedor a leitura do arquivo do portal, vocês incluiriam no ACBR? Minha ideia seria criar um novo TipoXml ...

    Só complementando, que eu me lembre outros provedores tem essa diferença entre a nota e o baixado do portal

    function TNotaFiscal.LerXML(const AXML: String): Boolean;
    var
      FProvider: IACBrNFSeXProvider;
      TipoXml: TtpXML;
    begin
      FProvider := TACBrNFSeX(FACBrNFSe).Provider;
    
      if not Assigned(FProvider) then
        raise EACBrNFSeException.Create(ERR_SEM_PROVEDOR);
    
      Result := FProvider.LerXML(AXml, FNFSe, TipoXml);
    
      if TipoXml = txmlNFSe then
        FXmlNfse := AXML
      else
        FXmlRps := AXML;
    end;

     

    • Curtir 1
  11. Não testei pelo WebService, isso é algo que vou começar a implementar. Posso até tentar testar de Londrina, tenho que ver como conecta lá. Entendo que pelo WS realmente o layout talvez seja diferente mas é que como tem o loadxml implementado, então estou usando ;) , estaria dentro da finalidade do componente... Mas claro, entendo a situação e nem estou cobrando algo, só preciso de um direcionamento para que eu possa encaminhar a solução pro cliente e ajudar no componente se necessário.

  12. Não precisa saber ou escolher manualmente o provedor de cada cidade, o ACBR faz isso pelo código do município. Existia também uma leitura do XML para tentar identificar o provedor, mas no X acho que é só pelo município mesmo:

    ACBrNFSe.Configuracoes.Geral.CodigoMunicipio

    O XML varia entre provedores, não entre cidades, mas pode haver alguma situação específica

    O ACBRNFSE X está com problema para ler a nota do provedor SIG quando baixado do site

    O ACBRNFSE anterior deve estar funcionando, não tenho certeza, talvez falhe algum campo

    Pra pegar o CNPJ experimente:

    ACBrNFSe.NotasFiscais.Items[i].NFSe.PrestadorServico.IdentificacaoPrestador.Cnpj)

     

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