Ejemplo n.º 1
0
        private DataTable FormatarDataTable(DataTable dt, EnumTipoRelatorio tipoRelatorio)
        {
            if (dt.Columns.Contains("TotalCount"))
            {
                dt.Columns.Remove("TotalCount");
            }

            switch (tipoRelatorio)
            {
            case EnumTipoRelatorio.EstoqueInicial:
            case EnumTipoRelatorio.EstoqueFinal:
                dt.Columns["ProdutoDescricao"].ColumnName = "Descrição Original";
                dt.Columns["ProdutoUnificado"].ColumnName = "Descrição Unificada";
                dt.Columns["Quantidade"].ColumnName       = "Quantidade";
                dt.Columns["UnidadeDescricao"].ColumnName = "Unidade";
                dt.Columns["ValorUnitario"].ColumnName    = "Valor Unitário";
                dt.Columns["ValorTotal"].ColumnName       = "Valor Total";

                break;

            case EnumTipoRelatorio.MovimentacaoEntrada:
                dt.Columns["SEF_NFE_ECF"].ColumnName      = "SEF/NFE";
                dt.Columns["NUM_NF"].ColumnName           = "Número NF";
                dt.Columns["DataEntrada"].ColumnName      = "Data de Entrada";
                dt.Columns["ProdutoDescricao"].ColumnName = "Descrição Original";
                dt.Columns["ProdutoUnificado"].ColumnName = "Descrição Unificada";
                dt.Columns["Quantidade"].ColumnName       = "Quantidade";
                dt.Columns["UnidadeDescricao"].ColumnName = "Unidade";
                dt.Columns["ValorUnitario"].ColumnName    = "Valor Unitário";
                dt.Columns["ValorTotal"].ColumnName       = "Valor Total";
                dt.Columns["CFOP"].ColumnName             = "CFOP";

                break;

            case EnumTipoRelatorio.MovimentacaoSaida:
                dt.Columns["SEF_NFE_ECF"].ColumnName      = "SEF/NFE/ECF";
                dt.Columns["NUM_NF"].ColumnName           = "Número NF/COO";
                dt.Columns["DataEntrada"].ColumnName      = "Data de Emissão";
                dt.Columns["ProdutoDescricao"].ColumnName = "Descrição Original";
                dt.Columns["ProdutoUnificado"].ColumnName = "Descrição Unificada";
                dt.Columns["Quantidade"].ColumnName       = "Quantidade";
                dt.Columns["UnidadeDescricao"].ColumnName = "Unidade";
                dt.Columns["ValorUnitario"].ColumnName    = "Valor Unitário";
                dt.Columns["ValorTotal"].ColumnName       = "Valor Total";
                dt.Columns["CFOP"].ColumnName             = "CFOP";

                break;

            case EnumTipoRelatorio.Produto:
                dt.Columns["DescricaoOriginal"].ColumnName  = "Descrição Original";
                dt.Columns["DescricaoUnificada"].ColumnName = "Descrição Unificada";
                dt.Columns["DescricaoUnidade"].ColumnName   = "Unidade";

                break;
            }

            return(dt);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Gerar um arquivo zip a partir de um datatable
        /// </summary>
        /// <param name="data">Dados</param>
        /// <param name="nomeArquivo">Nome do arquivo</param>
        /// <returns>Caminho do arquivo</returns>
        private string SalvarExcelParticionado(string nomeArquivo, int idAnalise, EnumTipoRelatorio tipoRelatorio)
        {
            var novoNome = string.Empty;

            Guid guid = Guid.NewGuid();

            string diretorio  = Path.Combine(Server.MapPath("~/Download/"), HttpContext.Session.SessionID);
            string arquivoZip = Path.Combine(Server.MapPath("~/Download/"), guid.ToString() + ".zip");

            DataTable dt = new DataTable();

            if (Directory.Exists(diretorio))
            {
                Directory.Delete(diretorio, true);
            }

            Directory.CreateDirectory(diretorio);

            bool continuarImportacao = true;

            for (int i = 0; continuarImportacao; i++)
            {
                novoNome = Path.Combine(diretorio,
                                        Path.GetFileNameWithoutExtension(nomeArquivo) + "_Parte_" + (i + 1).ToString() + ".xls");

                using (StreamWriter sw = new StreamWriter(novoNome, false, Encoding.UTF8))
                {
                    using (HtmlTextWriter hw = new HtmlTextWriter(sw))
                    {
                        switch (tipoRelatorio)
                        {
                        case EnumTipoRelatorio.Desconhecido:
                            throw new Exception("Tipo de relatório inválido.");

                        case EnumTipoRelatorio.Levantamento:
                            List <RelatorioLevantamentoVO> relatorioLevantamentoVOs =
                                RecuperaDadosLevantamento(Util.quantidadeQuebraExcel.ToString(),
                                                          (i * Util.quantidadeQuebraExcel).ToString(), "0", "asc", "", "0", idAnalise.ToString());
                            continuarImportacao = relatorioLevantamentoVOs.Any();
                            if (continuarImportacao)
                            {
                                dt = FormatarDataTable(relatorioLevantamentoVOs.AsDataTable(), tipoRelatorio);
                            }
                            break;

                        case EnumTipoRelatorio.Movimentacao:
                            List <RelatorioMovimentacaoVO> relatorioMovimentacaoVOs =
                                RecuperaDadosMovimentacao(Util.quantidadeQuebraExcel.ToString(), (i * Util.quantidadeQuebraExcel).ToString(), "0", "asc", "", "0", idAnalise.ToString());
                            continuarImportacao = relatorioMovimentacaoVOs.Any();
                            if (continuarImportacao)
                            {
                                dt = FormatarDataTable(relatorioMovimentacaoVOs.AsDataTable(), tipoRelatorio);
                            }
                            break;

                        case EnumTipoRelatorio.PrecoUnitario:
                            List <RelatorioPrecoUnitarioVO> relatorioPrecoUnitarioVOs =
                                RecuperaDadosRelatorioPrecoUnitario(Util.quantidadeQuebraExcel.ToString(), (i * Util.quantidadeQuebraExcel).ToString(), "0", "asc", "", "0",
                                                                    idAnalise.ToString());
                            continuarImportacao = relatorioPrecoUnitarioVOs.Any();
                            if (continuarImportacao)
                            {
                                dt = FormatarDataTable(relatorioPrecoUnitarioVOs.AsDataTable(), tipoRelatorio);
                            }
                            break;

                        case EnumTipoRelatorio.Venda:
                            List <RelatorioVendaVO> relatorioVendaVOs =
                                RecuperaDadosVenda(Util.quantidadeQuebraExcel.ToString(),
                                                   (i * Util.quantidadeQuebraExcel).ToString(), "0", "asc", "", "0", idAnalise.ToString());
                            continuarImportacao = relatorioVendaVOs.Any();
                            if (continuarImportacao)
                            {
                                dt = FormatarDataTable(relatorioVendaVOs.AsDataTable(), tipoRelatorio);
                            }
                            break;
                        }

                        if (continuarImportacao)
                        {
                            GridView gridView = new GridView();
                            gridView.DataSource            = dt;
                            gridView.HeaderStyle.Font.Bold = true;
                            gridView.DataBind();
                            gridView.RenderControl(hw);
                        }
                    }
                }

                if (!continuarImportacao)
                {
                    if (System.IO.File.Exists(novoNome))
                    {
                        System.IO.File.Delete(novoNome);
                    }
                }
            }

            if (System.IO.File.Exists(arquivoZip))
            {
                System.IO.File.Delete(arquivoZip);
            }

            ZipFile.CreateFromDirectory(diretorio, arquivoZip);

            return(arquivoZip);
        }
Ejemplo n.º 3
0
        private DataTable FormatarDataTable(DataTable dt, EnumTipoRelatorio tipoRelatorio)
        {
            if (dt.Columns.Contains("TotalCount"))
            {
                dt.Columns.Remove("TotalCount");
            }

            switch (tipoRelatorio)
            {
            case EnumTipoRelatorio.Movimentacao:

                dt.Columns["ProdutoDescricao"].ColumnName = "Descrição Original";
                dt.Columns["ProdutoUnificado"].ColumnName = "Descrição Unificada";
                dt.Columns["UnidadeDescricao"].ColumnName = "Unidade";
                dt.Columns["QtdInicial"].ColumnName       = "Est. Inicial";
                dt.Columns["QtdEntrada"].ColumnName       = "Entradas";
                dt.Columns["QtdSaida"].ColumnName         = "Saídas";
                dt.Columns["QtdFinal"].ColumnName         = "Est. Final";
                dt.Columns["ValorInicial"].ColumnName     = "Vlr Unit Inicial";
                dt.Columns["ValorEntrada"].ColumnName     = "Vlr Unit Entrada";
                dt.Columns["ValorSaida"].ColumnName       = "Vlr Unit Saída";
                dt.Columns["ValorFinal"].ColumnName       = "Vlr Unit Final";

                break;

            case EnumTipoRelatorio.Venda:

                dt.Columns["SEF_NFE_ECF"].ColumnName        = "SEF/NFE/ECF";
                dt.Columns["NUM_NF"].ColumnName             = "Número NF/COO";
                dt.Columns["DataEmissao"].ColumnName        = "Data de Emissão";
                dt.Columns["Descricao"].ColumnName          = "Descrição Original";
                dt.Columns["DescricaoUnificada"].ColumnName = "Descrição Unificada";
                dt.Columns["Quantidade"].ColumnName         = "Quantidade";
                dt.Columns["DescricaoUnidade"].ColumnName   = "Unidade";
                dt.Columns["ValorUnitario"].ColumnName      = "Valor Unitário";
                dt.Columns["ValorTotal"].ColumnName         = "Valor Total";
                dt.Columns["CFOP"].ColumnName                   = "CFOP Saída";
                dt.Columns["NFEntrada"].ColumnName              = "NF Entrada";
                dt.Columns["DataEntradaMenor"].ColumnName       = "Data de Entrada";
                dt.Columns["CFOPEntrada"].ColumnName            = "CFOP Entrada";
                dt.Columns["ValorUnitarioMenor"].ColumnName     = "Vlr Unit Mínimo";
                dt.Columns["ValorUnitarioDiferenca"].ColumnName = "Diferença Valor Unit";
                dt.Columns["BCEstorno"].ColumnName              = "BC a Estornar";
                dt.Columns["ICMSEstornar"].ColumnName           = "ICMS a Estornar";

                break;

            case EnumTipoRelatorio.PrecoUnitario:
                dt.Columns["Descricao"].ColumnName      = "Descrição Unificada";
                dt.Columns["ValorUnitario"].ColumnName  = "Valor Unitário";
                dt.Columns["PlanilhaOrigem"].ColumnName = "Origem";
                dt.Columns["NUM_NF"].ColumnName         = "Num. NF";
                dt.Columns["DataEntrada"].ColumnName    = "Data de Emissão";

                break;

            case EnumTipoRelatorio.Levantamento:

                if (dt.Columns.Contains("IdProdutoPai"))
                {
                    dt.Columns.Remove("IdProdutoPai");
                }

                if (dt.Columns.Contains("CorLinha"))
                {
                    dt.Columns.Remove("CorLinha");
                }

                dt.Columns["ProdutoDescricao"].ColumnName  = "Descrição Unificada";
                dt.Columns["UnidadeDescricao"].ColumnName  = "Unid";
                dt.Columns["QtdInicial"].ColumnName        = "Estoque Inicial SEF";
                dt.Columns["QtdEntrada"].ColumnName        = "Entradas";
                dt.Columns["QtdSaida"].ColumnName          = "Saídas";
                dt.Columns["QtdFinalCalculado"].ColumnName = "Estoque Final Calculado";
                dt.Columns["QtdFinal"].ColumnName          = "Estoque Final SEF";
                dt.Columns["QtdDiferenca"].ColumnName      = "Diferença";
                dt.Columns["OMISSAO"].ColumnName           = "Omissão";
                dt.Columns["ValorUnitario"].ColumnName     = "Valor Unitário (R$)";
                dt.Columns["BaseCalculo"].ColumnName       = "Base Cálculo (R$)";

                break;
            }

            return(dt);
        }