Ir para conteúdo
  • Cadastre-se

Giovani Da Cruz

Membros
  • Total de ítens

    64
  • Registro em

  • Última visita

Contact Methods

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

Últimos Visitantes

2.419 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. 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.
  2. 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!'
  3. 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!'
  4. 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.
  5. Bom dia @Juliana Tamizou, segue em anexo o manual utilizado. Atenciosamente Giovani Da Cruz 1685563119393-gr---cob136---cobranca-web---layout-cnab-240---remessapdf.pdf
  6. 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
  7. 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
  8. 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]
  9. 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;
  10. 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.
  11. 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.
  12. 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
  13. 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
  14. Nos meus testes utilizei o fortes. Vou tentar com o fast para ver se o problema persiste.
  15. Olá pessoal. Fazendo alguns testes com o endereço de entrega, percebi um detalhe. O complemento não esta saindo no danfe. No xml, tudo é preenchido corretamente, e o logradouro, número, bairro e etc aparecem automaticamente no danfe, porém o complemento não. Alguém já passou pelo mesmo problema? Talvez seja algo que esteja fazendo errado, mas não consegui identificar.
×
×
  • 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.