private void BtnCarregaXmlEnvia_Click(object sender, RoutedEventArgs e) { try { var lote = Funcoes.InpuBox(this, "Criar e Enviar NFe", "Id do Lote:"); if (String.IsNullOrEmpty(lote)) { throw new Exception("A Id do lote deve ser informada!"); } BtnImportarXml_Click(sender, e); _nfe.Assina(); //não precisa validar aqui, pois o lote será validado em ServicosNFe.NFeAutorizacao var servicoNFe = new ServicosNFe(_configuracoes.CfgServico); var retornoEnvio = servicoNFe.NFeAutorizacao(Convert.ToInt32(lote), IndicadorSincronizacao.Assincrono, new List <Classes.NFe> { _nfe }); TrataRetorno(retornoEnvio); } catch (Exception ex) { if (!String.IsNullOrEmpty(ex.Message)) { Funcoes.Mensagem(ex.Message, "Erro", MessageBoxButton.OK); } } }
/// <summary> /// Responsavel por Enviar NFe para Sefaz /// </summary> /// <param name="cFgServico"></param> /// <param name="numLote"></param> /// <param name="nfe"></param> /// <returns></returns> public RetornoNFeAutorizacao EnviarNFe(int numLote, Classes.NFe nfe, ConfiguracaoServico cFgServico) { //nfe.Assina(cFgServico); //não precisa validar aqui, pois o lote será validado em ServicosNFe.NFeAutorizacao var servicoNFe = new ServicosNFe(cFgServico); var retornoEnvio = servicoNFe.NFeAutorizacao(numLote, IndicadorSincronizacao.Assincrono, new List <Classes.NFe> { nfe }, false /*Envia a mensagem compactada para a SEFAZ*/); var recibo = servicoNFe.NFeRetAutorizacao(retornoEnvio.Retorno.infRec.nRec); var cStat = this.VerificarcStat(recibo.RetornoCompletoStr, "protNFe", "infProt"); if (cStat == "100") { //Salva NFe+protNFe na tag nfeProc apos autorização da NFe this.AdicionarNFeProc(nfe.infNFe.Id.Substring(3), nfe, cFgServico); } if (nfe.infNFe.ide.mod == ModeloDocumento.NFCe) { this.SalvarXmlArquivo(nfe.infNFe.Id.Substring(3) + "-nfce", nfe.ObterXmlString(), cFgServico.tpAmb); } else { this.SalvarXmlArquivo(nfe.infNFe.Id.Substring(3) + "-nfe", nfe.ObterXmlString(), cFgServico.tpAmb); } return(retornoEnvio); }
/// <summary> /// /// </summary> /// <param name="numLote"></param> /// <param name="nfe"></param> /// <returns></returns> public RetornoNFeAutorizacao EnviarNFe(Int32 numLote, Classes.NFe nfe) { nfe.Assina(); //não precisa validar aqui, pois o lote será validado em ServicosNFe.NFeAutorizacao var servicoNFe = new ServicosNFe(ConfiguracaoServico.Instancia); return(servicoNFe.NFeAutorizacao(numLote, IndicadorSincronizacao.Assincrono, new List <Classes.NFe> { nfe })); }
private static async Task FuncaoEnviaNfeAssincrono() { try { #region Cria e Envia 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!"); * * var lote = Funcoes.InpuBox(this, "Criar e Enviar NFe", "Id do Lote:"); * if (string.IsNullOrEmpty(lote)) throw new Exception("A Id do lote deve ser informada!");*/ //parametros string numero = "123"; string lote = "321"; var versaoServico = _configuracoes.CfgServico.VersaoNFeAutorizacao; var modelo = _configuracoes.CfgServico.ModeloDocumento; //gera o objeto NFe var nfe = GetNf(Convert.ToInt32(numero), modelo, versaoServico); nfe.Assina(); //apenas para nfce /*if (nfe.infNFe.ide.mod == ModeloDocumento.NFCe) * { * nfe.infNFeSupl = new infNFeSupl(); * if (versaoServico == VersaoServico.Versao400) * nfe.infNFeSupl.urlChave = nfe.infNFeSupl.ObterUrlConsulta(nfe, _configuracoes.ConfiguracaoDanfeNfce.VersaoQrCode); * nfe.infNFeSupl.qrCode = nfe.infNFeSupl.ObterUrlQrCode(nfe, _configuracoes.ConfiguracaoDanfeNfce.VersaoQrCode, configuracaoCsc.CIdToken, configuracaoCsc.Csc); * }*/ nfe.Valida(); //envia via req ServicosNFe servicoNFe = new ServicosNFe(_configuracoes.CfgServico); var retornoEnvio = servicoNFe.NFeAutorizacao(Convert.ToInt32(lote), IndicadorSincronizacao.Assincrono, new List <Classes.NFe> { nfe }, false /*Envia a mensagem compactada para a SEFAZ*/); OnSucessoSync(retornoEnvio); #endregion } catch (ComunicacaoException ex) { //Faça o tratamento de contingência OffLine aqui. throw ex; } catch (ValidacaoSchemaException ex) { throw ex; } catch (Exception ex) { throw ex; } }
public void EnviarNfce(NFe.Classes.NFe nfe) { var servicoNFe = new ServicosNFe(CfgServico); var lote = 1; servicoNFe.NFeAutorizacao(Convert.ToInt32(lote), IndicadorSincronizacao.Assincrono, new List <NFe.Classes.NFe> { nfe }, true); }
public override RetornoNFe Emitir() { var servicoNFe = new ServicosNFe(null /*_configuracoes.CfgServico*/); var retornoEnvio = servicoNFe.NFeAutorizacao(Convert.ToInt32(Identificacao.Serie), IndicadorSincronizacao.Sincrono, null /*new List<Classes.NFe> { _nfe }*/, false); //Para consumir o serviço de forma síncrona, use a linha abaixo: //var retornoEnvio = servicoNFe.NFeAutorizacao(Convert.ToInt32(lote), IndicadorSincronizacao.Sincrono, new List<Classes.NFe> { _nfe }, true/*Envia a mensagem compactada para a SEFAZ*/); return(null); }
public void GerarXmlNfe() { // EXERCICIO: trate os retornos da Sefaz e armazene o status da nota de acordo NFeSelected.StatusNota = 4; SalvarAtualizarNFe(); infNFe InfNFe = new infNFe { versao = Auxiliar.VersaoServicoParaString(_configuracoes.CfgServico.VersaoNFeAutorizacao), ide = GetIdentificacao(), emit = GetEmitente(), transp = GetTransporte() }; if (NFeSelected.NfeDestinatario.CpfCnpj != null) { InfNFe.dest = GetDestinatario(); } for (var i = 0; i < 1; i++) { InfNFe.det.Add(GetDetalhe(i, InfNFe.emit.CRT)); } InfNFe.total = GetTotal(); _nfe = new NFe.Classes.NFe(); _nfe.infNFe = InfNFe; _nfe.Assina(); string nomeArquivoXml = @"C:\T2Ti\NFe\XML\" + NFeSelected.ChaveAcesso + NFeSelected.DigitoChaveAcesso + ".xml"; _nfe.SalvarArquivoXml(nomeArquivoXml); var servicoNFe = new ServicosNFe(_configuracoes.CfgServico); var retornoEnvio = servicoNFe.NFeAutorizacao(1, IndicadorSincronizacao.Assincrono, new List <NFe.Classes.NFe> { _nfe }); // consultar protocolo var retornoConsulta = servicoNFe.NfeConsultaProtocolo(NFeSelected.ChaveAcesso + NFeSelected.DigitoChaveAcesso); _protocolo = retornoConsulta.Retorno.protNFe.infProt.nProt; string mensagem = ""; foreach (var atributos in Funcoes.LerPropriedades(retornoEnvio.Retorno)) { mensagem += atributos.Key + " = " + atributos.Value + "\r"; } MessageBox.Show(mensagem, "Informação do Sistema", MessageBoxButton.OK, MessageBoxImage.Information); }
private void BtnCriareEnviarNfce_Click(object sender, RoutedEventArgs e) { try { #region Cria e Envia NFe var numero = Funcoes.InpuBox(this, "Criar e Enviar NFCe", "Número da NFCe:"); if (String.IsNullOrEmpty(numero)) { throw new Exception("O Número deve ser informado!"); } var lote = Funcoes.InpuBox(this, "Criar e Enviar NFCe", "Id do Lote:"); if (String.IsNullOrEmpty(lote)) { throw new Exception("A Id do lote deve ser informada!"); } _nfe = GetNf(Convert.ToInt32(numero), ModeloDocumento.NFCe, _configuracoes.CfgServico.VersaoNFeAutorizacao); _nfe.Assina(); //não precisa validar aqui, pois o lote será validado em ServicosNFe.NFeAutorizacao var servicoNFe = new ServicosNFe(_configuracoes.CfgServico); var retornoEnvio = servicoNFe.NFeAutorizacao(Convert.ToInt32(lote), IndicadorSincronizacao.Assincrono, new List <Classes.NFe> { _nfe }); TrataRetorno(retornoEnvio); #endregion } catch (Exception ex) { if (!String.IsNullOrEmpty(ex.Message)) { Funcoes.Mensagem(ex.Message, "Erro", MessageBoxButton.OK); } } }
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); } } }