/// <summary> /// Gera o XML de consulta do recibo do lote de notas enviadas /// </summary> /// <param name="empresa">Index da empresa que é para gerar os pedidos de consulta do recibo do lote da nfe</param> /// <param name="nfe">Objeto da classe ServicoNfe</param> /// <by>Wandrey Mundin Ferreira</by> private void GerarXMLPedRec(int empresa, object nfe) { //Criar a lista dos recibos a serem consultados no SEFAZ List<ReciboCons> recibos = new List<ReciboCons>(); FluxoNfe fluxoNfe = new FluxoNfe(empresa); try { recibos = fluxoNfe.CriarListaRec(); } catch { //Não precisa fazer nada se não conseguiu criar a lista, somente con } Type tipoServico = nfe.GetType(); for (int i = 0; i < recibos.Count; i++) { ReciboCons reciboCons = recibos[i]; var tempoConsulta = reciboCons.tMed; if (tempoConsulta > 15) tempoConsulta = 15; //Tempo previsto no manual da SEFAZ, isso foi feito pq o ambiente SVAN está retornando na consulta recibo, tempo superior a 160, mas não está com problema, é erro no calculo deste tempo. Wandrey if (tempoConsulta < Empresas.Configuracoes[empresa].TempoConsulta) tempoConsulta = Empresas.Configuracoes[empresa].TempoConsulta; //Vou dar no mínimo 3 segundos para efetuar a consulta do recibo. Wandrey 21/11/2014 if (tempoConsulta < 3) tempoConsulta = 3; if (DateTime.Now.Subtract(reciboCons.dPedRec).Seconds >= tempoConsulta) { //Atualizar a tag da data e hora da ultima consulta do recibo aumentando 10 segundos fluxoNfe.AtualizarDPedRec(reciboCons.nRec, DateTime.Now.AddSeconds(10)); tipoServico.InvokeMember("XmlPedRec", System.Reflection.BindingFlags.InvokeMethod, null, nfe, new object[] { empresa, reciboCons.nRec, reciboCons.versao, reciboCons.mod }); } } }