Ir para conteúdo
  • Cadastre-se

Daniel InfoCotidiano

Consultores
  • Total de ítens

    8.850
  • Registro em

  • Última visita

  • Days Won

    84

Tudo que Daniel InfoCotidiano postou

  1. apenas isso foi necessário ? Vou documentar este requisitos
  2. Obrigado por reportar. Fechando. Para novas dúvidas, criar um novo tópico.
  3. Bom dia @Dayvison Reis_12476 e @SAC Emilyonline Obrigado pela colaboração, por favor teste com a unit abaixo. ACBrBancoCredisan.pas Salve em ..\ACBr\Fontes\ACBrBoleto Rode o instalador acbr ou build para que as mudanças sejam aplicadas.
  4. @andreluis_s Obrigado pela colaboração, isso é muito importante para comunidade ! Criado a tarefa para analise ACBR-8329 , reportamos aqui quando concluido.
  5. Boa tarde @[Bruno] O banco que rejeitou este layout ? Pergunto pq até então não tivemos notificações sobre isso. Pode colar aqui o print da rejeição do banco por favor assim deixamos documentado esta possível alteração
  6. Boa tarde pessoal ! Esta semana o usuário @Sisdevs nos reportou que o Sicoob habilitou a nova composição do código de barras / linha digitável. Até então usamos o código do cedente para compor o código de barras ou linha digitável. Agora vai ser utilizado o "número do contrato", fornecido pelo banco; Isso apareceu na nova carteira 9 , veja documentação completa, clique aqui Nos primeiros testes no final de 2024, permaneceu o código do cedente. (clique aqui p ver a noticia anterior) foi validado a carteira, mas permanecendo a composição padrão. A composição antiga (com código do cedente) pelo que sabemos ainda está funcionando em alguns casos mesmo com a carteira 9; Para usar a nova composição é necessário informar o código do contrato, para isso você precisa alimentar a propriedade codigoTransmissao, vide exemplo abaixo: Delphi: FACBrBoleto.Cedente.CodigoTransmissao := Numero do Contrato (ou deixar em branco para que o componente use ainda o código do cedente) ACBrLib e ACBrMonitorPlus : CodTransmissao= Numero do Contrato (ou deixar em branco para que o componente use ainda o código do cedente) [Cedente] Nome=São João LTDA. CNPJCPF= 99.999.999/9999-99 Logradouro=Rua Evaristo Mendes CodTransmissao=10 Em resumo: Se informado CodTransmissao (Numero do contrato) a barra será composta com o numero do contrato; Se não informado CodTransmissao (deixar em branco) a barra será composta no modo antigo, com o numero do cedente; Agradecimento especial ao @Sisdevs por ter nos auxiliado com os testes em produção.
  7. Como no retorno o banco nao esta devolvendo a informação, creio que o ideal é vc abrir um chamado reclamando disso e anexar o json de retorno para que o suporte possa lhe informar.
  8. mas pelo que vi, os titulos nao foram pagos apos vencimento. Todos sao pagos no mesmo valor do titulo entao nao tem juros e multa.
  9. na consulta API nao esta devolvendo taxas e multas? habilite o log de webservices como paranoico, realize a consulta e anexe aqui por favor o log
  10. Boa tarde @Wiker Moura Você passou: MultaValorFixo=8,00 PercentualMulta= Mas é assim: MultaValorFixo = true (se a multa for em reais R$) ou False para (percentual %) Então, vamos dizer que a multa vai ser em reais de 10,00: MultaValorFixo=true PercentualMulta=10 Por isso este erro: rejeição: Não foi possível converter o valor. de multa Valor
  11. você vai usar a biblioteca multithread sobre o uso do acbrlib.ini recomenda-se o uso em memoria neste caso, justamente p não acontecer erros de I/o na gravacao do arquivo físico; em memory vai ficar isolado a requisição. Se olhar nos fontes do C#, vai observar que é possível inicializar: boleto = new ACBrBoleto("[Memory]"); -- Exemplo utilizar ACBrlib.ini em memória. ACBrLib.ini é o arquivo principal da lib, onde é configurado tipo de resposta, logs, cedente, configurações diversas. (pode ser carregado em memoria e manipulado atraves do ConfigGravarValor como um arquivo fisico) Cedente.ini é o arquivo com os dados do cedente para emissão do boleto, configurado em tempo de execução (nao precisa cedente ter no acbrlib.ini, no caso de alimentar de forma dinamica) Titulo.ini é o arquivo que contem os titulos e cada um os dados dele. O ConfigGravarValor é necessário para que vc possa alterar o ACBrLib.ini: configGravarValor("Principal","LogNivel","4") // Observe que existe a propriedade lognivel dentro da seção principal configGravarValor("Sistema","Nome","Sistema do Alex") // Observe que existe a propriedade Nome dentro da seção Sistema para persistir, mesmo em memory use ConfigGravar No caso acima, observe que não existe no manual ou no acbrlib.ini dentro da seção "Principal" a propriedade "NomeArquivoIni", por isso gera um erro informando que a dita sessão não existe. Nos títulos, temos um modelo com todos os campos, clique aqui Porem nem todos campos são necessários, depende do que você deseja informar. vou anexar um titulo meu padrão que uso em meus testes. TituloBB.ini Alguns campos são codificados, clique aqui Geralmente são nomes amigáveis como nos manuais dos bancos. Se nos puder informar os campos que estão invertidos para correção , agradeço. geralmente seguimos o manual este link q postei acima (campos codificados) Sobre a classes, ela é a responsável por alimentar a lista de titulos, ou cedente... e converter no final para um arquivo INI esperado pela biblioteca; Você pode implementar suas próprias classes ou utilizar a que está pronta no exemplo. Se você observar no exemplo, vc alimenta a classe de titulo: Titulo[] titulo = new Titulo[1]; titulo[0] = new Titulo(); titulo[0].NumeroDocumento = "000001"; titulo[0].NossoNumero = "12345"; titulo[0].Carteira = "17"; titulo[0].ValorDocumento = 100.00M; titulo[0].Vencimento = DateTime.Now.AddDays(30); titulo[0].DataDocumento = DateTime.Now; No final ela tem um metodo: boleto.IncluirTitulos(titulo); E o código deste método é a função para gerar o titulo.ini que vai conter a lista de titulos. public void IncluirTitulos(params Titulo[] titulos) { var iniFile = new ACBrIniFile(); for (var i = 0; i < titulos.Length; i++) { titulos[i].Index = i + 1; titulos[i].WriteToIni(iniFile); } IncluirTitulos(iniFile.ToString()); } Apenas complementando, temos um curso sobre boletos Muitos campos são exemplificados la https://acbr.nutror.com/curso/c365775961fb6232c2b06ceee9d39be343e339cd Veja se o sr tem acesso
  12. Só uma observação, tentou usar o campo de desconto ? Titulo.DataDesconto Titulo.TipoDesconto Titulo.ValorDesconto Vou ver se abatimento está implementado, mas só p vc saber Desconto é até a data informada. Vencimento 10/11/2025 Desconto 10/11/2025 Abatimento, permite desconto após o vencimento: Vencimento 10/11/2025 Desconto 10/11/2025 Abatimento 20/12/2025 (ja pensou dar um abatimento apos um mes do boleto vencido)
  13. Por favor atualize seus fontes, pelo SVN do ACBr... Já subimos para o nosso repositório de fontes, modificações que podem corrigir algum dos itens referentes a esse tópico... Por favor atualize seus fontes, faça testes, e se possível comente em uma nova resposta, se o problema foi resolvido... Dúvidas, sobre o uso do SVN ? Clique aqui e veja um vídeo
  14. Obrigado por reportar. Fechando. Para novas dúvidas, criar um novo tópico.
  15. Boa tarde ! Ele chega a gerar o log da lib ? vou testar em meu ambiente tbm
  16. bom dia @Raphael. F. B. Soares primeiro obrigado pela colaboração. Mas preciso que vc faça um teste antes. vc nos enviou um arquivo, que existem codigos antigos do SVN. 1. Faca um backup da sua unit modificada. 2. atualize seus fontes, veja se os arquivos estao sinalizados como ok (verde.) 3. rode o instalador do ACBr Realize uma nova consulta. Caso persista este liquidado, inclua as alterações nesta unit atualizada. Aguardo seus testes
  17. Bom dia @Lucas Pechebelok Hernandes Primeiramente obrigado pela contribuição; Voce pode anexar o novo manual e se tiver um retorno tbm para validarmos, assim deixo documentado e atualizo minha base de manuais. pois no meu manual não consta:
  18. Estamos analisando o caso com o time de boletos. Assim que concluido reportamos aqui.
  19. Por favor atualize seus fontes, pelo SVN do ACBr... Já subimos para o nosso repositório de fontes, modificações que podem corrigir algum dos itens referentes a esse tópico... Por favor atualize seus fontes, faça testes, e se possível comente em uma nova resposta, se o problema foi resolvido... Dúvidas, sobre o uso do SVN ? Clique aqui e veja um vídeo
  20. @Luciano Rodrigues Pereira Obrigado pela colaboração.
  21. Bom dia @ongoldtech Cada impressora tem a sua linguagem. Como a impressão é feita diretamente utilizando a linguagem da impressora, só é suportada as que estão descritas no manual da impressora. Então se você uma Argox vai ser diferente da Zebra (um exemplo) Link para manuais das impressoras ETQ https://svn.code.sf.net/p/acbr/code/tools/Etiqueta/ Fontes Zebra: Fontes Argox PPLA
  22. Bom dia @Elisângela Dessis Os alguns exemplos são contribuições de outros usuários. as vezes são pequenos exemplo de inicializar ou usar algum metodo, pois segue um padrão. Qual exemplo especifico vc esta precisando ? Não sei se chegou a ver este tópico relacionado.
  23. Recebemos uma contribuição do usuário @Luciano Rodrigues Pereira referente à correção das propriedades de retorno da francesinha liquidada do Itaú : Como estava mapeado: ValorDesconto := LJsonBoletoObject.AsCurrency['valor_decrescimo']; ValorDespesaCobranca := 0; ValorMoraJuros := 0; ValorOutrasDespesas := LJsonBoletoObject.AsCurrency['valor_acrescimo']; ValorPago := LJsonBoletoObject.AsCurrency['valor_liquido_lancado']; ValorRecebido := LJsonBoletoObject.AsCurrency['valor_liquido_lancado']; Agora com o array com dados corretos, ficou assim: if AnsiUpperCase(LJsonArrayOperacaoCobranca.ItemAsJSONObject[K].AsString['descricao']) = 'TARIFA DE COBRANÇA' then ValorTarifa := abs(LJsonArrayOperacaoCobranca.ItemAsJSONObject[K].AsCurrency['valor']); if AnsiUpperCase(LJsonArrayOperacaoCobranca.ItemAsJSONObject[K].AsString['descricao']) = 'JUROS' then ValorMoraJuros := abs(LJsonArrayOperacaoCobranca.ItemAsJSONObject[K].AsCurrency['valor']); if AnsiUpperCase(LJsonArrayOperacaoCobranca.ItemAsJSONObject[K].AsString['descricao']) = 'MULTA' then ValorMulta := abs(LJsonArrayOperacaoCobranca.ItemAsJSONObject[K].AsCurrency['valor']); // Na documentacao on line API o retorno é "Desconto", mas em produção testes é Descontos if AnsiUpperCase(LJsonArrayOperacaoCobranca.ItemAsJSONObject[K].AsString['descricao']) = 'DESCONTOS' then ValorDesconto := abs(LJsonArrayOperacaoCobranca.ItemAsJSONObject[K].AsCurrency['valor']); end; ValorRecebido := LJsonBoletoObject.AsCurrency['valor_liquido_lancado']; // ValorPago -> Como o ValorRecebido abate a tarifa, então é só somamos de volta ValorPago := ValorRecebido + ValorTarifa; Resumo dos campos: ValorTarifa, ValorMoraJuros, ValorMulta, ValorDesconto, ValorPago e ValorRecebido. Para ver a contribuição original, clique aqui Sobre divergências de boletos liquidados com qrcode e liquidado via barras/linha digitável, veja este tópico:
  24. @Luciano Rodrigues Pereira Apenas exemplificando o que o @Juliomar Marchetti citou. vc precisa usar indice de continuidade quando existir. No retorno, ele devolve o proximo indice a ser utilizado na consulta. No caso abaixo 09/09/2025, proximoIndice=0 significa que não existe proxima pagina: Olhe o exemplo da consulta com mais de uma pagina: Na consulta sempre iniciaos com o indiceContinuidade=0; Se existir mais paginas, como no caso abaixo o proximo indice sera 1, precisa fazer uma nova consulta indicando o proximo item (com a mesma data) Como chegou no final das paginas, ele retorna 0 (zero) no próximo item sinalizando assim que não existem mais paginas;
  25. Boa, recebi os emails. vou dar continuidade a validação a tarde !
×
×
  • 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.