Commit 54820dcd authored by PedroLopesUPE's avatar PedroLopesUPE
Browse files

Processamento de array dos modelos antes do carregamento de PDF

Em testes, o relatório está sendo gerado por volta de 2 segundos
parent 47190822
...@@ -33,6 +33,7 @@ use App\Models\Tabelas\Pesquisa\PesquisaLideranca; ...@@ -33,6 +33,7 @@ use App\Models\Tabelas\Pesquisa\PesquisaLideranca;
use App\Models\Tabelas\Pesquisa\PesquisaOrientacao; use App\Models\Tabelas\Pesquisa\PesquisaOrientacao;
use App\Models\Tabelas\Pesquisa\PesquisaOutros; use App\Models\Tabelas\Pesquisa\PesquisaOutros;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Illuminate\Support\Arr;
use Illuminate\Support\Facades\Response; use Illuminate\Support\Facades\Response;
use Illuminate\Support\Facades\Validator; use Illuminate\Support\Facades\Validator;
use PDF; use PDF;
...@@ -144,14 +145,13 @@ class UserPadController extends Controller ...@@ -144,14 +145,13 @@ class UserPadController extends Controller
+ ExtensaoOutros::whereUserPadId($user_pad_id)->sum('ch_semanal'); + ExtensaoOutros::whereUserPadId($user_pad_id)->sum('ch_semanal');
$horas = [ $horas = [
'ensino' => $ensinoTotalHoras, 'ENSINO' => $ensinoTotalHoras,
'extensao' => $extensaoTotalHoras, 'EXTENSAO' => $extensaoTotalHoras,
'gestao' => $gestaoTotalHoras, 'GESTAO' => $gestaoTotalHoras,
'pesquisa' => $pesquisaTotalHoras 'PESQUISA' => $pesquisaTotalHoras
]; ];
$userPad = UserPad::whereId($user_pad_id)->first(); $userPad = UserPad::whereId($user_pad_id)->first();
$CU = $userPad->ensinoCoordenacaoRegencias->toArray();
$model['ensino'] = $model['ensino'] =
[PadTables::tablesEnsino($user_pad_id)[4]['name'] => $userPad->ensinoAtendimentoDiscentes->toArray(), [PadTables::tablesEnsino($user_pad_id)[4]['name'] => $userPad->ensinoAtendimentoDiscentes->toArray(),
PadTables::tablesEnsino($user_pad_id)[0]['name'] => $userPad->ensinoAulas->toArray(), PadTables::tablesEnsino($user_pad_id)[0]['name'] => $userPad->ensinoAulas->toArray(),
...@@ -185,55 +185,258 @@ class UserPadController extends Controller ...@@ -185,55 +185,258 @@ class UserPadController extends Controller
PadTables::tablesPesquisa($user_pad_id)[3]['name'] => $userPad->pesquisaOutros->toArray() PadTables::tablesPesquisa($user_pad_id)[3]['name'] => $userPad->pesquisaOutros->toArray()
]; ];
$dateTime = now()->format('d-m-Y (H:i:s)'); $dateTime = now()->format('d-m-Y (H:i:s)');
// foreach ($model as $nome_dimensao=>$dimensao) {
// dump(strtoupper($nome_dimensao)); // Geração de array tratado a partir do modelo
// foreach ($dimensao as $categoria) { $treated_model = [];
// // var_dump($categoria); $treated_nome_dimensao = "";
// foreach ($categoria as $item) { $treated_nome_categoria = "";
// // var_dump($item);
// foreach ($item as $value_name=>$value) { foreach ($model as $nome_dimensao=>$dimensao)
// if (array_search($value, $item) == "id" || {
// array_search($value, $item) == "user_pad_id" || $treated_nome_dimensao = strtoupper($nome_dimensao);
// array_search($value, $item) == "dimensao" || $treated_model = Arr::add($treated_model, $treated_nome_dimensao, []);
// array_search($value, $item) == "created_at" || foreach ($dimensao as $nome_categoria=>$categoria)
// array_search($value, $item) == "updated_at" || {
// array_search($value, $item) == "deleted_at") {
// continue; if ($categoria == null)
// } {
// else { continue;
// // $value_name; }
// } else
// } {
$treated_nome_categoria = str_replace(".", ":", $nome_categoria);
$treated_model[$treated_nome_dimensao] =
// // foreach (array_values($item) as $index=>$value) { Arr::add($treated_model[$treated_nome_dimensao], $treated_nome_categoria, []);
// // if ($index == 7 && ! array_key_exists("modalidade", $item)) { foreach ($categoria as $item_name=>$item)
// // dump("NULOOOO"); {
// // continue; $treated_model[$treated_nome_dimensao][$treated_nome_categoria] =
// // } Arr::add($treated_model[$treated_nome_dimensao][$treated_nome_categoria], $item_name, []);
// // if ($index > 2 && $index < 7) { foreach ($item as $value_name=>$value)
// // // var_dump ($item); {
// // dump("\n"); if ($value_name == "id" ||
// // var_dump ($value); $value_name == "user_pad_id" ||
// // } $value_name == "dimensao" ||
// // } $value_name == "created_at" ||
// break; $value_name == "updated_at" ||
// } $value_name == "deleted_at"
// break; )
// } {
// // break; continue;
// } }
elseif ($value_name == 'cod_atividade')
{
$treated_model[$treated_nome_dimensao][$treated_nome_categoria][$item_name] =
Arr::add($treated_model[$treated_nome_dimensao][$treated_nome_categoria][$item_name],
'Cód', $value);
}
elseif ($value_name == 'componente_curricular')
{
$treated_model[$treated_nome_dimensao][$treated_nome_categoria][$item_name] =
Arr::add($treated_model[$treated_nome_dimensao][$treated_nome_categoria][$item_name],
'Componente Curricular', $value);
}
elseif ($value_name == 'ch_semanal')
{
$treated_model[$treated_nome_dimensao][$treated_nome_categoria][$item_name] =
Arr::add($treated_model[$treated_nome_dimensao][$treated_nome_categoria][$item_name],
'CH Semanal', $value);
}
elseif ($value_name == 'curso')
{
$treated_model[$treated_nome_dimensao][$treated_nome_categoria][$item_name] =
Arr::add($treated_model[$treated_nome_dimensao][$treated_nome_categoria][$item_name],
'Curso', $value);
}
elseif ($value_name == 'descricao')
{
$treated_model[$treated_nome_dimensao][$treated_nome_categoria][$item_name] =
Arr::add($treated_model[$treated_nome_dimensao][$treated_nome_categoria][$item_name],
'Descrição', $value);
}
elseif ($value_name == 'discente')
{
$treated_model[$treated_nome_dimensao][$treated_nome_categoria][$item_name] =
Arr::add($treated_model[$treated_nome_dimensao][$treated_nome_categoria][$item_name],
'Curso', $value);
}
elseif ($value_name == 'documento')
{
$treated_model[$treated_nome_dimensao][$treated_nome_categoria][$item_name] =
Arr::add($treated_model[$treated_nome_dimensao][$treated_nome_categoria][$item_name],
'Documento', $value);
}
elseif ($value_name == 'titulo_projeto')
{
$treated_model[$treated_nome_dimensao][$treated_nome_categoria][$item_name] =
Arr::add($treated_model[$treated_nome_dimensao][$treated_nome_categoria][$item_name],
'Título do Projeto', $value);
}
elseif ($value_name == 'nome')
{
$treated_model[$treated_nome_dimensao][$treated_nome_categoria][$item_name] =
Arr::add($treated_model[$treated_nome_dimensao][$treated_nome_categoria][$item_name],
'Nome', $value);
}
elseif ($value_name == 'programa_extensao')
{
$treated_model[$treated_nome_dimensao][$treated_nome_categoria][$item_name] =
Arr::add($treated_model[$treated_nome_dimensao][$treated_nome_categoria][$item_name],
'Programa de Extensão', $value);
}
elseif ($value_name == 'linha_grupo_pesquisa')
{
$treated_model[$treated_nome_dimensao][$treated_nome_categoria][$item_name] =
Arr::add($treated_model[$treated_nome_dimensao][$treated_nome_categoria][$item_name],
'Linha E Grupo de Pesquisa', $value);
}
elseif ($value_name == 'atividade')
{
if ('1. EXTENSÃO (COORDENAÇÃO DE ATIVIDADES DE EXTENSÃO HOMOLOGADA NA PROEC)' == $nome_categoria)
{
continue;
}
else
{
$treated_model[$treated_nome_dimensao][$treated_nome_categoria][$item_name] =
Arr::add($treated_model[$treated_nome_dimensao][$treated_nome_categoria][$item_name],
'Atividade', $value);
}
}
elseif ($value_name == 'cod_dimensao')
{
if ('1. EXTENSÃO (COORDENAÇÃO DE ATIVIDADES DE EXTENSÃO HOMOLOGADA NA PROEC)' == $nome_categoria)
{
continue;
}
else
{
$treated_model[$treated_nome_dimensao][$treated_nome_categoria][$item_name] =
Arr::add($treated_model[$treated_nome_dimensao][$treated_nome_categoria][$item_name],
'Cód Dimensão', $value);
}
}
elseif ($value_name == "nivel")
{
if ($value == 1)
{
$treated_model[$treated_nome_dimensao][$treated_nome_categoria][$item_name] =
Arr::add($treated_model[$treated_nome_dimensao][$treated_nome_categoria][$item_name],
'Nível','Graduação');
}
elseif ($value == 2)
{
$treated_model[$treated_nome_dimensao][$treated_nome_categoria][$item_name] =
Arr::add($treated_model[$treated_nome_dimensao][$treated_nome_categoria][$item_name],
'Nível','Pós Graduação Lato Sensu');
}
elseif ($value == 3)
{
$treated_model[$treated_nome_dimensao][$treated_nome_categoria][$item_name] =
Arr::add($treated_model[$treated_nome_dimensao][$treated_nome_categoria][$item_name],
'Nível','Pós Graduação Stricto Sensu');
}
}
elseif ($value_name == "modalidade")
{
if ($value == 1)
{
$treated_model[$treated_nome_dimensao][$treated_nome_categoria][$item_name] =
Arr::add($treated_model[$treated_nome_dimensao][$treated_nome_categoria][$item_name],
'Modalidade','EAD');
}
elseif ($value == 2)
{
$treated_model[$treated_nome_dimensao][$treated_nome_categoria][$item_name] =
Arr::add($treated_model[$treated_nome_dimensao][$treated_nome_categoria][$item_name],
'Modalidade','Presencial');
}
}
elseif ($value_name == "funcao")
{
if ($value == 1)
{
$treated_model[$treated_nome_dimensao][$treated_nome_categoria][$item_name] =
Arr::add($treated_model[$treated_nome_dimensao][$treated_nome_categoria][$item_name],
'Função','Coordenador');
}
elseif ($value == 2)
{
$treated_model[$treated_nome_dimensao][$treated_nome_categoria][$item_name] =
Arr::add($treated_model[$treated_nome_dimensao][$treated_nome_categoria][$item_name],
'Função','Colaborador');
}
elseif ($value == 4)
{
$treated_model[$treated_nome_dimensao][$treated_nome_categoria][$item_name] =
Arr::add($treated_model[$treated_nome_dimensao][$treated_nome_categoria][$item_name],
'Função','Orientador');
}
elseif ($value == 5)
{
$treated_model[$treated_nome_dimensao][$treated_nome_categoria][$item_name] =
Arr::add($treated_model[$treated_nome_dimensao][$treated_nome_categoria][$item_name],
'Função','Co-Orientador');
}
elseif ($value == 6)
{
$treated_model[$treated_nome_dimensao][$treated_nome_categoria][$item_name] =
Arr::add($treated_model[$treated_nome_dimensao][$treated_nome_categoria][$item_name],
'Função','Membro');
}
}
elseif ($value_name == "natureza")
{
if ($value == 1)
{
$treated_model[$treated_nome_dimensao][$treated_nome_categoria][$item_name] =
Arr::add($treated_model[$treated_nome_dimensao][$treated_nome_categoria][$item_name],
'Natureza','Inovação');
}
elseif ($value == 2)
{
$treated_model[$treated_nome_dimensao][$treated_nome_categoria][$item_name] =
Arr::add($treated_model[$treated_nome_dimensao][$treated_nome_categoria][$item_name],
'Natureza','Pedagogia');
}
elseif ($value == 4)
{
$treated_model[$treated_nome_dimensao][$treated_nome_categoria][$item_name] =
Arr::add($treated_model[$treated_nome_dimensao][$treated_nome_categoria][$item_name],
'Natureza','Vivência');
}
elseif ($value == 5)
{
$treated_model[$treated_nome_dimensao][$treated_nome_categoria][$item_name] =
Arr::add($treated_model[$treated_nome_dimensao][$treated_nome_categoria][$item_name],
'Natureza','Outros');
}
}
else
{
$treated_model[$treated_nome_dimensao][$treated_nome_categoria][$item_name] =
Arr::add($treated_model[$treated_nome_dimensao][$treated_nome_categoria][$item_name],
$value_name, $value);
}
}
}
}
}
}
$data = array( $data = array(
'model' =>$model, 'model' =>$treated_model,
'horas' => $horas); 'horas' => $horas
);
// $treated_model = Arr::add($treated_model, '1.2.4. Ensino', "Abc");
// dd( // dd(
// // $userPad->pesquisaCoordenacoes->toArray(), // // $userPad->pesquisaCoordenacoes->toArray(),
// ($model['extensao']['1. EXTENSÃO (COORDENAÇÃO DE ATIVIDADES DE EXTENSÃO HOMOLOGADA NA PROEC)']), // // ($model['extensao']['1. EXTENSÃO (COORDENAÇÃO DE ATIVIDADES DE EXTENSÃO HOMOLOGADA NA PROEC)']),
// $treated_model,
// // array_values($model['ensino'])[0], // // array_values($model['ensino'])[0],
// // array_values($model['ensino'])[0][0], // // array_values($model['ensino'])[0][0],
// // array_values($model['ensino'])[0][0]['cod_atividade'], // // array_values($model['ensino'])[0][0]['cod_atividade'],
// // $ensinoTotalHoras, // // $ensinoTotalHoras,
// // $model, // $model,
// // $horas, // // $horas,
// // $data, // // $data,
// // $model['ensino']['8. ENSINO (COORDENAÇÃO OU MEMBRO DE NÚCLEO DOCENTE ESTRUTURANTE OU NÚCLEO DOCENTE ESTRUTURANTE ASSISTENCIAL)'] == null, // // $model['ensino']['8. ENSINO (COORDENAÇÃO OU MEMBRO DE NÚCLEO DOCENTE ESTRUTURANTE OU NÚCLEO DOCENTE ESTRUTURANTE ASSISTENCIAL)'] == null,
......
@extends('layouts.main') <header style="display: flex; direction: rtl">
</header>
@section('body') <div style="display: flex; flex-direction: column; gap: 4rem">
<header style="display: flex; direction: rtl"> @foreach ($data['model'] as $nome_dimensao=>$dimensao)
</header> <h1>{{$nome_dimensao}}</h1>
<div>
<div style="display: flex; flex-direction: column; gap: 4rem"> @foreach ($dimensao as $nome_categoria=>$categoria)
@foreach ($data['model'] as $nome_dimensao=>$dimensao) <h3>{{$nome_categoria}}</h3>
<h3>{{strtoupper($nome_dimensao)}}</h3>
<div> @foreach ($categoria as $item_name=>$item)
@foreach ($dimensao as $nome_categoria=>$categoria) <table style="border-radius: 5px; background-color: #F2F2F2;
@if ($categoria == null) min-width: 600px; box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.25); min-height: 50px; ">
@continue
@else <thead class="thead-dark">
<h3>{{$nome_categoria}}</h3> <tr>
@foreach ($item as $value_name=>$value)
<th style="font-weight: 600; padding: 0.3rem 0.7rem 0.7rem 0.3rem" scope="col">
{{$value_name}}
</th>
@endforeach
</tr>
</thead>
@foreach ($categoria as $item_name=>$item) <tbody>
<table style="border-radius: 5px; background-color: #F2F2F2; <tr>
min-width: 600px; box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.25); min-height: 50px; "> @foreach ($item as $value_name=>$value)
<td style="border: 1px solid #000; vertical-align: middle;
<thead class="thead-dark"> padding: 0.3rem 0.5rem 0.5rem 0.3rem">
<tr> {{$value}}
@foreach ($item as $value_name=>$value) </td>
@if ($value_name == "id" || @endforeach
$value_name == "user_pad_id" || </tr>
$value_name == "dimensao" || </tbody>
$value_name == "created_at" || </table>
$value_name == "updated_at" || <div style="height: 3rem"></div>
$value_name == "deleted_at"
)
@continue
@elseif ($value_name == 'atividade' || $value_name == 'cod_dimensao')
@if ('1. EXTENSÃO (COORDENAÇÃO DE ATIVIDADES DE EXTENSÃO HOMOLOGADA NA PROEC)' == $nome_categoria)
@continue
@endif
@else
<th class="p-1.5 text-black" scope="col">
{{$value_name}}
</th>
@endif
@endforeach
</tr>
</thead>
<tbody>
<tr>
@foreach ($item as $value_name=>$value)
@if ($value_name == "id" ||
$value_name == "user_pad_id" ||
$value_name == "dimensao" ||
$value_name == "created_at" ||
$value_name == "updated_at" ||
$value_name == "deleted_at"
)
@continue
@elseif ($value_name == 'atividade' || $value_name == 'cod_dimensao')
@if ('1. EXTENSÃO (COORDENAÇÃO DE ATIVIDADES DE EXTENSÃO HOMOLOGADA NA PROEC)' == $nome_categoria)
@continue
@endif
@elseif ($value_name == "nivel")
@if ($value == 1)
<td style="border-top: 1px solid #000; border-right: 1px solid #000; border-bottom: 1px solid #000; vertical-align: middle; padding: 0.7rem">
Graduação
</td>
@elseif ($value == 2)
<td style="border-top: 1px solid #000; border-right: 1px solid #000; border-bottom: 1px solid #000; vertical-align: middle; padding: 0.7rem">
Pós Graduação Lato Sensu
</td>
@elseif ($value == 3)
<td style="border-top: 1px solid #000; border-right: 1px solid #000; border-bottom: 1px solid #000; vertical-align: middle; padding: 0.7rem">
Pós Graduação Stricto Sensu
</td>
@endif
@elseif ($value_name == "modalidade")
@if ($value == 1)
<td style="border-top: 1px solid #000; border-right: 1px solid #000; border-bottom: 1px solid #000; vertical-align: middle; padding: 0.7rem">
EAD
</td>
@elseif ($value == 2)
<td style="border-top: 1px solid #000; border-right: 1px solid #000; border-bottom: 1px solid #000; vertical-align: middle; padding: 0.7rem">
Presencial
</td>
@endif
@elseif ($value_name == "funcao")
@if ($value == 1)
<td style="border-top: 1px solid #000; border-right: 1px solid #000; border-bottom: 1px solid #000; vertical-align: middle; padding: 0.7rem">
Coordenador
</td>
@elseif ($value == 2)
<td style="border-top: 1px solid #000; border-right: 1px solid #000; border-bottom: 1px solid #000; vertical-align: middle; padding: 0.7rem">
Colaborador
</td>
@elseif ($value == 4)
<td style="border-top: 1px solid #000; border-right: 1px solid #000; border-bottom: 1px solid #000; vertical-align: middle; padding: 0.7rem">
Orientador
</td>
@elseif ($value == 5)
<td style="border-top: 1px solid #000; border-right: 1px solid #000; border-bottom: 1px solid #000; vertical-align: middle; padding: 0.7rem">
Co-Orientador
</td>
@elseif ($value == 6)
<td style="border-top: 1px solid #000; border-right: 1px solid #000; border-bottom: 1px solid #000; vertical-align: middle; padding: 0.7rem">
Membro
</td>
@endif
@elseif ($value_name == "natureza")
@if ($value == 1)
<td style="border-top: 1px solid #000; border-right: 1px solid #000; border-bottom: 1px solid #000; vertical-align: middle; padding: 0.7rem">
Inovação
</td>
@elseif ($value == 2)
<td style="border-top: 1px solid #000; border-right: 1px solid #000; border-bottom: 1px solid #000; vertical-align: middle; padding: 0.7rem">
Pedagogia
</td>
@elseif ($value == 4)
<td style="border-top: 1px solid #000; border-right: 1px solid #000; border-bottom: 1px solid #000; vertical-align: middle; padding: 0.7rem">
Vivência
</td>
@elseif ($value == 5)
<td style="border-top: 1px solid #000; border-right: 1px solid #000; border-bottom: 1px solid #000; vertical-align: middle; padding: 0.7rem">
Outros
</td>
@endif
@else
<td style="border-top: 1px solid #000; border-right: 1px solid #000; border-bottom: 1px solid #000; vertical-align: middle; padding: 0.7rem">
{{$value}}
</td>
@endif
@endforeach
</tr>
</tbody>
</table>
<div style="height: 3rem"></div>
@endforeach
<div style="height: 1.5rem"></div>
@endif
@endforeach @endforeach
<table style="border-radius: 10px; background-color: #F2F2F2; <div style="height: 1.5rem"></div>
min-width: 600px; box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.25);
min-height: 50px;">
<thead class="thead-dark">
<tr>
<th style="text-align: center" scope="col">TOTAL DE HORAS</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: center; border-top: 1px solid #000; border-right: 1px solid #000; border-bottom: 1px solid #000; vertical-align: middle">
{{ $data['horas'][$nome_dimensao] }}
</td>
</tr>
</tbody>
</table>
</div>
@endforeach @endforeach
<table style="border-radius: 10px; background-color: #F2F2F2;
min-width: 600px; box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.25);
min-height: 50px;">
<thead class="thead-dark">
<tr>
<th style="text-align: center" scope="col">TOTAL DE HORAS</th>
</tr>
</thead>
<tbody>
<tr>
<td style="border: 1px solid #000; vertical-align: middle; text-align: center;
padding: 0.3rem 0.5rem 0.5rem 0.3rem">
{{ $data['horas'][$nome_dimensao] }}
</td>
</tr>
</tbody>
</table>
</div> </div>
@endsection @endforeach
</div>
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment