private void BtnEnviaEpec_Click(object sender, RoutedEventArgs e) { try { /* * Atenção: * O campo dhEmi da nfe a ser vinculada ao EPEC deve ser exatamente igual ao informado m detevento do EPEC, assim como os demais dados, como emitente, destinatário, etc. * Vide a rejeição código 467 no manual do EPEC */ #region Enviar EPEC var idlote = Funcoes.InpuBox(this, "Enviar EPEC", "Identificador de controle do Lote de envio:"); if (String.IsNullOrEmpty(idlote)) { throw new Exception("A Id do Lote deve ser informada!"); } var sequenciaEvento = Funcoes.InpuBox(this, "Enviar EPEC", "Número sequencial do evento:"); if (String.IsNullOrEmpty(sequenciaEvento)) { throw new Exception("O número sequencial deve ser informado!"); } var numeronota = Funcoes.InpuBox(this, "Enviar EPEC", "Número da Nota:"); if (String.IsNullOrEmpty(numeronota)) { throw new Exception("O Número da Nota deve ser informado!"); } _nfe = GetNf(Convert.ToInt32(numeronota), ModeloDocumento.NFe, _configuracoes.CfgServico.VersaoNFeAutorizacao); var servicoNFe = new ServicosNFe(_configuracoes.CfgServico); var retornoEpec = servicoNFe.RecepcaoEventoEpec(Convert.ToInt16(idlote), Convert.ToInt16(sequenciaEvento), _nfe, "3.10"); TrataRetorno(retornoEpec); #endregion } catch (Exception ex) { if (!String.IsNullOrEmpty(ex.Message)) { Funcoes.Mensagem(ex.Message, "Erro", MessageBoxButton.OK); } } }
/// <summary> /// Envia EPEC para Sefaz /// </summary> /// <param name="idlote"></param> /// <param name="sequenciaEvento"></param> /// <param name="_nfe"></param> /// <param name="veraplic"></param> /// <param name="cFgServico"></param> /// <returns></returns> public RetornoRecepcaoEvento EnviarEPEC(int idlote, int sequenciaEvento, Classes.NFe _nfe, string veraplic, ConfiguracaoServico cFgServico) { var servicoNFe = new ServicosNFe(cFgServico); var retornoEnvio = servicoNFe.RecepcaoEventoEpec(Convert.ToInt32(idlote), Convert.ToInt16(sequenciaEvento), _nfe, veraplic); foreach (var evento in retornoEnvio.ProcEventosNFe) { var proceventoXmlString = evento.ObterXmlString(); if (evento.retEvento.infEvento.cStat == 135) { //Salva procEventoNFe this.SalvarXmlArquivo(evento.retEvento.infEvento.chNFe + "-epec", proceventoXmlString, cFgServico.tpAmb); } } return(retornoEnvio); }