Unverified Commit 6295b7c8 authored by Nathalia Santos's avatar Nathalia Santos Committed by GitHub
Browse files

Merge pull request #732 from Wolf-gangSE/adicionar-campos-avaliacao

Adicionar novos tipos de avaliação
parents a0b57aa0 1311fe50
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
class AvaliacaoTrabalho extends Model
{
use SoftDeletes;
protected $fillable = [
'nota',
'avaliador_id',
'campo_avaliacao_id',
'trabalho_id',
];
public function trabalho(){
return $this->belongsTo('App\Trabalho');
}
public function avaliador(){
return $this->belongsTo('App\Avaliador');
}
public function campoAvaliacao(){
return $this->belongsTo('App\CampoAvaliacao');
}
}
...@@ -41,4 +41,8 @@ class Avaliador extends Model ...@@ -41,4 +41,8 @@ class Avaliador extends Model
public function areaTematicas() { public function areaTematicas() {
return $this->belongsToMany('App\AreaTematica', 'area_tematica_avaliadors', 'avaliador_id'); return $this->belongsToMany('App\AreaTematica', 'area_tematica_avaliadors', 'avaliador_id');
} }
public function avaliacaoTrabalho(){
return $this->hasMany('App\AvaliacaoTrabalho');
}
} }
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
class CampoAvaliacao extends Model
{
use SoftDeletes;
protected $fillable = [
'nome',
'nota_maxima',
'descricao',
'prioridade',
'evento_id',
];
public function evento(){
return $this->belongsTo('App\Evento');
}
public function avaliacaoTrabalho(){
return $this->hasMany('App\AvaliacaoTrabalho');
}
}
...@@ -47,6 +47,8 @@ class Evento extends Model ...@@ -47,6 +47,8 @@ class Evento extends Model
public function avaliadors(){ public function avaliadors(){
return $this->belongsToMany('App\Avaliador')->withPivot('convite', 'created_at'); return $this->belongsToMany('App\Avaliador')->withPivot('convite', 'created_at');
} }
public function campos_avaliacao(){
return $this->hasMany('App\CampoAvaliacao');
}
} }
...@@ -8,6 +8,8 @@ use App\Area; ...@@ -8,6 +8,8 @@ use App\Area;
use App\Arquivo; use App\Arquivo;
use App\AvaliacaoRelatorio; use App\AvaliacaoRelatorio;
use App\Avaliador; use App\Avaliador;
use App\AvaliacaoTrabalho;
use App\CampoAvaliacao;
use App\CoordenadorComissao; use App\CoordenadorComissao;
use App\Evento; use App\Evento;
use App\FuncaoParticipantes; use App\FuncaoParticipantes;
...@@ -255,40 +257,143 @@ class AdministradorController extends Controller ...@@ -255,40 +257,143 @@ class AdministradorController extends Controller
foreach ($trabalhosAmpla as $trabalho) { foreach ($trabalhosAmpla as $trabalho) {
$trabalho->pontuacao = 0; $trabalho->pontuacao = 0;
$cont = 0; $cont = 0;
// Caso especial do PIBEX onde a pontuação fica no Ad Hoc if ($evento->tipoAvaliacao == "form"){
if ($evento->tipo == 'PIBEX') { // Caso especial do PIBEX onde a pontuação fica no Ad Hoc
foreach ($trabalho->avaliadors as $avaliador) { if ($evento->tipo == 'PIBEX') {
if (($avaliador->trabalhos()->where('trabalho_id', $trabalho->id)->first()->pivot->acesso == 1 || foreach ($trabalho->avaliadors as $avaliador) {
$avaliador->trabalhos()->where('trabalho_id', $trabalho->id)->first()->pivot->acesso == 3) && if (($avaliador->trabalhos()->where('trabalho_id', $trabalho->id)->first()->pivot->acesso == 1 ||
$avaliador->trabalhos()->where('trabalho_id', $trabalho->id)->first()->pivot->pontuacao != null) { $avaliador->trabalhos()->where('trabalho_id', $trabalho->id)->first()->pivot->acesso == 3) &&
$trabalho->pontuacao += $avaliador->trabalhos()->where('trabalho_id', $trabalho->id)->first()->pivot->pontuacao; $avaliador->trabalhos()->where('trabalho_id', $trabalho->id)->first()->pivot->pontuacao != null) {
++$cont; $trabalho->pontuacao += $avaliador->trabalhos()->where('trabalho_id', $trabalho->id)->first()->pivot->pontuacao;
}
}
} 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; ++$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) { if ($trabalho->pontuacao != 0) {
$trabalho->pontuacao = number_format(($trabalho->pontuacao / $cont), 2, ',', ''); $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) { if ($evento->tipoAvaliacao == "form") {
return $item->pontuacao >= $next->pontuacao ? -1 : 1; $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 // Recém Doutor
$trabalhosDoutor = Trabalho::where('evento_id', $evento->id) $trabalhosDoutor = Trabalho::where('evento_id', $evento->id)
->where('modalidade', 'RecemDoutor')->get(); ->where('modalidade', 'RecemDoutor')->get();
foreach ($trabalhosDoutor as $trabalho) { 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; $trabalho->pontuacao = 0;
$cont = 0; $cont = 0;
// Caso especial do PIBEX onde a pontuação fica no Ad Hoc // Caso especial do PIBEX onde a pontuação fica no Ad Hoc
...@@ -312,51 +417,47 @@ class AdministradorController extends Controller ...@@ -312,51 +417,47 @@ class AdministradorController extends Controller
} }
} }
} }
if ($trabalho->pontuacao != 0) { if ($trabalho->pontuacao != 0) {
$trabalho->pontuacao = number_format(($trabalho->pontuacao / $cont), 2, ',', ''); $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) { foreach ($trabalho->avaliadors as $avaliador) {
if (($avaliador->trabalhos()->where('trabalho_id', $trabalho->id)->first()->pivot->acesso == 1 || $trabalho->pontuacao += $avaliador->trabalhos()->where('trabalho_id', $trabalho->id)->first()->pivot->pontuacao;
$avaliador->trabalhos()->where('trabalho_id', $trabalho->id)->first()->pivot->acesso == 3) && ++$cont;
$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 ($trabalho->pontuacao != 0) {
if ($avaliador->tipo == 'Interno') { $trabalho->pontuacao = number_format(($trabalho->pontuacao / $cont), 2, ',', '');
$parecerInterno = ParecerInterno::where([['avaliador_id', $avaliador->id], ['trabalho_id', $trabalho->id]])->first(); }
if ($parecerInterno != null) {
$trabalho->pontuacao += $parecerInterno->statusAnexoPlanilhaPontuacao; // Faz a classificação dos trabalhos de acordo com a pontuação e com a nota de cada campo de avaliação
++$cont; $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]); return view('administrador.resultadosProjetos')->with(['evento' => $evento, 'trabalhos' => $trabalhos]);
} }
...@@ -371,6 +472,29 @@ class AdministradorController extends Controller ...@@ -371,6 +472,29 @@ class AdministradorController extends Controller
return view('administrador.visualizarParecer')->with(['trabalho' => $trabalho, 'parecer' => $parecer, 'avaliador' => $avaliador]); 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) public function visualizarParecerInterno(Request $request)
{ {
$avaliador = Avaliador::find($request->avaliador_id); $avaliador = Avaliador::find($request->avaliador_id);
...@@ -890,7 +1014,7 @@ class AdministradorController extends Controller ...@@ -890,7 +1014,7 @@ class AdministradorController extends Controller
'tipo' => 5, 'tipo' => 5,
]); ]);
$notificacao->save(); $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(); return redirect()->back();
......
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\AvaliacaoTrabalho;
use App\CampoAvaliacao;
class AvaliacaoTrabalhoController extends Controller
{
//
}
...@@ -5,6 +5,8 @@ namespace App\Http\Controllers; ...@@ -5,6 +5,8 @@ namespace App\Http\Controllers;
use App\Area; use App\Area;
use App\Arquivo; use App\Arquivo;
use App\AvaliacaoRelatorio; use App\AvaliacaoRelatorio;
use App\CampoAvaliacao;
use App\AvaliacaoTrabalho;
use App\FuncaoParticipantes; use App\FuncaoParticipantes;
use App\GrandeArea; use App\GrandeArea;
use App\ParecerInterno; use App\ParecerInterno;
...@@ -81,25 +83,30 @@ class AvaliadorController extends Controller ...@@ -81,25 +83,30 @@ class AvaliadorController extends Controller
$user = User::find(Auth::user()->id); $user = User::find(Auth::user()->id);
$evento = Evento::where('id', $request->evento_id)->first(); $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 = []; $trabalhosEx = [];
$trabalhosIn = []; $trabalhosIn = [];
$trabalhos = [];
$aval = $user->avaliadors->where('user_id',$user->id)->first(); $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 if ($evento->tipoAvaliacao == 'campos' || $evento->tipoAvaliacao == 'link') {
|| $aval->trabalhos()->where("trabalho_id",$trab->id)->first()->pivot->orderBy('created_at','DESC')->first()->acesso == 3 || $trabalhos = $aval->trabalhos->where('evento_id', $request->evento_id);
($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()); } 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 == 1 || 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 == 3 ||
($aval->trabalhos()->where("trabalho_id",$trab->id)->first()->pivot->orderBy('created_at','DESC')->first()->acesso == null && $aval->tipo == "Externo")){ ($aval->trabalhos()->where("trabalho_id",$trab->id)->first()->pivot->orderBy('created_at','DESC')->first()->acesso == null && $aval->tipo == "Interno")){
array_push($trabalhosEx,$aval->trabalhos()->where("trabalho_id",$trab->id)->first()); 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, 'trabalhos'=>$trabalhos, 'evento'=>$evento]);
return view('avaliador.listarTrabalhos', ['trabalhosEx'=>$trabalhosEx,'trabalhosIn'=>$trabalhosIn, 'evento'=>$evento]);
} }
...@@ -159,6 +166,7 @@ class AvaliadorController extends Controller ...@@ -159,6 +166,7 @@ class AvaliadorController extends Controller
//$trabalhos = $user->avaliadors->where('user_id',$user->id)->first()->trabalhos->where('evento_id', $request->evento_id); //$trabalhos = $user->avaliadors->where('user_id',$user->id)->first()->trabalhos->where('evento_id', $request->evento_id);
$trabalhosEx = []; $trabalhosEx = [];
$trabalhosIn = []; $trabalhosIn = [];
$trabalhos = [];
$aval = $user->avaliadors->where('user_id',$user->id)->first(); $aval = $user->avaliadors->where('user_id',$user->id)->first();
foreach ($aval->trabalhos->where('evento_id',$evento->id) as $trab){ 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 ){ 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 ...@@ -214,7 +222,99 @@ class AvaliadorController extends Controller
$parecerInterno->update(); $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){ public function parecerPlano(Request $request){
...@@ -272,8 +372,12 @@ class AvaliadorController extends Controller ...@@ -272,8 +372,12 @@ class AvaliadorController extends Controller
->updateExistingPivot($trabalho->id,['status'=> 1,'parecer'=>$request->textParecer,'AnexoParecer'=> $anexoParecer, 'recomendacao'=>$request->recomendacao, 'created_at' => $data]); ->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])); return redirect(route('avaliador.visualizarTrabalho', ['evento_id' => $evento->id]));
} }
public function conviteResposta(Request $request){ public function conviteResposta(Request $request){
......
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\CampoAvaliacao;
class CampoAvaliacaoController extends Controller
{
//
}
...@@ -16,6 +16,7 @@ use App\Trabalho; ...@@ -16,6 +16,7 @@ use App\Trabalho;
use App\AreaModalidade; use App\AreaModalidade;
use App\Natureza; use App\Natureza;
use App\CoordenadorComissao; use App\CoordenadorComissao;
use App\CampoAvaliacao;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Carbon\Carbon; use Carbon\Carbon;
use App\Rules\ExcelRule; use App\Rules\ExcelRule;
...@@ -82,7 +83,6 @@ class EventoController extends Controller ...@@ -82,7 +83,6 @@ class EventoController extends Controller
*/ */
public function store(Request $request) public function store(Request $request)
{ {
$mytime = Carbon::now('America/Recife'); $mytime = Carbon::now('America/Recife');
$yesterday = Carbon::yesterday('America/Recife'); $yesterday = Carbon::yesterday('America/Recife');
$yesterday = $yesterday->toDateString(); $yesterday = $yesterday->toDateString();
...@@ -122,6 +122,7 @@ class EventoController extends Controller ...@@ -122,6 +122,7 @@ class EventoController extends Controller
'natureza' => ['required'], 'natureza' => ['required'],
'coordenador_id' => ['required'], 'coordenador_id' => ['required'],
'numParticipantes' => ['required'], 'numParticipantes' => ['required'],
'tipoAvaliacao' => ['required'],
'inicioSubmissao' => ['required', 'date'], 'inicioSubmissao' => ['required', 'date'],
'fimSubmissao' => ['required', 'date'], 'fimSubmissao' => ['required', 'date'],
'inicioRevisao' => ['required', 'date'], 'inicioRevisao' => ['required', 'date'],
...@@ -134,7 +135,6 @@ class EventoController extends Controller ...@@ -134,7 +135,6 @@ class EventoController extends Controller
'dt_fimRelatorioParcial' => ['required', 'date'], 'dt_fimRelatorioParcial' => ['required', 'date'],
'dt_inicioRelatorioFinal' => ['required', 'date'], 'dt_inicioRelatorioFinal' => ['required', 'date'],
'dt_fimRelatorioFinal' => ['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'], 'pdfEdital' => [($request->pdfEditalPreenchido!=='sim'?'required':''), 'file', 'mimes:pdf', 'max:2048'],
'inicioProjeto' => ['required', 'date'], 'inicioProjeto' => ['required', 'date'],
'fimProjeto' => ['required', 'date'], 'fimProjeto' => ['required', 'date'],
...@@ -152,8 +152,9 @@ class EventoController extends Controller ...@@ -152,8 +152,9 @@ class EventoController extends Controller
'tipo' => ['required', 'string'], 'tipo' => ['required', 'string'],
'natureza' => ['required'], 'natureza' => ['required'],
'coordenador_id' => ['required'], 'coordenador_id' => ['required'],
'numParticipantes' => ['required'], 'numParticipantes' => ['required'],
'nome_docExtra' => [Rule::requiredIf($request->check_docExtra != null),'max:255'], 'nome_docExtra' => [Rule::requiredIf($request->check_docExtra != null),'max:255'],
'tipoAvaliacao' => ['required'],
#---------------------------------------------- #----------------------------------------------
'inicioSubmissao' => ['required', 'date', 'after:yesterday'], 'inicioSubmissao' => ['required', 'date', 'after:yesterday'],
'fimSubmissao' => ['required', 'date', 'after_or_equal:inicioSubmissao'], 'fimSubmissao' => ['required', 'date', 'after_or_equal:inicioSubmissao'],
...@@ -167,12 +168,33 @@ class EventoController extends Controller ...@@ -167,12 +168,33 @@ class EventoController extends Controller
'dt_fimRelatorioParcial' => ['required', 'date', 'after_or_equal:dt_inicioRelatorioParcial'], 'dt_fimRelatorioParcial' => ['required', 'date', 'after_or_equal:dt_inicioRelatorioParcial'],
'dt_inicioRelatorioFinal' => ['required', 'date', 'after:dt_fimRelatorioParcial'], 'dt_inicioRelatorioFinal' => ['required', 'date', 'after:dt_fimRelatorioParcial'],
'dt_fimRelatorioFinal' => ['required', 'date', 'after_or_equal:dt_inicioRelatorioFinal'], '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'], 'pdfEdital' => [($request->pdfEditalPreenchido!=='sim'?'required':''), 'file', 'mimes:pdf', 'max:2048'],
'inicioProjeto' => ['required', 'date', 'after:yesterday'], 'inicioProjeto' => ['required', 'date', 'after:yesterday'],
'fimProjeto' => ['required', 'date', 'after_or_equal:fimSubmissao'], 'fimProjeto' => ['required', 'date', 'after_or_equal:fimSubmissao'],
//'modeloDocumento' => ['file', 'mimes:zip,doc,docx,odt,pdf', 'max:2048'], //'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 = Evento::create([
$evento['nome'] = $request->nome; $evento['nome'] = $request->nome;
...@@ -203,6 +225,10 @@ class EventoController extends Controller ...@@ -203,6 +225,10 @@ class EventoController extends Controller
$evento['anexosStatus'] = 'final'; $evento['anexosStatus'] = 'final';
$evento['inicioProjeto'] = $request->inicioProjeto; $evento['inicioProjeto'] = $request->inicioProjeto;
$evento['fimProjeto'] = $request->fimProjeto; $evento['fimProjeto'] = $request->fimProjeto;
$evento['tipoAvaliacao'] = $request->tipoAvaliacao;
if($request->tipoAvaliacao == "link") {
$evento['formAvaliacaoExterno'] = $request->link;
}
//dd($evento); //dd($evento);
// $user = User::find($request->coordenador_id); // $user = User::find($request->coordenador_id);
...@@ -238,7 +264,7 @@ class EventoController extends Controller ...@@ -238,7 +264,7 @@ class EventoController extends Controller
} }
if(isset($request->pdfFormAvalExterno)){ if(isset($request->pdfFormAvalExterno) && ($request->tipoAvaliacao == 'form')){
$pdfFormAvalExterno = $request->pdfFormAvalExterno; $pdfFormAvalExterno = $request->pdfFormAvalExterno;
$extension = $pdfFormAvalExterno->extension(); $extension = $pdfFormAvalExterno->extension();
$path = 'pdfFormAvalExterno/' . $evento->id . '/'; $path = 'pdfFormAvalExterno/' . $evento->id . '/';
...@@ -257,7 +283,7 @@ class EventoController extends Controller ...@@ -257,7 +283,7 @@ class EventoController extends Controller
$evento->formAvaliacaoRelatorio = $path . $nome; $evento->formAvaliacaoRelatorio = $path . $nome;
} }
if(isset($request->docTutorial)){ if(isset($request->docTutorial) && ($request->tipoAvaliacao == 'form')){
$docTutorial = $request->docTutorial; $docTutorial = $request->docTutorial;
$extension = $docTutorial->extension(); $extension = $docTutorial->extension();
$path = 'docTutorial/' . $evento->id . '/'; $path = 'docTutorial/' . $evento->id . '/';
...@@ -269,6 +295,23 @@ class EventoController extends Controller ...@@ -269,6 +295,23 @@ class EventoController extends Controller
$evento->update(); $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(); // $user = Auth::user();
// $subject = "Evento Criado"; // $subject = "Evento Criado";
// Mail::to($user->email) // Mail::to($user->email)
...@@ -300,7 +343,7 @@ class EventoController extends Controller ...@@ -300,7 +343,7 @@ class EventoController extends Controller
$nome = "modelo" . "." . $extension; $nome = "modelo" . "." . $extension;
$eventoTemp->modeloDocumento = Storage::putFileAs($path, $request->modeloDocumento, $nome); $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(); $extension = $request->pdfFormAvalExterno->extension();
$pasta = 'pdfFormAvalExterno/' . $eventoTemp->id; $pasta = 'pdfFormAvalExterno/' . $eventoTemp->id;
$nome = "formulario de avaliação externo" . "." . $extension; $nome = "formulario de avaliação externo" . "." . $extension;
...@@ -311,7 +354,7 @@ class EventoController extends Controller ...@@ -311,7 +354,7 @@ class EventoController extends Controller
$eventoTemp->formAvaliacaoRelatorio = Storage::putFileAs($pasta, $request->pdfFormAvalRelatorio, 'formulario de avaliação do relatorio.pdf'); $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(); $extension = $request->docTutorial->extension();
$pasta = 'docTutorial/' . $eventoTemp->id; $pasta = 'docTutorial/' . $eventoTemp->id;
$nome = "documento tutorial" . "." . $extension; $nome = "documento tutorial" . "." . $extension;
...@@ -405,11 +448,20 @@ class EventoController extends Controller ...@@ -405,11 +448,20 @@ class EventoController extends Controller
$naturezas = Natureza::orderBy('nome')->get(); $naturezas = Natureza::orderBy('nome')->get();
$yesterday = Carbon::yesterday('America/Recife'); $yesterday = Carbon::yesterday('America/Recife');
$yesterday = $yesterday->toDateString(); $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, return view('evento.editarEvento',['evento'=>$evento,
'coordenadores'=>$coordenadors, 'coordenadores'=>$coordenadors,
'naturezas'=>$naturezas, 'naturezas'=>$naturezas,
'ontem'=>$yesterday, 'ontem'=>$yesterday,
'coordEvent'=>$coordEvent]); 'coordEvent'=>$coordEvent,
'camposAvaliacao'=>$camposAvaliacao,
'pontuacao'=>$pontuacao]);
} }
/** /**
...@@ -427,6 +479,7 @@ class EventoController extends Controller ...@@ -427,6 +479,7 @@ class EventoController extends Controller
$evento = Evento::find($id); $evento = Evento::find($id);
$yesterday = Carbon::yesterday('America/Recife'); $yesterday = Carbon::yesterday('America/Recife');
$yesterday = $yesterday->toDateString(); $yesterday = $yesterday->toDateString();
$camposAvaliacao = CampoAvaliacao::where('evento_id', $id);
if( if(
$request->inicioSubmissao == null || $request->inicioSubmissao == null ||
$request->fimSubmissao == null || $request->fimSubmissao == null ||
...@@ -443,6 +496,7 @@ class EventoController extends Controller ...@@ -443,6 +496,7 @@ class EventoController extends Controller
'tipo' => ['required', 'string'], 'tipo' => ['required', 'string'],
'natureza' => ['required'], 'natureza' => ['required'],
'numParticipantes' => ['required'], 'numParticipantes' => ['required'],
'tipoAvaliacao' => ['required'],
'inicioSubmissao' => ['required', 'date'], 'inicioSubmissao' => ['required', 'date'],
'fimSubmissao' => ['required', 'date'], 'fimSubmissao' => ['required', 'date'],
'inicioRevisao' => ['required', 'date', 'after:fimSubmissao'], 'inicioRevisao' => ['required', 'date', 'after:fimSubmissao'],
...@@ -457,7 +511,6 @@ class EventoController extends Controller ...@@ -457,7 +511,6 @@ class EventoController extends Controller
'dt_fimRelatorioFinal' => ['required', 'date'], 'dt_fimRelatorioFinal' => ['required', 'date'],
'pdfEdital' => ['file', 'mimes:pdf', 'max:2048'], 'pdfEdital' => ['file', 'mimes:pdf', 'max:2048'],
'modeloDocumento' => ['file', 'mimes:zip,doc,docx,odt,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'], 'pdfFormAvalRelatorio' => ['file', 'mimes:pdf', 'max:2048'],
'inicioProjeto' => ['required', 'date'], 'inicioProjeto' => ['required', 'date'],
'fimProjeto' => ['required', 'date'], 'fimProjeto' => ['required', 'date'],
...@@ -473,6 +526,7 @@ class EventoController extends Controller ...@@ -473,6 +526,7 @@ class EventoController extends Controller
'tipo' => ['required', 'string'], 'tipo' => ['required', 'string'],
'natureza' => ['required'], 'natureza' => ['required'],
'numParticipantes' => ['required'], 'numParticipantes' => ['required'],
'tipoAvaliacao' => ['required'],
'inicioSubmissao' => ['required', 'date', 'after_or_equal:inicioSubmissao'], 'inicioSubmissao' => ['required', 'date', 'after_or_equal:inicioSubmissao'],
'fimSubmissao' => ['required', 'date', 'after_or_equal:inicioSubmissao'], 'fimSubmissao' => ['required', 'date', 'after_or_equal:inicioSubmissao'],
'inicioRevisao' => ['required', 'date', 'after:fimSubmissao'], 'inicioRevisao' => ['required', 'date', 'after:fimSubmissao'],
...@@ -487,13 +541,32 @@ class EventoController extends Controller ...@@ -487,13 +541,32 @@ class EventoController extends Controller
'dt_fimRelatorioFinal' => ['required', 'date', 'after_or_equal:dt_inicioRelatorioFinal'], 'dt_fimRelatorioFinal' => ['required', 'date', 'after_or_equal:dt_inicioRelatorioFinal'],
'modeloDocumento' => ['file', 'mimes:zip,doc,docx,odt,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'], 'pdfFormAvalExterno' => ['file', 'mimes:pdf,doc,docx,xlsx,xls,csv,zip', 'max:2048'],
'pdfFormAvalRelatorio' => ['file', 'mimes:pdf', 'max:2048'],
'inicioProjeto' => ['required', 'date', 'after:resultado_final'], 'inicioProjeto' => ['required', 'date', 'after:resultado_final'],
'fimProjeto' => ['required', 'date', 'after:inicioProjeto'], 'fimProjeto' => ['required', 'date', 'after:inicioProjeto'],
'docTutorial' => ['file', 'mimes:zip,doc,docx,pdf', 'max:2048'], 'docTutorial' => ['file', 'mimes:zip,doc,docx,pdf', 'max:2048'],
'nome_docExtra' => [Rule::requiredIf($request->check_docExtra != null) , 'max:255'], '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->nome = $request->nome;
$evento->descricao = $request->descricao; $evento->descricao = $request->descricao;
$evento->tipo = $request->tipo; $evento->tipo = $request->tipo;
...@@ -522,6 +595,11 @@ class EventoController extends Controller ...@@ -522,6 +595,11 @@ class EventoController extends Controller
$evento->obrigatoriedade_docExtra = $request->has('obrigatoriedade_docExtra'); $evento->obrigatoriedade_docExtra = $request->has('obrigatoriedade_docExtra');
$evento->inicioProjeto = $request->inicioProjeto; $evento->inicioProjeto = $request->inicioProjeto;
$evento->fimProjeto = $request->fimProjeto; $evento->fimProjeto = $request->fimProjeto;
$evento->tipoAvaliacao = $request->tipoAvaliacao;
if($request->tipoAvaliacao == "link") {
$evento->formAvaliacaoExterno = $request->link;
}
if($request->pdfEdital != null){ if($request->pdfEdital != null){
$pdfEdital = $request->pdfEdital; $pdfEdital = $request->pdfEdital;
$path = 'pdfEdital/' . $evento->id . '/'; $path = 'pdfEdital/' . $evento->id . '/';
...@@ -539,7 +617,7 @@ class EventoController extends Controller ...@@ -539,7 +617,7 @@ class EventoController extends Controller
} }
if(isset($request->pdfFormAvalExterno)){ if(isset($request->pdfFormAvalExterno) && ($request->tipoAvaliacao == 'form')){
$pdfFormAvalExterno = $request->pdfFormAvalExterno; $pdfFormAvalExterno = $request->pdfFormAvalExterno;
$extension = $pdfFormAvalExterno->extension(); $extension = $pdfFormAvalExterno->extension();
$path = 'pdfFormAvalExterno/' . $evento->id . '/'; $path = 'pdfFormAvalExterno/' . $evento->id . '/';
...@@ -549,7 +627,7 @@ class EventoController extends Controller ...@@ -549,7 +627,7 @@ class EventoController extends Controller
$evento->formAvaliacaoExterno = $path . $nome; $evento->formAvaliacaoExterno = $path . $nome;
} }
if($request->docTutorial != null){ if ($request->docTutorial != null && ($request->tipoAvaliacao == 'form')){
$docTutorial = $request->docTutorial; $docTutorial = $request->docTutorial;
$extension = $docTutorial->extension(); $extension = $docTutorial->extension();
$path = 'docTutorial/' . $evento->id . '/'; $path = 'docTutorial/' . $evento->id . '/';
...@@ -568,6 +646,46 @@ class EventoController extends Controller ...@@ -568,6 +646,46 @@ class EventoController extends Controller
$evento->formAvaliacaoRelatorio = $path . $nome; $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(); $evento->update();
$eventos = Evento::orderBy('nome')->get(); $eventos = Evento::orderBy('nome')->get();
...@@ -596,6 +714,7 @@ class EventoController extends Controller ...@@ -596,6 +714,7 @@ class EventoController extends Controller
$comissao = ComissaoEvento::where('eventosId', $id); $comissao = ComissaoEvento::where('eventosId', $id);
$revisores = Revisor::where('eventoId', $id); $revisores = Revisor::where('eventoId', $id);
$trabalhos = Trabalho::where('evento_id', $id); $trabalhos = Trabalho::where('evento_id', $id);
$camposAvaliacao = CampoAvaliacao::where('evento_id', $id);
// if(isset($areas)){ // if(isset($areas)){
// $areas->delete(); // $areas->delete();
...@@ -613,13 +732,17 @@ class EventoController extends Controller ...@@ -613,13 +732,17 @@ class EventoController extends Controller
$trabalhos->delete(); $trabalhos->delete();
Trabalho::withTrashed()->where('evento_id', $id)->update(['evento_id' => null]); 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('pdfEdital/' . $evento->id );
Storage::deleteDirectory('modeloDocumento/' . $evento->id); Storage::deleteDirectory('modeloDocumento/' . $evento->id);
$evento->delete(); $evento->delete();
return redirect()->back(); return redirect()->back()->with(['mensagem' => 'Edital deletado com sucesso!']);
} }
public function detalhes(Request $request){ public function detalhes(Request $request){
...@@ -647,7 +770,7 @@ class EventoController extends Controller ...@@ -647,7 +770,7 @@ class EventoController extends Controller
$numeroRevisores = Revisor::where('eventoId', $evento->id)->count(); $numeroRevisores = Revisor::where('eventoId', $evento->id)->count();
$numeroComissao = ComissaoEvento::where('eventosId',$evento->id)->count(); $numeroComissao = ComissaoEvento::where('eventosId',$evento->id)->count();
// $atribuicoesProcessando // $atribuicoesProcessando;
// dd($trabalhosEnviados); // dd($trabalhosEnviados);
$revs = Revisor::where('eventoId', $evento->id)->with('user')->get(); $revs = Revisor::where('eventoId', $evento->id)->with('user')->get();
......
...@@ -18,7 +18,7 @@ class AtribuicaoAvaliadorExternoNotification extends Notification ...@@ -18,7 +18,7 @@ class AtribuicaoAvaliadorExternoNotification extends Notification
* *
* @return void * @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())); $this->data = date('d/m/Y \à\s H:i\h', strtotime(now()));
$url = '/avaliador/editais'; $url = '/avaliador/editais';
...@@ -28,6 +28,7 @@ class AtribuicaoAvaliadorExternoNotification extends Notification ...@@ -28,6 +28,7 @@ class AtribuicaoAvaliadorExternoNotification extends Notification
$this->trabalho = $trabalho; $this->trabalho = $trabalho;
$this->arquivo = $arquivo; $this->arquivo = $arquivo;
$this->tipoAval = $tipoAval; $this->tipoAval = $tipoAval;
$this->avaliacao = $avaliacao;
} }
/** /**
...@@ -50,13 +51,12 @@ class AtribuicaoAvaliadorExternoNotification extends Notification ...@@ -50,13 +51,12 @@ class AtribuicaoAvaliadorExternoNotification extends Notification
* @return \Illuminate\Notifications\Messages\MailMessage * @return \Illuminate\Notifications\Messages\MailMessage
*/ */
public function toMail($notifiable) public function toMail($notifiable)
{ {
if ($this->tipoAval == 2) { if ($this->tipoAval == 2 || $this->avaliacao != "form") {
return (new MailMessage()) return (new MailMessage())
->subject('Convite para avaliar proposta de projeto - Sistema Submeta') ->subject('Convite para avaliar proposta de projeto - Sistema Submeta')
->greeting('Saudações!') ->greeting('Saudações!')
->line("Prezado/a avaliador/a, você foi convidado/a a avaliar a proposta de projeto intitulada {$this->titulo}.") ->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") // ->line("Seção de Editais e Apoios a Projetos - PREC/UFAPE")
->action('Acessar', $this->url) ->action('Acessar', $this->url)
->markdown('vendor.notifications.email'); ->markdown('vendor.notifications.email');
......
<?php <?php
namespace App; namespace App;
use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes; use Illuminate\Database\Eloquent\SoftDeletes;
class Trabalho extends Model class Trabalho extends Model
{ {
use SoftDeletes; use SoftDeletes;
// 'rascunho','submetido', 'avaliado', 'corrigido','aprovado','reprovado', 'arquivado' // 'rascunho','submetido', 'avaliado', 'corrigido','aprovado','reprovado', 'arquivado'
protected $fillable = [ protected $fillable = [
'titulo', 'titulo',
'data', 'data',
'aprovado', 'aprovado',
'status', 'status',
'decisaoCONSU', 'decisaoCONSU',
'pontuacaoPlanilha', 'pontuacaoPlanilha',
'linkGrupoPesquisa', 'linkGrupoPesquisa',
'linkLattesEstudante', 'linkLattesEstudante',
'comentario', 'comentario',
'modalidade', 'modalidade',
'conflitosInteresse', 'conflitosInteresse',
'anexoDecisaoCONSU', 'anexoDecisaoCONSU',
'anexoAutorizacaoComiteEtica', 'anexoAutorizacaoComiteEtica',
'JustificativaAutorizacaoEtica', 'JustificativaAutorizacaoEtica',
'anexoLattesCoordenador', 'anexoLattesCoordenador',
'anexoGrupoPesquisa', 'anexoGrupoPesquisa',
'anexoPlanilhaPontuacao', 'anexoPlanilhaPontuacao',
'anexoProjeto', 'anexoProjeto',
'grande_area_id', 'grande_area_id',
'area_id', 'area_id',
'sub_area_id', 'sub_area_id',
'evento_id', 'evento_id',
'proponente_id', 'proponente_id',
'coordenador_id', 'coordenador_id',
'proponente_id', 'proponente_id',
'pivot', 'pivot',
'area_tematica_id', 'area_tematica_id',
]; ];
public function recurso(){ public function recurso(){
return $this->hasMany('App\Recurso', 'trabalhoId'); return $this->hasMany('App\Recurso', 'trabalhoId');
} }
public function arquivo(){ public function arquivo(){
return $this->hasMany('App\Arquivo', 'trabalhoId'); return $this->hasMany('App\Arquivo', 'trabalhoId');
} }
public function modalidade(){ public function modalidade(){
return $this->belongsTo('App\Modalidade', 'modalidadeId'); return $this->belongsTo('App\Modalidade', 'modalidadeId');
} }
public function area(){ public function area(){
return $this->belongsTo('App\Area'); return $this->belongsTo('App\Area');
} }
public function grandeArea(){ public function grandeArea(){
return $this->belongsTo('App\GrandeArea'); return $this->belongsTo('App\GrandeArea');
} }
public function subArea(){ public function subArea(){
return $this->belongsTo('App\SubArea'); return $this->belongsTo('App\SubArea');
} }
public function areaTematica(){ public function areaTematica(){
return $this->belongsTo('App\AreaTematica'); return $this->belongsTo('App\AreaTematica');
} }
public function autor(){ public function autor(){
return $this->belongsTo('App\User', 'autorId'); return $this->belongsTo('App\User', 'autorId');
} }
public function coautor(){ public function coautor(){
return $this->hasMany('App\Coautor', 'trabalhoId'); return $this->hasMany('App\Coautor', 'trabalhoId');
} }
public function parecer(){ public function parecer(){
return $this->hasMany('App\Parecer', 'trabalhoId'); return $this->hasMany('App\Parecer', 'trabalhoId');
} }
public function atribuicao(){ public function atribuicao(){
return $this->hasMany('App\Atribuicao', 'trabalhoId'); return $this->hasMany('App\Atribuicao', 'trabalhoId');
} }
public function evento(){ public function evento(){
return $this->belongsTo('App\Evento'); return $this->belongsTo('App\Evento');
} }
public function planoTrabalho(){ public function planoTrabalho(){
return $this->hasMany('App\PlanoTrabalho'); return $this->hasMany('App\PlanoTrabalho');
} }
public function participantes(){ public function participantes(){
// return $this->belongsToMany('App\Trabalho', 'trabalho_participante'); // return $this->belongsToMany('App\Trabalho', 'trabalho_participante');
return $this->hasMany('App\Participante', 'trabalho_id'); return $this->hasMany('App\Participante', 'trabalho_id');
} }
public function proponente(){ public function proponente(){
return $this->belongsTo('App\Proponente'); return $this->belongsTo('App\Proponente');
} }
public function coordenador(){ public function coordenador(){
return $this->belongsTo('App\CoordenadorComissao'); return $this->belongsTo('App\CoordenadorComissao');
} }
public function avaliadors(){ public function avaliadors(){
return $this->belongsToMany('App\Avaliador')->withPivot('status', 'AnexoParecer', 'parecer', 'recomendacao', 'created_at','pontuacao','acesso'); return $this->belongsToMany('App\Avaliador')->withPivot('status', 'AnexoParecer', 'parecer', 'recomendacao', 'created_at','pontuacao','acesso');
} }
public function substituicaos(){ public function substituicaos(){
return $this->hasMany('App\Substituicao'); return $this->hasMany('App\Substituicao');
} }
public function parecer_internos(){ public function parecer_internos(){
return $this->hasMany(ParecerInterno::class, 'trab_id', 'id'); return $this->hasMany(ParecerInterno::class, 'trab_id', 'id');
} }
public function notificacoes(){ public function notificacoes(){
return $this->hasMany(Notificacao::class, 'trabalho_id', 'id'); return $this->hasMany(Notificacao::class, 'trabalho_id', 'id');
} }
public function desligamentos(){ public function desligamentos(){
return $this->hasMany(Desligamento::class, 'trabalho_id', 'id')->orderBy('created_at', 'DESC'); return $this->hasMany(Desligamento::class, 'trabalho_id', 'id')->orderBy('created_at', 'DESC');
} }
public function solicitacoesCertificados() public function solicitacoesCertificados()
{ {
return $this->hasMany(Certificado::class, 'trabalho_id'); return $this->hasMany(Certificado::class, 'trabalho_id');
} }
public function ods(){ public function ods(){
return $this->belongsToMany('App\ObjetivoDeDesenvolvimentoSustentavel', 'objetivo_de_desenvolvimento_sustentavel_trabalhos', 'trabalho_id'); return $this->belongsToMany('App\ObjetivoDeDesenvolvimentoSustentavel', 'objetivo_de_desenvolvimento_sustentavel_trabalhos', 'trabalho_id');
} }
public function integrantes() { public function integrantes() {
return $this->belongsToMany('App\User', 'trabalho_users', 'trabalho_id'); return $this->belongsToMany('App\User', 'trabalho_users', 'trabalho_id');
} }
}
public function avaliacaoTrabalho(){
return $this->hasMany('App\AvaliacaoTrabalho');
}
}
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateCampoAvaliacaosTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('campo_avaliacaos', function (Blueprint $table) {
$table->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');
}
}
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateAvaliacaoTrabalhosTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('avaliacao_trabalhos', function (Blueprint $table) {
$table->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');
}
}
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class AddSoftdeleteCamposAvaliacao extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::table('campo_avaliacaos', function (Blueprint $table) {
$table->softDeletes();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::table('campo_avaliacaos', function (Blueprint $table) {
$table->dropSoftDeletes();
});
}
}
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class AlterTableCampoAvaliacaos extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::table('campo_avaliacaos', function (Blueprint $table) {
$table->integer('evento_id')->nullable()->change();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
//
}
}
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class AddTipoAvaliacaoToEventosTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::table('eventos', function (Blueprint $table) {
$table->string('tipoAvaliacao')->nullable();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::table('eventos', function (Blueprint $table) {
$table->dropColumn('tipoAvaliacao');
});
}
}
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class AddSoftdeleteToAvaliacaoTrabalhos extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::table('avaliacao_trabalhos', function (Blueprint $table) {
$table->softDeletes();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::table('avaliacao_trabalhos', function (Blueprint $table) {
$table->dropSoftDeletes();
});
}
}
...@@ -1068,28 +1068,71 @@ ...@@ -1068,28 +1068,71 @@
</div> </div>
<div class="row justify-content-start" style="alignment: center"> <div class="row justify-content-start" style="alignment: center">
@foreach($trabalho->avaliadors as $avaliador) @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)) @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->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')
<div class="col-sm-1"> <div class="col-sm-1">
<img src="{{asset('img/icons/usuario.svg')}}" style="width:60px" alt=""> <img src="{{asset('img/icons/usuario.svg')}}" style="width:60px" alt="">
</div> </div>
<div class="col-sm-5"> <div class="col-sm-5">
<h5>{{$avaliador->user->name}}</h5> <h5>{{$avaliador->user->name}}</h5>
@php @php
$parecerInterno = App\ParecerInterno::where([['avaliador_id',$avaliador->id],['trabalho_id',$trabalho->id]])->first(); $parecerInterno = App\ParecerInterno::where([['avaliador_id',$avaliador->id],['trabalho_id',$trabalho->id]])->first();
@endphp @endphp
<h9>@if($parecerInterno == null) Pendente @else <a <h9>@if($parecerInterno == null) Pendente @else <a
href="{{ route('admin.visualizarParecerInterno', ['trabalho_id' => $trabalho->id, 'avaliador_id' => $avaliador->id]) }}">Avaliado</a> @endif href="{{ route('admin.visualizarParecerInterno', ['trabalho_id' => $trabalho->id, 'avaliador_id' => $avaliador->id]) }}">Avaliado</a> @endif
</h9> </h9>
<br> <br>
<a href="" data-toggle="modal" data-target="#removerInterno{{ $avaliador->id }}" > <a href="" data-toggle="modal" data-target="#removerInterno{{ $avaliador->id }}" >
Remover Remover
</a> </a>
<br> <br>
<a href="{{ route('admin.reenviar.atribuicao.projeto', ['evento_id' => $evento->id, 'avaliador_id'=>$avaliador->id, 'trabalho_id' => $trabalho->id]) }}"> <a href="{{ route('admin.reenviar.atribuicao.projeto', ['evento_id' => $evento->id, 'avaliador_id'=>$avaliador->id, 'trabalho_id' => $trabalho->id]) }}">
Reenviar convite Reenviar convite
</a> </a>
</div> </div>
@elseif ($evento->tipoAvaliacao == "campos")
<div class="col-sm-1">
<img src="{{asset('img/icons/usuario.svg')}}" style="width:60px" alt="">
</div>
<div class="col-sm-5">
<h5>{{$avaliador->user->name}}</h5>
@php
$avaliacaoTrabalho = App\AvaliacaoTrabalho::where([['avaliador_id',$avaliador->id],['trabalho_id',$trabalho->id]])->first();
@endphp
<h9>@if($avaliacaoTrabalho == null) Pendente @else <a
href="{{ route('admin.visualizarParecerBarema', ['trabalho_id' => $trabalho->id, 'avaliador_id' => $avaliador->id, 'evento_id' => $evento->id]) }}">Avaliado</a> @endif
</h9>
<br>
<a href="" data-toggle="modal" data-target="#removerInterno{{ $avaliador->id }}" >
Remover
</a>
<br>
<a href="{{ route('admin.reenviar.atribuicao.projeto', ['evento_id' => $evento->id, 'avaliador_id'=>$avaliador->id, 'trabalho_id' => $trabalho->id]) }}">
Reenviar convite
</a>
</div>
@elseif ($evento->tipoAvaliacao == "link")
<div class="col-sm-1">
<img src="{{asset('img/icons/usuario.svg')}}" style="width:60px" alt="">
</div>
<div class="col-sm-5">
<h5>{{$avaliador->user->name}}</h5>
<h9>@if($avaliador->trabalhos->where('id', $trabalho->id)->first()->pivot->status == false)
Pendente @else <a
href="{{ route('admin.visualizarParecerLink', ['trabalho_id' => $trabalho->id, 'avaliador_id' => $avaliador->id]) }}">Avaliado</a> @endif
</h9>
<br>
<a href="" data-toggle="modal" data-target="#removerAdHoc{{ $avaliador->id }}">
Remover
</a>
<br>
<a href="{{ route('admin.reenviar.atribuicao.projeto', ['evento_id' => $evento->id, 'avaliador_id'=>$avaliador->id, 'trabalho_id' => $trabalho->id]) }}">
Reenviar convite
</a>
</div>
@endif
@endif @endif
<!-- Modal Remover --> <!-- Modal Remover -->
<div class="modal fade" id="removerInterno{{ $avaliador->id }}" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true"> <div class="modal fade" id="removerInterno{{ $avaliador->id }}" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
...@@ -1121,28 +1164,71 @@ ...@@ -1121,28 +1164,71 @@
</div> </div>
<div class="row justify-content-start" style="alignment: center"> <div class="row justify-content-start" style="alignment: center">
@foreach($trabalho->avaliadors as $avaliador) @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 @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->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')
<div class="col-sm-1"> <div class="col-sm-1">
<img src="{{asset('img/icons/usuario.svg')}}" style="width:60px" alt=""> <img src="{{asset('img/icons/usuario.svg')}}" style="width:60px" alt="">
</div> </div>
<div class="col-sm-5"> <div class="col-sm-5">
<h5>{{$avaliador->user->name}}</h5> <h5>{{$avaliador->user->name}}</h5>
<h9>@if($avaliador->trabalhos->where('id', $trabalho->id)->first()->pivot->status == false) <h9>@if($avaliador->trabalhos->where('id', $trabalho->id)->first()->pivot->status == false)
Pendente @else <a Pendente @else <a
href="{{ route('admin.visualizarParecer', ['trabalho_id' => $trabalho->id, 'avaliador_id' => $avaliador->id]) }}">Avaliado</a> @endif href="{{ route('admin.visualizarParecer', ['trabalho_id' => $trabalho->id, 'avaliador_id' => $avaliador->id]) }}">Avaliado</a> @endif
</h9>
<br>
<a href="" data-toggle="modal" data-target="#removerAdHoc{{ $avaliador->id }}">
Remover
</a>
<br>
<a href="{{ route('admin.reenviar.atribuicao.projeto', ['evento_id' => $evento->id, 'avaliador_id'=>$avaliador->id, 'trabalho_id' => $trabalho->id]) }}">
Reenviar convite
</a>
</div>
@elseif ($evento->tipoAvaliacao == "campos")
<div class="col-sm-1">
<img src="{{asset('img/icons/usuario.svg')}}" style="width:60px" alt="">
</div>
<div class="col-sm-5">
<h5>{{$avaliador->user->name}}</h5>
@php
$avaliacaoTrabalho = App\AvaliacaoTrabalho::where([['avaliador_id',$avaliador->id],['trabalho_id',$trabalho->id]])->first();
@endphp
<h9>@if($avaliacaoTrabalho == null) Pendente @else <a
href="{{ route('admin.visualizarParecerBarema', ['trabalho_id' => $trabalho->id, 'avaliador_id' => $avaliador->id, 'evento_id' => $evento->id]) }}">Avaliado</a> @endif
</h9> </h9>
<br>
<br> <a href="" data-toggle="modal" data-target="#removerInterno{{ $avaliador->id }}" >
<a href="" data-toggle="modal" data-target="#removerAdHoc{{ $avaliador->id }}"> Remover
Remover </a>
</a> <br>
<br> <a href="{{ route('admin.reenviar.atribuicao.projeto', ['evento_id' => $evento->id, 'avaliador_id'=>$avaliador->id, 'trabalho_id' => $trabalho->id]) }}">
<a href="{{ route('admin.reenviar.atribuicao.projeto', ['evento_id' => $evento->id, 'avaliador_id'=>$avaliador->id, 'trabalho_id' => $trabalho->id]) }}"> Reenviar convite
Reenviar convite </a>
</a> </div>
</div> @elseif ($evento->tipoAvaliacao == "link")
<div class="col-sm-1">
<img src="{{asset('img/icons/usuario.svg')}}" style="width:60px" alt="">
</div>
<div class="col-sm-5">
<h5>{{$avaliador->user->name}}</h5>
<h9>@if($avaliador->trabalhos->where('id', $trabalho->id)->first()->pivot->status == false)
Pendente @else <a
href="{{ route('admin.visualizarParecerLink', ['trabalho_id' => $trabalho->id, 'avaliador_id' => $avaliador->id]) }}">Avaliado</a> @endif
</h9>
<br>
<a href="" data-toggle="modal" data-target="#removerAdHoc{{ $avaliador->id }}">
Remover
</a>
<br>
<a href="{{ route('admin.reenviar.atribuicao.projeto', ['evento_id' => $evento->id, 'avaliador_id'=>$avaliador->id, 'trabalho_id' => $trabalho->id]) }}">
Reenviar convite
</a>
</div>
@endif
@endif @endif
<!-- Modal Remover --> <!-- Modal Remover -->
......
...@@ -79,10 +79,12 @@ ...@@ -79,10 +79,12 @@
<a href="{{route('admin.pareceres', ['evento_id' => $evento->id])}}" class="dropdown-item text-center"> <a href="{{route('admin.pareceres', ['evento_id' => $evento->id])}}" class="dropdown-item text-center">
Visualizar Pareceres Visualizar Pareceres
</a> </a>
@if($evento->tipoAvaliacao != "link")
<hr class="dropdown-hr"> <hr class="dropdown-hr">
<a href="{{route('admin.showResultados', ['evento_id' => $evento->id])}}" class="dropdown-item text-center"> <a href="{{route('admin.showResultados', ['evento_id' => $evento->id])}}" class="dropdown-item text-center">
Resultados Resultados
</a> </a>
@endif
<hr class="dropdown-hr"> <hr class="dropdown-hr">
<!-- Button trigger modal --> <!-- Button trigger modal -->
<button type="button" class="dropdown-item dropdown-item-delete text-center" data-toggle="modal" data-target="#exampleModal{{ $evento->id }}"> <button type="button" class="dropdown-item dropdown-item-delete text-center" data-toggle="modal" data-target="#exampleModal{{ $evento->id }}">
......
...@@ -45,10 +45,11 @@ ...@@ -45,10 +45,11 @@
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
@foreach($trabalho->avaliadors as $avaliador) @if($evento->tipoAvaliacao == "campos")
@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 )) @foreach($trabalho->avaliadors as $avaliador)
@php @php
$parecerInterno = App\ParecerInterno::where([['avaliador_id',$avaliador->id],['trabalho_id',$trabalho->id]])->first(); $avaliacaoTrabalho = App\AvaliacaoTrabalho::where('trabalho_id', $trabalho->id)->where('avaliador_id', $avaliador->id)->get()->first();
$pivot = $avaliador->trabalhos()->where('trabalho_id', $trabalho->id)->first()->pivot;
@endphp @endphp
<tr> <tr>
<td>{{ $avaliador->user->name }}</td> <td>{{ $avaliador->user->name }}</td>
...@@ -56,77 +57,160 @@ ...@@ -56,77 +57,160 @@
<td>{{ $avaliador->user->email }}</td> <td>{{ $avaliador->user->email }}</td>
<td>Interna</td> <td>Interna</td>
<td> <td>
@if($parecerInterno == null) @if($avaliacaoTrabalho == null)
Indisponível Indisponível
@else @else
{{ date('d/m/Y', strtotime($parecerInterno->created_at)) }} {{ date('d/m/Y', strtotime($pivot->created_at)) }}
@endif @endif
</td> </td>
{{--Parecer--}} {{--Parecer--}}
<td> <td>
@if($parecerInterno == null) @if($avaliacaoTrabalho == null)
Indisponível Indisponível
@else @else
{{ $parecerInterno->statusParecer }} {{ $pivot->recomendacao }}
@endif @endif
</td>
{{--Acesso ao parecer interno--}} {{--Acesso ao parecer interno--}}
</td>
<td> <td>
@if($parecerInterno == null) @if($avaliacaoTrabalho == null)
<button class="btn btn-danger" disabled="disabled" > <button class="btn btn-danger" disabled="disabled" >
Indisponível Indisponível
</button> </button>
@else @else
<a href="{{ route('admin.visualizarParecerInterno', ['trabalho_id' => $trabalho->id, 'avaliador_id' => $avaliador->id]) }}" class="btn btn-primary" > <a href="{{ route('admin.visualizarParecerBarema', ['trabalho_id' => $trabalho->id, 'avaliador_id' => $avaliador->id, 'evento_id' => $evento->id]) }}" class="btn btn-primary" >
Visualizar Visualizar
</a> </a>
@endif @endif
</td> </td>
</tr> </tr>
@endif @endforeach
@elseif($evento->tipoAvaliacao == "link")
@foreach($trabalho->avaliadors as $avaliador)
@if($avaliador->trabalhos->where('id', $trabalho->id)->first()->pivot->acesso == 1 || $avaliador->trabalhos->where('id', $trabalho->id)->first()->pivot->acesso == 3 || $avaliador->tipo == "Externo") @php
$pivot = $avaliador->trabalhos()->where('trabalho_id', $trabalho->id)->first()->pivot;
$parecerLink = $pivot->status;
@endphp
<tr> <tr>
<td>{{ $avaliador->user->name }}</td> <td>{{ $avaliador->user->name }}</td>
<td>{{ $avaliador->tipo }}</td> <td>{{ $avaliador->tipo }}</td>
<td>{{ $avaliador->user->email }}</td> <td>{{ $avaliador->user->email }}</td>
<td>Ad Hoc</td> <td>Interna</td>
<td> <td>
@if($avaliador->trabalhos->where('id', $trabalho->id)->first()->pivot->parecer == null) @if($parecerLink == null)
Indisponível Indisponível
@else @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 @endif
</td> </td>
{{--Parecer--}} {{--Parecer--}}
<td> <td>
@if($avaliador->trabalhos->where('id', $trabalho->id)->first()->pivot->parecer == null) @if($parecerLink == null)
Indisponível Indisponível
@else @else
{{ $avaliador->trabalhos->where('id', $trabalho->id)->first()->pivot->recomendacao }} {{ $pivot->recomendacao }}
@endif @endif
</td> </td>
{{--Acesso ao parecer interno--}}
<td> <td>
<form action="{{ route('admin.visualizarParecer') }}" method="post"> @if($parecerLink == null)
@csrf <button class="btn btn-danger" disabled="disabled" >
<input type="hidden" name="trabalho_id" value="{{ $trabalho->id }}"> Indisponível
<input type="hidden" name="avaliador_id" value="{{ $avaliador->id }}"> </button>
@if($avaliador->trabalhos->where('id', $trabalho->id)->first()->pivot->parecer == null) @else
<a href="{{ route('admin.visualizarParecerLink', ['trabalho_id' => $trabalho->id, 'avaliador_id' => $avaliador->id]) }}" class="btn btn-primary" >
Visualizar
</a>
@endif
</td>
</tr>
@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
<tr>
<td>{{ $avaliador->user->name }}</td>
<td>{{ $avaliador->tipo }}</td>
<td>{{ $avaliador->user->email }}</td>
<td>Interna</td>
<td>
@if($parecerInterno == null)
Indisponível
@else
{{ date('d/m/Y', strtotime($parecerInterno->created_at)) }}
@endif
</td>
{{--Parecer--}}
<td>
@if($parecerInterno == null)
Indisponível
@else
{{ $parecerInterno->statusParecer }}
@endif
</td>
{{--Acesso ao parecer interno--}}
<td>
@if($parecerInterno == null)
<button class="btn btn-danger" disabled="disabled" > <button class="btn btn-danger" disabled="disabled" >
Indisponível Indisponível
</button> </button>
@else @else
<button class="btn btn-primary" > <a href="{{ route('admin.visualizarParecerInterno', ['trabalho_id' => $trabalho->id, 'avaliador_id' => $avaliador->id]) }}" class="btn btn-primary" >
Visualizar Visualizar
</button> </a>
@endif @endif
</form> </td>
</tr>
@endif
</td>
</tr> @if($avaliador->trabalhos->where('id', $trabalho->id)->first()->pivot->acesso == 1 || $avaliador->trabalhos->where('id', $trabalho->id)->first()->pivot->acesso == 3 || $avaliador->tipo == "Externo")
@endif <tr>
@endforeach <td>{{ $avaliador->user->name }}</td>
<td>{{ $avaliador->tipo }}</td>
<td>{{ $avaliador->user->email }}</td>
<td>Ad Hoc</td>
<td>
@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
</td>
{{--Parecer--}}
<td>
@if($avaliador->trabalhos->where('id', $trabalho->id)->first()->pivot->parecer == null)
Indisponível
@else
{{ $avaliador->trabalhos->where('id', $trabalho->id)->first()->pivot->recomendacao }}
@endif
</td>
<td>
<form action="{{ route('admin.visualizarParecer') }}" method="post">
@csrf
<input type="hidden" name="trabalho_id" value="{{ $trabalho->id }}">
<input type="hidden" name="avaliador_id" value="{{ $avaliador->id }}">
@if($avaliador->trabalhos->where('id', $trabalho->id)->first()->pivot->parecer == null)
<button class="btn btn-danger" disabled="disabled" >
Indisponível
</button>
@else
<button class="btn btn-primary" >
Visualizar
</button>
@endif
</form>
</td>
</tr>
@endif
@endforeach
@endif
</tbody> </tbody>
</table> </table>
</div> </div>
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment