diff --git a/app/AvaliacaoTrabalho.php b/app/AvaliacaoTrabalho.php new file mode 100644 index 0000000000000000000000000000000000000000..10c24c4f8544f9fe7e8c7b239239bd3173bc1027 --- /dev/null +++ b/app/AvaliacaoTrabalho.php @@ -0,0 +1,30 @@ +belongsTo('App\Trabalho'); + } + + public function avaliador(){ + return $this->belongsTo('App\Avaliador'); + } + + + public function campoAvaliacao(){ + return $this->belongsTo('App\CampoAvaliacao'); + } +} diff --git a/app/Avaliador.php b/app/Avaliador.php index e555542afa07125d262aaeb40d502cc6f86d244e..56ae3b5155bedd9edb85e4ddb047849a52fb5b1b 100755 --- a/app/Avaliador.php +++ b/app/Avaliador.php @@ -41,4 +41,8 @@ class Avaliador extends Model public function areaTematicas() { return $this->belongsToMany('App\AreaTematica', 'area_tematica_avaliadors', 'avaliador_id'); } + + public function avaliacaoTrabalho(){ + return $this->hasMany('App\AvaliacaoTrabalho'); + } } diff --git a/app/CampoAvaliacao.php b/app/CampoAvaliacao.php new file mode 100644 index 0000000000000000000000000000000000000000..2ad0937ec6facf896e1b6362e13337105f9a7112 --- /dev/null +++ b/app/CampoAvaliacao.php @@ -0,0 +1,26 @@ +belongsTo('App\Evento'); + } + + public function avaliacaoTrabalho(){ + return $this->hasMany('App\AvaliacaoTrabalho'); + } +} diff --git a/app/Evento.php b/app/Evento.php index cca79ea2729855036b44f30c4d076f8370d6a77f..4bb65dbed7e34a78438b99e99fe3c1745b913a19 100755 --- a/app/Evento.php +++ b/app/Evento.php @@ -47,6 +47,8 @@ class Evento extends Model public function avaliadors(){ return $this->belongsToMany('App\Avaliador')->withPivot('convite', 'created_at'); } - + public function campos_avaliacao(){ + return $this->hasMany('App\CampoAvaliacao'); +} } diff --git a/app/Http/Controllers/AdministradorController.php b/app/Http/Controllers/AdministradorController.php index 4e48d64932ecd494f3974f86d87b83f93d39b4dc..4bb860f9e068d73ced194b929775f49122374ee3 100755 --- a/app/Http/Controllers/AdministradorController.php +++ b/app/Http/Controllers/AdministradorController.php @@ -8,6 +8,8 @@ use App\Area; use App\Arquivo; use App\AvaliacaoRelatorio; use App\Avaliador; +use App\AvaliacaoTrabalho; +use App\CampoAvaliacao; use App\CoordenadorComissao; use App\Evento; use App\FuncaoParticipantes; @@ -255,40 +257,143 @@ class AdministradorController extends Controller foreach ($trabalhosAmpla as $trabalho) { $trabalho->pontuacao = 0; $cont = 0; - // Caso especial do PIBEX onde a pontuação fica no Ad Hoc - if ($evento->tipo == 'PIBEX') { - foreach ($trabalho->avaliadors as $avaliador) { - if (($avaliador->trabalhos()->where('trabalho_id', $trabalho->id)->first()->pivot->acesso == 1 || - $avaliador->trabalhos()->where('trabalho_id', $trabalho->id)->first()->pivot->acesso == 3) && - $avaliador->trabalhos()->where('trabalho_id', $trabalho->id)->first()->pivot->pontuacao != null) { - $trabalho->pontuacao += $avaliador->trabalhos()->where('trabalho_id', $trabalho->id)->first()->pivot->pontuacao; - ++$cont; - } - } - } else { - 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; + if ($evento->tipoAvaliacao == "form"){ + // Caso especial do PIBEX onde a pontuação fica no Ad Hoc + if ($evento->tipo == 'PIBEX') { + foreach ($trabalho->avaliadors as $avaliador) { + if (($avaliador->trabalhos()->where('trabalho_id', $trabalho->id)->first()->pivot->acesso == 1 || + $avaliador->trabalhos()->where('trabalho_id', $trabalho->id)->first()->pivot->acesso == 3) && + $avaliador->trabalhos()->where('trabalho_id', $trabalho->id)->first()->pivot->pontuacao != null) { + $trabalho->pontuacao += $avaliador->trabalhos()->where('trabalho_id', $trabalho->id)->first()->pivot->pontuacao; ++$cont; } } + } else { + 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; + ++$cont; + } + } + } } - } - if ($trabalho->pontuacao != 0) { - $trabalho->pontuacao = number_format(($trabalho->pontuacao / $cont), 2, ',', ''); + if ($trabalho->pontuacao != 0) { + $trabalho->pontuacao = number_format(($trabalho->pontuacao / $cont), 2, ',', ''); + } + } elseif ($evento->tipoAvaliacao == "campos"){ + foreach ($trabalho->avaliadors as $avaliador) { + $trabalho->pontuacao += $avaliador->trabalhos()->where('trabalho_id', $trabalho->id)->first()->pivot->pontuacao; + ++$cont; + } + + if ($trabalho->pontuacao != 0) { + $trabalho->pontuacao = number_format(($trabalho->pontuacao / $cont), 2, ',', ''); + } } } - $trabalhosAmpla = $trabalhosAmpla->sort(function ($item, $next) { - return $item->pontuacao >= $next->pontuacao ? -1 : 1; - }); - + if ($evento->tipoAvaliacao == "form") { + $trabalhosAmpla = $trabalhosAmpla->sort(function ($item, $next) { + return $item->pontuacao >= $next->pontuacao ? -1 : 1; + }); + } elseif ($evento->tipoAvaliacao == "campos") { + $camposAvaliacao = CampoAvaliacao::where('evento_id', $evento->id)->orderBy('prioridade', 'ASC')->get(); + + // Faz a classificação dos trabalhos de acordo com a pontuação e com a nota de cada campo de avaliação + $trabalhosAmpla = $trabalhosAmpla->sort(function ($item, $next) use ($camposAvaliacao){ + if ($item->pontuacao == $next->pontuacao) { + + foreach ($camposAvaliacao as $campo) { + $notaItem = $item->avaliacaoTrabalho()->where('campo_avaliacao_id', $campo->id)->first()->nota; + $notaNext = $next->avaliacaoTrabalho()->where('campo_avaliacao_id', $campo->id)->first()->nota; + if ($notaItem != $notaNext) { + return $notaItem >= $notaNext ? -1 : 1; + } + } + } else { + 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; + $cont = 0; + if ($evento->tipoAvaliacao == "form"){ + // Caso especial do PIBEX onde a pontuação fica no Ad Hoc + if ($evento->tipo == 'PIBEX') { + foreach ($trabalho->avaliadors as $avaliador) { + if (($avaliador->trabalhos()->where('trabalho_id', $trabalho->id)->first()->pivot->acesso == 1 || + $avaliador->trabalhos()->where('trabalho_id', $trabalho->id)->first()->pivot->acesso == 3) && + $avaliador->trabalhos()->where('trabalho_id', $trabalho->id)->first()->pivot->pontuacao != null) { + $trabalho->pontuacao += $avaliador->trabalhos()->where('trabalho_id', $trabalho->id)->first()->pivot->pontuacao; + ++$cont; + } + } + } else { + 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; + ++$cont; + } + } + } + } + + if ($trabalho->pontuacao != 0) { + $trabalho->pontuacao = number_format(($trabalho->pontuacao / $cont), 2, ',', ''); + } + + } elseif ($evento->tipoAvaliacao == "campos"){ + foreach ($trabalho->avaliadors as $avaliador) { + $trabalho->pontuacao += $avaliador->trabalhos()->where('trabalho_id', $trabalho->id)->first()->pivot->pontuacao; + ++$cont; + } + + if ($trabalho->pontuacao != 0) { + $trabalho->pontuacao = number_format(($trabalho->pontuacao / $cont), 2, ',', ''); + } + } + } + + if ($evento->tipoAvaliacao == "form") { + $trabalhosDoutor = $trabalhosDoutor->sort(function ($item, $next) { + return $item->pontuacao >= $next->pontuacao ? -1 : 1; + }); + } elseif ($evento->tipoAvaliacao == "campos") { + $camposAvaliacao = CampoAvaliacao::where('evento_id', $evento->id)->orderBy('prioridade', 'ASC')->get(); + + // Faz a classificação dos trabalhos de acordo com a pontuação e com a nota de cada campo de avaliação + $trabalhosDoutor = $trabalhosDoutor->sort(function ($item, $next) use ($camposAvaliacao){ + if ($item->pontuacao == $next->pontuacao) { + + foreach ($camposAvaliacao as $campo) { + $notaItem = $item->avaliacaoTrabalho()->where('campo_avaliacao_id', $campo->id)->first()->nota; + $notaNext = $next->avaliacaoTrabalho()->where('campo_avaliacao_id', $campo->id)->first()->nota; + if ($notaItem != $notaNext) { + return $notaItem >= $notaNext ? -1 : 1; + } + } + } else { + return $item->pontuacao >= $next->pontuacao ? -1 : 1; + } + }); + } + + return view('administrador.resultadosProjetosCotas')->with(['evento' => $evento, 'trabalhosAmpla' => $trabalhosAmpla, 'trabalhosDoutor' => $trabalhosDoutor]); + } + + // Sem Cotas + $trabalhos = $evento->trabalhos; + if ($evento->tipoAvaliacao == "form") { + foreach ($trabalhos as $trabalho) { $trabalho->pontuacao = 0; $cont = 0; // Caso especial do PIBEX onde a pontuação fica no Ad Hoc @@ -312,51 +417,47 @@ class AdministradorController extends Controller } } } - if ($trabalho->pontuacao != 0) { $trabalho->pontuacao = number_format(($trabalho->pontuacao / $cont), 2, ',', ''); } - } - $trabalhosDoutor = $trabalhosDoutor->sort(function ($item, $next) { - return $item->pontuacao >= $next->pontuacao ? -1 : 1; - }); - return view('administrador.resultadosProjetosCotas')->with(['evento' => $evento, 'trabalhosAmpla' => $trabalhosAmpla, 'trabalhosDoutor' => $trabalhosDoutor]); - } + $trabalhos = $trabalhos->sort(function ($item, $next) { + return $item->pontuacao >= $next->pontuacao ? -1 : 1; + }); + } + } elseif ($evento->tipoAvaliacao == "campos"){ + foreach ($trabalhos as $trabalho) { + //dd($trabalhos); + $trabalho->pontuacao = 0; + $cont = 0; + $camposAvaliacao = CampoAvaliacao::where('evento_id', $evento->id)->orderBy('prioridade', 'ASC')->get(); - // Sem Cotas - $trabalhos = $evento->trabalhos; - foreach ($trabalhos as $trabalho) { - $trabalho->pontuacao = 0; - $cont = 0; - // Caso especial do PIBEX onde a pontuação fica no Ad Hoc - if ($evento->tipo == 'PIBEX') { foreach ($trabalho->avaliadors as $avaliador) { - if (($avaliador->trabalhos()->where('trabalho_id', $trabalho->id)->first()->pivot->acesso == 1 || - $avaliador->trabalhos()->where('trabalho_id', $trabalho->id)->first()->pivot->acesso == 3) && - $avaliador->trabalhos()->where('trabalho_id', $trabalho->id)->first()->pivot->pontuacao != null) { - $trabalho->pontuacao += $avaliador->trabalhos()->where('trabalho_id', $trabalho->id)->first()->pivot->pontuacao; - ++$cont; - } + $trabalho->pontuacao += $avaliador->trabalhos()->where('trabalho_id', $trabalho->id)->first()->pivot->pontuacao; + ++$cont; } - } else { - 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; - ++$cont; + + if ($trabalho->pontuacao != 0) { + $trabalho->pontuacao = number_format(($trabalho->pontuacao / $cont), 2, ',', ''); + } + + // Faz a classificação dos trabalhos de acordo com a pontuação e com a nota de cada campo de avaliação + $trabalhos = $trabalhos->sort(function ($item, $next) use ($camposAvaliacao){ + if ($item->pontuacao == $next->pontuacao) { + + foreach ($camposAvaliacao as $campo) { + $notaItem = $item->avaliacaoTrabalho()->where('campo_avaliacao_id', $campo->id)->first()->nota; + $notaNext = $next->avaliacaoTrabalho()->where('campo_avaliacao_id', $campo->id)->first()->nota; + if ($notaItem != $notaNext) { + return $notaItem >= $notaNext ? -1 : 1; + } } + } else { + return $item->pontuacao >= $next->pontuacao ? -1 : 1; } - } - } - if ($trabalho->pontuacao != 0) { - $trabalho->pontuacao = number_format(($trabalho->pontuacao / $cont), 2, ',', ''); + }); } } - $trabalhos = $trabalhos->sort(function ($item, $next) { - return $item->pontuacao >= $next->pontuacao ? -1 : 1; - }); return view('administrador.resultadosProjetos')->with(['evento' => $evento, 'trabalhos' => $trabalhos]); } @@ -371,6 +472,29 @@ class AdministradorController extends Controller return view('administrador.visualizarParecer')->with(['trabalho' => $trabalho, 'parecer' => $parecer, 'avaliador' => $avaliador]); } + public function visualizarParecerLink(Request $request) + { + $avaliador = Avaliador::find($request->avaliador_id); + $trabalho = $avaliador->trabalhos->where('id', $request->trabalho_id)->first(); + $parecer = $avaliador->trabalhos->where('id', $request->trabalho_id)->first()->pivot; + $evento = Evento::find($trabalho->evento_id); + + //dd($parecer); + return view('administrador.visualizarParecerLink')->with(['trabalho' => $trabalho, 'parecer' => $parecer, 'avaliador' => $avaliador, 'evento' => $evento]); + } + + public function visualizarParecerBarema(Request $request) + { + $avaliador = Avaliador::find($request->avaliador_id); + $trabalho = $avaliador->trabalhos->where('id', $request->trabalho_id)->first(); + $parecer = $avaliador->trabalhos->where('id', $request->trabalho_id)->first()->pivot; + $avalTrabalho = AvaliacaoTrabalho::where('trabalho_id', $trabalho->id)->where('avaliador_id', $avaliador->id)->get(); + $camposAvaliacao = CampoAvaliacao::where('evento_id', $request->evento_id)->get(); + + //dd($parecer); + return view('administrador.visualizarParecerBarema')->with(['trabalho' => $trabalho, 'parecer' => $parecer, 'avaliador' => $avaliador, 'avalTrabalho' => $avalTrabalho, 'camposAvaliacao' => $camposAvaliacao]); + } + public function visualizarParecerInterno(Request $request) { $avaliador = Avaliador::find($request->avaliador_id); @@ -890,7 +1014,7 @@ class AdministradorController extends Controller 'tipo' => 5, ]); $notificacao->save(); - Notification::send($userTemp, new AtribuicaoAvaliadorExternoNotification($userTemp, $trabalho, $evento->formAvaliacaoExterno, $avaliador->trabalhos()->where('trabalho_id', $trabalho->id)->first()->pivot->acesso)); + Notification::send($userTemp, new AtribuicaoAvaliadorExternoNotification($userTemp, $trabalho, $evento->formAvaliacaoExterno, $avaliador->trabalhos()->where('trabalho_id', $trabalho->id)->first()->pivot->acesso, $evento->tipoAvaliacao)); } return redirect()->back(); diff --git a/app/Http/Controllers/AvaliacaoTrabalhoController.php b/app/Http/Controllers/AvaliacaoTrabalhoController.php new file mode 100644 index 0000000000000000000000000000000000000000..e055b7374c4abe7fed516168bdec382f7d2981ca --- /dev/null +++ b/app/Http/Controllers/AvaliacaoTrabalhoController.php @@ -0,0 +1,12 @@ +id); $evento = Evento::where('id', $request->evento_id)->first(); - //$trabalhos = $user->avaliadors->where('user_id',$user->id)->first()->trabalhos->where('evento_id', $request->evento_id); $trabalhosEx = []; $trabalhosIn = []; + $trabalhos = []; $aval = $user->avaliadors->where('user_id',$user->id)->first(); - foreach ($aval->trabalhos->where('evento_id',$evento->id) as $trab){ - if($aval->trabalhos()->where("trabalho_id",$trab->id)->first()->pivot->orderBy('created_at','DESC')->first()->acesso == 2 - || $aval->trabalhos()->where("trabalho_id",$trab->id)->first()->pivot->orderBy('created_at','DESC')->first()->acesso == 3 || - ($aval->trabalhos()->where("trabalho_id",$trab->id)->first()->pivot->orderBy('created_at','DESC')->first()->acesso == null && $aval->tipo == "Interno")){ - array_push($trabalhosIn,$aval->trabalhos()->where("trabalho_id",$trab->id)->first()); - } - if ($aval->trabalhos()->where("trabalho_id",$trab->id)->first()->pivot->orderBy('created_at','DESC')->first()->acesso == 1 || - $aval->trabalhos()->where("trabalho_id",$trab->id)->first()->pivot->orderBy('created_at','DESC')->first()->acesso == 3 || - ($aval->trabalhos()->where("trabalho_id",$trab->id)->first()->pivot->orderBy('created_at','DESC')->first()->acesso == null && $aval->tipo == "Externo")){ - array_push($trabalhosEx,$aval->trabalhos()->where("trabalho_id",$trab->id)->first()); + + if ($evento->tipoAvaliacao == 'campos' || $evento->tipoAvaliacao == 'link') { + $trabalhos = $aval->trabalhos->where('evento_id', $request->evento_id); + + } else { + foreach ($aval->trabalhos->where('evento_id',$evento->id) as $trab){ + if($aval->trabalhos()->where("trabalho_id",$trab->id)->first()->pivot->orderBy('created_at','DESC')->first()->acesso == 2 + || $aval->trabalhos()->where("trabalho_id",$trab->id)->first()->pivot->orderBy('created_at','DESC')->first()->acesso == 3 || + ($aval->trabalhos()->where("trabalho_id",$trab->id)->first()->pivot->orderBy('created_at','DESC')->first()->acesso == null && $aval->tipo == "Interno")){ + array_push($trabalhosIn,$aval->trabalhos()->where("trabalho_id",$trab->id)->first()); + } + if ($aval->trabalhos()->where("trabalho_id",$trab->id)->first()->pivot->orderBy('created_at','DESC')->first()->acesso == 1 || + $aval->trabalhos()->where("trabalho_id",$trab->id)->first()->pivot->orderBy('created_at','DESC')->first()->acesso == 3 || + ($aval->trabalhos()->where("trabalho_id",$trab->id)->first()->pivot->orderBy('created_at','DESC')->first()->acesso == null && $aval->tipo == "Externo")){ + array_push($trabalhosEx,$aval->trabalhos()->where("trabalho_id",$trab->id)->first()); + } } } - - return view('avaliador.listarTrabalhos', ['trabalhosEx'=>$trabalhosEx,'trabalhosIn'=>$trabalhosIn, 'evento'=>$evento]); + return view('avaliador.listarTrabalhos', ['trabalhosEx'=>$trabalhosEx,'trabalhosIn'=>$trabalhosIn, 'trabalhos'=>$trabalhos, 'evento'=>$evento]); } @@ -159,6 +166,7 @@ class AvaliadorController extends Controller //$trabalhos = $user->avaliadors->where('user_id',$user->id)->first()->trabalhos->where('evento_id', $request->evento_id); $trabalhosEx = []; $trabalhosIn = []; + $trabalhos = []; $aval = $user->avaliadors->where('user_id',$user->id)->first(); foreach ($aval->trabalhos->where('evento_id',$evento->id) as $trab){ if($aval->trabalhos()->where("trabalho_id",$trab->id)->first()->pivot->acesso == 2 || $aval->trabalhos()->where("trabalho_id",$trab->id)->first()->pivot->acesso == 3 ){ @@ -214,7 +222,99 @@ class AvaliadorController extends Controller $parecerInterno->update(); } - return view('avaliador.listarTrabalhos', ['trabalhosEx'=>$trabalhosEx,'trabalhosIn'=>$trabalhosIn, 'evento'=>$evento]); + if ($trabalho->avaliadors()->where('status', 1)->count() == $trabalho->avaliadors()->count()) { + $trabalho->status = "avaliado"; + $trabalho->save(); + } + + return view('avaliador.listarTrabalhos', ['trabalhosEx'=>$trabalhosEx,'trabalhosIn'=>$trabalhosIn, 'trabalhos'=>$trabalhos, 'evento'=>$evento]); + } + + public function parecerBarema(Request $request) { + + $user = User::find(Auth::user()->id); + $avaliador = $user->avaliadors->where('user_id',$user->id)->first(); + $trabalho = $avaliador->trabalhos->find($request->trabalho_id); + $evento = Evento::find($request->evento_id); + $hoje = Carbon::today('America/Recife'); + $hoje = $hoje->toDateString(); + $camposAvaliacao = CampoAvaliacao::where('evento_id', $evento->id)->get(); + + return view('avaliador.parecerBarema', ['trabalho'=>$trabalho, 'evento'=>$evento, 'hoje' => $hoje, 'camposAvaliacao' => $camposAvaliacao ]); + } + + public function enviarParecerBarema(Request $request) { + $user = User::find(Auth::user()->id); + $avaliador = $user->avaliadors->where('user_id',$user->id)->first(); + $camposAvaliacao = CampoAvaliacao::where('evento_id', $request->evento_id)->get(); + $avaliacaoTrab = AvaliacaoTrabalho::where('trabalho_id', $request->trabalho_id)->where('avaliador_id', $avaliador->id)->get(); + $evento = Evento::find($request->evento_id); + $trabalho = $avaliador->trabalhos->find($request->trabalho_id); + $data = Carbon::now('America/Recife'); + + if ($avaliacaoTrab->count() > 0) { + foreach ($avaliacaoTrab as $avaliacao) { + $avaliacao->forceDelete(); + } + } + + $i = 0; + $pontuacao = 0; + + foreach ($camposAvaliacao as $campoAvaliacao) { + //dd("a"); + $avaliacaoTrab = new AvaliacaoTrabalho(); + $avaliacaoTrab->nota = $request->inputField[$i]['nota']; + $avaliacaoTrab->avaliador_id = $avaliador->id; + $avaliacaoTrab->campo_avaliacao_id = $campoAvaliacao->id; + $avaliacaoTrab->trabalho_id = $request->trabalho_id; + $avaliacaoTrab->save(); + + $pontuacao += number_format($request->inputField[$i]['nota']); + ++$i; + + } + + $avaliador->trabalhos()->updateExistingPivot($trabalho->id,['status'=> 1, 'recomendacao'=>$request->recomendacao, 'created_at' => $data, 'pontuacao' => $pontuacao]); + + if ($trabalho->avaliadors()->where('status', 1)->count() == $trabalho->avaliadors()->count()) { + $trabalho->status = "avaliado"; + $trabalho->save(); + } + + return redirect(route('avaliador.visualizarTrabalho', ['evento_id' => $evento->id])); + } + + public function parecerLink(Request $request) { + $user = User::find(Auth::user()->id); + $avaliador = $user->avaliadors->where('user_id',$user->id)->first(); + $trabalho = $avaliador->trabalhos->find($request->trabalho_id); + $evento = Evento::find($request->evento_id); + $hoje = Carbon::today('America/Recife'); + $hoje = $hoje->toDateString(); + + return view('avaliador.parecerLink', ['trabalho'=>$trabalho, 'evento'=>$evento, 'hoje' => $hoje]); + } + + public function enviarParecerLink(Request $request) { + $user = User::find(Auth::user()->id); + $evento = Evento::find($request->evento_id); + $avaliador = $user->avaliadors->where('user_id',$user->id)->first(); + $trabalho = $avaliador->trabalhos->find($request->trabalho_id); + $data = Carbon::now('America/Recife'); + + if ($request->pontuacao == null) { + $avaliador->trabalhos()->updateExistingPivot($trabalho->id,['status'=> 1, 'recomendacao'=>$request->recomendacao, 'created_at' => $data]); + } else { + $avaliador->trabalhos()->updateExistingPivot($trabalho->id,['status'=> 1, 'recomendacao'=>$request->recomendacao, 'created_at' => $data, 'pontuacao' => $request->pontuacao]); + } + + if ($trabalho->avaliadors()->where('status', 1)->count() == $trabalho->avaliadors()->count()) { + $trabalho->status = "avaliado"; + $trabalho->save(); + } + + return redirect(route('avaliador.visualizarTrabalho', ['evento_id' => $evento->id])); } public function parecerPlano(Request $request){ @@ -272,8 +372,12 @@ class AvaliadorController extends Controller ->updateExistingPivot($trabalho->id,['status'=> 1,'parecer'=>$request->textParecer,'AnexoParecer'=> $anexoParecer, 'recomendacao'=>$request->recomendacao, 'created_at' => $data]); } } + + if ($trabalho->avaliadors()->where('status', 1)->count() == $trabalho->avaliadors()->count()) { + $trabalho->status = "avaliado"; + $trabalho->save(); + } - return redirect(route('avaliador.visualizarTrabalho', ['evento_id' => $evento->id])); } public function conviteResposta(Request $request){ diff --git a/app/Http/Controllers/CampoAvaliacaoController.php b/app/Http/Controllers/CampoAvaliacaoController.php new file mode 100644 index 0000000000000000000000000000000000000000..afd191d025b8844cfdc9c79f5b2fee26a0e05d8d --- /dev/null +++ b/app/Http/Controllers/CampoAvaliacaoController.php @@ -0,0 +1,11 @@ +toDateString(); @@ -122,6 +122,7 @@ class EventoController extends Controller 'natureza' => ['required'], 'coordenador_id' => ['required'], 'numParticipantes' => ['required'], + 'tipoAvaliacao' => ['required'], 'inicioSubmissao' => ['required', 'date'], 'fimSubmissao' => ['required', 'date'], 'inicioRevisao' => ['required', 'date'], @@ -134,7 +135,6 @@ class EventoController extends Controller 'dt_fimRelatorioParcial' => ['required', 'date'], 'dt_inicioRelatorioFinal' => ['required', 'date'], 'dt_fimRelatorioFinal' => ['required', 'date'], - 'pdfFormAvalExterno' => [($request->pdfFormAvalExternoPreenchido!=='sim'?'required':''), 'file','mimes:pdf,doc,docx,xlsx,xls,csv,zip', 'max:2048'], 'pdfEdital' => [($request->pdfEditalPreenchido!=='sim'?'required':''), 'file', 'mimes:pdf', 'max:2048'], 'inicioProjeto' => ['required', 'date'], 'fimProjeto' => ['required', 'date'], @@ -152,8 +152,9 @@ class EventoController extends Controller 'tipo' => ['required', 'string'], 'natureza' => ['required'], 'coordenador_id' => ['required'], - 'numParticipantes' => ['required'], + 'numParticipantes' => ['required'], 'nome_docExtra' => [Rule::requiredIf($request->check_docExtra != null),'max:255'], + 'tipoAvaliacao' => ['required'], #---------------------------------------------- 'inicioSubmissao' => ['required', 'date', 'after:yesterday'], 'fimSubmissao' => ['required', 'date', 'after_or_equal:inicioSubmissao'], @@ -167,12 +168,33 @@ class EventoController extends Controller 'dt_fimRelatorioParcial' => ['required', 'date', 'after_or_equal:dt_inicioRelatorioParcial'], 'dt_inicioRelatorioFinal' => ['required', 'date', 'after:dt_fimRelatorioParcial'], 'dt_fimRelatorioFinal' => ['required', 'date', 'after_or_equal:dt_inicioRelatorioFinal'], - 'pdfFormAvalExterno' => [($request->pdfFormAvalExternoPreenchido!=='sim'?'required':''), 'file','mimes:pdf,doc,docx,xlsx,xls,csv,zip', 'max:2048'], 'pdfEdital' => [($request->pdfEditalPreenchido!=='sim'?'required':''), 'file', 'mimes:pdf', 'max:2048'], 'inicioProjeto' => ['required', 'date', 'after:yesterday'], 'fimProjeto' => ['required', 'date', 'after_or_equal:fimSubmissao'], //'modeloDocumento' => ['file', 'mimes:zip,doc,docx,odt,pdf', 'max:2048'], ]); + + // Validação quando avaliação for por Barema + if ($request->tipoAvaliacao == 'form') { + $validateAvaliacao = $request->validate([ + 'pdfFormAvalExterno' => [($request->pdfFormAvalExternoPreenchido!=='sim'?'required':''), 'file', 'mimes:pdf,doc,docx,xlsx,xls,csv,zip', 'max:2048'], + ]); + } elseif ($request->tipoAvaliacao == 'campos') { + if($request->has('campos')){ + $validateCampo = $request->validate([ + 'inputField.*.nome' => ['required', 'string'], + 'inputField.*.nota_maxima' => ['required'], + 'inputField.*.prioridade' => ['required'], + 'somaNotas' => ['required', 'numeric', 'max:' . $request->pontuacao, 'min:' . $request->pontuacao], + ['somaNotas.*' => 'A soma das notas máximas deve ser igual a pontuação total definida.'] + ]); + } + } elseif ($request->tipoAvaliacao == 'link') { + $validateAvaliacao = $request->validate([ + 'link' => ['required', 'url'], + ]); + } + //$evento = Evento::create([ $evento['nome'] = $request->nome; @@ -203,6 +225,10 @@ class EventoController extends Controller $evento['anexosStatus'] = 'final'; $evento['inicioProjeto'] = $request->inicioProjeto; $evento['fimProjeto'] = $request->fimProjeto; + $evento['tipoAvaliacao'] = $request->tipoAvaliacao; + if($request->tipoAvaliacao == "link") { + $evento['formAvaliacaoExterno'] = $request->link; + } //dd($evento); // $user = User::find($request->coordenador_id); @@ -238,7 +264,7 @@ class EventoController extends Controller } - if(isset($request->pdfFormAvalExterno)){ + if(isset($request->pdfFormAvalExterno) && ($request->tipoAvaliacao == 'form')){ $pdfFormAvalExterno = $request->pdfFormAvalExterno; $extension = $pdfFormAvalExterno->extension(); $path = 'pdfFormAvalExterno/' . $evento->id . '/'; @@ -257,7 +283,7 @@ class EventoController extends Controller $evento->formAvaliacaoRelatorio = $path . $nome; } - if(isset($request->docTutorial)){ + if(isset($request->docTutorial) && ($request->tipoAvaliacao == 'form')){ $docTutorial = $request->docTutorial; $extension = $docTutorial->extension(); $path = 'docTutorial/' . $evento->id . '/'; @@ -269,6 +295,23 @@ class EventoController extends Controller $evento->update(); + // Criando campos de avaliacao + if ($request->tipoAvaliacao == 'campos') { + if($request->has('campos')){ + foreach ($request->get('campos') as $key => $value) { + $campoAval = new CampoAvaliacao(); + $campoAval->nome = $request->inputField[$value]['nome']; + $campoAval->nota_maxima = $request->inputField[$value]['nota_maxima']; + if ($request->inputField[$value]['descricao'] != null){ + $campoAval->descricao = $request->inputField[$value]['descricao']; + } + $campoAval->prioridade = $request->inputField[$value]['prioridade']; + $campoAval->evento_id = $evento->id; + $campoAval->save(); + } + } + } + // $user = Auth::user(); // $subject = "Evento Criado"; // Mail::to($user->email) @@ -300,7 +343,7 @@ class EventoController extends Controller $nome = "modelo" . "." . $extension; $eventoTemp->modeloDocumento = Storage::putFileAs($path, $request->modeloDocumento, $nome); } - if(!(is_null($request->pdfFormAvalExterno)) ) { + if(!(is_null($request->pdfFormAvalExterno)) && ($request->tipoAvaliacao == 'form')) { $extension = $request->pdfFormAvalExterno->extension(); $pasta = 'pdfFormAvalExterno/' . $eventoTemp->id; $nome = "formulario de avaliação externo" . "." . $extension; @@ -311,7 +354,7 @@ class EventoController extends Controller $eventoTemp->formAvaliacaoRelatorio = Storage::putFileAs($pasta, $request->pdfFormAvalRelatorio, 'formulario de avaliação do relatorio.pdf'); } - if(!(is_null($request->docTutorial)) ) { + if(!(is_null($request->docTutorial)) && ($request->tipoAvaliacao == 'form')) { $extension = $request->docTutorial->extension(); $pasta = 'docTutorial/' . $eventoTemp->id; $nome = "documento tutorial" . "." . $extension; @@ -405,11 +448,20 @@ class EventoController extends Controller $naturezas = Natureza::orderBy('nome')->get(); $yesterday = Carbon::yesterday('America/Recife'); $yesterday = $yesterday->toDateString(); + $camposAvaliacao = CampoAvaliacao::where('evento_id', $id)->get(); + + $pontuacao = 0; + foreach ($camposAvaliacao as $campo) { + $pontuacao += $campo->nota_maxima; + } + return view('evento.editarEvento',['evento'=>$evento, 'coordenadores'=>$coordenadors, 'naturezas'=>$naturezas, 'ontem'=>$yesterday, - 'coordEvent'=>$coordEvent]); + 'coordEvent'=>$coordEvent, + 'camposAvaliacao'=>$camposAvaliacao, + 'pontuacao'=>$pontuacao]); } /** @@ -427,6 +479,7 @@ class EventoController extends Controller $evento = Evento::find($id); $yesterday = Carbon::yesterday('America/Recife'); $yesterday = $yesterday->toDateString(); + $camposAvaliacao = CampoAvaliacao::where('evento_id', $id); if( $request->inicioSubmissao == null || $request->fimSubmissao == null || @@ -443,6 +496,7 @@ class EventoController extends Controller 'tipo' => ['required', 'string'], 'natureza' => ['required'], 'numParticipantes' => ['required'], + 'tipoAvaliacao' => ['required'], 'inicioSubmissao' => ['required', 'date'], 'fimSubmissao' => ['required', 'date'], 'inicioRevisao' => ['required', 'date', 'after:fimSubmissao'], @@ -457,7 +511,6 @@ class EventoController extends Controller 'dt_fimRelatorioFinal' => ['required', 'date'], 'pdfEdital' => ['file', 'mimes:pdf', 'max:2048'], 'modeloDocumento' => ['file', 'mimes:zip,doc,docx,odt,pdf', 'max:2048'], - 'pdfFormAvalExterno' => ['file','mimes:pdf,doc,docx,xlsx,xls,csv,zip', 'max:2048'], 'pdfFormAvalRelatorio' => ['file', 'mimes:pdf', 'max:2048'], 'inicioProjeto' => ['required', 'date'], 'fimProjeto' => ['required', 'date'], @@ -473,6 +526,7 @@ class EventoController extends Controller 'tipo' => ['required', 'string'], 'natureza' => ['required'], 'numParticipantes' => ['required'], + 'tipoAvaliacao' => ['required'], 'inicioSubmissao' => ['required', 'date', 'after_or_equal:inicioSubmissao'], 'fimSubmissao' => ['required', 'date', 'after_or_equal:inicioSubmissao'], 'inicioRevisao' => ['required', 'date', 'after:fimSubmissao'], @@ -487,13 +541,32 @@ class EventoController extends Controller 'dt_fimRelatorioFinal' => ['required', 'date', 'after_or_equal:dt_inicioRelatorioFinal'], 'modeloDocumento' => ['file', 'mimes:zip,doc,docx,odt,pdf', 'max:2048'], 'pdfFormAvalExterno' => ['file', 'mimes:pdf,doc,docx,xlsx,xls,csv,zip', 'max:2048'], - 'pdfFormAvalRelatorio' => ['file', 'mimes:pdf', 'max:2048'], 'inicioProjeto' => ['required', 'date', 'after:resultado_final'], 'fimProjeto' => ['required', 'date', 'after:inicioProjeto'], 'docTutorial' => ['file', 'mimes:zip,doc,docx,pdf', 'max:2048'], 'nome_docExtra' => [Rule::requiredIf($request->check_docExtra != null) , 'max:255'], ]); + if ($request->tipoAvaliacao == 'form') { + $validateAvaliacao = $request->validate([ + 'pdfFormAvalExterno' => ['file','mimes:pdf,doc,docx,xlsx,xls,csv,zip', 'max:2048'], + ]); + } elseif ($request->tipoAvaliacao == 'campos') { + if($request->has('campos')){ + $validateCampo = $request->validate([ + 'inputField.*.nome' => ['required', 'string'], + 'inputField.*.nota_maxima' => ['required'], + 'inputField.*.prioridade' => ['required'], + 'somaNotas' => ['required', 'numeric', 'max:' . $request->pontuacao, 'min:' . $request->pontuacao], + ['somaNotas.*' => 'A soma das notas máximas deve ser igual a pontuação total definida.'] + ]); + } + } elseif ($request->tipoAvaliacao == 'link') { + $validateAvaliacao = $request->validate([ + 'link' => ['required', 'url'], + ]); + } + $evento->nome = $request->nome; $evento->descricao = $request->descricao; $evento->tipo = $request->tipo; @@ -522,6 +595,11 @@ class EventoController extends Controller $evento->obrigatoriedade_docExtra = $request->has('obrigatoriedade_docExtra'); $evento->inicioProjeto = $request->inicioProjeto; $evento->fimProjeto = $request->fimProjeto; + $evento->tipoAvaliacao = $request->tipoAvaliacao; + if($request->tipoAvaliacao == "link") { + $evento->formAvaliacaoExterno = $request->link; + } + if($request->pdfEdital != null){ $pdfEdital = $request->pdfEdital; $path = 'pdfEdital/' . $evento->id . '/'; @@ -539,7 +617,7 @@ class EventoController extends Controller } - if(isset($request->pdfFormAvalExterno)){ + if(isset($request->pdfFormAvalExterno) && ($request->tipoAvaliacao == 'form')){ $pdfFormAvalExterno = $request->pdfFormAvalExterno; $extension = $pdfFormAvalExterno->extension(); $path = 'pdfFormAvalExterno/' . $evento->id . '/'; @@ -549,7 +627,7 @@ class EventoController extends Controller $evento->formAvaliacaoExterno = $path . $nome; } - if($request->docTutorial != null){ + if ($request->docTutorial != null && ($request->tipoAvaliacao == 'form')){ $docTutorial = $request->docTutorial; $extension = $docTutorial->extension(); $path = 'docTutorial/' . $evento->id . '/'; @@ -568,6 +646,46 @@ class EventoController extends Controller $evento->formAvaliacaoRelatorio = $path . $nome; } + // Editando campos de avaliacao + if ($request->tipoAvaliacao == 'campos') { + if($request->has('campos')){ + $camposAvaliacao->forceDelete(); + foreach ($request->get('campos') as $key => $value) { + $campoAval = new CampoAvaliacao(); + $campoAval->nome = $request->inputField[$value]['nome']; + $campoAval->nota_maxima = $request->inputField[$value]['nota_maxima']; + if ($request->inputField[$value]['descricao'] != null){ + $campoAval->descricao = $request->inputField[$value]['descricao']; + } + $campoAval->prioridade = $request->inputField[$value]['prioridade']; + $campoAval->evento_id = $evento->id; + $campoAval->save(); + } + } + } + + // Mudança de tipo de avaliação + if ($request->tipoAvaliacao != 'form') { + //Apagar arquivos do formulário de avaliação + + //if (Storage::exists('pdfFormAvalExterno/' . $evento->id)) { + Storage::deleteDirectory('pdfFormAvalExterno/' . $evento->id ); + //} + //if (Storage::exists('docTutorial/' . $evento->id)) { + Storage::deleteDirectory('docTutorial/' . $evento->id ); + //} + + if ($request->tipoAvaliacao == 'campos') { + $evento->formAvaliacaoExterno = null; + } + $evento->docTutorial = null; + } + + if ($request->tipoAvaliacao != 'campos') { + //Apaga campos de avaliacao + $camposAvaliacao->forceDelete(); + } + $evento->update(); $eventos = Evento::orderBy('nome')->get(); @@ -596,6 +714,7 @@ class EventoController extends Controller $comissao = ComissaoEvento::where('eventosId', $id); $revisores = Revisor::where('eventoId', $id); $trabalhos = Trabalho::where('evento_id', $id); + $camposAvaliacao = CampoAvaliacao::where('evento_id', $id); // if(isset($areas)){ // $areas->delete(); @@ -613,13 +732,17 @@ class EventoController extends Controller $trabalhos->delete(); Trabalho::withTrashed()->where('evento_id', $id)->update(['evento_id' => null]); } + if(isset($camposAvaliacao)){ + $camposAvaliacao->delete(); + CampoAvaliacao::withTrashed()->where('evento_id', $id)->update(['evento_id' => null]); + } Storage::deleteDirectory('pdfEdital/' . $evento->id ); Storage::deleteDirectory('modeloDocumento/' . $evento->id); $evento->delete(); - return redirect()->back(); + return redirect()->back()->with(['mensagem' => 'Edital deletado com sucesso!']); } public function detalhes(Request $request){ @@ -647,7 +770,7 @@ class EventoController extends Controller $numeroRevisores = Revisor::where('eventoId', $evento->id)->count(); $numeroComissao = ComissaoEvento::where('eventosId',$evento->id)->count(); - // $atribuicoesProcessando + // $atribuicoesProcessando; // dd($trabalhosEnviados); $revs = Revisor::where('eventoId', $evento->id)->with('user')->get(); diff --git a/app/Notifications/AtribuicaoAvaliadorExternoNotification.php b/app/Notifications/AtribuicaoAvaliadorExternoNotification.php index 6115cc393760e284264188ec76a2aa4346a12b24..38ce50dc157494c40632904ca7e7bcb475e8bdfb 100644 --- a/app/Notifications/AtribuicaoAvaliadorExternoNotification.php +++ b/app/Notifications/AtribuicaoAvaliadorExternoNotification.php @@ -18,7 +18,7 @@ class AtribuicaoAvaliadorExternoNotification extends Notification * * @return void */ - public function __construct($usuario, $trabalho, $arquivo, $tipoAval) + public function __construct($usuario, $trabalho, $arquivo, $tipoAval, $avaliacao) { $this->data = date('d/m/Y \à\s H:i\h', strtotime(now())); $url = '/avaliador/editais'; @@ -28,6 +28,7 @@ class AtribuicaoAvaliadorExternoNotification extends Notification $this->trabalho = $trabalho; $this->arquivo = $arquivo; $this->tipoAval = $tipoAval; + $this->avaliacao = $avaliacao; } /** @@ -50,13 +51,12 @@ class AtribuicaoAvaliadorExternoNotification extends Notification * @return \Illuminate\Notifications\Messages\MailMessage */ public function toMail($notifiable) - { - if ($this->tipoAval == 2) { + { + if ($this->tipoAval == 2 || $this->avaliacao != "form") { return (new MailMessage()) ->subject('Convite para avaliar proposta de projeto - Sistema Submeta') ->greeting('Saudações!') ->line("Prezado/a avaliador/a, você foi convidado/a a avaliar a proposta de projeto intitulada {$this->titulo}.") - ->line('Aproveitamos para enviar, em anexo, o formulário de avaliação que deverá ser anexado ao sistema Submeta com o seu parecer.') // ->line("Seção de Editais e Apoios a Projetos - PREC/UFAPE") ->action('Acessar', $this->url) ->markdown('vendor.notifications.email'); diff --git a/app/Trabalho.php b/app/Trabalho.php index 3744e78468a4f7d3be21245b570495c85b2364df..ffd205a7c288b28958e1ef0e136a215e1f71019f 100755 --- a/app/Trabalho.php +++ b/app/Trabalho.php @@ -1,137 +1,141 @@ -hasMany('App\Recurso', 'trabalhoId'); - } - - public function arquivo(){ - return $this->hasMany('App\Arquivo', 'trabalhoId'); - } - - public function modalidade(){ - return $this->belongsTo('App\Modalidade', 'modalidadeId'); - } - - public function area(){ - return $this->belongsTo('App\Area'); - } - public function grandeArea(){ - return $this->belongsTo('App\GrandeArea'); - } - public function subArea(){ - return $this->belongsTo('App\SubArea'); - } - - public function areaTematica(){ - return $this->belongsTo('App\AreaTematica'); - } - - public function autor(){ - return $this->belongsTo('App\User', 'autorId'); - } - - public function coautor(){ - return $this->hasMany('App\Coautor', 'trabalhoId'); - } - - public function parecer(){ - return $this->hasMany('App\Parecer', 'trabalhoId'); - } - - public function atribuicao(){ - return $this->hasMany('App\Atribuicao', 'trabalhoId'); - } - - public function evento(){ - return $this->belongsTo('App\Evento'); - } - public function planoTrabalho(){ - return $this->hasMany('App\PlanoTrabalho'); - } - public function participantes(){ - // return $this->belongsToMany('App\Trabalho', 'trabalho_participante'); - return $this->hasMany('App\Participante', 'trabalho_id'); - } - public function proponente(){ - return $this->belongsTo('App\Proponente'); - } - public function coordenador(){ - return $this->belongsTo('App\CoordenadorComissao'); - } - public function avaliadors(){ - return $this->belongsToMany('App\Avaliador')->withPivot('status', 'AnexoParecer', 'parecer', 'recomendacao', 'created_at','pontuacao','acesso'); - } - - public function substituicaos(){ - return $this->hasMany('App\Substituicao'); - } - - public function parecer_internos(){ - return $this->hasMany(ParecerInterno::class, 'trab_id', 'id'); - } - - public function notificacoes(){ - return $this->hasMany(Notificacao::class, 'trabalho_id', 'id'); - } - - public function desligamentos(){ - return $this->hasMany(Desligamento::class, 'trabalho_id', 'id')->orderBy('created_at', 'DESC'); - } - - public function solicitacoesCertificados() - { - return $this->hasMany(Certificado::class, 'trabalho_id'); - } - - public function ods(){ - return $this->belongsToMany('App\ObjetivoDeDesenvolvimentoSustentavel', 'objetivo_de_desenvolvimento_sustentavel_trabalhos', 'trabalho_id'); - } - - public function integrantes() { - return $this->belongsToMany('App\User', 'trabalho_users', 'trabalho_id'); - } -} +hasMany('App\Recurso', 'trabalhoId'); + } + + public function arquivo(){ + return $this->hasMany('App\Arquivo', 'trabalhoId'); + } + + public function modalidade(){ + return $this->belongsTo('App\Modalidade', 'modalidadeId'); + } + + public function area(){ + return $this->belongsTo('App\Area'); + } + public function grandeArea(){ + return $this->belongsTo('App\GrandeArea'); + } + public function subArea(){ + return $this->belongsTo('App\SubArea'); + } + + public function areaTematica(){ + return $this->belongsTo('App\AreaTematica'); + } + + public function autor(){ + return $this->belongsTo('App\User', 'autorId'); + } + + public function coautor(){ + return $this->hasMany('App\Coautor', 'trabalhoId'); + } + + public function parecer(){ + return $this->hasMany('App\Parecer', 'trabalhoId'); + } + + public function atribuicao(){ + return $this->hasMany('App\Atribuicao', 'trabalhoId'); + } + + public function evento(){ + return $this->belongsTo('App\Evento'); + } + public function planoTrabalho(){ + return $this->hasMany('App\PlanoTrabalho'); + } + public function participantes(){ + // return $this->belongsToMany('App\Trabalho', 'trabalho_participante'); + return $this->hasMany('App\Participante', 'trabalho_id'); + } + public function proponente(){ + return $this->belongsTo('App\Proponente'); + } + public function coordenador(){ + return $this->belongsTo('App\CoordenadorComissao'); + } + public function avaliadors(){ + return $this->belongsToMany('App\Avaliador')->withPivot('status', 'AnexoParecer', 'parecer', 'recomendacao', 'created_at','pontuacao','acesso'); + } + + public function substituicaos(){ + return $this->hasMany('App\Substituicao'); + } + + public function parecer_internos(){ + return $this->hasMany(ParecerInterno::class, 'trab_id', 'id'); + } + + public function notificacoes(){ + return $this->hasMany(Notificacao::class, 'trabalho_id', 'id'); + } + + public function desligamentos(){ + return $this->hasMany(Desligamento::class, 'trabalho_id', 'id')->orderBy('created_at', 'DESC'); + } + + public function solicitacoesCertificados() + { + return $this->hasMany(Certificado::class, 'trabalho_id'); + } + + public function ods(){ + return $this->belongsToMany('App\ObjetivoDeDesenvolvimentoSustentavel', 'objetivo_de_desenvolvimento_sustentavel_trabalhos', 'trabalho_id'); + } + + public function integrantes() { + return $this->belongsToMany('App\User', 'trabalho_users', 'trabalho_id'); + } + + public function avaliacaoTrabalho(){ + return $this->hasMany('App\AvaliacaoTrabalho'); + } +} diff --git a/database/migrations/2022_12_14_154533_create_campo_avaliacaos_table.php b/database/migrations/2022_12_14_154533_create_campo_avaliacaos_table.php new file mode 100644 index 0000000000000000000000000000000000000000..8ac2e48d5414276eafea0014246c6c2dbf92c7e0 --- /dev/null +++ b/database/migrations/2022_12_14_154533_create_campo_avaliacaos_table.php @@ -0,0 +1,39 @@ +bigIncrements('id'); + $table->string('nome')->nullable(); + $table->float('nota_maxima')->nullable(); + $table->text('descricao')->nullable(); + $table->integer('prioridade')->nullable(); + + $table->integer('evento_id'); + $table->foreign('evento_id')->references('id')->on('eventos'); + + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('campo_avaliacaos'); + } +} diff --git a/database/migrations/2022_12_14_154948_create_avaliacao_trabalhos_table.php b/database/migrations/2022_12_14_154948_create_avaliacao_trabalhos_table.php new file mode 100644 index 0000000000000000000000000000000000000000..0ea0122afea8c908054b990ac4968839b1a61dcd --- /dev/null +++ b/database/migrations/2022_12_14_154948_create_avaliacao_trabalhos_table.php @@ -0,0 +1,42 @@ +bigIncrements('id'); + $table->float('nota')->nullable(); + + $table->integer('avaliador_id'); + $table->foreign('avaliador_id')->references('id')->on('avaliadors'); + + $table->integer('campo_avaliacao_id'); + $table->foreign('campo_avaliacao_id')->references('id')->on('campo_avaliacaos'); + + $table->integer('trabalho_id'); + $table->foreign('trabalho_id')->references('id')->on('trabalhos'); + + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('avaliacao_trabalhos'); + } +} diff --git a/database/migrations/2022_12_29_215745_add_softdelete_campos_avaliacao.php b/database/migrations/2022_12_29_215745_add_softdelete_campos_avaliacao.php new file mode 100644 index 0000000000000000000000000000000000000000..87c688addce67dff337e4d69c358a358ae65a9e1 --- /dev/null +++ b/database/migrations/2022_12_29_215745_add_softdelete_campos_avaliacao.php @@ -0,0 +1,32 @@ +softDeletes(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('campo_avaliacaos', function (Blueprint $table) { + $table->dropSoftDeletes(); + }); + } +} diff --git a/database/migrations/2022_12_29_221814_alter_table_campo_avaliacaos.php b/database/migrations/2022_12_29_221814_alter_table_campo_avaliacaos.php new file mode 100644 index 0000000000000000000000000000000000000000..0be25a25b9939fba5e74a71a1b6a5968f432c45c --- /dev/null +++ b/database/migrations/2022_12_29_221814_alter_table_campo_avaliacaos.php @@ -0,0 +1,30 @@ +integer('evento_id')->nullable()->change(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + // + } +} diff --git a/database/migrations/2022_12_30_182010_add_tipo_avaliacao_to_eventos_table.php b/database/migrations/2022_12_30_182010_add_tipo_avaliacao_to_eventos_table.php new file mode 100644 index 0000000000000000000000000000000000000000..be75a909c5ac0c58c7a64ca5b0609f3ae18ad36f --- /dev/null +++ b/database/migrations/2022_12_30_182010_add_tipo_avaliacao_to_eventos_table.php @@ -0,0 +1,32 @@ +string('tipoAvaliacao')->nullable(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('eventos', function (Blueprint $table) { + $table->dropColumn('tipoAvaliacao'); + }); + } +} diff --git a/database/migrations/2023_01_13_142051_add_softdelete_to_avaliacao_trabalhos.php b/database/migrations/2023_01_13_142051_add_softdelete_to_avaliacao_trabalhos.php new file mode 100644 index 0000000000000000000000000000000000000000..01be70e5168713ae81889c03c9af7819ef9b1bb9 --- /dev/null +++ b/database/migrations/2023_01_13_142051_add_softdelete_to_avaliacao_trabalhos.php @@ -0,0 +1,32 @@ +softDeletes(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('avaliacao_trabalhos', function (Blueprint $table) { + $table->dropSoftDeletes(); + }); + } +} diff --git a/resources/views/administrador/analisarProposta.blade.php b/resources/views/administrador/analisarProposta.blade.php index 93762582628fe6a44b66eebf6c9b7dce1ffe74d7..0a9b1ba1cb2d1af308d7525af7bf70b71ab8d50f 100644 --- a/resources/views/administrador/analisarProposta.blade.php +++ b/resources/views/administrador/analisarProposta.blade.php @@ -1068,28 +1068,71 @@
@foreach($trabalho->avaliadors as $avaliador) - @if(($avaliador->tipo == 'Interno' && ($avaliador->trabalhos()->where("trabalho_id",$trabalho->id)->first()->pivot->acesso == null || $avaliador->trabalhos()->where("trabalho_id",$trabalho->id)->first()->pivot->acesso == 2 || $avaliador->trabalhos()->where("trabalho_id",$trabalho->id)->first()->pivot->acesso == 3)) - || (($avaliador->user->instituicao == "UFAPE" || $avaliador->user->instituicao == "Universidade Federal do Agreste de Pernambuco") && $avaliador->tipo == null && ($avaliador->trabalhos()->where("trabalho_id",$trabalho->id)->first()->pivot->acesso == null || $avaliador->trabalhos()->where("trabalho_id",$trabalho->id)->first()->pivot->acesso == 2 || $avaliador->trabalhos()->where("trabalho_id",$trabalho->id)->first()->pivot->acesso == 3))) -
- -
-
-
{{$avaliador->user->name}}
- @php - $parecerInterno = App\ParecerInterno::where([['avaliador_id',$avaliador->id],['trabalho_id',$trabalho->id]])->first(); - @endphp - @if($parecerInterno == null) Pendente @else Avaliado @endif - -
- - Remover - -
- - Reenviar convite - -
+ @if(($avaliador->tipo == 'Interno' && ($avaliador->trabalhos()->where("trabalho_id",$trabalho->id)->first()->pivot->acesso == null || $avaliador->trabalhos()->where("trabalho_id",$trabalho->id)->first()->pivot->acesso == 2 || $avaliador->trabalhos()->where("trabalho_id",$trabalho->id)->first()->pivot->acesso == 3)) || (($avaliador->user->instituicao == "UFAPE" || $avaliador->user->instituicao == "Universidade Federal do Agreste de Pernambuco") && $avaliador->tipo == null && ($avaliador->trabalhos()->where("trabalho_id",$trabalho->id)->first()->pivot->acesso == null || $avaliador->trabalhos()->where("trabalho_id",$trabalho->id)->first()->pivot->acesso == 2 || $avaliador->trabalhos()->where("trabalho_id",$trabalho->id)->first()->pivot->acesso == 3))) + @if ($evento->tipoAvaliacao == 'form') +
+ +
+
+
{{$avaliador->user->name}}
+ @php + $parecerInterno = App\ParecerInterno::where([['avaliador_id',$avaliador->id],['trabalho_id',$trabalho->id]])->first(); + @endphp + @if($parecerInterno == null) Pendente @else Avaliado @endif + +
+ + Remover + +
+ + Reenviar convite + +
+ @elseif ($evento->tipoAvaliacao == "campos") +
+ +
+
+
{{$avaliador->user->name}}
+ @php + $avaliacaoTrabalho = App\AvaliacaoTrabalho::where([['avaliador_id',$avaliador->id],['trabalho_id',$trabalho->id]])->first(); + @endphp + @if($avaliacaoTrabalho == null) Pendente @else Avaliado @endif + +
+ + Remover + +
+ + Reenviar convite + +
+ @elseif ($evento->tipoAvaliacao == "link") +
+ +
+
+
{{$avaliador->user->name}}
+ + @if($avaliador->trabalhos->where('id', $trabalho->id)->first()->pivot->status == false) + Pendente @else Avaliado @endif + + +
+ + Remover + +
+ + Reenviar convite + +
+ @endif @endif
@foreach($trabalho->avaliadors as $avaliador) - @if( ($avaliador->trabalhos()->where("trabalho_id",$trabalho->id)->first()->pivot->acesso == null && $avaliador->tipo == "Externo") || $avaliador->trabalhos()->where("trabalho_id",$trabalho->id)->first()->pivot->acesso == 1 || $avaliador->trabalhos()->where("trabalho_id",$trabalho->id)->first()->pivot->acesso == 3 - || (($avaliador->user->instituicao != "UFAPE" && $avaliador->user->instituicao != "Universidade Federal do Agreste de Pernambuco") && $avaliador->tipo == null && ($avaliador->trabalhos()->where("trabalho_id",$trabalho->id)->first()->pivot->acesso == null || $avaliador->trabalhos()->where("trabalho_id",$trabalho->id)->first()->pivot->acesso == 1 || $avaliador->trabalhos()->where("trabalho_id",$trabalho->id)->first()->pivot->acesso == 3))) -
- -
-
-
{{$avaliador->user->name}}
- - @if($avaliador->trabalhos->where('id', $trabalho->id)->first()->pivot->status == false) - Pendente @else Avaliado @endif + @if( ($avaliador->trabalhos()->where("trabalho_id",$trabalho->id)->first()->pivot->acesso == null && $avaliador->tipo == "Externo") || $avaliador->trabalhos()->where("trabalho_id",$trabalho->id)->first()->pivot->acesso == 1 || $avaliador->trabalhos()->where("trabalho_id",$trabalho->id)->first()->pivot->acesso == 3 || (($avaliador->user->instituicao != "UFAPE" && $avaliador->user->instituicao != "Universidade Federal do Agreste de Pernambuco") && $avaliador->tipo == null && ($avaliador->trabalhos()->where("trabalho_id",$trabalho->id)->first()->pivot->acesso == null || $avaliador->trabalhos()->where("trabalho_id",$trabalho->id)->first()->pivot->acesso == 1 || $avaliador->trabalhos()->where("trabalho_id",$trabalho->id)->first()->pivot->acesso == 3))) + @if ($evento->tipoAvaliacao == 'form') +
+ +
+
+
{{$avaliador->user->name}}
+ + @if($avaliador->trabalhos->where('id', $trabalho->id)->first()->pivot->status == false) + Pendente @else Avaliado @endif + + +
+ + Remover + +
+ + Reenviar convite + +
+ @elseif ($evento->tipoAvaliacao == "campos") +
+ +
+
+
{{$avaliador->user->name}}
+ @php + $avaliacaoTrabalho = App\AvaliacaoTrabalho::where([['avaliador_id',$avaliador->id],['trabalho_id',$trabalho->id]])->first(); + @endphp + @if($avaliacaoTrabalho == null) Pendente @else Avaliado @endif - -
- - Remover - -
- - Reenviar convite - -
+
+ + Remover + +
+ + Reenviar convite + +
+ @elseif ($evento->tipoAvaliacao == "link") +
+ +
+
+
{{$avaliador->user->name}}
+ + @if($avaliador->trabalhos->where('id', $trabalho->id)->first()->pivot->status == false) + Pendente @else Avaliado @endif + + +
+ + Remover + +
+ + Reenviar convite + +
+ @endif @endif diff --git a/resources/views/administrador/editais.blade.php b/resources/views/administrador/editais.blade.php index 6a3af65f9f37dc4f86aa8eec8ea8079365735d1e..291389a5b33f1d107c7d253fd1b4a0bb2d641726 100755 --- a/resources/views/administrador/editais.blade.php +++ b/resources/views/administrador/editais.blade.php @@ -79,10 +79,12 @@ Visualizar Pareceres + @if($evento->tipoAvaliacao != "link") Resultados + @endif @else - + Visualizar @endif - @endif - - - @if($avaliador->trabalhos->where('id', $trabalho->id)->first()->pivot->acesso == 1 || $avaliador->trabalhos->where('id', $trabalho->id)->first()->pivot->acesso == 3 || $avaliador->tipo == "Externo") + @endforeach + @elseif($evento->tipoAvaliacao == "link") + @foreach($trabalho->avaliadors as $avaliador) + @php + $pivot = $avaliador->trabalhos()->where('trabalho_id', $trabalho->id)->first()->pivot; + $parecerLink = $pivot->status; + @endphp + {{ $avaliador->user->name }} {{ $avaliador->tipo }} {{ $avaliador->user->email }} - Ad Hoc + Interna - @if($avaliador->trabalhos->where('id', $trabalho->id)->first()->pivot->parecer == null) + @if($parecerLink == null) Indisponível @else - {{ date('d/m/Y', strtotime($avaliador->trabalhos->where('id', $trabalho->id)->first()->pivot->created_at)) }} + {{ date('d/m/Y', strtotime($pivot->created_at)) }} @endif {{--Parecer--}} - @if($avaliador->trabalhos->where('id', $trabalho->id)->first()->pivot->parecer == null) + @if($parecerLink == null) Indisponível @else - {{ $avaliador->trabalhos->where('id', $trabalho->id)->first()->pivot->recomendacao }} + {{ $pivot->recomendacao }} @endif + {{--Acesso ao parecer interno--}} -
- @csrf - - - @if($avaliador->trabalhos->where('id', $trabalho->id)->first()->pivot->parecer == null) + @if($parecerLink == null) + + @else + + Visualizar + + @endif + + + @endforeach + @else + @foreach($trabalho->avaliadors as $avaliador) + + @if($avaliador->trabalhos->where('id', $trabalho->id)->first()->pivot->acesso == 2 || $avaliador->trabalhos->where('id', $trabalho->id)->first()->pivot->acesso == 3 || ( $avaliador->tipo == "Interno" && $avaliador->trabalhos->where('id', $trabalho->id)->first()->pivot->acesso == null )) + @php + $parecerInterno = App\ParecerInterno::where([['avaliador_id',$avaliador->id],['trabalho_id',$trabalho->id]])->first(); + @endphp + + {{ $avaliador->user->name }} + {{ $avaliador->tipo }} + {{ $avaliador->user->email }} + Interna + + @if($parecerInterno == null) + Indisponível + @else + {{ date('d/m/Y', strtotime($parecerInterno->created_at)) }} + @endif + + {{--Parecer--}} + + @if($parecerInterno == null) + Indisponível + @else + {{ $parecerInterno->statusParecer }} + @endif + + {{--Acesso ao parecer interno--}} + + @if($parecerInterno == null) @else - + @endif -
+ + + @endif - - - @endif - @endforeach + + @if($avaliador->trabalhos->where('id', $trabalho->id)->first()->pivot->acesso == 1 || $avaliador->trabalhos->where('id', $trabalho->id)->first()->pivot->acesso == 3 || $avaliador->tipo == "Externo") + + {{ $avaliador->user->name }} + {{ $avaliador->tipo }} + {{ $avaliador->user->email }} + Ad Hoc + + @if($avaliador->trabalhos->where('id', $trabalho->id)->first()->pivot->parecer == null) + Indisponível + @else + {{ date('d/m/Y', strtotime($avaliador->trabalhos->where('id', $trabalho->id)->first()->pivot->created_at)) }} + @endif + + {{--Parecer--}} + + @if($avaliador->trabalhos->where('id', $trabalho->id)->first()->pivot->parecer == null) + Indisponível + @else + {{ $avaliador->trabalhos->where('id', $trabalho->id)->first()->pivot->recomendacao }} + @endif + + +
+ @csrf + + + @if($avaliador->trabalhos->where('id', $trabalho->id)->first()->pivot->parecer == null) + + @else + + @endif +
+ + + + @endif + @endforeach + @endif
diff --git a/resources/views/administrador/resultadosProjetos.blade.php b/resources/views/administrador/resultadosProjetos.blade.php index b7dc5a05c6e41ad9cdfdb880f3da7c879b23903e..e519a123d11515c4db641ebe96e0538c38e16a9c 100644 --- a/resources/views/administrador/resultadosProjetos.blade.php +++ b/resources/views/administrador/resultadosProjetos.blade.php @@ -66,7 +66,7 @@ - @php $cont=1;@endphp + @php $cont=1; @endphp @foreach($trabalhos as $trabalho) @if($trabalho->status == 'aprovado') @@ -102,18 +102,33 @@ @foreach($trabalho->avaliadors as $avaliador) {{--Internos--}} @if($avaliador->trabalhos->where('id', $trabalho->id)->first()->pivot->acesso == 2 || $avaliador->trabalhos->where('id', $trabalho->id)->first()->pivot->acesso == 3 || ( $avaliador->tipo == "Interno" && $avaliador->trabalhos->where('id', $trabalho->id)->first()->pivot->acesso == null )) - @php - $parecerInterno = App\ParecerInterno::where([['avaliador_id',$avaliador->id],['trabalho_id',$trabalho->id]])->first(); - @endphp - @if($parecerInterno != null && $parecerInterno->statusParecer !=null){{$parecerInterno->statusParecer}}
@else Pendente
@endif + @if ($evento->tipoAvaliacao == "form") + @php + $parecerInterno = App\ParecerInterno::where([['avaliador_id',$avaliador->id],['trabalho_id',$trabalho->id]])->first(); + @endphp + @if($parecerInterno != null && $parecerInterno->statusParecer !=null){{$parecerInterno->statusParecer}}
@else Pendente
@endif + @elseif ($evento->tipoAvaliacao == "campos") + @php + $avaliacaoTrabalho = App\AvaliacaoTrabalho::where([['avaliador_id',$avaliador->id],['trabalho_id',$trabalho->id]])->first(); + @endphp + @if($avaliacaoTrabalho != null && $avaliacaoTrabalho->nota !=null){{$avaliador->pivot->recomendacao}}
@else Pendente
@endif + @endif @endif + {{--Externos--}} @if($avaliador->trabalhos->where('id', $trabalho->id)->first()->pivot->acesso == 1 || $avaliador->trabalhos->where('id', $trabalho->id)->first()->pivot->acesso == 3 || $avaliador->tipo == "Externo" || $avaliador->tipo == null) - @if($avaliador->pivot->recomendacao != null) - {{$avaliador->pivot->recomendacao}}
- @else - Pendente
+ @if ($evento->tipoAvaliacao == "form") + @if($avaliador->pivot->recomendacao != null) + {{$avaliador->pivot->recomendacao}}
+ @else + Pendente
+ @endif + @elseif ($evento->tipoAvaliacao == "campos") + @php + $avaliacaoTrabalho = App\AvaliacaoTrabalho::where([['avaliador_id',$avaliador->id],['trabalho_id',$trabalho->id]])->first(); + @endphp + @if($avaliacaoTrabalho != null && $avaliacaoTrabalho->nota !=null){{$avaliador->pivot->recomendacao}}
@else Pendente
@endif @endif @endif @endforeach @@ -200,18 +215,33 @@ @foreach($trabalho->avaliadors as $avaliador) {{--Internos--}} @if($avaliador->trabalhos->where('id', $trabalho->id)->first()->pivot->acesso == 2 || $avaliador->trabalhos->where('id', $trabalho->id)->first()->pivot->acesso == 3 || ( $avaliador->tipo == "Interno" && $avaliador->trabalhos->where('id', $trabalho->id)->first()->pivot->acesso == null )) - @php - $parecerInterno = App\ParecerInterno::where([['avaliador_id',$avaliador->id],['trabalho_id',$trabalho->id]])->first(); - @endphp - @if($parecerInterno != null && $parecerInterno->statusParecer !=null){{$parecerInterno->statusParecer}}
@else Pendente
@endif + @if ($evento->tipoAvaliacao == "form") + @php + $parecerInterno = App\ParecerInterno::where([['avaliador_id',$avaliador->id],['trabalho_id',$trabalho->id]])->first(); + @endphp + @if($parecerInterno != null && $parecerInterno->statusParecer !=null){{$parecerInterno->statusParecer}}
@else Pendente
@endif + @elseif ($evento->tipoAvaliacao == "campos") + @php + $avaliacaoTrabalho = App\AvaliacaoTrabalho::where([['avaliador_id',$avaliador->id],['trabalho_id',$trabalho->id]])->first(); + @endphp + @if($avaliacaoTrabalho != null && $avaliacaoTrabalho->nota !=null){{$avaliador->pivot->recomendacao}}
@else Pendente
@endif + @endif @endif + {{--Externos--}} @if($avaliador->trabalhos->where('id', $trabalho->id)->first()->pivot->acesso == 1 || $avaliador->trabalhos->where('id', $trabalho->id)->first()->pivot->acesso == 3 || $avaliador->tipo == "Externo" || $avaliador->tipo == null) - @if($avaliador->pivot->recomendacao != null) - {{$avaliador->pivot->recomendacao}}
- @else - Pendente
+ @if ($evento->tipoAvaliacao == "form") + @if($avaliador->pivot->recomendacao != null) + {{$avaliador->pivot->recomendacao}}
+ @else + Pendente
+ @endif + @elseif ($evento->tipoAvaliacao == "campos") + @php + $avaliacaoTrabalho = App\AvaliacaoTrabalho::where([['avaliador_id',$avaliador->id],['trabalho_id',$trabalho->id]])->first(); + @endphp + @if($avaliacaoTrabalho != null && $avaliacaoTrabalho->nota !=null){{$avaliador->pivot->recomendacao}}
@else Pendente
@endif @endif @endif @endforeach @@ -299,18 +329,33 @@ @foreach($trabalho->avaliadors as $avaliador) {{--Internos--}} @if($avaliador->trabalhos->where('id', $trabalho->id)->first()->pivot->acesso == 2 || $avaliador->trabalhos->where('id', $trabalho->id)->first()->pivot->acesso == 3 || ( $avaliador->tipo == "Interno" && $avaliador->trabalhos->where('id', $trabalho->id)->first()->pivot->acesso == null )) - @php - $parecerInterno = App\ParecerInterno::where([['avaliador_id',$avaliador->id],['trabalho_id',$trabalho->id]])->first(); - @endphp - @if($parecerInterno != null && $parecerInterno->statusParecer !=null){{$parecerInterno->statusParecer}}
@else Pendente
@endif + @if ($evento->tipoAvaliacao == "form") + @php + $parecerInterno = App\ParecerInterno::where([['avaliador_id',$avaliador->id],['trabalho_id',$trabalho->id]])->first(); + @endphp + @if($parecerInterno != null && $parecerInterno->statusParecer !=null){{$parecerInterno->statusParecer}}
@else Pendente
@endif + @elseif ($evento->tipoAvaliacao == "campos") + @php + $avaliacaoTrabalho = App\AvaliacaoTrabalho::where([['avaliador_id',$avaliador->id],['trabalho_id',$trabalho->id]])->first(); + @endphp + @if($avaliacaoTrabalho != null && $avaliacaoTrabalho->nota !=null){{$avaliador->pivot->recomendacao}}
@else Pendente
@endif + @endif @endif + {{--Externos--}} @if($avaliador->trabalhos->where('id', $trabalho->id)->first()->pivot->acesso == 1 || $avaliador->trabalhos->where('id', $trabalho->id)->first()->pivot->acesso == 3 || $avaliador->tipo == "Externo" || $avaliador->tipo == null) - @if($avaliador->pivot->recomendacao != null) - {{$avaliador->pivot->recomendacao}}
- @else - Pendente
+ @if ($evento->tipoAvaliacao == "form") + @if($avaliador->pivot->recomendacao != null) + {{$avaliador->pivot->recomendacao}}
+ @else + Pendente
+ @endif + @elseif ($evento->tipoAvaliacao == "campos") + @php + $avaliacaoTrabalho = App\AvaliacaoTrabalho::where([['avaliador_id',$avaliador->id],['trabalho_id',$trabalho->id]])->first(); + @endphp + @if($avaliacaoTrabalho != null && $avaliacaoTrabalho->nota !=null){{$avaliador->pivot->recomendacao}}
@else Pendente
@endif @endif @endif @endforeach diff --git a/resources/views/administrador/visualizarParecerBarema.blade.php b/resources/views/administrador/visualizarParecerBarema.blade.php new file mode 100644 index 0000000000000000000000000000000000000000..793505824a40449f075a09cc3e35dd1c4d267810 --- /dev/null +++ b/resources/views/administrador/visualizarParecerBarema.blade.php @@ -0,0 +1,58 @@ +@extends('layouts.app') + +@php $i=0; $numCampos=0; @endphp + +@section('content') +
+ +
+
+
+
+ Voltar +
Parecer do avaliador: {{ $avaliador->user->name }}
+
Trabalho: {{ $trabalho->titulo }}
+

+

+ + + + + + + + + @foreach ($camposAvaliacao as $campoAvaliacao) + + + + + + + + + @php ++$i; ++$numCampos; @endphp + @endforeach +
NomeDescriçãoNota MáximaPrioridadeNota da avaliação
+
+
+
+ +
+
+ +
+
+
+
+
+ +
+@endsection + +@section('javascript') + +@endsection diff --git a/resources/views/administrador/visualizarParecerLink.blade.php b/resources/views/administrador/visualizarParecerLink.blade.php new file mode 100644 index 0000000000000000000000000000000000000000..8c2aefc491f2a03ca7c299cdb081759319fc6a82 --- /dev/null +++ b/resources/views/administrador/visualizarParecerLink.blade.php @@ -0,0 +1,37 @@ +@extends('layouts.app') + +@section('content') +
+ +
+
+
+
+ Voltar +
Parecer do avaliador: {{ $avaliador->user->name }}
+
Trabalho: {{ $trabalho->titulo }}
+

+

+ + +
+
+ +
+
+ +
+
+
+
+
+ +
+@endsection + +@section('javascript') + +@endsection diff --git a/resources/views/avaliador/listarTrabalhos.blade.php b/resources/views/avaliador/listarTrabalhos.blade.php index 430c841af94627143594427e466530d7887f23e1..51ec4bb0fa12b568d2dbff2d911f7b01fb0e25c2 100755 --- a/resources/views/avaliador/listarTrabalhos.blade.php +++ b/resources/views/avaliador/listarTrabalhos.blade.php @@ -165,7 +165,7 @@
@endif - @if($trabalhosEx != null) + @if($trabalhosEx != null)
Avaliação Ad Hoc do Edital: {{ $evento->nome }}
@@ -249,7 +249,102 @@ - @endif + @endif + + @if ($trabalhos != null) +
+
Avaliação do Edital: {{ $evento->nome }}
+
+
+
+ + + + + + + + + + + + + + @foreach ($trabalhos as $trabalho) + + + + + + + + + @endforeach + +
Nome do ProjetoData de CriaçãoProjetoPlano de TrabalhoStatusParecer
{{ $trabalho->titulo }}{{ $trabalho->created_at->format('d/m/Y') }} + {{-- --}} + + + + + @if ($evento->numParticipantes == 0) + @php + $planoTrabalho = App\Arquivo::where("trabalhoId", $trabalho->id)->first(); + @endphp + + + + @else + @foreach( $trabalho->participantes as $participante) + @php + if( App\Arquivo::where('participanteId', $participante->id)->first() != null){ + $planoTrabalho = App\Arquivo::where('participanteId', $participante->id)->first()->nome; + }else{ + $planoTrabalho = null; + } + @endphp + @if ($planoTrabalho != null) + + + + @else + Não há planos de trabalho. + @endif + @endforeach + @endif + + @if($trabalho->pivot->recomendacao == 'RECOMENDADO') + Recomendado + @elseif($trabalho->pivot->recomendacao == null) + Pendente + @else + Não Recomendado + @endif + +
+ @if ($evento->tipoAvaliacao == 'campos') +
+ @csrf + + + +
+ @else +
+ @csrf + + + +
+ @endif +
+
+
+ @endif diff --git a/resources/views/avaliador/parecerBarema.blade.php b/resources/views/avaliador/parecerBarema.blade.php new file mode 100644 index 0000000000000000000000000000000000000000..def3ed974129c255cd13bf713f44bbb7546b764c --- /dev/null +++ b/resources/views/avaliador/parecerBarema.blade.php @@ -0,0 +1,160 @@ +@extends('layouts.app') + +@php $i=0; $numCampos=0; @endphp + +@section('content') + +
+ +
+ @component('projeto.formularioVisualizar.proponente2', ['edital' => $trabalho->evento, 'projeto' => $trabalho]) + @endcomponent +
+ + +
+
+
+
+
+
Anexos
+
+
+ + {{-- Anexo do Projeto --}} +
+ {{-- Arquivo --}} +
+ + + +
+
+ {{-- Autorização Especial --}} + @if($trabalho->evento->natureza_id != 3) +
+ + @if($trabalho->anexoAutorizacaoComiteEtica != null) + + @else + - + @endif +
+
+ @endif + {{-- Anexo(s) do Plano(s) de Trabalho --}} + @foreach( $trabalho->participantes as $participante) + @php + if( App\Arquivo::where('participanteId', $participante->id)->first() != null){ + $planoTrabalhoTemp = App\Arquivo::where('participanteId', $participante->id)->first()->nome; + }else{ + $planoTrabalhoTemp = null; + } + @endphp +
+ + + @if($planoTrabalhoTemp != null) + + @endif +
+ @endforeach + + {{--Documento Extra--}} + @if($trabalho->evento->nome_docExtra != null) +
+ + @if($trabalho->anexo_docExtra != null) + + @else + + @endif +
+
+ @endif +
+ +
+
+
+
+ +
+
+
+
+ +
+
Meu parecer
+
Trabalho: {{$trabalho->titulo}}
+
+
+ +
+ @csrf + + + +
+

Preencha os valores da notas a partir de cada critério.

+
+ + + + + + + + + @foreach ($camposAvaliacao as $campoAvaliacao) + + + + + + + + @php ++$i; ++$numCampos; @endphp + @endforeach +
NomeDescriçãoNota MáximaPrioridadeNota da avaliação*
+ +
+
+
+ +

Por fim, informe a sua recomendação.

+
+ + +
+ +
+
+ +
+
+
+
+
+
+
+
+ +@endsection + +@section('javascript') + +@endsection + + diff --git a/resources/views/avaliador/parecerLink.blade.php b/resources/views/avaliador/parecerLink.blade.php new file mode 100644 index 0000000000000000000000000000000000000000..075e7fd82d050a1538e65c339dd478392a9fb9cf --- /dev/null +++ b/resources/views/avaliador/parecerLink.blade.php @@ -0,0 +1,150 @@ +@extends('layouts.app') + +@section('content') + +
+ +
+ @component('projeto.formularioVisualizar.proponente2', ['edital' => $trabalho->evento, 'projeto' => $trabalho]) + @endcomponent +
+ + +
+
+
+
+
+
Anexos
+
+
+ + {{-- Anexo do Projeto --}} +
+ {{-- Arquivo --}} +
+ + + +
+
+ {{-- Autorização Especial --}} + @if($trabalho->evento->natureza_id != 3) +
+ + @if($trabalho->anexoAutorizacaoComiteEtica != null) + + @else + - + @endif +
+
+ @endif + {{-- Anexo(s) do Plano(s) de Trabalho --}} + @foreach( $trabalho->participantes as $participante) + @php + if( App\Arquivo::where('participanteId', $participante->id)->first() != null){ + $planoTrabalhoTemp = App\Arquivo::where('participanteId', $participante->id)->first()->nome; + }else{ + $planoTrabalhoTemp = null; + } + @endphp +
+ + + @if($planoTrabalhoTemp != null) + + @endif +
+ @endforeach + + {{--Documento Extra--}} + @if($trabalho->evento->nome_docExtra != null) +
+ + @if($trabalho->anexo_docExtra != null) + + @else + + @endif +
+
+ @endif +
+ +
+
+
+
+ + +
+
+
+
+ + +
+
+
Meu parecer
+
Trabalho: {{$trabalho->titulo}}
+
+ + +
+ @csrf + + +
+ +
+

Responda ao formulário no link abaixo para enviar seu parecer.

+ +
+
+ +

Por fim, informe a pontuação (caso necessário) e sua recomendação.

+ +
+ + +
+ +
+ + +
+ +
+
+ +
+ +
+
+ + +
+
+
+
+
+ +@endsection + +@section('javascript') + +@endsection + + diff --git a/resources/views/coordenadorComissao/editais.blade.php b/resources/views/coordenadorComissao/editais.blade.php index c33dee5bff08987d301ed07a669eaaaa26b6df89..d1e307f55c876ffb745961bef5e9778cc8105cb8 100755 --- a/resources/views/coordenadorComissao/editais.blade.php +++ b/resources/views/coordenadorComissao/editais.blade.php @@ -67,10 +67,12 @@ Visualizar Pareceres + @if($evento->tipoAvaliacao != "link") Resultados + @endif @@ -501,10 +607,152 @@ + @endsection @section('javascript') + +@if($errors->has('somaNotas')) + +@endif @endsection \ No newline at end of file diff --git a/resources/views/evento/editarEvento.blade.php b/resources/views/evento/editarEvento.blade.php index d6c81078662cb755684c9fccd53fe78b73362ab6..ad4c95a450e2011d8c8072bb8ca1b48e4cc95786 100755 --- a/resources/views/evento/editarEvento.blade.php +++ b/resources/views/evento/editarEvento.blade.php @@ -1,5 +1,16 @@ @extends('layouts.app') +@php + $i=0; $numCampos=0; $avaliado=false; + foreach ($evento->trabalhos as $trabalho) { + $avaliacoes = $trabalho->avaliadors()->where('status', 1)->count(); + if ($avaliacoes > 0) { + $avaliado = true; + } + } +@endphp + + @section('content')
@@ -384,98 +395,347 @@ @endcomponent
+
-

Documentos

+

Avaliação

- {{-- Pdf Edital --}} -
+ @if($avaliado) + + @endif + +
+

Como a avaliação será realizada?

+
+ +
+ @if (old('tipoAvaliacao') != null) + + + + + + + +
+ @else + tipoAvaliacao == 'form' || $evento->tipoAvaliacao == '') checked @endif value="form" @if($avaliado) disabled @endif> + + + tipoAvaliacao == 'campos') checked @endif value="campos" @if($avaliado) disabled @endif> + + + tipoAvaliacao == 'link') checked @endif value="link" @if($avaliado) disabled @endif> +
+ @endif +
+ + + @if($avaliado) + @if($evento->tipoAvaliacao == 'form' || $evento->tipoAvaliacao == '') + + @elseif($evento->tipoAvaliacao == 'campos') + + @elseif($evento->tipoAvaliacao == 'link') + + @endif + @endif + +
- - - - - - O arquivo selecionado deve ser no formato PDF de até 2mb. - @error('pdfEdital') + + @if ($evento->tipoAvaliacao == "form") + + + + @else + + + + @endif + + O arquivo selecionado deve ter até 2mb. + @error('pdfFormAvalExterno') - {{ $message }} - + {{ $message }} + @enderror
- - - - - - O arquivo selecionado deve ter até 2mb. - @error('modeloDocumento') + + @if($evento->docTutorial != null) + + + + @else + + + + @endif + + O arquivo selecionado deve ser no formato PDF de até 2mb. + @error('docTutorial') {{ $message }} @enderror
+
+ + + + +
+
+
+

