Ir para conteúdo
  • Cadastre-se

dev botao

Averbação Porto Seguro - Ajuda por favor


Ver Solução Respondido por BigWings,
  • Este tópico foi criado há 1332 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Moderadores

Teste usar o arquivo em anexo e também precisei mudar aqui pois não tenho partes do seu projeto

var
  chave, wdir: string;
  wn         : integer;
  fSeg       : TPortoSeguroIndY;
begin
    //wdir          := dts_empresa.DataSet.FieldByName('PATH_RAIZ').AsString + 'x_dfe\_Cte\' + '20' + copy(edl_chave.Text, 3, 2) + copy(edl_chave.Text, 5, 2);
  od.InitialDir := ExtractFilePath(ParamStr(0));

  edl_averbado.Text := '';
  MemoDados.Lines.Clear;
  if oD.Execute then
  begin
    fSeg := TPortoSeguroIndy.create;
    try
      fSeg.UserName := 'xxxxxxx'; // atencão username e Password tem que solicitar junto a Porto Seguro
      fSeg.Password := 'xxxx'; // Esse é o meu acesso

      wn := pos('-', oD.FileName);

      if wn > 0 then
        chave := copy(od.FileName, wn - 44, 44);

      fSeg.Averbacao := maUpload;
      fSeg.UpLoad(oD.FileName);

      MemoDados.Lines.Add('Resultado do Envio');
      MemoDados.Lines.Add('Protocolo => ' + fSeg.Protocolo);
      MemoDados.Lines.Add('Chave     => ' + fSeg.Chave);
      MemoDados.Lines.Add(fSeg.MensagemRetorno);

      fSeg.Averbacao := maConsulta;
      fSeg.Chave     := chave;

      if fSeg.Consulta(oD.FileName) then
      Begin

        MemoDados.Lines.Add('Resultado da Consulta');
        MemoDados.Lines.Add('Protocolo => ' + Trim(fSeg.Protocolo));
        MemoDados.Lines.Add('Chave     => ' + fSeg.Chave);
        MemoDados.Lines.Add(stringreplace(fSeg.MensagemRetorno, ';', #13, [ rfReplaceAll ]));

        ShowMessage(stringreplace(fSeg.MensagemRetorno, ';', #13, [ rfReplaceAll ]));
        edl_averbado.Text := Trim(fSeg.Protocolo);
      End;
    finally
      fSeg.Free;
    end;
  end;
    //pn_card4Click(pn_card4);

 

uPortoSeguroIndy.pas

Mas ele pode ser melhorado. criado classe e convertido os JSON para elas e vice versa ao invés de ficar fazendo copy ou pos de texto que podem ocasionar erros

  • Curtir 2
Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Black-02.png
 

 

Link para o comentário
Compartilhar em outros sites

  • Membros Pro
5 horas atrás, Juliomar Marchetti disse:

Teste usar o arquivo em anexo e também precisei mudar aqui pois não tenho partes do seu projeto


var
  chave, wdir: string;
  wn         : integer;
  fSeg       : TPortoSeguroIndY;
begin
    //wdir          := dts_empresa.DataSet.FieldByName('PATH_RAIZ').AsString + 'x_dfe\_Cte\' + '20' + copy(edl_chave.Text, 3, 2) + copy(edl_chave.Text, 5, 2);
  od.InitialDir := ExtractFilePath(ParamStr(0));

  edl_averbado.Text := '';
  MemoDados.Lines.Clear;
  if oD.Execute then
  begin
    fSeg := TPortoSeguroIndy.create;
    try
      fSeg.UserName := 'xxxxxxx'; // atencão username e Password tem que solicitar junto a Porto Seguro
      fSeg.Password := 'xxxx'; // Esse é o meu acesso

      wn := pos('-', oD.FileName);

      if wn > 0 then
        chave := copy(od.FileName, wn - 44, 44);

      fSeg.Averbacao := maUpload;
      fSeg.UpLoad(oD.FileName);

      MemoDados.Lines.Add('Resultado do Envio');
      MemoDados.Lines.Add('Protocolo => ' + fSeg.Protocolo);
      MemoDados.Lines.Add('Chave     => ' + fSeg.Chave);
      MemoDados.Lines.Add(fSeg.MensagemRetorno);

      fSeg.Averbacao := maConsulta;
      fSeg.Chave     := chave;

      if fSeg.Consulta(oD.FileName) then
      Begin

        MemoDados.Lines.Add('Resultado da Consulta');
        MemoDados.Lines.Add('Protocolo => ' + Trim(fSeg.Protocolo));
        MemoDados.Lines.Add('Chave     => ' + fSeg.Chave);
        MemoDados.Lines.Add(stringreplace(fSeg.MensagemRetorno, ';', #13, [ rfReplaceAll ]));

        ShowMessage(stringreplace(fSeg.MensagemRetorno, ';', #13, [ rfReplaceAll ]));
        edl_averbado.Text := Trim(fSeg.Protocolo);
      End;
    finally
      fSeg.Free;
    end;
  end;
    //pn_card4Click(pn_card4);

 

uPortoSeguroIndy.pas 7 kB · 1 download

Mas ele pode ser melhorado. criado classe e convertido os JSON para elas e vice versa ao invés de ficar fazendo copy ou pos de texto que podem ocasionar erros

Maravilha irmão, deu certo - obrigado pela sua dedicação em ajudar.

Link para o comentário
Compartilhar em outros sites

  • Moderadores
Em 31/07/2020 at 13:08, msiscampos disse:

Segue anexo a Documentação - um pouco antiga - mas no site permanece

a mesma 

AverbePorto - Documentos.pdf 248 kB · 0 downloads

Li ele. precisaria pensar em escrever algo.

o que fiz de mudanças resolveu seu problema inicial? creio que estava sem tratamento a criação e destruição dos componentes

  • Obrigado 1
Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Black-02.png
 

 

Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 1332 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • 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.