Ir para conteúdo
  • Cadastre-se

Antonio Gomes

Membros
  • Total de ítens

    670
  • Registro em

  • Última visita

  • Days Won

    1

Antonio Gomes last won the day on 13 Setembro 2023

Antonio Gomes had the most liked content!

1 Seguidor

Últimos Visitantes

1.648 visualizações

Antonio Gomes's Achievements

  1. está certo, alguns casos, aquele negocio das 13 hs, se o cliente pagar, eles colocam no mesmo dia disponível já para ser quitado no cliente.
  2. em produção, no cliente mesmo, mas, vou testar de novo, recordo de fato, que o pix, já na conta, acontecia do titulo nao vir com aquela situacao = PAGO.
  3. Interessante, usei isso ontem, com fontes atualizados no cliente, não tinha dado a falha. Testou ai francisco ?
  4. Sim, vc pode personalizar, até colocar salvar no cliente, o modelo do boleto, eu tenho dessa forma, o cara quer algo diferente, edito, salvo no banco e vida que segue. Abstraia o código: procedure TDMBoleto.ConfigurarFastReport; var ST: TMemoryStream; begin frxReport1.Clear; frxReport1.Report.Clear; frxDBReceber.RangeBegin := rbFirst; frxDBReceber.RangeEnd := reLast; frxReport1.EnabledDataSets.Clear; frxReport1.DataSets.Clear; frxReport1.DataSets.Add(frxDBReceber); frxReport1.EnabledDataSets.Add(frxDBReceber); ST := TMemoryStream.Create; try if FDSCfgMod.FieldByName('ARQUIVO_CFGBLMOD').IsNull then // Quando for atualizado, em Novembro de 2018, esse campo vai ficar vazio na tabela begin case FDSCfgMod.FieldByName('LAYOUT_CFGBLMOD').AsInteger of 1: begin TFuncoesSistemaOperacional.LerRecursoDLL('BOLETO_1PP_PIX', sNomeDaDLL, ST); end; 2: TFuncoesSistemaOperacional.LerRecursoDLL('BOLETO_2PP', sNomeDaDLL, ST); 3: TFuncoesSistemaOperacional.LerRecursoDLL('BOLETO_3PP_CARNE', sNomeDaDLL, ST); else // 3 raise Exception.Create('Tipo de Documento: Boleto ou carnê não selecionado na configuração.'); end; end else TBlobField(FDSCfgMod.FieldByName('ARQUIVO_CFGBLMOD')).SaveToStream(ST); ST.Position := 0; frxReport1.LoadFromStream(ST); finally FreeAndNil(ST); end; // desnecessário, mantido pois tem modelo salvo no cliente, e gera erro Var S: string; with frxReport1 do begin S := 'procedure INICIALIZA()'; if Script.FindLocal(S) = nil then Script.AddMethod(S, CallMethod); end; end; OnSaveReport, do Designer: function TDMBoleto.frxDesignerBoleto_SaveReport(Report: TfrxReport; SaveAs: Boolean): Boolean; var Stream: TStream; begin Stream := TMemoryStream.Create; try Report.SaveToStream(Stream); Stream.Position := 0; IBQryCfgMod.Edit; TBlobField(IBQryCfgMod.FieldByName('ARQUIVO_CFGBLMOD')).LoadFromStream(Stream); IBQryCfgMod.Post; finally Stream.Free; end; Result := True; end;
  5. Cara, eu criei meu próprio fr3, logo, bordo o que for preciso nele. Não sei se ajudei, ou botei mais dúvida ainda.
  6. inter: Criar app, baixar certificados, colocar certo os scopes, clientid Sicoob: Cadastrar no ambiente desenvolver, pegar o clientid, e fazer a mandinga do certificado ecnpj do cliente... Essa benção que refiro, nao basta querer do lado de cá, se lá (banco) nao está ativo.
  7. qual banco é? geralmente, o boleto vem a url pix já, se o banco permitir, pq eles precisam dar a benção (banco), inter mesmo, vem ja pronto, a gente so pega e imprime, e esquece a remessa, mas, se for um banco com remessa, coloca qual banco é, até então, não tinha visto ainda, remessa ter pix, já que é uma coisa dinâmica com o banco...
  8. Cara, eu fiz, e gravei tudo no meu banco, e eu mesmo faço a impressão, mas, deve ter no modelo do acbr, o qrcode já, lembre-se de gravar os dados abaixo: if ABoleto.ListaRetornoWeb[I].DadosRet.IDBoleto.IDBoleto <> '' then ABoletoApi.CodigoSolicitacao := ABoleto.ListaRetornoWeb[I].DadosRet.IDBoleto.IDBoleto; ABoletoApi.NossoNumeroFormatado := ABoleto.ListaRetornoWeb[I].DadosRet.IDBoleto.NossoNum; ABoletoApi.CodigoBarras := ABoleto.ListaRetornoWeb[I].DadosRet.IDBoleto.CodBarras; ABoletoApi.LinhaDigitavel := ABoleto.ListaRetornoWeb[I].DadosRet.IDBoleto.LinhaDig; ABoletoApi.TxPIX := ABoleto.ListaRetornoWeb[I].DadosRet.TituloRet.TxId; ABoletoApi.UrlPIX := ABoleto.ListaRetornoWeb[I].DadosRet.TituloRet.EMV; // inter está vindo aqui if ABoletoApi.UrlPIX = '' then ABoletoApi.UrlPIX := ABoleto.ListaRetornoWeb[I].DadosRet.TituloRet.UrlPIX; if ABoletoApi.CodigoSolicitacao = '' then ABoletoApi.CodigoSolicitacao := ABoleto.ListaRetornoWeb[I].DadosRet.TituloRet.NossoNumeroCorrespondente; e na hora de imprimir, atribui no titulo, se tiver pix - gravado no seu receber a url, claro Titulo.QrCode.emv := .... procure por TACBrBoletoPIXQRCode = class private Femv: String; Furl: String; FtxId: String; procedure Setemv(const Value: String); procedure SettxId(const Value: String); procedure Seturl(const Value: String); public constructor Create(); destructor Destroy; override; property url : String read Furl write Seturl; property txId : String read FtxId write SettxId; property emv : String read Femv write Setemv; procedure PIXQRCodeDinamico(const AURL, ATXID: String; ATitulo : TACBrTitulo); end;
  9. Gostaria que conferissem por favor, sobre a falta da declaração {$I ACBr_jedi.inc} no topo da unit ACBrDFeXsLibXml2, onde a mesma, faz uso da chamada de uma diretiva, que está dentro dessa .inc Diretiva: DELPHILANGUAGE Isso ocorre o erro na validação da NF-e, onde fica aparecendo apenas o número do erro 1824, de erro de campo de inscricao estadual no caso. Erro que retorna: "Falha na validação dos dados da nota: 1232 --> 1824" função: function TDFeSSLXmlSignLibXml2.TentaPegarMensagemErroDetalhada(const MsgErroAtual: string): String; var prtUltimoErroXml: xmlErrorPtr; begin Result := ''; prtUltimoErroXml := xmlGetLastError(); if prtUltimoErroXml = nil then begin Result := MsgErroAtual; Exit; end; Result := MsgErroAtual + ' --> ' + IntToStr(prtUltimoErroXml^.code); {$IFDEF DELPHILANGUAGE} {$IFDEF WINDOWS} if (prtUltimoErroXml^.message <> nil) then Result := Result + ' - ' + prtUltimoErroXml^.message; {$ENDIF} {$ELSE} if (prtUltimoErroXml^.message <> nil) then Result := Result + ' - ' + prtUltimoErroXml^.message; {$ENDIF} end; Inclusive, está até estranho, o código é igual.
  10. Olha se pode ser usado dessa forma, sincronizei e alterei. ACBrBoletoRet_Inter_API.pas
  11. @Daniel InfoCotidiano Na tentativa de emitir um boleto, após ser cancelado, na property JSON do retorno, veio o seguinte texto: {"title":"Requisição inválida","detail":"Não será possível emitir o boleto. Pois, existe um boleto emitido há poucos minutos com os mesmos dados com a situação “em aberto” com nosso número: 01371641358.","timestamp":"2024-07-11T14:36:41.735762-03:00"}' Antes, com vencimento ontem, veio esse: '{"title":"Dados inválidos.","detail":"Verifique se os dados informados estão de acordo com a documentação disponibilizada e tente novamente.","timestamp":"2024-07-11T14:24:42.10409-03:00","violacoes":[{"razao":"O valor deve ser igual ou maior a data atual","propriedade":"incluirBoleto.body.dataVencimento","valor":"2024-07-10"}]}' ----- Porém, essa property JSON quando sucesso, vem prenchido com o json correto, com dados do boleto, logo, para mexer, penso que precisa ser dentro exclusivamente na unit do inter: onde vem essa msg de erro: if ABoleto.TotalListaRetornoWeb > 0 then for var I: Integer := 0 to Pred(ABoleto.TotalListaRetornoWeb) do begin ABoleto.ListaRetornoWeb[I].JSON ... end; Teria como alimentar a lista de rejeições? E eu posso mexer nisso ?
  12. Fecha por favor, é mosca comida + cansaço! Grato.
  13. Olá, @Daniel InfoCotidiano Uma coisa inusitada, que não consegui depurar, se emito o boleto no inter v2, no passado, agora com o novo componente, se aciono para cancelar, o mesmo não aciona a vinculação do certificado, faz algum sentido? Inter: 1 hora de token, se está fora do periodo, pede cancelamento, erro 400, no mesmo tempo, eu aciono a emissão da boleta, que regenera o token, nesse ato, consegue cancelar. é possivel eu saber, qual momento que o token é acionado? para eu debugar direto isso ? Pois preciso esperar 1 hr, para vencer o token. Modo que peço a baixa: Boleto.ListadeBoletos.Clear; ACBrTitulo := Boleto.CriarTituloNaLista; ACBrTitulo.NossoNumero := Fds.FieldByName('BOLETO_REC').AsString; ACBrTitulo.NossoNumeroCorrespondente := Fds.FieldByName('COD_SOLICITACAO_BOL_REC').AsString; Boleto.Configuracoes.WebService.Operacao := TOperacao.tpBaixa; // inter é baixa if not Boleto.Enviar then AMsgErro := Self.LerRetornoCancelamentoBoletoDeAPI(Boleto); procedure TFuncBoleto.ACBrBoleto_AntesAutenticar(var AToken: string; var AValidadeToken: TDateTime); begin // Carrega o token gravado na conta TFuncConta.GetTokenContaServicoBancario(fTransacao, Boleto, FDSServBanc.FieldByName('CODIGO_SER').AsInteger, FToken, FDataAtual, FDAtaHoraValidadeToken); AToken := FToken; AValidadeToken := FDAtaHoraValidadeToken; end;
×
×
  • 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.