private void BtnConsultarReciboLote3_Click(object sender, RoutedEventArgs e) { try { #region Consulta Recibo de lote var recibo = Funcoes.InpuBox(this, "Consultar processamento de lote de NF-e", "Número do recibo:"); if (String.IsNullOrEmpty(recibo)) { throw new Exception("O número do recibo deve ser informado!"); } var servicoNFe = new ServicosNFe(_configuracoes.CfgServico); var retornoRecibo = servicoNFe.NFeRetAutorizacao(recibo); TrataRetorno(retornoRecibo); #endregion } 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="recibo"></param> /// <returns></returns> public RetornoNFeRetAutorizacao ConsultarReciboDeEnvio(string recibo) { var servicoNFe = new ServicosNFe(ConfiguracaoServico.Instancia); return(servicoNFe.NFeRetAutorizacao(recibo)); }
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); } } }