Beispiel #1
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!");
            }
        }