public TRetConsReciNFe ConsultarLote(TConsReciNFe consRecibo, TRetEnviNFe retEnvio) { var ws = new C_WebService(Configuracao.PastaLog); var reciboNFe = ws.ConsultaRecLote2(consRecibo, retEnvio, Certificado); if (reciboNFe.protNFe == null) return reciboNFe; foreach (var item in reciboNFe.protNFe) { var nota = NotasFiscais.FirstOrDefault(n => n.NFe.infNFe.Id == "NFe" + item.infProt.chNFe); if (nota == null) continue; nota.protNFe = item; if (item.infProt.cStat == "100") { SalvarNFe(ref nota); } } return reciboNFe; }
public TRetConsReciNFe Enviar(int numeroLote) { var ws = new C_WebService(Configuracao.PastaLog); var retEnvio = ws.EnviaLote2(this, numeroLote); var consRecibo = new TConsReciNFe { nRec = retEnvio.infRec.nRec, tpAmb = retEnvio.tpAmb, versao = retEnvio.versao }; System.Threading.Thread.Sleep(5000); try { return ConsultarLote(consRecibo, retEnvio); } catch (Exception) { System.Threading.Thread.Sleep(3000); return ConsultarLote(consRecibo, retEnvio); } }
public TRetConsStatServ StatusServico() { if (!Directory.Exists(Configuracao.PastaLog)) { Directory.CreateDirectory(Configuracao.PastaLog); } /*Comentei pois não estava sendo utilizado*/ //var listaURL = default(C_WebService.ListaUrl); //listaURL = WsUrls.BuscaURL(Configuracao.CodUF, Configuracao.Ambiente); /* * Mantive pos não sei se precisa executar, porem o retorno * não esta sendo utilizado em lugar nenhum */ WsUrls.BuscaURL(Configuracao.CodUF, Configuracao.Ambiente); var ws = new C_WebService(Configuracao.PastaLog); var consStatus = new TConsStatServ { tpAmb = Configuracao.Ambiente, versao = Configuracao.Versao, cUF = Configuracao.CodUF }; try { return ws.ConsultaStatusWs(consStatus, Certificado); } catch (Exception) { throw new Exception("Não foi possível consultar o status do servidor da Receita Federal. Favor tentar novamente."); } }
private TRetInutNFe Inutilizar(TInutNFe inutilizacao) { var ws = new C_WebService(Configuracao.PastaLog); return ws.InutilizaNumeracao(inutilizacao, Certificado, Configuracao.Ambiente); }
public Cancelamento.TRetEnvEvento Cancelar(string justificativa, int numLote, int nSequencia, out Cancelamento.TProcEvento procCancelamento) { if (NotasFiscais.Count > 1) { throw new InvalidOperationException("Só é possível cancelar uma nota por vez."); } var nota = NotasFiscais[0]; var ws = new C_WebService(Configuracao.PastaLog); justificativa = Funcoes.RemoverAcentos(justificativa.Trim()); var retCanc = ws.CancelaNFe(nota, justificativa, Certificado, numLote, nSequencia, Configuracao.Ambiente, out procCancelamento); if (retCanc.retEvento[0].infEvento.cStat == "135") { SalvarEventoCancelamento(ref procCancelamento, nota.NFe.infNFe.ide.dEmi); } return retCanc; }
public CartaCorrecao.TRetEnvEvento CartaCorrecao(string correcao, int numLote, int nSequencia, out CartaCorrecao.TProcEvento procCorrecao) { if (NotasFiscais.Count > 1) { throw new InvalidOperationException("Só é possível corrigir uma nota por vez."); } var nota = NotasFiscais[0]; correcao = Funcoes.RemoverAcentos(correcao.Trim()); var ws = new C_WebService(Configuracao.PastaLog); var retCorrecao = ws.CartaCorrecao(nota, correcao, Certificado, numLote, nSequencia, Configuracao.Ambiente, out procCorrecao); if (retCorrecao.retEvento[0].infEvento.cStat == "135") { SalvarEventoCorrecao(ref procCorrecao, nota.NFe.infNFe.ide.dEmi); } return retCorrecao; }
public List<TRetConsSitNFe> ConsultaSituacao() { if (!Directory.Exists(Configuracao.PastaLog)) { Directory.CreateDirectory(Configuracao.PastaLog); } var ws = new C_WebService(Configuracao.PastaLog); var retorno = ws.ConsultaSitNFe(this, Certificado); return retorno; }