Ir para conteúdo
  • Cadastre-se

Antonio Gomes

Membros
  • Total de ítens

    671
  • Registro em

  • Última visita

  • Days Won

    1

Tudo que Antonio Gomes postou

  1. Voce nao colocou modalidade = 01 Confere se repassou esses dados tudo: Carteira: 1 e modalidade: 01 Cedente.Modalidade := 1 no titulo: ATituloNaLista.Carteira:= 01 Sugestão: https://acbr.sourceforge.io/ACBrMonitor/Particularidades.html
  2. ah entendi, o inter gera uma falha diferente, no BB nao gera tambem? Esses retornos de API True false, eu nao aproveito o retorno, quando preciso algo mais rebuscado, faço como falou analiso manual o retWS, nem sempre o false dele, me convém, aka nas nfse (aff)
  3. o comando seu de update nao tem que ficar dentro do for? Ali vai fazer só do ultimo, se vier mais de um retorno. E seu for está duplicado no mesmo retorno não ? for j := 0 to Retorno.Count-1 do for I := 0 to Pred(Retorno.Count) do A variavel retorno, está em loop, mas voce usa ACBrBoleto.ListaRetornoWeb... penso ser assim: PrecisaDeCommit:= 0; for I := 0 to ACBrBoleto.ListaRetornoWeb.Count-1 do begin CONTRATO :=ACBrBoleto.ListaRetornoweb[i].DadosRet.TituloRet.Contrato; DATA_BAIXA_BOLETO :=ACBrBoleto.ListaRetornoweb[i].DadosRet.TituloRet.DataBaixa; if (CONTRATO <> '') and (DATA_BAIXA_BOLETO = DM.DATA_SEM_HORA) then begin mexer no banco de dados aqui Inc(PrecisaDeCommit); // controle para saber que teve retorno valido end; end; if PrecisaDeCommit> 0 then Commit;
  4. a ficha é so voce copiar do que é gerado pelo site deles, não? postei em uma resposta anterior.
  5. é de algum banco isso murilo? se for, manda o manual?
  6. Acbr tem no projeto acesso e envio por api, o que você pode fazer, é pegar uma unit como base e desenvolver para essa carteira e anexar ao projeto, como ajuda. Pasta: ACBr2wc\Fontes\ACBrBoleto\WS
  7. O banco, tem manual? Para analisar qual comando pede para multa ou juro, se é por valor ou percentual? posta o manual aqui.
  8. isso é problema do ASFloat do TField. Quando voce atualizar o componente, o problema volta.
  9. agora olha como está gravado no banco de dados esse campo bol_valor, se está 36,42 ou 36,426666666666. E voce deve arredondar na gravação, senao vai ter dor de cabeça sempre,no banco, ja deve entrar o valor com 2 decimais. dai para frente, é cair pro abraço. Dizimas, a gente deixa em valor unitario apenas.
  10. esse banco nao acata convenio, ou isso mudou? posta o manual aqui, era codigo de cedente a relação boleto/banco.
  11. como sua aplicação faz essa atribuição dos valores para o componente? Teve uns casos no passado, que o programador enviava o valor como asfloat ou .value, e vinha errado. Se vier com dois decimais, nao ocasiona isso, posta como chega seu valor, atribuicao dos valores.
  12. Só para efeito de testes, tente isso no seu fonte, e reporte por favor: Se >=FR6 uses: frxExportPDFHelpers frxPDFExport1.PDFVersion := TPDFVersion.pv15; Hoje apareceu um cliente reclamando disso, que abria um pdf dele no celular, e o meu não. Logo, solicitei os 2 pdfs para ele, e comparei a versão abrindo-os, pelo bloco de notas. O dele era versão 1.5 Versões mais recentes do FRreport, já instancia o exportpdf na versão 1.7.
  13. @Victor H. Gonzales - Panda Após contato com @Juliana Tamizou, que pediu para criar a chamada aqui. Olá, gostaria de deixar como sugestão, da retirada da property apenas do DFM para atender versões 4 e superiores do FRx, no passado, tivemos esse problema com versao vinda no delphi e quem tinha ela a parte. A sugestão, é instanciar o objeto de exportar pdf no evento Create do datamodule, assim, setar a property manual. pois como foi feito, se alguém com versão 4 editar, vai colocar a property de novo, e quem for versao superior, vai atrapalhar os que usam versao 5 ou maior. Recordo que isso foi arrumado na NF-e, na época dava esse problema com frequência, hoje isso não ocorre mais, foi feito isso: FfrxReport := TfrxReport.Create(AOwner); //Antes de alterar a linha abaixo, queira verificar o seguinte tópico: //https://www.projetoacbr.com.br/forum/topic/51505-travamento-preview-de-v%C3%A1rias-danfes/ FfrxReport.EngineOptions.UseGlobalDataSetList := False; FfrxReport.PreviewOptions.Buttons := [pbPrint, pbLoad, pbSave, pbExport, pbZoom, {$IFNDEF FMX} pbFind,{$ENDIF} pbOutline, pbPageSetup, pbTools, pbNavigator, pbExportQuick]; with FfrxReport do begin EngineOptions.DoublePass := True; StoreInDFM := False; OnBeforePrint := frxReportBeforePrint; OnReportPrint := 'frxReportOnReportPrint'; end; FfrxPDFExport := TfrxPDFExport.Create(AOwner); with FfrxPDFExport do begin Background := FIncorporarBackgroundPdf; EmbeddedFonts := FIncorporarFontesPdf; PrintOptimized := FOtimizaImpressaoPdf; Subject := 'Exportando DANFE para PDF'; ShowProgress := False; end; Linhas: 210 em diante, da unit ACBrNFeDANFEFRDM. Deixo claro: Não estou impondo, apenas sugerindo. PS: Revision: 23267
  14. tudo é bem vindo. "A messe é grande, os operários são poucos."
  15. Então, teria como me enviar aqui, a parte que está funcionando, para eu comparar com uma unit que montei na marreta? Confiro e mando o código aqui no forum para ser incorporado do acbr. @Juliana Tamizouconfere por favor, se não existe nada sobre o inter para você analisar ai ou subir, para eu não perder tempo.
  16. me recordei desse rapaz homologando, pode ser banco desatualizado então:
  17. vc diz isso ? Só precisa ficar atento, pq nao pode mudar o modelo padrao dos demais bancos, pois o inter parece que é intermediado a compensaçãop, sei lá, repara que no lugar no sacador avalista, tem o beneficiario final. Essa é uma boleta de cobranca gerada no sistema deles. penso que seja apenas montar a impressao igual essa não? Eu até tenho de MEI e PF aqui, seria so ajustar, pios essa enche a tela toda, do MEI/PF não. (é aquele boleto que entra como depósito).
  18. analisando o manual, assemelha bem com o banco itau, seria entao o caso de copiar a unit e ajustar, para mim, penso que seja so isso né @Juliana Tamizou ? Além, é claro, da validação da impressão, que é por beneficiário final, não por pagador/sacador avalista. A proposito, juliana, tem alguma unit para voces avaliarem? Pois tenho uma começada aqui. Poderiamos analisar se caso tenha alguma ai já enviada por alguém. Atualizei no trunk2 ontem, nao vi nada do inter.
  19. Dica, cria o campo no seu sistema, esse campo é polemico. Uns precisa ter, outros não, como falou o rapaz na mensagem abaixo.
  20. Ah entendi seu dilema, vc precisaria que o projeto acionasse a impressao do banco 77... seria isso? vc usa o acbrmonitor ?
  21. Não quero se chato, mas o mesmo leiaute que ja uso para os demais bancos eu botei pro inter. Anexo o modelo do boleto, que retorna na api deles. O pdf que vem nesse comando: https://apis.bancointer.com.br:8443/openbanking/v1/certificado/boletos/xxx/pdf = onde é xxx é o numero do boleto. Nota: todos os dados são fictos, pois apaguei informação do cliente. Inclusive o código de barras, tive que danifica-lo. Penso, que se vc nao usar o recibo de entrega, dá para aproveitar o modelo do acbr que já tem, só lembrar de colocar na impressao a carteira, 112, embora ela esteja na ficha da compensação, antes do nosso numero, ela aparece no campo carteira.
  22. Nick, vc tem que mexer nisso: no titulo, na hora de gerar a remessa ATituloNaLista.DataBaixa := AVencimento + AQryServico.FieldByName('REM_DIAS_BAIXAR_SER').AsInteger; ATituloNaLista.DataLimitePagto := AVencimento + AQryServico.FieldByName('REM_DIAS_BAIXAR_SER').AsInteger;
  23. Fiz, vc consome o link com TIdHTTP e TIdSSLIOHandlerSocketOpenSSL, vincula o certificado que o banco cria, e consome, testa os retornos como tem no manual, eu fui fazendo no postman antes. Passa como data raw. ABody_RawFormData: TStrings // inter var ResponseContent, lParamList: TStringStream; ResponseContent := TStringStream.Create(''); try lParamList := TStringStream.Create(TFuncoesString.RemoverQuebra(ABody_RawFormData.Text)); LHTTP.Post(AURL, lParamList, ResponseContent); Result := ResponseContent.DataString; finally ResponseContent.DisposeOf; end; Fica atento ao retorno do cancelamento: é retorno vazio, e igual a 204, o de enviar, é retorno = 200
  24. Você está correto, e em ambos os casos, o corte do DAC ou DV, é feito baseado no final da string proximo da linha 693, se for cnab400 Debuga seu programa, e analisa se está entrando no bloco correto, se não falta setar nada a mais, do que foi setado para a emissão. (voce pode ter telas distintas para operações). {Cobrança sem registro com opção de envio de arquivo remessa} if (wCarteira = '102') or (wCarteira = '103') or (wCarteira = '107') or (wCarteira = '172') or (wCarteira = '173') or (wCarteira = '196') then begin ANossoNumero := MontarCampoNossoNumero(ACBrTitulo); wLinha:= '6' + // 6 - FIXO '1' + // 1 - FIXO PadLeft(OnlyNumber(Cedente.Agencia), 4, '0') + // AGÊNCIA MANTENEDORA DA CONTA '00' + // COMPLEMENTO DE REGISTRO PadLeft(OnlyNumber(Cedente.Conta), 5, '0') + // NÚMERO DA CONTA CORRENTE DA EMPRESA PadRight(Cedente.ContaDigito, 1) + // DÍGITO DE AUTO CONFERÊNCIA AG/CONTA EMPRESA PadLeft(Carteira,3,' ') + // NÚMERO DA CARTEIRA NO BANCO PadLeft(NossoNumero, 8, '0') + // IDENTIFICAÇÃO DO TÍTULO NO BANCO Copy(ANossoNumero, Length(ANossoNumero), 1) <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< Digito aqui Já para o cnab 240, está por volta da linha 502, procure pela função: CalcularDigitoVerificador Ah: para o mouse em cima da property NossoNumero, na linha 501, nisso: PadLeft(NossoNumero, 8, '0') Itau não tem erro, é um banco muito fácil de lidar e enviar remessa, tem casos piores....
  25. pergunta: como voce grava esses dados no seu banco de dados? Pois, considere gravar separado, para quando for gerar a remessa, o componente faz um corte na string do nosso numero, logo, o dv é gerado de novo. repara: function TACBrBancoItau.MontarCampoNossoNumero ( const ACBrTitulo: TACBrTitulo ) : String; var NossoNr: String; begin with ACBrTitulo do begin NossoNr := Carteira + PadLeft(NossoNumero,TamanhoMaximoNossoNum,'0'); end; Insert('/',NossoNr,4); Insert('-',NossoNr,13); Result := NossoNr + CalcularDigitoVerificador(ACBrTitulo); end;
×
×
  • 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...