Ir para conteúdo
  • Cadastre-se

Rodrigo Coradi

Membros
  • Total de ítens

    77
  • Registro em

  • Última visita

Posts postados por Rodrigo Coradi

  1. 1 hora atrás, cueiogordo disse:

    Você já atualizou os esquemas?

    Pegou os esquemas que vem com o ACBr (\ACBr\Exemplos\ACBrDFe\Schemas\NFe) e atualizou?

    Outra coisa, você usa CTe? Se usar, separar os esquemas de pasta, pois o XML de distribuição de documento da NFe é diferente do CTe.

    @cueiogordo é estranho, porque ele deu certo uma vez, ao a próxima deu erro de schema, ai tentei de novo e deu certo.

  2. 8 minutos atrás, cueiogordo disse:

    Você já atualizou os esquemas?

    Pegou os esquemas que vem com o ACBr (\ACBr\Exemplos\ACBrDFe\Schemas\NFe) e atualizou?

    Outra coisa, você usa CTe? Se usar, separar os esquemas de pasta, pois o XML de distribuição de documento da NFe é diferente do CTe.

    Atualizei os SCHEMAS de acordo com o que você citou e aparentemente deu certo sim.

    O estranho é que em um modo dava certo e em outro não, mas tranquilo, agora deu certo.
    Muito obrigado

  3. Bom dia,

    Ao realizar a distruição DFE pela chave de acesso (abaixo):

    ACBrNFe.DistribuicaoDFePorChaveNFe(iUF,sCNPJ,sChaveAcesso) //falha no schema

    o SEFAZ me retorna Falha no Schema XML, porém se realizo a consulta da Distribuicao sem ser pela chave, mas pelo NSU, ele não retorna erro e faz a consulta corretamente.

     DM_NFE.ACBrNFe.DistribuicaoDFe(iUF,sCNPJ,sNSU,'') //sem falha no schema


    Alguém já passou por isso ? Sabe de algo em que possa ajudar ?

    Segue arquivos xmls em anexo referente ao envio e retorno.

    Obrigado e aguardo.

    20170320085910-con-dist-dfe.xml

    20170320085913-dist-dfe.xml

  4. 1 hora atrás, BigWings disse:

    Está usando IBX?

    Ainda estou lidando com os vários bugs dele com a corrupção de caracteres e arquivos texto, e estudando a migração para FireDac.

    No IBX eu consigo salvar o certificado como arquivo no banco e recuperar da seguinte forma:

    
    CREATE TABLE ARQUIVOS (
        ID         INTEGER,
        NOME       VARCHAR(40),
        HASH_MD5   CHAR(32),
        ARQUIVO    BLOB SUBTYPE 0 SEGMENT SIZE 80
    );
    ALTER TABLE ARQUIVOS ADD CONSTRAINT ARQUIVOS_PK PRIMARY KEY (ID);

    Para salvar o arquivo no banco:

    
    IBQuery1.ParamByName('ARQUIVO').LoadFromFile(Filename, ftBlob);

    E recuperar:

    
    TBlobField(IBQuery1.FieldByName('ARQUIVO')).SaveToFile(Filename);

     

    Fiz também dessa forma que você disse, porém estou utilizando o Mysql, e deu certo comigo.

  5. 5 horas atrás, André Ferreira de Moraes disse:

    Leia o arquivo e salve no seu banco.

    
    var
      FS: TFileStream;
    begin
      FS := TFileStream.Create(PFXFile, fmOpenRead);
      try
        FS.ReadAnsiString; //SALVE NO SEU BANCO;
      finally
        FS.Free;
      end;
    end;

    Para recuperar o arquivo, use:

    
    ACBrNFe1.Configuracoes.Certificados.DadosPFX := Campo_Gravado_no_BD;

     

    @André Ferreira de Moraes consegui recuperar dessa forma o ReadAnsiString, porém ao salvar no banco de dados ele se perde nos caracteres especiais.
    Não sei se é meu Banco ou o próprio delphi,ou tipo de Dado.
    Estou utilizando o Mysql 5, o campo é um LongText (utf8).
    Se eu copio e colo o resultado retornado na mão, o banco de dados aceita, porém quando dou o POST do delphi, ele se perde nos caracteres especias e não salva corretamente.
    Da mesma forma no momento de recuperar, ele me retorna o valor errado (mesmo salvando na mão o valor correto no banco).

  6. 3 minutos atrás, Arrobba Sistemas disse:

    Utilizo o Delphi XE5 e não encontrei a seguente função:

    FS.ReadAnsiString; //SALVE NO SEU BANCO;

    Alguém sabe me dizer se foi alterado essa parte no XE5 quando se utiliza FileStream?

    Da seguinte forma:

    sDadosPFX := ReadStrFromStream(FS,FS.Size); //de USES no pacote synautil

     

  7. 1 hora atrás, André Ferreira de Moraes disse:

    Leia o arquivo e salve no seu banco.

    
    var
      FS: TFileStream;
    begin
      FS := TFileStream.Create(PFXFile, fmOpenRead);
      try
        FS.ReadAnsiString; //SALVE NO SEU BANCO;
      finally
        FS.Free;
      end;
    end;

    Para recuperar o arquivo, use:

    
    ACBrNFe1.Configuracoes.Certificados.DadosPFX := Campo_Gravado_no_BD;

     

    Obrigado @André Ferreira de Moraes vou testar dessa forma

  8. 47 minutos atrás, André Ferreira de Moraes disse:

    Não.

    Esse 

    ACBrNFe1.Configuracoes.Certificados.DadosPFX

    pelo que entendi é a chave privada do certificado (A1), correto ?
    Eu passando uma vez o caminho do certificado, é possível me retornar esse DadosPFX sem estar criptografado ?
    Porque pelo que fui depurando no Acbr eu encontrei o ponto em que ele gera esse registro descriptografado com EncodeBase64 , porém tem uma forma de me retornar isso para salvar no banco ?

  9. 1 hora atrás, sossystem disse:

    Se vc usa CAPICOM somente como já mencionado, atraves de uma aplicação central. Mas se vc usar a OpenSSL, basta vc gravar o arquivo pfx no seu banco, junto com a senha, e quando for utilizar em qualquer maquina pode re-cria-lo localmente, pois a instalação não é necessaria, apenas o caminho do pfx e a senha do mesmo.

     

    2 minutos atrás, André Ferreira de Moraes disse:

    Com OpenSSL basta salvar o conteúdo do arquivo no banco de dados e informá-lo na propriedade DadosPFX.

    
    ACBrNFe1.Configuracoes.Geral.SSLLib := libOpenSSL;
    ACBrNFe1.Configuracoes.Certificados.DadosPFX := Certificado;
    ACBrNFe1.Configuracoes.Certificados.Senha := Senha;

     

    Obrigado @André Ferreira de Moraes e @sossystem pelas informações, vai ajudar bastante.
    Eu estava pensando nisso mesmo, só queria saber se daria certo por se tratar de certificado digital a questão de serializar o arquivo e salvar no banco de dados.

    Vou testar então.
    Agora só vou correr atrás para serializar o arquivo no banco de dados.

    Só uma dúvida @André Ferreira de Moraes , depois de salvar o arquivo no banco de dados, para passar 

    ACBrNFe1.Configuracoes.Certificados.DadosPFX := Certificado;

    eu preciso gerar ele localmente na máquina correto ?


    Muito obrigado.

  10. Boa noite,

    Estou com a necessidade de usar a manifestação do destinatário, porém eu precisava poder usar em qualquer computador e não somente no que esta o certificado digital (A1).
    Seria possível alguma forma de serializar ele no banco de dados ou alguma outra forma de realizar isso?
    Alguém já fez algo parecido?

    Obrigado e aguardo.

  11. Boa tarde,

    Ao realizar a distribuição como abaixo:

    if DM_NFE.ACBrNFe.DistribuicaoDFe(iUF,sCNPJ,'0','') then

    Eu estou utilizando um loop para pegar do último NSU retornado até o max (de 50 em 50 notas né, como é retornado).
    Porém ele faz o loop, ai de repente na 3ª vez por exemplo, ele realiza o comando e não segue, é como se abortasse mas não desse nenhum erro na tela.
    E como podem ver, eu usei um IF para ver se irá executar ou não, porém quando da esse problema de "abortar", ele não cai nem no ELSE do if, ele simplesmente aborta a operação.
    Alguém já viu isso e poderia ajudar?

    E também não tem uma sequência de ser sempre na 3ª vez, pode ser na 2ª, ou na 5ª....ele simplesmente aborta sem dar erro nem nada, e nem mesmo cair no else.

    Obrigado e aguardo.

  12. 12 horas atrás, BigWings disse:

    Boa noite,

    Você pode testar a propriedade Schema do retorno.

    
    var
      DFe: TdocZipCollectionItem;
    begin
    
    [...]
    
      DFe := ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items[I];
    
      case DFe.schema of
        schprocNFe: ;  // NFe completa
        schresNFe: ;  // NFe resumo
        schresEvento: ; // Evento resumo
        schprocEventoNFe: ; // Evento completo
      end;
    
    end;

     

    Obrigado BigWings, vou testar dessa forma.

  13. Boa tarde,

    Tenho a seguinte dúvida quanto ao retorno do comando DistribuicaoDfe(...);
    Quando uso ele, me retorna o XML resumido ou Completo, porém tem alguma forma de sabermos qual esta retornando ?
    Eu vi que existe a variável:

    ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items[x].XML

    porém é garantido que ela só terá valor se o XML for o completo ? ou ela retorna o XML mesmo sendo completo ou resumido ?

    Se existe alguma forma de saber, alguém poderia ajudar por favor?

    Obrigado e aguardo.

  14. Em 18/01/2017 at 10:33, robert thallisson lopes disse:

    sobre a questão de download tem como setar o diretório onde os xml baixados serão salvos;

    Sim.

    AcbrNFE1.Configuracoes.Arquivos.DownloadNFe.PathDownload := (LOCAL);

  15. Em 02/03/2017 at 17:11, evandromira disse:

    Estou começando a mexer com distribuicaodfe também e estou passando ACBrNFe1.DistribuicaoDFe(CUF, CNPJ, '0', ''); e o retorno é sempre 137, não traz nada e sempre a resposta fica com ultnsu=26 e maxnsu=26, sabem pq?

    Obrigado

    Você esta consultando em homologação ou produção ?
    Em homologação também não consegui, somente deu certo realizando direto em Produção.

    • Curtir 1
  16. Realizando a primeira DistribuicaoDFe, passando os parametros de aUltNSU 0 e ANSU = '', onde irá retornar a listagem das notas, dessas notas que retornou, tem como sabermos a situação da Manifestação ?
    Nem que não seja nesse momento, mas depois de ser feito essa distribuicao, é possível consultar isso ? Pela chave de acesso, pelo NSU, ou de alguma outra forma ?
    No caso ainda não possuo o XML completo, apenas o RESUMO. 
    Se alguém conseguiu ou tem uma forma de fazer isso ajudaria bastante, pois é algo novo que estamos fazendo e de início será feito a listagem dos 3 meses de notas, e sem saber quais estão manifestadas ou não, ficará complicado.

    Obrigado.

  17. 1 minuto atrás, Leandro Vignoto disse:

    Deve ter outras formas de saber.

    Eu verifico qual o schema utilizado no processamento e por enquanto resolve.

                    if AcbrNfe.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items.schema = schprocNFe Then // significa que já retornou a nota processada
                    Begin
                      AcbrNfe.NotasFiscais.Clear;
                      AcbrNfe.NotasFiscais.LoadFromString(localAcbrNfe.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items.InfZip);

                    End;
     

    Att

    Leandro

    Obrigado Leandro, vou testar dessa forma.

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

    não é distribuição jovem

    é com o xml da nota original e com o certificado dela!

    Certo, entendi.
    Mas precisava saber mesmo através da Distribuicao se teria como, pelos eventos ou algo assim, mas se não tem, tudo bem.

    Obrigado.

  19. Em 23/02/2017 at 09:29, Reinaldo Silveira disse:

    BigWings, foi exatamente essa a solução que eu acabei de encontrar (não conhecia esse método pela chave).

    1. Consulto as NF destinadas pelo último NSU: ACBrNFe1.DistribuicaoDFePorUltNSU(uf, cnpj, nsu);
    2. Realizo a manifestação do destinatário;
    3. Consulto novamente, mas agora pela chave e não mais pelo NSU específico: ACBrNFe.DistribuicaoDFePorChaveNFe(uf, cnpj, chave);

    Não sei quanto ao delay, mas para a nota em questão está retornando o xml completo na consulta pela chave. Vou fazer mais alguns testes.

     

    Obrigado a todos!

    @Reinaldo Silveira o arquivo XML que esta retornando, você consegue saber se é o Resumo ou se é o correto? Ou só pelo fluxo que esta fazendo já é o correto ?

  20. 20 minutos atrás, Juliomar Marchetti disse:

    Basta consultar com o xml que vai vir todos os eventos atrelados a ela.

    Certo.
    De que forma é feito a consulta com o XML usando o DistribuicaoDFe?
    Porque na verdade eu até encontrei algumas propertys referente aos eventos, porém sempre quando uso a Distribuicao, me retorna apenas eventos de CCE e nenhum de manifestação.
    Não sei se tenho que percorrer alguma lista ou algo assim.

    Poderia ajudar por favor?

    Obrigado

  21. Boa tarde,

    Procurei em alguns tópicos porém são do meio do ano passado para trás.
    Alguém já conseguiu uma forma de retornar se a nota já foi manifestada ou não com a DistribuicaoDFe?
    Pois na verdade uma forma de saber é através do XML, se for resumido, a nota não foi manifestada ainda, porém gostaria de saber se alguém já conseguiu algo sem ser dessa forma.

    E também há uma forma de saber se o XML é o RESUMO ou é COMPLETO ?

    Obrigado e aguardo.

    • Obrigado 1
  22. 1 minuto atrás, BigWings disse:

    Desde que faça a consulta informando o último NSU não deve dar consumo indevido.

    Pra saber se preciso fazer novas consultas apenas testo o cStat, caso seja 138 chamo novamente o DistribuicaoDFe, caso seja 137 encerro a consulta. 

    Ok, foi o que imaginei mesmo.
    Obrigado.

  23. Certo, entendi.

    No site deles eles falam uma coisa e nos retornos deles eles mandam outra coisa.
    Mas ok, vamos assim mesmo.

    Obrigado novamente.

    Outra dúvida, eu até encontrei algumas argumentações em outros tópicos.
    Quando realizo a primeira consulta sem os parâmetros, ele irá me retornar uma lista dos 3 últimos meses porém apenas 50 notas correto ?

    Para eu conseguir pegar TODAS as notas desse período, eu teria que pegar o último NSU retornado dessas 50 e ir consultando até o MAX NSU da primeira consulta, correto ?

    Porém não corro o risco de no meio desse processo, o SEFAZ me retornar com Uso Indevido ?

    Vocês estão fazendo de alguma outra forma a primeira vez que roda no cliente a aplicação?

     

    Obrigado

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