Ir para conteúdo
  • Cadastre-se

Leonardo Batista

Membros
  • Total de ítens

    13
  • Registro em

  • Última visita

Últimos Visitantes

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

Leonardo Batista's Achievements

Apprentice

Apprentice (3/14)

  • Collaborator Rare
  • One Year In
  • First Post
  • Conversation Starter
  • One Month Later

Recent Badges

2

Reputação

  1. Boa Tarde, Victor. A situação ocorre apenas quando o banco número. Se o banco não númerar a situação não ocorre. A linha digitavel não sofre alteração, a não ser pela situação do DV. Como demonstrei na primeira msg que enviei a unica diferença é a demonstrada abaixo: No exemplo o nosso número retornado pelo banco foi: 31144. Gerado pelo Banco: 75691300860112140710800311440010399100000001000 Gerado pelo ACBR: 75691300860112140710800311480016599100000001000
  2. Eu fiz essa alteração porque não utilizo o ACBR na leitura do arquivo CNAB. Faço a leitura toda na mão do arquivo. Fico no aguardo da análise, qualquer coisa estou à disposição para ajudar no que for possível
  3. Esta propriedade tem efeito na hora da emissão dos boletos ? Caso tiver consegue me orientar onde ela está porque ai posso testar aqui se marcando ela como True resolve.
  4. Realmente era para funcionar para todo mundo mesmo eles fazendo a alteração, mas eles não contavam que algumas pessoas poderiam estar calculando o DV a todo tempo. O único problema que temos é que a cada solicitação do nosso número a gente faz o cálculo do DV, e como não tem mais o DV por parte deles a gente sempre adiciona um caractere a mais. Temos esse método hoje no ACBR e todas as vezes que ele chama esse método ele adiciona um caractere junto ao nosso número. A única coisa que eu propus na solução e que já está rodando nos meus clientes foi colocar um IF. Encontrei esta informação no site de desenvolvedor deles (https://developers.sicoob.com.br/portal/documentacao?slugItem=novidades-e-atualizacoes) Nos prints ela também informa que está mudança é válida para a API e CNAB. Em relação aos arquivos de retorno não utilizo o ACBR para fazer a leitura deles, mas precisei alterar a forma que fazia a leitura para ler 1 caractere a mais no nosso número.
  5. Boa Tarde @Daniel InfoCotidiano, já utilizo a emissão de boletos Sicoob em vários clientes há um tempo e semana passada fui surpreendido com os mesmos reclamando da situação apresentada. Como pode ver nos prints em conversa com o Suporte da Api do Sicoob eles informaram que não estão calculando mais o DV e que esta mudança foi feita sem aviso prévio. Portanto precisei modificar o componente do ACBR para que ele parasse de calcular o DV, tendo em vista que sempre que o componente necessita do nosso número ele calcula e concatena o DV. Pode até ser uma questão de particularidade para as pessoas que optaram por não controlar o nosso número pelo sistema e deixaram para o banco fazer o mesmo e retornar. Assim como o Filipe Martins informou, também temos o Robson_Renan relatando a mesma situação do DV onde foi pedido que ele criasse uma nova postagem para discutir o assunto
  6. Bom Dia, De acordo com as informações passadas pelo suporte do Sicoob, criei um atributo na classe Boleto para poder marcar se é para calcular ou não o DV. Realizei alguns testes e o problema relatado foi sanado. Segue os arquivos para que possam avaliar as alterações. ACBrBancoSicoob.pas ACBrBoleto.pas
  7. Em relação ao problema relatado acima entrei em contato com o suporte do Sicoob e obtive essa respota deles. Neste caso penso em criar uma propriedade para definir quando quando gerar e quando não gerar o DV. Segunda irei fazer as implementações e subo aqui.
  8. Bom Dia, Validando alguns boletos que ao informar a linha digitavel no banco aparecia como boleto ainda não emitido pude verificar que ao mandar imprimir o boleto pelo componente ele está gerando o nosso número de forma incorreta quando se faz a opção do banco gerar o nosso número na hora da criação do boleto. Na hora do envio do boleto ao passar o nosso número em branco o Banco retornara o nosso número caso o boleto seja criado com sucesso. Enviei um boleto e o retorno do banco foi: { "resultado": [{ "status": { "codigo": 200 }, "boleto": { "numeroContrato": ******, "modalidade": 1, "numeroContaCorrente": *****, "nossoNumero": 31144, "seuNumero": "6666-01", "especieDocumento": "DM", "dataEmissao": "2024-10-25T00:00:00-03:00", "codigoBarras": "75693991000000010001300801121407100031144001", "linhaDigitavel": "75691300860112140710800311440010399100000001000", "valor": 10.0000, "dataVencimento": "2024-11-24T00:00:00-03:00", "valorAbatimento": 0, "tipoDesconto": 0, "valorPrimeiroDesconto": 0.0000, "valorSegundoDesconto": 0.0000, "valorTerceiroDesconto": 0.0000, "valorMulta": 2.0000, "valorJurosMora": 0.3300, "numeroParcela": 1, "aceite": false, "pagador": { "nome": "TESTE BOLETO", "numeroCpfCnpj": "24759618058", "endereco": "********", "bairro": "***********", "cidade": "***********", "cep": "*********", "uf": "ES" }, "mensagensInstrucao": { "mensagens": ["Pagável Preferencialmente nas Cooperativ", "as da Rede Sicoob ou Qualquer Banco até", "o Vencimento.", "", ""] }, "identificacaoBoletoEmpresa": "66661", "quantidadeDiasFloat": 1, "tipoJurosMora": 2, "dataJurosMora": "2024-11-25T00:00:00-03:00", "tipoMulta": 2, "dataMulta": "2024-11-25T00:00:00-03:00", "identificacaoEmissaoBoleto": 2, "identificacaoDistribuicaoBoleto": 2, "codigoProtesto": 3, "codigoNegativacao": 3, "qrCode": "*************", "numeroContratoCobranca": ***** } } ] } Note que ele retorna a linha digitavel do boleto que é a seguinte: 75691300860112140710800311440010399100000001000 Na hora da impressão deste boleto pelo ACBR o mesmo gera a seguinte linha digitavel: 75691300860112140710800311480016599100000001000 Destaquei em negrito a parte correspondente ao nosso número, a divergencia acontece que o Sicoob está considerando que o digito verificador para o nosso número 3114 é 4 e o ACBR 8, trazendo uma divergencia de informações e impossibilitando o pagamento do titulo.
  9. Ao tentar enviar um boleto para a API do Sicoob, estava me deparando com o seguinte erro: "Invalid UTF-8 middle byte 0x73 ...." Ao analisar identifiquei que o erro se travava devido estar enviando o seguinte texto na instrução : "Após o vencimento cobrar multa de 3% e mora diária de 0,1%. Sujeito a restrição 15 dias após vencimento." Para corrigir o erro e conseguir fazer a emissão do boleto foi alterado a seguinte linha: WriteStrToStream(httpsend.Document, NativeStringToUTF8(FPDadosMsg)); Antes a conversão do FPDadosMsg era feita com AnsiString. ACBrBoletoWS.Rest.pas
  10. A primeira alteração que fiz foi no bloco de código abaixo, onde estava acessando o objeto ANodes[i] e mudei para AuxNode. with NFSe.Servico.ItemServico[i] do begin CodLCServ := ObterConteudo(AuxNode.Childrens.FindAnyNs('CodigoServico116'), tcStr); CodServ := ObterConteudo(AuxNode.Childrens.FindAnyNs('CodigoServicoMunicipal'), tcStr); CodigoCnae := ObterConteudo(AuxNode.Childrens.FindAnyNs('CodigoCnae'), tcStr); Quantidade := ObterConteudo(AuxNode.Childrens.FindAnyNs('Quantidade'), tcDe4); Unidade := ObterConteudo(AuxNode.Childrens.FindAnyNs('Unidade'), tcStr); ValorUnitario := ObterConteudo(AuxNode.Childrens.FindAnyNs('ValorServico'), tcDe2); Descricao := ObterConteudo(AuxNode.Childrens.FindAnyNs('Descricao'), tcStr); Descricao := StringReplace(Descricao, FpQuebradeLinha, sLineBreak, [rfReplaceAll, rfIgnoreCase]); Aliquota := ObterConteudo(AuxNode.Childrens.FindAnyNs('Aliquota'), tcDe4); ValorISS := ObterConteudo(AuxNode.Childrens.FindAnyNs('ValorIssqn'), tcDe4); aValorTotal := Quantidade * ValorUnitario; ValorTotal := RoundTo(aValorTotal, - 2); end; A segunda alteração foi no metodo abaixo onde o objeto que ele acessava era o ANode e mudei para o AuxNode: A data que me refiro é a data de emissão. if AuxNode <> nil then begin with NFSe do begin CodigoVerificacao := ObterConteudo(AuxNode.Childrens.FindAnyNs('Id'), tcStr); Link := CodigoVerificacao; Link := StringReplace(Link, '&amp;', '&', [rfReplaceAll]); DataEmissao := ObterConteudo(AuxNode.Childrens.FindAnyNs('DataEmissao'), tcDatHor); OutrasInformacoes := ObterConteudo(AuxNode.Childrens.FindAnyNs('Observacao'), tcStr); OutrasInformacoes := StringReplace(OutrasInformacoes, FpQuebradeLinha, sLineBreak, [rfReplaceAll, rfIgnoreCase]); SituacaoNfse := StrToStatusNFSe(Ok, ObterConteudo(AuxNode.Childrens.FindAnyNs('Status'), tcStr)); Servico.Valores.IssRetido := FpAOwner.StrToSituacaoTributaria(Ok, ObterConteudo(AuxNode.Childrens.FindAnyNs('IssRetido'), tcStr)); end; Em relação aos Xmls o cliente que eu tenho utiliza apenas um serviço na NFSe, portanto vou ficar te devendo um XML com mais serviços. Vou te mandar o XML no privado por conter dados sensíveis.
  11. Boa Tarde @Alexandre de Paula tive uma reclamação do meu suporte que não estava puxando a data, e tive que realizar outras alterações vou subir o arquivo novamente aqui com as 2 correções a de cima e a de agora, caso precise que abra um nova Post só me avisar. As alterações de agora foram feitas no método: LerXmlNfse EL.LerXml.pas
  12. Bom Dia a todos, identifiquei um erro ao tentar ler xml de Nota de Serviço do provedor EL. A modificação que eu fiz foi necessária porque estava gerando Access Violation. Na verificação do IF se ANodes fosse igual a nil no else ele estava tentando acessar o objeto que apontava para nil fazendo gerar o erro. EL.LerXml.pas
×
×
  • 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...