Commit 23b93973 authored by Guilherme Silva's avatar Guilherme Silva
Browse files

Criada página de resultados para editais com Cotas e adicionado opção de...

Criada página de resultados para editais com Cotas e adicionado opção de imprimir a lista de resultados
parent a8095590
...@@ -18,6 +18,7 @@ use App\Natureza; ...@@ -18,6 +18,7 @@ use App\Natureza;
use App\Trabalho; use App\Trabalho;
use App\FuncaoParticipantes; use App\FuncaoParticipantes;
use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Auth;
use PDF;
use Illuminate\Support\Str; use Illuminate\Support\Str;
use Illuminate\Support\Facades\Hash; use Illuminate\Support\Facades\Hash;
use App\Evento; use App\Evento;
...@@ -79,7 +80,7 @@ class AdministradorController extends Controller ...@@ -79,7 +80,7 @@ class AdministradorController extends Controller
$trabalhos = Trabalho::where('evento_id', $evento->id) $trabalhos = Trabalho::where('evento_id', $evento->id)
->whereIn('status', $status) ->whereIn('status', $status)
->orderBy('titulo') ->orderBy('titulo')
->paginate(5) ->paginate(10)
->withPath($withPath); ->withPath($withPath);
$funcaoParticipantes = FuncaoParticipantes::all(); $funcaoParticipantes = FuncaoParticipantes::all();
...@@ -131,9 +132,51 @@ class AdministradorController extends Controller ...@@ -131,9 +132,51 @@ class AdministradorController extends Controller
} }
public function showResultados(Request $request){ public function showResultados(Request $request){
//dd($request);
$evento = Evento::where('id', $request->evento_id)->first(); $evento = Evento::where('id', $request->evento_id)->first();
// Com cotas
if ($evento->cotaDoutor) {
// Ampla Concorrencia
$trabalhosAmpla = Trabalho::where('evento_id',$evento->id)
->where('modalidade','AmplaConcorrencia')->get();
foreach($trabalhosAmpla as $trabalho){
$trabalho->pontuacao = 0;
foreach($trabalho->avaliadors as $avaliador){
if($avaliador->tipo == "Interno"){
$parecerInterno = ParecerInterno::where([['avaliador_id',$avaliador->id],['trabalho_id',$trabalho->id]])->first();
if($parecerInterno != null){
$trabalho->pontuacao += $parecerInterno->statusAnexoPlanilhaPontuacao;
}
}
}
}
$trabalhosAmpla = $trabalhosAmpla->sort(function ($item, $next) {
return $item->pontuacao >= $next->pontuacao ? -1 : 1;
});
// Recém Doutor
$trabalhosDoutor = Trabalho::where('evento_id',$evento->id)
->where('modalidade','RecemDoutor')->get();
foreach($trabalhosDoutor as $trabalho){
$trabalho->pontuacao = 0;
foreach($trabalho->avaliadors as $avaliador){
if($avaliador->tipo == "Interno"){
$parecerInterno = ParecerInterno::where([['avaliador_id',$avaliador->id],['trabalho_id',$trabalho->id]])->first();
if($parecerInterno != null){
$trabalho->pontuacao += $parecerInterno->statusAnexoPlanilhaPontuacao;
}
}
}
}
$trabalhosDoutor = $trabalhosDoutor->sort(function ($item, $next) {
return $item->pontuacao >= $next->pontuacao ? -1 : 1;
});
return view('administrador.resultadosProjetosCotas')->with(['evento' => $evento, 'trabalhosAmpla' => $trabalhosAmpla, 'trabalhosDoutor' => $trabalhosDoutor]);
}
// Sem Cotas
$trabalhos = $evento->trabalhos; $trabalhos = $evento->trabalhos;
//foreach($trabalho->avaliadors as $avaliador)
foreach($trabalhos as $trabalho){ foreach($trabalhos as $trabalho){
$trabalho->pontuacao = 0; $trabalho->pontuacao = 0;
foreach($trabalho->avaliadors as $avaliador){ foreach($trabalho->avaliadors as $avaliador){
...@@ -786,4 +829,48 @@ class AdministradorController extends Controller ...@@ -786,4 +829,48 @@ class AdministradorController extends Controller
return response()->download($file, 'ModeloFormularioAvaliadorExternoPIBIC.docx', $headers); return response()->download($file, 'ModeloFormularioAvaliadorExternoPIBIC.docx', $headers);
} }
public function imprimirResultados(Request $request)
{
$evento = Evento::where('id', $request->id)->first();
// Ampla Concorrencia
$trabalhosAmpla = Trabalho::where('evento_id',$evento->id)
->where('modalidade','AmplaConcorrencia')->get();
foreach($trabalhosAmpla as $trabalho){
$trabalho->pontuacao = 0;
foreach($trabalho->avaliadors as $avaliador){
if($avaliador->tipo == "Interno"){
$parecerInterno = ParecerInterno::where([['avaliador_id',$avaliador->id],['trabalho_id',$trabalho->id]])->first();
if($parecerInterno != null){
$trabalho->pontuacao += $parecerInterno->statusAnexoPlanilhaPontuacao;
}
}
}
}
$trabalhosAmpla = $trabalhosAmpla->sort(function ($item, $next) {
return $item->pontuacao >= $next->pontuacao ? -1 : 1;
});
// Recém Doutor
$trabalhosDoutor = Trabalho::where('evento_id',$evento->id)
->where('modalidade','RecemDoutor')->get();
foreach($trabalhosDoutor as $trabalho){
$trabalho->pontuacao = 0;
foreach($trabalho->avaliadors as $avaliador){
if($avaliador->tipo == "Interno"){
$parecerInterno = ParecerInterno::where([['avaliador_id',$avaliador->id],['trabalho_id',$trabalho->id]])->first();
if($parecerInterno != null){
$trabalho->pontuacao += $parecerInterno->statusAnexoPlanilhaPontuacao;
}
}
}
}
$trabalhosDoutor = $trabalhosDoutor->sort(function ($item, $next) {
return $item->pontuacao >= $next->pontuacao ? -1 : 1;
});
$pdf = PDF::loadView('/administrador/resultadosProjetosCotas', compact('trabalhosDoutor', 'trabalhosAmpla', 'evento'));
return $pdf->setPaper('a4')->stream('Resultados.pdf');
}
} }
...@@ -13,12 +13,12 @@ ...@@ -13,12 +13,12 @@
<div class="row" > <div class="row" >
<div class="col-sm-4"> <div class="col-sm-4">
<div class="row"> <div class="row">
<div class="col-sm-2"> <div class="col-sm-2 noPrint">
<button class="btn" onclick="buscarProjeto(this.parentElement.parentElement.children[1].children[0])"> <button class="btn" onclick="buscarProjeto(this.parentElement.parentElement.children[1].children[0])">
<img src="{{asset('img/icons/logo_lupa.png')}}" alt=""> <img src="{{asset('img/icons/logo_lupa.png')}}" alt="">
</button> </button>
</div> </div>
<div class="col-sm-10"> <div class="col-sm-10 noPrint">
<input type="text" class="form-control form-control-edit" placeholder="Digite o nome do projeto" onkeyup="buscarProjeto(this)"> <input type="text" class="form-control form-control-edit" placeholder="Digite o nome do projeto" onkeyup="buscarProjeto(this)">
</div> </div>
</div> </div>
...@@ -26,9 +26,14 @@ ...@@ -26,9 +26,14 @@
<div class="col-sm-1"> <div class="col-sm-1">
</div> </div>
<div class="col-sm-5" style="float: center;"> <div class="col-sm-5 " style="float: center;">
<h4 class="titulo-table">Resultados</h4> <h4 class="titulo-table">Resultados</h4>
</div> </div>
<div class="col-sm-2 noPrint">
<form>
<input type="button" value="Imprimir" class="btn btn-primary float-right" onclick="window.print()"/>
</form>
</div>
</div> </div>
<hr> <hr>
</div> </div>
......
@extends('layouts.app')
@section('content')
<div class="container" style="margin-top: 100px;">
@if (session('sucesso'))
<div class="alert alert-success" role="alert">
{{ session('sucesso') }}
</div>
@endif
<div class="row justify-content-center noPrint" id="tudo">
<div class="col-sm-12">
<div class="row" >
<div class="col-sm-4">
<div class="row">
<div class="col-sm-2">
<button class="btn" onclick="buscarProjeto(this.parentElement.parentElement.children[1].children[0])">
<img src="{{asset('img/icons/logo_lupa.png')}}" alt="">
</button>
</div>
<div class="col-sm-10">
<input type="text" class="form-control form-control-edit" placeholder="Digite o nome do projeto" onkeyup="buscarProjeto(this)">
</div>
</div>
</div>
<div class="col-sm-1">
</div>
<div class="col-sm-5 noPrint" style="float: center;">
<h4 class="titulo-table">Resultados</h4>
</div>
<div class="col-sm-2">
<form>
<input type="button" value="Imprimir" class="btn btn-primary float-right" onclick="window.print()"/>
</form>
</div>
{{--<div class="col-sm-2">
<form method="GET" action="{{route('resultados.gerar')}}">
@csrf
<input type="hidden" value="{{$evento->id}}" name="id">
<button type="submit" class="btn btn-primary">Imprimir</button>
</form>
</div>--}}
</div>
<hr class="noPrint">
</div>
</div>
<div class="col-sm-12">
<h4 class="titulo-table" style="text-align: center">Recém-Doutor</h4>
</div>
<div class="row justify-content-center">
<div class="col-md-12">
<table class="table table-bordered" style="display: block; white-space: nowrap; border-radius:10px; margin-bottom:0px">
<thead>
<tr>
<th scope="col">Posição</th>
<th scope="col">Pontuação</th>
<th scope="col" style="width: 100%;">Nome do projeto</th>
<th scope="col">Proponente</th>
<th scope="col">Área</th>
<th scope="col">N. Planos</th>
<th scope="col">Avaliador</th>
<th scope="col">Status</th>
<th scope="col">Bolsas</th>
</tr>
</thead>
<tbody id="projetos">
@php $cont=1;@endphp
@foreach($trabalhosDoutor as $trabalho)
@if($trabalho->status == 'aprovado')
<tr>
<td>{{$cont}}</td>
<td>{{$trabalho->pontuacao}}</td>
<td style="max-width:100px; overflow-x:hidden; text-overflow:ellipsis">
{{$trabalho->titulo}}
</td>
<td>
{{$trabalho->proponente->user->name}}
</td>
<td>
{{$trabalho->area->nome}}
</td>
<td>
{{$trabalho->participantes->count()}}
</td>
<td>
@if($trabalho->avaliadors->count() > 0)
@foreach($trabalho->avaliadors as $avaliador)
{{$avaliador->user->name}}<br>
@endforeach
@else
Sem Atribuição
@endif
</td>
@if($trabalho->avaliadors->count() > 0)
<td>
@foreach($trabalho->avaliadors as $avaliador)
@if($avaliador->tipo == "Externo")
@if($avaliador->pivot->recomendacao != null ){{$avaliador->pivot->recomendacao}} @else Pendente @endif
<br>
@else
@php
$parecer = App\ParecerInterno::where([['avaliador_id',$avaliador->id],['trabalho_id',$trabalho->id]])->first();
@endphp
@if($parecer != null && $parecer->statusParecer !=null){{$parecer->statusParecer}} @else Pendente @endif
@endif
@endforeach
</td>
@else
<td>Pendente</td>
@endif
<td>
<button type="button" class="btn btn-primary" data-toggle="modal" data-target="#modalConfirmTrab{{$trabalho->id}}" >
Definir
</button>
</td>
</tr>
@php $cont+=1;@endphp
@endif
@endforeach
</tbody>
</table>
</div>
</div>
<hr>
<div class="col-sm-12">
<h4 class="titulo-table" style="text-align: center">Ampla Concorrência</h4>
</div>
<div class="row justify-content-center">
<div class="col-md-12">
<table class="table table-bordered" style="display: block; white-space: nowrap; border-radius:10px; margin-bottom:0px">
<thead>
<tr>
<th scope="col">Posição</th>
<th scope="col">Pontuação</th>
<th scope="col" style="width: 100%;">Nome do projeto</th>
<th scope="col">Proponente</th>
<th scope="col">Área</th>
<th scope="col">N. Planos</th>
<th scope="col">Avaliador</th>
<th scope="col">Status</th>
<th scope="col">Bolsas</th>
</tr>
</thead>
<tbody id="projetos">
@php $cont=1;@endphp
@foreach($trabalhosAmpla as $trabalho)
@if($trabalho->status == 'aprovado')
<tr>
<td>{{$cont}}</td>
<td>{{$trabalho->pontuacao}}</td>
<td style="max-width:100px; overflow-x:hidden; text-overflow:ellipsis">
{{$trabalho->titulo}}
</td>
<td>
{{$trabalho->proponente->user->name}}
</td>
<td>
{{$trabalho->area->nome}}
</td>
<td>
{{$trabalho->participantes->count()}}
</td>
<td>
@if($trabalho->avaliadors->count() > 0)
@foreach($trabalho->avaliadors as $avaliador)
{{$avaliador->user->name}}<br>
@endforeach
@else
Sem Atribuição
@endif
</td>
@if($trabalho->avaliadors->count() > 0)
<td>
@foreach($trabalho->avaliadors as $avaliador)
@if($avaliador->tipo == "Externo")
@if($avaliador->pivot->recomendacao != null ){{$avaliador->pivot->recomendacao}} @else Pendente @endif
<br>
@else
@php
$parecer = App\ParecerInterno::where([['avaliador_id',$avaliador->id],['trabalho_id',$trabalho->id]])->first();
@endphp
@if($parecer != null && $parecer->statusParecer !=null){{$parecer->statusParecer}} @else Pendente @endif
@endif
@endforeach
</td>
@else
<td>Pendente</td>
@endif
<td>
<button type="button" class="btn btn-primary" data-toggle="modal" data-target="#modalConfirmTrab{{$trabalho->id}}" >
Definir
</button>
</td>
</tr>
@php $cont+=1;@endphp
@endif
@endforeach
</tbody>
</table>
</div>
</div>
</div>
{{--Janelas Cotas--}}
@foreach($trabalhosDoutor as $trabalho)
<div class="modal fade" id="modalConfirmTrab{{$trabalho->id}}" tabindex="-1" role="dialog"
aria-labelledby="modalConfirmLabel" aria-hidden="true">
<div class="modal-dialog modal-lg modal-dialog-centered" role="document">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title" id="modalConfirmLabel" align="center" title="Participantes do {{$trabalho->titulo}}">
Projeto {{$trabalho->titulo}}</h4>
<button type="button" class="close" data-dismiss="modal" aria-label="Close" style="color: rgb(182, 182, 182)">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
@foreach($trabalho->participantes as $participante)
<div class="row modal-header-submeta">
<div class="col-sm-7" style="padding-left: 0px">
<p style="font-size: 22px">Discente: {{$participante->user->name}}</p>
</div>
<div class="col-sm-5 text-right" style="padding-right: 0px">
<form id="alteracao_bolsa{{$participante->id}}" method="POST" action="{{route('bolsa.alterar')}}">
@csrf
<input type="hidden" id="participante_{{$participante->id}}" name="id" value="{{$participante->id}}">
<input type="radio" id="bolsista{{$participante->id}}" name="tipo" value="Bolsista" required @if($participante->tipoBolsa=='Bolsista') checked @endif> Bolsista
<input type="radio" id="voluntario{{$participante->id}}" name="tipo" value="Voluntario" required @if($participante->tipoBolsa=='Voluntario') checked @endif> Voluntario
<button type="submit" class="btn btn-primary" form="alteracao_bolsa{{$participante->id}}">Definir</button>
</form>
</div>
</div>
<br>
@endforeach
</div>
</div>
</div>
</div>
@endforeach
{{--Janelas Sem Cotas--}}
@foreach($trabalhosAmpla as $trabalho)
<div class="modal fade" id="modalConfirmTrab{{$trabalho->id}}" tabindex="-1" role="dialog"
aria-labelledby="modalConfirmLabel" aria-hidden="true">
<div class="modal-dialog modal-lg modal-dialog-centered" role="document">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title" id="modalConfirmLabel" align="center" title="Participantes do {{$trabalho->titulo}}">
Projeto {{$trabalho->titulo}}</h4>
<button type="button" class="close" data-dismiss="modal" aria-label="Close" style="color: rgb(182, 182, 182)">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
@foreach($trabalho->participantes as $participante)
<div class="row modal-header-submeta">
<div class="col-sm-7" style="padding-left: 0px">
<p style="font-size: 22px">Discente: {{$participante->user->name}}</p>
</div>
<div class="col-sm-5 text-right" style="padding-right: 0px">
<form id="alteracao_bolsa{{$participante->id}}" method="POST" action="{{route('bolsa.alterar')}}">
@csrf
<input type="hidden" id="participante_{{$participante->id}}" name="id" value="{{$participante->id}}">
<input type="radio" id="bolsista{{$participante->id}}" name="tipo" value="Bolsista" required @if($participante->tipoBolsa=='Bolsista') checked @endif> Bolsista
<input type="radio" id="voluntario{{$participante->id}}" name="tipo" value="Voluntario" required @if($participante->tipoBolsa=='Voluntario') checked @endif> Voluntario
<button type="submit" class="btn btn-primary" form="alteracao_bolsa{{$participante->id}}">Definir</button>
</form>
</div>
</div>
<br>
@endforeach
</div>
</div>
</div>
</div>
@endforeach
@endsection
@section('javascript')
<script>
function buscarProjeto(input) {
var projetos = document.getElementById('projetos').children;
if(input.value.length > 2) {
for(var i = 0; i < projetos.length; i++) {
var nomeProjeto = projetos[i].innerText;
if(nomeProjeto.substr(0).indexOf(input.value) >= 0) {
projetos[i].style.display = "";
} else {
projetos[i].style.display = "none";
}
}
} else {
for(var i = 0; i < projetos.length; i++) {
projetos[i].style.display = "";
}
}
}
function myFunction(data){
document.getElementById('modalConfirmTrab'+data).modal('hide');
}
</script>
@endsection
\ No newline at end of file
...@@ -97,6 +97,8 @@ Route::group(['middleware' => ['isTemp', 'auth', 'verified']], function(){ ...@@ -97,6 +97,8 @@ Route::group(['middleware' => ['isTemp', 'auth', 'verified']], function(){
Route::get('/participante/index', 'ParticipanteController@index' )->name('participante.index'); Route::get('/participante/index', 'ParticipanteController@index' )->name('participante.index');
Route::get('/participante/edital/{id}', 'ParticipanteController@edital' )->name('participante.edital'); Route::get('/participante/edital/{id}', 'ParticipanteController@edital' )->name('participante.edital');
//######### Plano de Trablho ######################################## //######### Plano de Trablho ########################################
Route::prefix('/plano/trabalho')->name('plano.trabalho.')->group(function(){ Route::prefix('/plano/trabalho')->name('plano.trabalho.')->group(function(){
Route::get('/index/{evento_id}', 'PlanoTrabalhoController@index' )->name('index'); Route::get('/index/{evento_id}', 'PlanoTrabalhoController@index' )->name('index');
...@@ -151,6 +153,9 @@ Route::group(['middleware' => ['isTemp', 'auth', 'verified']], function(){ ...@@ -151,6 +153,9 @@ Route::group(['middleware' => ['isTemp', 'auth', 'verified']], function(){
Route::get( '/bolsas', 'ParticipanteController@listarParticipanteEdital' )->name('bolsas.listar'); Route::get( '/bolsas', 'ParticipanteController@listarParticipanteEdital' )->name('bolsas.listar');
Route::post( '/bolsas/alteracao', 'ParticipanteController@alterarBolsa' )->name('bolsa.alterar'); Route::post( '/bolsas/alteracao', 'ParticipanteController@alterarBolsa' )->name('bolsa.alterar');
//######### Imprimir Resultado #################################
Route::get('/usuarios/showResultados/imprimir', 'AdministradorController@imprimirResultados')->name('resultados.gerar');
//########## Relatórios //########## Relatórios
Route::get( '/projeto/planosTrabalho/{id}', 'ArquivoController@listar' )->name('planos.listar'); Route::get( '/projeto/planosTrabalho/{id}', 'ArquivoController@listar' )->name('planos.listar');
Route::post( '/projeto/planosTrabalho/anexarRelatorio', 'ArquivoController@anexarRelatorio' )->name('planos.anexar.relatorio'); Route::post( '/projeto/planosTrabalho/anexarRelatorio', 'ArquivoController@anexarRelatorio' )->name('planos.anexar.relatorio');
......
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