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
-
Boleto Sicoob via API erro ao gerar nosso número
Leonardo Batista replied to Leonardo Batista's tópico in ACBrBoleto
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 -
Boleto Sicoob via API erro ao gerar nosso número
Leonardo Batista replied to Leonardo Batista's tópico in ACBrBoleto
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 -
Boleto Sicoob via API erro ao gerar nosso número
Leonardo Batista replied to Leonardo Batista's tópico in ACBrBoleto
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. -
Boleto Sicoob via API erro ao gerar nosso número
Leonardo Batista replied to Leonardo Batista's tópico in ACBrBoleto
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. -
Boleto Sicoob via API erro ao gerar nosso número
Leonardo Batista replied to Leonardo Batista's tópico in ACBrBoleto
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 -
Boleto Sicoob via API erro ao gerar nosso número
Leonardo Batista replied to Leonardo Batista's tópico in ACBrBoleto
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 -
Boleto Sicoob via API erro ao gerar nosso número
Leonardo Batista replied to Leonardo Batista's tópico in ACBrBoleto
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. -
Boleto Sicoob via API erro ao gerar nosso número
um tópico no fórum postou Leonardo Batista ACBrBoleto
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. -
ACBrBoleto API Siccob erro ao enviar Json (invalid UTF-8)
um tópico no fórum postou Leonardo Batista ACBrBoleto
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 -
ACBrNFSeX - Erro ao ler xml NFSe do provedor EL
Leonardo Batista replied to Leonardo Batista's tópico in ACBrNFe
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, '&', '&', [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. -
ACBrNFSeX - Erro ao ler xml NFSe do provedor EL
Leonardo Batista replied to Leonardo Batista's tópico in ACBrNFe
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 -
ACBrNFSeX - Erro ao ler xml NFSe do provedor EL
Leonardo Batista replied to Leonardo Batista's tópico in ACBrNFe
Anexei novamente. -
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