protected void ListarRecintos(int unidadeRfb)
        {
            this.cbRecintoAduaneiroDespacho.DataSource = recintosDAO.ObterRecintos(unidadeRfb);
            this.cbRecintoAduaneiroDespacho.DataBind();

            this.cbRecintoAduaneiroDespacho.Items.Insert(0, new ListItem("-- Selecione --", ""));
        }
Пример #2
0
        private async void ValidarNotasSiscomex(List <NotaFiscalConsultaCCT> notasFiscais)
        {
            var contador = 0;

            var listaGrid = new List <ConsultaNfs>();
            var numeroNf  = string.Empty;
            var cnpjNf    = string.Empty;

            var totalNotas = notasFiscais.Count;
            var acumulador = 0;

            foreach (var linhaGrid in notasFiscais)
            {
                acumulador++;

                HttpContext.Current.Session["PROGRESSO"] = $"Processando {acumulador} de {totalNotas} Notas Fiscais. Aguarde...";

                var chaveNf = linhaGrid.ChaveNF.Replace(";", "");

                if (chaveNf.Length > 30)
                {
                    cnpjNf   = chaveNf.Substring(6, 14);
                    numeroNf = chaveNf.Substring(25, 9);
                }

                var saldoNota = await ServicoSiscomex2.ConsultarDadosNotaPreACD(chaveNf, ConfigurationManager.AppSettings["CpfCertificado"].ToString());

                if (saldoNota != null)
                {
                    foreach (var linha in saldoNota)
                    {
                        contador += 1;

                        if (linha.Sucesso == false)
                        {
                            listaGrid.Add(new ConsultaNfs
                            {
                                Id          = contador,
                                ChaveNF     = chaveNf,
                                Observacoes = linha.Mensagem
                            });
                        }
                        else
                        {
                            string descricaoRecinto = string.Empty;
                            string descricaoUnidade = string.Empty;

                            if (linha.Recinto != null)
                            {
                                var recintoBusca = _recintosDAO.ObterRecintos()
                                                   .Where(c => c.Id == linha.Recinto.ToInt()).FirstOrDefault();

                                if (recintoBusca != null)
                                {
                                    descricaoRecinto = recintoBusca.Descricao;
                                }
                            }
                            else
                            {
                                descricaoRecinto = "Indisponível";
                            }

                            if (linha.UnidadeReceita != null)
                            {
                                var unidadeBusca = _unidadesReceitaDAO.ObterUnidadesRFB()
                                                   .Where(c => c.Codigo.ToInt() == linha.UnidadeReceita.ToInt()).FirstOrDefault();

                                if (unidadeBusca != null)
                                {
                                    descricaoUnidade = unidadeBusca.Descricao;
                                }
                            }
                            else
                            {
                                descricaoUnidade = "Indisponível";
                            }

                            var pesos = _estoqueDAO.ObterPesoCCT(linha.Recinto, linha.ResponsavelIdentificacao, numeroNf, "", "");

                            if (pesos != null)
                            {
                                listaGrid.Add(new ConsultaNfs
                                {
                                    Id             = contador,
                                    DataRegistro   = linha.Registro,
                                    SaldoCCT       = linha.Saldo.ToString(),
                                    ChaveNF        = chaveNf,
                                    Recinto        = descricaoRecinto,
                                    UnidadeReceita = descricaoUnidade,
                                    Observacoes    = linha.MotivoNaoPesagem,
                                    Item           = linha.Item.ToString(),
                                    PesoEntradaCCT = pesos.PesoEntradaCCT,
                                    PesoAferido    = linha.PesoAferido.ToString()
                                });
                            }
                            else
                            {
                                listaGrid.Add(new ConsultaNfs
                                {
                                    Id             = contador,
                                    DataRegistro   = linha.Registro,
                                    SaldoCCT       = linha.Saldo.ToString(),
                                    ChaveNF        = chaveNf,
                                    Recinto        = descricaoRecinto,
                                    UnidadeReceita = descricaoUnidade,
                                    Observacoes    = linha.MotivoNaoPesagem,
                                    Item           = linha.Item.ToString(),
                                    PesoAferido    = linha.PesoAferido.ToString()
                                });
                            }
                        }
                    }
                }
                else
                {
                    listaGrid.Add(new ConsultaNfs
                    {
                        Id          = contador,
                        ChaveNF     = chaveNf,
                        Observacoes = "Indisponibilidade Siscomex. Por favor, tente novamente após alguns minutos."
                    });
                }
            }

            this.gvNotasFiscais.DataSource = listaGrid.OrderBy(c => c.ChaveNF).ThenBy(c => c.Item).ToList();
            this.gvNotasFiscais.DataBind();

            foreach (GridViewRow linha in gvNotasFiscais.Rows)
            {
                if (linha.Cells[0].Text.Replace("&nbsp;", "") == string.Empty && linha.Cells[5].Text.Replace("&nbsp;", "") != string.Empty)
                {
                    linha.BackColor = System.Drawing.Color.MistyRose;
                }
            }
        }
