Ir para conteúdo
  • Cadastre-se

Weber de Paula

Membros Pro
  • Total de ítens

    58
  • Registro em

  • Última visita

Posts postados por Weber de Paula

  1. Bom dia!

    Há dias estou tentando usar o ACBRLibNFSe com multi-threading (MT) no PHP. No modo single esta funcionando corretamente, porém ao tentar usar o MT ocorre um "crash" e para tudo sem log mesmo estando no modo paranóico.

    Fiz o teste com o Node.js conforme exemplo abaixo e funcionou corretamente com MT, então descarto problema na DLL, no entanto, estou postando aqui com o objetivo de obter apoio/auxilio de outras pessoas.

    No PHP, uso o FFI::cdef. Olhando o doc e o .pas da DLL vi que preciso enviar o ponteiro handle para inicializar a dll e depois usar o mesmo ponteiro para demais métodos. No meu código consigo inicializar porém ocorre crash (erro sem log) ao tentar finalizar, creio que o handle está errado e o finalizar não encontra o ponteiro do inicializar.

    Ambiente: PHP 8.2, apache, Windows 10 x64

    Código de teste:

    image.thumb.png.7404114ce3f94c1f8f10907d22c90ad8.png

    header da dll

    image.thumb.png.d0bbfb837126e49b06783f1591087e43.png

     

     

    Referência

     

  2. Bom dia!

    Depois que migramos o componente NFSe para NFSeX nota que a tag <InformacoesComplementares> não é preenchida no XML de envio para o provedor.

    Usar a propriedade TACBrNFSeX.InformacoesComplementares porém também efetuamos teste com TACBrNFSeX.OutrasInformacoes. Ambas preenchem a impressão da nota porém não é enviado pelo WebServices do provedor.

    Atualmente o provedor ser Sertãozinho/SP é a SmarApd.

    Gostaria de um auxilio sobre esse problema. Estou tentando analisar o código fonte do ACBR porém sem sucesso até o momento.

     

    Exemplo de como era preenchido antes, na NFSe

    E2497C8EC876F94B64453581FC8D110B

     

    Anexo temos um lote de envio, note que a informação não está no XML.

     

    556-env-lot-soap.xml

  3. Em 02/03/2024 at 09:32, Italo Giurizzato Junior disse:

    Bom dia Weber,

    Pelo seu relato temos o seguinte:

    1. Ao consultar a nota por rps, o XML da mesma é baixado e lido sem nenhum erro.

    2. Ao consultar a nota por faixa, o XML da mesma é baixo, mas ocorre erro ao ler o mesmo.

    3. O erro que ocorre é a leitura das datas de emissão e de competência.

     

    Se você comparar o XML baixado pelo consultar nota por rps com o XML baixado pelo consultar nota por faixa, vai descobrir que a formatação dessas datas estão diferentes.

    No primeiro esta com o formato AAAA-MM-DD, já no segundo esta DD-MM-AAAA.

     

    O que esta ocorrendo na verdade é que o webservice do provedor tem uma rotina que gera o XML para cada serviço que retorna o XML da nota.

    A rotina que gera o XML usada pelo serviço Consultar NFS-e Por RPS esta correta, ou seja, gerando as datas na formatação correta.

    Por outro lado a rotina que gera o XML usada pelo serviço Consultar NFS-e Por Faixa esta errada, ou seja, gerando as datas na formatação incorreta.

     

    É complicado fazer o componente detectar a formação, porque?

    Veja este exemplo: 02/03/2024 esta data esta no formado DD/MM/AAAA ou MM/DD/AAAA?

    Você concorda que não da para afirmar, pois pode ser 2 de março como também 3 de fevereiro.

     

    Se para uma consulta esse provedor gera a data no formato AAAA-MM-DD, para outra gera no formato DD-MM-AAAA, como será o formato das outras consultas?

    Para este provedor temos:

    Consulta Lote, Consultar NFS-e Por RPS, Consultar NFS-e Por Faixa, Consultar NFS-e Serviço Prestado e Consultar NFS-e Serviço Tomado.

     

    Como esse provedor esta usando a versão 2.03 do layout da ABRASF a rotina responsável pela leitura é a mesma para todos os provedores que usam a versão 2.xx

     

    Eu recomento que você entre em contato com o provedor e expõe o problema.

    No meu entendimento se o provedor lhe oferece mais de um serviço para obter o XML da nota, independente do serviço escolhido o XML tem que ser o mesmo.

    Você tem razão.

    Acabei de enviar um e-mail para o provedor solicitando a correção e também liguei. Falei com o suporte, eles entenderam e vão iniciar a correção. 

     

    image.thumb.png.f246391e49d2619d12dc18f6e387a93f.png

    Se achar necessário fechar o post por mim tudo bem.

     

     

    • Curtir 2
  4. 42 minutos atrás, Italo Giurizzato Junior disse:

    Boa tarde Weber,

    Você esta consultando a nota pelo método Consultar NFS-e Por Faixa e esta tendo esse erro.

    Por favor experimente consultar a nota pelo método Consultar NFS-e por RPS.

    Boa tarde,

    Sim por RPS está funcionando corretamente, no entanto, a necessidade seria consulta por número, faixa ou período. Existe um rotina que o que não temos o RPS disponivel. Outra questão é no cancelamento que ocorre o erro também devido a consulta interna após cancelar.

     

  5. Bom dia,

    Ao consultar NFSE por Faixa, número ou período na prefeitura de Sertãozinho/SP, provedor Smarap, é retornado erro ao converter a DataEmissao da RPS e Data de Competencia.

    Pelo que entendi existe uma rotina que está convertendo no padrão YYYY-MM-DD porém esta vindo no padrão DD/MM/YYYY no xml

    image.png.ad07281f81180dde072fd8124e6ed662.png

     

    image.png.f67f36ed3f61432692985e3546255c2a.png

    Procurando no fórum que a solução parece ser a mesma aplicada no link abaixo.

     

    * IMPORTANTE: Meu repositório está atualizado!

    000000000000660000000000000660000001-con-nfse-fai.xml 000000000000660000000000000660000001-lista-nfse-fai.xml

  6. Bom dia, Juliomar.

    Os exemplos do PHP ainda são bem simples e limita-se a ambiente Linux. Não existe nenhum exemplo pra Windows.

    Pelo que estou pesquisando ninguém até o momento conseguiu usar no PHP em ambiente Windows.

    Pelo que percebi não é tão simples usar o ACBRLib para PHP como em outras linguagens. Ele precisa ser compilado para um extensão específica do PHP e esse processo não está documentado pela ACBR e a ACBR não gera essa extensão para PHP. Logo não podemos dizer que ACBRLib é 100% funcional para PHP.

    Estamos dedicando uma equipe para tentar fazer esse processo. Caso tenhamos sucesso compartilho aqui.

    Se eu estiver desatualizado com algum informação por favor compartilhe.

    Abraço.

  7. Boa tarde Juliana!

    Sim. Tentamos usar os exemplos porém eles referem-se somente o Linux e não tem um conteúdo simples.

    Estamos tentando colocar o DLL no PHP no ambiente Windows porém sem sucesso. A DLL da ACBR para rodar em PHP precisa ser compilada para um extensão especifica do PHP e infelizmente não estamos conseguindo por conhecimento limitado ou talvez não funcione mesmo.

    Eu comprei o suporte PRO achando que teria suporte acerca dessa compilação no PHP mas me explicaram que o suporte limita-se ao uso do DLL infelizmente mas é compreensivo devido a quantidade de linguagem que existem hoje em dia. 

    Estamos na tentativa ainda porém sem sucesso até o momento. Tomará que a equipe do ACBR consiga essa "compilação" para PHP um dia.

     

     

     

    • Curtir 1
  8. Em 23/01/2023 at 18:33, Mateus Brunelli disse:

    Segundo as pesquisas que já venho fazendo, inclusive aqui na ACBr, a dll do ACBrLib é compilada em pascal, porém o php lê extensões apenas em C++, por essa razão acredito que não é possível que o php leia diretamente a dll do acbr, no post "Extensão PHP para uso do ACBrLib online! ACBrLibPHP"  , Pelo que eu entendi, o criador do Post cria um codigo em C++ que lê a dll do ACBrLib, depois disso ele compila o codigo em C++ e cria uma dll apartir desse código por fim, ele usa a dll recém criada como extenção do PHP, então a lógica fica assim:
    ACBrLib64.dll > ExtencaoCriadaEmCpp.dll > CodigoEmPHP.php
    Porém, tudo isso é voltado pra linux em todo o código, ou seja, onde seria dll vira so, isso inclui também os comandos de criação do linux, o arquivo MakeFile, entre outros arquivos que são voltados apenas pra a execução no linux

    É possível que eu esteja errado, por essa razão vou continuar seguindo as sugestões que vocês forem me mandando... Obrigado

    Mateus boa tarde

    Vc teve sucesso em usar o ACBRLib no PHP em ambiente Windows?

    Estou na mesma tentativa e até o momento não vi funcionar em ambiente Windows.

    Fiz contato com a equipe de suporte PRO pelo Discord e até o momento nenhuma solução.

     

     

  9. Em 13/07/2023 at 11:28, luizfmathias disse:

    Bom dia, estou tentando usar o ACBrLib no PHP, mais especificamente: Windows, PHP 8.1.6 com Apache 2.4.43

    Mas ele não carrega a dll

    PHP Warning:  PHP Startup: Can't load module 'C:\xampp\php\ext\ACBrNFSe64.DLL' as it's linked with 3.22, but the core is linked with 14.29 in Unknown on line 0
    PHP Warning:  PHP Startup: Can't load module 'C:\xampp\php\ext\ACBrBoleto64.DLL' as it's linked with 3.22, but the core is linked with 14.29 in Unknown on line 0

    Pelo que entendi a dll está linkada com algo de versão 3.22 e o meu estaria na 14.29 ?

    Mas é versão de que isso?

    Muito obrigado.

    Luiz boa tarde,

    Você consegui configurar o ambiente PHP (Windows) e usar o ACBRLib?

    • Curtir 1
  10. Boa tarde

    Estou tentando configurar o componente NfseX para consumir o WebServices da prefeitura de Campo Grande/MS. Atualizei todos os fontes, recompilei o demo e mesmo tudo configurado não esta retornando dados com a consulta por período nem a consulta por número. 

    Acessando o portal da prefeitura, consigo ver notas emitidas porém não consigo listar elas no demo.

    Abaixo algumas imagens das configurações e do retorno.

    image.thumb.png.61a47e8868b7b18bba1e0dcaa607b44b.png

     

     

    image.png.b0179d2f79ea711487325178254e13b8.png

     

    Certificado

    image.png.614a6ad90b316f59ad237e1fb81c0fcc.png

     

    Alguém teria um exemplo do config.ini para ver se eu estou errando em alguma parte?

     

    Desde já muito obrigado!

  11. Com a suspensão do "ConsChNFe", como é possível obter o procNFe (XML completo) da nota fiscal?

    Atualmente a consulta pelo último NSU esta funcionando normalmente, porém algumas notas traz somente o resNFe (resumo da nota), após faço a manifestação de confirmação. A partir daqui, quando o procNFe será disponibilizado? 

    Vlw!

     

  12. Boa noite 
    Poderia atualizar o repositório, por favor.

    A cidade MORRO AGUDO/SP trocou de provedor de GINFES para FIORILLI. 
    O provedor FIORILLI passou a recepcionar as notas desde 28/08/2020.

    Segue em anexo os arquivos INI.
    A cidade MORRO AGUDO/SP utiliza do provedor FIORILLI.

    Segue em anexo os arquivos INI.
    Necessário atualização no Fiorilli.ini e Cidades.ini
    * Função LinkNFSe está funcionando corretamente em produção e homologação. Para produção foi necessário informar o LinkURL_P no cidades.ini

    Desde já muito obrigado!
     

    Fiorilli.ini Cidades.ini

  13. Bom dia

    Atualizei meu repositório e após tivemos erros de rejeição no registro de boletos do banco Santander - 400 posições - com o erro "006-CODIGO DA CARTEIRA INVALIDO".

    Na configuração do sistema, anteriormente passávamos o campo CARTEIRA como 5=RAPIDA COM REGISTRO. Notei que nessa última atualização o arquivo de remessa é gerado com 0 na posição 108 (anteriormente era 5).

    Fiz essa modificação no arquivo do Banco Santander afim de manter a mesma regra anterior, fazendo com que a configuração de carteira = 5 (como diz manual) seja gerada a remessa com o parâmetro 5.

    Por favor avaliem se essa melhoria é pertinente, no meu caso resolveu.

    P.S.: Eu poderia simplesmente alterar o parâmetro carteira de 5 pra 101, porém creio que o melhor modo seja representar as configurações como está no manual do banco.

    function TACBrBancoSantander.DefineCarteira(const ACBrTitulo: TACBrTitulo): String;
    begin
      with ACBrTitulo do
      begin
        Result := PadLeft(Carteira, 1, '0' );
    
        if ((Carteira = '101') or (Carteira = '005'))  then
           Result:= '5'
        else if ((Carteira = '201') or (Carteira = '006')) then
           Result:= '6'
        else if ((Carteira = '102') or (Carteira = '004')) then
           Result:= '4';
      end;
    end;

     

    ACBrBancoSantander.pas

  14. Boa tarde

    Em Ribeirão Preto/SP o link atual do Ginfes.ini não gera o link da NFS-e corretamente devido a url estar errada. 

    Em testes cheguei a conclusão de três possíveis soluções, sendo:

    1) Alterando o arquivo cidade.ini

    [3543402]
    Nome=Ribeirao Preto
    UF=SP
    Provedor=GINFES
    #NomeURL_H=ribeiraopreto 
    #NomeURL_H=ribeiraopreto

    NomeURL_P=visualizar
    NomeURL_P=visualizar

    LinkURL_H=nfs_ribeirao_preto
    LinkURL_P=nfs_ribeirao_preto

    2) Alterando o link [LinkNFSe] para todas as cidades, no entanto ainda não sei se isso é um padrão ou não.

    [LinkNFSe]
    #Producao_ATUAL_ERRADO=http://%NomeMunicipio%.ginfes.com.br/report/consultarNota?__report=%LinkURL%&cdVerificacao=%CodVerif%&numNota=%NumeroNFSe%&cnpjPrestador=null
    #Producao=http://visualizar.ginfes.com.br/report/consultarNota?__report=%LinkURL%&cdVerificacao=%CodVerif%&numNota=%NumeroNFSe%&cnpjPrestador=null
    #Homologacao=http://visualizar.ginfesh.com.br/report/consultarNota?__report=%LinkURL%&cdVerificacao=%CodVerif%&numNota=%NumeroNFSe%&cnpjPrestador=null

    3) Alterando o link [LinkNFSe] somente para Ribeirão Preto

    [LinkNFSe]
    Producao=*******
    Homologacao=*******
    ; Ribeirão Preto/SP
    Producao_3543402=http://visualizar.ginfes.com.br/report/consultarNota?__report=%LinkURL%&cdVerificacao=%CodVerif%&numNota=%NumeroNFSe%&cnpjPrestador=null
    Homologacao_3543402=http://visualizar.ginfesh.com.br/report/consultarNota?__report=%LinkURL%&cdVerificacao=%CodVerif%&numNota=%NumeroNFSe%&cnpjPrestador=null

     

    Todas soluções resultam em um link correto, porém gostaria de solicita ao administradores uma avaliação de qual seria a melhor solução e aplicar no repositório. Particularmente apliquei a primeira solução.

    Anexos estão os arquivos sugeridos!

    Desde já agradeço a ajuda!

     

     

     

    Cidades.ini

  15. Boa tarde

    Depois que atualizei meu repositório, as notas fiscais de serviço da cidade de Sertãozinho/SP ficaram com o link de download vazio.

    Pelo que percebi foi implementado um novo código no ACBrNFSeConfiguracoes, no método SetConfigMunicipio, que permite gerar o link com base no código do IBGE, porém pra isso precisamos ter o parâmetro Producao=******* configurado.

    Atualmente o arquivo SmarAPDABRASF.ini, chave LinkNFSe não temos esse parâmetros. Adicionei as linhas destacadas em vermelho (abaixo), com isso o link foi gerado com sucesso. Poderia por gentileza validar a correção e se realmente estiver correto atualizar o repositório.

    [LinkNFSe]
    Producao=*******
    Homologação=*******
    ; Sertãozinho/SP
    Producao_3551702=http://suporte.sertaozinho.sp.gov.br:9083/tbw/loginWeb.jsp?execobj=NFENotaFiscalBuscarDireto&cnpj=%Cnpj%&numero=%NumeroNFSe%&chave=%ChaveAcesso%
    Homologacao_3551702=http://suporte.sertaozinho.sp.gov.br:9083/tbw/loginWeb.jsp?execobj=NFENotaFiscalBuscarDireto&cnpj=%Cnpj%&numero=%NumeroNFSe%&chave=%ChaveAcesso%

     

    Desde já muito obrigado!

    Atenciosamente,

    Weber de Paula

  16. Bom dia

    Estou tentando homologar o provedor Betha (município Orlândia/SP), deu tudo certo, porém me deparei com campo “discriminação do serviço” que vem fora do padrão, ou seja, a discriminação é a concatenação de vários campos como Quantidade, Item de Serviço, valores e etc (imagem-xml.png ).

    Pesquisei aqui no fórum e vi que já existiam outros posts referente a isso, porém não ocorreu solução (pelo menos não encontrei).

    Eu desenvolvi uma rotina simples que converte essa discriminação da Betha em uma classe com campos acessíveis, no entanto estou com dificuldade de implantar isso no componente de forma correta.

    A função eu já testei, estou usando-a manipulando a discriminação antes de imprimir, porém o ideal seria compartilhar aqui e se possível incluir de forma correta na fonte.

    Se alguém puder me auxiliar em como seria a melhor forma de incluir isso no componente eu seria grato! O intuito é compartilhar!

    Anexo que a unit  e abaixo o código de como apliquei no Demo do ACBR.

     

     if OpenDialog1.Execute then
      begin
        ACBrNFSe1.NotasFiscais.Clear;
        ACBrNFSe1.NotasFiscais.LoadFromFile(OpenDialog1.FileName);
        // tratando discriminação Betha
        if ACBrNFSe1.Configuracoes.Geral.Provedor=proBetha then begin
          lDescricaoBetha:= TBethaConvertDescricao.Create(ACBrNFSe1.NotasFiscais.Items[0].NFSe.Servico.Discriminacao);
          try
            ACBrNFSe1.NotasFiscais.Items[0].NFSe.Servico.Discriminacao:=lDescricaoBetha.Descricao;
          finally
            lDescricaoBetha.Free;
          end;
        end;
        ACBrNFSe1.NotasFiscais.Imprimir;
        ACBrNFSe1.NotasFiscais.ImprimirPDF;
    
        MemoDados.Lines.Add('Arquivo Carregado de: ' + 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);
        MemoDados.Lines.Add('Data de Emissão: ' + DateToStr(ACBrNFSe1.NotasFiscais.Items[0].NFSe.DataEmissao));
    
        MemoResp.Lines.LoadFromFile(ACBrNFSe1.NotasFiscais.Items[0].NomeArq);
        LoadXML(MemoResp.Text, WBResposta);
    
        pgRespostas.ActivePageIndex := 1;
      end;

    Abraço

     

    exemplo-xml.png

    exemplo-2.png

    uBethaConvertDescricao.pas

  17. Bom dia

    Sempre que atualizamos o arquivos da NFSe temos que editar o SmarAPDABRASF.ini e inserir as URLs na tag LinkNFSe (conforme imagem em anexo). Existe algum modo de colocarmos isso em definitivo pra cidade de Sertaozinho/SP e assim distribuir. Creio que seja uma necessidade de outras pessoas de Sertaozinho/SP.

    [LinkNFSe]
    Producao=http://suporte.sertaozinho.sp.gov.br:9083/tbw/loginWeb.jsp?execobj=NFENotaFiscalBuscarDireto&cnpj=%Cnpj%&numero=%NumeroNFSe%&chave=%ChaveAcesso%
    Homologacao=http://suporte.sertaozinho.sp.gov.br:9083/tbw/loginWeb.jsp?execobj=NFENotaFiscalBuscarDireto&cnpj=%Cnpj%&numero=%NumeroNFSe%&chave=%ChaveAcesso%
     

    Desde já muito obrigado!

    Anotação 2019-08-21 152722.jpg

×
×
  • 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...
The popup will be closed in 10 segundos...