From 23113320e70a3b1f4c6f749393ca54899f6d03cb Mon Sep 17 00:00:00 2001 From: Guilherme Silva Date: Wed, 8 Jun 2022 09:22:41 -0300 Subject: [PATCH] =?UTF-8?q?Mudan=C3=A7a=20de=20avaliador=20externo=20para?= =?UTF-8?q?=20ad=20hoc,=20mudan=C3=A7a=20do=20arquivo=20Formul=C3=A1rio=20?= =?UTF-8?q?de=20avalia=C3=A7=C3=A3o=20externa,=20ajustes=20na=20l=C3=B3gic?= =?UTF-8?q?a=20de=20atribui=C3=A7=C3=A3o=20e=20avalia=C3=A7=C3=A3o?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Avaliador.php | 2 +- .../Controllers/AdministradorController.php | 56 ++++++++---- app/Http/Controllers/AvaliadorController.php | 47 ++++++++-- app/Trabalho.php | 2 +- ...d_acesso_to_avaliadors_trabalhos_table.php | 32 +++++++ .../administrador/analisarProposta.blade.php | 44 ++++++---- resources/views/avaliador/index.blade.php | 2 +- .../views/avaliador/listarTrabalhos.blade.php | 85 ++++++++++++++++++- resources/views/evento/criarEvento.blade.php | 2 +- resources/views/evento/editarEvento.blade.php | 2 +- resources/views/layouts/app.blade.php | 2 +- 11 files changed, 224 insertions(+), 52 deletions(-) create mode 100644 database/migrations/2022_06_07_073221_add_acesso_to_avaliadors_trabalhos_table.php diff --git a/app/Avaliador.php b/app/Avaliador.php index b1c8137..4ac1b05 100755 --- a/app/Avaliador.php +++ b/app/Avaliador.php @@ -19,7 +19,7 @@ class Avaliador extends Model return $this->belongsTo('App\User'); } public function trabalhos(){ - return $this->belongsToMany('App\Trabalho')->withPivot('status', 'AnexoParecer', 'parecer', 'recomendacao', 'created_at','pontuacao'); + return $this->belongsToMany('App\Trabalho')->withPivot('status', 'AnexoParecer', 'parecer', 'recomendacao', 'created_at','pontuacao','acesso'); } public function planoTrabalhos(){ return $this->belongsToMany('App\Arquivo', 'avaliadors_plano_trabalho')->withPivot('status', 'AnexoParecer', 'parecer', 'recomendacao', 'created_at'); diff --git a/app/Http/Controllers/AdministradorController.php b/app/Http/Controllers/AdministradorController.php index 648e6f7..6073f36 100755 --- a/app/Http/Controllers/AdministradorController.php +++ b/app/Http/Controllers/AdministradorController.php @@ -642,25 +642,47 @@ class AdministradorController extends Controller $trabalho = Trabalho::where('id', $request->trabalho_id)->first(); $evento = Evento::where('id', $request->evento_id)->first(); - if($request->avaliadores_internos_id == null){ - $avaliadoresInternos = []; - }else{ - $avaliadoresInternos = $request->avaliadores_internos_id; + if($request->avaliadores_internos_id != null){ + foreach ($request->avaliadores_internos_id as $avaliador) { + $aval = Avaliador::find($avaliador); + if($aval->trabalhos()->where("trabalho_id",$trabalho->id)->first() != null){ + $aval->trabalhos() + ->updateExistingPivot($trabalho->id,['acesso'=>3]); + }else{ + $trabalho->avaliadors()->attach($aval,['acesso'=>2]); + $evento->avaliadors()->syncWithoutDetaching($aval); + } + } } - if($request->avaliadores_externos_id == null){ - $avaliadoresExternos = []; - }else{ - $avaliadoresExternos = $request->avaliadores_externos_id; - } - $idsAvaliadores = array_merge($avaliadoresInternos, $avaliadoresExternos); - if($idsAvaliadores == null){ - redirect()->back()->with(['error' => 'Selecione ao menos um avaliador.', 'trabalho' => $trabalho->id]); - } - $avaliadores = Avaliador::whereIn('id', $idsAvaliadores)->get(); - $trabalho->avaliadors()->attach($avaliadores); - $evento->avaliadors()->syncWithoutDetaching($avaliadores); - $trabalho->save(); + + if($request->avaliadores_externos_id != null){ + foreach ($request->avaliadores_externos_id as $avaliador) { + + $aval = Avaliador::find($avaliador); + if(Avaliador::where('id',$avaliador)->where('tipo',"Interno")->count()>0){ + if($aval->trabalhos()->where("trabalho_id",$trabalho->id)->first() != null){ + $aval->trabalhos() + ->updateExistingPivot($trabalho->id,['acesso'=>3]); + }else{ + $trabalho->avaliadors()->attach($aval,['acesso'=>1]); + $evento->avaliadors()->syncWithoutDetaching($aval); + } + }else{ + $trabalho->avaliadors()->attach($aval,['acesso'=>1]); + $evento->avaliadors()->syncWithoutDetaching($aval); + } + } + } + + if($request->avaliadores_externos_id == null & $request->avaliadores_internos_id == null ){ + redirect()->back()->with(['error' => 'Selecione ao menos um avaliador.', 'trabalho' => $trabalho->id]); + } + + $avaliadores = Avaliador::whereIn('id', (array)$request->avaliadores_externos_id) + ->orWhereIn('id', (array)$request->avaliadores_internos_id)->get(); + $trabalho->save(); + foreach ($avaliadores as $avaliador){ diff --git a/app/Http/Controllers/AvaliadorController.php b/app/Http/Controllers/AvaliadorController.php index 0212edf..159b12e 100755 --- a/app/Http/Controllers/AvaliadorController.php +++ b/app/Http/Controllers/AvaliadorController.php @@ -71,11 +71,22 @@ 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); + //$trabalhos = $user->avaliadors->where('user_id',$user->id)->first()->trabalhos->where('evento_id', $request->evento_id); + $trabalhosEx = []; + $trabalhosIn = []; + $aval = $user->avaliadors->where('user_id',$user->id)->first(); + foreach ($aval->trabalhos 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 ){ + array_push($trabalhosIn,$aval->trabalhos()->where("trabalho_id",$trab->id)->first()); + } + if ($aval->trabalhos()->where("trabalho_id",$trab->id)->first()->pivot->acesso == 1 || $aval->trabalhos()->where("trabalho_id",$trab->id)->first()->pivot->acesso == 3){ + array_push($trabalhosEx,$aval->trabalhos()->where("trabalho_id",$trab->id)->first()); + } + } //dd(); - return view('avaliador.listarTrabalhos', ['trabalhos'=>$trabalhos, 'evento'=>$evento]); + return view('avaliador.listarTrabalhos', ['trabalhosEx'=>$trabalhosEx,'trabalhosIn'=>$trabalhosIn, 'evento'=>$evento]); } @@ -121,7 +132,18 @@ class AvaliadorController extends Controller public function enviarParecerInterno(Request $request){ $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); + //$trabalhos = $user->avaliadors->where('user_id',$user->id)->first()->trabalhos->where('evento_id', $request->evento_id); + $trabalhosEx = []; + $trabalhosIn = []; + $aval = $user->avaliadors->where('user_id',$user->id)->first(); + foreach ($aval->trabalhos 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 ){ + array_push($trabalhosIn,$aval->trabalhos()->where("trabalho_id",$trab->id)->first()); + } + if ($aval->trabalhos()->where("trabalho_id",$trab->id)->first()->pivot->acesso == 1 || $aval->trabalhos()->where("trabalho_id",$trab->id)->first()->pivot->acesso == 3){ + array_push($trabalhosEx,$aval->trabalhos()->where("trabalho_id",$trab->id)->first()); + } + } $avaliador = $user->avaliadors->where('user_id',$user->id)->first(); $trabalho = $avaliador->trabalhos->find($request->trabalho_id); $parecerInterno = ParecerInterno::where([['avaliador_id',$avaliador->id],['trabalho_id',$trabalho->id]])->first(); @@ -168,7 +190,7 @@ class AvaliadorController extends Controller $parecerInterno->update(); } - return view('avaliador.listarTrabalhos', ['trabalhos'=>$trabalhos, 'evento'=>$evento]); + return view('avaliador.listarTrabalhos', ['trabalhosEx'=>$trabalhosEx,'trabalhosIn'=>$trabalhosIn, 'evento'=>$evento]); } public function parecerPlano(Request $request){ @@ -188,8 +210,19 @@ class AvaliadorController extends Controller $evento = Evento::find($request->evento_id); - $trabalhos = $user->avaliadors->where('user_id',$user->id)->first()->trabalhos->where('evento_id', $request->evento_id); - $avaliador = $user->avaliadors->where('user_id',$user->id)->first(); + //$trabalhos = $user->avaliadors->where('user_id',$user->id)->first()->trabalhos->where('evento_id', $request->evento_id); + $trabalhosEx = []; + $trabalhosIn = []; + $aval = $user->avaliadors->where('user_id',$user->id)->first(); + foreach ($aval->trabalhos 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 ){ + array_push($trabalhosIn,$aval->trabalhos()->where("trabalho_id",$trab->id)->first()); + } + if ($aval->trabalhos()->where("trabalho_id",$trab->id)->first()->pivot->acesso == 1 || $aval->trabalhos()->where("trabalho_id",$trab->id)->first()->pivot->acesso == 3){ + array_push($trabalhosEx,$aval->trabalhos()->where("trabalho_id",$trab->id)->first()); + } + } + $avaliador = $user->avaliadors->where('user_id',$user->id)->first(); $trabalho = $avaliador->trabalhos->find($request->trabalho_id); $trabalho->status = 'avaliado'; $trabalho->save(); @@ -221,7 +254,7 @@ class AvaliadorController extends Controller // dd($trabalho); - return view('avaliador.listarTrabalhos', ['trabalhos'=>$trabalhos, 'evento'=>$evento ]); + return view('avaliador.listarTrabalhos', ['trabalhosEx'=>$trabalhosEx,'trabalhosIn'=>$trabalhosIn, 'evento'=>$evento ]); } public function conviteResposta(Request $request){ //dd($request->all()); diff --git a/app/Trabalho.php b/app/Trabalho.php index 4cf04c3..99eea01 100755 --- a/app/Trabalho.php +++ b/app/Trabalho.php @@ -102,7 +102,7 @@ class Trabalho extends Model return $this->belongsTo('App\CoordenadorComissao'); } public function avaliadors(){ - return $this->belongsToMany('App\Avaliador')->withPivot('status', 'AnexoParecer', 'parecer', 'recomendacao', 'created_at','pontuacao'); + return $this->belongsToMany('App\Avaliador')->withPivot('status', 'AnexoParecer', 'parecer', 'recomendacao', 'created_at','pontuacao','acesso'); } public function substituicaos(){ diff --git a/database/migrations/2022_06_07_073221_add_acesso_to_avaliadors_trabalhos_table.php b/database/migrations/2022_06_07_073221_add_acesso_to_avaliadors_trabalhos_table.php new file mode 100644 index 0000000..6e47105 --- /dev/null +++ b/database/migrations/2022_06_07_073221_add_acesso_to_avaliadors_trabalhos_table.php @@ -0,0 +1,32 @@ +string('acesso')->nullable(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('avaliador_trabalho', function (Blueprint $table) { + $table->dropColumn('acesso'); + }); + } +} diff --git a/resources/views/administrador/analisarProposta.blade.php b/resources/views/administrador/analisarProposta.blade.php index f58cf78..7eb5ebc 100644 --- a/resources/views/administrador/analisarProposta.blade.php +++ b/resources/views/administrador/analisarProposta.blade.php @@ -835,19 +835,28 @@
- +
@@ -856,13 +865,19 @@ @@ -893,7 +908,7 @@
@foreach($trabalho->avaliadors as $avaliador) - @if($avaliador->tipo == 'Interno') + @if($avaliador->tipo == 'Interno' && ($avaliador->trabalhos()->where("trabalho_id",$trabalho->id)->first()->pivot->acesso == 2 || $avaliador->trabalhos()->where("trabalho_id",$trabalho->id)->first()->pivot->acesso == 3))
@@ -921,29 +936,22 @@
Avaliadores - - Externos
+ Ad Hoc
@foreach($trabalho->avaliadors as $avaliador) - @if($avaliador->tipo == 'Externo' || $avaliador->tipo == null) + @if(($avaliador->trabalhos()->where("trabalho_id",$trabalho->id)->first()->pivot->acesso == 1 || $avaliador->trabalhos()->where("trabalho_id",$trabalho->id)->first()->pivot->acesso == 3) )
{{$avaliador->user->name}}
- @if($avaliador->tipo == 'Externo' || $avaliador->tipo == null) + @if($avaliador->trabalhos->where('id', $trabalho->id)->first()->pivot->parecer == null) Pendente @else Avaliado @endif - @else - @php - $parecerInterno = App\ParecerInterno::where([['avaliador_id',$avaliador->id],['trabalho_id',$trabalho->id]])->first(); - @endphp - @if($parecerInterno == null) Pendente @else Avaliado @endif - - @endif +
Remover diff --git a/resources/views/avaliador/index.blade.php b/resources/views/avaliador/index.blade.php index 36c37fa..d183b95 100755 --- a/resources/views/avaliador/index.blade.php +++ b/resources/views/avaliador/index.blade.php @@ -8,7 +8,7 @@
Página inicial
-
Avaliador {{Auth::user()->avaliadors->tipo}}
+
Avaliador @if(Auth::user()->avaliadors->tipo == "Externo") Ad Hoc@else Interno @endif
diff --git a/resources/views/avaliador/listarTrabalhos.blade.php b/resources/views/avaliador/listarTrabalhos.blade.php index a92e672..39ba957 100755 --- a/resources/views/avaliador/listarTrabalhos.blade.php +++ b/resources/views/avaliador/listarTrabalhos.blade.php @@ -22,14 +22,17 @@
- + @if(old('pdfFormAvalExternoPreenchido') != null) Arquivo atual @endif diff --git a/resources/views/evento/editarEvento.blade.php b/resources/views/evento/editarEvento.blade.php index c2679d8..45edd23 100755 --- a/resources/views/evento/editarEvento.blade.php +++ b/resources/views/evento/editarEvento.blade.php @@ -401,7 +401,7 @@
- + diff --git a/resources/views/layouts/app.blade.php b/resources/views/layouts/app.blade.php index 85d9c72..b1aabd1 100755 --- a/resources/views/layouts/app.blade.php +++ b/resources/views/layouts/app.blade.php @@ -175,7 +175,7 @@ @if(Auth::user()->avaliadors->tipo == "Interno") Comissão Interna @elseif(Auth::user()->avaliadors->tipo == "Externo") - Comissão Externa + Comissão Ad Hoc @endif @endif -- GitLab