Ir para conteúdo
  • Cadastre-se

Luciano Rodrigues Pereira

Membros
  • Total de ítens

    233
  • Registro em

  • Última visita

Tudo que Luciano Rodrigues Pereira postou

  1. Estou tendo problemas com os boletos gerados pelo ACBrBoleto na exportação para PDF, tanto na exportação normal (na hora de salvar) quanto na exportação silenciosa. eu trabalho com FastReport. Aparecem caracteres estranhos em alguns campos do boleto (como se fossem caracteres chineses). O que achei em relação ao FastReport é que seria um problema das fontes de letras, que o computador onde se tenta abrir o PDF exportado poderia não ter a fonte em questão. Faz sentido pois esse problema não acontece em todos os computadores da rede, apenas alguns. E acontece também quando tento abrir o PDF no Android. De acordo com o FastReport para resolver o problema basta configurar o componente frxExportPDF para incorporar as fontes ao PDF (marcar embbedFonts). Eu faço isso e aí todo relatório que eu puxo usando o FastReport, no preview tem o ícone exportar para PDF e quando eu clico nele, ele já traz a opção de incorporar fontes (embbedFonts) já marcada, tudo certo. Acontece que quando eu vou imprimir os boletos via ACBrBoleto eu não uso o componente frxExportPDF do FastReport, eu uso ACBrBoleto1.imprimir, e aí quando eu vou clicar no botão exportar para PDF a opção embbedFonts não vem marcada, da mesma forma se eu vou fazer uma exportação silenciosa, vai dar o problema das fontes. Como resolver?
  2. Ok, já refiz os códigos, segue o arquivo .pas e o manual (novo) em anexo que solicitei e recebi hoje mesmo do banco. Me tire uma dúvida só, que faz tempo que não mexo nos arquivos .pas do ACBr. Uma vez que eu o modifiquei, basta eu compilar minha aplicação novamente? ou preciso rodar o ACBrInstall_Trunk2.exe novamente? esse executável não irá instalar os componentes do ACBr tudo de novo? eu só preciso recompilar o arquivo .pas que eu modifiquei. Novo Manual Layout CNAB400 v2.0[3913].pdf ACBrBancoNordeste.pas
  3. Os códigos de retorno do Banco do Nordeste não batem com o manual. Tanto que o banco fez várias baixas automáticas no meu cliente (código 15) e o ACBr entendeu como "Liquidação em Cartório". Baixa automática é como a baixa simples, a diferença é que a baixa simples é quando o cliente manda baixar, a baixa automática é quando o banco manda baixar pois o prazo do boleto para registro no banco está expirado por exemplo. Mas não tem nada a ver com liquidação em cartório e liquidação em cartório dá a entender que foi quitado. E não foi. Todas as funções que fazem referência aos códigos de retorno estão erradas, como a função CodOcorrenciaToTipo() e TipoOcorrenciaToDescricao(). Esses são os códigos que estão no ACBr. case CodOcorrencia of 02: Result:='02-Entrada Confirmada' ; 51: Result:='51-Entrada Rejeitada' ; 06: Result:='06-Liquidação normal' ; 09: Result:='09-Baixado Automaticamente via Arquivo' ; 10: Result:='10-Baixado conforme instruções da Agência' ; 11: Result:='11-Em Ser - Arquivo de Títulos pendentes' ; 12: Result:='12-Abatimento Concedido' ; 13: Result:='13-Abatimento Cancelado' ; 14: Result:='14-Vencimento Alterado' ; 15: Result:='15-Liquidação em Cartório' ; 16: Result:='16-Titulo Pago em Cheque - Vinculado'; 17: Result:='17-Liquidação após baixa ou Título não registrado' ; 18: Result:='18-Acerto de Depositária' ; 19: Result:='19-Confirmação Recebimento Instrução de Protesto' ; 20: Result:='20-Confirmação Recebimento Instrução Sustação de Protesto' ; 21: Result:='21-Acerto do Controle do Participante' ; 22: Result:='22-Titulo com Pagamento Cancelado'; 23: Result:='23-Entrada do Título em Cartório' ; 24: Result:='24-Entrada rejeitada por CEP Irregular' ; 27: Result:='27-Baixa Rejeitada' ; 28: Result:='28-Débito de tarifas/custas' ; 29: Result:= '29-Ocorrências do Sacado'; 30: Result:='30-Alteração de Outros Dados Rejeitados' ; 32: Result:='32-Instrução Rejeitada' ; 33: Result:='33-Confirmação Pedido Alteração Outros Dados' ; 34: Result:='34-Retirado de Cartório e Manutenção Carteira' ; 35: Result:='35-Desagendamento do débito automático' ; 40: Result:='40-Estorno de Pagamento'; 55: Result:='55-Sustado Judicial'; 68: Result:='68-Acerto dos dados do rateio de Crédito' ; 69: Result:='69-Cancelamento dos dados do rateio' ; end; E esses são os códigos conforme o manual que segue em anexo NOTA Nº 5 - Serviço (Arquivo - Retorno). 02 - Entrada Confirmada. 04 - Alteração. 06 - Liquidação Normal. 07 - Pagamento por Conta. 08 - Pagamento por Cartório. 09 - Baixa Simples. 10 - Devolvido - Protestado 11 - Em ser. 12 - Abatimento Concedido. 13 - Abatimento Cancelado. 14 - Vencimento Alterado. 15 - Baixa Automática 18 - Alteração Depositária. 19 - Confirmação de Protesto. 20 - Confirmação de Sustar-Protesto. 21 - Alteração Informações de Controle da Empresa 22 - Alteração "Seu Número". 51 - Entrada Rejeitada. Obs.: - Os registros com erros no arquivo-remessa serão gravados com a identificação do serviço original acrescido de 50. Ex.: Um registro com Código de Serviço 04 (Concessão de Abatimento), se estiver errado, retornará com o código de serviço 54. PADRAO BNB - CNAB400.pdf
  4. Eu entendi, eu já faço remessa, retorno, impressão, geração de PDF, etc. via Delphi usando o AcbrBoleto só que como você falou, tudo local. Eu só não entendi essa parte de consumir webservice. Tem um link à respeito dessa parte de webservice? Esse webservice seria apenas para fazer a remessa e retorno para não precisar entrar no site do banco para fazer isso? Assim eu subiria a remessa e processaria o retorno tudo direto do sistema, é isso?
  5. Não entendi quando você diz " componentes do ACBr são locais em cada um". Em cada um o que? Resumindo então, mesmo eu tendo todos os dados necessários para impressão de um boleto disponíveis na web eu não tenho como imprimir. Achei que o Acbr fizesse esso mesmo que fosse pago. Seria muito interessante essa solução pois não podemos trabalhar mais só off-line.
  6. A Acbr então não tem impressão de boleto via web? Só via aplicação desktop? Eu pensei que havia uma API onde eu poderia passar todos os campos necessários para a impressão do boleto via json e com esses dados a API retornava uma visualização do boleto para ser impresso. Me parece que tem empresas que fazem isso.
  7. Eu já trabalho com o ACBrBoleto fazendo remessa, retorno, impressão dos boletos, etc. via Delphi. Agora eu gostaria de fazer a impressão de segunda via do boleto via HTTP. Via web eu tenho acesso ao Banco de dados com todas as informações dos boletos gerados e registrados. Como eu poderia fazer a impressão da segunda via desses boletos via web? Existe alguma API para eu fazer a impressão dos boletos passando um Json com os dados do boleto? ou qual a solução que o ACBr tem? Ou os bancos já tem suas próprias API onde bastaria eu colocar a representação numérica do código de barras? Eu trabalho com diversos bancos, como Sicredi, Sicoob, BB, Itaú, etc. Então preciso de uma solução que atenda à todos os bancos, como é a solução da ACBR, mas até onde eu trabalhei com o ACBr eu faço a impressão dos boletos via Delphi e agora preciso fazer essa impressão via web.
  8. Acredito que eu esteja enfrentando problemas com as DLLs para usar o ACBrMail; Exemplo: Na minha máquina eu mando minha aplicação enviar 100, 200 e-mails e uma vez (sem thead) e ela envia de boa. Na máquina do cliente, só envia 6, 7, no máximo 10 e dá erro nos demais (smtp error : Unable to login), aí eu tenho de fechar a aplicação e abrir de novo, mandar enviar de novo, aí a aplicação vai enviar novamente no máximo, 6, 7, 10 e gerar erro novamente nos demais. Aí tenho de repetir a operação até terminar os 100, 200 e-mails. E não é problema no Servidor de Hospedagem, pois as duas máquinas tem as mesmas configurações do ACBrMail. Host, User, Senha, etc, etc. O que muda é que minha máquina tem o Delphi instalado. Gostaria que me sanassem minhas dúvidas em relação às DLLs usadas pelo ACBrMail. Afinal, qual a dll o ACBrMail utiliza? Qual devo jogar na pasta da minha aplicação? Até a pouco tempo eu usava libeay32 e ssleay32, agora aparecem LibCrypto e LibSSL na pasta OpenSSL do ACBr. E estas 2 últimas aparecem com os nomes libcrypto-1_1-x64 (ou x86) e libssl-1_1-x64 (ou x86). Para usar elas eu tenho de renomea-las? deixar só LibCrypto e Libssl? E as libeay32 e ssleay32? não precisa mais? Preciso registrar as DLLs? ou não precisa, basta estar na pasta da minha aplicação? E devo usar as DLLs versão 32 ou 64 bits? O Windows é 64 bits, a aplicação 32 bits.
  9. Em relação ao SparkPost, ficou uma dúvida: Eu vou usar o SparkPost para enviar e-mails do meu cliente para os clientes dele. ok? Mas quando faço isso usando o SparkPost o remetente acaba sendo eu (meu domínio) e aí se o destinatário clica em "Respoder" para responder o e-mail, quem vai receber a resposta do e-mail sou eu, quando deveria ser meu cliente. Só tem esse porém... Tem como sanar isso?
  10. Já resolvi todas as questões à respeito dos problemas. Em relação ao SparkPost, ficou uma dúvida: Eu vou usar o SparkPost para enviar e-mails do meu cliente para os clientes dele. ok? Mas quando faço isso usando o SparkPost o remetente acaba sendo eu (meu domínio) e aí se o destinatário clica em "Respoder" para responder o e-mail, quem vai receber a resposta do e-mail sou eu, quando deveria ser meu cliente. Só tem esse porém... Tem como sanar isso?
  11. Já resolvi, era a API Key. Meu campo era varchar(25) e a Key tinha 40 caracteres. Aumentei o tamanho do meu campo para varchar(50). O mensagem de erro agora é: 550 5.7.1 Unverified Sending Domain <lpsistemas.dev.br> mas meu domínio já foi criado e verificado. Eu enviei uma massa de 20 e-mails à título de teste (todos para o mesmo destino, eu mesmo) e 14 foram enviados com sucesso e 6 com esse erro. Então não pode ser domínio não verificado como diz a mensagem de erro, é o mesmo domínio no envio dos 20. Estranho, não?
  12. Vi o vídeo sobre o SparkPost, criei minha conta e fiz todo como mostra o vídeo. Mas ao enviar os e-mails recebo a seguinte mensagem: SMTP Error: Unable to send MailFrom. 530 5.7.1 Authorization required. Ref. https://developers.sparkpost.com/api/index#header-smtp-relay-endpoints Está configurado ao meu ver correto. Host: smtp.sparkpostmail.com Porta: 587 User: SMTP_Injection Senha: A API Key gerada O que pode ser?
  13. Sim, mesmo servidor (hostgator), tudo igual. Só muda mesmo o computador. No meu vai de boa os 100 e-mails, na máquina do cliente, vão 6, 7 no máximo 10 e depois dá o erro para todos os outros. Se eu saio do sistema e envio de novo, vai novamente, 6, 7 e erro para os demais. Como meu sistema, vai marcando como "enviado" para aqueles que foram enviados sem erro, eu vou repetindo o processo até terminar os 100 e-mails, isso na máquina do cliente, na minha não precisa, porque vai os 100, 200 quantos forem sem erro em nenhum. Por isso não é bloqueio nenhum do provedor. Quanto à internet do cliente não acredito, quando fiz o teste eu estava no acesso remoto o tempo todo e a internet é muito boa lá. O intrigante é que se eu não fecho minha aplicação não consigo enviar mais nenhum, todos dão erro, eu preciso fechar e abrir novamente para conseguir enviar esse, 6, 7 e-mails. Ou seja, parece que a aplicação quando é encerrada, fecha a conexão com o provedor e ao abrir novamente reabre. Tem como eu verificar se a conexão com o provedor está fechada e caso esteja fechada, abri-lá antes de enviar o e-mail? Ou o comando send já faz isso? O comando send abre a conexão, envia e depois fecha? Se abrisse a conexão, enviasse e fechasse a conexão a cada envio acho que resolveria. E quanto às dlls? Pode tirar as dúvidas que postei aí?
  14. Estou com um problema parecido. Preciso mandar em torno de 100 e-mails para destinatários diferentes e com anexos. Minha aplicação manda de boa na minha máquina de desenvolvimento mas na do cliente a aplicação manda em torno de 6, os outros 94 dá o erro "SMTP Error: Unable to Login. 221 br96.hostgator.com.br closing connection", como se a Hostgator estivesse desconectando após o envio dos 6 e-mails. Aí eu tenho de sair de minha aplicação, enviar novamente, aí envia mais 6 (os outros 88 dá erro), e ficar repetindo esse sai do sistema, abre de novo, envia de novo até completar todos os e-mails. Não uso thread. Não é problema de configuração do provedor, porque na minha máquina com as mesmas informações que estão no cliente, manda de boa sem problema os 100 e-mails. A única diferença que pode haver de minha máquina para a do cliente para dar esse problema seria as DLLs, mas já copiei para a máquina dele as mesmas DLLs que estão na pasta do EXE da minha aplicação para a mesma pasta na máquina dele e nada. Só se a máquina do cliente estivesse buscando as DLLs na pasta System32 e ignorando as DLLs da pasta da aplicação, mas já conferi e a única dll do openSSL na pasta System32 da minha máquina e da máquina do cliente é a LibCripto e a mesma versão minha é a dele. Estou perdido com tanta dll. Afinal, qual a dll o ACBrMail utiliza? Qual devo jogar na pasta da minha aplicação? Até a pouco tempo eu usava libeay32 e ssleay32, agora aparecem LibCrypto e LibSSL na pasta OpenSSL do ACBr. E estas 2 últimas aparecem com os nomes libcrypto-1_1-x64 (ou x86) e libssl-1_1-x64 (ou x86). Para usar elas eu tenho de renomea-las? deixar só LibCrypto e Libssl? E as libeay32 e ssleay32? não precisa mais? Preciso registrar as DLLs? ou não precisa, basta estar na pasta da minha aplicação? E devo usar as DLLs versão 32 ou 64 bits? O Windows é 64 bits, a aplicação 32 bits. Será que o problema é mesmo dll? não vejo outra coisa, porque a aplicação é a mesma, as configurações do provedor são as mesmas, só muda a máquina. Na minha pode mandar 200 e-mails que vai de boa, na do cliente não manda mais que 6, 7, no máximo 10 e começa a dar erro nos demais. HELP!
  15. Nem mandei para validação, já estava validado só com o boleto.fr3. Na verdade o boleto não muda nada, o boleto ocupa meia página, a outra meia-página é minha fatura. Mas como disse tive de desenhar um novo modelo fr3 com as informações de boleto como DataSet Master e minha fatura como Detail e subdetail. E não uso o ACBr para imprimir, apenas para montar os campos calculados pelo ACBr.
  16. Na minha homologação do boleto do Banco do Brasil, o banco solicitou que eu colocasse o endereço do beneficiário no recibo do pagador. O modelo boleto.fr3 não tem esse campo. Claro que eu posso alterar o modelo, mas o que quero saber é se é realmente obrigatório. Ninguém está imprimindo boletos usando o modelo boleto.fr3 para o Banco do Brasil sem o endereço do beneficiário?
  17. Eu resolvi como falei, criei um modelo novo e nele o boleto é o DataSet Master e minha Fatura é o Detail e os itens da Fatura SubDetail no FastReport. E dessa forma não uso o ListadeBoletos do ACBr, apenas as funções que montam a Linha Digitável, o Código de Barras e o Código de Cedente basicamente. A impressão não se dá pelo ACBrBoleto.imprimir. Assim o boleto e a fatura ficam na mesma página. Melhor do que isso só se eu conseguisse gerar o Boleto usando o ACBr normalmente usando o ListadeBoletos (um a um) usando o ACBrBoleto.PrepareReport() e gerasse minha fatura também usando o PrepareReport() e aí quando eu imprimisse sairia tudo junto na mesma página. O problema é que não consegui usar o frxReport1.ShowPreparedReport para imprimir os dois, porque o frxReport1 só traz minha fatura.
  18. Manual nenhum. Não estou falando de nenhum banco especifico, estou falando em modelos dos boletos. Estou precisando alterar o modelo boletofatura.fr3 ou criar um novo modelo, de modo que as informações do boleto seriam meu Dataset Master e minha fatura o Dataset Detail, só isso. A solução foi criar um modelo novo e não usar a função acbrboleto.imprimir porque não vou usar a ListadeBoletos. No novo modelo o Boleto é o DataSetMaster e as informações da Fatura o DataSet Detail.
  19. Estou tentando alterar (ou criar um novo) modelo BoletoFatura.fr3 (trabalho com FastReport). Isso porque aquela caixa do modelo para a fatura não passa de uma caixa de texto, e a fatura para mim é como se fosse uma Nota Fiscal, com x itens e tem todo um LayOut próprio. De modo que só a caixa de texto é insuficiente. Minha ideia é colocar minha fatura como sendo um DataSet Detail do Boleto que seria o DataSet Master e assim minha Fatura sairia logo abaixo do Boleto (na mesma página) e usuária quanto espaço precisasse, independente do número de itens. Mas para fazer isso eu tive que adicionar o DataSet da Fatura ao arquivo fr3 e quando faço isso a impressão do boleto (boleto1.imprimir) simplesmente deixa de reconhecer todos os campos do boleto, como "titulo.vencimento" por exemplo. Tem como eu adicionar DataSets ao modelo do boleto (.fr3) mas de forma que ele continue reconhecendo os campos do boleto? Se isso não for possível, eu terei de mudar os nomes dos campos do boleto e transformá-los em variáveis que terei de pegar no ACBrBoleto e passar todos eles como parâmetros para o novo modelo .
  20. Meu arquivo não foi validado como está o pas do Sicoob (ACBrBancoBancoob) - Cnab240. Só validou depois que mudei algumas linhas. Seguem as mudanças Linha 93: fpLayoutVersaoArquivo := 81; -> Versão minima é 87, (conforme print ) -----> Deve ser mudado então para 87 Linha 94: fpLayoutVersaoLote := 40; -> Versão minima é 45 (conforme print) -----> Deve ser mudado então para 45 Linha 730: StringOfChar(' ', 20) -> Rejeitado (Conforme Print) -----> preencher com zeros para resolver - StringOfChar('0', 20) Dá para fazer essas mudanças aí, por favor?
  21. Deve ser. Esse campo existe tanto no Header do Arquivo como no Header no Lote. No Header do arquivo só aceita com ZERO e no Header do Lote só aceita com ESPAÇO. E o manual pede espaço em branco em ambos. É brincadeira?
  22. Fiz a seguinte modificação em ACBrBoletoBancoBancoob (que é o Sicoob). Linha 736 Digito Verificador da Agencia/Conta - Dever ser zero e estava com espaço em branco. function TACBrBancoob.GerarRegistroHeader240(NumeroRemessa: Integer): String; PadRight(DigitoVerificadorAgenciaConta, 1, '0') + // 72 - Dígito verificador Ag/Conta (zero) - Alterado por Luciano Pereira - Alterado de ' ' para '0' Segue também em anexo o arquivo PDF do validador com o erro quando a posição 72 do Header do Arquivo fica com espaço em branco e o PDF com tudo OK quando fica com zero. validador-cnab - Sicoob Erro.pdf validador-cnab - Sicoob.pdf ACBrBancoBancoob.pas
  23. Acho que não, mas são 20 posições na remessa e retorno, mas todos os cálculos são 9, só na montagem do arquivo é que são 20. Mas eu resolvi só com um rigthstr sem mexer no tamanhonossonumero = 9. Curioso como estava em desacordo com o manual do banco, tanto o layout de remessa quanto o do retorno, até as posições e tamanho de nosso número e outros campos em LerRetorno240. Mas vou arredondar tudo esse fds e depois de uns 15 dias em produção fazendo as trocas de arquivo eu publico aqui o novo pas. Também, quase ninguém deve usar esse banco...
  24. Os boletos e a remessa já foram homologados com sucesso. Estou resolvendo o retorno. A cobrança já está em produção, mas a rotina de LeRetorno240 está totalmente desconforme com o manual do banco. Já estou finalizando os ajustes, mas ficou uma dúvida. Quando vou processar o retorno dá "Tamanho máximo do Nosso Número é 9". Está setado realmente para 9, os cálculos para o boleto e remessa são 9 mesmo (com o digito), mas o nosso número no arquivo de remessa e retorno tem 20 posições. Então acho que não posso setar o fpTamanhoMaximoNossoNumero para 20 né? não vai dar problemas no MontarNossoNumero por exemplo? Inclusive o tal de ASBACE (que é usado na rotina para montar o código de barras) usa o MontarNossoNumero com 9 posições (com o dígito). Então como faço para resolver esse erro do retorno?
  25. Gostaria de saber como faço para que o ACBrBoleto carregue o arquivo .fr3 correspondente a propriedade Layout informada no componente ACBrBoletoFCFR. Por mais que eu mude o Layout só puxa o padrão. E como o ACBr sabe em qual pasta estão os fr3 se não tem uma propriedade para informar a pasta como tem o DirLogo? Eu estou fazendo: FastReportFile:= PathReports + 'Boleto' + Ifthen(LayoutBol = 'LCARNE', 'Carne', ifthen(LayoutBol = 'LFATURA', 'Fatura', ifthen(LayoutBol = 'LPADRAOENTREGA', 'FR', ''))) + '.fr3'; Mas creio que seja totalmente desnecessário, porque senão para que serveria a propriedade Layout? Mas se eu não informo nada na propriedade FastRePortFile dá "Caminho ou o arquivo de impressão não assinalado". Se eu informo só o caminho dos arquivos fr3 dá "invalid file format" Então fica minha dúvida: Como informar a pasta dos arquivos .fr3 para que o ACBr carregue o arquivo .fr3 correspondente à propriedade Layout?
×
×
  • 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...