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
public function areaTematicas() {
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
public function avaliadors(){
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;
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();
......
<?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;
use App\Area;
use App\Arquivo;
use App\AvaliacaoRelatorio;
use App\CampoAvaliacao;
use App\AvaliacaoTrabalho;
use App\FuncaoParticipantes;
use App\GrandeArea;
use App\ParecerInterno;
......@@ -81,25 +83,30 @@ class AvaliadorController extends Controller
$user = User::find(Auth::user()->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){
......
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\CampoAvaliacao;
class CampoAvaliacaoController extends Controller
{
//
}
......@@ -16,6 +16,7 @@ use App\Trabalho;
use App\AreaModalidade;
use App\Natureza;
use App\CoordenadorComissao;
use App\CampoAvaliacao;
use Illuminate\Http\Request;
use Carbon\Carbon;
use App\Rules\ExcelRule;
......@@ -82,7 +83,6 @@ class EventoController extends Controller
*/
public function store(Request $request)
{
$mytime = Carbon::now('America/Recife');
$yesterday = Carbon::yesterday('America/Recife');
$yesterday = $yesterday->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();
......
......@@ -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');
......
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
class Trabalho extends Model
{
use SoftDeletes;
// 'rascunho','submetido', 'avaliado', 'corrigido','aprovado','reprovado', 'arquivado'
protected $fillable = [
'titulo',
'data',
'aprovado',
'status',
'decisaoCONSU',
'pontuacaoPlanilha',
'linkGrupoPesquisa',
'linkLattesEstudante',
'comentario',
'modalidade',
'conflitosInteresse',
'anexoDecisaoCONSU',
'anexoAutorizacaoComiteEtica',
'JustificativaAutorizacaoEtica',
'anexoLattesCoordenador',
'anexoGrupoPesquisa',
'anexoPlanilhaPontuacao',
'anexoProjeto',
'grande_area_id',
'area_id',
'sub_area_id',
'evento_id',
'proponente_id',
'coordenador_id',
'proponente_id',
'pivot',
'area_tematica_id',
];
public function recurso(){
return $this->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');
}
}
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
class Trabalho extends Model
{
use SoftDeletes;
// 'rascunho','submetido', 'avaliado', 'corrigido','aprovado','reprovado', 'arquivado'
protected $fillable = [
'titulo',
'data',
'aprovado',
'status',
'decisaoCONSU',
'pontuacaoPlanilha',
'linkGrupoPesquisa',
'linkLattesEstudante',
'comentario',
'modalidade',
'conflitosInteresse',
'anexoDecisaoCONSU',
'anexoAutorizacaoComiteEtica',
'JustificativaAutorizacaoEtica',
'anexoLattesCoordenador',
'anexoGrupoPesquisa',
'anexoPlanilhaPontuacao',
'anexoProjeto',
'grande_area_id',
'area_id',
'sub_area_id',
'evento_id',
'proponente_id',
'coordenador_id',
'proponente_id',
'pivot',
'area_tematica_id',
];
public function recurso(){
return $this->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');
}
}
<?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 @@
</div>
<div class="row justify-content-start" style="alignment: center">
@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)))
<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
$parecerInterno = App\ParecerInterno::where([['avaliador_id',$avaliador->id],['trabalho_id',$trabalho->id]])->first();
@endphp
<h9>@if($parecerInterno == null) Pendente @else <a
href="{{ route('admin.visualizarParecerInterno', ['trabalho_id' => $trabalho->id, 'avaliador_id' => $avaliador->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>
@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')
<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
$parecerInterno = App\ParecerInterno::where([['avaliador_id',$avaliador->id],['trabalho_id',$trabalho->id]])->first();
@endphp
<h9>@if($parecerInterno == null) Pendente @else <a
href="{{ route('admin.visualizarParecerInterno', ['trabalho_id' => $trabalho->id, 'avaliador_id' => $avaliador->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 == "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
<!-- Modal Remover -->
<div class="modal fade" id="removerInterno{{ $avaliador->id }}" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
......@@ -1121,28 +1164,71 @@
</div>
<div class="row justify-content-start" style="alignment: center">
@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)))
<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.visualizarParecer', ['trabalho_id' => $trabalho->id, 'avaliador_id' => $avaliador->id]) }}">Avaliado</a> @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')
<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.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>
<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>
<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
<!-- Modal Remover -->
......
......@@ -79,10 +79,12 @@
<a href="{{route('admin.pareceres', ['evento_id' => $evento->id])}}" class="dropdown-item text-center">
Visualizar Pareceres
</a>
@if($evento->tipoAvaliacao != "link")
<hr class="dropdown-hr">
<a href="{{route('admin.showResultados', ['evento_id' => $evento->id])}}" class="dropdown-item text-center">
Resultados
</a>
@endif
<hr class="dropdown-hr">
<!-- Button trigger modal -->
<button type="button" class="dropdown-item dropdown-item-delete text-center" data-toggle="modal" data-target="#exampleModal{{ $evento->id }}">
......
......@@ -45,10 +45,11 @@
</tr>
</thead>
<tbody>
@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 ))
@if($evento->tipoAvaliacao == "campos")
@foreach($trabalho->avaliadors as $avaliador)
@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
<tr>
<td>{{ $avaliador->user->name }}</td>
......@@ -56,77 +57,160 @@
<td>{{ $avaliador->user->email }}</td>
<td>Interna</td>
<td>
@if($parecerInterno == null)
@if($avaliacaoTrabalho == null)
Indisponível
@else
{{ date('d/m/Y', strtotime($parecerInterno->created_at)) }}
{{ date('d/m/Y', strtotime($pivot->created_at)) }}
@endif
</td>
{{--Parecer--}}
<td>
@if($parecerInterno == null)
@if($avaliacaoTrabalho == null)
Indisponível
@else
{{ $parecerInterno->statusParecer }}
{{ $pivot->recomendacao }}
@endif
</td>
{{--Acesso ao parecer interno--}}
</td>
<td>
@if($parecerInterno == null)
@if($avaliacaoTrabalho == null)
<button class="btn btn-danger" disabled="disabled" >
Indisponível
</button>
@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
</a>
@endif
</td>
</tr>
@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
<tr>
<td>{{ $avaliador->user->name }}</td>
<td>{{ $avaliador->tipo }}</td>
<td>{{ $avaliador->user->email }}</td>
<td>Ad Hoc</td>
<td>Interna</td>
<td>
@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
</td>
{{--Parecer--}}
<td>
@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
</td>
{{--Acesso ao parecer interno--}}
<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)
@if($parecerLink == null)
<button class="btn btn-danger" disabled="disabled" >
Indisponível
</button>
@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" >
Indisponível
</button>
@else
<button class="btn btn-primary" >
<a href="{{ route('admin.visualizarParecerInterno', ['trabalho_id' => $trabalho->id, 'avaliador_id' => $avaliador->id]) }}" class="btn btn-primary" >
Visualizar
</button>
</a>
@endif
</form>
</td>
</tr>
@endif
</td>
</tr>
@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")
<tr>
<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>
</table>
</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