Ir para conteúdo
  • Cadastre-se

Giovani Da Cruz

Membros
  • Total de ítens

    66
  • Registro em

  • Última visita

Contact Methods

  • Website URL
    http://www.infus.inf.br

Últimos Visitantes

2.661 visualizações

Giovani Da Cruz's Achievements

Enthusiast

Enthusiast (6/14)

  • Dedicated Rare
  • First Post
  • Collaborator Rare
  • Conversation Starter
  • Week One Done

Recent Badges

8

Reputação

3

Community Answers

  1. Fiz um ajuste em LJsonNotas.AddElement(LJsonNota); //<- aqui para LJsonNotas.AddElementJSON(LJsonNota); para compatibilidade com os fontes ACBrBoletoW_Banrisul.pas
  2. O Banrisul agora permite vincular a nota fiscal com os boletos PIX registrados. Link da documentação https://developers.banrisul.com.br/pages/docs/clientes-banrisul/api-cobranca-v1.html#tag/boletos Fiz uma alteração na unit ACBrBoletoW_Banrisul para conseguir enviar esta informação e gostaria de compartilhar, talvez possa ser utilizada pela comunidade. ACBrBoletoW_Banrisul.pas
  3. O boleto é registrado no banco via API v2 do Sicredi, retorna os dados, tudo ok. Mais a frente o pessoal abre o internet bank e baixa os arquivos de retornos disponíveis. E digamos que em um destes arquivos há disponível a quitação do boleto gerado. Este arquivo de retorno vai conter a seção Y, nela vai ter a url preenchida (SegY, 82, 77) mas nestes casos que peguei, na linha depois onde deveria supostamente ter o TXID (SegY, 159, 35), é completado com espaços em branco. Uma sugestão se código seria na unit ACBrBoleto, separando os campos na validação. Neste caso deixei a segunda validação em comentário, porque o arquivo que estava processando não tinha dados na parte do TXID, assim consegui processar os retornos normalmente. Precisaria avaliar em que situações o campo TXID realmente é obrigatório. procedure TACBrBoletoPIXQRCode.PIXQRCodeDinamico(const AURL, ATXID: String; ATitulo : TACBrTitulo); var LEMV : TACBrPIXQRCodeDinamico; begin if (EstaVazio(AURL)) then raise Exception.Create(ACBrStr('URL é obrigatório!')); // if (EstaVazio(ATXID)) then // raise Exception.Create(ACBrStr('TXID é obrigatório!')); LEMV := TACBrPIXQRCodeDinamico.Create; try LEMV.IgnoreErrors := True; LEMV.MerchantName := ATitulo.ACBrBoleto.Cedente.Nome; LEMV.MerchantCity := ATitulo.ACBrBoleto.Cedente.Cidade; LEMV.PostalCode := Poem_Zeros(ATitulo.ACBrBoleto.Cedente.CEP,8); LEMV.URL := AURL; //LEMV.TxId := ATXID; // aqui já estava em comentário Seturl(AURL); SettxId(ATXID); Setemv(LEMV.AsString); finally LEMV.Free; end; end; Vou ver aqui para deixar o arquivo de retorno com dados fictícios para postar aqui.
  4. Isso, quando analiso um arquivo de retorno de uma quitação de boleto, existe o registro Y, existe a url (SegY, 82, 77), mas na posição do TXID (SegY, 159, 35) está em branco. Então quando indico este arquivo de retorno e faço: ACBrBoleto1.LerRetorno; Ocorre a exceção: 'URL e TXID é obrigatório!'
  5. Não é exatamente o mesmo. É ao processar arquivos de retorno contendo quitações de boletos híbridos, estou tendo a mensagem 'URL e TXID é obrigatório!'
  6. Oi pessoal, estava lendo sobre o tópico e me deparei com uma situação hoje pela manhã. Banco: Sicredi modo de arquivos cnab240 Boleto Híbrido registrado via WebService Ao processar o retorno de um boleto pago no pix, estava ocorrendo um erro 'URL e TXID é obrigatório!' procedure TACBrBoletoPIXQRCode.PIXQRCodeDinamico(const AURL, ATXID: String; ATitulo : TACBrTitulo); var LEMV : TACBrPIXQRCodeDinamico; begin if (EstaVazio(AURL) or EstaVazio(ATXID)) then raise Exception.Create(ACBrStr('URL e TXID é obrigatório!')); ... end; Analisando o arquivo de retorno, o arquivo contém a seção Y, com a URL do pix, mas em branco a parte do TXID ACBrBancoSicredi.pas linha: 2298 if Trim(Copy(SegY,82,77))<>'' then QrCode.PIXQRCodeDinamico(Trim(Copy(SegY,82,77)),Trim(Copy(SegY,159,35)), Titulo); Esta situação já ocorreu com alguém? O boleto foi registrado e quitado normalmente.
  7. Bom dia @Juliana Tamizou, segue em anexo o manual utilizado. Atenciosamente Giovani Da Cruz 1685563119393-gr---cob136---cobranca-web---layout-cnab-240---remessapdf.pdf
  8. Boa tarde! Verificamos a necessidade de realizar um ajuste, no arquivo ACBrBancoUnicredES.pas para utilizar a opção "Dias para Negativação" O problema ocorre que ao montar o arquivo de remessa, o mesmo utiliza o mesmo valor para dias de protesto e dias de negativação. { Dias para protesto / Negativação } ADias := '00'; if Length(ACodProtesto) > 0 then begin if ACodProtesto[1] in ['1', '2'] then // protesto begin ADias := PadLeft(IntToStr(DiasDeProtesto), 2, '0'); end; if ACodProtesto[1] in ['4', '5'] then // negativação begin ADias := PadLeft(IntToStr(DiasDeNegativacao), 2, '0'); end; end; Também colocamos um ajuste para o código correto para a questão da negativação. if ACodProtesto = '7' then begin ACodProtesto := '4'; end; Com esta versão do arquivo, consegui homologar para CNAB 240. Gostaria de disponibilizar o arquivo para ver se pode ser útil ao projeto. ACBrBancoUnicredES.pas
  9. Olá. Estamos mantendo uma versão open source do User Control https://github.com/infussolucoes/usercontrol-sd Há diversas melhorias sugeridas por usuários, no entanto estamos atarefados aqui na empresa e não estamos conseguindo fazer as modificações sugeridas. Então estamos contratando freelancers com experiência em manipulação de componentes para realizar algumas melhorias no UserControl. A Suíte permanecerá Open Source. Interessados podem entrar em contato comigo. E-mail: [email protected] Skype: giovani_da_cruz
  10. Olá pessoal. Tenho interesse em contratar freelancers para o desenvolvimentos de algum módulos em html 5 Os módulos são integrações por json de sistemas existentes. E-mail para contato: [email protected]
  11. Seguinte, poderia carregar a lista de ocorrências, sem ter que instanciar um objeto. Exemplo: procedure TFrmRemessaCadastro.Button1Click(Sender: TObject); var I: Integer; vList : TACBrOcorrenciasRemessa; begin vList := TACBrBoleto.GetOcorrenciasRemessa(); ComboOcorrencia.Clear; for I := Low(vList) to High(vList) do begin ComboOcorrencia.Items.Add(vList[I].Descricao); ComboOcorrencia.Values.Add(GetEnumName(TypeInfo(TACBrTipoOcorrencia), Integer(vList[I].Tipo))); end; end;
  12. Olá pessoal! Estava analisando a função function GetOcorrenciasRemessa da unit acbr boleto, gostaria se saber se há possibilidades de deixar a mesma como class function como segue class function TACBrBoleto.GetOcorrenciasRemessa: TACBrOcorrenciasRemessa; var I: Integer; begin SetLength(Result, 41); for I:= 1 to 41 do begin Result[I-1].Tipo := TACBrTipoOcorrencia(I-1); Result[I-1].descricao := cACBrTipoOcorrenciaDecricao[I-1]; end; end; Assim se torna possível o uso da função se precisar instanciar um objeto. Desde já agradeço o retorno.
  13. Sim, estou utilizando as dlls de x64. Interessante que funcionava em antes da alteração do endereço, a pesquisa de cnpj funciona normalmente, no x64. Outro detalhe interessante é que testando o exemplo executando no D, funciona, mas no C, mesmo como administrador, da o Erro 500.
  14. Encontrei um problema mesmo compilando o programa de exemplo. Delphi 10 Seatle, Windows: Diversos compilação: 64 bits OBS: Colocando o exe gerado na pasta C:\arquivos de programas... Em x32 funciona normalmente. Em x64 em uma pasta comum O erro ocorre: procedure TACBrConsultaCPF.Captcha(Stream: TStream); HTTPGet('https://www.receita.fazenda.gov.br/Aplicacoes/SSL/ATCTA/CPF/captcha/gerarCaptcha.asp'); HTTPMethod( 'GET', AURL ); HTTPSend.HTTPMethod(Method, AURL); aqui a propriedade HTTPSend.ResultCode fica 500. Sendo que depois dará o erro aqui OK := HTTPSend.ResultCode = 200; //... if not OK then raise EACBrHTTPError.Create( 'Erro HTTP: '+IntToStr(HTTPSend.ResultCode)+' '+ HTTPSend.ResultString + sLineBreak + 'URL: '+AURL + sLineBreak + sLineBreak + 'Resposta HTTP:' + sLineBreak + String(AjustaLinhas( AnsiString(RespHTTP.Text), 80, 20) )) ; Detalhe o erro só ocorre na compilação x64 e executando em uma pasta mais restrita ex : c:\Program Files
  15. Testando agora, com os fontes atualizados de hoje, verifiquei que o problema foi resolvido com o Fortes. Com fast, não aparece qualquer informação dos dados de entrega. Testado com DANFeRetrato, DANFeRetratoNovo atualizados. conferencia.xml
×
×
  • 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...