private void GeranNfe(VersaoServico versaoServico, ModeloDocumento modelo) { try { #region Gerar NFe var numero = Funcoes.InpuBox("Criar e Enviar NFe", "Número da Nota:"); if (string.IsNullOrEmpty(numero)) { throw new Exception("O Número deve ser informado!"); } _nfe = GetNf(Convert.ToInt32(numero), modelo, versaoServico); _nfe.Assina(); //Descomente a linha abaixo se a SEFAZ de sua UF já habilitou a NT2015.002 _nfe.infNFeSupl = new infNFeSupl() { qrCode = EnderecadorDanfeNfce.ObterUrlQrCode(_nfe, _configuracoes.ConfiguracaoDanfeNfce) }; _nfe.Valida(); #endregion ExibeNfe(); var dlg = new SaveFileDialog { FileName = _nfe.infNFe.Id.Substring(3), DefaultExt = ".xml", Filter = "Arquivo XML (.xml)|*.xml" }; var result = dlg.ShowDialog(); if (result != true) { return; } var arquivoXml = dlg.FileName; _nfe.SalvarArquivoXml(arquivoXml); } catch (Exception ex) { if (!string.IsNullOrEmpty(ex.Message)) { Funcoes.Mensagem(ex.Message, "Erro", MessageBoxButton.OK); } } }
private void GeranNfe(VersaoServico versaoServico, ModeloDocumento modelo) { try { #region Gerar NFe var numero = Funcoes.InpuBox(this, "Criar e Enviar NFe", "Número da Nota:"); if (String.IsNullOrEmpty(numero)) { throw new Exception("O Número deve ser informado!"); } _nfe = GetNf(Convert.ToInt32(numero), modelo, versaoServico); _nfe.Assina().Valida(); #endregion ExibeNfe(); var dlg = new SaveFileDialog { FileName = _nfe.infNFe.Id.Substring(3), DefaultExt = ".xml", Filter = "Arquivo XML (.xml)|*.xml" }; var result = dlg.ShowDialog(); if (result != true) { return; } var arquivoXml = dlg.FileName; _nfe.SalvarArquivoXml(arquivoXml); } catch (Exception ex) { if (!String.IsNullOrEmpty(ex.Message)) { Funcoes.Mensagem(ex.Message, "Erro", MessageBoxButton.OK); } } }
private void ExibeNfe() { _nfe.SalvarArquivoXml(_path + @"\tmp.xml"); WebXmlNfe.Navigate(_path + @"\tmp.xml"); TabItemNfe.IsSelected = true; }
private void BtnCriareEnviar3_Click(object sender, RoutedEventArgs e) { try { #region Cria e Envia NFe var numero = Funcoes.InpuBox("Criar e Enviar NFe", "Número da Nota:"); if (string.IsNullOrEmpty(numero)) { throw new Exception("O Número deve ser informado!"); } var lote = Funcoes.InpuBox("Criar e Enviar NFe", "Id do Lote:"); if (string.IsNullOrEmpty(lote)) { throw new Exception("A Id do lote deve ser informada!"); } _nfe = GetNf(Convert.ToInt32(numero), _configuracoes.CfgServico.ModeloDocumento, _configuracoes.CfgServico.VersaoNFeAutorizacao); _nfe.Assina(); //não precisa validar aqui, pois o lote será validado em ServicosNFe.NFeAutorizacao //A URL do QR-Code deve ser gerada em um objeto nfe já assinado, pois na URL vai o DigestValue que é gerado por ocasião da assinatura //Descomente a linha abaixo se a SEFAZ de sua UF já habilitou a NT2015.002 _nfe.infNFeSupl = new infNFeSupl() { qrCode = EnderecadorDanfeNfce.ObterUrlQrCode(_nfe, _configuracoes.ConfiguracaoDanfeNfce) }; //Define a URL do QR-Code. var servicoNFe = new ServicosNFe(_configuracoes.CfgServico); var retornoEnvio = servicoNFe.NFeAutorizacao(Convert.ToInt32(lote), IndicadorSincronizacao.Assincrono, new List <Classes.NFe> { _nfe }, true /*Envia a mensagem compactada para a SEFAZ*/); TrataRetorno(retornoEnvio); if (retornoEnvio.Retorno.infRec.nRec != string.Empty) { try { #region Consulta Recibo de lote servicoNFe = new ServicosNFe(_configuracoes.CfgServico); var retornoRecibo = servicoNFe.NFeRetAutorizacao(retornoEnvio.Retorno.infRec.nRec); TrataRetorno(retornoRecibo); //var dlg = new SaveFileDialog //{ // FileName = _nfe.infNFe.Id.Substring(3), // DefaultExt = ".xml", // Filter = "Arquivo XML (.xml)|*.xml" //}; //var result = dlg.ShowDialog(); //if (result != true) return; //var arquivoXml = dlg.FileName; string ch = _nfe.infNFe.Id.Substring(3); _nfe.SalvarArquivoXml(_path + "\\NFCe\\" + ch + ".xml"); Prot(_path + "\\NFCe\\" + ch + ".xml"); #endregion } catch (Exception ex) { if (!string.IsNullOrEmpty(ex.Message)) { Funcoes.Mensagem(ex.Message, "Erro", MessageBoxButton.OK); } } } #endregion } catch (Exception ex) { if (!string.IsNullOrEmpty(ex.Message)) { Funcoes.Mensagem(ex.Message, "Erro", MessageBoxButton.OK); } } }