Ir para conteúdo
  • Cadastre-se

Fernando Rodrigo

Membros
  • Total de ítens

    597
  • Registro em

  • Última visita

  • Days Won

    3

Tudo que Fernando Rodrigo postou

  1. peguei os arquivos na pasta do boleto e fiz a alteração
  2. qualquer alteração que fizer ele sai em branco, se vc pegar o codigo de barras e alterar 1 cm do que esta ele ja imprime em branco
  3. queria colocar a logomarca da empresa no boleto
  4. Fernando Rodrigo

    boleto em branco

    fiz uma alteração no layout do boleto, so que quando vou fazer a impressão ele imprime em branco o boleto se não fizer nenhuma alteração ele imprime normal, conforme as imagens abaixo, alguem ja passou por esse problema ?
  5. o pessoal do banco pediu o json de envio, so que não sei onde pego ele
  6. na unit ACBrBoletoW_BancoBrasil linha 287 o campo abaixo acho que esta com o nome errado pq o retorno do banco esta dizendo um campo e na unit esta passando outra Gerador.wCampo(tcStr, '#33', PrefixTag('textoEnderecoPagador' ), 00, 60, 1, Sacado.Logradouro, DSC_LOGRADOURO); No retorno do banco <ns0:nomeLogradouroBeneficiario>Cliente nao localizado ou sem enderecos validos. </ns0:nomeLogradouroBeneficiario> Estou passando normal os campos Sacado.NomeSacado := 'FERNANDO RODRIGO DE JESUS'; Sacado.CNPJCPF := '47854871191'; Sacado.Logradouro := 'AV. PIO XII'; Sacado.Numero := '618'; Sacado.Bairro := 'CIDADE JARDIM'; Sacado.Cidade := 'GOIANIA'; Sacado.UF := 'GO'; Sacado.CEP := '74425010'; Gerador.wCampo(tcStr, '#31', PrefixTag('numeroInscricaoPagador' ), 00, 15, 1, OnlyNumber(Sacado.CNPJCPF), DSC_NOME_SACADO); Gerador.wCampo(tcStr, '#32', PrefixTag('nomePagador' ), 00, 60, 1, Sacado.NomeSacado, DSC_NOME_SACADO); Gerador.wCampo(tcStr, '#33', PrefixTag('textoEnderecoPagador' ), 00, 60, 1, Sacado.Logradouro, DSC_LOGRADOURO); Gerador.wCampo(tcStr, '#34', PrefixTag('numeroCepPagador' ), 00, 08, 1, Sacado.Cep, DSC_CEP); Gerador.wCampo(tcStr, '#35', PrefixTag('nomeMunicipioPagador' ), 00, 20, 1, Sacado.Cidade, DSC_CIDADE); Gerador.wCampo(tcStr, '#36', PrefixTag('nomeBairroPagador' ), 00, 20, 1, Sacado.Bairro, DSC_BAIRRO); Gerador.wCampo(tcStr, '#37', PrefixTag('siglaUfPagador' ), 00, 02, 1, Sacado.UF, DSC_UF); Gerador.wCampo(tcStr, '#38', PrefixTag('textoNumeroTelefonePagador' ), 00, 12, 1, Sacado.Fone, DSC_FONE);
  7. tem alguns campos que não estão gerando10000000-retorno_registro.xml10000000-registro_boleto.xml Estou passando normal os campos , so que não esta sendo gerado no xml Sacado.NomeSacado := 'FERNANDO RODRIGO DE JESUS'; Sacado.CNPJCPF := '47854871191'; Sacado.Logradouro := 'AV. PIO XII'; Sacado.Numero := '618'; Sacado.Bairro := 'CIDADE JARDIM'; Sacado.Cidade := 'GOIANIA'; Sacado.UF := 'GO'; Sacado.CEP := '74425010'; Veja o retorno do erro <ns0:nomeLogradouroBeneficiario>Cliente nao localizado ou sem enderecos validos.
  8. como faço para pegar esse retorno na função ProcessarRespostaOAuth
  9. -registro_boleto.xml10000000-registro_boleto.xml Só é gerado 2 arquivos em anexo, eu falei com outro programador em java ele disse que é gerado um json para enviar para o banco, so que no acbr so gera xml
  10. como faço para pegar o json gerado no envio
  11. eu peguei a chave J com o cliente e mesmo assim continua o erro, estranho pq no DEMO com os dados de testes roda normal, gera o log e alguns arquivos xml, mas se colocar as minhas credenciais que foi cadatrado na api do banco não roda da erro
  12. esse campo ACBrBoleto1.Cedente.CedenteWS.KeyUser onde consigo ele pq no site do banco so tem 3 campos developer_application_key Credenciais OAuth client_id client_secret Quando uso as credenciais conforme arquivo de teste passa normal, mas quando coloco minhas credenciais da o erro acima
  13. fiz conforme o arquivo configWebService.txt e não passa de jeito nenhum, da erro no envio e não gera nenhum log para ver o que é
  14. passei como pNenhum e deu certo, valeu
  15. pessoal , no acbr foi implementado para checagem das placas no padrão Mercosul, alguém tem algum função para fazer essa conversão pegar do padrão atual e converter para o Mercosul ou vise-versa tenho uma base de dados e as placas estão todas antigas e preciso fazer essa conversar
  16. Dercide tem que informar conforme abaixo pq la na função que retorna o campo esta conforme abaixo, se eu informar pOutras, ele irá gerar o codgio 9 e o banco disse que tem que ser 0, então tem que ser pNenhum function TACBrBancoClass.DefineTipoSacadoAvalista(const ACBrTitulo: TACBrTitulo String; begin with ACBrTitulo do begin case Sacado.SacadoAvalista.Pessoa of pFisica : Result := '1'; pJuridica : Result := '2'; pOutras : Result := '9'; else Result := '0'; end; end; end; Sacado.SacadoAvalista.Pessoa := pNenhum;
  17. estou começando a implementar o boleto on-line no banco do brasil, e esta dando erro no envio, se alguem conseguiu fazer favor me de um help
  18. estou fazendo a validação para o santander cnab 240 e o banco me retornou uma instrução que devera ser alterado, so que olhando os fontes não tem como fazer igual ao banco precisa REGISTRO DETALHE-SEGMENTO Q REMESSA 154-154 Tipode inscrição sacador/avalista: . . SE A INSCRIÇÃO DO CEDENTE FOR CNPJ, O MESMO NÃO NECESSITA DE SACADOR AVALISTA, LOGO, ESTE CAMPO DEVE INFORMA '0', LINHA 4 Para preencher esses campo é feito 2 checagem essa abaixo na unit do banco, so que no componente so aceita pFisica e pJuridica, conforme validação abaixo, como irei informar codigo 0, sendo que so existe esses 2 tipos de inscrição ? {Pegando tipo de pessoa do Sacado} sTipoInscricao := Copy( DefineTipoSacado(ACBrTitulo), 2, 1); {Pegando tipo de pessoa do Avalista} aTipoInscricao:= DefineTipoSacadoAvalista(ACBrTitulo); Essa na unit AcbrBoleto function TACBrBancoClass.DefineTipoSacado(const ACBrTitulo: TACBrTitulo String; begin with ACBrTitulo do begin case Sacado.Pessoa of pFisica : Result := '01'; pJuridica : Result := '02'; else Result := '99'; end; end; end; function TACBrBancoClass.DefineTipoSacadoAvalista(const ACBrTitulo: TACBrTitulo String; begin with ACBrTitulo do begin case Sacado.SacadoAvalista.Pessoa of pFisica : Result := '1'; pJuridica : Result := '2'; pOutras : Result := '9'; else Result := '0'; end; end; end;
  19. não deu certo, ja alterei e coloquei todas as opções e nenhum passa.
  20. não gerou nenhum log, eu preenchi os campos para remessa conforme o DEMO e so pedir para enviar e não gerou nenhum log na pasta do DEMO With ACBrBoleto1.CriarTituloNaLista do begin // CriarTituloNaLista; Carteira := '17'; EspecieDoc := '99'; With ACBrBoleto1.Cedente do begin // Cedente.TipoCarteira := tctRegistrada; // Cedente.Modalidade := '19'; {Dados do cedente - Loja} CodigoTransmissao := '11'; TipoInscricao := pJuridica; {CNPJ} CNPJCPF := '04005416000153'; Nome :='Nome Fantasia do Cliente'; CodigoCedente := '4863177'; Convenio := '1014051'; Modalidade := '19'; Logradouro :='aaa'; NumeroRes := ''; Complemento := ''; Bairro := 'aaa'; Cidade := 'aaa'; UF := 'GO'; CEP := '74413050'; Agencia :='1'; AgenciaDigito := '0'; Conta :='xxx'; ContaDigito := '0'; end; LocalPagamento := 'Pagar em qualquer banco'; //MEnsagem exigida pelo bradesco Vencimento := IncMonth(EncodeDate(2020,10,10),I); DataDocumento := EncodeDate(2020,08,10); NumeroDocumento := PadRight(IntToStr(I),8,'0'); EspecieDoc := 'DM'; Aceite := atSim; DataProcessamento := Now; Carteira := '17'; NossoNumero := IntToStrZero(I,8); ValorDocumento := 100.35 * (I+0.5); Sacado.NomeSacado := 'Jose Luiz Pedroso'; Sacado.CNPJCPF := '12345678901'; Sacado.Logradouro := 'Rua da Consolacao'; Sacado.Numero := '100'; Sacado.Bairro := 'Vila Esperanca'; Sacado.Cidade := 'Tatui'; Sacado.UF := 'SP'; Sacado.CEP := '18270000'; ValorAbatimento := 10; DataAbatimento := Vencimento-5; Instrucao1 := '00'; Instrucao2 := '00'; NossoNumero := edtNossoNro.Text; with ACBrBoleto1.Banco do begin TipoCobranca := cobBancoDoBrasil; end; end; ************************** procedure TfrmDemo.btnRegistroClick(Sender: TObject); var SLRemessa: TStringList; i: Integer; begin with ACBrBoleto1 do begin //Banco do Brasil //Dados para Homologaçao Cedente.CedenteWS.ClientID := 'XXXXXX' Cedente.CedenteWS.ClientSecret := 'XXXXX'; Cedente.CedenteWS.Scope := 'cobranca.registro-boletos'; Cedente.CedenteWS.KeyUser := 'XXXX'; //Função de Envio EnviarBoleto; //Verifica Lista com os retornos if ListaRetornoWeb.Count > 0 then begin SLRemessa := TStringList.Create; try for i:= 0 to ListaRetornoWeb.Count -1 do begin //Ler todos os campos da classe Retorno SLRemessa.Add('Cod_Retorno='+ ListaRetornoWeb.CodRetorno + sLineBreak + 'Msg_Retorno='+ ListaRetornoWeb.MsgRetorno + sLineBreak + 'Ori_Retorno='+ ListaRetornoWeb.OriRetorno + sLineBreak + 'HEADER' + sLineBreak + 'Versao='+ ListaRetornoWeb.Header.Versao + sLineBreak + 'Autenticacao=' + ListaRetornoWeb.Header.Autenticacao + sLineBreak + 'Usuario_Servico=' + ListaRetornoWeb.Header.Usuario_Servico + sLineBreak + 'Usuario=' + ListaRetornoWeb.Header.Usuario + sLineBreak + 'Operacao=' + TipoOperacaoToStr(ListaRetornoWeb.Header.Operacao) + sLineBreak + 'Indice=' + IntToStr(ListaRetornoWeb.Header.Indice) + sLineBreak + 'Sistema_Origem=' + ListaRetornoWeb.Header.Sistema_Origem + sLineBreak + 'Agencia=' + IntToStr(ListaRetornoWeb.Header.Agencia) + sLineBreak + 'ID_Origem=' + ListaRetornoWeb.Header.Id_Origem + sLineBreak + 'Data_Hora=' +FormatDateTime('dd/mm/yyyy hh:nn:ss',ListaRetornoWeb.Header.Data_Hora) + sLineBreak + 'ID_Processo=' + ListaRetornoWeb.Header.Id_Processo + sLineBreak + 'DADOS' + sLineBreak + 'Excessao=' +ListaRetornoWeb.DadosRet.Excecao + sLineBreak + 'CONTROLE_NEGOCIAL' + sLineBreak + 'Origem_Retorno=' + ListaRetornoWeb.DadosRet.ControleNegocial.OriRetorno + sLineBreak + 'NSU=' + ListaRetornoWeb.DadosRet.ControleNegocial.NSU + sLineBreak + 'Cod_Retorno=' + ListaRetornoWeb.DadosRet.ControleNegocial.CodRetorno + sLineBreak + 'Msg_Retorno=' + ListaRetornoWeb.DadosRet.ControleNegocial.Retorno + sLineBreak + 'COMPROVANTE' + sLineBreak + 'Data=' + FormatDateTime('dd/mm/yyyy', ListaRetornoWeb.DadosRet.Comprovante.Data) + sLineBreak + 'Hora=' + ListaRetornoWeb.DadosRet.Comprovante.Hora + sLineBreak + 'ID_BOLETO' + sLineBreak + 'Codigo_Barras=' + ListaRetornoWeb.DadosRet.IDBoleto.CodBarras + sLineBreak + 'Linha_Digitavel=' + ListaRetornoWeb.DadosRet.IDBoleto.LinhaDig + sLineBreak + 'Nosso_Numero=' + ListaRetornoWeb.DadosRet.IDBoleto.NossoNum + sLineBreak + 'URL=' + ListaRetornoWeb.DadosRet.IDBoleto.URL + sLineBreak + 'CONSULTA_BOLETO' + sLineBreak + 'Numero_Documento=' + ListaRetornoWeb.DadosRet.TituloRet.NumeroDocumento + sLineBreak + 'Data_Vencimento=' + FormatDateTime('dd/mm/yyyy',ListaRetornoWeb.DadosRet.TituloRet.Vencimento) + sLineBreak + 'Valor=' + CurrToStr(ListaRetornoWeb.DadosRet.TituloRet.ValorDocumento) + sLineBreak ); end; SLRemessa.SaveToFile( PathWithDelim(ExtractFilePath(Application.ExeName))+'RetornoRegistro.txt' ); finally SLRemessa.Free; end; ShowMessage('Retorno Envio gerado em: '+ PathWithDelim(ExtractFilePath(Application.ExeName))+'RetornoRegistro.txt' ); end; end; end;
  21. fiz o cadastramento no banco do brasil como homologação e estou utilizando o demo para fazer os testes preenche todos os dados e na hora de envio esta dando Erro: 0 Conforme o DEMO so preenchi os dados fornecidos pelo banco with ACBrBoleto1 do begin //Banco do Brasil //Dados para Homologaçao Cedente.CedenteWS.ClientID := 'XXXXXXX'; Cedente.CedenteWS.ClientSecret := XXXXXXX Cedente.CedenteWS.Scope := 'cobranca.registro-boletos'; Cedente.CedenteWS.KeyUser := XXXXXXX //Função de Envio EnviarBoleto;
  22. estranho pq tenho cliente que funciona 100% e outros da erro em quase todas as notas manifestadas, segundo o pessoal da tecnospeed as notas entram em fila de liberação do xml a manifestação não entra em fila, mas a baixa sim. so que o cliente nosso não quer saber onde é o problema, ele quer funcionando
  23. segue o codigo que uso para fazer a publicação se nao entender o codigo me avise case dm_Estoque.Conf_Mercado_LivreANUNCIO.AsInteger of 1 : var_Tipo_Anuncio := 'gold_pro'; 2 : var_Tipo_Anuncio := 'gold_premium'; 3 : var_Tipo_Anuncio := 'gold_special'; 4 : var_Tipo_Anuncio := 'gold'; 5 : var_Tipo_Anuncio := 'silver'; 6 : var_Tipo_Anuncio := 'bronze'; 7 : var_Tipo_Anuncio := 'free'; end; case dm_Estoque.Conf_Mercado_LivreFRETE.AsInteger of 1 : var_tipo_frete := ',"non_mercado_pago_payment_methods": [],"shipping": {"mode": "me2","methods":[],"tags":[]}'; 2 : var_tipo_frete := 'gold_premium'; 3 : var_tipo_frete := 'gold_special'; 4 : var_tipo_frete := 'gold'; end; F_Funcoes.Checa_Estoque(StrToInt(Cod_loja.Text),PesquisaCodigo.value); for x := 1 to 3 do begin case x of 1 : If PesquisaFOTO.AsString <> '' then var_foto := ' "pictures":[ {"source":"' + dm_Estoque.Conf_Mercado_LivreFTP.AsString + ExtractFileName ( PesquisaFOTO.AsString ) + '"}'; 2 : If PesquisaFOTO2.AsString <> '' then var_Foto1 := ', {"source":"' + dm_Estoque.Conf_Mercado_LivreFTP.AsString + ExtractFileName ( PesquisaFOTO2.AsString ) + '"}'; 3 : if PesquisaFOTO3.AsString <> '' then var_Foto2 := ', {"source":"' + dm_Estoque.Conf_Mercado_LivreFTP.AsString + ExtractFileName ( PesquisaFOTO3.AsString ) + '"}'; end; end; if PesquisaCOD_BARRA.AsString <> '' then var_ean := ',{"id":"EAN","value_name":"' + PesquisaCOD_BARRA.AsString + '"}'; if PesquisaCODIGO_CATALAGO.AsString <> '' then var_Catalago := ',{"id": "PART_NUMBER","value_name":" ' + PesquisaCODIGO_CATALAGO.AsString + '"}'; if PesquisaQTDE_EMBALAGEM.AsInteger <> 0 then var_Unidade_Pacote := ',{"id": "UNITS_PER_PACKAGE","value_name":" ' + PesquisaQTDE_EMBALAGEM.AsString + '"}' else var_Unidade_Pacote := ',{"id": "UNITS_PER_PACKAGE","value_name":" ' + '1' + '"}'; if Load_imagem(dm_Estoque.Conf_Mercado_LivreFTP.AsString + ExtractFileName ( PesquisaFOTO.AsString ) ) = 0 then var_foto := ''; if Load_imagem(dm_Estoque.Conf_Mercado_LivreFTP.AsString + ExtractFileName ( PesquisaFOTO2.AsString ) ) = 0 then var_foto1 := ''; if Load_imagem(dm_Estoque.Conf_Mercado_LivreFTP.AsString + ExtractFileName ( PesquisaFOTO3.AsString ) ) = 0 then var_foto2 := ''; if dm_estoque.Conf_Mercado_LivreMENSAGEM.AsString <> '' then var_Obs_Anuncio := '\n\n\n\' + MENSAGEM.Text; // tipo de publicação 1 - publica todos os produtos, principal e produtos do e-commerse // tipo de publicação 2 - publica somente os produtos do e-commerse if dm_Estoque.Conf_Mercado_LivreTIPO_PUBLICACAO.AsInteger = 1 then begin Json := '{"title":"' + UTF8ToWideString ( PesquisaDESCRICAO.Value ) + '",'+ '"category_id":"MLB63581"' + ',' + // Codigo da Categoria '"price":' + TrocaVirgPPto ( FloatToStr( var_Preco_Venda ) ) + ',' + // Preço de Venda '"official_store_id":null, ' + '"currency_id":"BRL",' + // vendas no Brasil '"available_quantity":' + TrocaVirgPPto ( FloatToStr( F_Funcoes.CALCULA_ESTOQUE.FieldByName('SALDO').AsFloat ) ) + ','+ // estoque '"buying_mode":"buy_it_now", '+ '"listing_type_id":"' + var_Tipo_Anuncio + '"' + ',' + // tipo de anuncio '"condition":"new",' + // produto novo '"accepts_mercadopago": "true",'+ // aceita percado pago ? '"description":{"plain_text":"' + AnsiReplaceStr( ARGUMENTO_VENDA.Text,'"','') + var_Obs_Anuncio + '\n"},' + // argumento de venda var_foto + var_foto1 + var_Foto2 +']' + ',' + // fotos '"attributes":[{"id":"model","value_name":"' + PesquisaNOME_GRUPO.AsString + '"},' + // modelo '{"id":"brand","value_name":"' + PesquisaNOME_MARCA.AsString + '"}' + // marca var_Catalago + // Numero da Peça no ML var_Unidade_Pacote + // quantidade na embalagem var_ean + ']' + // codigo de barras var_tipo_frete // tipo de frete +'}'; Json := ReplaceAll(json,''#$D#$A#$D#$A'','\n\n'); Json := ReplaceAll(json,'#$D#$A','\n\n'); JsonToSend := TStringStream.Create( UTF8Encode(Json) ); Resposta_ML := ''; // CONEXÃO COM O ML PARA ATUALIZAÇÃO DE ESTOQUE while Resposta_ML = '' do begin try try Resposta_ML := 'https://api.mercadolibre.com/items?access_token='+ var_Access_token; Resposta_ML := IdHTTP1.Post(Resposta_ML, JsonToSend); // checa se ja foi feito conexão, joPrincipal := TlkJSON.ParseText(TEncoding.ASCII.GetString(TEncoding.ASCII.GetBytes(Resposta_ML))) as TlkJSONobject; if Pos('MLB',VarToStr(joPrincipal.Field['id'].Value)) <> 0 then begin F_Funcoes.Qry := TpFIBQuery.Create(nil); with F_Funcoes.Qry do begin Close; SQL.Clear; Database := dm_Geral.DB; Transaction := dm_Geral.Tr_Db; SQL.Add('Update Produto set produto.CODIGO_ML = :CODIGO_ML'); SQL.Add('where produto.codigo = :CODIGO'); ParamByName('CODIGO').AsInteger := PesquisaCODIGO.AsInteger; ParamByName('CODIGO_ML').AsString := VarToStr(joPrincipal.Field['id'].Value); ExecQuery; dm_Geral.Tr_Db.CommitRetaining; end; FreeAndNil(F_Funcoes.Qry); // tira o objeto da memória With Pesquisa do begin Edit; PesquisaSELECIONADO.AsString := '1'; Post; end; Break; end; except on E: EIdHTTPProtocolException do begin ShowMessage(E.ErrorMessage); end; on E: Exception do begin Resposta_ML := E.Message; if Resposta_ML = 'HTTP/1.1 200 OK' then begin break; end else Resposta_ML := ''; end; end finally end; end; end;
  24. @Daniel Simoesdeu certo, fico muito grato pela sua ajuda, e tenha um excelente final de semana.
×
×
  • 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.