private void ValidarDUESSiscomex(List <DUEMaster> dues) { this.gvNotasFiscais.DataSource = dues.ToList(); this.gvNotasFiscais.DataBind(); foreach (GridViewRow linhaGrid in this.gvNotasFiscais.Rows) { var due = linhaGrid.Cells[0].Text.Replace(";", ""); var dadosDue = ServicoSiscomex2.ObterDetalhesDUE(due, ConfigurationManager.AppSettings["CpfCertificado"].ToString()).Result; if (dadosDue.Sucesso == false) { linhaGrid.Cells[1].Text = string.Empty; linhaGrid.Cells[2].Text = string.Empty; linhaGrid.Cells[3].Text = dadosDue.Mensagem; linhaGrid.BackColor = System.Drawing.Color.MistyRose; } else { var situacao = _situacaoDUEDAO.ObterSituacoesDUE() .Where(c => c.Id == dadosDue.situacaoDUE).FirstOrDefault(); if (situacao != null) { linhaGrid.Cells[2].Text = situacao.Descricao; } else { linhaGrid.Cells[2].Text = string.Empty; } linhaGrid.Cells[1].Text = dadosDue.dataSituacaoDUE; } } }
protected async void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { var id = Request.QueryString["id"].ToInt(); if (id > 0) { var dueBusca = _documentoUnicoExportacaoDAO.ObterDUEPorId(id); if (dueBusca.CriadoPorNF > 0) { this.gvNotasFiscais.DataSource = _documentoUnicoExportacaoDAO.ObterNotasPorDueId(id); this.gvNotasFiscais.DataBind(); foreach (GridViewRow linhaGrid in this.gvNotasFiscais.Rows) { if (linhaGrid.Cells[0].Text != "EXP") { var chaveNf = linhaGrid.Cells[1].Text; var quantidade = linhaGrid.Cells[4].Text.ToDecimal(); var saldoDue = _documentoUnicoExportacaoDAO.ObterQuantidadeDUEPorNF(chaveNf); var saldoNota = await ServicoSiscomex2.ConsultarDadosNotaPreACD(chaveNf, ConfigurationManager.AppSettings["CpfCertificado"].ToString()); foreach (var linha in saldoNota) { if (linha != null) { if (linha.Sucesso == false) { linhaGrid.BackColor = System.Drawing.Color.MistyRose; } else { quantidade = quantidade - saldoDue; if (!((quantidade) <= (decimal)linha.Saldo)) { linhaGrid.BackColor = System.Drawing.Color.LightYellow; } else { linhaGrid.BackColor = System.Drawing.Color.LightGreen; } linhaGrid.Cells[5].Text = linha.Saldo.ToString(); linhaGrid.Cells[6].Text = saldoDue.ToString(); linhaGrid.Cells[11].Text = linha.Item.ToString(); linhaGrid.Cells[12].Text = linha.Recinto; } } } } } } else { List <NotaFiscal> notasExportacao = _documentoUnicoExportacaoDAO.ObterNotasExportacaoPorDueId(id).ToList(); if (notasExportacao.Count() == 0) { var itensDUE = _documentoUnicoExportacaoDAO.ObterItensDUE(id); foreach (var itemDue in itensDUE) { var notaExportacao = _notaFiscalDAO.ObterNotasExportacaoPorChave(itemDue.NF); if (notaExportacao != null) { notasExportacao.Add(notaExportacao); } } } var notasGrid = new List <NotaFiscal>(); foreach (var notaExportacao in notasExportacao) { notasGrid.Add(notaExportacao); var notasRemessa = _documentoUnicoExportacaoDAO.ObterNotasRemessaPorDueId(notaExportacao.ChaveNF).ToList(); foreach (var notaRemessa in notasRemessa) { notasGrid.Add(notaRemessa); } } this.gvNotasFiscais.DataSource = notasGrid.ToList(); this.gvNotasFiscais.DataBind(); foreach (GridViewRow linhaGrid in this.gvNotasFiscais.Rows) { if (linhaGrid.Cells[0].Text != "EXP") { var chaveNf = linhaGrid.Cells[1].Text; var quantidade = linhaGrid.Cells[4].Text.ToDecimal(); var saldoDue = _documentoUnicoExportacaoDAO.ObterQuantidadeDUEPorNF(chaveNf); var saldoNota = await ServicoSiscomex2.ConsultarDadosNotaPreACD(chaveNf, ConfigurationManager.AppSettings["CpfCertificado"].ToString()); foreach (var linha in saldoNota) { if (linha != null) { if (linha.Sucesso == false) { linhaGrid.BackColor = System.Drawing.Color.MistyRose; } else { quantidade = quantidade - saldoDue; if (!((quantidade) <= (decimal)linha.Saldo)) { linhaGrid.BackColor = System.Drawing.Color.LightYellow; } else { linhaGrid.BackColor = System.Drawing.Color.LightGreen; } linhaGrid.Cells[5].Text = linha.Saldo.ToString(); linhaGrid.Cells[6].Text = saldoDue.ToString(); linhaGrid.Cells[11].Text = linha.Item.ToString(); linhaGrid.Cells[12].Text = linha.Recinto; } } } } } } } } }
protected async void btnGerarExcel_Click(object sender, EventArgs e) { var id = Request.QueryString["id"].ToInt(); var notas = new List <NotaFiscalConsultaCCT>(); foreach (GridViewRow linha in this.gvNotasFiscais.Rows) { string status = string.Empty; if (linha.Cells[0].Text != "EXP") { var item = linha.Cells[11].Text.ToInt(); if (item == 0) { item = 1; } var saldoDue = _documentoUnicoExportacaoDAO.ObterQuantidadeDUEPorNF(linha.Cells[1].Text); var saldoNota = await ServicoSiscomex2.ConsultarDadosNotaPreACD(linha.Cells[1].Text, ConfigurationManager.AppSettings["CpfCertificado"].ToString()); foreach (var linhaSaldo in saldoNota) { if (linhaSaldo != null) { if (linhaSaldo.Sucesso == false) { status = "Nota não encontrada no CCT"; } else { var quantidade = linha.Cells[4].Text.ToDecimal() - saldoDue; if (!((quantidade) <= (decimal)linhaSaldo.Saldo)) { status = "Nota com divergência no saldo"; } else { status = "Nota sem divergência"; } } } } } notas.Add(new NotaFiscalConsultaCCT { TipoNF = linha.Cells[0].Text, ChaveNF = linha.Cells[1].Text, NumeroNF = linha.Cells[2].Text, CnpjNF = linha.Cells[3].Text, QuantidadeNF = linha.Cells[4].Text.ToDecimal(), SaldoCCT = linha.Cells[5].Text, SaldoOutrasDUES = linha.Cells[6].Text.ToDecimal(), UnidadeNF = linha.Cells[7].Text, NCM = linha.Cells[8].Text, ChaveNFReferencia = linha.Cells[9].Text, Arquivo = linha.Cells[10].Text, Status = status, Item = linha.Cells[11].Text.ToInt(), Recinto = linha.Cells[12].Text }); status = string.Empty; } string attachment = "attachment; filename=MyExcelPage.xlsx"; ExcelPackage epackage = new ExcelPackage(); ExcelWorksheet excel = epackage.Workbook.Worksheets.Add("ExcelTabName"); excel.Cells["A1"].LoadFromCollection(notas.Select(c => new { c.TipoNF, c.ChaveNF, c.NumeroNF, c.CnpjNF, c.QuantidadeNF, c.SaldoCCT, c.SaldoOutrasDUES, c.UnidadeNF, c.NCM, ChaveNFReferencia = c.ChaveNFReferencia.Replace(" ", ""), c.Arquivo, c.Status, c.Item, c.Recinto }), true); HttpContext.Current.Response.Clear(); HttpContext.Current.Response.ClearHeaders(); HttpContext.Current.Response.ClearContent(); HttpContext.Current.Response.AddHeader("content-disposition", attachment); HttpContext.Current.Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; HttpContext.Current.Response.BinaryWrite(epackage.GetAsByteArray()); HttpContext.Current.Response.End(); epackage.Dispose(); }
protected void btnGerarExcel_Click(object sender, EventArgs e) { var dues = new List <DUEMaster>(); foreach (GridViewRow linhaGrid in this.gvNotasFiscais.Rows) { var due = linhaGrid.Cells[0].Text.Replace(";", ""); var dadosDue = ServicoSiscomex2.ObterDetalhesDUE(due, ConfigurationManager.AppSettings["CpfCertificado"].ToString()).Result; if (dadosDue.Sucesso == false) { linhaGrid.Cells[1].Text = string.Empty; linhaGrid.Cells[2].Text = string.Empty; linhaGrid.Cells[3].Text = dadosDue.Mensagem; linhaGrid.BackColor = System.Drawing.Color.MistyRose; dues.Add(new DUEMaster { DUE = due, DescricaoSituacao = string.Empty, DataSituacaoDUE = string.Empty, StatusSiscomex = dadosDue.Mensagem }); } else { var situacao = _situacaoDUEDAO.ObterSituacoesDUE() .Where(c => c.Id == dadosDue.situacaoDUE).FirstOrDefault(); if (situacao != null) { linhaGrid.Cells[2].Text = situacao.Descricao; } else { linhaGrid.Cells[2].Text = string.Empty; } linhaGrid.Cells[1].Text = dadosDue.dataSituacaoDUE; dues.Add(new DUEMaster { DUE = due, DescricaoSituacao = linhaGrid.Cells[2].Text, DataSituacaoDUE = linhaGrid.Cells[1].Text, StatusSiscomex = string.Empty }); } } ExcelPackage epackage = new ExcelPackage(); ExcelWorksheet excel = epackage.Workbook.Worksheets.Add("CCT"); excel.Cells["A1"].LoadFromCollection(dues.Select(c => new { c.DUE, c.DescricaoSituacao, c.DataSituacaoDUE, c.StatusSiscomex }), true); string attachment = "attachment; filename=ListaDUEs.xlsx"; HttpContext.Current.Response.Clear(); HttpContext.Current.Response.ClearHeaders(); HttpContext.Current.Response.ClearContent(); HttpContext.Current.Response.AddHeader("content-disposition", attachment); HttpContext.Current.Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; HttpContext.Current.Response.BinaryWrite(epackage.GetAsByteArray()); HttpContext.Current.Response.End(); epackage.Dispose(); }
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(" ", "") == string.Empty && linha.Cells[5].Text.Replace(" ", "") != string.Empty) { linha.BackColor = System.Drawing.Color.MistyRose; } } }
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}"); } }