Documentos

+
+
+ + {{-- Pdf Edital --}} +
- - - - - - O arquivo selecionado deve ter até 2mb. - @error('pdfFormAvalExterno') - - {{ $message }} - + + @if($evento->pdfEdital != null) + + + + @else + + + + @endif + + O arquivo selecionado deve ser no formato PDF de até 2mb. + @error('pdfEdital') + + {{ $message }} + @enderror -
+
+
- - - - - - O arquivo selecionado deve ser no formato PDF de até 2mb. - @error('pdfFormAvalRelatorio') - - {{ $message }} - + + @if($evento->modeloDocumento != null) + + + + @else + + + + @endif + + O arquivo selecionado deve ter até 2mb. + @error('modeloDocumento') + + {{ $message }} + @enderror -
+
+ +
- - @if($evento->docTutorial != null) - - - + + @if($evento->formAvaliacaoRelatorio != null) + + + @else @endif - + + O arquivo selecionado deve ser no formato PDF de até 2mb. - @error('docTutorial') + @error('pdfFormAvalRelatorio') - {{ $message }} - + {{ $message }} + @enderror
+
@@ -497,6 +757,188 @@ @endsection @section('javascript') + + @if($errors->has('somaNotas')) + + @endif + @endsection \ No newline at end of file diff --git a/routes/web.php b/routes/web.php index 009b1bf0906cca6e0591d3dca62d7ae3d4f44cca..78476d44ba51d59e09d302304deb92207bcdfb44 100755 --- a/routes/web.php +++ b/routes/web.php @@ -1,350 +1,358 @@ -id; - Notification::send(Auth::user(), new SubmissaoNotification($id)); - - return 'Ok'; - // Auth::user()->notify(new SubmissaoTrabalho('teste')); -}); - -Route::get('/baixarModeloAvaliacao', 'AdministradorController@baixarModeloAvaliacao')->name('baixarModelo'); -Route::get('/', 'UserController@index')->name('home-user'); -Route::get('/', 'UserController@inicial')->name('inicial'); -Route::get('/home', 'HomeController@index')->name('home')->middleware('verified'); - -Route::get('/evento/visualizar/naologado/{id}', 'EventoController@showNaoLogado')->name('evento.visualizarNaoLogado'); -Route::get('/editais/home', 'EventoController@index')->name('coord.home'); -Route::get('/perfil', 'UserController@perfil')->name('perfil'); -Auth::routes(['verify' => true]); - -//Rota para avaliador atualizar perfil, deixando de ser usuario temporario -Route::post('/perfil-usuario', 'UserController@editarPerfil')->name('perfil.edit')->middleware(['auth', 'verified']); - -Route::group(['middleware' => ['isTemp', 'auth', 'verified']], function () { - //######### Proponente ######################################## - Route::get('/proponente/index', 'ProponenteController@index')->name('proponente.index'); - Route::get('/proponente/cadastro', 'ProponenteController@create')->name('proponente.create'); - Route::post('/proponente/cadastro', 'ProponenteController@store')->name('proponente.store'); - Route::get('/proponente/editais', 'ProponenteController@editais')->name('proponente.editais'); - Route::get('/projetos-submetidos', 'ProponenteController@projetosDoProponente')->name('proponente.projetos'); - 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 Avaliador #################################### - Route::prefix('avaliacaoRelatorio')->name('avaliacaoRelatorio.')->group(function () { - Route::post('/atribuirAvaliadorPlano', 'AvaliacaoRelatorioController@atribuicaoAvaliador')->name('atribuicao.avaliador')->middleware('checkRoles:coordenador,administrador'); - Route::get('/removerAvaliadorPlano/{id}', 'AvaliacaoRelatorioController@removerAvaliador')->name('remover.avaliador')->middleware('checkRoles:coordenador,administrador'); - }); - Route::get('/trabalho/planos/avaliacao/{id}', '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'); - - Route::prefix('areaTematica')->name('areaTematica.')->group(function () { - Route::get('/editar/{id}', 'AreaTematicaController@edit')->name('edit')->middleware('checkAdministrador'); - Route::post('/atualizar/{id}', 'AreaTematicaController@update')->name('atualizar')->middleware('checkAdministrador'); - Route::post('/excluir/{id}', 'AreaTematicaController@destroy')->name('deletar')->middleware('checkAdministrador'); - Route::post('/salvar', 'AreaTematicaController@store')->name('salvar')->middleware('checkAdministrador'); - Route::get('/nova', 'AreaTematicaController@create')->name('criar')->middleware('checkAdministrador'); - }); - - Route::prefix('objetivoDeDenvolvimentoSustentavel')->name('objetivoDeDenvolvimentoSustentavel.')->group(function () { - Route::get('/editar/{id}', 'ObjetivoDeDesenvolvimentoSustentavelController@edit')->name('edit')->middleware('checkAdministrador'); - Route::post('/atualizar/{id}', 'ObjetivoDeDesenvolvimentoSustentavelController@update')->name('atualizar')->middleware('checkAdministrador'); - Route::post('/excluir/{id}', 'ObjetivoDeDesenvolvimentoSustentavelController@destroy')->name('deletar')->middleware('checkAdministrador'); - Route::post('/salvar', 'ObjetivoDeDesenvolvimentoSustentavelController@store')->name('salvar')->middleware('checkAdministrador'); - Route::get('/novo', 'ObjetivoDeDesenvolvimentoSustentavelController@create')->name('criar')->middleware('checkAdministrador'); - }); - - //######### Rotas Administrador ################################# - Route::get('/perfil-usuario', 'UserController@minhaConta')->name('user.perfil')->middleware(['auth', 'verified']); - - //######## Rotas Avaliador #################################### - Route::prefix('avaliador')->name('avaliador.')->group(function () { - Route::get('/index', 'AvaliadorController@index')->name('index')->middleware('auth'); - Route::get('/trabalhos', 'AvaliadorController@visualizarTrabalhos')->name('visualizarTrabalho')->middleware('auth'); - Route::get('/planos', 'AvaliadorController@listarPlanos')->name('listarPlanos')->middleware('auth'); - Route::post('/parecer', 'AvaliadorController@parecer')->name('parecer')->middleware('auth'); - Route::post('/parecer/plano', 'AvaliadorController@parecerPlano')->name('parecer.plano')->middleware('auth'); - Route::get('/editais', 'AvaliadorController@editais')->name('editais')->middleware('auth'); - Route::post('/Enviarparecer', 'AvaliadorController@enviarParecer')->name('enviarParecer')->middleware('auth'); - Route::post('/Enviarparecer/plano', 'AvaliadorController@enviarParecerPlano')->name('enviarParecerPlano')->middleware('auth'); - Route::get('/Resposta', 'AvaliadorController@conviteResposta')->name('conviteResposta')->middleware('auth'); - - Route::post('/parecerInterno', 'AvaliadorController@parecerInterno')->name('parecerInterno')->middleware('auth'); - Route::post('/EnviarparecerInterno', 'AvaliadorController@enviarParecerInterno')->name('enviarParecerInterno')->middleware('auth'); - }); - - Route::get('/notificacao/listar', 'NotificacaoController@listar')->name('notificacao.listar')->middleware('auth'); - Route::get('/notificacao/lista', 'NotificacaoController@listarTrab')->name('notificacao.listarTrab')->middleware('auth'); - Route::get('/notificacao/ler/{id}', 'NotificacaoController@ler')->name('notificacao.ler'); - - Route::get('/home/edital', 'EventoController@index')->name('visualizarEvento'); - - // ######## rotas de teste ##################################### - - Route::get('/coordenador/evento/detalhes', 'EventoController@detalhes')->name('coord.detalhesEvento'); - - //####### Visualizar trabalhos do usuário ###################### - Route::get('/user/trabalhos', 'UserController@meusTrabalhos')->name('user.meusTrabalhos'); - - //######### Cadastrar Comissão ################################### - Route::post('/evento/cadastrarComissao', 'ComissaoController@store')->name('cadastrar.comissao'); - Route::post('/evento/cadastrarCoordComissao', 'ComissaoController@coordenadorComissao')->name('cadastrar.coordComissao'); - - //######### rota downloadArquivo ################################ - Route::get('/downloadArquivo', 'HomeController@downloadArquivo')->name('download'); - - //######### Area do participante ############################### - Route::get('/participante', 'EventoController@areaParticipante')->name('area.participante'); - Route::get('participante/editais', 'ParticipanteController@editais')->name('participante.editais'); - //######### Participante ######################################## - Route::get('/participante/index', 'ParticipanteController@index')->name('participante.index'); - Route::get('/participante/edital/{id}', 'ParticipanteController@edital')->name('participante.edital'); - - //######### Plano de Trablho ######################################## - Route::prefix('/plano/trabalho')->name('plano.trabalho.')->group(function () { - Route::get('/index/{evento_id}', 'PlanoTrabalhoController@index')->name('index'); - Route::get('/selecionar/{evento_id}', 'PlanoTrabalhoController@selecionarPlanos')->name('selecionarPlanos'); - Route::post('/atribuicao', 'PlanoTrabalhoController@atribuicao')->name('atribuicao'); - }); - - //########## Area da comissao ################################### - Route::get('/comissoes', 'EventoController@listComissao')->name('comissoes'); - Route::get('/area/comissao', 'EventoController@listComissaoTrabalhos')->name('area.comissao'); - - //########### Deletar Comissão ################################### - Route::delete('/evento/apagar-comissao/', 'ComissaoController@destroy')->name('delete.comissao'); - Route::post('/evento/numTrabalhos', 'EventoController@numTrabalhos')->name('trabalho.numTrabalhos'); - - //########## Area ########################################### - Route::post('/area/criar', 'AreaController@store')->name('area.store'); - - //########### Deletar Area ###################################### - Route::delete('/area/deletar/{id}', 'AreaController@destroy')->name('area.delete'); - - //######### Deletar Revisores ############################## - Route::delete('/revisor/apagar', 'RevisorController@destroy')->name('revisor.delete'); - - //######### AreaModalidade ################################### - Route::post('/areaModalidade/criar', 'AreaModalidadeController@store')->name('areaModalidade.store'); - - //######### Trabalho ######################################## - Route::get('/trabalho/submeter/{id}', 'TrabalhoController@index')->name('trabalho.index'); - // Route::get( '/trabalho/visualizar/{id}','TrabalhoController@show' )->name('trabalho.show'); - Route::post('/trabalho/novaVersao', 'TrabalhoController@novaVersao')->name('trabalho.novaVersao'); - Route::post('/trabalho/criar', 'TrabalhoController@salvar')->name('trabalho.store'); - Route::post('/trabalho/criarRascunho', 'TrabalhoController@storeParcial')->name('trabalho.storeParcial'); - Route::get('/edital/{id}/projetos', 'TrabalhoController@projetosDoEdital')->name('projetos.edital'); - Route::get('/projeto/visualizar/{id}', 'TrabalhoController@show')->name('trabalho.show'); - Route::get('/projeto/{id}/editar', 'TrabalhoController@edit')->name('trabalho.editar'); - - Route::post('/projeto/buscarUsuario', 'TrabalhoController@buscarUsuario')->name('trabalho.buscarUsuario'); - - Route::post('/projeto/{id}/atualizar', 'TrabalhoController@update')->name('trabalho.update'); - Route::get('/projeto/{id}/excluir', 'TrabalhoController@destroy')->name('trabalho.destroy'); - Route::get('/projeto/{id}/excluirParticipante', 'TrabalhoController@excluirParticipante')->name('trabalho.excluirParticipante'); - Route::post('/projeto/{trabalho}/solicitarCertificado', 'TrabalhoController@solicitarCertificado')->name('trabalho.solicitarCertificado'); - Route::get('/projeto/exportar/{id}', 'TrabalhoController@exportProjeto')->name('exportar.projeto'); - Route::get('/projeto/substituirParticipante', 'TrabalhoController@telaTrocaPart')->name('trabalho.trocaParticipante'); - Route::post('/projeto/substituirParticipante', 'TrabalhoController@trocaParticipante')->name('trabalho.infoTrocaParticipante'); - Route::get('/showSubstituicoes', 'TrabalhoController@telaShowSubst')->name('trabalho.telaAnaliseSubstituicoes')->middleware('checkRoles:coordenador,administrador'); - Route::post('/aprovarSubstituicao', 'TrabalhoController@aprovarSubstituicao')->name('trabalho.aprovarSubstituicao'); - Route::post('/aprovarProposta/{id}', 'TrabalhoController@aprovarProposta')->name('trabalho.aprovarProposta'); - - Route::post('/certificado/{certificado}', 'CertificadoController@update')->name('certificado.update'); - - //########## Bolsas - Route::get('/bolsas', 'ParticipanteController@listarParticipanteEdital')->name('bolsas.listar'); - Route::post('/bolsas/alteracao', 'ParticipanteController@alterarBolsa')->name('bolsa.alterar'); - - //########## Arquivar Projeto e Plano - Route::get('/arquivar/projeto', 'TrabalhoController@arquivar')->name('projeto.arquivar'); - Route::get('/arquivar/plano', 'ArquivoController@arquivar')->name('arquivo.arquivar'); - - //######### Imprimir Resultado ################################# - Route::get('/usuarios/showResultados/imprimir', 'AdministradorController@imprimirResultados')->name('resultados.gerar'); - - //########## Relatórios - Route::get('/projeto/planosTrabalho/{id}', 'ArquivoController@listar')->name('planos.listar'); - Route::post('/projeto/planosTrabalho/anexarRelatorio', 'ArquivoController@anexarRelatorio')->name('planos.anexar.relatorio'); - - //########## Documentação Complementar - Route::get('/documentacaoComplementar', 'ParticipanteController@listarParticipanteProjeto')->name('docComplementar.listar'); - Route::post('/documentacaoComplementar/enviar', 'ParticipanteController@atualizarDocComplementar')->name('docComplementar.enviar'); - - //######### Atribuição ####################################### - Route::get('/atribuir', 'AtribuicaoController@distribuicaoAutomatica')->name('distribuicao'); - Route::get('/atribuirPorArea', 'AtribuicaoController@distribuicaoPorArea')->name('distribuicaoAutomaticaPorArea'); - Route::post('/distribuicaoManual', 'AtribuicaoController@distribuicaoManual')->name('distribuicaoManual'); - Route::post('/removerAtribuicao', 'AtribuicaoController@deletePorRevisores')->name('atribuicao.delete'); - - //########## Revisores ######################################### - Route::post('/revisor/criar', 'RevisorController@store')->name('revisor.store'); - Route::get('/revisor/listarTrabalhos', 'RevisorController@indexListarTrabalhos')->name('revisor.listarTrabalhos'); - Route::post('/revisor/email', 'RevisorController@enviarEmailRevisor')->name('revisor.email'); - Route::post('/revisor/emailTodos', 'RevisorController@enviarEmailTodosRevisores')->name('revisor.emailTodos'); - - //########## Rotas de download de documentos ########################### - Route::get('/baixar/anexo-projeto/{id}', 'TrabalhoController@baixarAnexoProjeto')->name('baixar.anexo.projeto'); - Route::get('/baixar/anexo-consu/{id}', 'TrabalhoController@baixarAnexoConsu')->name('baixar.anexo.consu'); - Route::get('/baixar/anexo-comite/{id}', 'TrabalhoController@baixarAnexoComite')->name('baixar.anexo.comite'); - Route::get('/baixar/anexo-justificativa/{id}', 'TrabalhoController@baixarAnexoJustificativa')->name('baixar.anexo.justificativa'); - Route::get('/baixar/anexo-lattes/{id}', 'TrabalhoController@baixarAnexoLattes')->name('baixar.anexo.lattes'); - Route::get('/baixar/anexo-planilha/{id}', 'TrabalhoController@baixarAnexoPlanilha')->name('baixar.anexo.planilha'); - Route::get('/baixar/plano-de-trabalho/{id}', 'ArquivoController@baixarPlano')->name('baixar.plano'); - Route::get('/baixar/anexoGrupoPesquisa/{id}', 'TrabalhoController@baixarAnexoGrupoPesquisa')->name('baixar.anexoGrupoPesquisa'); - Route::get('/baixar/anexo-temp/{eventoId}/{nomeAnexo}', 'TrabalhoController@baixarAnexoTemp')->name('baixar.anexo.temp'); - Route::get('/baixar/evento-temp/{nomeAnexo}', 'TrabalhoController@baixarEventoTemp')->name('baixar.evento.temp'); - Route::get('/baixar/documentosParticipante', 'ParticipanteController@baixarDocumento')->name('baixar.documentosParticipante'); - Route::get('/baixar/anexoDocExtra/{id}', 'TrabalhoController@baixarAnexoDocExtra')->name('baixar.anexo.docExtra'); -}); - -Route::get('/baixar/edital/{id}', 'EventoController@baixarEdital')->name('baixar.edital'); -Route::get('/baixar/modelos/{id}', 'EventoController@baixarModelos')->name('baixar.modelos'); - -Route::prefix('usuarios')->name('admin.')->group(function () { - //######### Rotas da administração dos usuários #################### - Route::get('/home-admin', 'AdministradorController@index')->name('index')->middleware('checkAdministrador'); - Route::get('/usuarios', 'AdministradorController@usuarios')->name('usuarios')->middleware('checkAdministrador'); - Route::get('/novo', 'AdministradorController@create')->name('user.create')->middleware('checkAdministrador'); - Route::post('/salvar-novo', 'AdministradorController@salvar')->name('user.store')->middleware('checkAdministrador'); - Route::get('/editar/{id}', 'AdministradorController@edit')->name('user.edit')->middleware('checkAdministrador'); - Route::post('/editar/atualizar/{id}', 'AdministradorController@update')->name('user.update')->middleware('checkAdministrador'); - Route::post('/editar/deletar/{id}', 'AdministradorController@destroy')->name('user.destroy')->middleware('checkAdministrador'); - Route::get('/editais', 'AdministradorController@editais')->name('editais'); - Route::get('/atribuir', 'AdministradorController@atribuir')->name('atribuir'); - Route::get('/selecionarAvaliador', 'AdministradorController@selecionar')->name('selecionar'); - Route::get('/selecionarProjetos', 'AdministradorController@projetos')->name('projetos'); - Route::post('/adicionarAvalEvento', 'AdministradorController@adicionar')->name('adicionar'); - Route::post('/removerAvalEvento', 'AdministradorController@remover')->name('remover'); - Route::get('/removerProjAval', 'AdministradorController@removerProjAval')->name('removerProjAval'); - Route::post('/atribuirAvaliadorProjeto', 'AdministradorController@atribuicaoProjeto')->name('atribuicao.projeto'); - Route::post('/enviarConviteEAtribuirProjeto', 'AdministradorController@enviarConviteEAtribuir')->name('convite.atribuicao.projeto'); - Route::get('/reenviarConviteAtribuicaoProjeto', 'AdministradorController@reenviarConviteAtribuicaoProjeto')->name('reenviar.atribuicao.projeto'); - Route::post('/enviarConviteAvaliador', 'AdministradorController@enviarConvite')->name('enviarConvite'); - Route::post('/reenviarConviteAvaliador', 'AdministradorController@reenviarConvite')->name('reenviarConvite'); - Route::post('/visualizarParecer', 'AdministradorController@visualizarParecer')->name('visualizarParecer'); - Route::get('/visualizarParecer', 'AdministradorController@visualizarParecer')->name('visualizarParecer'); - Route::get('/visualizarParecerInterno', 'AdministradorController@visualizarParecerInterno')->name('visualizarParecerInterno'); - Route::get('/pareceresProjetos', 'AdministradorController@pareceres')->name('pareceres'); - Route::get('/analisarProjetos/{column?}', 'AdministradorController@analisar')->name('analisar')->middleware('checkRoles:coordenador,administrador'); - Route::get('/analisarProposta', 'AdministradorController@analisarProposta')->name('analisarProposta')->middleware('checkRoles:coordenador,administrador'); - Route::get('/showProjetos', 'AdministradorController@showProjetos')->name('showProjetos'); - Route::get('/showResultados', 'AdministradorController@showResultados')->name('showResultados')->middleware(['auth', 'verified']); -}); - -Route::prefix('naturezas')->group(function () { - //########### Rotas das naturezas ############################### - - Route::get('/', 'AdministradorController@naturezas')->name('admin.naturezas')->middleware('checkAdministrador'); - Route::get('/index', 'NaturezaController@index')->name('natureza.index')->middleware('checkAdministrador'); - Route::get('/nova', 'NaturezaController@create')->name('natureza.criar')->middleware('checkAdministrador'); - Route::post('/salvar', 'NaturezaController@store')->name('natureza.salvar')->middleware('checkAdministrador'); - Route::get('/detalhes/{id}', 'NaturezaController@show')->name('natureza.show')->middleware('checkAdministrador'); - Route::get('/editar/{id}', 'NaturezaController@edit')->name('natureza.editar')->middleware('checkAdministrador'); - Route::get('/atualizar/{id}', 'NaturezaController@update')->name('natureza.atualizar')->middleware('checkAdministrador'); - Route::get('/excluir/{id}', 'NaturezaController@destroy')->name('natureza.deletar')->middleware('checkAdministrador'); - - //########### Rotas das grandes areas ############################## - Route::get('/grande-area', 'GrandeAreaController@index')->name('grandearea.index')->middleware('checkAdministrador'); - Route::get('/grande-area/nova', 'GrandeAreaController@create')->name('grandearea.criar')->middleware('checkAdministrador'); - Route::post('/grande-area/salvar', 'GrandeAreaController@store')->name('grandearea.salvar')->middleware('checkAdministrador'); - Route::get('/grande-area/detalhes/{id}', 'GrandeAreaController@show')->name('grandearea.show')->middleware('checkAdministrador'); - Route::get('/grande-area/editar/{id}', 'GrandeAreaController@edit')->name('grandearea.editar')->middleware('checkAdministrador'); - Route::post('/grande-area/atualizar/{id}', 'GrandeAreaController@update')->name('grandearea.atualizar')->middleware('checkAdministrador'); - Route::post('/grande-area/excluir/{id}', 'GrandeAreaController@destroy')->name('grandearea.deletar')->middleware('checkAdministrador'); - - //#### Rotas das areas, id's de nova e salvar são os ids da grande área a qual a nova área pertence #### - Route::get('/areas', 'AreaController@index')->name('area.index')->middleware('checkAdministrador'); - Route::get('/{id}/area/nova', 'AreaController@create')->name('area.criar')->middleware('checkAdministrador'); - Route::post('/{id}/area/salvar', 'AreaController@store')->name('area.salvar')->middleware('checkAdministrador'); - Route::get('/area/detalhes/{id}', 'AreaController@show')->name('area.show')->middleware('checkAdministrador'); - Route::get('/area/editar/{id}', 'AreaController@edit')->name('area.editar')->middleware('checkAdministrador'); - Route::post('/area/atualizar/{id}', 'AreaController@update')->name('area.atualizar')->middleware('checkAdministrador'); - Route::post('/area/excluir/{id}', 'AreaController@destroy')->name('area.deletar')->middleware('checkAdministrador'); - Route::post('/areas/', 'AreaController@consulta')->name('area.consulta'); - Route::post('/avalConExterno/', 'AvaliadorController@consultaExterno')->name('aval.consultaExterno'); - Route::post('/avalConInterno/', 'AvaliadorController@consultaInterno')->name('aval.consultaInterno'); - - //### Rotas das subareas, id's de nova e salvar são os ids da área a qual a nova subárea pertence ##### - Route::get('/subareas', 'SubAreaController@index')->name('subarea.index')->middleware('checkAdministrador'); - Route::get('/{id}/subarea/nova', 'SubAreaController@create')->name('subarea.criar')->middleware('checkAdministrador'); - Route::post('/{id}/subarea/salvar', 'SubAreaController@store')->name('subarea.salvar')->middleware('checkAdministrador'); - Route::get('/subarea/detalhes/{id}', 'SubAreaController@show')->name('subarea.show')->middleware('checkAdministrador'); - Route::get('/subarea/editar/{id}', 'SubAreaController@edit')->name('subarea.editar')->middleware('checkAdministrador'); - Route::post('/subarea/atualizar/{id}', 'SubAreaController@update')->name('subarea.atualizar')->middleware('checkAdministrador'); - Route::post('/subarea/excluir/{id}', 'SubAreaController@destroy')->name('subarea.deletar')->middleware('checkAdministrador'); - Route::post('/subarea/', 'SubAreaController@consulta')->name('subarea.consulta'); - - Route::post('/funcao-participante/store', 'ParticipanteController@storeFuncao')->name('funcao_participante.store'); - Route::post('/funcao-participante/{id}/update', 'ParticipanteController@updateFuncao')->name('funcao_participante.update'); - Route::get('/funcao-participante/{id}/destroy', 'ParticipanteController@destroyFuncao')->name('funcao_participante.destroy'); -}); - -Route::prefix('cursos')->name('cursos.')->group(function (){ - //#################### Rotas de cursos ######################### - Route::get('index', 'CursoController@index')->name('index')->middleware('checkAdministrador'); - Route::get('nova', 'CursoController@create')->name('criar')->middleware('checkAdministrador'); - Route::post('salvar','CursoController@store')->name('salvar')->middleware('checkAdministrador'); - Route::get('editar/{id}', 'CursoController@edit')->name('editar')->middleware('checkAdministrador'); - Route::post('editar/{id}', 'CursoController@update')->name('update')->middleware('checkAdministrador'); - Route::delete('exluir/{id}', 'CursoController@destroy')->name('excluir')->middleware('checkAdministrador'); - //Route::get('novo')->name('novo'); -}); - -//############ Evento ############################################## -Route::prefix('evento')->name('evento.')->group(function () { - Route::get('/criar', 'EventoController@create')->name('criar')->middleware('checkRoles:coordenador,administrador'); - Route::post('/criar', 'EventoController@store')->name('criar')->middleware('checkRoles:coordenador,administrador'); - Route::get('/visualizar/{id}', 'EventoController@show')->name('visualizar')->middleware('auth'); - Route::get('/listar', 'EventoController@listar')->name('listar')->middleware('auth'); - Route::delete('/excluir/{id}', 'EventoController@destroy')->name('deletar')->middleware('checkRoles:coordenador,administrador'); - Route::get('/editar/{id}', 'EventoController@edit')->name('editar')->middleware('checkRoles:coordenador,administrador'); - Route::post('/editar/{id}', 'EventoController@update')->name('update')->middleware('checkRoles:coordenador,administrador'); - Route::post('/setResumo', 'EventoController@setResumo')->name('setResumo')->middleware('checkAdministrador'); - Route::post('/setFoto', 'EventoController@setFotoEvento')->name('setFotoEvento')->middleware('checkAdministrador'); -}); - -//########## Rotas de administrador responsavel (Reitor ou pro-reitor)######## -Route::prefix('adminResp')->name('adminResp.')->group(function () { - Route::get('/index', 'AdministradorResponsavelController@index')->name('index'); - Route::get('/editais', 'AdministradorResponsavelController@editais')->name('editais'); - Route::get('/usuarios', 'AdministradorResponsavelController@usuarios')->name('usuarios'); - Route::get('/atribuir', 'AdministradorResponsavelController@atribuirPermissao')->name('atribuir'); - Route::post('/atribuir', 'AdministradorResponsavelController@atribuirPermissao')->name('atribuir'); - Route::post('/verPermissao', 'AdministradorResponsavelController@verPermissao')->name('verPermissao'); -}); - -//########### Rotas Coordenador ################################## -Route::prefix('coordenador')->name('coordenador.')->group(function () { - Route::get('/index', 'CoordenadorComissaoController@index')->name('index'); - Route::get('/editais', 'CoordenadorComissaoController@editais')->name('editais'); - Route::get('/usuarios', 'CoordenadorComissaoController@usuarios')->name('usuarios'); - Route::get('/listarCoord', 'CoordenadorComissaoController@coordenadorComite')->name('coord'); - Route::get('/listarAvaliador', 'CoordenadorComissaoController@avaliador')->name('avaliador'); - Route::get('/listarProponente', 'CoordenadorComissaoController@proponente')->name('proponente'); - Route::get('/listarParticipante', 'CoordenadorComissaoController@participante')->name('participante'); - Route::get('/listarTrabalhos', 'CoordenadorComissaoController@listarTrabalhos')->name('listarTrabalhos'); - Route::get('/detalhesEdital/{evento_id}', 'CoordenadorComissaoController@detalhesEdital')->name('detalhesEdital'); - Route::post('/retornoDetalhes', 'CoordenadorComissaoController@retornoDetalhes')->name('retornoDetalhes'); - Route::post('/atribuirAvaliadorTrabalho', 'TrabalhoController@atribuirAvaliadorTrabalho')->name('atribuirAvaliadorTrabalho'); - Route::post('/atribuir', 'TrabalhoController@atribuir')->name('atribuir'); - Route::post('/atribuir', 'TrabalhoController@atribuir')->name('atribuir'); - Route::post('/resposta-solicitacao-desligamento/{desligamento_id}', 'CoordenadorComissaoController@respostaDesligamento')->name('resposta.desligamento'); -}); +id; + Notification::send(Auth::user(), new SubmissaoNotification($id)); + + return 'Ok'; + // Auth::user()->notify(new SubmissaoTrabalho('teste')); +}); + +Route::get('/baixarModeloAvaliacao', 'AdministradorController@baixarModeloAvaliacao')->name('baixarModelo'); +Route::get('/', 'UserController@index')->name('home-user'); +Route::get('/', 'UserController@inicial')->name('inicial'); +Route::get('/home', 'HomeController@index')->name('home')->middleware('verified'); + +Route::get('/evento/visualizar/naologado/{id}', 'EventoController@showNaoLogado')->name('evento.visualizarNaoLogado'); +Route::get('/editais/home', 'EventoController@index')->name('coord.home'); +Route::get('/perfil', 'UserController@perfil')->name('perfil'); +Auth::routes(['verify' => true]); + +//Rota para avaliador atualizar perfil, deixando de ser usuario temporario +Route::post('/perfil-usuario', 'UserController@editarPerfil')->name('perfil.edit')->middleware(['auth', 'verified']); + +Route::group(['middleware' => ['isTemp', 'auth', 'verified']], function () { + //######### Proponente ######################################## + Route::get('/proponente/index', 'ProponenteController@index')->name('proponente.index'); + Route::get('/proponente/cadastro', 'ProponenteController@create')->name('proponente.create'); + Route::post('/proponente/cadastro', 'ProponenteController@store')->name('proponente.store'); + Route::get('/proponente/editais', 'ProponenteController@editais')->name('proponente.editais'); + Route::get('/projetos-submetidos', 'ProponenteController@projetosDoProponente')->name('proponente.projetos'); + 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 Avaliador #################################### + Route::prefix('avaliacaoRelatorio')->name('avaliacaoRelatorio.')->group(function () { + Route::post('/atribuirAvaliadorPlano', 'AvaliacaoRelatorioController@atribuicaoAvaliador')->name('atribuicao.avaliador')->middleware('checkRoles:coordenador,administrador'); + Route::get('/removerAvaliadorPlano/{id}', 'AvaliacaoRelatorioController@removerAvaliador')->name('remover.avaliador')->middleware('checkRoles:coordenador,administrador'); + }); + Route::get('/trabalho/planos/avaliacao/{id}', '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'); + + Route::prefix('areaTematica')->name('areaTematica.')->group(function () { + Route::get('/editar/{id}', 'AreaTematicaController@edit')->name('edit')->middleware('checkAdministrador'); + Route::post('/atualizar/{id}', 'AreaTematicaController@update')->name('atualizar')->middleware('checkAdministrador'); + Route::post('/excluir/{id}', 'AreaTematicaController@destroy')->name('deletar')->middleware('checkAdministrador'); + Route::post('/salvar', 'AreaTematicaController@store')->name('salvar')->middleware('checkAdministrador'); + Route::get('/nova', 'AreaTematicaController@create')->name('criar')->middleware('checkAdministrador'); + }); + + Route::prefix('objetivoDeDenvolvimentoSustentavel')->name('objetivoDeDenvolvimentoSustentavel.')->group(function () { + Route::get('/editar/{id}', 'ObjetivoDeDesenvolvimentoSustentavelController@edit')->name('edit')->middleware('checkAdministrador'); + Route::post('/atualizar/{id}', 'ObjetivoDeDesenvolvimentoSustentavelController@update')->name('atualizar')->middleware('checkAdministrador'); + Route::post('/excluir/{id}', 'ObjetivoDeDesenvolvimentoSustentavelController@destroy')->name('deletar')->middleware('checkAdministrador'); + Route::post('/salvar', 'ObjetivoDeDesenvolvimentoSustentavelController@store')->name('salvar')->middleware('checkAdministrador'); + Route::get('/novo', 'ObjetivoDeDesenvolvimentoSustentavelController@create')->name('criar')->middleware('checkAdministrador'); + }); + + //######### Rotas Administrador ################################# + Route::get('/perfil-usuario', 'UserController@minhaConta')->name('user.perfil')->middleware(['auth', 'verified']); + + //######## Rotas Avaliador #################################### + Route::prefix('avaliador')->name('avaliador.')->group(function () { + Route::get('/index', 'AvaliadorController@index')->name('index')->middleware('auth'); + Route::get('/trabalhos', 'AvaliadorController@visualizarTrabalhos')->name('visualizarTrabalho')->middleware('auth'); + Route::get('/planos', 'AvaliadorController@listarPlanos')->name('listarPlanos')->middleware('auth'); + Route::post('/parecer', 'AvaliadorController@parecer')->name('parecer')->middleware('auth'); + Route::post('/parecer/plano', 'AvaliadorController@parecerPlano')->name('parecer.plano')->middleware('auth'); + Route::get('/editais', 'AvaliadorController@editais')->name('editais')->middleware('auth'); + Route::post('/Enviarparecer', 'AvaliadorController@enviarParecer')->name('enviarParecer')->middleware('auth'); + Route::post('/Enviarparecer/plano', 'AvaliadorController@enviarParecerPlano')->name('enviarParecerPlano')->middleware('auth'); + Route::get('/Resposta', 'AvaliadorController@conviteResposta')->name('conviteResposta')->middleware('auth'); + + Route::post('/parecerInterno', 'AvaliadorController@parecerInterno')->name('parecerInterno')->middleware('auth'); + Route::post('/EnviarparecerInterno', 'AvaliadorController@enviarParecerInterno')->name('enviarParecerInterno')->middleware('auth'); + + Route::post('/parecerBarema', 'AvaliadorController@parecerBarema')->name('parecerBarema')->middleware('auth'); + Route::post('/EnviarparecerBarema', 'AvaliadorController@enviarParecerBarema')->name('enviarParecerBarema')->middleware('auth'); + + Route::post('/parecerLink', 'AvaliadorController@parecerLink')->name('parecerLink')->middleware('auth'); + Route::post('/EnviarparecerLink', 'AvaliadorController@enviarParecerLink')->name('enviarParecerLink')->middleware('auth'); + }); + + Route::get('/notificacao/listar', 'NotificacaoController@listar')->name('notificacao.listar')->middleware('auth'); + Route::get('/notificacao/lista', 'NotificacaoController@listarTrab')->name('notificacao.listarTrab')->middleware('auth'); + Route::get('/notificacao/ler/{id}', 'NotificacaoController@ler')->name('notificacao.ler'); + + Route::get('/home/edital', 'EventoController@index')->name('visualizarEvento'); + + // ######## rotas de teste ##################################### + + Route::get('/coordenador/evento/detalhes', 'EventoController@detalhes')->name('coord.detalhesEvento'); + + //####### Visualizar trabalhos do usuário ###################### + Route::get('/user/trabalhos', 'UserController@meusTrabalhos')->name('user.meusTrabalhos'); + + //######### Cadastrar Comissão ################################### + Route::post('/evento/cadastrarComissao', 'ComissaoController@store')->name('cadastrar.comissao'); + Route::post('/evento/cadastrarCoordComissao', 'ComissaoController@coordenadorComissao')->name('cadastrar.coordComissao'); + + //######### rota downloadArquivo ################################ + Route::get('/downloadArquivo', 'HomeController@downloadArquivo')->name('download'); + + //######### Area do participante ############################### + Route::get('/participante', 'EventoController@areaParticipante')->name('area.participante'); + Route::get('participante/editais', 'ParticipanteController@editais')->name('participante.editais'); + //######### Participante ######################################## + Route::get('/participante/index', 'ParticipanteController@index')->name('participante.index'); + Route::get('/participante/edital/{id}', 'ParticipanteController@edital')->name('participante.edital'); + + //######### Plano de Trablho ######################################## + Route::prefix('/plano/trabalho')->name('plano.trabalho.')->group(function () { + Route::get('/index/{evento_id}', 'PlanoTrabalhoController@index')->name('index'); + Route::get('/selecionar/{evento_id}', 'PlanoTrabalhoController@selecionarPlanos')->name('selecionarPlanos'); + Route::post('/atribuicao', 'PlanoTrabalhoController@atribuicao')->name('atribuicao'); + }); + + //########## Area da comissao ################################### + Route::get('/comissoes', 'EventoController@listComissao')->name('comissoes'); + Route::get('/area/comissao', 'EventoController@listComissaoTrabalhos')->name('area.comissao'); + + //########### Deletar Comissão ################################### + Route::delete('/evento/apagar-comissao/', 'ComissaoController@destroy')->name('delete.comissao'); + Route::post('/evento/numTrabalhos', 'EventoController@numTrabalhos')->name('trabalho.numTrabalhos'); + + //########## Area ########################################### + Route::post('/area/criar', 'AreaController@store')->name('area.store'); + + //########### Deletar Area ###################################### + Route::delete('/area/deletar/{id}', 'AreaController@destroy')->name('area.delete'); + + //######### Deletar Revisores ############################## + Route::delete('/revisor/apagar', 'RevisorController@destroy')->name('revisor.delete'); + + //######### AreaModalidade ################################### + Route::post('/areaModalidade/criar', 'AreaModalidadeController@store')->name('areaModalidade.store'); + + //######### Trabalho ######################################## + Route::get('/trabalho/submeter/{id}', 'TrabalhoController@index')->name('trabalho.index'); + // Route::get( '/trabalho/visualizar/{id}','TrabalhoController@show' )->name('trabalho.show'); + Route::post('/trabalho/novaVersao', 'TrabalhoController@novaVersao')->name('trabalho.novaVersao'); + Route::post('/trabalho/criar', 'TrabalhoController@salvar')->name('trabalho.store'); + Route::post('/trabalho/criarRascunho', 'TrabalhoController@storeParcial')->name('trabalho.storeParcial'); + Route::get('/edital/{id}/projetos', 'TrabalhoController@projetosDoEdital')->name('projetos.edital'); + Route::get('/projeto/visualizar/{id}', 'TrabalhoController@show')->name('trabalho.show'); + Route::get('/projeto/{id}/editar', 'TrabalhoController@edit')->name('trabalho.editar'); + + Route::post('/projeto/buscarUsuario', 'TrabalhoController@buscarUsuario')->name('trabalho.buscarUsuario'); + + Route::post('/projeto/{id}/atualizar', 'TrabalhoController@update')->name('trabalho.update'); + Route::get('/projeto/{id}/excluir', 'TrabalhoController@destroy')->name('trabalho.destroy'); + Route::get('/projeto/{id}/excluirParticipante', 'TrabalhoController@excluirParticipante')->name('trabalho.excluirParticipante'); + Route::post('/projeto/{trabalho}/solicitarCertificado', 'TrabalhoController@solicitarCertificado')->name('trabalho.solicitarCertificado'); + Route::get('/projeto/exportar/{id}', 'TrabalhoController@exportProjeto')->name('exportar.projeto'); + Route::get('/projeto/substituirParticipante', 'TrabalhoController@telaTrocaPart')->name('trabalho.trocaParticipante'); + Route::post('/projeto/substituirParticipante', 'TrabalhoController@trocaParticipante')->name('trabalho.infoTrocaParticipante'); + Route::get('/showSubstituicoes', 'TrabalhoController@telaShowSubst')->name('trabalho.telaAnaliseSubstituicoes')->middleware('checkRoles:coordenador,administrador'); + Route::post('/aprovarSubstituicao', 'TrabalhoController@aprovarSubstituicao')->name('trabalho.aprovarSubstituicao'); + Route::post('/aprovarProposta/{id}', 'TrabalhoController@aprovarProposta')->name('trabalho.aprovarProposta'); + + Route::post('/certificado/{certificado}', 'CertificadoController@update')->name('certificado.update'); + + //########## Bolsas + Route::get('/bolsas', 'ParticipanteController@listarParticipanteEdital')->name('bolsas.listar'); + Route::post('/bolsas/alteracao', 'ParticipanteController@alterarBolsa')->name('bolsa.alterar'); + + //########## Arquivar Projeto e Plano + Route::get('/arquivar/projeto', 'TrabalhoController@arquivar')->name('projeto.arquivar'); + Route::get('/arquivar/plano', 'ArquivoController@arquivar')->name('arquivo.arquivar'); + + //######### Imprimir Resultado ################################# + Route::get('/usuarios/showResultados/imprimir', 'AdministradorController@imprimirResultados')->name('resultados.gerar'); + + //########## Relatórios + Route::get('/projeto/planosTrabalho/{id}', 'ArquivoController@listar')->name('planos.listar'); + Route::post('/projeto/planosTrabalho/anexarRelatorio', 'ArquivoController@anexarRelatorio')->name('planos.anexar.relatorio'); + + //########## Documentação Complementar + Route::get('/documentacaoComplementar', 'ParticipanteController@listarParticipanteProjeto')->name('docComplementar.listar'); + Route::post('/documentacaoComplementar/enviar', 'ParticipanteController@atualizarDocComplementar')->name('docComplementar.enviar'); + + //######### Atribuição ####################################### + Route::get('/atribuir', 'AtribuicaoController@distribuicaoAutomatica')->name('distribuicao'); + Route::get('/atribuirPorArea', 'AtribuicaoController@distribuicaoPorArea')->name('distribuicaoAutomaticaPorArea'); + Route::post('/distribuicaoManual', 'AtribuicaoController@distribuicaoManual')->name('distribuicaoManual'); + Route::post('/removerAtribuicao', 'AtribuicaoController@deletePorRevisores')->name('atribuicao.delete'); + + //########## Revisores ######################################### + Route::post('/revisor/criar', 'RevisorController@store')->name('revisor.store'); + Route::get('/revisor/listarTrabalhos', 'RevisorController@indexListarTrabalhos')->name('revisor.listarTrabalhos'); + Route::post('/revisor/email', 'RevisorController@enviarEmailRevisor')->name('revisor.email'); + Route::post('/revisor/emailTodos', 'RevisorController@enviarEmailTodosRevisores')->name('revisor.emailTodos'); + + //########## Rotas de download de documentos ########################### + Route::get('/baixar/anexo-projeto/{id}', 'TrabalhoController@baixarAnexoProjeto')->name('baixar.anexo.projeto'); + Route::get('/baixar/anexo-consu/{id}', 'TrabalhoController@baixarAnexoConsu')->name('baixar.anexo.consu'); + Route::get('/baixar/anexo-comite/{id}', 'TrabalhoController@baixarAnexoComite')->name('baixar.anexo.comite'); + Route::get('/baixar/anexo-justificativa/{id}', 'TrabalhoController@baixarAnexoJustificativa')->name('baixar.anexo.justificativa'); + Route::get('/baixar/anexo-lattes/{id}', 'TrabalhoController@baixarAnexoLattes')->name('baixar.anexo.lattes'); + Route::get('/baixar/anexo-planilha/{id}', 'TrabalhoController@baixarAnexoPlanilha')->name('baixar.anexo.planilha'); + Route::get('/baixar/plano-de-trabalho/{id}', 'ArquivoController@baixarPlano')->name('baixar.plano'); + Route::get('/baixar/anexoGrupoPesquisa/{id}', 'TrabalhoController@baixarAnexoGrupoPesquisa')->name('baixar.anexoGrupoPesquisa'); + Route::get('/baixar/anexo-temp/{eventoId}/{nomeAnexo}', 'TrabalhoController@baixarAnexoTemp')->name('baixar.anexo.temp'); + Route::get('/baixar/evento-temp/{nomeAnexo}', 'TrabalhoController@baixarEventoTemp')->name('baixar.evento.temp'); + Route::get('/baixar/documentosParticipante', 'ParticipanteController@baixarDocumento')->name('baixar.documentosParticipante'); + Route::get('/baixar/anexoDocExtra/{id}', 'TrabalhoController@baixarAnexoDocExtra')->name('baixar.anexo.docExtra'); +}); + +Route::get('/baixar/edital/{id}', 'EventoController@baixarEdital')->name('baixar.edital'); +Route::get('/baixar/modelos/{id}', 'EventoController@baixarModelos')->name('baixar.modelos'); + +Route::prefix('usuarios')->name('admin.')->group(function () { + //######### Rotas da administração dos usuários #################### + Route::get('/home-admin', 'AdministradorController@index')->name('index')->middleware('checkAdministrador'); + Route::get('/usuarios', 'AdministradorController@usuarios')->name('usuarios')->middleware('checkAdministrador'); + Route::get('/novo', 'AdministradorController@create')->name('user.create')->middleware('checkAdministrador'); + Route::post('/salvar-novo', 'AdministradorController@salvar')->name('user.store')->middleware('checkAdministrador'); + Route::get('/editar/{id}', 'AdministradorController@edit')->name('user.edit')->middleware('checkAdministrador'); + Route::post('/editar/atualizar/{id}', 'AdministradorController@update')->name('user.update')->middleware('checkAdministrador'); + Route::post('/editar/deletar/{id}', 'AdministradorController@destroy')->name('user.destroy')->middleware('checkAdministrador'); + Route::get('/editais', 'AdministradorController@editais')->name('editais'); + Route::get('/atribuir', 'AdministradorController@atribuir')->name('atribuir'); + Route::get('/selecionarAvaliador', 'AdministradorController@selecionar')->name('selecionar'); + Route::get('/selecionarProjetos', 'AdministradorController@projetos')->name('projetos'); + Route::post('/adicionarAvalEvento', 'AdministradorController@adicionar')->name('adicionar'); + Route::post('/removerAvalEvento', 'AdministradorController@remover')->name('remover'); + Route::get('/removerProjAval', 'AdministradorController@removerProjAval')->name('removerProjAval'); + Route::post('/atribuirAvaliadorProjeto', 'AdministradorController@atribuicaoProjeto')->name('atribuicao.projeto'); + Route::post('/enviarConviteEAtribuirProjeto', 'AdministradorController@enviarConviteEAtribuir')->name('convite.atribuicao.projeto'); + Route::get('/reenviarConviteAtribuicaoProjeto', 'AdministradorController@reenviarConviteAtribuicaoProjeto')->name('reenviar.atribuicao.projeto'); + Route::post('/enviarConviteAvaliador', 'AdministradorController@enviarConvite')->name('enviarConvite'); + Route::post('/reenviarConviteAvaliador', 'AdministradorController@reenviarConvite')->name('reenviarConvite'); + Route::post('/visualizarParecer', 'AdministradorController@visualizarParecer')->name('visualizarParecer'); + Route::get('/visualizarParecer', 'AdministradorController@visualizarParecer')->name('visualizarParecer'); + Route::get('/visualizarParecerInterno', 'AdministradorController@visualizarParecerInterno')->name('visualizarParecerInterno'); + Route::get('/visualizarParecerLink', 'AdministradorController@visualizarParecerLink')->name('visualizarParecerLink'); + Route::get('/visualizarParecerBarema', 'AdministradorController@visualizarParecerBarema')->name('visualizarParecerBarema'); + Route::get('/pareceresProjetos', 'AdministradorController@pareceres')->name('pareceres'); + Route::get('/analisarProjetos/{column?}', 'AdministradorController@analisar')->name('analisar')->middleware('checkRoles:coordenador,administrador'); + Route::get('/analisarProposta', 'AdministradorController@analisarProposta')->name('analisarProposta')->middleware('checkRoles:coordenador,administrador'); + Route::get('/showProjetos', 'AdministradorController@showProjetos')->name('showProjetos'); + Route::get('/showResultados', 'AdministradorController@showResultados')->name('showResultados')->middleware(['auth', 'verified']); +}); + +Route::prefix('naturezas')->group(function () { + //########### Rotas das naturezas ############################### + + Route::get('/', 'AdministradorController@naturezas')->name('admin.naturezas')->middleware('checkAdministrador'); + Route::get('/index', 'NaturezaController@index')->name('natureza.index')->middleware('checkAdministrador'); + Route::get('/nova', 'NaturezaController@create')->name('natureza.criar')->middleware('checkAdministrador'); + Route::post('/salvar', 'NaturezaController@store')->name('natureza.salvar')->middleware('checkAdministrador'); + Route::get('/detalhes/{id}', 'NaturezaController@show')->name('natureza.show')->middleware('checkAdministrador'); + Route::get('/editar/{id}', 'NaturezaController@edit')->name('natureza.editar')->middleware('checkAdministrador'); + Route::get('/atualizar/{id}', 'NaturezaController@update')->name('natureza.atualizar')->middleware('checkAdministrador'); + Route::get('/excluir/{id}', 'NaturezaController@destroy')->name('natureza.deletar')->middleware('checkAdministrador'); + + //########### Rotas das grandes areas ############################## + Route::get('/grande-area', 'GrandeAreaController@index')->name('grandearea.index')->middleware('checkAdministrador'); + Route::get('/grande-area/nova', 'GrandeAreaController@create')->name('grandearea.criar')->middleware('checkAdministrador'); + Route::post('/grande-area/salvar', 'GrandeAreaController@store')->name('grandearea.salvar')->middleware('checkAdministrador'); + Route::get('/grande-area/detalhes/{id}', 'GrandeAreaController@show')->name('grandearea.show')->middleware('checkAdministrador'); + Route::get('/grande-area/editar/{id}', 'GrandeAreaController@edit')->name('grandearea.editar')->middleware('checkAdministrador'); + Route::post('/grande-area/atualizar/{id}', 'GrandeAreaController@update')->name('grandearea.atualizar')->middleware('checkAdministrador'); + Route::post('/grande-area/excluir/{id}', 'GrandeAreaController@destroy')->name('grandearea.deletar')->middleware('checkAdministrador'); + + //#### Rotas das areas, id's de nova e salvar são os ids da grande área a qual a nova área pertence #### + Route::get('/areas', 'AreaController@index')->name('area.index')->middleware('checkAdministrador'); + Route::get('/{id}/area/nova', 'AreaController@create')->name('area.criar')->middleware('checkAdministrador'); + Route::post('/{id}/area/salvar', 'AreaController@store')->name('area.salvar')->middleware('checkAdministrador'); + Route::get('/area/detalhes/{id}', 'AreaController@show')->name('area.show')->middleware('checkAdministrador'); + Route::get('/area/editar/{id}', 'AreaController@edit')->name('area.editar')->middleware('checkAdministrador'); + Route::post('/area/atualizar/{id}', 'AreaController@update')->name('area.atualizar')->middleware('checkAdministrador'); + Route::post('/area/excluir/{id}', 'AreaController@destroy')->name('area.deletar')->middleware('checkAdministrador'); + Route::post('/areas/', 'AreaController@consulta')->name('area.consulta'); + Route::post('/avalConExterno/', 'AvaliadorController@consultaExterno')->name('aval.consultaExterno'); + Route::post('/avalConInterno/', 'AvaliadorController@consultaInterno')->name('aval.consultaInterno'); + + //### Rotas das subareas, id's de nova e salvar são os ids da área a qual a nova subárea pertence ##### + Route::get('/subareas', 'SubAreaController@index')->name('subarea.index')->middleware('checkAdministrador'); + Route::get('/{id}/subarea/nova', 'SubAreaController@create')->name('subarea.criar')->middleware('checkAdministrador'); + Route::post('/{id}/subarea/salvar', 'SubAreaController@store')->name('subarea.salvar')->middleware('checkAdministrador'); + Route::get('/subarea/detalhes/{id}', 'SubAreaController@show')->name('subarea.show')->middleware('checkAdministrador'); + Route::get('/subarea/editar/{id}', 'SubAreaController@edit')->name('subarea.editar')->middleware('checkAdministrador'); + Route::post('/subarea/atualizar/{id}', 'SubAreaController@update')->name('subarea.atualizar')->middleware('checkAdministrador'); + Route::post('/subarea/excluir/{id}', 'SubAreaController@destroy')->name('subarea.deletar')->middleware('checkAdministrador'); + Route::post('/subarea/', 'SubAreaController@consulta')->name('subarea.consulta'); + + Route::post('/funcao-participante/store', 'ParticipanteController@storeFuncao')->name('funcao_participante.store'); + Route::post('/funcao-participante/{id}/update', 'ParticipanteController@updateFuncao')->name('funcao_participante.update'); + Route::get('/funcao-participante/{id}/destroy', 'ParticipanteController@destroyFuncao')->name('funcao_participante.destroy'); +}); + +Route::prefix('cursos')->name('cursos.')->group(function (){ + //#################### Rotas de cursos ######################### + Route::get('index', 'CursoController@index')->name('index')->middleware('checkAdministrador'); + Route::get('nova', 'CursoController@create')->name('criar')->middleware('checkAdministrador'); + Route::post('salvar','CursoController@store')->name('salvar')->middleware('checkAdministrador'); + Route::get('editar/{id}', 'CursoController@edit')->name('editar')->middleware('checkAdministrador'); + Route::post('editar/{id}', 'CursoController@update')->name('update')->middleware('checkAdministrador'); + Route::delete('exluir/{id}', 'CursoController@destroy')->name('excluir')->middleware('checkAdministrador'); + //Route::get('novo')->name('novo'); +}); + +//############ Evento ############################################## +Route::prefix('evento')->name('evento.')->group(function () { + Route::get('/criar', 'EventoController@create')->name('criar')->middleware('checkRoles:coordenador,administrador'); + Route::post('/criar', 'EventoController@store')->name('criar')->middleware('checkRoles:coordenador,administrador'); + Route::get('/visualizar/{id}', 'EventoController@show')->name('visualizar')->middleware('auth'); + Route::get('/listar', 'EventoController@listar')->name('listar')->middleware('auth'); + Route::delete('/excluir/{id}', 'EventoController@destroy')->name('deletar')->middleware('checkRoles:coordenador,administrador'); + Route::get('/editar/{id}', 'EventoController@edit')->name('editar')->middleware('checkRoles:coordenador,administrador'); + Route::post('/editar/{id}', 'EventoController@update')->name('update')->middleware('checkRoles:coordenador,administrador'); + Route::post('/setResumo', 'EventoController@setResumo')->name('setResumo')->middleware('checkAdministrador'); + Route::post('/setFoto', 'EventoController@setFotoEvento')->name('setFotoEvento')->middleware('checkAdministrador'); +}); + +//########## Rotas de administrador responsavel (Reitor ou pro-reitor)######## +Route::prefix('adminResp')->name('adminResp.')->group(function () { + Route::get('/index', 'AdministradorResponsavelController@index')->name('index'); + Route::get('/editais', 'AdministradorResponsavelController@editais')->name('editais'); + Route::get('/usuarios', 'AdministradorResponsavelController@usuarios')->name('usuarios'); + Route::get('/atribuir', 'AdministradorResponsavelController@atribuirPermissao')->name('atribuir'); + Route::post('/atribuir', 'AdministradorResponsavelController@atribuirPermissao')->name('atribuir'); + Route::post('/verPermissao', 'AdministradorResponsavelController@verPermissao')->name('verPermissao'); +}); + +//########### Rotas Coordenador ################################## +Route::prefix('coordenador')->name('coordenador.')->group(function () { + Route::get('/index', 'CoordenadorComissaoController@index')->name('index'); + Route::get('/editais', 'CoordenadorComissaoController@editais')->name('editais'); + Route::get('/usuarios', 'CoordenadorComissaoController@usuarios')->name('usuarios'); + Route::get('/listarCoord', 'CoordenadorComissaoController@coordenadorComite')->name('coord'); + Route::get('/listarAvaliador', 'CoordenadorComissaoController@avaliador')->name('avaliador'); + Route::get('/listarProponente', 'CoordenadorComissaoController@proponente')->name('proponente'); + Route::get('/listarParticipante', 'CoordenadorComissaoController@participante')->name('participante'); + Route::get('/listarTrabalhos', 'CoordenadorComissaoController@listarTrabalhos')->name('listarTrabalhos'); + Route::get('/detalhesEdital/{evento_id}', 'CoordenadorComissaoController@detalhesEdital')->name('detalhesEdital'); + Route::post('/retornoDetalhes', 'CoordenadorComissaoController@retornoDetalhes')->name('retornoDetalhes'); + Route::post('/atribuirAvaliadorTrabalho', 'TrabalhoController@atribuirAvaliadorTrabalho')->name('atribuirAvaliadorTrabalho'); + Route::post('/atribuir', 'TrabalhoController@atribuir')->name('atribuir'); + Route::post('/atribuir', 'TrabalhoController@atribuir')->name('atribuir'); + Route::post('/resposta-solicitacao-desligamento/{desligamento_id}', 'CoordenadorComissaoController@respostaDesligamento')->name('resposta.desligamento'); +});