Пример #3
0
        protected async void btnGerarCsv_Click(object sender, EventArgs e)
        {
            var filtro = new StringBuilder();
            var paises = PaisesDAO.ObterPaisesSiscomex();

            if (this.txtUpload.PostedFile != null)
            {
                if (this.txtUpload.PostedFile.ContentLength > 0)
                {
                    if (!UploadArquivo(this.txtUpload))
                    {
                        throw new Exception("O arquivo não pode ser processado. Certifique-se que já não esteja aberto em outro programa");
                    }

                    var notasFiscais = ProcessarArquivo(this.txtUpload.PostedFile.InputStream);

                    var notasFiscaisFiltro = new List <string>();

                    foreach (var nf in notasFiscais)
                    {
                        notasFiscaisFiltro.Add($"'{nf}'");
                    }

                    var filtroNfs = string.Join(",", notasFiscaisFiltro);

                    if (!string.IsNullOrEmpty(filtroNfs))
                    {
                        Session["FILTRO_CHAVES_REMESSA_UPLOAD"] = filtroNfs;
                        filtro.Append($" AND E.CHAVE_ACESSO IN ({filtroNfs}) ");
                    }

                    try
                    {
                        File.Delete(Path.Combine(Server.MapPath("Uploads"), this.txtUpload.PostedFile.FileName));
                    }
                    catch
                    {
                    }
                }
                else
                {
                    if (Session["FILTRO_CHAVES_REMESSA_UPLOAD"] != null)
                    {
                        filtro.Append($" AND E.CHAVE_ACESSO IN ({Session["FILTRO_CHAVES_REMESSA_UPLOAD"].ToString()}) ");
                    }
                }
            }

            var filtroRem            = new StringBuilder();
            var listaNotasArquivo    = new List <string>();
            var listaNotasConsulta   = new List <string>();
            var listaNotasDiferencas = new List <string>();

            if (Session["FILTRO_CHAVES_REMESSA_UPLOAD"] != null)
            {
                filtroRem.Append($" AND B.CHAVE_ACESSO IN ({Session["FILTRO_CHAVES_REMESSA_UPLOAD"].ToString()}) ");

                listaNotasArquivo.AddRange(Session["FILTRO_CHAVES_REMESSA_UPLOAD"].ToString().Split(','));
            }

            var dataTableRemessa = _estoqueDAO.ObterNotasRemessa(filtroRem.ToString());

            foreach (DataRow rowRemessa in dataTableRemessa.Rows)
            {
                listaNotasConsulta.Add(rowRemessa["CHAVE_NF"].ToString());
            }

            listaNotasConsulta = listaNotasConsulta.Distinct().ToList();

            foreach (var chaveNfArquivo in listaNotasArquivo)
            {
                var nf = chaveNfArquivo.Replace("'", "");

                if (!listaNotasConsulta.Contains(nf))
                {
                    listaNotasDiferencas.Add(nf);
                }
            }

            StringBuilder builder = new StringBuilder();
            List <string> rows    = new List <string>();

            List <string> colunas = new List <string>();

            foreach (DataColumn column in dataTableRemessa.Columns)
            {
                colunas.Add(column.ColumnName);
            }

            foreach (DataRow rowRemessa in dataTableRemessa.Rows)
            {
                List <string> camposRemessa = new List <string>();

                foreach (DataColumn column in dataTableRemessa.Columns)
                {
                    object item  = rowRemessa[column];
                    var    texto = Regex.Replace(item.ToString(), @"\t|\n|\r", "");
                    camposRemessa.Add(texto);
                }

                rows.Add(string.Join(";", camposRemessa.ToArray()));
            }

            var duesImportadas = new List <string>();

            if (listaNotasDiferencas.Any())
            {
                rows.Add("As notas abaixo não formam encontradas no banco de dados de DUEs CARGILL e os dados apresentados foram consultados diretamente no SISCOMEX");

                foreach (var notaNaoEncontrada in listaNotasDiferencas)
                {
                    var dadosDue = await SisComexService
                                   .ConsultarDUEPorDanfe(notaNaoEncontrada, ConfigurationManager.AppSettings["CpfCertificado"].ToString());

                    if (dadosDue != null)
                    {
                        if (dadosDue.Sucesso)
                        {
                            foreach (var due in dadosDue?.ListaDadosDUE)
                            {
                                var retornoDue = await SisComexService.ObterDUECompleta(due.rel, ConfigurationManager.AppSettings["CpfCertificado"].ToString());

                                if (retornoDue != null)
                                {
                                    if (!duesImportadas.Contains(due.rel))
                                    {
                                        duesImportadas.Add(due.rel);

                                        var declarante       = retornoDue.declarante?.numeroDoDocumento ?? string.Empty;
                                        var declaranteNome   = retornoDue.declarante?.nome ?? string.Empty;
                                        var descricaoRecinto = string.Empty;
                                        var descricaoUnidade = string.Empty;

                                        if (retornoDue.recintoAduaneiroDeDespacho != null)
                                        {
                                            var recintoBusca = _recintosDAO.ObterRecintos()
                                                               .Where(c => c.Id == retornoDue.recintoAduaneiroDeDespacho?.codigo.ToInt()).FirstOrDefault();

                                            if (recintoBusca != null)
                                            {
                                                descricaoRecinto = recintoBusca.Descricao;
                                            }
                                        }
                                        else
                                        {
                                            descricaoRecinto = "Indisponível";
                                        }

                                        if (retornoDue.unidadeLocalDeDespacho != null)
                                        {
                                            var unidadeBusca = _unidadesReceitaDAO.ObterUnidadesRFB()
                                                               .Where(c => c.Codigo.ToInt() == retornoDue.unidadeLocalDeDespacho?.codigo.ToInt()).FirstOrDefault();

                                            if (unidadeBusca != null)
                                            {
                                                descricaoUnidade = unidadeBusca.Descricao;
                                            }
                                        }
                                        else
                                        {
                                            descricaoUnidade = "Indisponível";
                                        }

                                        var ultimoEvento = string.Empty;
                                        EventosDoHistorico averbacao;
                                        var      dataAverbacao    = string.Empty;
                                        DateTime?dataUltimoEvento = null;

                                        if (retornoDue.eventosDoHistorico != null)
                                        {
                                            ultimoEvento     = retornoDue.eventosDoHistorico.OrderByDescending(c => c.dataEHoraDoEvento).Select(c => c.evento).FirstOrDefault();
                                            dataUltimoEvento = retornoDue.eventosDoHistorico.OrderByDescending(c => c.dataEHoraDoEvento).Select(c => c.dataEHoraDoEvento).FirstOrDefault();

                                            averbacao = retornoDue.eventosDoHistorico
                                                        .FirstOrDefault(c => c.evento.ToLower().Contains("averbacao") || c.evento.ToLower().Contains("averbação"));

                                            dataAverbacao = averbacao != null
                                                    ? averbacao.dataEHoraDoEvento.ToString("dd/MM/yyyy HH:mm:ss")
                                                    : string.Empty;
                                        }

                                        if (retornoDue.itens != null)
                                        {
                                            foreach (var item in retornoDue.itens)
                                            {
                                                string valorDaMercadoriaNaCondicaoDeVenda        = item?.valorDaMercadoriaNaCondicaoDeVenda.ToString() ?? "0";
                                                string valorDaMercadoriaNoLocalDeEmbarque        = item?.valorDaMercadoriaNoLocalDeEmbarque.ToString() ?? "0";
                                                string valorDaMercadoriaNoLocalDeEmbarqueEmReais = item?.valorDaMercadoriaNoLocalDeEmbarqueEmReais.ToString() ?? "0";

                                                string importador         = item?.nomeImportador ?? string.Empty;
                                                string enderecoImportador = item?.enderecoImportador ?? string.Empty;
                                                string pesoLiquidoTotal   = item?.pesoLiquidoTotal.ToString() ?? "0";
                                                pesoLiquidoTotal = pesoLiquidoTotal.Replace(".", "").Replace(",", ".");
                                                string incoterm = item?.codigoCondicaoVenda.codigo ?? string.Empty;

                                                var    codigoPaisImportador = retornoDue?.paisImportador?.codigo ?? 0;
                                                string paisImportador       = paises.Where(c => c.Id == codigoPaisImportador)
                                                                              .Select(c => c.Descricao).FirstOrDefault() ?? string.Empty;

                                                var    codigoPaisDestino = item?.listaPaisDestino.Select(c => c.codigo).FirstOrDefault() ?? 0;
                                                string paisDestino       = paises.Where(c => c.Id == codigoPaisDestino)
                                                                           .Select(c => c.Descricao).FirstOrDefault() ?? string.Empty;

                                                string unidadeEstatistica        = item?.unidadeComercializada ?? string.Empty;
                                                string informacoesComplementares = retornoDue?.informacoesComplementares ?? string.Empty;

                                                var    codigoMoeda     = retornoDue?.moeda?.codigo ?? 0;
                                                string moedaNegociacao = _moedasDAO.ObterMoedas().Where(c => c.Id == codigoMoeda)
                                                                         .Select(c => c.Descricao).FirstOrDefault() ?? string.Empty;

                                                foreach (var nfRemessa in item.itensDaNotaDeRemessa)
                                                {
                                                    if (nfRemessa != null)
                                                    {
                                                        var tipoNf = string.Empty;
                                                        var cfop   = nfRemessa.cfop.ToString();

                                                        if (cfop.EndsWith("04") || cfop.EndsWith("05"))
                                                        {
                                                            tipoNf = "FDL";
                                                        }

                                                        if (cfop.EndsWith("01") || cfop.EndsWith("02"))
                                                        {
                                                            tipoNf = "REM";
                                                        }

                                                        var itemNfRef = nfRemessa.notaFiscal;
                                                        var emitente  = itemNfRef.identificacaoDoEmitente;

                                                        rows.Add($";{retornoDue.dataDeRegistro.ToString("dd/MM/yyyy HH:mm:ss")};{retornoDue.numero};{retornoDue.chaveDeAcesso};{declarante};{declaranteNome};{ultimoEvento};{dataUltimoEvento?.ToString("dd/MM/yyyy HH:mm:ss")};{dataAverbacao};{nfRemessa.ncm?.codigo};{nfRemessa.numeroDoItem};{nfRemessa.cfop};{nfRemessa.descricao};{tipoNf};{itemNfRef.chaveDeAcesso};{itemNfRef.numeroDoDocumento};{itemNfRef.modelo};{itemNfRef.serie};{itemNfRef.ufDoEmissor};{emitente.numero};{retornoDue.situacao};{valorDaMercadoriaNaCondicaoDeVenda.Replace(".", "").Replace(",", ".") };{valorDaMercadoriaNoLocalDeEmbarque.Replace(".", "").Replace(",", ".") };{valorDaMercadoriaNoLocalDeEmbarqueEmReais.Replace(".", "").Replace(",", ".") };{importador};{enderecoImportador};{paisImportador};{paisDestino};{unidadeEstatistica};{pesoLiquidoTotal};{moedaNegociacao};{incoterm};{informacoesComplementares};{retornoDue.unidadeLocalDeDespacho?.codigo};{descricaoUnidade};{retornoDue.recintoAduaneiroDeDespacho?.codigo };{descricaoRecinto};{item.quantidadeNaUnidadeEstatistica.ToString("n3")};{nfRemessa.quantidadeConsumida.ToString("n3")}");
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                                else
                                {
                                    var retornoDueResumida = await SisComexService.ObterDetalhesDUE(due.rel, ConfigurationManager.AppSettings["CpfCertificado"].ToString());

                                    if (retornoDueResumida != null)
                                    {
                                        if (!duesImportadas.Contains(due.rel))
                                        {
                                            duesImportadas.Add(due.rel);

                                            var declarante       = retornoDueResumida.declarante?.numero ?? string.Empty;
                                            var descricaoRecinto = string.Empty;
                                            var descricaoUnidade = string.Empty;

                                            if (retornoDueResumida.codigoRecintoAduaneiroDespacho != null)
                                            {
                                                var recintoBusca = _recintosDAO.ObterRecintos()
                                                                   .Where(c => c.Id == retornoDueResumida.codigoRecintoAduaneiroDespacho.ToInt()).FirstOrDefault();

                                                if (recintoBusca != null)
                                                {
                                                    descricaoRecinto = recintoBusca.Descricao;
                                                }
                                            }
                                            else
                                            {
                                                descricaoRecinto = "Indisponível";
                                            }

                                            if (retornoDueResumida.uaDespacho != null)
                                            {
                                                var unidadeBusca = _unidadesReceitaDAO.ObterUnidadesRFB()
                                                                   .Where(c => c.Codigo.ToInt() == retornoDueResumida.uaDespacho.ToInt()).FirstOrDefault();

                                                if (unidadeBusca != null)
                                                {
                                                    descricaoUnidade = unidadeBusca.Descricao;
                                                }
                                            }
                                            else
                                            {
                                                descricaoUnidade = "Indisponível";
                                            }

                                            rows.Add($";;{retornoDueResumida.numeroDUE};;{declarante};;;;;;;;;;{notaNaoEncontrada};;;;;;;;;;;;;;;;;;;{retornoDueResumida.uaDespacho};{descricaoUnidade};{retornoDueResumida.codigoRecintoAduaneiroDespacho };{descricaoRecinto}");
                                        }
                                    }
                                }
                            }
                        }
                        else
                        {
                            rows.Add(dadosDue.Mensagem);
                        }
                    }
                }
            }

            builder.Append(string.Join(";", colunas.ToArray()));
            builder.Append("\n");
            builder.Append(string.Join("\n", rows.ToArray()));

            var agora       = DateTime.Now;
            var nomeArquivo = $"LM_{agora.ToString("ddMMyyyy")}_{agora.ToString("HHmmss")}";

            Response.Clear();
            Response.ContentType = "text/csv";
            Response.AddHeader("Content-Disposition", $"attachment;filename={nomeArquivo}.csv");
            Response.ContentEncoding = System.Text.Encoding.GetEncoding("Windows-1252");
            Response.Write(builder.ToString());
            //Response.End();

            HttpContext.Current.Response.Flush();
            HttpContext.Current.Response.SuppressContent = true;
            HttpContext.Current.ApplicationInstance.CompleteRequest();
        }
Пример #4
0
        private static void ValidarNotasSiscomexUnitario(NotaFiscalConsultaCCT notaFiscalChave, string guid)
        {
            var _notaFiscalDAO      = new NotaFiscalDAO();
            var _recintosDAO        = new RecintosDAO();
            var _unidadesReceitaDAO = new UnidadesReceitaDAO();
            var _estoqueDAO         = new EstoqueDAO(false);

            var numeroNf = string.Empty;
            var cnpjNf   = string.Empty;
            var mesNf    = string.Empty;
            var anoNf    = string.Empty;

            var chaveNf = notaFiscalChave.ChaveNF.Replace(";", "");

            if (chaveNf.Length > 30)
            {
                cnpjNf   = chaveNf.Substring(6, 14);
                numeroNf = chaveNf.Substring(25, 9);
                anoNf    = chaveNf.Substring(2, 2);
                mesNf    = chaveNf.Substring(4, 2);
            }

            Stopwatch stopWatch = new Stopwatch();

            stopWatch.Start();

            var saldoNota = AsyncHelpers.RunSync <List <Responses.DadosNotaPreACD> >(() => ServicoSiscomex2.ConsultarDadosNotaPreACD(chaveNf, ConfigurationManager.AppSettings["CpfCertificado"].ToString()));

            stopWatch.Stop();
            LogsService.Logar("ConsultarNFs.aspx", $"Consulta Siscomex: {stopWatch.Elapsed}");

            if (saldoNota != null)
            {
                foreach (var linha in saldoNota)
                {
                    try
                    {
                        if (linha.Sucesso == false)
                        {
                            var informacoesDue = _estoqueDAO.ObterDadosDueConsCCT(chaveNf);

                            string due          = "";
                            string qtdeAverbada = "";

                            if (informacoesDue != null)
                            {
                                if (informacoesDue.Any())
                                {
                                    due          = string.Join("|", informacoesDue.Select(c => c.DUE));
                                    qtdeAverbada = string.Join("|", informacoesDue.Select(c => c.Quantidade));
                                }
                            }

                            var notaFiscal = new NotaFiscalConsultaCCT
                            {
                                ChaveNF      = chaveNf,
                                OBS          = linha.Mensagem,
                                DUE          = due,
                                QtdeAverbada = qtdeAverbada
                            };

                            stopWatch.Reset();
                            stopWatch.Start();
                            _notaFiscalDAO.CadastrarNFImportacaoConsulta(notaFiscal, guid);
                            stopWatch.Stop();
                            LogsService.Logar("ConsultarNFs.aspx", $"_notaFiscalDAO.CadastrarNFImportacaoConsulta(notaFiscal, guid): {stopWatch.Elapsed}");
                        }
                        else
                        {
                            string descricaoRecinto = string.Empty;
                            string descricaoUnidade = string.Empty;

                            if (linha.Recinto != null)
                            {
                                var recintoBusca = _recintosDAO.ObterRecintos()
                                                   .Where(c => c.Id == linha.Recinto.ToInt()).FirstOrDefault();

                                if (recintoBusca != null)
                                {
                                    descricaoRecinto = recintoBusca.Descricao;
                                }
                            }
                            else
                            {
                                descricaoRecinto = "Indisponível";
                            }

                            if (linha.UnidadeReceita != null)
                            {
                                var unidadeBusca = _unidadesReceitaDAO.ObterUnidadesRFB()
                                                   .Where(c => c.Codigo.ToInt() == linha.UnidadeReceita.ToInt()).FirstOrDefault();

                                if (unidadeBusca != null)
                                {
                                    descricaoUnidade = unidadeBusca.Descricao;
                                }
                            }
                            else
                            {
                                descricaoUnidade = "Indisponível";
                            }

                            stopWatch.Reset();
                            stopWatch.Start();

                            var pesos = _estoqueDAO.ObterPesoCCT(
                                linha.Recinto,
                                linha.ResponsavelIdentificacao,
                                numeroNf,
                                linha.Registro.Substring(0, 10),
                                $"{anoNf}{mesNf}");

                            var informacoesDue = _estoqueDAO.ObterDadosDueConsCCT(chaveNf);

                            string due          = "";
                            string qtdeAverbada = "";

                            if (informacoesDue != null)
                            {
                                if (informacoesDue.Any())
                                {
                                    due          = string.Join("|", informacoesDue.Select(c => c.DUE));
                                    qtdeAverbada = string.Join("|", informacoesDue.Select(c => c.Quantidade));
                                }
                            }

                            stopWatch.Stop();
                            LogsService.Logar("ConsultarNFs.aspx", $"_estoqueDAO.ObterPesoCCT(): {stopWatch.Elapsed}");

                            if (pesos != null)
                            {
                                var pesoAferido = !string.IsNullOrEmpty(pesos.PesoAferido)
                                    ? pesos.PesoAferido
                                    : "Não Disponível - ";

                                if (!string.IsNullOrEmpty(pesos.MotivoNaoPesagem))
                                {
                                    pesoAferido += "Motivo não pesagem: " + pesos.MotivoNaoPesagem;
                                }

                                var notaFiscal = new NotaFiscalConsultaCCT
                                {
                                    DataRegistro   = linha.Registro,
                                    SaldoCCT       = linha.Saldo.ToString(),
                                    ChaveNF        = chaveNf,
                                    Recinto        = descricaoRecinto,
                                    UnidadeReceita = descricaoUnidade,
                                    OBS            = string.Empty,
                                    Item           = linha.Item,
                                    PesoEntradaCCT = pesos.PesoEntradaCCT,
                                    PesoAferido    = pesoAferido,
                                    DUE            = due,
                                    QtdeAverbada   = qtdeAverbada
                                };

                                stopWatch.Reset();
                                stopWatch.Start();

                                _notaFiscalDAO.CadastrarNFImportacaoConsulta(notaFiscal, guid);

                                stopWatch.Stop();
                                LogsService.Logar("ConsultarNFs.aspx", $"Ln 489 - _notaFiscalDAO.CadastrarNFImportacaoConsulta(notaFiscal, guid) {stopWatch.Elapsed}");
                            }
                            else
                            {
                                var informacoesDues = _estoqueDAO.ObterDadosDueConsCCT(chaveNf);

                                string nrdue         = "";
                                string qtdeAverbadas = "";

                                if (informacoesDues != null)
                                {
                                    if (informacoesDues.Any())
                                    {
                                        due           = string.Join("|", informacoesDues.Select(c => c.DUE));
                                        qtdeAverbadas = string.Join("|", informacoesDues.Select(c => c.Quantidade));
                                    }
                                }

                                var notaFiscal = new NotaFiscalConsultaCCT
                                {
                                    DataRegistro   = linha.Registro,
                                    SaldoCCT       = linha.Saldo.ToString(),
                                    ChaveNF        = chaveNf,
                                    Recinto        = descricaoRecinto,
                                    UnidadeReceita = descricaoUnidade,
                                    OBS            = string.Empty,
                                    Item           = linha.Item,
                                    PesoAferido    = "Não Disponível",
                                    PesoEntradaCCT = "Não Disponível",
                                    DUE            = nrdue,
                                    QtdeAverbada   = qtdeAverbadas
                                };

                                stopWatch.Reset();
                                stopWatch.Start();

                                _notaFiscalDAO.CadastrarNFImportacaoConsulta(notaFiscal, guid);

                                stopWatch.Stop();
                                LogsService.Logar("ConsultarNFs.aspx", $"Ln 513 - _notaFiscalDAO.CadastrarNFImportacaoConsulta(notaFiscal, guid) {stopWatch.Elapsed}");
                            }
                        }
                    }
                    catch (Exception)
                    {
                        logger.Info($"{DateTime.Now} - Erro ao consultar NF {notaFiscalChave}");
                    }
                }
            }
            else
            {
                var notaFiscal = new NotaFiscalConsultaCCT
                {
                    ChaveNF = chaveNf,
                    OBS     = "Indisponibilidade Siscomex. Por favor, tente novamente após alguns minutos."
                };

                stopWatch.Reset();
                stopWatch.Start();

                _notaFiscalDAO.CadastrarNFImportacaoConsulta(notaFiscal, guid);

                stopWatch.Stop();
                LogsService.Logar("ConsultarNFs.aspx", $"Ln 539 - _notaFiscalDAO.CadastrarNFImportacaoConsulta(notaFiscal, guid); {stopWatch.Elapsed}");
            }
        }