Ir para conteúdo
  • Cadastre-se

OldProgramer

Membros
  • Total de ítens

    88
  • Registro em

  • Última visita

Posts postados por OldProgramer

  1. Para registrar, adicionei:

    vFile := TFileStream.Create('NF16335.pdf', fmOpenRead);
    
    // e adicionei no stringlist de envio
    
    stEnvio.Add(EncodeBase64(ReadStrFromStream(vFile, vFile.Size)));
    stEnvio.Add(',"anexoFileName":"NF16335.pdf"');
    stEnvio.Add(',"anexoType":"application/octet-stream;base64"');
    stEnvio.Add(',"anexoContent":"'+Memo3.Lines.Text+'"');

    E o anexo seguiu normalmente.

  2. 16 minutos atrás, OldProgramer disse:

    Opa Juliomar, blz?

    Já sim. Foi Ok.

    Por isso mandei com Indy inicialmente pra gerar o json por um memo a título de teste. Agora tentei assim e tbm deu 'faltam parâmetros'.

    procedure TForm2.SpeedButton3Click(Sender: TObject);
    var
       Json: string;
       sResponse: string;
       JsonToSend: TStringStream;
       _idHttp : TIdHTTP;
       _SSLHandler : TIdSSLIOHandlerSocketOpenSSL;
       aBody: TStringList;
       aResponse: TMemoryStream;
    
    begin
       try
          try
             _idHttp := TIdHTTP.Create;
             aResponse := TMemoryStream.Create;
             aBody := TStringList.Create;
             _SSLHandler := TIdSSLIOHandlerSocketOpenSSL.Create(nil);
             _SSLHandler.SSLOptions.SSLVersions := [sslvTLSv1_2];
             _idHttp.IOHandler := _SSLHandler;
             _idHttp.HandleRedirects := True;
             _idHttp.Request.Clear;
             _idHttp.ProtocolVersion := pv1_1;
             _idHttp.ConnectTimeout := 15000;
             _idHttp.HandleRedirects := True;
             _idHttp.Request.AcceptEncoding := 'application/json,text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8';
             _idHttp.Request.Connection := 'keep-alive';
             _idHttp.Request.Accept := '*/*';
             _idHttp.Request.ContentType := 'application/json';
             Json := AnsiReplaceText(Memo1.Lines.Text, #13#10, '');
             JsonToSend := TStringStream.Create(Json, TEncoding.UTF8);
             _idHttp.Request.CustomHeaders.Add('Content-Type: application/json');
             sResponse := _idHttp.Post('https://painel.mailgrid.com.br/api', JsonToSend);
          except
                on e: Exception  do
                begin
                     ShowMessage(E.Message);
                end;
          end;
       finally
              JsonToSend.Free;
              aBody.Free;
              aResponse.Free;
              _SSLHandler.Free;
              _idHttp.Free;
       end;
       Memo2.Lines.Clear;
       Memo2.Lines.Text := sResponse;
    end;

     

    Mail.JPG

    Aliás, com esse código aí agora enviou, mas complica pra enviar anexos.

    No guia da API apenas informam:

    anexoContent -  arquivo codificado em base64 (Data URI) - Opcional

    anexoFileName - nome do arquivo a ser enviado - Opcional

    anexoType tipo Mime - do arquivo a ser anexado (ex: image/jpeg) - Opcional

     

  3. 1 hora atrás, Juliomar Marchetti disse:

    Testou lá com o postman?

    Opa Juliomar, blz?

    Já sim. Foi Ok.

    Por isso mandei com Indy inicialmente pra gerar o json por um memo a título de teste. Agora tentei assim e tbm deu 'faltam parâmetros'.

    procedure TForm2.SpeedButton3Click(Sender: TObject);
    var
       Json: string;
       sResponse: string;
       JsonToSend: TStringStream;
       _idHttp : TIdHTTP;
       _SSLHandler : TIdSSLIOHandlerSocketOpenSSL;
       aBody: TStringList;
       aResponse: TMemoryStream;
    
    begin
       try
          try
             _idHttp := TIdHTTP.Create;
             aResponse := TMemoryStream.Create;
             aBody := TStringList.Create;
             _SSLHandler := TIdSSLIOHandlerSocketOpenSSL.Create(nil);
             _SSLHandler.SSLOptions.SSLVersions := [sslvTLSv1_2];
             _idHttp.IOHandler := _SSLHandler;
             _idHttp.HandleRedirects := True;
             _idHttp.Request.Clear;
             _idHttp.ProtocolVersion := pv1_1;
             _idHttp.ConnectTimeout := 15000;
             _idHttp.HandleRedirects := True;
             _idHttp.Request.AcceptEncoding := 'application/json,text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8';
             _idHttp.Request.Connection := 'keep-alive';
             _idHttp.Request.Accept := '*/*';
             _idHttp.Request.ContentType := 'application/json';
             Json := AnsiReplaceText(Memo1.Lines.Text, #13#10, '');
             JsonToSend := TStringStream.Create(Json, TEncoding.UTF8);
             _idHttp.Request.CustomHeaders.Add('Content-Type: application/json');
             sResponse := _idHttp.Post('https://painel.mailgrid.com.br/api', JsonToSend);
          except
                on e: Exception  do
                begin
                     ShowMessage(E.Message);
                end;
          end;
       finally
              JsonToSend.Free;
              aBody.Free;
              aResponse.Free;
              _SSLHandler.Free;
              _idHttp.Free;
       end;
       Memo2.Lines.Clear;
       Memo2.Lines.Text := sResponse;
    end;

     

    Mail.JPG

  4. Olá pessoal.

    Estou tentando usar essa API : https://painel.mailgrid.com.br/api/api_smtp.pdf

    Tentei de várias maneiras, todas recebo que falta algum parâmetro.

    Com o Indy:

    procedure TForm2.SpeedButton4Click(Sender: TObject);
    var
       sResponse: string;
       JsonToSend: TStringStream;
       _idHttp : TIdHTTP;
       _SSLHandler : TIdSSLIOHandlerSocketOpenSSL;
       Params: TIdMultipartFormDataStream;

    begin
       try
          try
             _idHttp := TIdHTTP.Create;
             _SSLHandler := TIdSSLIOHandlerSocketOpenSSL.Create(nil);
             _SSLHandler.SSLOptions.SSLVersions := [sslvTLSv1_2];
             _idHttp.IOHandler := _SSLHandler;
             _idHttp.HandleRedirects := True;
             _idHttp.Request.Clear;
             _idHttp.ProtocolVersion := pv1_1;
             _idHttp.ConnectTimeout := 15000;
             _idHttp.HandleRedirects := True;
             _idHttp.Request.AcceptEncoding := 'application/json,text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8';
             _idHttp.Request.Connection := 'keep-alive';
             _idHttp.Request.Accept := '*/*';
             _idHttp.Request.ContentType := 'application/json';

             Params := TIdMultipartFormDataStream.Create;
             Params.AddFormField('host_smtp',vHost.Text);
             Params.AddFormField('usuario_smtp',vUser.Text);
             Params.AddFormField('senha_smtp',vSenhaSMTP.Text);
             Params.AddFormField('emailRemetente', vEmailRemet.Text);
             Params.AddFormField('emailDestino', '['+vEmailDest.Text+']');
             Params.AddFormField('assunto', vAssunto.Text);
             Params.AddFormField('mensagem', mMsg.Lines.Text);

             _idHttp.Request.CustomHeaders.Add('Content-Type: application/json');
             sResponse := _idHttp.Post('https://painel.mailgrid.com.br/api', Params);
          except
                on e: Exception  do
                begin
                     ShowMessage(E.Message);
                end;
          end;
       finally
              Params.Free;
              _SSLHandler.Free;
              _idHttp.Free;
       end;
       Memo2.Lines.Clear;
       Memo2.Lines.Text := sResponse;
    end;

     

    E com o REST:

    function TForm2.ExecuteWSTokenExemplo02: WideString;
    var
       Json: string;
       restClient: TRESTClient;
       restRequest: TRESTRequest;
       restResponse: TRESTResponse;
       JsonToSend: TStringStream;

    begin
        restClient := TRESTClient.Create('https://painel.mailgrid.com.br/api/');
        restRequest := TRESTRequest.Create(restClient);
        restResponse := TRESTResponse.Create(restClient);

        Json := AnsiReplaceText(Memo1.Lines.Text, #13#10, '');
        JsonToSend := TStringStream.Create(Json, TEncoding.UTF8);

        Memo2.Lines.Clear;

        Memo2.Lines.Add(JsonToSend.ToString);

        Memo2.Lines.Add(' ');
        Memo2.Lines.Add(' ');

        try
          try
            restClient.BaseURL := 'https://painel.mailgrid.com.br/api/';
            restClient.AcceptCharset := 'UTF-8';
            restClient.ContentType := 'application/json';
            restResponse.ContentType := 'application/json';
            restRequest.Client := restClient;
            restRequest.Method := rmPOST;
            restRequest.AcceptCharset := 'UTF-8';
            restRequest.Response := restResponse;

            restRequest.Params.Clear;
            restRequest.AddParameter('Content-Type','application/json',pkHTTPHEADER);

            restRequest.AddBody(JsonToSend);

            restRequest.Execute;

            result := restResponse.Content;
          except
            on e: Exception do
            begin
              result := 'Erro: ' + e.Message + ' JSON/TEXT: ' + restResponse.Content;
            end
          end;
        finally
          restRequest.Free;
          restResponse.Free;
          restClient.Free;
          JsonToSend.Free;
        end;
    end;

     

    Alguém pode dar uma luz?

    Desde já agradeço.

     

     

  5.  

    Em 28/02/2022 at 08:52, MarceloDev disse:

    Bom dia...

    É possível fazendo uma matriz tributária no seu software. Como a maioria têm a parte fiscal no cadastro de produtos e esses estão diretamente relacionados ao regime fiscal da empresa, acredito que seria o caso de desenvolver algo do zero.

    Sim, seria até mais interessante do zero pois o emissor está muito "remendado".

    Como é industria, é cheio detalhes. Tem estado como o MT e CE que o cálculo é completamente diferente. E tem até cliente que por causa de liminar conseguem tratamento diferenciado.

    Em 01/03/2022 at 15:38, Souza disse:

    Boa tarde amigo.
    tenho algo parecido.

    Vc define os parametros fiscais para calcular de origem do NCM ou da CFOP e ou misto das 2.

    Pode variar ambas.

  6. Algum colega tem algum fonte pra vender onde o próprio usuário pode criar suas templates pro modelamento de seu negócio?

    Ex: pra uma nota de remessa X o CST fica Y, desta ICMS mas não totaliza; é uma nota pra ZF cst Y, NCM Z, desconta ICMS do produto, etc; é nota com CFOP W, triangulada, recupera ST da entrada e desconta da saída, etc.

     

    Reforçando,  modelamento pelo usuário final.

  7. Em 17/01/2022 at 23:04, Juliomar Marchetti disse:

    Sim mas olhe na pasta de output de seu projeto.

    tenho certeza que ele está lá.

    de preferncia no instalador do acbr deixar somente a libxx pois assim evita que fique recompilando os componentes atraves de outros projetos.

    Bom dia Juliomar.

    Realmente tinha na pasta de output. Apaguei todas pastas outputs.

    Eliminei todos os search paths do projeto e fiz uma limpa nas lib search's tbm. Re-instalei o ACBr novamente limpando arquivos antigos novamente e deixando apenas a libxx.

    Ao dar um build no meu projeto tive esse problema "[dcc32 Fatal Error] frxClass.pas(12063): F2051 Unit ACBrNFeDANFEFR was compiled with a different version of frxClass.TfrxReport".

    Não tenho nenhuma versão do FastReport a mais, só a 5.6.2. A título de teste, troquei pelo DanfeFortes e funcionou.

    Agora consegui recompilar meu projeto, porém sem os componentes ACBr Fastreport.

    Não tenho problemas em usar os do Fortes e aparentemente está funcionando tudo normal.

    De qualquer jeito agradeço a atenção e a ajuda.

     

  8. 55 minutos atrás, Juliomar Marchetti disse:

    Tu tem em mais locais os fontes do acbr e também ele compilado

    faça uma limpeza e deixe somente uma pasta mesmo se existir mais de um delphi no seu windows

    SSD zerado, instalação Win e ACBr nova.

    Até apaguei a ACBr_WinCrypt.dcu pra ver se ia acusar falta ou tava pegando de algum local que esqueci.

    Mas nada, acusou falta normalmente. 

     

  9. Olá pessoal.

    Troquei meu SSD, instalei um Windows 10 e suas atualizações, instalei o meu XE8 e atualizei o ACBr.

    Executei a instalação pelo instalador, por via das duvidas apagando arquivos antigos e instalou normalmente.

    O que o corre é que ao dar um build na minha aplicação aparece: [dcc32 Fatal Error] ACBr_WinCrypt.pas(21489): F2051 Unit ACBrDFeWinCrypt was compiled with a different version of ACBr_WinCrypt.PCCERT_CONTEXT

    No meu note está normal e as minhas fontes vieram dele.

    Alguém pode me dar uma dica? 

    Grato.

  10. Pra complementar:

    - incluindo a unit "frxGradient" no meu emissor não deu mais crash. Não sei porque pois nunca declarei manualmente antes essa unit e sempre usei normalmente tanto relatórios do fast como a própria DANFE.

    - retirei o raise do retorno no caso de rejeição e continuo o processamento pelo retorno e passe a usar assim aparentemente sem maiores problemas.

     

     

    • Curtir 1
  11. Em 20/04/2020 at 10:24, Juliomar Marchetti disse:

    então olha nos seus fontes senão tem arquivos do ACBr dentro dele

    Em 20/04/2020 at 10:56, Daniel Simoes disse:

    Por favor anexe o Documento, que você está tentando Assinar

    Obrigado pela atenção Juliomar e Daniel.

    Separei o módulo de emissão de NFe do resto do meu sistema pra facilitar. 

    Passou a assinar, enviar e receber normalmente, mas qdo há rejeição, ao ser gerado há exceção (raise EACBrDFeException.CreateDef(MsgErro)) ele apresenta "Invalid class type cast" e eu não consigo prosseguir para fazer o tratamento dessa rejeição.

    Tentei trocar a classe pela padrão do SysUtil mas nada.

  12. Obrigado BigWings e Elton.

    No meu desktop (exatamente a mesma versão e configuração do Delphi, exceto que está sob Win 8.1,  ambas com o IDE FixPack) fiz agora a instalação e instalou normal. Eu estava fazendo no meu note.

    Realmente li sobre o erro interno e tal, mas realmente não acho nenhuma diferença nas duas instalações nem no procedimento que fiz pra atualizar ambos. Talvez algum corrompimento na instalação do Delphi já que o note é novo descartei problemas de hardware (q seria um estranhamento só dar problema nisso).

    Só de pensar em instalar tudo de novo no note já me dá arrepios...

    • Curtir 1
  13. Fiz uma atualização dia 9/4 (apenas para atualização pois fazia uns 2 meses que não atualizava mas estava tudo funcionando 100%) e dei um build no meu sistema, a partir daí comecei a ter problemas com a NFe.

    Então desinstalei todos os componentes, apaguei a pasta toda de fontes do ACBr, baixei tudo novamente, apaguei os arquivos atigos como administrador e rodei o instalador (ver 1.5.0.3).

    Instala tudo normal menos os componentes do Fastreport e do Fortes.

    Compiling package C:\Fontes\ACBrwc\Pacotes\Delphi\ACBrDFe\ACBrNFe\DANFE\NFe\Fast\ACBr_NFeDanfeFR.dpk
    "C:\Program Files (x86)\Embarcadero\Studio\16.0\bin\dcc32.exe" "C:\Fontes\ACBrwc\Pacotes\Delphi\ACBrDFe\ACBrNFe\DANFE\NFe\Fast\ACBr_NFeDanfeFR.dpk"
    Embarcadero Delphi for Win32 compiler version 29.0
    Copyright (c) 1983,2015 Embarcadero Technologies, Inc.
    C:\Fontes\ACBrwc\Fontes\ACBrDFe\ACBrNFe\DANFE\NFe\Fast\ACBrNFeDANFEFRDM.pas(42) Fatal: F2084 Internal Error: AV0050CF4B-W00400000-1
    Compilation failure
    Erro ao compilar o pacote "ACBr_NFeDanfeFR.dpk".
    Abortando... Ocorreram erros na compilação dos pacotes.

    Compiling package C:\Fontes\ACBrwc\Pacotes\Delphi\ACBrDFe\ACBrNFSe\DANFSE\Fortes\ACBr_NFSeDanfseRL.dpk
    "C:\Program Files (x86)\Embarcadero\Studio\16.0\bin\dcc32.exe" "C:\Fontes\ACBrwc\Pacotes\Delphi\ACBrDFe\ACBrNFSe\DANFSE\Fortes\ACBr_NFSeDanfseRL.dpk"
    Embarcadero Delphi for Win32 compiler version 29.0
    Copyright (c) 1983,2015 Embarcadero Technologies, Inc.
    C:\Fontes\ACBrwc\Fontes\ACBrDFe\ACBrNFSe\DANFSE\Fortes\ACBrNFSeDANFSeRL.pas(47) Fatal: F2084 Internal Error: AV00496D8E-W04B80000-1
    Compilation failure
    Erro ao compilar o pacote "ACBr_NFSeDanfseRL.dpk".
    Abortando... Ocorreram erros na compilação dos pacotes.

     

    Alguém pode me dar uma dica?

    Uso Win10 e Delphi XE8, Fastreport 5 e Fortes atualizado.

    Manualmente tbm não instalam esses componentes.

    Grato a todos.

  14. Obrigado pela atenção Daniel.

    No momento do envio. Não mudei nada no processo, quer dizer, alimento o componente e depois uso o método "Enviar" com apenas o número do lote. Não uso o "Assinar".

    Se mando apenas gravar o XML sem assinar faz normalmente.

     

  15. Bom dia a todos.

    Estava emitindo NFe, manifestando, etc normalmente, mas depois de atualizar semana passada comecei a receber "Access violation" na hora de emitir a NFe ou manifestar.

    Atualizei os fontes, desinstalei os componentes do XE8, usei o instalador apagando o conteúdo anterior e dei um build geral mas o erro persiste.

    Uso WinCrypt, mas mesmo com OpenSSL (copiei as DLL's da versão 1.1.x e apaguei as enteriores) dá o mesmo erro.

     

    Alguém teve o mesmo problema ou pode me dar uma dica? Nem que for voltar a uma versão anterior dos fontes?

  16. Em 08/09/2019 at 22:06, gss200610 disse:

    Isso que mata a gente é igual download do xml da nfe, programas que acessam canais que não temos acessos e sabe Deus como conseguem isso. ai chega final do mes que vai enviar documentos pra contabilidade e nota que consta como inutilizada no seu sistema ainda está em aberto na sefaz.

    Isso que mata a gente é igual download do xml da nfe, programas que acessam canais que não temos acessos e sabe Deus como conseguem isso. ai chega final do mes que vai enviar documentos pra contabilidade e nota que consta como inutilizada no seu sistema ainda está em aberto na sefaz.

    Vi que o software gratuito mantém o controle local, ou seja, realmente não atualiza se foi manifestada por outro prg, no máximo aparece como "download feito".

    É que essa argumentação de que o controle do manifesto deve ser exclusivamente pela aplicação é bizarra. Numa empresa grande mais de uma pessoa pode fazer este tipo de trabalho, e até mesmo um computador/servidor pode falhar e a aplicação deve ser reiniciada em algum outro equipamento, logo, é patético não existir mais uma consulta direta sobre o estado (manifesto, etc) de uma NFe.

    • Curtir 2
  17. 16 horas atrás, BigWings disse:

    O aplicativo gratuito usa uma versão não documentada do DistribuicaoDFe, uma versão 1.35, enquanto a versão documentada está na 1.01. É difícil saber como ele funciona.

    No portal da NFe aparece como manifestada?

    Opa BigWings obrigado pela atenção.

    Aparece como não manifestada, aí que tá.

    Recebo que a operação foi aceita e tal, mas se consulto no software gratuito aparece como não manifestada. Não sei se no outro dia ou sei lá qual o tempo depois vai aparecer como manifestada, mas pro cliente isso parece estranho.

  18. Pessoal, qdo manifesto pelo meu sistema usando o ACBr (modo produção evidentemente), recebo normal o retorno 135, porém se abro o programa gratuito e puxo as notas, ela aparece como não manifestada.

    Os servidores são diferentes? É um atraso normal? 

    Chefe ficou reclamando disso...

×
×
  • 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.