Ir para conteúdo
  • Cadastre-se

Ronaldo Cesar Bim

Membros
  • Total de ítens

    44
  • Registro em

  • Última visita

Tudo que Ronaldo Cesar Bim postou

  1. @Juliomar Marchetti a documentação agora está funcionando.
  2. Como eu faço para acompanhar o status ?
  3. Boa tarde Alexandre, estou enviando a pasta compactada, na pasta raíz tem um projeto de teste exemplificando uma venda com qrCode e aguardando o pagamento até for concluído. Dentro da pasta Acbr é um modelo da BPL que criei, já com a imagem do componente, apenas deixei comentado o Register pois não sei ao certo como é feito o registro dos demais componentes do Acbr, mas eu utilizei o register apenas para testar aqui no meu ambiente. O link da documentação da H1 fintech: https://api.h1fintech.com.br/swagger-ui/?urls.primaryName=pix-service Qualquer dúvida estou a disposição. PixH1.zip
  4. Bom dia Alexandre, tenho algumas coisas para finalizar ainda, assim que deixar tudo pronto e documentado irei postar. Obrigado
  5. Boa tarde pessoal, realizei uma implementação local aqui seguindo os padrões do Acbr integrando o PIX com a Fintech H1 utilizada por um de nossos clientes. Como faço ou com quem converso para poder enviar os fontes e disponibilizar esta nova integração junto aos componentes padrões do ACBR ?
  6. Pessoal, se eu utilizar um arquivo fonte em projetos delphi e lazarus e não precisar de suporte a delphis antigos(d7) teria algum problema em converter o formato do fonte para utf-8 ? pois pelo que entendi se eu manter o arquivo em cp1252 preciso converter as strings para UTF8 quando utilizadas no lazarus. Seria isso mesmo ?
  7. Eu que agradeço, ainda esta semana estarei testando e te notifico caso tenha algum problema.
  8. Boa noite, segue a alteração sugerida, basicamente alterei para aceitar definir no componente cópias = 0, quando estiver setada copias = 0 não fará a verificação deste trecho if RLPrinter.Copies <> AConfig.NumCopias then, pois é exatamente neste if onde ocorre o problema. ACBrDANFCeFortesFr.pas ACBrDFeReport.pas ACBrDFeReportFortes.pas
  9. Administradores do ACBR, fiz a leitura do post ( ) constatei que temos o mesmo problema na impressão da DANFE nfe e nfc-e, estou desenvolvendo um servidor rest compilando pra ISAPI no IIS e está ocorrendo o mesmo problema ao executar este código (if RLPrinter.Copies <> AConfig.NumCopias then) no método AjustarReport do fonte (ACBRDFeFortesReport.pas) e no método ImprimirInterno do fonte (ACBrDANFCeFortesFr.pas). Fiz localmente um pequeno ajuste para aceitar NumCopias com valor zero e adicionei neste if para testar se NumCopias > 0 para evitar a chamada de RLPrinter.Copies. Pelos testes que fiz resolveu, inclusive fiz teste em massa realizando várias chamadas simultâneas ao servidor e ele gerou todos os PDFs corretamente, porém para que isso seja possível precisei adicionar uma sessão crítica no meu servidor no momento da geração do PDF, pois o FortesReport não é Thread Safe. Seria possível disponibilizar este ajuste no RLPrinter.Copies nas impressões do Acbr para que toda a comunidade consiga utilizar em modo ISAPI as impressões com Fortes Report ?
  10. Bom dia Daniel, obrigado pela dica, referente o caso de ontem, testei utilizando um e-mail gmail e funcionou perfeitamente, então acredito que seja algum tipo de bloqueio do meu provedor de e-mail quando recebe a conexão do meu servidor, ainda não descobri o motivo mas irei entrar em contato com o provedor para me auxiliar. Por hora irei utilizar este gmail até que o caso seja resolvido.
  11. Blz, obrigado pelo apoio, vou tentar entrar no meu provedor e ver algumas configurações, caso eu encontre a solução irei postar aqui
  12. Daniel, implementei um memo na tela para logar conforme sugestão, segue os resultados. Meu PC, SSL=True, TLS=True Resultado: email enviado com sucesso, sem nenhum log Meu PC, SSL=True, TLS=False Resultado: email enviado com sucesso, sem nenhum log Meu PC, SSL=False Resultado: não envia e-mail e log: Unable to Login Servidor Nuvem, SSL=True, TLS=True Resultado: não envia e-mail, sem nenhum log Servidor Nuvem, SSL=True, TLS=False Resultado: não envia e-mail, sem nenhum log Servidor Nuvem, SSL=False Resultado: não envia e-mail e log: Unable to Login Implementei um exemplo usando Indy que achei na internet e ocorre a mesma coisa, no meu pc funciona e no servidor não loga nada de erro e não chega o e-mail. A empresa que fornece o servidor me passou que não existe nenhum bloqueio, o que acabei confirmando usando o Thunderbird.
  13. Boa tarde Daniel, não ocorre mensagem de erro.
  14. Senhores, comecei a usar o AcbrMail em um projeto novo, fiz um aplicativo de teste usando meu provedor de email na porta 465 com ssl/tls, o aplicativo de teste funciona normalmente aqui no meu PC, mas em um servidor novo na nuvem com windows 2008R2 não vai, não ocorre erro algum, o e-mal simplesmente não chega, já testei todas versões de dlls que estão na pasta OpenSSL , atualizei o windows, e nada. Instalei um client de e-mail neste servidor para testar e funciona normalmente, testei o meu aplicativo em outros servidores de clientes, em outros PCs e ele funciona, mas neste servidor na nuvem não vai. O que pode estar acontecendo ? seria algum certificado que tenho no meu PC que não tem no servidor ?
  15. Alguém sabe me dizer qual é a relação desta lei com a lei 12741/12 (de olho no imposto) ? Será que podemos utilizar a mesma tabela IBPT para apresentar os cálculos de impostos por produto ?
  16. Quando fui testar, percebi que esta alteração talvez gere um impacto indesejado, se mudarmos de CancelarTransacoesPendentesClass para TACBrTEFD(Owner).CancelarTransacoesPendentes, pq em CancelarTransacoesPendentes é realizado um loop na lista de TEF habilitados, podendo assim Cancelar Transações de outros TEF que não seja o da SiTef. E talvez ocorra de existir transações ao mesmo tempo em SiTef, Pay&Go e outros... Sera que a melhor forma não é chamar o evento "OnDepoisCancelarTransacoes" após processar o "TACBrTEFDClass.CancelarTransacoesPendentesClass"? Deixando dessa maneira, ou algo do genero: with TACBrTEFD(Owner) do begin if Assigned( OnDepoisCancelarTransacoes ) then try OnDepoisCancelarTransacoes( RespostasPendentes ) ; except { Nao deixa interromper } end; end; Já o caso de CancelarTransacoesPendentesClass estar chamando o evento "OnAntesCancelarTransacao" apenas uma vez, existe a validação: JaCancelado := (Resp.DocumentoVinculado = DocumentoVinculado) ; Como o SiTef cancela todas as transações vinculados com o documento, entendo que esta validação esteja certa, porém quebrou o fluxo do OnAntesCancelarTransacao, já que a segunda transação cancelada não irá disparar o evento, pq na validação acima é retornado True. Por enquanto ainda não alterei nada no ACBr, mas resolvi a questão ajusta a minha implementação para o evento OnAntesCancelarTransacao, deixando dessa maneira: Resposta Pendente é CRT? Percorre minha lista de pagamento; Pagamento é Cartao? Pagamento.DocVinculado = RespostaPendente.DocVinculado? Excluir Pagamento; A principio assim está funcionando, sem mexer no ACBr, porém estou correndo risco do NCN não dar certo, e eu perder o histórico do pagamento, pois já foi deletado do banco... O que vc acha Daniel, da questão de chamar o "OnDepoisCancelarTransacoes" após processar o "TACBrTEFDClass.CancelarTransacoesPendentesClass"?
  17. Olá, Implementei o evento "OnDepoisCancelarTransacoes" do ACBrTEFD, para fazer a manutenção das transações no meu banco de dados depois que elas são canceladas... até aqui tudo certo, quando chamo o "TACBrTEFD.CancelarTransacoesPendentes", as transações pendentes são canceladas e consigo manipular os dados no meu banco... Porém, ao chamar o TACBrTEFDCliSiTef.Inicializar, no final do método existe a seguinte condição: // Cupom Ficou aberto ?? Se SIM, Cancele tudo... // if (Est in ['V','P','N','O']) then CancelarTransacoesPendentesClass else // NAO, Cupom Fechado, Pode confirmar e Mandar aviso para re-imprimir // ConfirmarESolicitarImpressaoTransacoesPendentes ; Note que quando o "if" é satisfeito, por exemplo Est = 'O', será chamado o método CancelarTransacoesPendentesClass E quando as transações são canceladas direto pelo CancelarTransacoesPendentesClass, o evento OnDepoisCancelarTransacoes não é disparado... Seria uma sugestão? Subistituir o "CancelarTransacoesPendentesClass" por "TACBrTEFD(Owner).CancelarTransacoesPendentes"? Assim o evento OnDepoisCancelarTransacoes seria disparado.... Outro caso, dentro do evento CancelarTransacoesPendentesClass, quando tenho mais de uma transação para o mesmo Cupom (Multiplos Cartoes) e envio um TACBrTEFD.CancelarTransacoesPendentes, o evento "OnAntesCancelarTransacao" esta sendo disparado apenas uma vez... Nesse caso, como tenho 2 transações pendentes, teria que disparar 2 vezes? Ou, estou implementando os eventos de manutenção no meu banco de dados no lugar errado?
  18. Pra interceptar quando o ACBr/SiTef Solicita a Tela de Autorização você deve Implementar no Metodo "ObtemCampoCliSiTef" do ACBrTEFD Olha a declaração: ObtemCampoCliSiTef(Titulo: String; TamanhoMinimo, TamanhoMaximo: Integer; TipoCampo: Integer; Operacao: TACBrTEFDCliSiTefOperacaoCampo; var Resposta: AnsiString; var Digitado: Boolean; var VoltarMenu: Boolean); // TipoCampo = 500, Solicitação de Senha do Supervisor para Transação TEF if (TipoCampo = 500) then begin Digitado := TMinhaTelaSolicitacaoPersonalizada.Autoriza(); end else ( ... ) Para prosseguir a var Digitado := True, para Abortar o Processo (Nao Autorizado) var Digitado := False;
  19. Olá, No Metodo TACBrTEFD.FinalizarCupom, existe o seguinte tratamento de except: on EACBrTEFDECF do ImpressaoOk := False ; try ... Finalizar Cupom ... except on EACBrTEFDECF do ImpressaoOk := False ; else raise ; end; Quando desligo a impressora (Bematech) essa except (EACBrTEFDECF) está sendo gerada, fazendo entrar nessa parte do código: if not ImpressaoOk then begin if DoExibeMsg( opmYesNo, CACBrTEFD_Erro_ECFNaoResponde ) <> mrYes then begin try ComandarECF(opeCancelaCupom); except {Exceção Muda} end ; break ; end; end; Caso o Usuario escolha a opção "Não" do DoExibeMsg, vai ser disparado o Cancelamento do Cupom... Minha duvida é referente a este cancelamento, por falha de comunicação com a impressora no momento do FinalizarCupom, Ja imaginou uma venda com 999 itens e o Usuario selecionar a opção "Não", o cupom vai ser cancelado e vai ter que passar todos os 999 itens novamente.... Realmente o cupom deve ser cancelado por falta de comunicação com a impressora no FinalizarCupom?
  20. Régys Obrigado pela resposta. Mas o problema está um pouco antes.... Seria encontrar uma maneira de identificar que no ADM do CliSiTef o Usuario escolheu a opção 3:Cancelamento de transacao, e assim poderei fazer uma validação se o Usuario tem acesso pra ação de 3:Cancelamento de transacao... A principio estou fazendo assim: type TefAcaoAtual = (TesteDeComunicacao = 0, ReimpressaoComprovante = 1, CancelamentoTransacao = 2, PreAutorizacao = 3, ConsultaParcelaCDC = 4, ConsultaPrivateLabel = 5, ConsultaSaqueFinivest = 6, ConsultaSaqueBancoIBI = 7, ConsultaSaldoDebito = 8, ConsultaSaldoCredito = 9, RecargaCelular = 10, PetrobrasPremmia = 11, OutrosCielo = 12); Depois do OnTefCliSiTefExibeMenu(Titulo: String; Opcoes: TStringList; var ItemSelecionado: Integer; var VoltarMenu: Boolean); TEF.AcaoAtual := TefAcaoAtual(ItemSelecionado); // CancelamentoTransacao Boolean := ValidarAcessoAcao('Usuario', TEF.AcaoAtual); So que tem um problema isso funciona apenas quando mando o ADM (110) pro ACBrTEFD... Pq quando o ACBrTEFD solicitar o OnTefCliSiTefExibeMenu pra escolher por exemplo a opção se é Cartao Magnetico/Chip ou Digitado, e o usuario escolher o tipo Magnetico/Chip o fluxo vai disparar TEF.AcaoAtual := TefAcaoAtual(ItemSelecionado); onde ItemSelecionado é 0 ao fazer TefAcaoAtual(ItemSelecionado) sera retornado TesteDeComunicacao, mas na realidade seria o Magnetico/Chip
  21. Olá, Alguém poderia me ajudar em uma duvida? Estou usando o ACBrTEF (SiTef) Vou explicar um pouco do meu processo: É um Cancelamento de Transação. Solicito um ADM, (Modalidade: 110) Então é disparado o evento ExibeMenuCliSiTef; No Menu escolho a Opção de 3:Cancelamento de Transação; (Buffer = 3); Então é disparado o evento ObtemCampoCliSiTef com Tipo Campo = 500 (código do supervisor); Na implementação do ObtemCampoCliSiTef, é disparado o ShowModal de uma tela para solicitar a senha do supervisor. Na minha rotina de solicitação de autorização eu tenho que passar qual é a ação desejada e a função retorna se tem acesso sim/não. Ex: Boolean := AutorizaAcaoUsuario('User', paCancelaProduto); Agora vem minha duvidas: 1º - No evento ObtemCampoCliSiTef quando o Tipo Campo for 500, sempre será do tipo 3:Cancelamento de Transação; (Buffer = 3)? 2º - De que maneira eu conseguiria identificar que o usuario escolheu a opção 3:Cancelamento de Transação; (Buffer = 3) no ADM (ExibeMenuCliSiTef)? Já verifiquei que no ExibeMenuCliSiTef existe a var ItemSelecionado, que retornar qual opção o usuario escolheu... seria por aqui msmo? Para que eu consiga fazer mais ou menos isso: if (TipoCampo = 500) then begin Digitado := AutorizaAcaoUsuario('User', Ord(paCancelaTransacao); if Digitado then Resposta := 'OK'; end
  22. Depois de muita batalha consegui descobrir o motivo, são os caracteres de quebra de linha que no linux é diferente do windows. Então para resolver isso setei a seguinte propriedade no meu StringList. sl.TextLineBreakStyle := tlbsCRLF;//padrão windows
  23. Sim a chave é a mesma, a chave fica em uma constante no código fonte, e os fontes da minha aplicação são únicos independente da plataforma, tanto é que quando compilados no windows a assinatura é válida. Segunda feira vou analisar melhor qual é o ponto do código fonte que gera diferenças, talvez seja nas dlls/so que utiliza.
×
×
  • 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...