Beispiel #1
0
        public ResultadoExportacao GerarArquivoAtividade(DadosExportacaoAtividadeModelo dados)
        {
            ResultadoExportacao resultadoExportacao = new ResultadoExportacao();

            try
            {
                string caminhoModelo = ArquivoDiretorioUtils.ObterDiretorioModelo();

                var caminhoGeracao = ArquivoDiretorioUtils.ObterDiretorioExportacaoAtividade();
                caminhoGeracao = ArquivoDiretorioUtils.ConstruirObterDiretorioData(caminhoGeracao);
                string caminhoCompletoExportacaoModelo = $"{caminhoModelo}LayoutExportacaoAtividade.xlsx";
                var    dataHora = DateTime.Now.ToString("dd_MM_yyy_HH_mm_ss");
                string caminhoCompletoExportacaoFinal = $"{caminhoGeracao}ExportacaoAtividadeGerada_{dataHora}.xlsx";
                ArquivoDiretorioUtils.CopiarArquivo(caminhoCompletoExportacaoModelo, caminhoCompletoExportacaoFinal);

                using (var workbook = new XLWorkbook(caminhoCompletoExportacaoFinal))
                {
                    ExportarDadosAtividade(workbook, dados);

                    workbook.Save();
                    workbook.Dispose();
                }

                string _b64 = Convert.ToBase64String(File.ReadAllBytes(caminhoCompletoExportacaoFinal));

                resultadoExportacao.planilha = _b64;

                return(resultadoExportacao);
            }
            catch (Exception)
            {
                throw;
            }
        }
Beispiel #2
0
        public IHttpActionResult ExportarDadosAtividade([FromBody] DadosExportacaoAtividadeModelo dadosExportacaoModelo)
        {
            ResultadoExportacao result;

            try
            {
                if (dadosExportacaoModelo == null)
                {
                    throw new Exception("Os dados da exportação não foram informados!");
                }

                result = this.exportacaoDadosNegocio.GerarArquivoAtividade(dadosExportacaoModelo);
            }
            catch (Exception exception)
            {
                throw new Exception(GeradorResponse.GenerateErrorResponseString((int)HttpStatusCode.BadRequest,
                                                                                $"", exception), exception);
            }
            return(Ok(GeradorResponse.GenerateSuccessResponse((int)HttpStatusCode.OK,
                                                              "", result)));
        }
Beispiel #3
0
        public void ExportarDadosAtividade(XLWorkbook wb, DadosExportacaoAtividadeModelo dados)
        {
            var folhaAtual      = wb.Worksheets.Worksheet("InventarioAtividade");
            int linha           = 5;
            int linhaAPreencher = 5;

            if (!folhaAtual.Cell("B1").Value.ToString().Contains("Atividade"))
            {
                throw new Exception("É necessário realizar a exportação de um inventário de atividade com o nome da planilha escrita da seguinte forma: 'InventarioAtividade'");
            }

            var resultadoInventario = inventariosAtividadePersistencia.ListarInventarioAtividadeExportacao(dados);

            if (resultadoInventario != null && resultadoInventario.Count > 0)
            {
                foreach (var item in resultadoInventario)
                {
                    string locais     = "";
                    var    peso       = pesoPersistencia.ListarPesoPorId(item.CodPeso);
                    var    perfil     = perfilCatalogoPersistencia.ListarPerfilCatalogoPorId(item.CodPerfilCatalogo);
                    var    duracao    = duracaoPersistencia.ListarDuracaoPorId(item.CodDuracao);
                    var    atividade  = atividadePersistencia.ListarAtividadePorId(item.CodAtividade);
                    var    disciplina = disciplinaPersistencia.ListarDisciplinaPorId(item.CodDisciplina);

                    folhaAtual.Cell($"B{linha}").Value = item.Codigo;
                    folhaAtual.Cell($"C{linha}").Value = disciplina.Nome;
                    folhaAtual.Cell($"D{linha}").Value = atividade.Nome;
                    folhaAtual.Cell($"E{linha}").Value = perfil.Codigo;
                    folhaAtual.Cell($"F{linha}").Value = item.RiscoGeral;
                    folhaAtual.Cell($"H{linha}").Value = peso.Nome;
                    folhaAtual.Cell($"I{linha}").Value = duracao.Nome;
                    folhaAtual.Cell($"J{linha}").Value = item.Descricao;
                    folhaAtual.Cell($"K{linha}").Value = item.ObservacaoGeral;

                    var itemLocal = localInstalacaoPersistencia.ListarLocaisInstalacaoPorCodInventarioAtividade(item.CodInventarioAtividade);
                    if (itemLocal.Count <= 0)
                    {
                        throw new Exception($"O inventário de atividade de código {item.Codigo} não possui local de instalação.");
                    }

                    // PREENCHIMENTO LOCAL INSTALAÇÃO
                    foreach (var itemLocalAtividade in itemLocal)
                    {
                        var localInstalacao = localInstalacaoPersistencia.ListarLocalInstalacaoPorId(itemLocalAtividade.CodLocalInstalacao);
                        locais += $"{localInstalacao.Nome};";
                    }
                    var tamanhoLocal        = locais.Length;
                    var nomeLocaisCorrigido = locais.Substring(0, tamanhoLocal - 1);

                    PreencherLocalInstalacao(folhaAtual, nomeLocaisCorrigido, linhaAPreencher);
                    locais = "";

                    // PREENCHIMENTO RISCOS
                    if (item.RISCO_INVENTARIO_ATIVIDADE.Count <= 0)
                    {
                        throw new Exception($"O inventário de atividade de código {item.Codigo} não possui riscos associados.");
                    }

                    IXLCell celulaAtual = folhaAtual.Cell($"M{linhaAPreencher}");

                    foreach (var itemRisco in item.RISCO_INVENTARIO_ATIVIDADE)
                    {
                        celulaAtual = PreencherRiscosAtividade(folhaAtual, itemRisco, celulaAtual);
                    }

                    linhaAPreencher++;
                    linha++;
                }

                folhaAtual.Style.Font.FontName  = "Arial";
                folhaAtual.Style.Font.FontSize  = 8;
                folhaAtual.Style.Font.FontColor = XLColor.Black;
            }
            else
            {
                throw new Exception("Não há inventário(s) com os filtros informados!");
            }
        }