Ir para conteúdo
  • Cadastre-se

João Antônio

Membros
  • Total de ítens

    107
  • Registro em

  • Última visita

Tudo que João Antônio postou

  1. Bom dia, Ao emitir nfse para o provedor GovDigital (cidade Unaí-MG) verifiquei que o retorno onde tem caracteres acentuados estava vindo errado. Fiz uma modificação do método TratarXmlRetornado para corrigir este problema. Segue a unit alterada. GovDigital.Provider.pas
  2. Bom dia, ao habilitar a captura de memory leaks em um projeto que utiliza o ACBrNFSeX verifiquei que havia alguns vazamentos de memória no componente. Segue as units modificadas com as correções destes vazamentos de memória. ACBrNFSeXWebservicesResponse.pas EL.Provider.pas
  3. Com certeza RetTotal é usado. Se o RetTotal é menor que 1024 BufferLen assume o valor de RetTotal. Quando RetTotal é maior que 1024 lê-se o buffer de 1024 e subtrai o valor de RetTotal para obter o valor restante a ser lido e retorna ao inicio do loop.
  4. Não terá o problema porque só irá ler a quantidades de bytes restantes para leitura que foi obtido inicialmente pelo método BIO_ctrl. Pelo que pude entender, o método original causa erro porque a posição de leitura já está no final de pBIO e quando tenta ler novamente causa o erro. Algo que não consegui entender é porque em ambiente Windows esse erro não acontece mesmo com o RangeCheck habilitado. Talvez seja um bug do Delphi na compilação Linux.
  5. Uso Delphi 10.4.2 Sydney compilando para Linux Ubuntu 20.04. Alterei a modificação que tinha feito BioToStr para continue lendo buffers de 1k e não gere a exceção de RangeCheck: function BioToStr(ABio : pBIO) : AnsiString ; Var RetTotal : Integer ; BufferLen: Integer; Lin : AnsiString ; begin Result := ''; RetTotal := BIO_ctrl(ABio, BIO_CTRL_PENDING, 0, nil); if RetTotal > 0 then begin BufferLen := 1024; while RetTotal > 0 do begin if RetTotal < BufferLen then BufferLen := RetTotal; SetLength(Lin, BufferLen); BioRead(ABio, Lin, BufferLen); Result := Result + Lin; Dec(RetTotal, BufferLen); end; end; end ; Segue anexo a unit alterada e um projeto teste que compila delphi win32,win64 e LInux64 ACBrDFeOpenSSL.pas OpenSSLACBr.zip
  6. O erro ocorre em Ret := BioRead( ABio, Lin, 1024); Esse método é chamado a primeira vez e lê os dados, sem erros. Nesse momentos os dados são lidos por completo, pois é menor que 1024. Prossegue-se o loop e ao chamar o metodo BioRead novamente ocorre o erro. Justamente por não há mais dados a serem lidos.
  7. Bom dia, Iniciei alguns testes com Delphi + Linux + ACBNFSeX. Verifiquei que ao carregar os dados do certificado digital .pfx no Linux causa erro ERangeError, quando Range checking está habilitado nas configurações do projeto (estranhamente que em ambiente windows mesmo com RangeChecking habilitado nao causa erro) Identifiquei onde o problema é causado e melhorei o método para evitar esse erro. Segue a unit modificada. Testado em Win32/Win64/Linux64 para carregamento de certificados A1. ACBrDFeOpenSSL.pas Método alterado: BioToStr function BioToStr(ABio : pBIO) : AnsiString ; Var Ret : Integer ; Lin : AnsiString ; begin Result := ''; Ret := BIO_ctrl(ABio, BIO_CTRL_PENDING, 0, nil); if Ret > 0 then begin SetLength(Lin, Ret); BioRead( ABio, Lin, Ret); Result := Lin; end; end ;
  8. Bom dia, para correta emissão de NFS-e para o provedor ISSNatal (Natal-RN) é necessário definir a configuração DivAliq100 := True; na unit ISSNatal.GravarXml Segue a unit modificada em anexo. ISSNatal.GravarXml.pas
  9. Boa tarde Italo, tudo certo, parabéns pelo ótimo trabalho.
  10. Boa tarde, segue duas novas cidades (Ibativa-ES e Iuna-ES) que usam o provedor EL para emitir NFSe: [3202454] Nome=Ibatiba UF=ES Provedor=EL ProRecepcionar=https://es-ibatiba-pm-nfs.cloud.el.com.br/RpsServiceService HomRecepcionar= ; ProLinkURL=https://es-ibatiba-pm-nfs.cloud.el.com.br/paginas/sistema/autenticacaoNota.jsf?cpfCnpj=%Cnpj%&chave=%CodVerif% HomLinkURL=https://es-ibatiba-pm-nfs.cloud.el.com.br/paginas/sistema/autenticacaoNota.jsf?cpfCnpj=%Cnpj%&chave=%CodVerif% [3203007] Nome=Iuna UF=ES Provedor=EL ProRecepcionar=https://es-iuna-pm-nfs.cloud.el.com.br/RpsServiceService HomRecepcionar= ; ProLinkURL=https://es-iuna-pm-nfs.cloud.el.com.br/paginas/sistema/autenticacaoNota.jsf?cpfCnpj=%Cnpj%&chave=%CodVerif% HomLinkURL=https://es-iuna-pm-nfs.cloud.el.com.br/paginas/sistema/autenticacaoNota.jsf?cpfCnpj=%Cnpj%&chave=%CodVerif% Essas cidades seguem o mesmo padrão das demais que usam o provedor EL, então bastou adicionar as url no ACBrNFSeXServicos.ini
  11. Ao extrair as mensagens de retorno para o provedor VersaTecnologia (Ubá-MG) o parser de xml levanta uma exeção de encoding inválido do xml: Erro de Conexão: Input is not proper UTF-8, indicate encoding ! Bytes: 0xE3 0x6F 0x20 0x61 Fiz uma modificação convertendo a string para UTF8 e passou a funcionar corretamente. Em anexo segue a unit alterada. VersaTecnologia.Provider.pas
  12. Boa tarde, Para a emissão de NFSe para a cidade de Lauro de Freitas-BA (provedor MetropolisWeb) é preciso que a aliquota seja enviada divida por 100. Para isso foi necessário ajustar a configuração do provedor. Segue em anexo a unit alteradaMetropolisWeb.GravarXml.pas
  13. Para o provedor Pronim versão 2 o retorno do content-type é text/xml;charset=utf-8. Os caracteres só são exibidos de forma correta quando uso UTF8ToNativeString Acredito que outros provedores com esse mesmo retorno deveriam funcionar também.
  14. Essa última alteração que fiz foi em cima da última modificação que você fez.
  15. Boa noite, Fiz alguns testes após o ajuste do charset. Fiz mais um ajuste na verificação do Content-Type do response para que funcione perfeitamente. Segue a unit em anexo. ACBrNFSeXWebserviceBase.pas
  16. Segue a unit alterada ACBrNFSeXWebserviceBase.pas
  17. Ao emitir uma nfse em webservices que retornam dados como utf8 (Content-type: text/xml; charset=utf-8) não está fazendo a conversão correta dos caracteres. Estou usando Delphi Sydney compilando para Windows64. Modifiquei o método TACBrNFSeXWebservice.Executar() da unit ACBrNFSeXWebserviceBase conforme a imagem abaixo e resolveu esse problema de codificação. HttpClient.Execute; HttpClient.DataResp.Position := 0; if ContainsText(HttpClient.HeaderResp.GetHeaderValue('Content-Type'), 'utf-8') then FPRetorno := UTF8ToNativeString(ReadStrFromStream(HttpClient.DataResp, HttpClient.DataResp.Size)) else FPRetorno := ReadStrFromStream(HttpClient.DataResp, HttpClient.DataResp.Size);
  18. A URL de emissão de NFSe para a cidade de Montes Claros-MG cód: 3143302 está errada no ACBrNFSeX. A URL correta é: ProRecepcionar=http://nota.montesclaros.mg.gov.br/nfse.portal.integracao/services.svc HomRecepcionar=http://notateste.montesclaros.mg.gov.brnfse.portal.integracao.teste/services.svc
  19. Já realizei os testes com o provedor Sintese usando o novo componente. Está funcionando corretamente. Já estou trabalhando no meu sistema para migrar para o ACBrNFSeX o mais rápido possível. Parabéns pelo ACBRNFSeX, ficou muito mais simples para dar manutenção e adicionar novas cidades/provedores.
  20. Bom dia, Como ainda não migrei para o ACBrNFSeX, adicionei o provedor Sintese no ACBrNFSe. Portanto o provedor Sintese está funcionando tanto no ACBrNFSe como no ACBrNFSeX Segue anexos os arquivos alterados. Cidades.ini pnfsConversao.pas pnfsNFSeW_ABRASFv2.pas Sintese.ini
  21. A url de produção da cidade é: https://bocaiuva.sintesetecnologia.com.br/nfsews/NfseWS?wsdl Os schemas estão em anexo nfse.xsd xmldsig-core-schema20020212.xsd
  22. Vou precisar gerar NFSe para a cidade Bocaiúva-MG, verifiquei que no ACBr não existe ainda essa cidade, nem mesmo o provedor para o sistema que é utilizado. Obtive algumas informações junto à prefeitura: - É utilizado o Sistema da Síntese Tecnologia (http://sistema.sintesetecnologia.com.br/NFEWeb/indexNFe.xhtml?Param=PMBocaiuva) - Segue o padrão Abrasf 2.04 - Url de homologação: http://homologacao.sintesetecnologia.com.br/nfsews/NfseWS?wsdl - Em anexo estão modelos de envio de RPS. Gostaria que me ajudassem indicando a melhor maneira de inserir esse novo provedor e cidade no ACBrNFSe. modelo_envio_gerar_nfse.xml xmlEnvio-homolog-autorizado.xml
  23. Parece que o problema era na prefeitura. Resolvi testar mais uma vez e agora estou conseguindo gerar para pessoa física e jurídica com as configurações atuais do ACBr (utilizando o método Gerar). Muito obrigado.
  24. O pessoal do provedor me enviou um modelo de RPS (anexo). Percebi que atualmente o rps de envio de lote sincrono do acbr está com algumas diferenças em relação a este. Seria caso de alterar alguma coisa no ini do provedor? RPS - MODELO - MOC.xml
  25. Estou tentando emitir NFSe para a cidade de Montes Claros-MG (provedor Pronimv2). O problema é que quando tento gerar a NFSe para o tomador que é pessoa Física, o webservice me retorna o erro E232 (Ocorreu um erro no processamento do arquivo. A sequencia nao contem elementos). Entretanto quando o tomador é pessoa jurídica a nota é gerada normalmente. Fiz testes tentando gerar duas notas idênticas, com apenas a diferença que uma inseri um cpf para o tomador e na outra inserir um cnpj. Fiz testes com os métodos gerar, enviar sincrono e assincrono, todos me retornam o mesmo erro. Alguém que já tenha passado por isso que possa me dar uma luz?
×
×
  • 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...