Ir para conteúdo
  • Cadastre-se

dev botao

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


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

Recommended Posts

Postado

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.


 

  • Administradores
Postado

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 !!

Postado

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.

  • Curtir 2

 

Postado (editado)
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

Editado por João Paulo Pires
Postado

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

  • Curtir 1

 

Postado
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:\")

Postado
2 minutos atrás, Rafael Dias disse:

Cara não tem nenhuma chamada para o método GravarXml no seu log.

ja vi o erro aqui parceiro, burrice minha, na minha classe onde eu gero o ini com os dados da nfe, eu ja dou o comando direto para enviar o xml. e como eu quero gerar o ini somente para visualizar.

  • Curtir 2
Postado
12 minutos atrás, Rafael Dias disse:

Cara não tem nenhuma chamada para o método GravarXml no seu log.

ainda nao gravou o xml na pasta temp. o q pode ser?

nfe.GravarXml(CInt(0), "Teste.xml", "D:\Empresa PiresSoftware\Softwares\SAE 4.2\temp")

Postado
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)
 

Postado
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.

Postado

@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

  • Curtir 1
  • Solution
Postado

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

  • Curtir 2

 

Postado
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.

  • Este tópico foi criado há 1789 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.