Ir para conteúdo
  • Cadastre-se

Diogo Loff

Membros
  • Total de ítens

    177
  • Registro em

  • Última visita

  • Days Won

    1

Diogo Loff last won the day on 17 Fevereiro

Diogo Loff had the most liked content!

Últimos Visitantes

O bloco dos últimos visitantes está desativado e não está sendo visualizado por outros usuários.

Diogo Loff's Achievements

  1. Sim muito bom esta padronização, valeu por compartilhar. Este inclusive é um topico bem antigo, você pode encerrar até, hoje por exemplo já nem estou usando nenhum tipo de impressão mais customizada, todas que estou usando é a que vocês disponibilizaram no padrão nacional, mesmo sendo ainda provedor proprio digamos.
  2. Valeu vi que aplicou, aparentemente esta correto. Obrigado.
  3. Na versão atual de ACBrNFSeXConversao foi removido o retorno do OK booleano da função StrToNaturezaOperacao function StrToNaturezaOperacao(out ok: boolean; const s: string): TnfseNaturezaOperacao; var idx: TnfseNaturezaOperacao; begin for idx:= Low(TNaturezaOperacaoArrayStrings) to High(TNaturezaOperacaoArrayStrings) do begin if (TNaturezaOperacaoArrayStrings[idx] = s) then begin ok := True; Result := idx; exit; end; end; ok := False; raise EACBrException.CreateFmt('Valor string inválido para TnfseNaturezaOperacao: %s', [s]); end; Eu por exemplo uso para checagem no meu sistema e parou de funcionar, pois foi removido, o retorno e passou a dar sempre retorno falso. Acima a correção e anexo o fonte atualizado. ACBrNFSeXConversao.pas
  4. Fiz um ajuste para aceitar tanto valores como percentuais diretamente no .fr3. Não criei campos novos, utilizei o mesmo dos percentuais com uma condição. Segue anexo. DANFSEPadraoNacional.fr3
  5. Esta semana acabei de verirficar que não terá mais a opção de resgatar o DANFE, já adaptei aqui para usar o modelo em Fast de você, esta muito bom, já passou no testes, pode encerrar. Não faz mais sentido este tópico.
  6. Ola, atualizei os fontes hoje 15/06/2026 e esta solução tive que implementar novamente, pois o problema persiste.
  7. Ola, fiz atualização hoje 15/06/2026 e vi que implementaram a solução dos valores do IBPT para simples nacional conforme havia sugerido. Obrigado. Pode encerrar o tópíco, pelos testes que fiz esta correto.
  8. Esqueci de setar False em ObterDANFSEResponse.Sucesso nos tratamentos de erros que coloquei ali. if (Trim(ObterDANFSEResponse.ArquivoRetorno) = '') then begin ObterDANFSEResponse.Sucesso := False; raise Exception.Create('Retorno vazio do serviço de obter DANFSE'); end; if (Pos('<html', LowerCase(ObterDANFSEResponse.ArquivoRetorno)) > 0) and (Pos('bad gateway', LowerCase(ObterDANFSEResponse.ArquivoRetorno)) > 0) then begin ObterDANFSEResponse.Sucesso := False; raise Exception.Create('Erro no serviço de obter DANFSE: resposta inválida (HTML recebido)'); end;
  9. Pode concluir esta correto.
  10. @Italo Giurizzato Junior eu baixei aqui a atualização, e o resgate do PDF esta OK, mas não esta tratando corretamente nas rotinas. Fiz ajuste aqui. ACBrNFSeXProviderBase.pas Rotina procedure TACBrNFSeXProvider.ObterDANFSE; Aqui o ArquivoRetorno sempre vem vazio, pois pela lógica interna do ACBR aqui só retorna valor ser for um XML, JSON ou TXT ObterDANFSEResponse.ArquivoRetorno := AService.ObterDANFSE(ConfigMsgDados.DadosCabecalho, ObterDANFSEResponse.ArquivoEnvio); Logo em baixo é jogado o PDF para EnvelopeRetorno ObterDANFSEResponse.EnvelopeRetorno := AService.Retorno; Porem isto não é usado pra nada pelo que vi, acontece que em TratarRetornoObterDANFSE(ObterDANFSEResponse); que é chamado no final, o tratamento é todo em cima de ObterDANFSEResponse.ArquivoRetorno que esta vazio, o que fiz aqui, logo que atribui em EnvelopeRetorno coloquei um IF. if (Trim(ObterDANFSEResponse.ArquivoRetorno) = '') then ObterDANFSEResponse.ArquivoRetorno := AService.Retorno; Assim as rotinas subsequentes funcionam. Outro problema que peguei por acaso, se tentar resgatar um PDF de um nota fora do mês atual na rotina que monta o path e salva procedure TACBrNFSeXProvider.SalvarPDFNfse(const aNome: string; a data é passada 0, então ele pega mês/ano atual. Ali fiz meio que uma gambiarra pois não sei se é usado para outras coisas, coloquei uma condição se o nome do arquivo é a chave do nacional (meio de forma heuristica sem muito critério), ele pega o mês e ano da chave para jogar o PDF na pasta certa. Vi que você não aplicou aquelá lógica de trabalhar tudo com BASE64, mas esta funcionando, vamos ver se não da erros de encoding, aqui nos testes não tive nenhum. Segunda já vou liberar para os clientes a versão, então os ajustes que to sugerindo aqui já vão para produção e estão funcionais. Da forma original esta quase lá, mas não esta funcionando. A também coloquei mais um tratamento em ObterDANFSE para ver o erro 502 Bad Gateway The server returned an invalid or incomplete response, tem dado este erro as vezes na consulta. ACBrNFSeXProviderBase.pas
  11. Acabei de atualizar os fontes, e este item continua com o problema para quem deseja trabalhar com valores direto e é simples. Implementei novamente a minha solução proposta.
  12. Oi Italo, hoje que tirei para atualizar o ACBr, já conferi e estou enviando a versão para testes.
  13. Oi Italo, hoje que tirei para atualizar o ACBr, já conferi e estou enviando a versão para testes.
  14. Chegaram dar uma olhada neste item?
  15. Oi @Italo Giurizzato Junior obrigado pelo retorno, então estas duas semanas estou em outro projeto na empresa, inicio do mês de abril vou atualizar os fontes, e te digo como ficou. Mas assim a opção de usar impressão por DANFSE acho que vocês deveriam abolir e passar só usar o do nacional direto, pois ai sempre se garante estar fiel como esta lá, já que baixa o pdf, mas mesmo assim vou ver como ficou e te reporto inicio de abril. Sobre isto até eu hehe, como disse já em alguns posts eu não domino a base do ACBR, fiz a coisa para atender meu negócio, o que posso dizer é que todos os clientes meus estão sem problemas usando da forma que deixei, baixando o PDF, mas talvez tenha forma melhor de fazer, se eu dominasse um pouco mais a base da construção do ACBr, mas creio que vocês vão conseguir entender e talvez fazer algo melhorado e mais genérico. Então porque eu converti para base64 se ele vem em PDF, meio que não faz sentido. É que a rotina padrão do ACBr ali que retona isto esta trazendo o binário do PDF em string, se eu vou levando para frente ele como veio, por algum motivo começam dar erros de codificação de pagina, tipo aqueles problemas de encoding, então a forma que achei de resolver isto foi, transformar ele para uma string base64 pois desta forma ele fica protegido e lá onde trata eu salvo para PDF no diretório do provedor. Outra questão que poderia ser era não ter nada disto e no ato que já vem o retorno do webserver e ser PDF já salvar ele e retornar o path, mas não consegui fazer assim, pois como citei no paragrafo acima, desconheço a base do ABCr, e não sei como naquele momento ali identificar o provedor para digamos pegar o path da pasta poder salvar e retornar o path do arquivo. Então esta é a explicação.
×
×
  • 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...