Commit d6e2a3e4 authored by Guilherme Silva's avatar Guilherme Silva
Browse files

Criada lógica para avaliacao de relatório

parent 8c71f4c5
......@@ -2,6 +2,7 @@
namespace App\Http\Controllers;
use App\AvaliacaoRelatorio;
use App\Notificacao;
use App\Substituicao;
use Illuminate\Http\Request;
......@@ -100,7 +101,21 @@ class AdministradorController extends Controller
$avalSelecionadosId = $trabalho->avaliadors->pluck('id');
$avalProjeto = Avaliador::whereNotIn('id', $avalSelecionadosId)->get();
$trabalho->aval = $avalProjeto;
// Usuarios que possuem avaliações de relatório
//$avaliacoesRelatorio = [];->join('users','users.id','=','candidatos.user_id')
$AvalRelatParcial = [];
$AvalRelatFinal = [];
foreach($trabalho->participantes as $participante) {
$avals = AvaliacaoRelatorio::where('arquivo_id', $participante->planoTrabalho->id)->get();
foreach($avals as $aval){
if($aval->tipo == "Parcial"){
array_push($AvalRelatParcial,$aval);
}else{
array_push($AvalRelatFinal,$aval);
}
}
}
//
$grandeAreas = GrandeArea::orderBy('nome')->get();
return view('administrador.analisarProposta')->with(
......@@ -109,7 +124,10 @@ class AdministradorController extends Controller
'evento' => $evento,
'substituicoesPendentes' => $substituicoesPendentes,
'substituicoesProjeto' => $substituicoesProjeto,
'grandeAreas' => $grandeAreas,]);
'grandeAreas' => $grandeAreas,
'AvalRelatParcial' => $AvalRelatParcial,
'AvalRelatFinal' => $AvalRelatFinal,
]);
}
public function showProjetos(Request $request){
......
<?php
namespace App\Http\Controllers;
use App\Arquivo;
use App\AvaliacaoRelatorio;
use App\Avaliador;
use App\Evento;
use App\Trabalho;
use App\User;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Storage;
use Auth;
class AvaliacaoRelatorioController extends Controller
{
public function create()
{
}
public function listarUser(Request $request){
$planos = Arquivo::where('trabalhoId',$request->trabalho_id)->get();
$avaliacoes = AvaliacaoRelatorio::where('user_id',$request->user_id)->get();
$trabalho = Trabalho::find($request->trabalho_id);
return view('avaliacaoRelatorio.listar', ["avaliacoes"=>$avaliacoes,"trabalho"=>$trabalho,"planos"=>$planos]);
}
public function listarUser2(Request $request){
$planos = Arquivo::where('trabalhoId',$request->trabalho_id)->get();
$avaliacoes = AvaliacaoRelatorio::where('user_id',$request->user_id)->get();
$trabalho = Trabalho::find($request->trabalho_id);
$evento = $trabalho->evento;
$hoje = \Carbon\Carbon::today('America/Recife');
$hoje = $hoje->toDateString();
if($evento->dt_fimRelatorioParcial < $hoje && $hoje<$evento->dt_inicioRelatorioFinal){
$tipoRelatorio="Parcial";
}else{
$tipoRelatorio="Final";
}
return view('avaliacaoRelatorio.listar2', ["avaliacoes"=>$avaliacoes,"trabalho"=>$trabalho,"planos"=>$planos,"evento"=>$evento,"tipoRelatorio"=>$tipoRelatorio]);
}
public function index(Request $request){
$avaliacoes = AvaliacaoRelatorio::where('user_id',Auth::user()->id)->get();
$hoje = \Carbon\Carbon::today('America/Recife');
$hoje = $hoje->toDateString();
return view('avaliacaoRelatorio.index', ["avaliacoes"=>$avaliacoes,"hoje"=>$hoje]);
}
public function listarProjeto(Request $request){
$planos = Arquivo::where('trabalhoId',$request->trabalho_id)->get();
$avaliacoes = AvaliacaoRelatorio::where('user_id',$request->user_id)->get();
$trabalho = Trabalho::find($request->trabalho_id);
return view('avaliacaoRelatorio.listar', ["avaliacoes"=>$avaliacoes,"trabalho"=>$trabalho,"planos"=>$planos]);
}
public function listarGeral(Request $request){
$planos = Arquivo::all();
$avaliacoes = AvaliacaoRelatorio::where('user_id',$request->user_id)->get();
return view('avaliacaoRelatorio.listar', ["avaliacoes"=>$avaliacoes,"planos"=>$planos]);
}
public function criar(Request $request){
$validatedData = $request->validate([
'nota' => ['required', 'integer',],
'comentario' => ['required'],
]);
$avaliacao = AvaliacaoRelatorio::find($request->avaliacao_id);
if($request->arquivo !=null){
$pasta = 'planoTrabalho/' . $request->plano_id . 'avaliacao/' . $request->avaliacao_id;
$avaliacao->arquivoAvaliacao = Storage::putFileAs($pasta, $request->arquivo, "AvaliacaoRelatorio.pdf");
}
$plano = Arquivo::find($request->plano_id);
$avaliacao->nota = $request->nota;
$avaliacao->comentario = $request->comentario;
$avaliacao->update();
$planos = Arquivo::where('trabalhoId',$request->trabalho_id)->get();
$avaliacoes = AvaliacaoRelatorio::where('user_id',$request->user_id)->get();
$trabalho = Trabalho::find($request->trabalho_id);
$evento = $trabalho->evento;
$hoje = \Carbon\Carbon::today('America/Recife');
$hoje = $hoje->toDateString();
if($evento->dt_fimRelatorioParcial < $hoje && $hoje<$evento->dt_inicioRelatorioFinal){
$tipoRelatorio="Parcial";
}else{
$tipoRelatorio="Final";
}
return view('avaliacaoRelatorio.listar2', ["avaliacoes"=>$avaliacoes,"trabalho"=>$trabalho,"planos"=>$planos,"evento"=>$evento,"tipoRelatorio"=>$tipoRelatorio,
'sucesso' => 'Avaliação do relatório '.$tipoRelatorio." do plano ".$plano->titulo.' realizada com sucesso.']);
}
public function atribuicaoAvaliador(Request $request){
$trabalho = Trabalho::find($request->trabalho_id);
foreach ($trabalho->participantes as $participante){
$avaliadoresId= $request->input('avaliadores_'.$participante->planoTrabalho->id.'_id');
// utilizado desta forma pois a versão do PHP 7.2 é preciso que o $array usado na função count($array) não pode ser um valor NULL.
$numeroDeItens = is_countable( $avaliadoresId ) ? count( $avaliadoresId ) : 0;
for ($i = 0; $i < $numeroDeItens; $i++){
$avaliacao = AvaliacaoRelatorio::create([
'tipo'=>$request->tipo_relatorio,
'comentario'=>'',
'nota'=>null,
'user_id'=>$avaliadoresId[$i],
'arquivo_id'=>$participante->planoTrabalho->id,
]);
$avaliacao->save();
if(Avaliador::where('user_id',$avaliadoresId[$i])->get()->count()==0){
$userTemp = User::find($avaliadoresId[$i]);
if($userTemp->instituicao==null || $userTemp->instituicao == "UFAPE" || $userTemp->instituicao == "Universidade Federal do Agreste de Pernambuco"){
$tipoAvaliador = "Interno";
}else{
$tipoAvaliador = "Externo";
}
$avaliador = new Avaliador();
$avaliador->tipo = $tipoAvaliador;
$avaliador->user_id = $avaliadoresId[$i];
$avaliador->save();
}
}
}
return redirect()->back();
}
}
......@@ -47,9 +47,19 @@ Route::group(['middleware' => ['isTemp', 'auth', 'verified']], function(){
Route::get( '/projetos-edital/{id}', 'ProponenteController@projetosEdital' )->name('proponente.projetosEdital')->middleware('auth');
Route::post('/proponente/edital/{edital_id}/projeto/{projeto_id}/solicitar_desligamento/{participante_id}', 'ProponenteController@solicitarDesligamento')->name('proponente.solicitar.desligamento');
//######### Rotas Administrador #################################
//######## Rotas Avaliador ####################################
Route::prefix('avaliacaoRelatorio')->name('avaliacaoRelatorio.')->group(function(){
Route::post('/atribuirAvaliadorPlano', 'AvaliacaoRelatorioController@atribuicaoAvaliador')->name('atribuicao.avaliador');
});
Route::post('/trabalho/planos/avaliacoes', 'AvaliacaoRelatorioController@listarUser')->name('planos.avaliacoesUser');
Route::get('/trabalho/planos/avaliacoes/index', 'AvaliacaoRelatorioController@index')->name('planos.avaliacoes.index');
Route::post('/trabalho/planos/avaliacoes/criar', 'AvaliacaoRelatorioController@criar')->name('planos.avaliacoesUser.criar');
//######### Rotas Administrador #################################
Route::get('/perfil-usuario', 'UserController@minhaConta' )->name('user.perfil')->middleware(['auth', 'verified']);
//######## Rotas Avaliador ####################################
......
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