Jump to content

dev botao

Como fazer uma Pré-Visualização antes de Autorizar a NFe


João Paulo Pires
Go to solution Solved by Rafael Dias,
  • Este tópico foi criado há 1598 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

boa tarde, apareceu essa demanda no meu sistema, q ja estou usando a ACBrLib com VB6.

Um cliente meu me solicitou para que antes de enviar a NFe para o sefaz, ele pudesse visualizar o DANFE da Mesma, como eu faço para criar o XML, e depois salvar esse XML em uma pasta Temporaria, e em seguida, Visualizar o XML?

ja tentei alguns comandos assim:


    nfe.LimparLista
    nfe.CarregarINI (arquivoIni)
    nfe.Imprimir

 

este funciona porem ele altera o xml e aparece no DANFE "NFe não enviada ao SEFAZ" 

ou seja, se a NFe ja tiver sido AUTORIZADA, depois caso o cliente for imprimir novamente vai aparecer isso.


 

Link to comment
Share on other sites

  • Administradores

Boa tarde.

Mas porque ele iria imprimir um documento ainda não autorizado?

Att.

Consultora SAC ACBr

Juliana Tamizou

Gerente de Projetos ACBr / Diretora de Marketing AFRAC
Ajude o Projeto ACBr crescer - Seja Pro

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

Link to comment
Share on other sites

22 minutos atrás, Juliana Tamizou disse:

Boa tarde.

Mas porque ele iria imprimir um documento ainda não autorizado?

Att.

tenho um cliente que quer ver a NFe na tela, em Formato de Danfe com os campos preenchidos, antes de Enviar ao sefaz. para conferir se esta certo os dados, vai entender né. rs

 

21 minutos atrás, Rafael Dias disse:

Esta frase só aparece se a NFe não tiver protocolo de autorização, se você enviar a NFe o protocolo será gerado e esta frase não vai aparecer.

Se quiser pegar o xml da NFe depois de carregar o ini pasta usar a função ObterXml ou GravarXml.

a funçao obter xml eu consegui, porém grava no mesmo local onde esta os XML autorizados, ou seja, substitui os xml, isso eu não quero fazer, pois na hora de enviar para a contabilidade pode dar problema.
a função gravar xml, nao consigo usar ela, pode me da um exempo de como fazer isso, pois eu passo assim:

    nfe.LimparLista
    nfe.CarregarINI (arquivoIni) ' até aqui funciona
    nfe.GravarXml(0, "Teste", "C:\") ' aqui ja nao funciona e da erro na função.erro_vb1.png.e59d64610b4b0a40e01ba3be0fca51b4.pngerro_vb.png.590778b36403e9c6c8190211b3a5a0a2.png

Edited by João Paulo Pires
Link to comment
Share on other sites

12 minutos atrás, Rafael Dias disse:

A função ObterXml não grava nada amigo você esta fazendo algo errado, quem grava é a função GravarXml.

E a sua da dando erro pois você não especificou a extensão, no caso seria Teste.xml

     estou usando esses 3 comandos e ta me retornando, como se eu estivesse enviando a nfe para o sefaz, dando retorno de duplicidade na nfe.

  segue os logs: retorno-20200103.iniACBrLibNFE-20200103.log

     nfe.LimparLista
    nfe.CarregarINI (arquivoIni)
    SetResposta nfe.GravarXml(0, "Teste.xml", "C:\")

Link to comment
Share on other sites

1 minuto atrás, Rafael Dias disse:

Acabei de testar aqui com o demo em VB6 e gerou normalmente.

O path informado existe ?

sim existe, olha so como eu fiz agora.
 

    Dim local_xml As String
    Dim nome_xml As String
    
    local_xml = "D:\Empresa PiresSoftware\Softwares\SAE 4.2\temp"
    nome_xml = "Teste.xml"
    
    instancia_dll
    
    nfe.LimparLista
    nfe.CarregarINI (arquivoIni)
    SetResposta nfe.GravarXml(0, nome_xml, local_xml)
 

Link to comment
Share on other sites

3 minutos atrás, Rafael Dias disse:

esse erro ai é pq tu ta usando o SetRetorno sendo que a função GravarXml não tem retorno é uma Sub.

Ai da erro mesmo.

certo, e como ficaria?

ja tentei assim:

resposta = nfe.GravarXml(0, nome_xml, local_xml)

assim:

nfe.GravarXml(0, nome_xml, local_xml)

as duas opções me retorna o mesmo erro.

Link to comment
Share on other sites

@Daniel Simoes e @Rafael Dias, eu descobri o erro, esta na classe ACBrNFe.
 

'Erro esta aqui pois é uma SUB e deveria ser um Public Function foi só alterar q funcionou.

Public Sub GravarXml(ByVal AIndex As Long, _
                     Optional ByVal eNomeArquivo As String = "", _
                     Optional ByVal ePathArquivo As String = "")
                     
    Dim retorno   As Long
    retorno = NFE_GravarXml(AIndex, eNomeArquivo, ePathArquivo)
    CheckResult retorno
    
End Sub

  • Like 1
Link to comment
Share on other sites

  • Solution

Não deveria não, pois não tem retorno, aqui funciona corretamente sem esta alteração.

Outra coisa Sub os parâmetros não ficam entre Parenteses a forma correta de usar é assim.

nfe.GravarXml 0, "Teste.xml", App.Path

e não assim

nfe.GravarXml(0, "Teste.xml", App.Path)

isso é apenas para functions

  • Like 2

 

Link to comment
Share on other sites

3 horas atrás, Rafael Dias disse:

Não deveria não, pois não tem retorno, aqui funciona corretamente sem esta alteração.

Outra coisa Sub os parâmetros não ficam entre Parenteses a forma correta de usar é assim.


nfe.GravarXml 0, "Teste.xml", App.Path

e não assim


nfe.GravarXml(0, "Teste.xml", App.Path)

isso é apenas para functions

vou testar assim, pode ser isso tbm.

Link to comment
Share on other sites

  • Este tópico foi criado há 1598 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Guest
This topic is now closed to further replies.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.