ZeusAutomacao / DFe.NET

Biblioteca para Geração de NFe(2.0, 3.10 e 4.0) e NFCe(3.10 e 4.0) e consumo dos serviços necessários à sua manutenção, conforme descritos em http://www.nfe.fazenda.gov.br/portal/principal.aspx
GNU Lesser General Public License v2.1
752 stars 472 forks source link

Como chamar a impressão da NFCe após a autorização ? #450

Closed rcoproc closed 7 years ago

rcoproc commented 7 years ago

Já tenho a NFce gerada , enviada e autorizada.

Como é que eu faço a impressão automática após esta autorização ???

Tenho que baixar algum XML novamente da receita já com o código de autorização ???

para poder imprimir ??? a impressão do exemplo de hoje só pega de arquivo físico . vejam `#region Carrega um XML com nfeProc para a variável

            var arquivoXml = Funcoes.BuscarArquivoXml();
            if (string.IsNullOrEmpty(arquivoXml))
                return;
            var proc = new nfeProc().CarregarDeArquivoXml(arquivoXml);
            if (proc.NFe.infNFe.ide.mod != ModeloDocumento.NFCe)
                throw new Exception("O XML informado não é um NFCe!");

            #endregion

            #region Exibe a NFe no webbrowser (não é ncessário fazer isso em seu sistema!)

            _nfe = proc.NFe;

            ExibeNfe();

            #endregion

            #region Abre a visualização do relatório para impressão

            var danfe = new DanfeFrNfce(proc, _configuracoes.ConfiguracaoDanfeNfce);
            danfe.Visualizar();`
Guaze commented 7 years ago

https://github.com/adeniltonbs/Zeus.Net.NFe.NFCe/issues/485

Guaze commented 7 years ago

Fiz esse código ontem!!!

if (MetroFramework.MetroMessageBox.Show(this, string.Format("Deseja emitir o cupom ?"), this.TitleMessage, MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { string diretorio = utils.CriarDiretorioNFCe( Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), Venda.Data);

                    if (protNFe != null & protNFe.infProt.cStat.Equals(100))
                    {
                        nfeProc = new NFe.Classes.nfeProc();
                        nfeProc.NFe = nfe;
                        nfeProc.protNFe = protNFe;

                        //Salvando o xml localmente
                        nfeProc.SalvarArquivoXml(diretorio + this.Venda.ChaveAcesso + "-nfe.xml");
                    }
                    else
                    {
                        //Houve algum problema com a nota ao enviar para Receita Federal
                        nfe.infNFe.ide.tpEmis = NFe.Classes.Informacoes.Identificacao.Tipos.TipoEmissao.teOffLine;

                        //Salvando o xml localmente
                        nfe.SalvarArquivoXml(diretorio + this.Venda.ChaveAcesso + "-nfe.xml");
                    }

                    nfceUtilities.ImprimirNFCe(nfeProc != null ?
                                                nfeProc.ObterXmlString()
                                                : nfe.ObterXmlString(), 0, 0);
                }

public void ImprimirNFCe(string arquivo, decimal troco, decimal totalPago) { NFe.Danfe.Nativo.NFCe.DanfeNativoNfce impr = new NFe.Danfe.Nativo.NFCe.DanfeNativoNfce( arquivo, configurationNFCe.ConfiguracaoDanfeNfce, configurationNFCe.ConfiguracaoCsc.CIdToken, configurationNFCe.ConfiguracaoCsc.Csc, troco, totalPago/, "Arial Black"/);

        impr.Imprimir(nomeImpressora: "HP Photosmart D110 series");
    }
Guaze commented 7 years ago

Só deveria está gravando o XML independente da vontade de imprimir. Só que já era tarde aí fiquei com preguiça. Irei ajustar isso!

:smile: