"git@sites.upe.br:walter.felipe/submeta.git" did not exist on "8a3746fe3728fa5b177e344e5a3a09ef88f9507a"
Unverified Commit caaea21e authored by Nathalia Santos's avatar Nathalia Santos Committed by GitHub
Browse files

Merge pull request #727 from Wolf-gangSE/remover-obrigatoriedade-discente

Remover obrigatoriedade do discente em edital
parents 2be90919 4e072167
...@@ -15,7 +15,7 @@ class Arquivo extends Model ...@@ -15,7 +15,7 @@ class Arquivo extends Model
use SoftDeletes; use SoftDeletes;
protected $fillable = [ protected $fillable = [
'nome','titulo', 'versao', 'versaoFinal', 'data', 'trabalhoId', 'participanteId' 'nome','titulo', 'versao', 'versaoFinal', 'data', 'trabalhoId', 'participanteId', 'proponenteId'
]; ];
public function trabalho(){ public function trabalho(){
...@@ -29,6 +29,11 @@ class Arquivo extends Model ...@@ -29,6 +29,11 @@ class Arquivo extends Model
public function participante() { public function participante() {
return $this->belongsTo('App\Participante', 'participanteId'); return $this->belongsTo('App\Participante', 'participanteId');
} }
public function proponente() {
return $this->belongsTo('App\Proponente', 'proponenteId');
}
public function avaliadors(){ public function avaliadors(){
return $this->belongsToMany('App\Avaliador', 'avaliadors_plano_trabalho')->withPivot('status', 'AnexoParecer', 'parecer', 'recomendacao', 'created_at'); return $this->belongsToMany('App\Avaliador', 'avaliadors_plano_trabalho')->withPivot('status', 'AnexoParecer', 'parecer', 'recomendacao', 'created_at');
} }
......
<?php <?php
namespace App\Http\Controllers; namespace App\Http\Controllers;
use App\Administrador; use App\Administrador;
use App\AdministradorResponsavel; use App\AdministradorResponsavel;
use App\Area; use App\Area;
use App\AvaliacaoRelatorio; use App\Arquivo;
use App\Avaliador; use App\AvaliacaoRelatorio;
use App\CoordenadorComissao; use App\Avaliador;
use App\Evento; use App\CoordenadorComissao;
use App\FuncaoParticipantes; use App\Evento;
use App\GrandeArea; use App\FuncaoParticipantes;
use App\Mail\EmailLembrete; use App\GrandeArea;
use App\Mail\EmailParaUsuarioNaoCadastrado; use App\Mail\EmailLembrete;
use App\Natureza; use App\Mail\EmailParaUsuarioNaoCadastrado;
use App\Notificacao; use App\Natureza;
use App\Notifications\AtribuicaoAvaliadorExternoNotification; use App\Notificacao;
use App\ParecerInterno; use App\Notifications\AtribuicaoAvaliadorExternoNotification;
use App\Participante; use App\ParecerInterno;
use App\Proponente; use App\Participante;
use App\Substituicao; use App\Proponente;
use App\Trabalho; use App\Substituicao;
use App\User; use App\Trabalho;
use Carbon\Carbon; use App\User;
use Illuminate\Http\Request; use Carbon\Carbon;
use Illuminate\Support\Collection; use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth; use Illuminate\Support\Collection;
use Illuminate\Support\Facades\Hash; use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Mail; use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Notification; use Illuminate\Support\Facades\Mail;
use Illuminate\Support\Facades\Storage; use Illuminate\Support\Facades\Notification;
use Illuminate\Support\Str; use Illuminate\Support\Facades\Storage;
use Illuminate\Validation\Rule; use Illuminate\Support\Str;
use PDF; use Illuminate\Validation\Rule;
use DB; use PDF;
use App\AreaTematica; use DB;
use App\AreaTematica;
class AdministradorController extends Controller
{ class AdministradorController extends Controller
public function index() {
{ public function index()
return view('administrador.index'); {
} return view('administrador.index');
}
public function naturezas()
{ public function naturezas()
$naturezas = Natureza::orderBy('nome')->get(); {
$funcoesParticipante = FuncaoParticipantes::orderBy('nome')->get(); $naturezas = Natureza::orderBy('nome')->get();
$funcoesParticipante = FuncaoParticipantes::orderBy('nome')->get();
return view('naturezas.index')->with(['naturezas' => $naturezas, 'funcoes' => $funcoesParticipante]);
} return view('naturezas.index')->with(['naturezas' => $naturezas, 'funcoes' => $funcoesParticipante]);
}
public function usuarios()
{ public function usuarios()
$users = User::orderBy('name')->get(); {
$users = User::orderBy('name')->get();
return view('administrador.usersAdmin')->with(['users' => $users]);
} return view('administrador.usersAdmin')->with(['users' => $users]);
}
public function editais()
{ public function editais()
//$admin = Administrador::with('user')->where('user_id', Auth()->user()->id)->first(); {
//$eventos = Evento::where('coordenadorId',$admin->id )->get(); //$admin = Administrador::with('user')->where('user_id', Auth()->user()->id)->first();
$eventos = Evento::all()->sortByDesc('created_at'); //$eventos = Evento::where('coordenadorId',$admin->id )->get();
$eventos = Evento::all()->sortByDesc('created_at');
return view('administrador.editais', ['eventos' => $eventos]);
} return view('administrador.editais', ['eventos' => $eventos]);
}
public function pareceres(Request $request)
{ public function pareceres(Request $request)
$evento = Evento::where('id', $request->evento_id)->first(); {
$trabalhos = $evento->trabalhos->whereNotIn('status', 'rascunho'); $evento = Evento::where('id', $request->evento_id)->first();
$trabalhos = $evento->trabalhos->whereNotIn('status', 'rascunho');
$coordenador_id_evento = $evento->coordenadorId;
$coordenador_id = CoordenadorComissao::find($coordenador_id_evento); $coordenador_id_evento = $evento->coordenadorId;
$user = Auth::user(); $coordenador_id = CoordenadorComissao::find($coordenador_id_evento);
$user = Auth::user();
if ((Auth::user()->id != $coordenador_id->user_id) && ($user->tipo != 'administrador')) {
return redirect()->back(); if ((Auth::user()->id != $coordenador_id->user_id) && ($user->tipo != 'administrador')) {
} return redirect()->back();
}
return view('administrador.projetos')->with(['trabalhos' => $trabalhos, 'evento' => $evento]);
} return view('administrador.projetos')->with(['trabalhos' => $trabalhos, 'evento' => $evento]);
}
public function analisar(Request $request)
{ public function analisar(Request $request)
$evento = Evento::find($request->evento_id); {
$status = ['submetido', 'avaliado', 'aprovado', 'reprovado', 'corrigido']; $evento = Evento::find($request->evento_id);
$aux = Trabalho::where('evento_id', $evento->id) $status = ['submetido', 'avaliado', 'aprovado', 'reprovado', 'corrigido'];
->whereIn('status', $status) $aux = Trabalho::where('evento_id', $evento->id)
->pluck('grande_area_id'); ->whereIn('status', $status)
->pluck('grande_area_id');
$idArea = Trabalho::where('evento_id', $evento->id)
->whereIn('status', $status) $idArea = Trabalho::where('evento_id', $evento->id)
->pluck('area_id'); ->whereIn('status', $status)
->pluck('area_id');
$trabalhos = $evento->trabalhos->whereNotIn('status', 'rascunho')->sortBy('titulo');
$trabalhos = $evento->trabalhos->whereNotIn('status', 'rascunho')->sortBy('titulo');
$grandesAreas = GrandeArea::whereIn('id', $aux)->get();
$areas = Area::whereIn('id', $idArea)->get(); $grandesAreas = GrandeArea::whereIn('id', $aux)->get();
$areas = Area::whereIn('id', $idArea)->get();
$funcaoParticipantes = FuncaoParticipantes::all();
// $participantes = Participante::where('trabalho_id', $id)->get(); $funcaoParticipantes = FuncaoParticipantes::all();
// $participantesUsersIds = Participante::where('trabalho_id', $id)->select('user_id')->get(); // $participantes = Participante::where('trabalho_id', $id)->get();
// $participantes = User::whereIn('id', $participantesUsersIds)->get(); // $participantesUsersIds = Participante::where('trabalho_id', $id)->select('user_id')->get();
// $participantes = User::whereIn('id', $participantesUsersIds)->get();
return view('administrador.analisar')->with(['trabalhos' => $trabalhos, 'evento' => $evento, 'funcaoParticipantes' => $funcaoParticipantes, 'column' => $request->column, 'grandesAreas' => $grandesAreas, 'areas' => $areas]);
} return view('administrador.analisar')->with(['trabalhos' => $trabalhos, 'evento' => $evento, 'funcaoParticipantes' => $funcaoParticipantes, 'column' => $request->column, 'grandesAreas' => $grandesAreas, 'areas' => $areas]);
}
// Utilizado para paginação de Collection
// Utilizado para paginação de Collection
public function analisarProposta(Request $request)
{ public function analisarProposta(Request $request)
$trabalho = Trabalho::where('id', $request->id)->first(); {
$evento = Evento::where('id', $trabalho->evento_id)->first(); $trabalho = Trabalho::where('id', $request->id)->first();
$funcaoParticipantes = FuncaoParticipantes::all(); $evento = Evento::where('id', $trabalho->evento_id)->first();
$substituicoesProjeto = Substituicao::where('trabalho_id', $trabalho->id)->orderBy('created_at', 'DESC')->get(); $funcaoParticipantes = FuncaoParticipantes::all();
$substituicoesPendentes = Substituicao::where('trabalho_id', $trabalho->id)->where('status', 'Em Aguardo')->orderBy('created_at', 'DESC')->get(); $substituicoesProjeto = Substituicao::where('trabalho_id', $trabalho->id)->orderBy('created_at', 'DESC')->get();
$substituicoesPendentes = Substituicao::where('trabalho_id', $trabalho->id)->where('status', 'Em Aguardo')->orderBy('created_at', 'DESC')->get();
$avalSelecionadosId = $trabalho->avaliadors->pluck('id');
$avalProjeto = Avaliador::whereNotIn('id', $avalSelecionadosId)->get(); $avalSelecionadosId = $trabalho->avaliadors->pluck('id');
$trabalho->aval = $avalProjeto; $avalProjeto = Avaliador::whereNotIn('id', $avalSelecionadosId)->get();
// Usuarios que possuem avaliações de relatório $trabalho->aval = $avalProjeto;
//$avaliacoesRelatorio = [];->join('users','users.id','=','candidatos.user_id') // Usuarios que possuem avaliações de relatório
$AvalRelatParcial = []; //$avaliacoesRelatorio = [];->join('users','users.id','=','candidatos.user_id')
$AvalRelatFinal = []; $AvalRelatParcial = [];
$MediaAvalRelatParcial = 0; $AvalRelatFinal = [];
$AvalRelatParcialPendentes = 0; $MediaAvalRelatParcial = 0;
$MediaAvalRelatFinal = 0; $AvalRelatParcialPendentes = 0;
$AvalRelatFinalPendentes = 0; $MediaAvalRelatFinal = 0;
$AvalRelatFinalPendentes = 0;
foreach ($trabalho->participantes as $participante) {
if (isset($participante->planoTrabalho)) { if ($evento->numParticipantes == 0) {
$avals = AvaliacaoRelatorio::where('arquivo_id', $participante->planoTrabalho->id)->get(); $arquivo = Arquivo::where("trabalhoId", $trabalho->id)->first();
} else {
$avals = []; if (isset($arquivo)) {
} $avals = AvaliacaoRelatorio::where('arquivo_id', $arquivo->id)->get();
foreach ($avals as $aval) { } else {
if ($aval->tipo == 'Parcial') { $avals = [];
array_push($AvalRelatParcial, $aval); }
$MediaAvalRelatParcial += $aval->nota;
foreach ($avals as $aval) {
if($aval->nota == null){ if ($aval->tipo == 'Parcial') {
$AvalRelatParcialPendentes += 1; array_push($AvalRelatParcial, $aval);
} $MediaAvalRelatParcial += $aval->nota;
} else {
array_push($AvalRelatFinal, $aval); if($aval->nota == null){
$MediaAvalRelatFinal += $aval->nota; $AvalRelatParcialPendentes += 1;
}
if($aval->nota == null){ } else {
$AvalRelatFinalPendentes += 1; array_push($AvalRelatFinal, $aval);
} $MediaAvalRelatFinal += $aval->nota;
}
} if($aval->nota == null){
} $AvalRelatFinalPendentes += 1;
}
if(count($AvalRelatParcial) > 0){ }
$MediaAvalRelatParcial = $MediaAvalRelatParcial / count($AvalRelatParcial); }
} }
if(count($AvalRelatFinal) > 0){
$MediaAvalRelatFinal = $MediaAvalRelatFinal / count($AvalRelatFinal); foreach ($trabalho->participantes as $participante) {
} if (isset($participante->planoTrabalho)) {
$avals = AvaliacaoRelatorio::where('arquivo_id', $participante->planoTrabalho->id)->get();
// Verficação de pendencia de substituição } else {
$aux = count(Substituicao::where('status', 'Em Aguardo')->whereIn('participanteSubstituido_id', $trabalho->participantes->pluck('id'))->get()); $avals = [];
$flagSubstituicao = 1; }
if ($aux != 0) { foreach ($avals as $aval) {
$flagSubstituicao = -1; if ($aval->tipo == 'Parcial') {
} array_push($AvalRelatParcial, $aval);
$MediaAvalRelatParcial += $aval->nota;
$grandeAreas = GrandeArea::orderBy('nome')->get();
$areasTematicas = AreaTematica::orderBy('nome')->get(); if($aval->nota == null){
//dd($areasTematicas); $AvalRelatParcialPendentes += 1;
}
$hoje = Carbon::today('America/Recife'); } else {
$hoje = $hoje->toDateString(); array_push($AvalRelatFinal, $aval);
$MediaAvalRelatFinal += $aval->nota;
return view('administrador.analisarProposta')->with(
['trabalho' => $trabalho, if($aval->nota == null){
'funcaoParticipantes' => $funcaoParticipantes, $AvalRelatFinalPendentes += 1;
'evento' => $evento, }
'substituicoesPendentes' => $substituicoesPendentes, }
'substituicoesProjeto' => $substituicoesProjeto, }
'grandeAreas' => $grandeAreas, }
'AvalRelatParcial' => $AvalRelatParcial,
'AvalRelatFinal' => $AvalRelatFinal, if(count($AvalRelatParcial) > 0){
'hoje' => $hoje, $MediaAvalRelatParcial = $MediaAvalRelatParcial / count($AvalRelatParcial);
'flagSubstituicao' => $flagSubstituicao, }
'areasTematicas' => $areasTematicas,
'MediaAvalRelatParcial' => $MediaAvalRelatParcial, if(count($AvalRelatFinal) > 0){
'AvalRelatParcialPendentes' => $AvalRelatParcialPendentes, $MediaAvalRelatFinal = $MediaAvalRelatFinal / count($AvalRelatFinal);
'MediaAvalRelatFinal' => $MediaAvalRelatFinal, }
'AvalRelatFinalPendentes' => $AvalRelatFinalPendentes,
]); // Verficação de pendencia de substituição
} $aux = count(Substituicao::where('status', 'Em Aguardo')->whereIn('participanteSubstituido_id', $trabalho->participantes->pluck('id'))->get());
$flagSubstituicao = 1;
public function showProjetos(Request $request) if ($aux != 0) {
{ $flagSubstituicao = -1;
$projetos = Trabalho::all()->where('status', '<>', 'rascunho'); }
$funcaoParticipantes = FuncaoParticipantes::all();
$grandeAreas = GrandeArea::orderBy('nome')->get();
return view('administrador.listaProjetos')->with(['projetos' => $projetos, 'funcaoParticipantes' => $funcaoParticipantes]); $areasTematicas = AreaTematica::orderBy('nome')->get();
} //dd($areasTematicas);
public function showResultados(Request $request) $hoje = Carbon::today('America/Recife');
{ $hoje = $hoje->toDateString();
//dd($request);
$evento = Evento::where('id', $request->evento_id)->first(); return view('administrador.analisarProposta')->with(
$coordenador_id_evento = $evento->coordenadorId; ['trabalho' => $trabalho,
$coordenador_id = CoordenadorComissao::find($coordenador_id_evento); 'funcaoParticipantes' => $funcaoParticipantes,
$user = Auth::user(); 'evento' => $evento,
'substituicoesPendentes' => $substituicoesPendentes,
if ((Auth::user()->id != $coordenador_id->user_id) && ($user->tipo != 'administrador')) { 'substituicoesProjeto' => $substituicoesProjeto,
return redirect()->back(); 'grandeAreas' => $grandeAreas,
} 'AvalRelatParcial' => $AvalRelatParcial,
'AvalRelatFinal' => $AvalRelatFinal,
// Com cotas 'hoje' => $hoje,
if ($evento->cotaDoutor) { 'flagSubstituicao' => $flagSubstituicao,
// Ampla Concorrencia 'areasTematicas' => $areasTematicas,
$trabalhosAmpla = Trabalho::where('evento_id', $evento->id) 'MediaAvalRelatParcial' => $MediaAvalRelatParcial,
->where('modalidade', 'AmplaConcorrencia')->get(); 'AvalRelatParcialPendentes' => $AvalRelatParcialPendentes,
foreach ($trabalhosAmpla as $trabalho) { 'MediaAvalRelatFinal' => $MediaAvalRelatFinal,
$trabalho->pontuacao = 0; 'AvalRelatFinalPendentes' => $AvalRelatFinalPendentes,
$cont = 0; ]);
// Caso especial do PIBEX onde a pontuação fica no Ad Hoc }
if ($evento->tipo == 'PIBEX') {
foreach ($trabalho->avaliadors as $avaliador) { public function showProjetos(Request $request)
if (($avaliador->trabalhos()->where('trabalho_id', $trabalho->id)->first()->pivot->acesso == 1 || {
$avaliador->trabalhos()->where('trabalho_id', $trabalho->id)->first()->pivot->acesso == 3) && $projetos = Trabalho::all()->where('status', '<>', 'rascunho');
$avaliador->trabalhos()->where('trabalho_id', $trabalho->id)->first()->pivot->pontuacao != null) { $funcaoParticipantes = FuncaoParticipantes::all();
$trabalho->pontuacao += $avaliador->trabalhos()->where('trabalho_id', $trabalho->id)->first()->pivot->pontuacao;
++$cont; return view('administrador.listaProjetos')->with(['projetos' => $projetos, 'funcaoParticipantes' => $funcaoParticipantes]);
} }
}
} else { public function showResultados(Request $request)
foreach ($trabalho->avaliadors as $avaliador) { {
if ($avaliador->tipo == 'Interno') { //dd($request);
$parecerInterno = ParecerInterno::where([['avaliador_id', $avaliador->id], ['trabalho_id', $trabalho->id]])->first(); $evento = Evento::where('id', $request->evento_id)->first();
if ($parecerInterno != null) { $coordenador_id_evento = $evento->coordenadorId;
$trabalho->pontuacao += $parecerInterno->statusAnexoPlanilhaPontuacao; $coordenador_id = CoordenadorComissao::find($coordenador_id_evento);
++$cont; $user = Auth::user();
}
} if ((Auth::user()->id != $coordenador_id->user_id) && ($user->tipo != 'administrador')) {
} return redirect()->back();
} }
if ($trabalho->pontuacao != 0) { // Com cotas
$trabalho->pontuacao = number_format(($trabalho->pontuacao / $cont), 2, ',', ''); if ($evento->cotaDoutor) {
} // Ampla Concorrencia
} $trabalhosAmpla = Trabalho::where('evento_id', $evento->id)
$trabalhosAmpla = $trabalhosAmpla->sort(function ($item, $next) { ->where('modalidade', 'AmplaConcorrencia')->get();
return $item->pontuacao >= $next->pontuacao ? -1 : 1; foreach ($trabalhosAmpla as $trabalho) {
}); $trabalho->pontuacao = 0;
$cont = 0;
// Recém Doutor // Caso especial do PIBEX onde a pontuação fica no Ad Hoc
$trabalhosDoutor = Trabalho::where('evento_id', $evento->id) if ($evento->tipo == 'PIBEX') {
->where('modalidade', 'RecemDoutor')->get(); foreach ($trabalho->avaliadors as $avaliador) {
foreach ($trabalhosDoutor as $trabalho) { if (($avaliador->trabalhos()->where('trabalho_id', $trabalho->id)->first()->pivot->acesso == 1 ||
$trabalho->pontuacao = 0; $avaliador->trabalhos()->where('trabalho_id', $trabalho->id)->first()->pivot->acesso == 3) &&
$cont = 0; $avaliador->trabalhos()->where('trabalho_id', $trabalho->id)->first()->pivot->pontuacao != null) {
// Caso especial do PIBEX onde a pontuação fica no Ad Hoc $trabalho->pontuacao += $avaliador->trabalhos()->where('trabalho_id', $trabalho->id)->first()->pivot->pontuacao;
if ($evento->tipo == 'PIBEX') { ++$cont;
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) && } else {
$avaliador->trabalhos()->where('trabalho_id', $trabalho->id)->first()->pivot->pontuacao != null) { foreach ($trabalho->avaliadors as $avaliador) {
$trabalho->pontuacao += $avaliador->trabalhos()->where('trabalho_id', $trabalho->id)->first()->pivot->pontuacao; if ($avaliador->tipo == 'Interno') {
++$cont; $parecerInterno = ParecerInterno::where([['avaliador_id', $avaliador->id], ['trabalho_id', $trabalho->id]])->first();
} if ($parecerInterno != null) {
} $trabalho->pontuacao += $parecerInterno->statusAnexoPlanilhaPontuacao;
} else { ++$cont;
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, ',', '');
} }
} }
} $trabalhosAmpla = $trabalhosAmpla->sort(function ($item, $next) {
return $item->pontuacao >= $next->pontuacao ? -1 : 1;
if ($trabalho->pontuacao != 0) { });
$trabalho->pontuacao = number_format(($trabalho->pontuacao / $cont), 2, ',', '');
} // Recém Doutor
} $trabalhosDoutor = Trabalho::where('evento_id', $evento->id)
$trabalhosDoutor = $trabalhosDoutor->sort(function ($item, $next) { ->where('modalidade', 'RecemDoutor')->get();
return $item->pontuacao >= $next->pontuacao ? -1 : 1; foreach ($trabalhosDoutor as $trabalho) {
}); $trabalho->pontuacao = 0;
$cont = 0;
return view('administrador.resultadosProjetosCotas')->with(['evento' => $evento, 'trabalhosAmpla' => $trabalhosAmpla, 'trabalhosDoutor' => $trabalhosDoutor]); // Caso especial do PIBEX onde a pontuação fica no Ad Hoc
} if ($evento->tipo == 'PIBEX') {
foreach ($trabalho->avaliadors as $avaliador) {
// Sem Cotas if (($avaliador->trabalhos()->where('trabalho_id', $trabalho->id)->first()->pivot->acesso == 1 ||
$trabalhos = $evento->trabalhos; $avaliador->trabalhos()->where('trabalho_id', $trabalho->id)->first()->pivot->acesso == 3) &&
foreach ($trabalhos as $trabalho) { $avaliador->trabalhos()->where('trabalho_id', $trabalho->id)->first()->pivot->pontuacao != null) {
$trabalho->pontuacao = 0; $trabalho->pontuacao += $avaliador->trabalhos()->where('trabalho_id', $trabalho->id)->first()->pivot->pontuacao;
$cont = 0; ++$cont;
// Caso especial do PIBEX onde a pontuação fica no Ad Hoc }
if ($evento->tipo == 'PIBEX') { }
foreach ($trabalho->avaliadors as $avaliador) { } else {
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->tipo == 'Interno') {
$avaliador->trabalhos()->where('trabalho_id', $trabalho->id)->first()->pivot->pontuacao != null) { $parecerInterno = ParecerInterno::where([['avaliador_id', $avaliador->id], ['trabalho_id', $trabalho->id]])->first();
$trabalho->pontuacao += $avaliador->trabalhos()->where('trabalho_id', $trabalho->id)->first()->pivot->pontuacao; if ($parecerInterno != null) {
++$cont; $trabalho->pontuacao += $parecerInterno->statusAnexoPlanilhaPontuacao;
} ++$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) { if ($trabalho->pontuacao != 0) {
$trabalho->pontuacao += $parecerInterno->statusAnexoPlanilhaPontuacao; $trabalho->pontuacao = number_format(($trabalho->pontuacao / $cont), 2, ',', '');
++$cont; }
} }
} $trabalhosDoutor = $trabalhosDoutor->sort(function ($item, $next) {
} return $item->pontuacao >= $next->pontuacao ? -1 : 1;
} });
if ($trabalho->pontuacao != 0) {
$trabalho->pontuacao = number_format(($trabalho->pontuacao / $cont), 2, ',', ''); return view('administrador.resultadosProjetosCotas')->with(['evento' => $evento, 'trabalhosAmpla' => $trabalhosAmpla, 'trabalhosDoutor' => $trabalhosDoutor]);
} }
}
$trabalhos = $trabalhos->sort(function ($item, $next) { // Sem Cotas
return $item->pontuacao >= $next->pontuacao ? -1 : 1; $trabalhos = $evento->trabalhos;
}); foreach ($trabalhos as $trabalho) {
$trabalho->pontuacao = 0;
return view('administrador.resultadosProjetos')->with(['evento' => $evento, 'trabalhos' => $trabalhos]); $cont = 0;
} // Caso especial do PIBEX onde a pontuação fica no Ad Hoc
if ($evento->tipo == 'PIBEX') {
public function visualizarParecer(Request $request) foreach ($trabalho->avaliadors as $avaliador) {
{ if (($avaliador->trabalhos()->where('trabalho_id', $trabalho->id)->first()->pivot->acesso == 1 ||
$avaliador = Avaliador::find($request->avaliador_id); $avaliador->trabalhos()->where('trabalho_id', $trabalho->id)->first()->pivot->acesso == 3) &&
$trabalho = $avaliador->trabalhos->where('id', $request->trabalho_id)->first(); $avaliador->trabalhos()->where('trabalho_id', $trabalho->id)->first()->pivot->pontuacao != null) {
$parecer = $avaliador->trabalhos->where('id', $request->trabalho_id)->first()->pivot; $trabalho->pontuacao += $avaliador->trabalhos()->where('trabalho_id', $trabalho->id)->first()->pivot->pontuacao;
++$cont;
//dd($parecer); }
return view('administrador.visualizarParecer')->with(['trabalho' => $trabalho, 'parecer' => $parecer, 'avaliador' => $avaliador]); }
} } else {
foreach ($trabalho->avaliadors as $avaliador) {
public function visualizarParecerInterno(Request $request) if ($avaliador->tipo == 'Interno') {
{ $parecerInterno = ParecerInterno::where([['avaliador_id', $avaliador->id], ['trabalho_id', $trabalho->id]])->first();
$avaliador = Avaliador::find($request->avaliador_id); if ($parecerInterno != null) {
$trabalho = $avaliador->trabalhos->where('id', $request->trabalho_id)->first(); $trabalho->pontuacao += $parecerInterno->statusAnexoPlanilhaPontuacao;
$parecerInterno = ParecerInterno::where([['avaliador_id', $avaliador->id], ['trabalho_id', $trabalho->id]])->first(); ++$cont;
$evento = Evento::find($trabalho->evento_id); }
}
//dd($parecer); }
return view('administrador.visualizarParecerInterno')->with(['parecer' => $parecerInterno, 'avaliador' => $avaliador, 'trabalho' => $trabalho, 'evento' => $evento]); }
} if ($trabalho->pontuacao != 0) {
$trabalho->pontuacao = number_format(($trabalho->pontuacao / $cont), 2, ',', '');
public function create() }
{ }
return view('administrador.novo_user'); $trabalhos = $trabalhos->sort(function ($item, $next) {
} return $item->pontuacao >= $next->pontuacao ? -1 : 1;
});
public function salvar(Request $request)
{ return view('administrador.resultadosProjetos')->with(['evento' => $evento, 'trabalhos' => $trabalhos]);
if ($request->tipo == 'coordenador') { }
$validated = $request->validate([
'name' => ['required', 'string', 'max:255'], public function visualizarParecer(Request $request)
'tipo' => ['required'], {
'email' => ['required', 'string', 'email', 'max:255', 'unique:users'], $avaliador = Avaliador::find($request->avaliador_id);
'instituicao' => ['required_if:instituicaoSelect,Outra', 'max:255'], $trabalho = $avaliador->trabalhos->where('id', $request->trabalho_id)->first();
'instituicaoSelect' => ['required_without:instituicao'], $parecer = $avaliador->trabalhos->where('id', $request->trabalho_id)->first()->pivot;
'senha' => ['required', 'min:8'],
'confirmar_senha' => ['required', 'min:8'], //dd($parecer);
'celular' => ($request['celular'] != null ? 'required|string|telefone' : 'nullable'), return view('administrador.visualizarParecer')->with(['trabalho' => $trabalho, 'parecer' => $parecer, 'avaliador' => $avaliador]);
'cpf' => ($request['cpf'] != null ? 'required|cpf|unique:users' : 'nullable'), }
]);
} elseif ($request->tipo != 'proponente') { public function visualizarParecerInterno(Request $request)
$validated = $request->validate([ {
'name' => ['required', 'string', 'max:255'], $avaliador = Avaliador::find($request->avaliador_id);
'tipo' => ['required'], $trabalho = $avaliador->trabalhos->where('id', $request->trabalho_id)->first();
'email' => ['required', 'string', 'email', 'max:255', 'unique:users'], $parecerInterno = ParecerInterno::where([['avaliador_id', $avaliador->id], ['trabalho_id', $trabalho->id]])->first();
'instituicao' => ['required_if:instituicaoSelect,Outra', 'max:255'], $evento = Evento::find($trabalho->evento_id);
'instituicaoSelect' => ['required_without:instituicao'],
'celular' => ['required', 'string', 'telefone'], //dd($parecer);
'senha' => ['required', 'min:8'], return view('administrador.visualizarParecerInterno')->with(['parecer' => $parecerInterno, 'avaliador' => $avaliador, 'trabalho' => $trabalho, 'evento' => $evento]);
'confirmar_senha' => ['required', 'min:8'], }
'cpf' => ['required', 'cpf', 'unique:users'],
]); public function create()
} else { {
$validated = $request->validate([ return view('administrador.novo_user');
'name' => ['required', 'string', 'max:255'], }
'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
'tipo' => ['required'], public function salvar(Request $request)
'cpf' => ['required', 'cpf', 'unique:users'], {
'celular' => ['required', 'string', 'telefone'], if ($request->tipo == 'coordenador') {
'senha' => ['required', 'min:8'], $validated = $request->validate([
'confirmar_senha' => ['required', 'min:8'], 'name' => ['required', 'string', 'max:255'],
'instituicao' => ['required_if:instituicaoSelect,Outra', 'max:255'], 'tipo' => ['required'],
'instituicaoSelect' => ['required_without:instituicao'], 'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
'cargo' => ['required'], 'instituicao' => ['required_if:instituicaoSelect,Outra', 'max:255'],
'vinculo' => ['required'], 'instituicaoSelect' => ['required_without:instituicao'],
'outro' => ['required_if:vinculo,Outro'], 'senha' => ['required', 'min:8'],
'titulacaoMaxima' => ['required_with:anoTitulacao,areaFormacao,bolsistaProdutividade'], 'confirmar_senha' => ['required', 'min:8'],
'titulacaoMaxima' => Rule::requiredIf((isset($request['cargo']) && $request['cargo'] !== 'Estudante') || (isset($request['cargo']) && $request['cargo'] === 'Estudante' && isset($request['vinculo']) && $request['vinculo'] === 'Pós-doutorando')), 'celular' => ($request['celular'] != null ? 'required|string|telefone' : 'nullable'),
'anoTitulacao' => ['required_with:titulacaoMaxima,areaFormacao,bolsistaProdutividade,linkLattes'], 'cpf' => ($request['cpf'] != null ? 'required|cpf|unique:users' : 'nullable'),
'anoTitulacao' => Rule::requiredIf((isset($request['cargo']) && $request['cargo'] !== 'Estudante') || (isset($request['cargo']) && $request['cargo'] === 'Estudante' && isset($request['vinculo']) && $request['vinculo'] === 'Pós-doutorando')), ]);
'areaFormacao' => ['required_with:titulacaoMaxima,anoTitulacao,bolsistaProdutividade,linkLattes'], } elseif ($request->tipo != 'proponente') {
'areaFormacao' => Rule::requiredIf((isset($request['cargo']) && $request['cargo'] !== 'Estudante') || (isset($request['cargo']) && $request['cargo'] === 'Estudante' && isset($request['vinculo']) && $request['vinculo'] === 'Pós-doutorando')), $validated = $request->validate([
'bolsistaProdutividade' => ['required_with:titulacaoMaxima,anoTitulacao,areaFormacao,linkLattes'], 'name' => ['required', 'string', 'max:255'],
'bolsistaProdutividade' => Rule::requiredIf((isset($request['cargo']) && $request['cargo'] !== 'Estudante') || (isset($request['cargo']) && $request['cargo'] === 'Estudante' && isset($request['vinculo']) && $request['vinculo'] === 'Pós-doutorando')), 'tipo' => ['required'],
'nivel' => ['required_if:bolsistaProdutividade,sim'], 'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
//'nivel' => [(isset($data['cargo']) && $data['cargo'] !== 'Estudante') || (isset($data['cargo']) && $data['cargo'] === 'Estudante' && isset($data['vinculo']) && $data['vinculo'] === 'Pós-doutorando') ? 'required':''], 'instituicao' => ['required_if:instituicaoSelect,Outra', 'max:255'],
'linkLattes' => ['required_with:titulacaoMaxima,anoTitulacao,areaFormacao,bolsistaProdutividade'], 'instituicaoSelect' => ['required_without:instituicao'],
'linkLattes' => ['required_with:titulacaoMaxima,anoTitulacao,areaFormacao,bolsistaProdutividade'], 'celular' => ['required', 'string', 'telefone'],
'linkLattes' => ['required_with:titulacaoMaxima,anoTitulacao,areaFormacao,bolsistaProdutividade'], 'senha' => ['required', 'min:8'],
'linkLattes' => [(isset($request['cargo']) && $request['cargo'] !== 'Estudante') || (isset($request['cargo']) && $request['cargo'] === 'Estudante' && isset($request['vinculo']) && $request['vinculo'] === 'Pós-doutorando') ? 'required' : ''], 'confirmar_senha' => ['required', 'min:8'],
'linkLattes' => [(isset($request['cargo']) && $request['cargo'] !== 'Estudante') || (isset($request['cargo']) && $request['cargo'] === 'Estudante' && isset($request['vinculo']) && $request['vinculo'] === 'Pós-doutorando') ? 'link_lattes' : ''], 'cpf' => ['required', 'cpf', 'unique:users'],
]); ]);
} } else {
$validated = $request->validate([
if (!($request->senha === $request->confirmar_senha)) { 'name' => ['required', 'string', 'max:255'],
return redirect()->back()->withErrors(['senha' => 'Senhas diferentes']); 'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
} 'tipo' => ['required'],
'cpf' => ['required', 'cpf', 'unique:users'],
$user = new User(); 'celular' => ['required', 'string', 'telefone'],
$user->name = $request->name; 'senha' => ['required', 'min:8'],
$user->tipo = $request->tipo; 'confirmar_senha' => ['required', 'min:8'],
$user->cpf = $request->cpf; 'instituicao' => ['required_if:instituicaoSelect,Outra', 'max:255'],
$user->celular = $request->celular; 'instituicaoSelect' => ['required_without:instituicao'],
$user->email = $request->email; 'cargo' => ['required'],
$user->password = bcrypt($request->senha); 'vinculo' => ['required'],
if ($request->instituicao != null) { 'outro' => ['required_if:vinculo,Outro'],
$user->instituicao = $request->instituicao; 'titulacaoMaxima' => ['required_with:anoTitulacao,areaFormacao,bolsistaProdutividade'],
} elseif (isset($request->instituicaoSelect) && $request->instituicaoSelect != 'Outra') { 'titulacaoMaxima' => Rule::requiredIf((isset($request['cargo']) && $request['cargo'] !== 'Estudante') || (isset($request['cargo']) && $request['cargo'] === 'Estudante' && isset($request['vinculo']) && $request['vinculo'] === 'Pós-doutorando')),
$user->instituicao = $request->instituicaoSelect; 'anoTitulacao' => ['required_with:titulacaoMaxima,areaFormacao,bolsistaProdutividade,linkLattes'],
} 'anoTitulacao' => Rule::requiredIf((isset($request['cargo']) && $request['cargo'] !== 'Estudante') || (isset($request['cargo']) && $request['cargo'] === 'Estudante' && isset($request['vinculo']) && $request['vinculo'] === 'Pós-doutorando')),
$user->save(); 'areaFormacao' => ['required_with:titulacaoMaxima,anoTitulacao,bolsistaProdutividade,linkLattes'],
'areaFormacao' => Rule::requiredIf((isset($request['cargo']) && $request['cargo'] !== 'Estudante') || (isset($request['cargo']) && $request['cargo'] === 'Estudante' && isset($request['vinculo']) && $request['vinculo'] === 'Pós-doutorando')),
switch ($request->tipo) { 'bolsistaProdutividade' => ['required_with:titulacaoMaxima,anoTitulacao,areaFormacao,linkLattes'],
case 'administradorResponsavel': 'bolsistaProdutividade' => Rule::requiredIf((isset($request['cargo']) && $request['cargo'] !== 'Estudante') || (isset($request['cargo']) && $request['cargo'] === 'Estudante' && isset($request['vinculo']) && $request['vinculo'] === 'Pós-doutorando')),
$adminResp = new AdministradorResponsavel(); 'nivel' => ['required_if:bolsistaProdutividade,sim'],
$adminResp->user_id = $user->id; //'nivel' => [(isset($data['cargo']) && $data['cargo'] !== 'Estudante') || (isset($data['cargo']) && $data['cargo'] === 'Estudante' && isset($data['vinculo']) && $data['vinculo'] === 'Pós-doutorando') ? 'required':''],
$adminResp->save(); 'linkLattes' => ['required_with:titulacaoMaxima,anoTitulacao,areaFormacao,bolsistaProdutividade'],
break; 'linkLattes' => ['required_with:titulacaoMaxima,anoTitulacao,areaFormacao,bolsistaProdutividade'],
case 'coordenador': 'linkLattes' => ['required_with:titulacaoMaxima,anoTitulacao,areaFormacao,bolsistaProdutividade'],
$coordenador = new CoordenadorComissao(); 'linkLattes' => [(isset($request['cargo']) && $request['cargo'] !== 'Estudante') || (isset($request['cargo']) && $request['cargo'] === 'Estudante' && isset($request['vinculo']) && $request['vinculo'] === 'Pós-doutorando') ? 'required' : ''],
$coordenador->user_id = $user->id; 'linkLattes' => [(isset($request['cargo']) && $request['cargo'] !== 'Estudante') || (isset($request['cargo']) && $request['cargo'] === 'Estudante' && isset($request['vinculo']) && $request['vinculo'] === 'Pós-doutorando') ? 'link_lattes' : ''],
$coordenador->save(); ]);
break; }
case 'avaliador':
$avaliador = new Avaliador(); if (!($request->senha === $request->confirmar_senha)) {
$avaliador->user_id = $user->id; return redirect()->back()->withErrors(['senha' => 'Senhas diferentes']);
$avaliador->tipo = $request->tipoAvaliador; }
$avaliador->save();
break; $user = new User();
case 'proponente': $user->name = $request->name;
$proponente = new Proponente(); $user->tipo = $request->tipo;
if ($request->SIAPE != null) { $user->cpf = $request->cpf;
$proponente->SIAPE = $request->SIAPE; $user->celular = $request->celular;
} $user->email = $request->email;
$proponente->cargo = $request->cargo; $user->password = bcrypt($request->senha);
if ($request->instituicao != null) {
if ($request->vinculo != 'Outro') { $user->instituicao = $request->instituicao;
$proponente->vinculo = $request->vinculo; } elseif (isset($request->instituicaoSelect) && $request->instituicaoSelect != 'Outra') {
} else { $user->instituicao = $request->instituicaoSelect;
$proponente->vinculo = $request->outro; }
} $user->save();
$proponente->titulacaoMaxima = $request->titulacaoMaxima; switch ($request->tipo) {
$proponente->anoTitulacao = $request->anoTitulacao; case 'administradorResponsavel':
$proponente->areaFormacao = $request->areaFormacao; $adminResp = new AdministradorResponsavel();
$proponente->bolsistaProdutividade = $request->bolsistaProdutividade; $adminResp->user_id = $user->id;
if ($request->bolsistaProdutividade == 'sim') { $adminResp->save();
$proponente->nivel = $request->nivel; break;
} case 'coordenador':
$proponente->linkLattes = $request->linkLattes; $coordenador = new CoordenadorComissao();
$coordenador->user_id = $user->id;
$proponente->user_id = $user->id; $coordenador->save();
$proponente->save(); break;
break; case 'avaliador':
case 'participante': $avaliador = new Avaliador();
$participante = new Participante(); $avaliador->user_id = $user->id;
$participante->user_id = $user->id; $avaliador->tipo = $request->tipoAvaliador;
$participante->save(); $avaliador->save();
break; break;
} case 'proponente':
$proponente = new Proponente();
return redirect(route('admin.usuarios'))->with(['mensagem' => 'Usuário cadastrado com sucesso']); if ($request->SIAPE != null) {
} $proponente->SIAPE = $request->SIAPE;
}
public function edit($id) $proponente->cargo = $request->cargo;
{
$user = User::find($id); if ($request->vinculo != 'Outro') {
$proponente->vinculo = $request->vinculo;
$adminResp = AdministradorResponsavel::where('user_id', '=', $id)->first(); } else {
$avaliador = Avaliador::where('user_id', '=', $id)->first(); $proponente->vinculo = $request->outro;
$proponente = Proponente::where('user_id', '=', $id)->first(); }
$participante = Participante::where('user_id', '=', $id)->first();
$proponente->titulacaoMaxima = $request->titulacaoMaxima;
return view('administrador.editar_user')->with(['user' => $user, $proponente->anoTitulacao = $request->anoTitulacao;
'adminResp' => $adminResp, $proponente->areaFormacao = $request->areaFormacao;
'proponente' => $proponente, $proponente->bolsistaProdutividade = $request->bolsistaProdutividade;
'participante' => $participante, ]); if ($request->bolsistaProdutividade == 'sim') {
} $proponente->nivel = $request->nivel;
}
public function update(Request $request, $id) $proponente->linkLattes = $request->linkLattes;
{
$user = User::find($id); $proponente->user_id = $user->id;
$proponente->save();
if ($request->tipo == 'coordenador') { break;
$validated = $request->validate([ case 'participante':
'name' => ['required', 'string', 'max:255'], $participante = new Participante();
'tipo' => ['required'], $participante->user_id = $user->id;
'email' => ['required', 'string', 'email', 'max:255'], $participante->save();
'instituicao' => ['required_if:instituicaoSelect,Outra', 'max:255'], break;
'instituicaoSelect' => ['required_without:instituicao'], }
'celular' => ($request['celular'] != null ? 'required|string|telefone' : 'nullable'),
'cpf' => ($request['cpf'] != null ? 'required|cpf|unique:users' : 'nullable'), return redirect(route('admin.usuarios'))->with(['mensagem' => 'Usuário cadastrado com sucesso']);
]); }
} elseif ($request->tipo != 'proponente') {
$validated = $request->validate([ public function edit($id)
'name' => ['required', 'string', 'max:255'], {
'tipo' => ['required'], $user = User::find($id);
'email' => ['required', 'string', 'email', 'max:255'],
'instituicao' => ['required_if:instituicaoSelect,Outra', 'max:255'], $adminResp = AdministradorResponsavel::where('user_id', '=', $id)->first();
'instituicaoSelect' => ['required_without:instituicao'], $avaliador = Avaliador::where('user_id', '=', $id)->first();
'celular' => ['required', 'string', 'telefone'], $proponente = Proponente::where('user_id', '=', $id)->first();
'cpf' => ['required', 'cpf'], $participante = Participante::where('user_id', '=', $id)->first();
]);
} else { return view('administrador.editar_user')->with(['user' => $user,
$validated = $request->validate([ 'adminResp' => $adminResp,
'name' => ['required', 'string', 'max:255'], 'proponente' => $proponente,
'email' => ['required', 'string', 'email', 'max:255'], 'participante' => $participante, ]);
'tipo' => ['required'], }
'cpf' => ['required', 'cpf'],
'celular' => ['required', 'string', 'telefone'], public function update(Request $request, $id)
'instituicao' => ['required_if:instituicaoSelect,Outra', 'max:255'], {
'instituicaoSelect' => ['required_without:instituicao'], $user = User::find($id);
'cargo' => ['required'],
'vinculo' => ['required'], if ($request->tipo == 'coordenador') {
'outro' => ['required_if:vinculo,Outro'], $validated = $request->validate([
'titulacaoMaxima' => ['required_with:anoTitulacao,areaFormacao,bolsistaProdutividade'], 'name' => ['required', 'string', 'max:255'],
'titulacaoMaxima' => Rule::requiredIf((isset($request['cargo']) && $request['cargo'] !== 'Estudante') || (isset($request['cargo']) && $request['cargo'] === 'Estudante' && isset($request['vinculo']) && $request['vinculo'] === 'Pós-doutorando')), 'tipo' => ['required'],
'anoTitulacao' => ['required_with:titulacaoMaxima,areaFormacao,bolsistaProdutividade,linkLattes'], 'email' => ['required', 'string', 'email', 'max:255'],
'anoTitulacao' => Rule::requiredIf((isset($request['cargo']) && $request['cargo'] !== 'Estudante') || (isset($request['cargo']) && $request['cargo'] === 'Estudante' && isset($request['vinculo']) && $request['vinculo'] === 'Pós-doutorando')), 'instituicao' => ['required_if:instituicaoSelect,Outra', 'max:255'],
'areaFormacao' => ['required_with:titulacaoMaxima,anoTitulacao,bolsistaProdutividade,linkLattes'], 'instituicaoSelect' => ['required_without:instituicao'],
'areaFormacao' => Rule::requiredIf((isset($request['cargo']) && $request['cargo'] !== 'Estudante') || (isset($request['cargo']) && $request['cargo'] === 'Estudante' && isset($request['vinculo']) && $request['vinculo'] === 'Pós-doutorando')), 'celular' => ($request['celular'] != null ? 'required|string|telefone' : 'nullable'),
'bolsistaProdutividade' => ['required_with:titulacaoMaxima,anoTitulacao,areaFormacao,linkLattes'], 'cpf' => ($request['cpf'] != null ? 'required|cpf|unique:users' : 'nullable'),
'bolsistaProdutividade' => Rule::requiredIf((isset($request['cargo']) && $request['cargo'] !== 'Estudante') || (isset($request['cargo']) && $request['cargo'] === 'Estudante' && isset($request['vinculo']) && $request['vinculo'] === 'Pós-doutorando')), ]);
'nivel' => ['required_if:bolsistaProdutividade,sim'], } elseif ($request->tipo != 'proponente') {
//'nivel' => [(isset($data['cargo']) && $data['cargo'] !== 'Estudante') || (isset($data['cargo']) && $data['cargo'] === 'Estudante' && isset($data['vinculo']) && $data['vinculo'] === 'Pós-doutorando') ? 'required':''], $validated = $request->validate([
'linkLattes' => ['required_with:titulacaoMaxima,anoTitulacao,areaFormacao,bolsistaProdutividade'], 'name' => ['required', 'string', 'max:255'],
'linkLattes' => ['required_with:titulacaoMaxima,anoTitulacao,areaFormacao,bolsistaProdutividade'], 'tipo' => ['required'],
'linkLattes' => ['required_with:titulacaoMaxima,anoTitulacao,areaFormacao,bolsistaProdutividade'], 'email' => ['required', 'string', 'email', 'max:255'],
'linkLattes' => [(isset($request['cargo']) && $request['cargo'] !== 'Estudante') || (isset($request['cargo']) && $request['cargo'] === 'Estudante' && isset($request['vinculo']) && $request['vinculo'] === 'Pós-doutorando') ? 'required' : ''], 'instituicao' => ['required_if:instituicaoSelect,Outra', 'max:255'],
'linkLattes' => [(isset($request['cargo']) && $request['cargo'] !== 'Estudante') || (isset($request['cargo']) && $request['cargo'] === 'Estudante' && isset($request['vinculo']) && $request['vinculo'] === 'Pós-doutorando') ? 'link_lattes' : ''], 'instituicaoSelect' => ['required_without:instituicao'],
]); 'celular' => ['required', 'string', 'telefone'],
} 'cpf' => ['required', 'cpf'],
]);
// if (!(Hash::check($request->senha_atual, $user->password))) { } else {
// return redirect()->back()->withErrors(['senha_atual' => 'Senha atual não correspondente']); $validated = $request->validate([
// } 'name' => ['required', 'string', 'max:255'],
'email' => ['required', 'string', 'email', 'max:255'],
// if (!($request->nova_senha === $request->confirmar_senha)) { 'tipo' => ['required'],
// return redirect()->back()->withErrors(['nova_senha' => 'Senhas diferentes']); 'cpf' => ['required', 'cpf'],
// } 'celular' => ['required', 'string', 'telefone'],
'instituicao' => ['required_if:instituicaoSelect,Outra', 'max:255'],
switch ($request->tipo) { 'instituicaoSelect' => ['required_without:instituicao'],
case 'administradorResponsavel': 'cargo' => ['required'],
$adminResp = AdministradorResponsavel::where('user_id', '=', $id)->first(); 'vinculo' => ['required'],
$adminResp->user_id = $user->id; 'outro' => ['required_if:vinculo,Outro'],
$adminResp->update(); 'titulacaoMaxima' => ['required_with:anoTitulacao,areaFormacao,bolsistaProdutividade'],
break; 'titulacaoMaxima' => Rule::requiredIf((isset($request['cargo']) && $request['cargo'] !== 'Estudante') || (isset($request['cargo']) && $request['cargo'] === 'Estudante' && isset($request['vinculo']) && $request['vinculo'] === 'Pós-doutorando')),
case 'coordenador': 'anoTitulacao' => ['required_with:titulacaoMaxima,areaFormacao,bolsistaProdutividade,linkLattes'],
$coordenador = CoordenadorComissao::where('user_id', '=', $id)->first(); 'anoTitulacao' => Rule::requiredIf((isset($request['cargo']) && $request['cargo'] !== 'Estudante') || (isset($request['cargo']) && $request['cargo'] === 'Estudante' && isset($request['vinculo']) && $request['vinculo'] === 'Pós-doutorando')),
$coordenador->user_id = $user->id; 'areaFormacao' => ['required_with:titulacaoMaxima,anoTitulacao,bolsistaProdutividade,linkLattes'],
$coordenador->update(); 'areaFormacao' => Rule::requiredIf((isset($request['cargo']) && $request['cargo'] !== 'Estudante') || (isset($request['cargo']) && $request['cargo'] === 'Estudante' && isset($request['vinculo']) && $request['vinculo'] === 'Pós-doutorando')),
break; 'bolsistaProdutividade' => ['required_with:titulacaoMaxima,anoTitulacao,areaFormacao,linkLattes'],
case 'avaliador': 'bolsistaProdutividade' => Rule::requiredIf((isset($request['cargo']) && $request['cargo'] !== 'Estudante') || (isset($request['cargo']) && $request['cargo'] === 'Estudante' && isset($request['vinculo']) && $request['vinculo'] === 'Pós-doutorando')),
$avaliador = Avaliador::where('user_id', '=', $id)->first(); 'nivel' => ['required_if:bolsistaProdutividade,sim'],
$avaliador->user_id = $user->id; //'nivel' => [(isset($data['cargo']) && $data['cargo'] !== 'Estudante') || (isset($data['cargo']) && $data['cargo'] === 'Estudante' && isset($data['vinculo']) && $data['vinculo'] === 'Pós-doutorando') ? 'required':''],
$avaliador->update(); 'linkLattes' => ['required_with:titulacaoMaxima,anoTitulacao,areaFormacao,bolsistaProdutividade'],
break; 'linkLattes' => ['required_with:titulacaoMaxima,anoTitulacao,areaFormacao,bolsistaProdutividade'],
case 'proponente': 'linkLattes' => ['required_with:titulacaoMaxima,anoTitulacao,areaFormacao,bolsistaProdutividade'],
$proponente = Proponente::where('user_id', '=', $id)->first(); 'linkLattes' => [(isset($request['cargo']) && $request['cargo'] !== 'Estudante') || (isset($request['cargo']) && $request['cargo'] === 'Estudante' && isset($request['vinculo']) && $request['vinculo'] === 'Pós-doutorando') ? 'required' : ''],
if ($request->SIAPE != null) { 'linkLattes' => [(isset($request['cargo']) && $request['cargo'] !== 'Estudante') || (isset($request['cargo']) && $request['cargo'] === 'Estudante' && isset($request['vinculo']) && $request['vinculo'] === 'Pós-doutorando') ? 'link_lattes' : ''],
$proponente->SIAPE = $request->SIAPE; ]);
} }
$proponente->cargo = $request->cargo;
// if (!(Hash::check($request->senha_atual, $user->password))) {
if ($request->vinculo != 'Outro') { // return redirect()->back()->withErrors(['senha_atual' => 'Senha atual não correspondente']);
$proponente->vinculo = $request->vinculo; // }
} else {
$proponente->vinculo = $request->outro; // if (!($request->nova_senha === $request->confirmar_senha)) {
} // return redirect()->back()->withErrors(['nova_senha' => 'Senhas diferentes']);
// }
$proponente->titulacaoMaxima = $request->titulacaoMaxima;
$proponente->anoTitulacao = $request->anoTitulacao; switch ($request->tipo) {
$proponente->areaFormacao = $request->areaFormacao; case 'administradorResponsavel':
$proponente->bolsistaProdutividade = $request->bolsistaProdutividade; $adminResp = AdministradorResponsavel::where('user_id', '=', $id)->first();
if ($request->bolsistaProdutividade == 'sim') { $adminResp->user_id = $user->id;
$proponente->nivel = $request->nivel; $adminResp->update();
} break;
$proponente->linkLattes = $request->linkLattes; case 'coordenador':
$coordenador = CoordenadorComissao::where('user_id', '=', $id)->first();
$proponente->user_id = $user->id; $coordenador->user_id = $user->id;
$proponente->update(); $coordenador->update();
break; break;
case 'participante': case 'avaliador':
$participante = Participante::where('user_id', '=', $id)->first(); $avaliador = Avaliador::where('user_id', '=', $id)->first();
$participante->user_id = $user->id; $avaliador->user_id = $user->id;
$participante->update(); $avaliador->update();
break; break;
} case 'proponente':
$proponente = Proponente::where('user_id', '=', $id)->first();
$user->name = $request->name; if ($request->SIAPE != null) {
$user->tipo = $request->tipo; $proponente->SIAPE = $request->SIAPE;
$user->email = $request->email; }
$user->cpf = $request->cpf; $proponente->cargo = $request->cargo;
$user->celular = $request->celular;
if ($request->instituicao != null) { if ($request->vinculo != 'Outro') {
$user->instituicao = $request->instituicao; $proponente->vinculo = $request->vinculo;
} elseif (isset($request->instituicaoSelect) && $request->instituicaoSelect != 'Outra') { } else {
$user->instituicao = $request->instituicaoSelect; $proponente->vinculo = $request->outro;
} }
// $user->password = bcrypt($request->nova_senha);
$user->update(); $proponente->titulacaoMaxima = $request->titulacaoMaxima;
$proponente->anoTitulacao = $request->anoTitulacao;
return redirect(route('admin.usuarios'))->with(['mensagem' => 'Usuário atualizado com sucesso']); $proponente->areaFormacao = $request->areaFormacao;
} $proponente->bolsistaProdutividade = $request->bolsistaProdutividade;
if ($request->bolsistaProdutividade == 'sim') {
public function destroy($id) $proponente->nivel = $request->nivel;
{ }
$user = User::find($id); $proponente->linkLattes = $request->linkLattes;
$adminResp = AdministradorResponsavel::where('user_id', '=', $id)->first();
$avaliador = Avaliador::where('user_id', '=', $id)->first(); $proponente->user_id = $user->id;
$proponente = Proponente::where('user_id', '=', $id)->first(); $proponente->update();
$participante = Participante::where('user_id', '=', $id)->first(); break;
case 'participante':
if (!(is_null($adminResp))) { $participante = Participante::where('user_id', '=', $id)->first();
$adminResp->delete(); $participante->user_id = $user->id;
} elseif (!(is_null($avaliador))) { $participante->update();
$avaliador->delete(); break;
} elseif (!(is_null($proponente))) { }
$proponente->delete();
} elseif (!(is_null($participante))) { $user->name = $request->name;
$participante->delete(); $user->tipo = $request->tipo;
} $user->email = $request->email;
$user->cpf = $request->cpf;
$user->delete(); $user->celular = $request->celular;
if ($request->instituicao != null) {
return redirect(route('admin.usuarios'))->with(['mensagem' => 'Usuário deletado com sucesso']); $user->instituicao = $request->instituicao;
} } elseif (isset($request->instituicaoSelect) && $request->instituicaoSelect != 'Outra') {
$user->instituicao = $request->instituicaoSelect;
public function atribuir(Request $request) }
{ // $user->password = bcrypt($request->nova_senha);
$evento = Evento::where('id', $request->evento_id)->first(); $user->update();
$coordenador_id_evento = $evento->coordenadorId;
$coordenador_id = CoordenadorComissao::find($coordenador_id_evento); return redirect(route('admin.usuarios'))->with(['mensagem' => 'Usuário atualizado com sucesso']);
$user = Auth::user(); }
if ((Auth::user()->id != $coordenador_id->user_id) && ($user->tipo != 'administrador')) { public function destroy($id)
return redirect()->back(); {
} $user = User::find($id);
$adminResp = AdministradorResponsavel::where('user_id', '=', $id)->first();
return view('administrador.atribuirAvaliadores', ['evento' => $evento]); $avaliador = Avaliador::where('user_id', '=', $id)->first();
} $proponente = Proponente::where('user_id', '=', $id)->first();
$participante = Participante::where('user_id', '=', $id)->first();
public function selecionar(Request $request)
{ if (!(is_null($adminResp))) {
$user = Auth::user(); $adminResp->delete();
} elseif (!(is_null($avaliador))) {
$evento = Evento::where('id', $request->evento_id)->first(); $avaliador->delete();
$coordenador_id_evento = $evento->coordenadorId; } elseif (!(is_null($proponente))) {
$coordenador_id = CoordenadorComissao::find($coordenador_id_evento); $proponente->delete();
$grandeAreas = GrandeArea::orderBy('nome')->get(); } elseif (!(is_null($participante))) {
$areasTematicas = AreaTematica::orderBy('nome')->get(); $participante->delete();
$avalSelecionados = $evento->avaliadors; }
$avalNaoSelecionadosId = $evento->avaliadors->pluck('id');
$trabalhos = $evento->trabalhos->whereNotIn('status', 'rascunho'); $user->delete();
$avaliadores = Avaliador::whereNotIn('id', $avalNaoSelecionadosId)->get();
return redirect(route('admin.usuarios'))->with(['mensagem' => 'Usuário deletado com sucesso']);
//$avaliadores = Avaliador::join('naturezas_avaliadors', 'avaliadors.id', '=' ,'naturezas_avaliadors.avaliador_id')->whereNotIn('avaliadors.id', $avalNaoSelecionadosId) }
// ->where('naturezas_avaliadors.natureza_id', $evento->natureza_id)
// ->get(); public function atribuir(Request $request)
{
$avaliadores_extensao = collect(); $evento = Evento::where('id', $request->evento_id)->first();
$avaliadores_others = collect(); $coordenador_id_evento = $evento->coordenadorId;
$coordenador_id = CoordenadorComissao::find($coordenador_id_evento);
foreach($avaliadores as $avaliador){ $user = Auth::user();
if($evento->natureza_id == 3 && count($avaliador->areaTematicas) > 0){
$avaliadores_extensao->push($avaliador); if ((Auth::user()->id != $coordenador_id->user_id) && ($user->tipo != 'administrador')) {
}elseif($evento->natureza_id != 3 && count($avaliador->areaTematicas) == 0){ return redirect()->back();
$avaliadores_others->push($avaliador); }
}
} return view('administrador.atribuirAvaliadores', ['evento' => $evento]);
}
if($evento->natureza_id == 3){
$avaliadores = $avaliadores_extensao; public function selecionar(Request $request)
} else { {
$avaliadores = $avaliadores_others; $user = Auth::user();
}
$evento = Evento::where('id', $request->evento_id)->first();
$coordenador_id_evento = $evento->coordenadorId;
if ((Auth::user()->id != $coordenador_id->user_id) && ($user->tipo != 'administrador')) { $coordenador_id = CoordenadorComissao::find($coordenador_id_evento);
return redirect()->back(); $grandeAreas = GrandeArea::orderBy('nome')->get();
} $areasTematicas = AreaTematica::orderBy('nome')->get();
$avalSelecionados = $evento->avaliadors;
return view('administrador.selecionarAvaliadores', [ $avalNaoSelecionadosId = $evento->avaliadors->pluck('id');
'evento' => $evento, $trabalhos = $evento->trabalhos->whereNotIn('status', 'rascunho');
'avaliadores' => $avaliadores, $avaliadores = Avaliador::whereNotIn('id', $avalNaoSelecionadosId)->get();
'avalSelecionados' => $avalSelecionados,
'grandeAreas' => $grandeAreas, //$avaliadores = Avaliador::join('naturezas_avaliadors', 'avaliadors.id', '=' ,'naturezas_avaliadors.avaliador_id')->whereNotIn('avaliadors.id', $avalNaoSelecionadosId)
'trabalhos' => $trabalhos, // ->where('naturezas_avaliadors.natureza_id', $evento->natureza_id)
'areasTematicas' => $areasTematicas, // ->get();
]);
} $avaliadores_extensao = collect();
$avaliadores_others = collect();
public function projetos(Request $request)
{ foreach($avaliadores as $avaliador){
$evento = Evento::where('id', $request->evento_id)->first(); if($evento->natureza_id == 3 && count($avaliador->areaTematicas) > 0){
$trabalhos = $evento->trabalhos; $avaliadores_extensao->push($avaliador);
$grandesAreas = GrandeArea::orderBy('nome')->get(); }elseif($evento->natureza_id != 3 && count($avaliador->areaTematicas) == 0){
$areasTematicas = AreaTematica::orderBy('nome')->get(); $avaliadores_others->push($avaliador);
$avaliadores = $evento->avaliadors; }
foreach ($trabalhos as $key => $trabalho) { }
$avalSelecionadosId = $trabalho->avaliadors->pluck('id');
$avalProjeto = Avaliador::whereNotIn('id', $avalSelecionadosId)->get(); if($evento->natureza_id == 3){
$trabalho->aval = $avalProjeto; $avaliadores = $avaliadores_extensao;
} } else {
$avaliadores = $avaliadores_others;
//dd($avaliadores->teste); }
return view('administrador.selecionarProjetos', [
'evento' => $evento, if ((Auth::user()->id != $coordenador_id->user_id) && ($user->tipo != 'administrador')) {
'trabalhos' => $trabalhos, return redirect()->back();
'avaliadores' => $avaliadores, }
'grandesAreas' => $grandesAreas,
'areasTematicas' => $areasTematicas return view('administrador.selecionarAvaliadores', [
]); 'evento' => $evento,
} 'avaliadores' => $avaliadores,
'avalSelecionados' => $avalSelecionados,
public function adicionar(Request $request) 'grandeAreas' => $grandeAreas,
{ 'trabalhos' => $trabalhos,
$evento = Evento::where('id', $request->evento_id)->first(); 'areasTematicas' => $areasTematicas,
$aval = Avaliador::where('id', $request->avaliador_id)->first(); ]);
$aval->eventos()->attach($evento); }
$aval->save();
$user = $aval->user()->first(); public function projetos(Request $request)
{
$subject = 'Convite para avaliar projetos da UFAPE'; $evento = Evento::where('id', $request->evento_id)->first();
Mail::to($user->email) $trabalhos = $evento->trabalhos;
->send(new EmailParaUsuarioNaoCadastrado($user->name, ' ', 'Avaliador-Cadastrado', $evento->nome, ' ', $subject, $evento->tipo, $evento->natureza_id)); $grandesAreas = GrandeArea::orderBy('nome')->get();
$areasTematicas = AreaTematica::orderBy('nome')->get();
return redirect()->back(); $avaliadores = $evento->avaliadors;
} foreach ($trabalhos as $key => $trabalho) {
$avalSelecionadosId = $trabalho->avaliadors->pluck('id');
public function remover(Request $request) $avalProjeto = Avaliador::whereNotIn('id', $avalSelecionadosId)->get();
{ $trabalho->aval = $avalProjeto;
$evento = Evento::where('id', $request->evento_id)->first(); }
$aval = Avaliador::where('id', $request->avaliador_id)->first();
$aval->eventos()->detach($evento); //dd($avaliadores->teste);
$aval->trabalhos()->detach();
$aval->save(); return view('administrador.selecionarProjetos', [
'evento' => $evento,
return redirect()->back(); 'trabalhos' => $trabalhos,
} 'avaliadores' => $avaliadores,
'grandesAreas' => $grandesAreas,
public function removerProjAval(Request $request) 'areasTematicas' => $areasTematicas
{ ]);
//Acesso 1 = Ad Hoc, 2 - Interno, 3 - Interno e Ad Hoc }
$aval = Avaliador::where('id', $request->avaliador_id)->first();
$trabalho = Trabalho::where('id', $request->trabalho_id)->first(); public function adicionar(Request $request)
if ($request->flag == 0) { {
if (($aval->tipo == 'Interno' && $aval->trabalhos()->where('trabalho_id', $trabalho->id)->first()->pivot->acesso == 3) || ($aval->tipo == null && $aval->trabalhos()->where('trabalho_id', $trabalho->id)->first()->pivot->acesso == 3 && ($aval->user->instituicao == 'UFAPE' || $aval->user->instituicao == 'Universidade Federal do Agreste de Pernambuco'))) { $evento = Evento::where('id', $request->evento_id)->first();
$aval->trabalhos() $aval = Avaliador::where('id', $request->avaliador_id)->first();
->updateExistingPivot($trabalho->id, ['acesso' => 2]); $aval->eventos()->attach($evento);
} else { $aval->save();
$aval->trabalhos()->detach($trabalho); $user = $aval->user()->first();
}
} else { $subject = 'Convite para avaliar projetos da UFAPE';
if (($aval->tipo == 'Interno' && $aval->trabalhos()->where('trabalho_id', $trabalho->id)->first()->pivot->acesso == 3) || ($aval->tipo == null && $aval->trabalhos()->where('trabalho_id', $trabalho->id)->first()->pivot->acesso == 3 && ($aval->user->instituicao == 'UFAPE' || $aval->user->instituicao == 'Universidade Federal do Agreste de Pernambuco'))) { Mail::to($user->email)
$aval->trabalhos() ->send(new EmailParaUsuarioNaoCadastrado($user->name, ' ', 'Avaliador-Cadastrado', $evento->nome, ' ', $subject, $evento->tipo, $evento->natureza_id));
->updateExistingPivot($trabalho->id, ['acesso' => 1]);
} else { return redirect()->back();
$aval->trabalhos()->detach($trabalho); }
}
} public function remover(Request $request)
{
if ($trabalho->status === 'avaliado') { $evento = Evento::where('id', $request->evento_id)->first();
$trabalho->status = 'submetido'; $aval = Avaliador::where('id', $request->avaliador_id)->first();
$trabalho->save(); $aval->eventos()->detach($evento);
} $aval->trabalhos()->detach();
$aval->save();
$aval->save();
return redirect()->back();
return redirect()->back(); }
}
public function removerProjAval(Request $request)
public function buscar(Request $request) {
{ //Acesso 1 = Ad Hoc, 2 - Interno, 3 - Interno e Ad Hoc
$trabalho = Trabalho::where('id', $request->item)->first(); $aval = Avaliador::where('id', $request->avaliador_id)->first();
$avalSelecionadosId = $trabalho->avaliadors->pluck('id'); $trabalho = Trabalho::where('id', $request->trabalho_id)->first();
$avalProjeto = Avaliador::whereNotIn('id', $avalSelecionadosId)->get(); if ($request->flag == 0) {
if (($aval->tipo == 'Interno' && $aval->trabalhos()->where('trabalho_id', $trabalho->id)->first()->pivot->acesso == 3) || ($aval->tipo == null && $aval->trabalhos()->where('trabalho_id', $trabalho->id)->first()->pivot->acesso == 3 && ($aval->user->instituicao == 'UFAPE' || $aval->user->instituicao == 'Universidade Federal do Agreste de Pernambuco'))) {
//dd($avaliadores); $aval->trabalhos()
->updateExistingPivot($trabalho->id, ['acesso' => 2]);
return response()->json($avalProjeto); } else {
} $aval->trabalhos()->detach($trabalho);
}
public function atribuicaoProjeto(Request $request) } else {
{ if (($aval->tipo == 'Interno' && $aval->trabalhos()->where('trabalho_id', $trabalho->id)->first()->pivot->acesso == 3) || ($aval->tipo == null && $aval->trabalhos()->where('trabalho_id', $trabalho->id)->first()->pivot->acesso == 3 && ($aval->user->instituicao == 'UFAPE' || $aval->user->instituicao == 'Universidade Federal do Agreste de Pernambuco'))) {
$trabalho = Trabalho::where('id', $request->trabalho_id)->first(); $aval->trabalhos()
$evento = Evento::where('id', $request->evento_id)->first(); ->updateExistingPivot($trabalho->id, ['acesso' => 1]);
} else {
if ($request->avaliadores_internos_id != null) { $aval->trabalhos()->detach($trabalho);
foreach ($request->avaliadores_internos_id as $avaliador) { }
$aval = Avaliador::find($avaliador); }
if ($aval->trabalhos()->where('trabalho_id', $trabalho->id)->first() != null) {
$aval->trabalhos() if ($trabalho->status === 'avaliado') {
->updateExistingPivot($trabalho->id, ['acesso' => 3]); $trabalho->status = 'submetido';
} else { $trabalho->save();
$trabalho->avaliadors()->attach($aval, ['acesso' => 2]); }
$evento->avaliadors()->syncWithoutDetaching($aval);
} $aval->save();
}
} return redirect()->back();
}
if ($request->avaliadores_externos_id != null) {
foreach ($request->avaliadores_externos_id as $avaliador) { public function buscar(Request $request)
$aval = Avaliador::find($avaliador); {
if (Avaliador::where('id', $avaliador)->where('tipo', 'Interno')->count() > 0 || (Avaliador::where('id', $avaliador)->where('tipo', null)->count() > 0 && (($aval->user->instituicao == 'UFAPE' || $aval->user->instituicao == 'Universidade Federal do Agreste de Pernambuco')))) { $trabalho = Trabalho::where('id', $request->item)->first();
if ($aval->trabalhos()->where('trabalho_id', $trabalho->id)->first() != null) { $avalSelecionadosId = $trabalho->avaliadors->pluck('id');
$aval->trabalhos() $avalProjeto = Avaliador::whereNotIn('id', $avalSelecionadosId)->get();
->updateExistingPivot($trabalho->id, ['acesso' => 3]);
} else { //dd($avaliadores);
$trabalho->avaliadors()->attach($aval, ['acesso' => 1]);
$evento->avaliadors()->syncWithoutDetaching($aval); return response()->json($avalProjeto);
} }
} else {
$trabalho->avaliadors()->attach($aval, ['acesso' => 1]); public function atribuicaoProjeto(Request $request)
$evento->avaliadors()->syncWithoutDetaching($aval); {
} $trabalho = Trabalho::where('id', $request->trabalho_id)->first();
} $evento = Evento::where('id', $request->evento_id)->first();
}
if ($request->avaliadores_internos_id != null) {
if ($request->avaliadores_externos_id == null & $request->avaliadores_internos_id == null) { foreach ($request->avaliadores_internos_id as $avaliador) {
redirect()->back()->with(['error' => 'Selecione ao menos um avaliador.', 'trabalho' => $trabalho->id]); $aval = Avaliador::find($avaliador);
} if ($aval->trabalhos()->where('trabalho_id', $trabalho->id)->first() != null) {
$aval->trabalhos()
$avaliadores = Avaliador::whereIn('id', (array) $request->avaliadores_externos_id) ->updateExistingPivot($trabalho->id, ['acesso' => 3]);
->orWhereIn('id', (array) $request->avaliadores_internos_id)->get(); } else {
$trabalho->save(); $trabalho->avaliadors()->attach($aval, ['acesso' => 2]);
$evento->avaliadors()->syncWithoutDetaching($aval);
foreach ($avaliadores as $avaliador) { }
$userTemp = User::find($avaliador->user->id); }
}
$notificacao = Notificacao::create([
'remetente_id' => Auth::user()->id, if ($request->avaliadores_externos_id != null) {
'destinatario_id' => $avaliador->user_id, foreach ($request->avaliadores_externos_id as $avaliador) {
'trabalho_id' => $request->trabalho_id, $aval = Avaliador::find($avaliador);
'lido' => false, if (Avaliador::where('id', $avaliador)->where('tipo', 'Interno')->count() > 0 || (Avaliador::where('id', $avaliador)->where('tipo', null)->count() > 0 && (($aval->user->instituicao == 'UFAPE' || $aval->user->instituicao == 'Universidade Federal do Agreste de Pernambuco')))) {
'tipo' => 5, if ($aval->trabalhos()->where('trabalho_id', $trabalho->id)->first() != null) {
]); $aval->trabalhos()
$notificacao->save(); ->updateExistingPivot($trabalho->id, ['acesso' => 3]);
Notification::send($userTemp, new AtribuicaoAvaliadorExternoNotification($userTemp, $trabalho, $evento->formAvaliacaoExterno, $avaliador->trabalhos()->where('trabalho_id', $trabalho->id)->first()->pivot->acesso)); } else {
} $trabalho->avaliadors()->attach($aval, ['acesso' => 1]);
$evento->avaliadors()->syncWithoutDetaching($aval);
return redirect()->back(); }
} } else {
$trabalho->avaliadors()->attach($aval, ['acesso' => 1]);
public function enviarConviteEAtribuir(Request $request) $evento->avaliadors()->syncWithoutDetaching($aval);
{ }
$evento = Evento::where('id', $request->evento_id)->first(); }
$nomeAvaliador = $request->nomeAvaliador; }
$emailAvaliador = $request->emailAvaliador;
$area = Area::where('id', $request->area_id)->first(); if ($request->avaliadores_externos_id == null & $request->avaliadores_internos_id == null) {
$user = User::where('email', $emailAvaliador)->first(); redirect()->back()->with(['error' => 'Selecione ao menos um avaliador.', 'trabalho' => $trabalho->id]);
$areaTematica = AreaTematica::find($request->areasTemeticas); }
if ($request->instituicao == 'ufape') { $avaliadores = Avaliador::whereIn('id', (array) $request->avaliadores_externos_id)
$nomeInstituicao = 'Universidade Federal do Agreste de Pernambuco'; ->orWhereIn('id', (array) $request->avaliadores_internos_id)->get();
$externoInterno = 'Interno'; $trabalho->save();
} else {
$nomeInstituicao = $request->outra; foreach ($avaliadores as $avaliador) {
$externoInterno = 'Externo'; $userTemp = User::find($avaliador->user->id);
}
if (isset($user)) { $notificacao = Notificacao::create([
$passwordTemporario = Str::random(8); 'remetente_id' => Auth::user()->id,
$subject = 'Convite para avaliar projetos da UFAPE'; 'destinatario_id' => $avaliador->user_id,
Mail::to($emailAvaliador) 'trabalho_id' => $request->trabalho_id,
->send(new EmailParaUsuarioNaoCadastrado($nomeAvaliador, ' ', 'Avaliador-Cadastrado', $evento->nome, $passwordTemporario, $subject, $evento->tipo, $evento->natureza_id)); 'lido' => false,
} else { 'tipo' => 5,
$passwordTemporario = Str::random(8); ]);
$subject = 'Convite para avaliar projetos da UFAPE'; $notificacao->save();
Mail::to($emailAvaliador) Notification::send($userTemp, new AtribuicaoAvaliadorExternoNotification($userTemp, $trabalho, $evento->formAvaliacaoExterno, $avaliador->trabalhos()->where('trabalho_id', $trabalho->id)->first()->pivot->acesso));
->send(new EmailParaUsuarioNaoCadastrado($nomeAvaliador, ' ', 'Avaliador', $evento->nome, $passwordTemporario, $subject, $evento->tipo, $evento->natureza_id)); }
$user = User::create([
'email' => $emailAvaliador, return redirect()->back();
'password' => bcrypt($passwordTemporario), }
'usuarioTemp' => false,
'name' => $nomeAvaliador, public function enviarConviteEAtribuir(Request $request)
'tipo' => 'avaliador', {
'instituicao' => $nomeInstituicao, $evento = Evento::where('id', $request->evento_id)->first();
]); $nomeAvaliador = $request->nomeAvaliador;
$emailAvaliador = $request->emailAvaliador;
$user->markEmailAsVerified(); $area = Area::where('id', $request->area_id)->first();
} $user = User::where('email', $emailAvaliador)->first();
$areaTematica = AreaTematica::find($request->areasTemeticas);
$trabalho = Trabalho::where('id', $request->trabalho_id)->first();
if ($request->instituicao == 'ufape') {
if ($user->avaliadors == null) { $nomeInstituicao = 'Universidade Federal do Agreste de Pernambuco';
$avaliador = new Avaliador(); $externoInterno = 'Interno';
$avaliador->tipo = $externoInterno; } else {
$avaliador->save(); $nomeInstituicao = $request->outra;
$avaliador->area()->associate($area); $externoInterno = 'Externo';
$avaliador->user()->associate($user); }
$avaliador->eventos()->attach($evento); if (isset($user)) {
$user->save(); $passwordTemporario = Str::random(8);
$avaliador->save(); $subject = 'Convite para avaliar projetos da UFAPE';
} else { Mail::to($emailAvaliador)
$avaliador = $user->avaliadors; ->send(new EmailParaUsuarioNaoCadastrado($nomeAvaliador, ' ', 'Avaliador-Cadastrado', $evento->nome, $passwordTemporario, $subject, $evento->tipo, $evento->natureza_id));
$avaliador->eventos()->attach($evento); } else {
$user->save(); $passwordTemporario = Str::random(8);
$avaliador->save(); $subject = 'Convite para avaliar projetos da UFAPE';
} Mail::to($emailAvaliador)
->send(new EmailParaUsuarioNaoCadastrado($nomeAvaliador, ' ', 'Avaliador', $evento->nome, $passwordTemporario, $subject, $evento->tipo, $evento->natureza_id));
if($evento->natureza_id == 3){ $user = User::create([
$avaliador->areaTematicas()->sync($areaTematica); 'email' => $emailAvaliador,
} 'password' => bcrypt($passwordTemporario),
'usuarioTemp' => false,
if ($request->instituicao == 'ufape') { 'name' => $nomeAvaliador,
$trabalho->avaliadors()->attach($avaliador, ['acesso' => 2]); 'tipo' => 'avaliador',
$evento->avaliadors()->syncWithoutDetaching($avaliador); 'instituicao' => $nomeInstituicao,
} else { ]);
$trabalho->avaliadors()->attach($avaliador, ['acesso' => 1]);
$evento->avaliadors()->syncWithoutDetaching($avaliador); $user->markEmailAsVerified();
} }
$trabalho->save(); $trabalho = Trabalho::where('id', $request->trabalho_id)->first();
$notificacao = Notificacao::create([ if ($user->avaliadors == null) {
'remetente_id' => Auth::user()->id, $avaliador = new Avaliador();
'destinatario_id' => $avaliador->user_id, $avaliador->tipo = $externoInterno;
'trabalho_id' => $request->trabalho_id, $avaliador->save();
'lido' => false, $avaliador->area()->associate($area);
'tipo' => 5, $avaliador->user()->associate($user);
]); $avaliador->eventos()->attach($evento);
$notificacao->save(); $user->save();
$avaliador->save();
return redirect()->back(); } else {
} $avaliador = $user->avaliadors;
$avaliador->eventos()->attach($evento);
public function reenviarConviteAtribuicaoProjeto(Request $request) $user->save();
{ $avaliador->save();
$evento = Evento::where('id', $request->evento_id)->first(); }
$avaliador = Avaliador::where('id', $request->avaliador_id)->first();
if ($avaliador->user->avaliadors->eventos->where('id', $evento->id)->first()->pivot->convite != true) { if($evento->natureza_id == 3){
$avaliador->user->avaliadors->eventos()->updateExistingPivot($evento->id, ['convite' => null]); $avaliador->areaTematicas()->sync($areaTematica);
} }
$notificacao = Notificacao::create([ if ($request->instituicao == 'ufape') {
'remetente_id' => Auth::user()->id, $trabalho->avaliadors()->attach($avaliador, ['acesso' => 2]);
'destinatario_id' => $avaliador->user_id, $evento->avaliadors()->syncWithoutDetaching($avaliador);
'trabalho_id' => $request->trabalho_id, } else {
'lido' => false, $trabalho->avaliadors()->attach($avaliador, ['acesso' => 1]);
'tipo' => 5, $evento->avaliadors()->syncWithoutDetaching($avaliador);
]); }
$notificacao->save();
$trabalho->save();
$trabalho = Trabalho::where('id', $request->trabalho_id)->first();
$subject = 'Convite para avaliar projetos da UFAPE - Reenvio'; $notificacao = Notificacao::create([
Mail::to($avaliador->user->email) 'remetente_id' => Auth::user()->id,
->send(new EmailLembrete($avaliador->user->name, $subject, $trabalho->titulo, $evento->nome, $evento->tipo, $evento->natureza_id, $evento->formAvaliacaoExterno, $avaliador->trabalhos()->where('trabalho_id', $trabalho->id)->first()->pivot->acesso)); 'destinatario_id' => $avaliador->user_id,
'trabalho_id' => $request->trabalho_id,
return redirect()->back(); 'lido' => false,
} 'tipo' => 5,
]);
public function enviarConvite(Request $request) $notificacao->save();
{
$evento = Evento::where('id', $request->evento_id)->first(); return redirect()->back();
$nomeAvaliador = $request->nomeAvaliador; }
$emailAvaliador = $request->emailAvaliador;
$area = Area::where('id', $request->area_id)->first(); public function reenviarConviteAtribuicaoProjeto(Request $request)
$user = User::where('email', $emailAvaliador)->first(); {
$areaTematica = AreaTematica::find($request->areasTemeticas); $evento = Evento::where('id', $request->evento_id)->first();
$avaliador = Avaliador::where('id', $request->avaliador_id)->first();
if ($request->instituicao == 'ufape') { if ($avaliador->user->avaliadors->eventos->where('id', $evento->id)->first()->pivot->convite != true) {
$nomeInstituicao = 'Universidade Federal do Agreste de Pernambuco'; $avaliador->user->avaliadors->eventos()->updateExistingPivot($evento->id, ['convite' => null]);
$externoInterno = 'Interno'; }
} else {
$nomeInstituicao = $request->outra; $notificacao = Notificacao::create([
$externoInterno = 'Externo'; 'remetente_id' => Auth::user()->id,
} 'destinatario_id' => $avaliador->user_id,
'trabalho_id' => $request->trabalho_id,
//existe o caso de enviar o convite de novo para um mesmo usuário 'lido' => false,
// if(isset($user->avaliadors->eventos->where('id', $evento->id)->first()->pivot->convite) ){ 'tipo' => 5,
// return redirect()->back()->with(['mensagem' => 'Usuário já recebeu um convite e está pendente']); ]);
// } $notificacao->save();
if (isset($user)) { $trabalho = Trabalho::where('id', $request->trabalho_id)->first();
$passwordTemporario = Str::random(8); $subject = 'Convite para avaliar projetos da UFAPE - Reenvio';
$subject = 'Convite para avaliar projetos da UFAPE'; Mail::to($avaliador->user->email)
Mail::to($emailAvaliador) ->send(new EmailLembrete($avaliador->user->name, $subject, $trabalho->titulo, $evento->nome, $evento->tipo, $evento->natureza_id, $evento->formAvaliacaoExterno, $avaliador->trabalhos()->where('trabalho_id', $trabalho->id)->first()->pivot->acesso));
->send(new EmailParaUsuarioNaoCadastrado($nomeAvaliador, ' ', 'Avaliador-Cadastrado', $evento->nome, $passwordTemporario, $subject, $evento->tipo, $evento->natureza_id));
} else { return redirect()->back();
$passwordTemporario = Str::random(8); }
$subject = 'Convite para avaliar projetos da UFAPE';
Mail::to($emailAvaliador) public function enviarConvite(Request $request)
->send(new EmailParaUsuarioNaoCadastrado($nomeAvaliador, ' ', 'Avaliador', $evento->nome, $passwordTemporario, $subject, $evento->tipo, $evento->natureza_id)); {
$user = User::create([ $evento = Evento::where('id', $request->evento_id)->first();
'email' => $emailAvaliador, $nomeAvaliador = $request->nomeAvaliador;
'password' => bcrypt($passwordTemporario), $emailAvaliador = $request->emailAvaliador;
'usuarioTemp' => false, $area = Area::where('id', $request->area_id)->first();
'name' => $nomeAvaliador, $user = User::where('email', $emailAvaliador)->first();
'tipo' => 'avaliador', $areaTematica = AreaTematica::find($request->areasTemeticas);
'instituicao' => $nomeInstituicao,
]); if ($request->instituicao == 'ufape') {
$nomeInstituicao = 'Universidade Federal do Agreste de Pernambuco';
$user->markEmailAsVerified(); $externoInterno = 'Interno';
} } else {
$nomeInstituicao = $request->outra;
if ($user->avaliadors == null) { $externoInterno = 'Externo';
$avaliador = new Avaliador(); }
$avaliador->tipo = $externoInterno;
$avaliador->save(); //existe o caso de enviar o convite de novo para um mesmo usuário
$avaliador->area()->associate($area); // if(isset($user->avaliadors->eventos->where('id', $evento->id)->first()->pivot->convite) ){
$avaliador->user()->associate($user); // return redirect()->back()->with(['mensagem' => 'Usuário já recebeu um convite e está pendente']);
$avaliador->eventos()->attach($evento); // }
if($evento->natureza_id == 3){
$avaliador->naturezas()->sync($evento->natureza_id); if (isset($user)) {
$avaliador->areaTematicas()->sync($areaTematica); $passwordTemporario = Str::random(8);
} $subject = 'Convite para avaliar projetos da UFAPE';
$user->save(); Mail::to($emailAvaliador)
$avaliador->save(); ->send(new EmailParaUsuarioNaoCadastrado($nomeAvaliador, ' ', 'Avaliador-Cadastrado', $evento->nome, $passwordTemporario, $subject, $evento->tipo, $evento->natureza_id));
} else { } else {
$avaliador = $user->avaliadors; $passwordTemporario = Str::random(8);
$avaliador->eventos()->attach($evento); $subject = 'Convite para avaliar projetos da UFAPE';
if($evento->natureza_id == 3){ Mail::to($emailAvaliador)
$avaliador->naturezas()->sync($evento->natureza_id); ->send(new EmailParaUsuarioNaoCadastrado($nomeAvaliador, ' ', 'Avaliador', $evento->nome, $passwordTemporario, $subject, $evento->tipo, $evento->natureza_id));
$avaliador->areaTematicas()->sync($areaTematica); $user = User::create([
} 'email' => $emailAvaliador,
$user->save(); 'password' => bcrypt($passwordTemporario),
$avaliador->save(); 'usuarioTemp' => false,
} 'name' => $nomeAvaliador,
'tipo' => 'avaliador',
return redirect()->back(); 'instituicao' => $nomeInstituicao,
} ]);
public function reenviarConvite(Request $request) $user->markEmailAsVerified();
{ }
$evento = Evento::where('id', $request->evento_id)->first();
$avaliador = Avaliador::where('id', $request->avaliador_id)->first(); if ($user->avaliadors == null) {
$user = $avaliador->user()->first(); $avaliador = new Avaliador();
$avaliador->tipo = $externoInterno;
$subject = 'Convite para avaliar projetos da UFAPE - Reenvio'; $avaliador->save();
Mail::to($user->email) $avaliador->area()->associate($area);
->send(new EmailParaUsuarioNaoCadastrado($user->name, ' ', 'Avaliador-Cadastrado', $evento->nome, ' ', $subject, $evento->tipo, $evento->natureza_id)); $avaliador->user()->associate($user);
$avaliador->eventos()->attach($evento);
return redirect()->back(); if($evento->natureza_id == 3){
} $avaliador->naturezas()->sync($evento->natureza_id);
$avaliador->areaTematicas()->sync($areaTematica);
// public function baixarAnexo(Request $request) { }
// return Storage::download($request->anexo); $user->save();
// } $avaliador->save();
} else {
public function baixarModeloAvaliacao() $avaliador = $user->avaliadors;
{ $avaliador->eventos()->attach($evento);
$file = public_path().'/ModeloFormularioAvaliadorExternoPIBIC.docx'; if($evento->natureza_id == 3){
$headers = ['Content-Type: application/docx']; $avaliador->naturezas()->sync($evento->natureza_id);
ob_end_clean(); $avaliador->areaTematicas()->sync($areaTematica);
}
return response()->download($file, 'ModeloFormularioAvaliadorExternoPIBIC.docx', $headers); $user->save();
} $avaliador->save();
}
public function imprimirResultados(Request $request)
{ return redirect()->back();
$evento = Evento::where('id', $request->id)->first(); }
// Ampla Concorrencia
$trabalhosAmpla = Trabalho::where('evento_id', $evento->id) public function reenviarConvite(Request $request)
->where('modalidade', 'AmplaConcorrencia')->get(); {
$evento = Evento::where('id', $request->evento_id)->first();
foreach ($trabalhosAmpla as $trabalho) { $avaliador = Avaliador::where('id', $request->avaliador_id)->first();
$trabalho->pontuacao = 0; $user = $avaliador->user()->first();
$cont = 0;
// Caso especial do PIBEX onde a pontuação fica no Ad Hoc $subject = 'Convite para avaliar projetos da UFAPE - Reenvio';
if ($evento->tipo == 'PIBEX') { Mail::to($user->email)
foreach ($trabalho->avaliadors as $avaliador) { ->send(new EmailParaUsuarioNaoCadastrado($user->name, ' ', 'Avaliador-Cadastrado', $evento->nome, ' ', $subject, $evento->tipo, $evento->natureza_id));
if (($avaliador->trabalhos()->where('trabalho_id', $trabalho->id)->first()->pivot->acesso == 1 ||
$avaliador->trabalhos()->where('trabalho_id', $trabalho->id)->first()->pivot->acesso == 3) && return redirect()->back();
$avaliador->trabalhos()->where('trabalho_id', $trabalho->id)->first()->pivot->pontuacao != null) { }
$trabalho->pontuacao += $avaliador->trabalhos()->where('trabalho_id', $trabalho->id)->first()->pivot->pontuacao;
++$cont; // public function baixarAnexo(Request $request) {
} // return Storage::download($request->anexo);
} // }
} else {
foreach ($trabalho->avaliadors as $avaliador) { public function baixarModeloAvaliacao()
if ($avaliador->tipo == 'Interno') { {
$parecerInterno = ParecerInterno::where([['avaliador_id', $avaliador->id], ['trabalho_id', $trabalho->id]])->first(); $file = public_path().'/ModeloFormularioAvaliadorExternoPIBIC.docx';
if ($parecerInterno != null) { $headers = ['Content-Type: application/docx'];
$trabalho->pontuacao += $parecerInterno->statusAnexoPlanilhaPontuacao; ob_end_clean();
++$cont;
} return response()->download($file, 'ModeloFormularioAvaliadorExternoPIBIC.docx', $headers);
} }
}
} public function imprimirResultados(Request $request)
if ($trabalho->pontuacao != 0) { {
$trabalho->pontuacao = number_format(($trabalho->pontuacao / $cont), 2, ',', ''); $evento = Evento::where('id', $request->id)->first();
} // Ampla Concorrencia
} $trabalhosAmpla = Trabalho::where('evento_id', $evento->id)
$trabalhosAmpla = $trabalhosAmpla->sort(function ($item, $next) { ->where('modalidade', 'AmplaConcorrencia')->get();
return $item->pontuacao >= $next->pontuacao ? -1 : 1;
}); foreach ($trabalhosAmpla as $trabalho) {
$trabalho->pontuacao = 0;
// Recém Doutor $cont = 0;
$trabalhosDoutor = Trabalho::where('evento_id', $evento->id) // Caso especial do PIBEX onde a pontuação fica no Ad Hoc
->where('modalidade', 'RecemDoutor')->get(); if ($evento->tipo == 'PIBEX') {
foreach ($trabalhosDoutor as $trabalho) { foreach ($trabalho->avaliadors as $avaliador) {
$trabalho->pontuacao = 0; if (($avaliador->trabalhos()->where('trabalho_id', $trabalho->id)->first()->pivot->acesso == 1 ||
$cont = 0; $avaliador->trabalhos()->where('trabalho_id', $trabalho->id)->first()->pivot->acesso == 3) &&
// Caso especial do PIBEX onde a pontuação fica no Ad Hoc $avaliador->trabalhos()->where('trabalho_id', $trabalho->id)->first()->pivot->pontuacao != null) {
if ($evento->tipo == 'PIBEX') { $trabalho->pontuacao += $avaliador->trabalhos()->where('trabalho_id', $trabalho->id)->first()->pivot->pontuacao;
foreach ($trabalho->avaliadors as $avaliador) { ++$cont;
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) { } else {
$trabalho->pontuacao += $avaliador->trabalhos()->where('trabalho_id', $trabalho->id)->first()->pivot->pontuacao; foreach ($trabalho->avaliadors as $avaliador) {
++$cont; if ($avaliador->tipo == 'Interno') {
} $parecerInterno = ParecerInterno::where([['avaliador_id', $avaliador->id], ['trabalho_id', $trabalho->id]])->first();
} if ($parecerInterno != null) {
} else { $trabalho->pontuacao += $parecerInterno->statusAnexoPlanilhaPontuacao;
foreach ($trabalho->avaliadors as $avaliador) { ++$cont;
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, ',', '');
} }
} }
} $trabalhosAmpla = $trabalhosAmpla->sort(function ($item, $next) {
if ($trabalho->pontuacao != 0) { return $item->pontuacao >= $next->pontuacao ? -1 : 1;
$trabalho->pontuacao = number_format(($trabalho->pontuacao / $cont), 2, ',', ''); });
}
} // Recém Doutor
$trabalhosDoutor = $trabalhosDoutor->sort(function ($item, $next) { $trabalhosDoutor = Trabalho::where('evento_id', $evento->id)
return $item->pontuacao >= $next->pontuacao ? -1 : 1; ->where('modalidade', 'RecemDoutor')->get();
}); foreach ($trabalhosDoutor as $trabalho) {
$trabalho->pontuacao = 0;
$pdf = PDF::loadView('/administrador/resultadosProjetosCotas', compact('trabalhosDoutor', 'trabalhosAmpla', 'evento')); $cont = 0;
// Caso especial do PIBEX onde a pontuação fica no Ad Hoc
return $pdf->setPaper('a4')->stream('Resultados.pdf'); 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, ',', '');
}
}
$trabalhosDoutor = $trabalhosDoutor->sort(function ($item, $next) {
return $item->pontuacao >= $next->pontuacao ? -1 : 1;
});
$pdf = PDF::loadView('/administrador/resultadosProjetosCotas', compact('trabalhosDoutor', 'trabalhosAmpla', 'evento'));
return $pdf->setPaper('a4')->stream('Resultados.pdf');
}
}
...@@ -124,6 +124,7 @@ class ArquivoController extends Controller ...@@ -124,6 +124,7 @@ class ArquivoController extends Controller
$trabalho = Trabalho::where('id',$id)->first(); $trabalho = Trabalho::where('id',$id)->first();
$participantes = $trabalho->participantes; $participantes = $trabalho->participantes;
$evento = $trabalho->evento;
// Verficação de pendencia de substituição // Verficação de pendencia de substituição
$aux = count(Substituicao::where('status','Em Aguardo')->whereIn('participanteSubstituido_id',$trabalho->participantes->pluck('id'))->get()); $aux = count(Substituicao::where('status','Em Aguardo')->whereIn('participanteSubstituido_id',$trabalho->participantes->pluck('id'))->get());
...@@ -139,12 +140,18 @@ class ArquivoController extends Controller ...@@ -139,12 +140,18 @@ class ArquivoController extends Controller
return redirect()->back(); return redirect()->back();
} }
foreach ($participantes as $participante){ if ($evento->numParticipantes != 0) {
array_push($arquivos, $participante->planoTrabalho); foreach ($participantes as $participante){
array_push($arquivos, $participante->planoTrabalho);
}
} else {
$arquivo = Arquivo::where("trabalhoId", $trabalho->id)->first();
array_push($arquivos, $arquivo);
} }
$hoje = Carbon::today('America/Recife'); $hoje = Carbon::today('America/Recife');
$hoje = $hoje->toDateString(); $hoje = $hoje->toDateString();
return view('planosTrabalho.listar')->with(['arquivos' => $arquivos, 'hoje' => $hoje, 'trabalho' => $trabalho]); return view('planosTrabalho.listar')->with(['arquivos' => $arquivos, 'hoje' => $hoje, 'trabalho' => $trabalho, 'evento' => $evento]);
} }
public function anexarRelatorio(Request $request){ public function anexarRelatorio(Request $request){
......
...@@ -86,9 +86,11 @@ class AvaliacaoRelatorioController extends Controller ...@@ -86,9 +86,11 @@ class AvaliacaoRelatorioController extends Controller
public function atribuicaoAvaliador(Request $request){ public function atribuicaoAvaliador(Request $request){
$trabalho = Trabalho::find($request->trabalho_id); $trabalho = Trabalho::find($request->trabalho_id);
foreach ($trabalho->participantes as $participante){ $evento = $trabalho->evento;
$avaliadoresId= $request->input('avaliadores_'.$participante->planoTrabalho->id.'_id'); if ($evento->numParticipantes == 0) {
// utilizado desta forma pois a versão do PHP 7.2 é preciso que o $array usado na função count($array) não pode ser um valor NULL. $arquivo = Arquivo::where("trabalhoId", $trabalho->id)->first();
$avaliadoresId = $request->input('avaliadores_'.$arquivo->id.'_id');
$numeroDeItens = is_countable( $avaliadoresId ) ? count( $avaliadoresId ) : 0; $numeroDeItens = is_countable( $avaliadoresId ) ? count( $avaliadoresId ) : 0;
for ($i = 0; $i < $numeroDeItens; $i++){ for ($i = 0; $i < $numeroDeItens; $i++){
...@@ -97,7 +99,7 @@ class AvaliacaoRelatorioController extends Controller ...@@ -97,7 +99,7 @@ class AvaliacaoRelatorioController extends Controller
'comentario'=>'', 'comentario'=>'',
'nota'=>null, 'nota'=>null,
'user_id'=>$avaliadoresId[$i], 'user_id'=>$avaliadoresId[$i],
'arquivo_id'=>$participante->planoTrabalho->id, 'arquivo_id'=>$arquivo->id,
]); ]);
$avaliacao->save(); $avaliacao->save();
Notification::send( $avaliacao->user, new AtribuicaoAvaliadorRelatorioNotification($avaliacao->tipo, $avaliacao->plano, $trabalho, $avaliacao->user)); Notification::send( $avaliacao->user, new AtribuicaoAvaliadorRelatorioNotification($avaliacao->tipo, $avaliacao->plano, $trabalho, $avaliacao->user));
...@@ -115,6 +117,38 @@ class AvaliacaoRelatorioController extends Controller ...@@ -115,6 +117,38 @@ class AvaliacaoRelatorioController extends Controller
$avaliador->save(); $avaliador->save();
} }
} }
} else {
foreach ($trabalho->participantes as $participante){
$avaliadoresId= $request->input('avaliadores_'.$participante->planoTrabalho->id.'_id');
// utilizado desta forma pois a versão do PHP 7.2 é preciso que o $array usado na função count($array) não pode ser um valor NULL.
$numeroDeItens = is_countable( $avaliadoresId ) ? count( $avaliadoresId ) : 0;
for ($i = 0; $i < $numeroDeItens; $i++){
$avaliacao = AvaliacaoRelatorio::create([
'tipo'=>$request->tipo_relatorio,
'comentario'=>'',
'nota'=>null,
'user_id'=>$avaliadoresId[$i],
'arquivo_id'=>$participante->planoTrabalho->id,
]);
$avaliacao->save();
Notification::send( $avaliacao->user, new AtribuicaoAvaliadorRelatorioNotification($avaliacao->tipo, $avaliacao->plano, $trabalho, $avaliacao->user));
if(Avaliador::where('user_id',$avaliadoresId[$i])->get()->count()==0){
$userTemp = User::find($avaliadoresId[$i]);
if($userTemp->instituicao==null || $userTemp->instituicao == "UFAPE" || $userTemp->instituicao == "Universidade Federal do Agreste de Pernambuco"){
$tipoAvaliador = "Interno";
}else{
$tipoAvaliador = "Externo";
}
$avaliador = new Avaliador();
$avaliador->tipo = $tipoAvaliador;
$avaliador->user_id = $avaliadoresId[$i];
$avaliador->save();
}
}
}
} }
return redirect()->back(); return redirect()->back();
} }
......
<?php <?php
namespace App\Http\Controllers; namespace App\Http\Controllers;
use PDF; use PDF;
use App; use App;
use App\Administrador; use App\Administrador;
use Auth; use Auth;
use App\Area; use App\Area;
use App\User; use App\User;
use App\Evento; use App\Evento;
use App\AreaTematica; use App\AreaTematica;
use App\Arquivo; use App\Arquivo;
use App\Coautor; use App\Coautor;
use App\Revisor; use App\Revisor;
use App\TrabalhoUser; use App\TrabalhoUser;
use App\SubArea; use App\SubArea;
use App\Endereco; use App\Endereco;
use App\Trabalho; use App\Trabalho;
use App\Avaliador; use App\Avaliador;
use Carbon\Carbon; use Carbon\Carbon;
use App\AnexosTemp; use App\AnexosTemp;
use App\Atribuicao; use App\Atribuicao;
use App\GrandeArea; use App\GrandeArea;
use App\Modalidade; use App\Modalidade;
use App\Proponente; use App\Proponente;
use App\Participante; use App\Participante;
use App\AreaModalidade; use App\AreaModalidade;
use App\Certificado; use App\Certificado;
use Illuminate\Http\File; use Illuminate\Http\File;
use App\Mail\EventoCriado; use App\Mail\EventoCriado;
use Illuminate\Support\Str; use Illuminate\Support\Str;
use App\CoordenadorComissao; use App\CoordenadorComissao;
use App\FuncaoParticipantes; use App\FuncaoParticipantes;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use App\Mail\SubmissaoTrabalho; use App\Mail\SubmissaoTrabalho;
use App\OutrasInfoParticipante; use App\OutrasInfoParticipante;
use Illuminate\Validation\Rule; use Illuminate\Validation\Rule;
use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\Log;
use App\Http\Requests\StoreTrabalho; use App\Http\Requests\StoreTrabalho;
use Illuminate\Support\Facades\Mail; use Illuminate\Support\Facades\Mail;
use App\Http\Requests\UpdateTrabalho; use App\Http\Requests\UpdateTrabalho;
use Illuminate\Support\Facades\Storage; use Illuminate\Support\Facades\Storage;
use Illuminate\Support\Facades\Validator; use Illuminate\Support\Facades\Validator;
use App\Mail\EmailParaUsuarioNaoCadastrado; use App\Mail\EmailParaUsuarioNaoCadastrado;
use App\Mail\SolicitacaoSubstituicao; use App\Mail\SolicitacaoSubstituicao;
use App\Notificacao; use App\Notificacao;
use App\Notifications\SolicitacaoCertificadoNotification; use App\Notifications\SolicitacaoCertificadoNotification;
use App\Notifications\SubmissaoNotification; use App\Notifications\SubmissaoNotification;
use App\Notifications\SubmissaoRecebidaNotification; use App\Notifications\SubmissaoRecebidaNotification;
use App\SolicitacaoCertificado; use App\SolicitacaoCertificado;
use App\SolicitacaoParticipante; use App\SolicitacaoParticipante;
use App\Substituicao; use App\Substituicao;
use Illuminate\Support\Facades\Notification; use Illuminate\Support\Facades\Notification;
use App\Desligamento; use App\Desligamento;
use App\ObjetivoDeDesenvolvimentoSustentavel; use App\ObjetivoDeDesenvolvimentoSustentavel;
use App\AvaliacaoRelatorio; use App\AvaliacaoRelatorio;
class TrabalhoController extends Controller class TrabalhoController extends Controller
{ {
public $estados = array( public $estados = array(
'AC' => 'Acre', 'AC' => 'Acre',
'AL' => 'Alagoas', 'AL' => 'Alagoas',
'AP' => 'Amapá', 'AP' => 'Amapá',
'AM' => 'Amazonas', 'AM' => 'Amazonas',
'BA' => 'Bahia', 'BA' => 'Bahia',
'CE' => 'Ceará', 'CE' => 'Ceará',
'DF' => 'Distrito Federal', 'DF' => 'Distrito Federal',
'ES' => 'Espirito Santo', 'ES' => 'Espirito Santo',
'GO' => 'Goiás', 'GO' => 'Goiás',
'MA' => 'Maranhão', 'MA' => 'Maranhão',
'MS' => 'Mato Grosso do Sul', 'MS' => 'Mato Grosso do Sul',
'MT' => 'Mato Grosso', 'MT' => 'Mato Grosso',
'MG' => 'Minas Gerais', 'MG' => 'Minas Gerais',
'PA' => 'Pará', 'PA' => 'Pará',
'PB' => 'Paraíba', 'PB' => 'Paraíba',
'PR' => 'Paraná', 'PR' => 'Paraná',
'PE' => 'Pernambuco', 'PE' => 'Pernambuco',
'PI' => 'Piauí', 'PI' => 'Piauí',
'RJ' => 'Rio de Janeiro', 'RJ' => 'Rio de Janeiro',
'RN' => 'Rio Grande do Norte', 'RN' => 'Rio Grande do Norte',
'RS' => 'Rio Grande do Sul', 'RS' => 'Rio Grande do Sul',
'RO' => 'Rondônia', 'RO' => 'Rondônia',
'RR' => 'Roraima', 'RR' => 'Roraima',
'SC' => 'Santa Catarina', 'SC' => 'Santa Catarina',
'SP' => 'São Paulo', 'SP' => 'São Paulo',
'SE' => 'Sergipe', 'SE' => 'Sergipe',
'TO' => 'Tocantins', 'TO' => 'Tocantins',
); );
public function index($id) public function index($id)
{ {
$edital = Evento::find($id); $edital = Evento::find($id);
$grandeAreas = GrandeArea::orderBy('nome')->get(); $grandeAreas = GrandeArea::orderBy('nome')->get();
$areaTematicas = AreaTematica::orderBy('nome')->get(); $areaTematicas = AreaTematica::orderBy('nome')->get();
$ODS = ObjetivoDeDesenvolvimentoSustentavel::orderBy('nome')->get(); $ODS = ObjetivoDeDesenvolvimentoSustentavel::orderBy('nome')->get();
$funcaoParticipantes = FuncaoParticipantes::orderBy('nome')->get(); $funcaoParticipantes = FuncaoParticipantes::orderBy('nome')->get();
$proponente = Proponente::where('user_id', Auth::user()->id)->first(); $proponente = Proponente::where('user_id', Auth::user()->id)->first();
if($proponente == null){ if($proponente == null){
return view('proponente.cadastro')->with(['mensagem' => 'Você não possui perfil de Proponente, para submeter algum projeto preencha o formulário.']);; return view('proponente.cadastro')->with(['mensagem' => 'Você não possui perfil de Proponente, para submeter algum projeto preencha o formulário.']);;
} }
$rascunho = Trabalho::where('proponente_id', $proponente->id)->where('evento_id',$edital->id)->where('status', 'Rascunho') $rascunho = Trabalho::where('proponente_id', $proponente->id)->where('evento_id',$edital->id)->where('status', 'Rascunho')
->orderByDesc('updated_at')->first(); ->orderByDesc('updated_at')->first();
// dd($estados); // dd($estados);
return view('evento.submeterTrabalho',[ return view('evento.submeterTrabalho',[
// return view('evento.backupForm',[ // return view('evento.backupForm',[
'edital' => $edital, 'edital' => $edital,
'grandeAreas' => $grandeAreas, 'grandeAreas' => $grandeAreas,
'funcaoParticipantes'=> $funcaoParticipantes, 'funcaoParticipantes'=> $funcaoParticipantes,
'rascunho' => $rascunho, 'rascunho' => $rascunho,
'enum_turno' => Participante::ENUM_TURNO, 'enum_turno' => Participante::ENUM_TURNO,
'estados' => $this->estados, 'estados' => $this->estados,
'areaTematicas' => $areaTematicas, 'areaTematicas' => $areaTematicas,
'ods' =>$ODS, 'ods' =>$ODS,
]); ]);
} }
public function arquivar(Request $request){ public function arquivar(Request $request){
$trabalho = Trabalho::find($request->trabalho_id); $trabalho = Trabalho::find($request->trabalho_id);
$arquivos = Arquivo::where('trabalhoId',$trabalho->id)->get(); $arquivos = Arquivo::where('trabalhoId',$trabalho->id)->get();
if($request->arquivar_tipo == 1 ){ if($request->arquivar_tipo == 1 ){
$trabalho->arquivado = true; $trabalho->arquivado = true;
foreach ($arquivos as $arquivo){ foreach ($arquivos as $arquivo){
$arquivo->arquivado = true; $arquivo->arquivado = true;
$arquivo->update(); $arquivo->update();
} }
$message = "Projeto ".$trabalho->titulo." arquivado"; $message = "Projeto ".$trabalho->titulo." arquivado";
}else{ }else{
$trabalho->arquivado = false; $trabalho->arquivado = false;
foreach ($arquivos as $arquivo){ foreach ($arquivos as $arquivo){
$arquivo->arquivado = false; $arquivo->arquivado = false;
$arquivo->update(); $arquivo->update();
} }
$message = "Projeto ".$trabalho->titulo." desarquivado"; $message = "Projeto ".$trabalho->titulo." desarquivado";
} }
$trabalho->update(); $trabalho->update();
return redirect()->back()->with(['sucesso'=>$message ]); return redirect()->back()->with(['sucesso'=>$message ]);
} }
public function storeParcial(Request $request){ public function storeParcial(Request $request){
$mytime = Carbon::now('America/Recife'); $mytime = Carbon::now('America/Recife');
$mytime = $mytime->toDateString(); $mytime = $mytime->toDateString();
$evento = Evento::find($request->editalId); $evento = Evento::find($request->editalId);
$coordenador = CoordenadorComissao::find($evento->coordenadorId); $coordenador = CoordenadorComissao::find($evento->coordenadorId);
//Relaciona o projeto criado com o proponente que criou o projeto //Relaciona o projeto criado com o proponente que criou o projeto
$proponente = Proponente::where('user_id', Auth::user()->id)->first(); $proponente = Proponente::where('user_id', Auth::user()->id)->first();
$trabalho = "trabalho"; $trabalho = "trabalho";
if ($evento->inicioSubmissao > $mytime) { if ($evento->inicioSubmissao > $mytime) {
if ($mytime >= $evento->fimSubmissao) { if ($mytime >= $evento->fimSubmissao) {
return redirect()->route('home'); return redirect()->route('home');
} }
} }
//--Salvando os dados da submissão temporariamente //--Salvando os dados da submissão temporariamente
$this->armazenarInfoTemp($request, $proponente); $this->armazenarInfoTemp($request, $proponente);
return redirect()->route('projetos.edital', ['id' => $request->editalId]); return redirect()->route('projetos.edital', ['id' => $request->editalId]);
} }
//Armazena temporariamente dados da submissão, no banco de dados e no storage //Armazena temporariamente dados da submissão, no banco de dados e no storage
public function armazenarInfoTemp(Request $request, $proponente) public function armazenarInfoTemp(Request $request, $proponente)
{ {
//---Dados do Projeto //---Dados do Projeto
$trabalho = Trabalho::where('proponente_id', $proponente->id)->where('evento_id',$request->editalId)->where('status', 'Rascunho') $trabalho = Trabalho::where('proponente_id', $proponente->id)->where('evento_id',$request->editalId)->where('status', 'Rascunho')
->orderByDesc('updated_at')->first(); ->orderByDesc('updated_at')->first();
//dd($trabalho); //dd($trabalho);
if($trabalho == null){ if($trabalho == null){
$trabalho = new Trabalho(); $trabalho = new Trabalho();
$trabalho->proponente_id = $proponente->id; $trabalho->proponente_id = $proponente->id;
$trabalho->evento_id = $request->editalId; $trabalho->evento_id = $request->editalId;
$trabalho->status = 'Rascunho'; $trabalho->status = 'Rascunho';
$stringKeys = ['titulo','linkGrupoPesquisa', 'linkLattesEstudante','pontuacaoPlanilha','anexoProjeto', $stringKeys = ['titulo','linkGrupoPesquisa', 'linkLattesEstudante','pontuacaoPlanilha','anexoProjeto',
'anexoPlanilhaPontuacao', 'anexoLattesCoordenador', 'conflitosInteresse']; 'anexoPlanilhaPontuacao', 'anexoLattesCoordenador', 'conflitosInteresse'];
$intKeys = ['grande_area_id','area_id','sub_area_id','coordenador_id']; $intKeys = ['grande_area_id','area_id','sub_area_id','coordenador_id'];
$trabalho->fill( $trabalho->fill(
array_fill_keys($stringKeys, "") + array_fill_keys($intKeys, 1) array_fill_keys($stringKeys, "") + array_fill_keys($intKeys, 1)
)->save(); )->save();
//dd($trabalho); //dd($trabalho);
} }
if(!(is_null($request->nomeProjeto)) ) { if(!(is_null($request->nomeProjeto)) ) {
$trabalho->titulo = $request->nomeProjeto; $trabalho->titulo = $request->nomeProjeto;
} }
if(!(is_null($request->grandeArea))){ if(!(is_null($request->grandeArea))){
$trabalho->grande_area_id = $request->grandeArea; $trabalho->grande_area_id = $request->grandeArea;
} }
if(!(is_null($request->area))){ if(!(is_null($request->area))){
$trabalho->area_id = $request->area; $trabalho->area_id = $request->area;
} }
if(!(is_null($request->subArea))){ if(!(is_null($request->subArea))){
$trabalho->sub_area_id = $request->subArea; $trabalho->sub_area_id = $request->subArea;
} }
if(!(is_null($request->pontuacaoPlanilha))){ if(!(is_null($request->pontuacaoPlanilha))){
$trabalho->pontuacaoPlanilha = $request->pontuacaoPlanilha; $trabalho->pontuacaoPlanilha = $request->pontuacaoPlanilha;
} }
if(!(is_null($request->linkGrupo))){ if(!(is_null($request->linkGrupo))){
$trabalho->linkGrupoPesquisa = $request->linkGrupo; $trabalho->linkGrupoPesquisa = $request->linkGrupo;
} }
if(!(is_null($request->conflitosInteresse))){ if(!(is_null($request->conflitosInteresse))){
$trabalho->conflitosInteresse = $request->conflitosInteresse; $trabalho->conflitosInteresse = $request->conflitosInteresse;
} }
//Anexos do projeto //Anexos do projeto
$pasta = 'trabalhos/' . $request->editalId . '/' . $trabalho->id; $pasta = 'trabalhos/' . $request->editalId . '/' . $trabalho->id;
if(!(is_null($request->anexoDecisaoCONSU)) ) { if(!(is_null($request->anexoDecisaoCONSU)) ) {
$trabalho->anexoDecisaoCONSU = Storage::putFileAs($pasta, $request->anexoDecisaoCONSU, "CONSU.pdf"); $trabalho->anexoDecisaoCONSU = Storage::putFileAs($pasta, $request->anexoDecisaoCONSU, "CONSU.pdf");
} }
if (!(is_null($request->anexoComiteEtica))) { if (!(is_null($request->anexoComiteEtica))) {
$trabalho->anexoAutorizacaoComiteEtica = Storage::putFileAs($pasta, $request->anexoComiteEtica, "Comite_de_etica.pdf"); $trabalho->anexoAutorizacaoComiteEtica = Storage::putFileAs($pasta, $request->anexoComiteEtica, "Comite_de_etica.pdf");
} }
if (!(is_null($request->justificativaAutorizacaoEtica))) { if (!(is_null($request->justificativaAutorizacaoEtica))) {
$trabalho->justificativaAutorizacaoEtica = Storage::putFileAs($pasta, $request->justificativaAutorizacaoEtica, "Justificativa.pdf"); $trabalho->justificativaAutorizacaoEtica = Storage::putFileAs($pasta, $request->justificativaAutorizacaoEtica, "Justificativa.pdf");
} }
if (!(is_null($request->anexoProjeto))) { if (!(is_null($request->anexoProjeto))) {
$trabalho->anexoProjeto = Storage::putFileAs($pasta, $request->anexoProjeto, "Projeto.pdf"); $trabalho->anexoProjeto = Storage::putFileAs($pasta, $request->anexoProjeto, "Projeto.pdf");
} }
if (!(is_null($request->anexoLattesCoordenador))) { if (!(is_null($request->anexoLattesCoordenador))) {
$trabalho->anexoLattesCoordenador = Storage::putFileAs($pasta, $request->anexoLattesCoordenador, "Lattes_Coordenador.pdf"); $trabalho->anexoLattesCoordenador = Storage::putFileAs($pasta, $request->anexoLattesCoordenador, "Lattes_Coordenador.pdf");
} }
if (!(is_null($request->anexoPlanilhaPontuacao))) { if (!(is_null($request->anexoPlanilhaPontuacao))) {
$trabalho->anexoPlanilhaPontuacao = Storage::putFileAs($pasta, $request->anexoPlanilhaPontuacao, "Planilha.". $request->file('anexoPlanilhaPontuacao')->getClientOriginalExtension()); $trabalho->anexoPlanilhaPontuacao = Storage::putFileAs($pasta, $request->anexoPlanilhaPontuacao, "Planilha.". $request->file('anexoPlanilhaPontuacao')->getClientOriginalExtension());
} }
$trabalho->update(); $trabalho->update();
//---Anexos planos de trabalho //---Anexos planos de trabalho
//dd($trabalho); //dd($trabalho);
return $trabalho; return $trabalho;
} }
public function validarAnexosRascunho(Request $request, $trabalho){ public function validarAnexosRascunho(Request $request, $trabalho){
$validator = Validator::make($trabalho->getAttributes(),[ $validator = Validator::make($trabalho->getAttributes(),[
'anexoPlanilhaPontuacao' => $request->anexoPlanilhaPontuacao==null?['planilha']:[], 'anexoPlanilhaPontuacao' => $request->anexoPlanilhaPontuacao==null?['planilha']:[],
]); ]);
if ($validator->fails()) { if ($validator->fails()) {
//dd('asdf'); //dd('asdf');
return back()->withErrors($validator)->withInput(); return back()->withErrors($validator)->withInput();
} }
return 1; return 1;
} }
public function armazenarAnexosFinais($request, $pasta, $trabalho, $evento){ public function armazenarAnexosFinais($request, $pasta, $trabalho, $evento){
// Checando se é um novo trabalho ou uma edição // Checando se é um novo trabalho ou uma edição
if ($trabalho->anexoProjeto != null) { if ($trabalho->anexoProjeto != null) {
// Anexo Projeto // Anexo Projeto
if (isset($request->anexoProjeto)) { if (isset($request->anexoProjeto)) {
if (Storage::disk()->exists($trabalho->anexoProjeto)) { if (Storage::disk()->exists($trabalho->anexoProjeto)) {
Storage::delete($trabalho->anexoProjeto); Storage::delete($trabalho->anexoProjeto);
} }
$trabalho->anexoProjeto = Storage::putFileAs($pasta, $request->anexoProjeto, 'Projeto.pdf'); $trabalho->anexoProjeto = Storage::putFileAs($pasta, $request->anexoProjeto, 'Projeto.pdf');
} }
//Anexo Decisão CONSU //Anexo Decisão CONSU
// if ($evento->tipo == 'PIBIC' || $evento->tipo == 'PIBIC-EM') { // if ($evento->tipo == 'PIBIC' || $evento->tipo == 'PIBIC-EM') {
if (isset($request->anexoDecisaoCONSU)) { if (isset($request->anexoDecisaoCONSU)) {
if (Storage::disk()->exists($trabalho->anexoDecisaoCONSU)) { if (Storage::disk()->exists($trabalho->anexoDecisaoCONSU)) {
Storage::delete($trabalho->anexoDecisaoCONSU); Storage::delete($trabalho->anexoDecisaoCONSU);
} }
$trabalho->anexoDecisaoCONSU = Storage::putFileAs($pasta, $request->anexoDecisaoCONSU, 'Decisão_da_Câmara_ou_Conselho_Pertinente.pdf'); $trabalho->anexoDecisaoCONSU = Storage::putFileAs($pasta, $request->anexoDecisaoCONSU, 'Decisão_da_Câmara_ou_Conselho_Pertinente.pdf');
} }
// } // }
//Autorização ou Justificativa //Autorização ou Justificativa
if (isset($request->anexoAutorizacaoComiteEtica)) { if (isset($request->anexoAutorizacaoComiteEtica)) {
if (Storage::disk()->exists($trabalho->anexoAutorizacaoComiteEtica)) { if (Storage::disk()->exists($trabalho->anexoAutorizacaoComiteEtica)) {
Storage::delete($trabalho->anexoAutorizacaoComiteEtica); Storage::delete($trabalho->anexoAutorizacaoComiteEtica);
} }
$trabalho->anexoAutorizacaoComiteEtica = Storage::putFileAs($pasta, $request->anexoAutorizacaoComiteEtica, 'Comite_de_etica.pdf'); $trabalho->anexoAutorizacaoComiteEtica = Storage::putFileAs($pasta, $request->anexoAutorizacaoComiteEtica, 'Comite_de_etica.pdf');
$trabalho->justificativaAutorizacaoEtica = null; $trabalho->justificativaAutorizacaoEtica = null;
} elseif (isset($request->justificativaAutorizacaoEtica)) { } elseif (isset($request->justificativaAutorizacaoEtica)) {
if (Storage::disk()->exists($trabalho->justificativaAutorizacaoEtica)) { if (Storage::disk()->exists($trabalho->justificativaAutorizacaoEtica)) {
Storage::delete($trabalho->justificativaAutorizacaoEtica); Storage::delete($trabalho->justificativaAutorizacaoEtica);
} }
$trabalho->justificativaAutorizacaoEtica = Storage::putFileAs($pasta, $request->justificativaAutorizacaoEtica, 'Justificativa.pdf'); $trabalho->justificativaAutorizacaoEtica = Storage::putFileAs($pasta, $request->justificativaAutorizacaoEtica, 'Justificativa.pdf');
$trabalho->anexoAutorizacaoComiteEtica = null; $trabalho->anexoAutorizacaoComiteEtica = null;
} }
//Anexo Lattes //Anexo Lattes
if (isset($request->anexoLattesCoordenador)) { if (isset($request->anexoLattesCoordenador)) {
if (Storage::disk()->exists($trabalho->anexoLattesCoordenador)) { if (Storage::disk()->exists($trabalho->anexoLattesCoordenador)) {
Storage::delete($trabalho->anexoLattesCoordenador); Storage::delete($trabalho->anexoLattesCoordenador);
} }
$trabalho->anexoLattesCoordenador = Storage::putFileAs($pasta, $request->anexoLattesCoordenador, 'Lattes_Coordenador.pdf'); $trabalho->anexoLattesCoordenador = Storage::putFileAs($pasta, $request->anexoLattesCoordenador, 'Lattes_Coordenador.pdf');
} }
//Anexo Planilha //Anexo Planilha
if (isset($request->anexoPlanilhaPontuacao)) { if (isset($request->anexoPlanilhaPontuacao)) {
if (Storage::disk()->exists($trabalho->anexoPlanilhaPontuacao)) { if (Storage::disk()->exists($trabalho->anexoPlanilhaPontuacao)) {
Storage::delete($trabalho->anexoPlanilhaPontuacao); Storage::delete($trabalho->anexoPlanilhaPontuacao);
} }
$trabalho->anexoPlanilhaPontuacao = Storage::putFileAs($pasta, $request->anexoPlanilhaPontuacao, "Planilha." . $request->file('anexoPlanilhaPontuacao')->getClientOriginalExtension()); $trabalho->anexoPlanilhaPontuacao = Storage::putFileAs($pasta, $request->anexoPlanilhaPontuacao, "Planilha." . $request->file('anexoPlanilhaPontuacao')->getClientOriginalExtension());
} }
// Anexo grupo pesquisa // Anexo grupo pesquisa
if (isset($request->anexoGrupoPesquisa)) { if (isset($request->anexoGrupoPesquisa)) {
if (Storage::disk()->exists($trabalho->anexoGrupoPesquisa)) { if (Storage::disk()->exists($trabalho->anexoGrupoPesquisa)) {
Storage::delete($trabalho->anexoGrupoPesquisa); Storage::delete($trabalho->anexoGrupoPesquisa);
} }
$trabalho->anexoGrupoPesquisa = Storage::putFileAs($pasta, $request->anexoGrupoPesquisa, "Grupo_de_pesquisa." . $request->file('anexoGrupoPesquisa')->extension()); $trabalho->anexoGrupoPesquisa = Storage::putFileAs($pasta, $request->anexoGrupoPesquisa, "Grupo_de_pesquisa." . $request->file('anexoGrupoPesquisa')->extension());
} }
//Anexo documentro extra //Anexo documentro extra
if (isset($request->anexo_docExtra)) { if (isset($request->anexo_docExtra)) {
if (Storage::disk()->exists($trabalho->anexo_docExtra)) { if (Storage::disk()->exists($trabalho->anexo_docExtra)) {
Storage::delete($trabalho->anexo_docExtra); Storage::delete($trabalho->anexo_docExtra);
} }
$trabalho->anexo_docExtra = Storage::putFileAs($pasta, $request->anexo_docExtra, "Documento_Extra." . $request->file('anexo_docExtra')->extension()); $trabalho->anexo_docExtra = Storage::putFileAs($pasta, $request->anexo_docExtra, "Documento_Extra." . $request->file('anexo_docExtra')->extension());
} }
$trabalho->save(); $trabalho->save();
return $trabalho; return $trabalho;
} }
// Anexo Projeto // Anexo Projeto
if (isset($request->anexoProjeto)) { if (isset($request->anexoProjeto)) {
$trabalho->anexoProjeto = Storage::putFileAs($pasta, $request->anexoProjeto, 'Projeto.pdf'); $trabalho->anexoProjeto = Storage::putFileAs($pasta, $request->anexoProjeto, 'Projeto.pdf');
} }
//Anexo Decisão CONSU //Anexo Decisão CONSU
//if ($evento->tipo == 'PIBIC' || $evento->tipo == 'PIBIC-EM') { //if ($evento->tipo == 'PIBIC' || $evento->tipo == 'PIBIC-EM') {
if (isset($request->anexoDecisaoCONSU)) { if (isset($request->anexoDecisaoCONSU)) {
$trabalho->anexoDecisaoCONSU = Storage::putFileAs($pasta, $request->anexoDecisaoCONSU, 'Decisão_da_Câmara_ou_Conselho_Pertinente.pdf'); $trabalho->anexoDecisaoCONSU = Storage::putFileAs($pasta, $request->anexoDecisaoCONSU, 'Decisão_da_Câmara_ou_Conselho_Pertinente.pdf');
} }
//} //}
//Autorização ou Justificativa //Autorização ou Justificativa
if (isset($request->anexoAutorizacaoComiteEtica)) { if (isset($request->anexoAutorizacaoComiteEtica)) {
$trabalho->anexoAutorizacaoComiteEtica = Storage::putFileAs($pasta, $request->anexoAutorizacaoComiteEtica, 'Comite_de_etica.pdf'); $trabalho->anexoAutorizacaoComiteEtica = Storage::putFileAs($pasta, $request->anexoAutorizacaoComiteEtica, 'Comite_de_etica.pdf');
$trabalho->justificativaAutorizacaoEtica = null; $trabalho->justificativaAutorizacaoEtica = null;
} elseif (isset($request->justificativaAutorizacaoEtica)) { } elseif (isset($request->justificativaAutorizacaoEtica)) {
$trabalho->justificativaAutorizacaoEtica = Storage::putFileAs($pasta, $request->justificativaAutorizacaoEtica, 'Justificativa.pdf'); $trabalho->justificativaAutorizacaoEtica = Storage::putFileAs($pasta, $request->justificativaAutorizacaoEtica, 'Justificativa.pdf');
$trabalho->anexoAutorizacaoComiteEtica = null; $trabalho->anexoAutorizacaoComiteEtica = null;
} }
//Anexo Lattes //Anexo Lattes
if (isset($request->anexoLattesCoordenador)) { if (isset($request->anexoLattesCoordenador)) {
$trabalho->anexoLattesCoordenador = Storage::putFileAs($pasta, $request->anexoLattesCoordenador, 'Lattes_Coordenador.pdf'); $trabalho->anexoLattesCoordenador = Storage::putFileAs($pasta, $request->anexoLattesCoordenador, 'Lattes_Coordenador.pdf');
} }
//Anexo Planilha //Anexo Planilha
if (isset($request->anexoPlanilhaPontuacao)) { if (isset($request->anexoPlanilhaPontuacao)) {
$trabalho->anexoPlanilhaPontuacao = Storage::putFileAs($pasta, $request->anexoPlanilhaPontuacao, "Planilha." . $request->file('anexoPlanilhaPontuacao')->getClientOriginalExtension()); $trabalho->anexoPlanilhaPontuacao = Storage::putFileAs($pasta, $request->anexoPlanilhaPontuacao, "Planilha." . $request->file('anexoPlanilhaPontuacao')->getClientOriginalExtension());
} }
// Anexo grupo pesquisa // Anexo grupo pesquisa
if (isset($request->anexoGrupoPesquisa)) { if (isset($request->anexoGrupoPesquisa)) {
$trabalho->anexoGrupoPesquisa = Storage::putFileAs($pasta, $request->anexoGrupoPesquisa, "Grupo_de_pesquisa." . $request->file('anexoGrupoPesquisa')->extension()); $trabalho->anexoGrupoPesquisa = Storage::putFileAs($pasta, $request->anexoGrupoPesquisa, "Grupo_de_pesquisa." . $request->file('anexoGrupoPesquisa')->extension());
} }
// Anexo documento extra // Anexo documento extra
if (isset($request->anexo_docExtra)) { if (isset($request->anexo_docExtra)) {
$trabalho->anexo_docExtra = Storage::putFileAs($pasta, $request->anexo_docExtra, "Documento_Extra." . $request->file('anexo_docExtra')->extension()); $trabalho->anexo_docExtra = Storage::putFileAs($pasta, $request->anexo_docExtra, "Documento_Extra." . $request->file('anexo_docExtra')->extension());
} }
return $trabalho; return $trabalho;
} }
public function show($id) public function show($id)
{ {
$projeto = Trabalho::find($id); $projeto = Trabalho::find($id);
if(Auth::user()->id != $projeto->proponente->user->id){ if(Auth::user()->id != $projeto->proponente->user->id){
return redirect()->back(); return redirect()->back();
} }
$edital = Evento::find($projeto->evento_id); $edital = Evento::find($projeto->evento_id);
$grandeAreas = GrandeArea::all(); $grandeAreas = GrandeArea::all();
$areas = Area::all(); $areas = Area::all();
$subareas = Subarea::all(); $subareas = Subarea::all();
$areasTematicas = AreaTematica::all(); $areasTematicas = AreaTematica::all();
$funcaoParticipantes = FuncaoParticipantes::all(); $funcaoParticipantes = FuncaoParticipantes::all();
$participantes = $projeto->participantes; $participantes = $projeto->participantes;
$participantesUsersIds = Participante::where('trabalho_id', $id)->select('user_id')->get(); $participantesUsersIds = Participante::where('trabalho_id', $id)->select('user_id')->get();
$users = User::whereIn('id', $participantesUsersIds)->get(); $users = User::whereIn('id', $participantesUsersIds)->get();
$arquivos = Arquivo::where('trabalhoId', $id)->get(); $arquivos = Arquivo::where('trabalhoId', $id)->get();
$proponente = Proponente::where('user_id', $projeto->proponente->user_id)->first();
// Verficação de pendencia de substituição
$aux = count(Substituicao::where('status','Em Aguardo')->whereIn('participanteSubstituido_id',$projeto->participantes->pluck('id'))->get()); // Verficação de pendencia de substituição
$flagSubstituicao = 1; $aux = count(Substituicao::where('status','Em Aguardo')->whereIn('participanteSubstituido_id',$projeto->participantes->pluck('id'))->get());
if($aux != 0){ $flagSubstituicao = 1;
$flagSubstituicao = -1; if($aux != 0){
} $flagSubstituicao = -1;
}
$trabalhos_user = TrabalhoUser::where('trabalho_id', $projeto->id)->get();
$trabalhos_user = TrabalhoUser::where('trabalho_id', $projeto->id)->get();
$AvalRelatParcial = [];
$AvalRelatFinal = []; $AvalRelatParcial = [];
$AvalRelatFinal = [];
foreach ($participantes as $participante) {
if (isset($participante->planoTrabalho)) { foreach ($participantes as $participante) {
$avals = AvaliacaoRelatorio::where('arquivo_id', $participante->planoTrabalho->id)->get(); if (isset($participante->planoTrabalho)) {
} else { $avals = AvaliacaoRelatorio::where('arquivo_id', $participante->planoTrabalho->id)->get();
$avals = []; } else {
} $avals = [];
foreach ($avals as $aval) { }
if ($aval->tipo == 'Parcial') { foreach ($avals as $aval) {
array_push($AvalRelatParcial, $aval); if ($aval->tipo == 'Parcial') {
} else { array_push($AvalRelatParcial, $aval);
array_push($AvalRelatFinal, $aval); } else {
} array_push($AvalRelatFinal, $aval);
} }
} }
}
return view('projeto.visualizar')->with(['projeto' => $projeto,
'grandeAreas' => $grandeAreas, return view('projeto.visualizar')->with(['projeto' => $projeto,
'areas' => $areas, 'grandeAreas' => $grandeAreas,
'subAreas' => $subareas, 'areas' => $areas,
'edital' => $edital, 'subAreas' => $subareas,
'users' => $users, 'edital' => $edital,
'funcaoParticipantes' => $funcaoParticipantes, 'users' => $users,
'participantes' => $participantes, 'funcaoParticipantes' => $funcaoParticipantes,
'arquivos' => $arquivos, 'participantes' => $participantes,
'estados' => $this->estados, 'arquivos' => $arquivos,
'visualizar' => true, 'estados' => $this->estados,
'enum_turno' => Participante::ENUM_TURNO, 'visualizar' => true,
'areasTematicas' => $areasTematicas, 'enum_turno' => Participante::ENUM_TURNO,
'flagSubstituicao' =>$flagSubstituicao, 'areasTematicas' => $areasTematicas,
'trabalhos_user' => $trabalhos_user, 'flagSubstituicao' =>$flagSubstituicao,
'AvalRelatParcial' => $AvalRelatParcial, 'trabalhos_user' => $trabalhos_user,
'AvalRelatFinal' => $AvalRelatFinal, 'AvalRelatParcial' => $AvalRelatParcial,
]); 'AvalRelatFinal' => $AvalRelatFinal,
} 'proponente' => $proponente
]);
public function exportProjeto($id) }
{
$projeto = Auth::user()->proponentes->trabalhos()->where('id', $id)->first(); public function exportProjeto($id)
if (!$projeto) { {
return back()->withErrors(['Proposta não encontrada!']); $projeto = Auth::user()->proponentes->trabalhos()->where('id', $id)->first();
} if (!$projeto) {
$edital = Evento::find($projeto->evento_id); return back()->withErrors(['Proposta não encontrada!']);
$grandeAreas = GrandeArea::all(); }
$areas = Area::all(); $edital = Evento::find($projeto->evento_id);
$subAreas = Subarea::all(); $grandeAreas = GrandeArea::all();
$funcaoParticipantes = FuncaoParticipantes::all(); $areas = Area::all();
$participantes = Participante::where('trabalho_id', $id)->get(); $subAreas = Subarea::all();
$participantesUsersIds = Participante::where('trabalho_id', $id)->select('user_id')->get(); $funcaoParticipantes = FuncaoParticipantes::all();
$users = User::whereIn('id', $participantesUsersIds)->get(); $participantes = Participante::where('trabalho_id', $id)->get();
$arquivos = Arquivo::where('trabalhoId', $id)->get(); $participantesUsersIds = Participante::where('trabalho_id', $id)->select('user_id')->get();
$enum_turno = Participante::ENUM_TURNO; $users = User::whereIn('id', $participantesUsersIds)->get();
view()->share('projeto.visualizar', [$projeto, $grandeAreas, $areas, $subAreas, $edital, $users, $funcaoParticipantes, $participantes, $arquivos, $enum_turno]); $arquivos = Arquivo::where('trabalhoId', $id)->get();
$enum_turno = Participante::ENUM_TURNO;
$pdf = PDF::loadView('projeto.visualizar', compact('projeto', 'grandeAreas', 'areas', 'subAreas', 'edital', 'users', 'funcaoParticipantes', 'participantes', 'arquivos', 'enum_turno'))->setOptions(['defaultFont' => 'sans-serif']); view()->share('projeto.visualizar', [$projeto, $grandeAreas, $areas, $subAreas, $edital, $users, $funcaoParticipantes, $participantes, $arquivos, $enum_turno]);
// download PDF file with download method $pdf = PDF::loadView('projeto.visualizar', compact('projeto', 'grandeAreas', 'areas', 'subAreas', 'edital', 'users', 'funcaoParticipantes', 'participantes', 'arquivos', 'enum_turno'))->setOptions(['defaultFont' => 'sans-serif']);
return $pdf->download('pdf_file.pdf');
} // download PDF file with download method
return $pdf->download('pdf_file.pdf');
public function edit($id) }
{
if(Auth::user()->tipo=='administrador'){ public function edit($id)
$projeto = Trabalho::find($id); {
}else{ if(Auth::user()->tipo=='administrador'){
$projeto = Auth::user()->proponentes->trabalhos()->where('id', $id)->first(); $projeto = Trabalho::find($id);
} }else{
$projeto = Auth::user()->proponentes->trabalhos()->where('id', $id)->first();
$proponente = Proponente::where('user_id', $projeto->proponente->user_id)->first(); }
if (!$projeto) {
return back()->withErrors(['Proposta não encontrada!']); $proponente = Proponente::where('user_id', $projeto->proponente->user_id)->first();
} if (!$projeto) {
$edital = Evento::find($projeto->evento_id); return back()->withErrors(['Proposta não encontrada!']);
$grandeAreas = GrandeArea::all(); }
$areaTematicas = AreaTematica::orderBy('nome')->get(); $edital = Evento::find($projeto->evento_id);
$areas = Area::all(); $grandeAreas = GrandeArea::all();
$subareas = Subarea::all(); $areaTematicas = AreaTematica::orderBy('nome')->get();
$ODS = ObjetivoDeDesenvolvimentoSustentavel::orderBy('nome')->get(); $areas = Area::all();
$funcaoParticipantes = FuncaoParticipantes::all(); $subareas = Subarea::all();
$participantes = Participante::where('trabalho_id', $id)->get(); $ODS = ObjetivoDeDesenvolvimentoSustentavel::orderBy('nome')->get();
$participantesUsersIds = Participante::where('trabalho_id', $id)->select('user_id')->get(); $funcaoParticipantes = FuncaoParticipantes::all();
$users = User::whereIn('id', $participantesUsersIds)->get(); $participantes = Participante::where('trabalho_id', $id)->get();
$arquivos = Arquivo::where('trabalhoId', $id)->get(); $participantesUsersIds = Participante::where('trabalho_id', $id)->select('user_id')->get();
//dd(Participante::all()); $users = User::whereIn('id', $participantesUsersIds)->get();
$rascunho = Trabalho::where('proponente_id', $proponente->id)->where('evento_id', $edital->id)->where('status', 'Rascunho') $arquivos = Arquivo::where('trabalhoId', $id)->get();
->orderByDesc('updated_at')->first(); //dd(Participante::all());
$rascunho = Trabalho::where('proponente_id', $proponente->id)->where('evento_id', $edital->id)->where('status', 'Rascunho')
$trabalhos_user = TrabalhoUser::where('trabalho_id', $projeto->id)->get(); ->orderByDesc('updated_at')->first();
return view('projeto.editar')->with(['projeto' => $projeto, $trabalhos_user = TrabalhoUser::where('trabalho_id', $projeto->id)->get();
'grandeAreas' => $grandeAreas,
'areas' => $areas, return view('projeto.editar')->with(['projeto' => $projeto,
'subAreas' => $subareas, 'grandeAreas' => $grandeAreas,
'edital' => $edital, 'areas' => $areas,
'users' => $users, 'subAreas' => $subareas,
'funcaoParticipantes' => $funcaoParticipantes, 'edital' => $edital,
'participantes' => $participantes, 'users' => $users,
'arquivos' => $arquivos, 'funcaoParticipantes' => $funcaoParticipantes,
'enum_turno' => Participante::ENUM_TURNO, 'participantes' => $participantes,
'estados' => $this->estados, 'arquivos' => $arquivos,
'areaTematicas' => $areaTematicas, 'enum_turno' => Participante::ENUM_TURNO,
'listaOds' => $ODS, 'estados' => $this->estados,
'trabalhos_user' => $trabalhos_user 'areaTematicas' => $areaTematicas,
]); 'listaOds' => $ODS,
} 'trabalhos_user' => $trabalhos_user,
'proponente' => $proponente
public function destroy(Request $request) ]);
{ }
$projeto = Trabalho::find($request->id);
//dd($trabalho); public function destroy(Request $request)
Storage::deleteDirectory('trabalhos/' . $projeto->evento->id . '/' . $projeto->id); {
$projeto = Trabalho::find($request->id);
$participantes = $projeto->participantes; //dd($trabalho);
foreach ($participantes as $participante) { Storage::deleteDirectory('trabalhos/' . $projeto->evento->id . '/' . $projeto->id);
$plano = $participante->planoTrabalho;
if ($plano) $participantes = $projeto->participantes;
$plano->delete(); foreach ($participantes as $participante) {
$participante->delete(); $plano = $participante->planoTrabalho;
} if ($plano)
$plano->delete();
$projeto->delete(); $participante->delete();
return redirect()->back()->with(['mensagem' => 'Projeto deletado com sucesso!']); }
}
$projeto->delete();
public function excluirParticipante($id) return redirect()->back()->with(['mensagem' => 'Projeto deletado com sucesso!']);
{ }
$participante = Participante::where('id', $id)->first();
//$participante = Participante::where('user_id', Auth()->user()->id) public function excluirParticipante($id)
// ->where('trabalho_id', $id)->first(); {
$participante = Participante::where('id', $id)->first();
//$participante->trabalhos()->detach($id); //$participante = Participante::where('user_id', Auth()->user()->id)
$participante->delete(); // ->where('trabalho_id', $id)->first();
return redirect()->back(); //$participante->trabalhos()->detach($id);
} $participante->delete();
public function solicitarCertificado(Trabalho $trabalho, Request $request) return redirect()->back();
{ }
$users = User::find($request->users);
$coord = $trabalho->coordenador; public function solicitarCertificado(Trabalho $trabalho, Request $request)
$SolicitacaoCertificado = SolicitacaoCertificado::create(); {
Notificacao::create([ $users = User::find($request->users);
'remetente_id' => auth()->user()->id, $coord = $trabalho->coordenador;
'destinatario_id' => $coord->user_id, $SolicitacaoCertificado = SolicitacaoCertificado::create();
'solicitacao_certificado_id' => $SolicitacaoCertificado->id, Notificacao::create([
'trabalho_id' => $trabalho->id, 'remetente_id' => auth()->user()->id,
'lido' => false, 'destinatario_id' => $coord->user_id,
'tipo' => 6 'solicitacao_certificado_id' => $SolicitacaoCertificado->id,
]); 'trabalho_id' => $trabalho->id,
foreach ($users as $user) { 'lido' => false,
SolicitacaoParticipante::create([ 'tipo' => 6
'user_id' => $user->id, ]);
'solicitacao_certificado_id' => $SolicitacaoCertificado->id, foreach ($users as $user) {
]); SolicitacaoParticipante::create([
} 'user_id' => $user->id,
$admins = Administrador::all(); 'solicitacao_certificado_id' => $SolicitacaoCertificado->id,
foreach ($admins as $admin) { ]);
$userTemp = User::find($admin->user_id); }
Notificacao::create([ $admins = Administrador::all();
'remetente_id' => auth()->user()->id, foreach ($admins as $admin) {
'destinatario_id' => $admin->user_id, $userTemp = User::find($admin->user_id);
'solicitacao_certificado_id' => $SolicitacaoCertificado->id, Notificacao::create([
'trabalho_id' => $trabalho->id, 'remetente_id' => auth()->user()->id,
'lido' => false, 'destinatario_id' => $admin->user_id,
'tipo' => 6, 'solicitacao_certificado_id' => $SolicitacaoCertificado->id,
]); 'trabalho_id' => $trabalho->id,
} 'lido' => false,
$destinatarios = $admins->map(function($admin) {return $admin->user;})->push($coord->user); 'tipo' => 6,
Notification::send($destinatarios, new SolicitacaoCertificadoNotification($trabalho->proponente, $trabalho, $userTemp, $users)); ]);
return redirect()->route('trabalho.show', ['id' => $trabalho->id])->with('sucesso', 'Solicitação de certificado/declaração efetuada com sucesso!'); }
} $destinatarios = $admins->map(function($admin) {return $admin->user;})->push($coord->user);
Notification::send($destinatarios, new SolicitacaoCertificadoNotification($trabalho->proponente, $trabalho, $userTemp, $users));
return redirect()->route('trabalho.show', ['id' => $trabalho->id])->with('sucesso', 'Solicitação de certificado/declaração efetuada com sucesso!');
public function novaVersao(Request $request) }
{
$mytime = Carbon::now('America/Recife');
$mytime = $mytime->toDateString(); public function novaVersao(Request $request)
$evento = Evento::find($request->eventoId); {
if ($evento->inicioSubmissao > $mytime) { $mytime = Carbon::now('America/Recife');
if ($mytime >= $evento->fimSubmissao) { $mytime = $mytime->toDateString();
return redirect()->route('home'); $evento = Evento::find($request->eventoId);
} if ($evento->inicioSubmissao > $mytime) {
} if ($mytime >= $evento->fimSubmissao) {
$validatedData = $request->validate([ return redirect()->route('home');
'arquivo' => ['required', 'file', 'mimes:pdf'], }
'eventoId' => ['required', 'integer'], }
'trabalhoId' => ['required', 'integer'], $validatedData = $request->validate([
]); 'arquivo' => ['required', 'file', 'mimes:pdf'],
'eventoId' => ['required', 'integer'],
$trabalho = Trabalho::find($request->trabalhoId); 'trabalhoId' => ['required', 'integer'],
]);
if (Auth::user()->id != $trabalho->autorId) {
return redirect()->route('home'); $trabalho = Trabalho::find($request->trabalhoId);
}
if (Auth::user()->id != $trabalho->autorId) {
$arquivos = $trabalho->arquivo; return redirect()->route('home');
$count = 1; }
foreach ($arquivos as $key) {
$key->versaoFinal = false; $arquivos = $trabalho->arquivo;
$key->save(); $count = 1;
$count++; foreach ($arquivos as $key) {
} $key->versaoFinal = false;
$key->save();
$file = $request->arquivo; $count++;
$path = 'trabalhos/' . $request->eventoId . '/' . $trabalho->id . '/'; }
$nome = $count . ".pdf";
Storage::putFileAs($path, $file, $nome); $file = $request->arquivo;
$path = 'trabalhos/' . $request->eventoId . '/' . $trabalho->id . '/';
$arquivo = Arquivo::create([ $nome = $count . ".pdf";
'nome' => $path . $nome, Storage::putFileAs($path, $file, $nome);
'trabalhoId' => $trabalho->id,
'versaoFinal' => true, $arquivo = Arquivo::create([
]); 'nome' => $path . $nome,
'trabalhoId' => $trabalho->id,
return redirect()->route('evento.visualizar', ['id' => $request->eventoId]); 'versaoFinal' => true,
} ]);
public function detalhesAjax(Request $request) return redirect()->route('evento.visualizar', ['id' => $request->eventoId]);
{ }
$validatedData = $request->validate([
'trabalhoId' => ['required', 'integer'] public function detalhesAjax(Request $request)
]); {
$validatedData = $request->validate([
$trabalho = Trabalho::find($request->trabalhoId); 'trabalhoId' => ['required', 'integer']
$revisores = Atribuicao::where('trabalhoId', $request->trabalhoId)->get(); ]);
$revisoresAux = [];
foreach ($revisores as $key) { $trabalho = Trabalho::find($request->trabalhoId);
if ($key->revisor->user->name != null) { $revisores = Atribuicao::where('trabalhoId', $request->trabalhoId)->get();
array_push($revisoresAux, [ $revisoresAux = [];
'id' => $key->revisor->id, foreach ($revisores as $key) {
'nomeOuEmail' => $key->revisor->user->name if ($key->revisor->user->name != null) {
]); array_push($revisoresAux, [
} else { 'id' => $key->revisor->id,
array_push($revisoresAux, [ 'nomeOuEmail' => $key->revisor->user->name
'id' => $key->revisor->id, ]);
'nomeOuEmail' => $key->revisor->user->email } else {
]); array_push($revisoresAux, [
} 'id' => $key->revisor->id,
} 'nomeOuEmail' => $key->revisor->user->email
$revisoresDisponeis = Revisor::where('eventoId', $trabalho->eventoId)->where('areaId', $trabalho->areaId)->get(); ]);
$revisoresAux1 = []; }
foreach ($revisoresDisponeis as $key) { }
//verificar se ja é um revisor deste trabalhos $revisoresDisponeis = Revisor::where('eventoId', $trabalho->eventoId)->where('areaId', $trabalho->areaId)->get();
$revisorNaoExiste = true; $revisoresAux1 = [];
foreach ($revisoresAux as $key1) { foreach ($revisoresDisponeis as $key) {
if ($key->id == $key1['id']) { //verificar se ja é um revisor deste trabalhos
$revisorNaoExiste = false; $revisorNaoExiste = true;
} foreach ($revisoresAux as $key1) {
} if ($key->id == $key1['id']) {
// $revisorNaoExiste = false;
if ($revisorNaoExiste) { }
if ($key->user->name != null) { }
array_push($revisoresAux1, [ //
'id' => $key->id, if ($revisorNaoExiste) {
'nomeOuEmail' => $key->user->name if ($key->user->name != null) {
]); array_push($revisoresAux1, [
} else { 'id' => $key->id,
array_push($revisoresAux1, [ 'nomeOuEmail' => $key->user->name
'id' => $key->id, ]);
'nomeOuEmail' => $key->user->email } else {
]); array_push($revisoresAux1, [
} 'id' => $key->id,
} 'nomeOuEmail' => $key->user->email
} ]);
return response()->json([ }
'titulo' => $trabalho->titulo, }
'resumo' => $trabalho->resumo, }
'revisores' => $revisoresAux, return response()->json([
'revisoresDisponiveis' => $revisoresAux1 'titulo' => $trabalho->titulo,
], 200); 'resumo' => $trabalho->resumo,
} 'revisores' => $revisoresAux,
'revisoresDisponiveis' => $revisoresAux1
public function atribuirAvaliadorTrabalho(Request $request) ], 200);
{ }
$request->trabalho_id; public function atribuirAvaliadorTrabalho(Request $request)
$trabalho = Trabalho::find($request->trabalho_id); {
$avaliadores = Avaliador::all(); $request->trabalho_id;
$trabalho = Trabalho::find($request->trabalho_id);
return view('coordenadorComissao.gerenciarEdital.atribuirAvaliadorTrabalho', ['avaliadores' => $avaliadores, 'trabalho' => $trabalho, 'evento' => $trabalho->evento]); $avaliadores = Avaliador::all();
}
return view('coordenadorComissao.gerenciarEdital.atribuirAvaliadorTrabalho', ['avaliadores' => $avaliadores, 'trabalho' => $trabalho, 'evento' => $trabalho->evento]);
public function atribuir(Request $request)
{ }
$trabalho = Trabalho::find($request->trabalho_id); public function atribuir(Request $request)
{
$todosAvaliadores = Avaliador::all();
$trabalho = Trabalho::find($request->trabalho_id);
$avaliadores = Avaliador::whereIn('id', $request->avaliadores)->with('user')->get();
$todosAvaliadores = Avaliador::all();
$trabalho->avaliadors()->sync($request->avaliadores);
$avaliadores = Avaliador::whereIn('id', $request->avaliadores)->with('user')->get();
foreach ($avaliadores as $key => $avaliador) {
$trabalho->avaliadors()->sync($request->avaliadores);
$user = $avaliador->user;
$subject = "Trabalho atribuido"; foreach ($avaliadores as $key => $avaliador) {
Mail::to($user->email)
->send(new EventoCriado($user, $subject)); $user = $avaliador->user;
} $subject = "Trabalho atribuido";
Mail::to($user->email)
return view('coordenadorComissao.detalhesEdital', ['evento' => $trabalho->evento]); ->send(new EventoCriado($user, $subject));
} }
public function projetosDoEdital($id) return view('coordenadorComissao.detalhesEdital', ['evento' => $trabalho->evento]);
{ }
$edital = Evento::find($id);
$projetos = Trabalho::where('evento_id', '=', $id)->get(); public function projetosDoEdital($id)
$hoje = Carbon::today('America/Recife'); {
$hoje = $hoje->toDateString(); $edital = Evento::find($id);
$projetos = Trabalho::where('evento_id', '=', $id)->get();
return view('proponente.projetosEdital')->with(['edital' => $edital, 'projetos' => $projetos, 'hoje' => $hoje]); $hoje = Carbon::today('America/Recife');
} $hoje = $hoje->toDateString();
public function baixarAnexoProjeto($id) return view('proponente.projetosEdital')->with(['edital' => $edital, 'projetos' => $projetos, 'hoje' => $hoje]);
{ }
$projeto = Trabalho::find($id);
//dd($projeto); public function baixarAnexoProjeto($id)
if (Storage::disk()->exists($projeto->anexoProjeto)) { {
ob_end_clean(); $projeto = Trabalho::find($id);
return Storage::download($projeto->anexoProjeto); //dd($projeto);
} if (Storage::disk()->exists($projeto->anexoProjeto)) {
return abort(404); ob_end_clean();
} return Storage::download($projeto->anexoProjeto);
}
public function baixarAnexoGrupoPesquisa($id) return abort(404);
{ }
$projeto = Trabalho::find($id);
if (Storage::disk()->exists($projeto->anexoGrupoPesquisa)) { public function baixarAnexoGrupoPesquisa($id)
ob_end_clean(); {
return Storage::download($projeto->anexoGrupoPesquisa); $projeto = Trabalho::find($id);
} if (Storage::disk()->exists($projeto->anexoGrupoPesquisa)) {
return abort(404); ob_end_clean();
} return Storage::download($projeto->anexoGrupoPesquisa);
}
public function baixarAnexoConsu($id) return abort(404);
{ }
$projeto = Trabalho::find($id);
public function baixarAnexoConsu($id)
if (Storage::disk()->exists($projeto->anexoDecisaoCONSU)) { {
ob_end_clean(); $projeto = Trabalho::find($id);
return Storage::download($projeto->anexoDecisaoCONSU);
} if (Storage::disk()->exists($projeto->anexoDecisaoCONSU)) {
return abort(404); ob_end_clean();
} return Storage::download($projeto->anexoDecisaoCONSU);
}
public function baixarAnexoComite($id) return abort(404);
{ }
$projeto = Trabalho::find($id);
public function baixarAnexoComite($id)
if (Storage::disk()->exists($projeto->anexoAutorizacaoComiteEtica)) { {
ob_end_clean(); $projeto = Trabalho::find($id);
return Storage::download($projeto->anexoAutorizacaoComiteEtica);
} if (Storage::disk()->exists($projeto->anexoAutorizacaoComiteEtica)) {
return abort(404); ob_end_clean();
} return Storage::download($projeto->anexoAutorizacaoComiteEtica);
}
public function baixarAnexoLattes($id) return abort(404);
{ }
$projeto = Trabalho::find($id);
public function baixarAnexoLattes($id)
if (Storage::disk()->exists($projeto->anexoLattesCoordenador)) { {
ob_end_clean(); $projeto = Trabalho::find($id);
return Storage::download($projeto->anexoLattesCoordenador);
} if (Storage::disk()->exists($projeto->anexoLattesCoordenador)) {
return abort(404); ob_end_clean();
} return Storage::download($projeto->anexoLattesCoordenador);
}
public function baixarAnexoPlanilha($id) return abort(404);
{ }
$projeto = Trabalho::find($id);
public function baixarAnexoPlanilha($id)
if (Storage::disk()->exists($projeto->anexoPlanilhaPontuacao)) { {
ob_end_clean(); $projeto = Trabalho::find($id);
$file = $projeto->anexoPlanilhaPontuacao;
$ext = explode(".", $file); if (Storage::disk()->exists($projeto->anexoPlanilhaPontuacao)) {
ob_end_clean();
switch ($ext[1]) { $file = $projeto->anexoPlanilhaPontuacao;
case 'xlsx': $ext = explode(".", $file);
$hearder = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet';
break; switch ($ext[1]) {
case 'xls': case 'xlsx':
$hearder = 'application/vnd.ms-excel'; $hearder = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet';
break; break;
case 'ods': case 'xls':
$hearder = 'application/vnd.oasis.opendocument.spreadsheet'; $hearder = 'application/vnd.ms-excel';
break; break;
case 'ods':
default: $hearder = 'application/vnd.oasis.opendocument.spreadsheet';
$hearder = 'application/vnd.ms-excel'; break;
break;
} default:
$hearder = 'application/vnd.ms-excel';
$headers = array( break;
"Content-type: {$hearder}", }
);
$headers = array(
"Content-type: {$hearder}",
return Storage::download($projeto->anexoPlanilhaPontuacao, "Planilha.{$ext[1]}", $headers); );
}
return abort(404);
} return Storage::download($projeto->anexoPlanilhaPontuacao, "Planilha.{$ext[1]}", $headers);
}
public function baixarAnexoJustificativa($id) return abort(404);
{ }
$projeto = Trabalho::find($id);
public function baixarAnexoJustificativa($id)
if (Storage::disk()->exists($projeto->justificativaAutorizacaoEtica)) { {
ob_end_clean(); $projeto = Trabalho::find($id);
return Storage::download($projeto->justificativaAutorizacaoEtica);
} if (Storage::disk()->exists($projeto->justificativaAutorizacaoEtica)) {
ob_end_clean();
return abort(404); return Storage::download($projeto->justificativaAutorizacaoEtica);
} }
public function baixarAnexoDocExtra($id) return abort(404);
{ }
$projeto = Trabalho::find($id);
if (Storage::disk()->exists($projeto->anexo_docExtra)) { public function baixarAnexoDocExtra($id)
ob_end_clean(); {
return Storage::download($projeto->anexo_docExtra); $projeto = Trabalho::find($id);
} if (Storage::disk()->exists($projeto->anexo_docExtra)) {
return abort(404); ob_end_clean();
} return Storage::download($projeto->anexo_docExtra);
}
public function baixarAnexoTemp($eventoId, $nomeAnexo) return abort(404);
{ }
$proponente = Proponente::where('user_id', Auth::user()->id)->first();
public function baixarAnexoTemp($eventoId, $nomeAnexo)
$trabalho = Trabalho::where('proponente_id', $proponente->id)->where('evento_id', $eventoId)->where('status', 'Rascunho') {
->orderByDesc('updated_at')->first(); $proponente = Proponente::where('user_id', Auth::user()->id)->first();
if (Storage::disk()->exists($trabalho->$nomeAnexo)) { $trabalho = Trabalho::where('proponente_id', $proponente->id)->where('evento_id', $eventoId)->where('status', 'Rascunho')
ob_end_clean(); ->orderByDesc('updated_at')->first();
return Storage::download($trabalho->$nomeAnexo);
} if (Storage::disk()->exists($trabalho->$nomeAnexo)) {
return abort(404); ob_end_clean();
} return Storage::download($trabalho->$nomeAnexo);
}
public function baixarEventoTemp($nomeAnexo) return abort(404);
{ }
$eventoTemp = Evento::where('criador_id', Auth::user()->id)->where('anexosStatus', 'temporario')
->orderByDesc('updated_at')->first(); public function baixarEventoTemp($nomeAnexo)
{
if (Storage::disk()->exists($eventoTemp->$nomeAnexo)) { $eventoTemp = Evento::where('criador_id', Auth::user()->id)->where('anexosStatus', 'temporario')
ob_end_clean(); ->orderByDesc('updated_at')->first();
return Storage::download($eventoTemp->$nomeAnexo);
} if (Storage::disk()->exists($eventoTemp->$nomeAnexo)) {
return abort(404); ob_end_clean();
} return Storage::download($eventoTemp->$nomeAnexo);
//xxfa }
return abort(404);
public function update(UpdateTrabalho $request, $id) }
{ //xxfa
try {
if (!$request->has('rascunho')) { public function update(UpdateTrabalho $request, $id)
$request->merge([ {
'status' => 'submetido' try {
]); if (!$request->has('rascunho')) {
} else { $request->merge([
$request->merge([ 'status' => 'submetido'
'status' => 'rascunho' ]);
]); } else {
} $request->merge([
$evento = Evento::find($request->editalId); 'status' => 'rascunho'
$request->merge([ ]);
'coordenador_id' => $evento->coordenadorComissao->id }
]); $evento = Evento::find($request->editalId);
$trabalho = Trabalho::find($id); $request->merge([
$trabalho->ods()->sync($request->ods); 'coordenador_id' => $evento->coordenadorComissao->id
]);
DB::beginTransaction(); $trabalho = Trabalho::find($id);
if (!$trabalho) { $trabalho->ods()->sync($request->ods);
return back()->withErrors(['Proposta não encontrada']); $proponente = Proponente::where('user_id', Auth::user()->id)->first();
}
DB::beginTransaction();
if($evento->tipo=="PIBEX"){ if (!$trabalho) {
$trabalho->update($request->except([ return back()->withErrors(['Proposta não encontrada']);
'anexoProjeto', 'anexoDecisaoCONSU','modalidade','anexo_docExtra' }
]));
}else{ if($evento->tipo=="PIBEX"){
$trabalho->update($request->except([ $trabalho->update($request->except([
'anexoProjeto', 'anexoDecisaoCONSU', 'anexoPlanilhaPontuacao', 'anexoProjeto', 'anexoDecisaoCONSU','modalidade','anexo_docExtra'
'anexoLattesCoordenador', 'anexoGrupoPesquisa', 'anexoAutorizacaoComiteEtica', ]));
'justificativaAutorizacaoEtica','modalidade','anexo_docExtra' }else{
])); $trabalho->update($request->except([
} 'anexoProjeto', 'anexoDecisaoCONSU', 'anexoPlanilhaPontuacao',
'anexoLattesCoordenador', 'anexoGrupoPesquisa', 'anexoAutorizacaoComiteEtica',
$pasta = 'trabalhos/' . $evento->id . '/' . $trabalho->id; 'justificativaAutorizacaoEtica','modalidade','anexo_docExtra'
]));
$trabalho = $this->armazenarAnexosFinais($request, $pasta, $trabalho, $evento); }
$trabalho->save();
$pasta = 'trabalhos/' . $evento->id . '/' . $trabalho->id;
if($request->integrantesExistentes == null){ $trabalho = $this->armazenarAnexosFinais($request, $pasta, $trabalho, $evento);
$request->integrantesExistentes = []; $trabalho->save();
}
$usuariosRemovidos = TrabalhoUser::where('trabalho_id', $trabalho->id)->whereNotIn('user_id', $request->integrantesExistentes)->get();
if($request->integrantesExistentes == null){
if($usuariosRemovidos->first() != null) { $request->integrantesExistentes = [];
foreach($usuariosRemovidos as $usuarioRemovido){ }
$usuarioRemovido->delete(); $usuariosRemovidos = TrabalhoUser::where('trabalho_id', $trabalho->id)->whereNotIn('user_id', $request->integrantesExistentes)->get();
}
} if($usuariosRemovidos->first() != null) {
foreach($usuariosRemovidos as $usuarioRemovido){
if($evento->natureza_id == 3 && $request->integrantes != null){ $usuarioRemovido->delete();
foreach($request->integrantes as $integrante){ }
$integrante = explode(',', $integrante); }
$trabalho_user = new TrabalhoUser();
$trabalho_user->user_id = $integrante[0]; if($evento->natureza_id == 3 && $request->integrantes != null){
$trabalho_user->funcao_participante_id = $integrante[1]; foreach($request->integrantes as $integrante){
$trabalho_user->trabalho_id = $trabalho->id; $integrante = explode(',', $integrante);
$trabalho_user->save(); $trabalho_user = new TrabalhoUser();
} $trabalho_user->user_id = $integrante[0];
} $trabalho_user->funcao_participante_id = $integrante[1];
$trabalho_user->trabalho_id = $trabalho->id;
if ($request->marcado == null) { $trabalho_user->save();
$idExcluido = $trabalho->participantes->pluck('id'); }
}
} else {
$idExcluido = []; if ($evento->numParticipantes != 0) {
} if ($request->marcado == null) {
$idExcluido = $trabalho->participantes->pluck('id');
foreach ($request->participante_id as $key => $value) {
if ($request->marcado != null && array_search($key, $request->marcado) === false) { } else {
if ($value !== null) $idExcluido = [];
array_push($idExcluido, $value); }
}
} foreach ($request->participante_id as $key => $value) {
if ($request->marcado != null && array_search($key, $request->marcado) === false) {
if ($value !== null)
foreach ($idExcluido as $key => $value) { array_push($idExcluido, $value);
$trabalho->participantes()->find($value)->delete(); }
} }
$trabalho->refresh();
if ($request->has('marcado')) { foreach ($idExcluido as $key => $value) {
foreach ($request->marcado as $key => $part) { $trabalho->participantes()->find($value)->delete();
$part = intval($part); }
$passwordTemporario = Str::random(8); $trabalho->refresh();
$data['name'] = $request->name[$part]; }
$data['email'] = $request->email[$part];
$data['password'] = bcrypt($passwordTemporario); if ($request->has('marcado')) {
$data['data_de_nascimento'] = $request->data_de_nascimento[$part]; foreach ($request->marcado as $key => $part) {
$data['cpf'] = $request->cpf[$part]; $part = intval($part);
$data['tipo'] = 'participante'; $passwordTemporario = Str::random(8);
$data['funcao_participante_id'] = 4; $data['name'] = $request->name[$part];
$data['rg'] = $request->rg[$part]; $data['email'] = $request->email[$part];
$data['celular'] = $request->celular[$part]; $data['password'] = bcrypt($passwordTemporario);
$data['cep'] = $request->cep[$part]; $data['data_de_nascimento'] = $request->data_de_nascimento[$part];
$data['uf'] = $request->uf[$part]; $data['cpf'] = $request->cpf[$part];
$data['cidade'] = $request->cidade[$part]; $data['tipo'] = 'participante';
$data['rua'] = $request->rua[$part]; $data['funcao_participante_id'] = 4;
$data['numero'] = $request->numero[$part]; $data['rg'] = $request->rg[$part];
$data['bairro'] = $request->bairro[$part]; $data['celular'] = $request->celular[$part];
$data['complemento'] = $request->complemento[$part]; $data['cep'] = $request->cep[$part];
$data['uf'] = $request->uf[$part];
if ($request->instituicao[$part] != "Outra") { $data['cidade'] = $request->cidade[$part];
$data['instituicao'] = $request->instituicao[$part]; $data['rua'] = $request->rua[$part];
} else { $data['numero'] = $request->numero[$part];
$data['instituicao'] = $request->outrainstituicao[$part]; $data['bairro'] = $request->bairro[$part];
} $data['complemento'] = $request->complemento[$part];
$data['total_periodos'] = $request->total_periodos[$part]; if ($request->instituicao[$part] != "Outra") {
$data['instituicao'] = $request->instituicao[$part];
if ($request->curso[$part] != "Outro") { } else {
$data['curso'] = $request->curso[$part]; $data['instituicao'] = $request->outrainstituicao[$part];
} else { }
$data['curso'] = $request->outrocurso[$part];
} $data['total_periodos'] = $request->total_periodos[$part];
$data['turno'] = $request->turno[$part]; if ($request->curso[$part] != "Outro") {
$data['periodo_atual'] = $request->periodo_atual[$part]; $data['curso'] = $request->curso[$part];
$data['ordem_prioridade'] = $request->ordem_prioridade[$part]; } else {
if($evento->tipo!="PIBEX") { $data['curso'] = $request->outrocurso[$part];
$data['media_do_curso'] = $request->media_do_curso[$part]; }
}
$data['nomePlanoTrabalho'] = $request->nomePlanoTrabalho[$part]; $data['turno'] = $request->turno[$part];
$data['periodo_atual'] = $request->periodo_atual[$part];
if($request->participante_id[$part] != null){ $data['ordem_prioridade'] = $request->ordem_prioridade[$part];
$participante = Participante::find($request->participante_id[$part]); if($evento->tipo!="PIBEX") {
$user = User::where('email', $participante->user->email)->first(); $data['media_do_curso'] = $request->media_do_curso[$part];
}else{ }
$user = User::where('email', $data['email'])->first(); $data['nomePlanoTrabalho'] = $request->nomePlanoTrabalho[$part];
}
if($request->participante_id[$part] != null){
$participante = Participante::find($request->participante_id[$part]);
$user = User::where('email', $participante->user->email)->first();
}else{
if ($user == null) { $user = User::where('email', $data['email'])->first();
$data['usuarioTemp'] = true; }
$user = User::create($data);
$endereco = Endereco::create($data);
$endereco->user()->save($user);
$participante = Participante::create($data);
$participante->data_entrada = $participante->created_at; if ($user == null) {
$user->participantes()->save($participante); $data['usuarioTemp'] = true;
$trabalho->participantes()->save($participante); $user = User::create($data);
$participante->trabalho_id = $trabalho->id; $endereco = Endereco::create($data);
$participante->save(); $endereco->user()->save($user);
$participante = Participante::create($data);
} else { $participante->data_entrada = $participante->created_at;
// $user = $participante->user; $user->participantes()->save($participante);
$user->update($data); $trabalho->participantes()->save($participante);
if( $user->endereco == null){ $participante->trabalho_id = $trabalho->id;
$endereco = Endereco::create($data); $participante->save();
$endereco->user()->save($user);
}else{ } else {
$endereco = $user->endereco; // $user = $participante->user;
$endereco->update($data); $user->update($data);
} if( $user->endereco == null){
$participante = $user->participantes->where('trabalho_id', $trabalho->id)->where('id', $request->participante_id[$part])->first(); $endereco = Endereco::create($data);
// dd($participante); $endereco->user()->save($user);
if ($participante == null) { }else{
// dd('part null'); $endereco = $user->endereco;
$participante = Participante::create($data); $endereco->update($data);
$user->participantes()->save($participante); }
$trabalho->participantes()->save($participante); $participante = $user->participantes->where('trabalho_id', $trabalho->id)->where('id', $request->participante_id[$part])->first();
} else { // dd($participante);
// dd('part update'); if ($participante == null) {
$participante->update($data); // dd('part null');
} $participante = Participante::create($data);
$user->participantes()->save($participante);
} $trabalho->participantes()->save($participante);
} else {
if ($request->has('anexoPlanoTrabalho') && array_key_exists($part, $request->anexoPlanoTrabalho) && $request->nomePlanoTrabalho[$part] != null) { // dd('part update');
if (Arquivo::where('participanteId', $participante->id)->where('trabalhoId', $trabalho->id)->count()) { $participante->update($data);
$arquivo = Arquivo::where('participanteId', $participante->id)->where('trabalhoId', $trabalho->id)->first(); }
$path = 'trabalhos/' . $evento->id . '/' . $trabalho->id . '/';
$nome = $data['nomePlanoTrabalho'] . ".pdf"; }
$titulo = $data['nomePlanoTrabalho'];
$file = $request->anexoPlanoTrabalho[$part]; if ($request->has('anexoPlanoTrabalho') && array_key_exists($part, $request->anexoPlanoTrabalho) && $request->nomePlanoTrabalho[$part] != null) {
Storage::putFileAs($path, $file, $nome); if (Arquivo::where('participanteId', $participante->id)->where('trabalhoId', $trabalho->id)->count()) {
$arquivo->update([ $arquivo = Arquivo::where('participanteId', $participante->id)->where('trabalhoId', $trabalho->id)->first();
'titulo' => $titulo, $path = 'trabalhos/' . $evento->id . '/' . $trabalho->id . '/';
'nome' => $path . $nome, $nome = $data['nomePlanoTrabalho'] . ".pdf";
'data' => now(), $titulo = $data['nomePlanoTrabalho'];
]); $file = $request->anexoPlanoTrabalho[$part];
} else { Storage::putFileAs($path, $file, $nome);
$path = 'trabalhos/' . $evento->id . '/' . $trabalho->id . '/'; $arquivo->update([
$nome = $data['nomePlanoTrabalho'] . ".pdf"; 'titulo' => $titulo,
$file = $request->anexoPlanoTrabalho[$part]; 'nome' => $path . $nome,
Storage::putFileAs($path, $file, $nome); 'data' => now(),
$arquivo = new Arquivo(); ]);
$arquivo->titulo = $data['nomePlanoTrabalho']; } else {
$arquivo->nome = $path . $nome; $path = 'trabalhos/' . $evento->id . '/' . $trabalho->id . '/';
$arquivo->trabalhoId = $trabalho->id; $nome = $data['nomePlanoTrabalho'] . ".pdf";
$arquivo->data = now(); $file = $request->anexoPlanoTrabalho[$part];
$arquivo->participanteId = $participante->id; Storage::putFileAs($path, $file, $nome);
$arquivo->versaoFinal = true; $arquivo = new Arquivo();
$arquivo->save(); $arquivo->titulo = $data['nomePlanoTrabalho'];
$arquivo->nome = $path . $nome;
} $arquivo->trabalhoId = $trabalho->id;
$arquivo->data = now();
} $arquivo->participanteId = $participante->id;
$arquivo->versaoFinal = true;
} $arquivo->save();
} }
DB::commit(); }
if(Auth::user()->tipo == 'administrador'){ }
return redirect(route('admin.analisarProposta',['id'=>$trabalho->id]));
} } else {
$data['nomePlanoTrabalho'] = $request->nomePlanoTrabalho;
if (!$request->has('rascunho')) {
Notification::send($trabalho->proponente->user, new SubmissaoNotification($trabalho)); if (Arquivo::where('proponenteId', $proponente->id)->where('trabalhoId', $trabalho->id)->count()) {
} $arquivo = Arquivo::where('proponenteId', $proponente->id)->where('trabalhoId', $trabalho->id)->first();
$path = 'trabalhos/' . $evento->id . '/' . $trabalho->id . '/';
return redirect(route('proponente.projetos'))->with(['mensagem' => 'Proposta atualizada!']); $nome = $data['nomePlanoTrabalho'] . ".pdf";
$titulo = $data['nomePlanoTrabalho'];
} catch (\Throwable $th) { if ($request->has('anexoPlanoTrabalho')) {
DB::rollback(); $file = $request->anexoPlanoTrabalho;
return redirect(route('proponente.projetos'))->with(['mensagem' => $th->getMessage()]); Storage::putFileAs($path, $file, $nome);
} } else {
if($arquivo->nome != $path.$nome) {
} Storage::rename( $arquivo->nome, $path.$nome );
}
public function buscarUsuario(Request $request) { }
$usuario = User::where('cpf', $request->cpf_consulta)->first(); $arquivo->update([
$funcao = FuncaoParticipantes::where('id', $request->funcao)->first(); 'titulo' => $titulo,
if($usuario){ 'nome' => $path . $nome,
return json_encode([$usuario, $funcao]); 'data' => now(),
} ]);
} else {
return json_encode('inexistente'); $path = 'trabalhos/' . $evento->id . '/' . $trabalho->id . '/';
} $nome = $data['nomePlanoTrabalho'] . ".pdf";
$file = $request->anexoPlanoTrabalho;
Storage::putFileAs($path, $file, $nome);
public function salvar(StoreTrabalho $request) $arquivo = new Arquivo();
{ $arquivo->titulo = $data['nomePlanoTrabalho'];
$arquivo->nome = $path . $nome;
try { $arquivo->trabalhoId = $trabalho->id;
if (!$request->has('rascunho')) { $arquivo->data = now();
$request->merge([ $arquivo->proponenteId = $proponente->id;
'status' => 'submetido' $arquivo->versaoFinal = true;
]); $arquivo->save();
} }
$evento = Evento::find($request->editalId); }
$request->merge([
'coordenador_id' => $evento->coordenadorComissao->id DB::commit();
]);
if(Auth::user()->tipo == 'administrador'){
DB::beginTransaction(); return redirect(route('admin.analisarProposta',['id'=>$trabalho->id]));
}
if($evento->tipo=="PIBEX"){
$trabalho = Auth::user()->proponentes->trabalhos() if (!$request->has('rascunho')) {
->create($request->except([ Notification::send($trabalho->proponente->user, new SubmissaoNotification($trabalho));
'anexoProjeto', 'anexoDecisaoCONSU','modalidade','anexo_docExtra' }
]));
}else{ return redirect(route('proponente.projetos'))->with(['mensagem' => 'Proposta atualizada!']);
$trabalho = Auth::user()->proponentes->trabalhos()
->create($request->except([ } catch (\Throwable $th) {
'anexoProjeto', 'anexoDecisaoCONSU', 'anexoPlanilhaPontuacao', DB::rollback();
'anexoLattesCoordenador', 'anexoGrupoPesquisa', 'anexoAutorizacaoComiteEtica', return redirect(route('proponente.projetos'))->with(['mensagem' => $th->getMessage()]);
'justificativaAutorizacaoEtica','modalidade','anexo_docExtra' }
]));
} }
public function buscarUsuario(Request $request) {
if ($request->has('marcado')) { $usuario = User::where('cpf', $request->cpf_consulta)->first();
foreach ($request->marcado as $key => $part) { $funcao = FuncaoParticipantes::where('id', $request->funcao)->first();
$part = intval($part); if($usuario){
return json_encode([$usuario, $funcao]);
$passwordTemporario = Str::random(8); }
$data['name'] = $request->name[$part];
$data['email'] = $request->email[$part]; return json_encode('inexistente');
$data['password'] = bcrypt($passwordTemporario); }
$data['data_de_nascimento'] = $request->data_de_nascimento[$part];
$data['cpf'] = $request->cpf[$part];
$data['tipo'] = 'participante'; public function salvar(StoreTrabalho $request)
$data['funcao_participante_id'] = 4; {
$data['rg'] = $request->rg[$part];
$data['celular'] = $request->celular[$part]; try {
$data['cep'] = $request->cep[$part]; if (!$request->has('rascunho')) {
$data['uf'] = $request->uf[$part]; $request->merge([
$data['cidade'] = $request->cidade[$part]; 'status' => 'submetido'
$data['rua'] = $request->rua[$part]; ]);
$data['numero'] = $request->numero[$part]; }
$data['bairro'] = $request->bairro[$part]; $evento = Evento::find($request->editalId);
$data['complemento'] = $request->complemento[$part]; $proponente = Proponente::where('user_id', Auth::user()->id)->first();
$request->merge([
if ($request->instituicao[$part] != "Outra") { 'coordenador_id' => $evento->coordenadorComissao->id
$data['instituicao'] = $request->instituicao[$part]; ]);
} else {
$data['instituicao'] = $request->outrainstituicao[$part]; DB::beginTransaction();
}
if($evento->tipo=="PIBEX"){
$data['total_periodos'] = $request->total_periodos[$part]; $trabalho = Auth::user()->proponentes->trabalhos()
->create($request->except([
if ($request->curso[$part] != "Outro") { 'anexoProjeto', 'anexoDecisaoCONSU','modalidade','anexo_docExtra'
$data['curso'] = $request->curso[$part]; ]));
} else { }else{
$data['curso'] = $request->outrocurso[$part]; $trabalho = Auth::user()->proponentes->trabalhos()
} ->create($request->except([
'anexoProjeto', 'anexoDecisaoCONSU', 'anexoPlanilhaPontuacao',
$data['turno'] = $request->turno[$part]; 'anexoLattesCoordenador', 'anexoGrupoPesquisa', 'anexoAutorizacaoComiteEtica',
$data['periodo_atual'] = $request->periodo_atual[$part]; 'justificativaAutorizacaoEtica','modalidade','anexo_docExtra'
$data['ordem_prioridade'] = $request->ordem_prioridade[$part]; ]));
if($evento->tipo!="PIBEX") { }
$data['media_do_curso'] = $request->media_do_curso[$part];
}
$data['nomePlanoTrabalho'] = $request->nomePlanoTrabalho[$part]; if ($request->has('marcado')) {
foreach ($request->marcado as $key => $part) {
$user = User::where('email', $data['email'])->first(); $part = intval($part);
if ($user == null) {
$data['usuarioTemp'] = true; $passwordTemporario = Str::random(8);
$user = User::create($data); $data['name'] = $request->name[$part];
$endereco = Endereco::create($data); $data['email'] = $request->email[$part];
$endereco->user()->save($user); $data['password'] = bcrypt($passwordTemporario);
} $data['data_de_nascimento'] = $request->data_de_nascimento[$part];
// $participante = $user->participantes->where('trabalho_id', $trabalho->id)->first(); $data['cpf'] = $request->cpf[$part];
// if ($participante == null){ $data['tipo'] = 'participante';
// $participante = Participante::create($data); $data['funcao_participante_id'] = 4;
// } $data['rg'] = $request->rg[$part];
$participante = Participante::create($data); $data['celular'] = $request->celular[$part];
$participante->data_entrada = $participante->created_at; $data['cep'] = $request->cep[$part];
$user->participantes()->save($participante); $data['uf'] = $request->uf[$part];
$data['cidade'] = $request->cidade[$part];
$participante->trabalho_id = $trabalho->id; $data['rua'] = $request->rua[$part];
$participante->save(); $data['numero'] = $request->numero[$part];
$data['bairro'] = $request->bairro[$part];
if ($request->has('anexoPlanoTrabalho')) { $data['complemento'] = $request->complemento[$part];
$path = 'trabalhos/' . $evento->id . '/' . $trabalho->id . '/';
$nome = $data['nomePlanoTrabalho'] . ".pdf"; if ($request->instituicao[$part] != "Outra") {
$file = $request->anexoPlanoTrabalho[$part]; $data['instituicao'] = $request->instituicao[$part];
Storage::putFileAs($path, $file, $nome); } else {
$arquivo = new Arquivo(); $data['instituicao'] = $request->outrainstituicao[$part];
$arquivo->titulo = $data['nomePlanoTrabalho']; }
$arquivo->nome = $path . $nome;
$arquivo->trabalhoId = $trabalho->id; $data['total_periodos'] = $request->total_periodos[$part];
$arquivo->data = now();
$arquivo->participanteId = $participante->id; if ($request->curso[$part] != "Outro") {
$arquivo->versaoFinal = true; $data['curso'] = $request->curso[$part];
$arquivo->save(); } else {
$data['curso'] = $request->outrocurso[$part];
} }
} $data['turno'] = $request->turno[$part];
} $data['periodo_atual'] = $request->periodo_atual[$part];
$data['ordem_prioridade'] = $request->ordem_prioridade[$part];
$evento->trabalhos()->save($trabalho); if($evento->tipo!="PIBEX") {
$data['media_do_curso'] = $request->media_do_curso[$part];
$pasta = 'trabalhos/' . $evento->id . '/' . $trabalho->id; }
$trabalho = $this->armazenarAnexosFinais($request, $pasta, $trabalho, $evento); $data['nomePlanoTrabalho'] = $request->nomePlanoTrabalho[$part];
$trabalho->modalidade = $request->modalidade;
$trabalho->save(); $user = User::where('email', $data['email'])->first();
if ($user == null) {
$data['usuarioTemp'] = true;
if($evento->natureza_id == 3){ $user = User::create($data);
foreach($request->integrantes as $integrante){ $endereco = Endereco::create($data);
$integrante = explode(',', $integrante); $endereco->user()->save($user);
}
$trabalho_user = new TrabalhoUser(); // $participante = $user->participantes->where('trabalho_id', $trabalho->id)->first();
$trabalho_user->user_id = $integrante[0]; // if ($participante == null){
$trabalho_user->funcao_participante_id = $integrante[1]; // $participante = Participante::create($data);
$trabalho_user->trabalho_id = $trabalho->id; // }
$trabalho_user->save(); $participante = Participante::create($data);
} $participante->data_entrada = $participante->created_at;
} $user->participantes()->save($participante);
$trabalho->ods()->sync($request->ods); $participante->trabalho_id = $trabalho->id;
DB::commit(); $participante->save();
if (!$request->has('rascunho')) {
//Notificações if ($request->has('anexoPlanoTrabalho')) {
//Coordenador $path = 'trabalhos/' . $evento->id . '/' . $trabalho->id . '/';
$userTemp = User::find($evento->coordenadorComissao->user_id); $nome = $data['nomePlanoTrabalho'] . ".pdf";
$notificacao = App\Notificacao::create([ $file = $request->anexoPlanoTrabalho[$part];
'remetente_id' => Auth::user()->id, Storage::putFileAs($path, $file, $nome);
'destinatario_id' => $evento->coordenadorComissao->user_id, $arquivo = new Arquivo();
'trabalho_id' => $trabalho->id, $arquivo->titulo = $data['nomePlanoTrabalho'];
'lido' => false, $arquivo->nome = $path . $nome;
'tipo' => 1, $arquivo->trabalhoId = $trabalho->id;
]); $arquivo->data = now();
$notificacao->save(); $arquivo->participanteId = $participante->id;
// SubmissaoRecebidaNotification.php $arquivo->versaoFinal = true;
Notification::send($userTemp, new SubmissaoRecebidaNotification($trabalho->id,$trabalho->titulo,$userTemp)); $arquivo->save();
//Proponente
$notificacao = App\Notificacao::create([ }
'remetente_id' => Auth::user()->id,
'destinatario_id' => Auth::user()->id, }
'trabalho_id' => $trabalho->id, } else {
'lido' => false, $data['nomePlanoTrabalho'] = $request->nomePlanoTrabalho;
'tipo' => 1, if ($request->has('anexoPlanoTrabalho')) {
]); $path = 'trabalhos/' . $evento->id . '/' . $trabalho->id . '/';
$notificacao->save(); $nome = $data['nomePlanoTrabalho'] . ".pdf";
// submissao e notificação.php $trabalho->id,$trabalho->titulo $file = $request->anexoPlanoTrabalho;
Notification::send(Auth::user(), new SubmissaoNotification($trabalho)); Storage::putFileAs($path, $file, $nome);
$arquivo = new Arquivo();
$arquivo->titulo = $data['nomePlanoTrabalho'];
return redirect(route('proponente.projetos'))->with(['mensagem' => 'Proposta submetida!']); $arquivo->nome = $path . $nome;
} else { $arquivo->trabalhoId = $trabalho->id;
return redirect(route('proponente.projetos'))->with(['mensagem' => 'Rascunho salvo!']); $arquivo->data = now();
$arquivo->proponenteId = $proponente->id;
} $arquivo->versaoFinal = true;
} catch (\Throwable $th) { $arquivo->save();
DB::rollback();
return redirect(route('proponente.projetos'))->with(['mensagem' => $th->getMessage()]); }
} }
$evento->trabalhos()->save($trabalho);
}
$pasta = 'trabalhos/' . $evento->id . '/' . $trabalho->id;
public function atribuirDados(Request $request, $edital, Trabalho $projeto = null) $trabalho = $this->armazenarAnexosFinais($request, $pasta, $trabalho, $evento);
{ $trabalho->modalidade = $request->modalidade;
if ($projeto == null) { $trabalho->save();
$projeto = new Trabalho();
}
if($evento->natureza_id == 3){
$proponente = User::find(auth()->user()->id)->proponentes; foreach($request->integrantes as $integrante){
$hoje = now(); $integrante = explode(',', $integrante);
$projeto->titulo = $request->nomeProjeto; $trabalho_user = new TrabalhoUser();
$projeto->coordenador_id = $edital->coordenadorComissao->id; $trabalho_user->user_id = $integrante[0];
$projeto->grande_area_id = $request->grandeArea; $trabalho_user->funcao_participante_id = $integrante[1];
$projeto->area_id = $request->area; $trabalho_user->trabalho_id = $trabalho->id;
$projeto->sub_area_id = $request->subArea; $trabalho_user->save();
$projeto->pontuacaoPlanilha = $request->pontuacaoPlanilha; }
$projeto->linkGrupoPesquisa = $request->linkGrupo; }
$projeto->linkLattesEstudante = $request->linkLattesEstudante;
$projeto->data = $hoje; $trabalho->ods()->sync($request->ods);
$projeto->evento_id = $request->editalId; DB::commit();
$projeto->status = 'submetido'; if (!$request->has('rascunho')) {
$projeto->proponente_id = $proponente->id; //Notificações
$projeto->conflitosInteresse = $request->conflitosInteresse; //Coordenador
$userTemp = User::find($evento->coordenadorComissao->user_id);
// Salvando anexos no storage $notificacao = App\Notificacao::create([
$projeto->save(); 'remetente_id' => Auth::user()->id,
$pasta = 'trabalhos/' . $edital->id . '/' . $projeto->id; 'destinatario_id' => $evento->coordenadorComissao->user_id,
'trabalho_id' => $trabalho->id,
$projeto = $this->armazenarAnexosFinais($request, $pasta, $projeto, $edital); 'lido' => false,
'tipo' => 1,
return $projeto; ]);
} $notificacao->save();
// SubmissaoRecebidaNotification.php
public function salvarParticipantes(Request $request, $edital, $projeto, $edicao = false) Notification::send($userTemp, new SubmissaoRecebidaNotification($trabalho->id,$trabalho->titulo,$userTemp));
{ //Proponente
if ($edicao) { $notificacao = App\Notificacao::create([
'remetente_id' => Auth::user()->id,
$participantes = $projeto->participantes; 'destinatario_id' => Auth::user()->id,
$participantesPermanecem = collect(); 'trabalho_id' => $trabalho->id,
// dd($request->all()); 'lido' => false,
foreach ($request->participante_id as $key => $id) { 'tipo' => 1,
// Novo participante ]);
if ($id == 0 || $id == null) { $notificacao->save();
$userParticipante = User::where('email', $request->emailParticipante[$key])->first(); // submissao e notificação.php $trabalho->id,$trabalho->titulo
Notification::send(Auth::user(), new SubmissaoNotification($trabalho));
$participante = new Participante();
if ($userParticipante == null) { return redirect(route('proponente.projetos'))->with(['mensagem' => 'Proposta submetida!']);
$passwordTemporario = Str::random(8); } else {
return redirect(route('proponente.projetos'))->with(['mensagem' => 'Rascunho salvo!']);
$usuario = new User();
$usuario->email = $request->emailParticipante[$key]; }
$usuario->password = bcrypt($passwordTemporario); } catch (\Throwable $th) {
$usuario->usuarioTemp = false; DB::rollback();
$usuario->name = $request->nomeParticipante[$key]; return redirect(route('proponente.projetos'))->with(['mensagem' => $th->getMessage()]);
$usuario->tipo = 'participante'; }
$usuario->instituicao = $request->universidade[$key];
$usuario->cpf = $request->cpf[$key];
$usuario->celular = $request->celular[$key]; }
$endereco = new Endereco(); public function atribuirDados(Request $request, $edital, Trabalho $projeto = null)
$endereco->rua = $request->rua[$key]; {
$endereco->numero = $request->numero[$key]; if ($projeto == null) {
$endereco->bairro = $request->bairro[$key]; $projeto = new Trabalho();
$endereco->cidade = $request->cidade[$key]; }
$endereco->uf = $request->uf[$key];
$endereco->cep = $request->cep[$key]; $proponente = User::find(auth()->user()->id)->proponentes;
$endereco->complemento = $request->complemento[$key]; $hoje = now();
$endereco->save();
$projeto->titulo = $request->nomeProjeto;
$usuario->enderecoId = $endereco->id; $projeto->coordenador_id = $edital->coordenadorComissao->id;
$projeto->grande_area_id = $request->grandeArea;
$usuario->save(); $projeto->area_id = $request->area;
$projeto->sub_area_id = $request->subArea;
$participante->user_id = $usuario->id; $projeto->pontuacaoPlanilha = $request->pontuacaoPlanilha;
$participante->trabalho_id = $projeto->id; $projeto->linkGrupoPesquisa = $request->linkGrupo;
$participante->funcao_participante_id = $request->funcaoParticipante[$key]; $projeto->linkLattesEstudante = $request->linkLattesEstudante;
$participante->confirmacao_convite = true; $projeto->data = $hoje;
$participante->rg = $request->rg[$key]; $projeto->evento_id = $request->editalId;
$participante->data_de_nascimento = $request->data_de_nascimento[$key]; $projeto->status = 'submetido';
$participante->curso = $request->curso[$key]; $projeto->proponente_id = $proponente->id;
$participante->turno = $request->turno[$key]; $projeto->conflitosInteresse = $request->conflitosInteresse;
$participante->ordem_prioridade = $request->ordem_prioridade[$key];
$participante->periodo_atual = $request->periodo_atual[$key]; // Salvando anexos no storage
$participante->total_periodos = $request->total_periodos[$key]; $projeto->save();
if($edital->tipo != "PIBEX"){ $pasta = 'trabalhos/' . $edital->id . '/' . $projeto->id;
$participante->media_do_curso = $request->media_geral_curso[$key];
} $projeto = $this->armazenarAnexosFinais($request, $pasta, $projeto, $edital);
$participante->save();
return $projeto;
}
$subject = "Participante de Projeto";
Mail::to($request->emailParticipante[$key])->send(new EmailParaUsuarioNaoCadastrado(Auth()->user()->name, $projeto->titulo, 'Participante', $edital->nome, $passwordTemporario, $subject, $edital->tipo,$edital->natureza_id)); public function salvarParticipantes(Request $request, $edital, $projeto, $edicao = false)
} else { {
if ($edicao) {
$participante->user_id = $userParticipante->id;
$participante->trabalho_id = $projeto->id; $participantes = $projeto->participantes;
$participante->funcao_participante_id = $request->funcaoParticipante[$key]; $participantesPermanecem = collect();
$participante->confirmacao_convite = true; // dd($request->all());
$participante->rg = $request->rg[$key]; foreach ($request->participante_id as $key => $id) {
$participante->data_de_nascimento = $request->data_de_nascimento[$key]; // Novo participante
$participante->curso = $request->curso[$key]; if ($id == 0 || $id == null) {
$participante->turno = $request->turno[$key]; $userParticipante = User::where('email', $request->emailParticipante[$key])->first();
$participante->ordem_prioridade = $request->ordem_prioridade[$key];
$participante->periodo_atual = $request->periodo_atual[$key]; $participante = new Participante();
$participante->total_periodos = $request->total_periodos[$key];
if($edital->tipo != "PIBEX"){ if ($userParticipante == null) {
$participante->media_do_curso = $request->media_geral_curso[$key]; $passwordTemporario = Str::random(8);
}
$participante->save(); $usuario = new User();
$usuario->email = $request->emailParticipante[$key];
$subject = "Participante de Projeto"; $usuario->password = bcrypt($passwordTemporario);
Mail::to($request->emailParticipante[$key]) $usuario->usuarioTemp = false;
->send(new SubmissaoTrabalho($userParticipante, $subject, $edital, $projeto)); $usuario->name = $request->nomeParticipante[$key];
$usuario->tipo = 'participante';
} $usuario->instituicao = $request->universidade[$key];
$usuario->cpf = $request->cpf[$key];
if ($request->nomePlanoTrabalho[$key] != null) { $usuario->celular = $request->celular[$key];
$usuario = User::where('email', $request->emailParticipante[$key])->first();
$participante = Participante::where([['user_id', '=', $usuario->id], ['trabalho_id', '=', $projeto->id]])->first(); $endereco = new Endereco();
$endereco->rua = $request->rua[$key];
$path = 'trabalhos/' . $edital->id . '/' . $projeto->id . '/'; $endereco->numero = $request->numero[$key];
$nome = $request->nomePlanoTrabalho[$key] . ".pdf"; $endereco->bairro = $request->bairro[$key];
$file = $request->anexoPlanoTrabalho[$key]; $endereco->cidade = $request->cidade[$key];
Storage::putFileAs($path, $file, $nome); $endereco->uf = $request->uf[$key];
$endereco->cep = $request->cep[$key];
$agora = now(); $endereco->complemento = $request->complemento[$key];
$arquivo = new Arquivo(); $endereco->save();
$arquivo->titulo = $request->nomePlanoTrabalho[$key];
$arquivo->nome = $path . $nome; $usuario->enderecoId = $endereco->id;
$arquivo->trabalhoId = $projeto->id;
$arquivo->data = $agora; $usuario->save();
$arquivo->participanteId = $participante->id;
$arquivo->versaoFinal = true; $participante->user_id = $usuario->id;
$arquivo->save(); $participante->trabalho_id = $projeto->id;
// dd($arquivo); $participante->funcao_participante_id = $request->funcaoParticipante[$key];
} $participante->confirmacao_convite = true;
// Editado $participante->rg = $request->rg[$key];
} elseif ($id > 0) { $participante->data_de_nascimento = $request->data_de_nascimento[$key];
// Removo dos cantidatos excluidos $participante->curso = $request->curso[$key];
$participante = Participante::find($id); $participante->turno = $request->turno[$key];
$participantesPermanecem->push($participante); $participante->ordem_prioridade = $request->ordem_prioridade[$key];
$usuario = $participante->user; $participante->periodo_atual = $request->periodo_atual[$key];
$endereco = $usuario->endereco; $participante->total_periodos = $request->total_periodos[$key];
if($edital->tipo != "PIBEX"){
$usuario->usuarioTemp = false; $participante->media_do_curso = $request->media_geral_curso[$key];
$usuario->name = $request->nomeParticipante[$key]; }
$usuario->tipo = 'participante'; $participante->save();
$usuario->instituicao = $request->universidade[$key];
$usuario->cpf = $request->cpf[$key];
$usuario->celular = $request->celular[$key]; $subject = "Participante de Projeto";
Mail::to($request->emailParticipante[$key])->send(new EmailParaUsuarioNaoCadastrado(Auth()->user()->name, $projeto->titulo, 'Participante', $edital->nome, $passwordTemporario, $subject, $edital->tipo,$edital->natureza_id));
$usuario->update(); } else {
$endereco->rua = $request->rua[$key]; $participante->user_id = $userParticipante->id;
$endereco->numero = $request->numero[$key]; $participante->trabalho_id = $projeto->id;
$endereco->bairro = $request->bairro[$key]; $participante->funcao_participante_id = $request->funcaoParticipante[$key];
$endereco->cidade = $request->cidade[$key]; $participante->confirmacao_convite = true;
$endereco->uf = $request->uf[$key]; $participante->rg = $request->rg[$key];
$endereco->cep = $request->cep[$key]; $participante->data_de_nascimento = $request->data_de_nascimento[$key];
$endereco->complemento = $request->complemento[$key]; $participante->curso = $request->curso[$key];
$endereco->update(); $participante->turno = $request->turno[$key];
$participante->ordem_prioridade = $request->ordem_prioridade[$key];
$participante->rg = $request->rg[$key]; $participante->periodo_atual = $request->periodo_atual[$key];
$participante->data_de_nascimento = $request->data_de_nascimento[$key]; $participante->total_periodos = $request->total_periodos[$key];
$participante->curso = $request->curso[$key]; if($edital->tipo != "PIBEX"){
$participante->turno = $request->turno[$key]; $participante->media_do_curso = $request->media_geral_curso[$key];
$participante->ordem_prioridade = $request->ordem_prioridade[$key]; }
$participante->periodo_atual = $request->periodo_atual[$key]; $participante->save();
$participante->total_periodos = $request->total_periodos[$key];
if($edital->tipo != "PIBEX"){ $subject = "Participante de Projeto";
$participante->media_do_curso = $request->media_geral_curso[$key]; Mail::to($request->emailParticipante[$key])
} ->send(new SubmissaoTrabalho($userParticipante, $subject, $edital, $projeto));
$participante->update();
}
if ($request->anexoPlanoTrabalho != null && array_key_exists($key, $request->anexoPlanoTrabalho) && $request->anexoPlanoTrabalho[$key] != null) {
if ($request->nomePlanoTrabalho[$key] != null) {
$planoAtual = $participante->planoTrabalho; $usuario = User::where('email', $request->emailParticipante[$key])->first();
if (Storage::disk()->exists($planoAtual->nome)) { $participante = Participante::where([['user_id', '=', $usuario->id], ['trabalho_id', '=', $projeto->id]])->first();
Storage::delete($planoAtual->nome);
} $path = 'trabalhos/' . $edital->id . '/' . $projeto->id . '/';
$planoAtual->delete(); $nome = $request->nomePlanoTrabalho[$key] . ".pdf";
$file = $request->anexoPlanoTrabalho[$key];
$path = 'trabalhos/' . $edital->id . '/' . $projeto->id . '/'; Storage::putFileAs($path, $file, $nome);
$nome = $request->nomePlanoTrabalho[$key] . ".pdf";
$file = $request->anexoPlanoTrabalho[$key]; $agora = now();
Storage::putFileAs($path, $file, $nome); $arquivo = new Arquivo();
$arquivo->titulo = $request->nomePlanoTrabalho[$key];
$agora = now(); $arquivo->nome = $path . $nome;
$arquivo = new Arquivo(); $arquivo->trabalhoId = $projeto->id;
$arquivo->titulo = $request->nomePlanoTrabalho[$key]; $arquivo->data = $agora;
$arquivo->nome = $path . $nome; $arquivo->participanteId = $participante->id;
$arquivo->trabalhoId = $projeto->id; $arquivo->versaoFinal = true;
$arquivo->data = $agora; $arquivo->save();
$arquivo->participanteId = $id; // dd($arquivo);
$arquivo->versaoFinal = true; }
$arquivo->save(); // Editado
} } elseif ($id > 0) {
} // Removo dos cantidatos excluidos
} $participante = Participante::find($id);
// Excluidos $participantesPermanecem->push($participante);
$participantesExcluidos = $participantes->diff($participantesPermanecem); $usuario = $participante->user;
foreach ($participantesExcluidos as $participante) { $endereco = $usuario->endereco;
$plano = $participante->planoTrabalho;
if ($plano) $usuario->usuarioTemp = false;
$plano->delete(); $usuario->name = $request->nomeParticipante[$key];
$participante->delete(); $usuario->tipo = 'participante';
} $usuario->instituicao = $request->universidade[$key];
$usuario->cpf = $request->cpf[$key];
return true; $usuario->celular = $request->celular[$key];
}
if ($request->emailParticipante != null) { $usuario->update();
foreach ($request->emailParticipante as $key => $email) {
$userParticipante = User::where('email', $email)->first(); $endereco->rua = $request->rua[$key];
$endereco->numero = $request->numero[$key];
$participante = new Participante(); $endereco->bairro = $request->bairro[$key];
$endereco->cidade = $request->cidade[$key];
if ($userParticipante == null) { $endereco->uf = $request->uf[$key];
$passwordTemporario = Str::random(8); $endereco->cep = $request->cep[$key];
$endereco->complemento = $request->complemento[$key];
$usuario = new User(); $endereco->update();
$usuario->email = $email;
$usuario->password = bcrypt($passwordTemporario); $participante->rg = $request->rg[$key];
$usuario->usuarioTemp = false; $participante->data_de_nascimento = $request->data_de_nascimento[$key];
$usuario->name = $request->nomeParticipante[$key]; $participante->curso = $request->curso[$key];
$usuario->tipo = 'participante'; $participante->turno = $request->turno[$key];
$usuario->instituicao = $request->universidade[$key]; $participante->ordem_prioridade = $request->ordem_prioridade[$key];
$usuario->cpf = $request->cpf[$key]; $participante->periodo_atual = $request->periodo_atual[$key];
$usuario->celular = $request->celular[$key]; $participante->total_periodos = $request->total_periodos[$key];
if($edital->tipo != "PIBEX"){
$endereco = new Endereco(); $participante->media_do_curso = $request->media_geral_curso[$key];
$endereco->rua = $request->rua[$key]; }
$endereco->numero = $request->numero[$key]; $participante->update();
$endereco->bairro = $request->bairro[$key];
$endereco->cidade = $request->cidade[$key]; if ($request->anexoPlanoTrabalho != null && array_key_exists($key, $request->anexoPlanoTrabalho) && $request->anexoPlanoTrabalho[$key] != null) {
$endereco->uf = $request->uf[$key];
$endereco->cep = $request->cep[$key]; $planoAtual = $participante->planoTrabalho;
$endereco->complemento = $request->complemento[$key]; if (Storage::disk()->exists($planoAtual->nome)) {
$endereco->save(); Storage::delete($planoAtual->nome);
}
$usuario->enderecoId = $endereco->id; $planoAtual->delete();
$usuario->save(); $path = 'trabalhos/' . $edital->id . '/' . $projeto->id . '/';
$nome = $request->nomePlanoTrabalho[$key] . ".pdf";
$participante->user_id = $usuario->id; $file = $request->anexoPlanoTrabalho[$key];
$participante->trabalho_id = $projeto->id; Storage::putFileAs($path, $file, $nome);
$participante->funcao_participante_id = $request->funcaoParticipante[$key];
$participante->confirmacao_convite = true; $agora = now();
$participante->rg = $request->rg[$key]; $arquivo = new Arquivo();
$participante->data_de_nascimento = $request->data_de_nascimento[$key]; $arquivo->titulo = $request->nomePlanoTrabalho[$key];
$participante->curso = $request->curso[$key]; $arquivo->nome = $path . $nome;
$participante->turno = $request->turno[$key]; $arquivo->trabalhoId = $projeto->id;
$participante->ordem_prioridade = $request->ordem_prioridade[$key]; $arquivo->data = $agora;
$participante->periodo_atual = $request->periodo_atual[$key]; $arquivo->participanteId = $id;
$participante->total_periodos = $request->total_periodos[$key]; $arquivo->versaoFinal = true;
if($edital->tipo != "PIBEX"){ $arquivo->save();
$participante->media_do_curso = $request->media_geral_curso[$key]; }
} }
$participante->save(); }
// Excluidos
$usuario = User::where('email', $email)->first(); $participantesExcluidos = $participantes->diff($participantesPermanecem);
$participante = Participante::where([['user_id', '=', $usuario->id], ['trabalho_id', '=', $projeto->id]])->first(); foreach ($participantesExcluidos as $participante) {
$plano = $participante->planoTrabalho;
$path = 'trabalhos/' . $edital->id . '/' . $projeto->id . '/'; if ($plano)
$nome = $request->nomePlanoTrabalho[$key] . ".pdf"; $plano->delete();
$file = $request->anexoPlanoTrabalho[$key]; $participante->delete();
Storage::putFileAs($path, $file, $nome); }
$agora = now(); return true;
$arquivo = new Arquivo(); }
$arquivo->titulo = $request->nomePlanoTrabalho[$key]; if ($request->emailParticipante != null) {
$arquivo->nome = $path . $nome; foreach ($request->emailParticipante as $key => $email) {
$arquivo->trabalhoId = $projeto->id; $userParticipante = User::where('email', $email)->first();
$arquivo->data = $agora;
$arquivo->participanteId = $participante->id; $participante = new Participante();
$arquivo->versaoFinal = true;
$arquivo->save(); if ($userParticipante == null) {
$subject = "Participante de Projeto"; $passwordTemporario = Str::random(8);
Mail::to($email)->send(new EmailParaUsuarioNaoCadastrado(Auth()->user()->name, $projeto->titulo, 'Participante', $edital->nome, $passwordTemporario, $subject, $edital->tipo,$edital->natureza_id));
} else { $usuario = new User();
$usuario->email = $email;
$participante->user_id = $userParticipante->id; $usuario->password = bcrypt($passwordTemporario);
$participante->trabalho_id = $projeto->id; $usuario->usuarioTemp = false;
$participante->funcao_participante_id = $request->funcaoParticipante[$key]; $usuario->name = $request->nomeParticipante[$key];
$participante->confirmacao_convite = true; $usuario->tipo = 'participante';
$participante->rg = $request->rg[$key]; $usuario->instituicao = $request->universidade[$key];
$participante->data_de_nascimento = $request->data_de_nascimento[$key]; $usuario->cpf = $request->cpf[$key];
$participante->curso = $request->curso[$key]; $usuario->celular = $request->celular[$key];
$participante->turno = $request->turno[$key];
$participante->ordem_prioridade = $request->ordem_prioridade[$key]; $endereco = new Endereco();
$participante->periodo_atual = $request->periodo_atual[$key]; $endereco->rua = $request->rua[$key];
$participante->total_periodos = $request->total_periodos[$key]; $endereco->numero = $request->numero[$key];
if($edital->tipo != "PIBEX"){ $endereco->bairro = $request->bairro[$key];
$participante->media_do_curso = $request->media_geral_curso[$key]; $endereco->cidade = $request->cidade[$key];
} $endereco->uf = $request->uf[$key];
$participante->save(); $endereco->cep = $request->cep[$key];
$endereco->complemento = $request->complemento[$key];
$endereco->save();
if ($request->anexoPlanoTrabalho[$key]) {
$path = 'trabalhos/' . $edital->id . '/' . $projeto->id . '/'; $usuario->enderecoId = $endereco->id;
$nome = $request->nomePlanoTrabalho[$key] . ".pdf";
$file = $request->anexoPlanoTrabalho[$key]; $usuario->save();
Storage::putFileAs($path, $file, $nome);
$participante->user_id = $usuario->id;
$agora = now(); $participante->trabalho_id = $projeto->id;
$arquivo = new Arquivo(); $participante->funcao_participante_id = $request->funcaoParticipante[$key];
$arquivo->titulo = $request->nomePlanoTrabalho[$key]; $participante->confirmacao_convite = true;
$arquivo->nome = $path . $nome; $participante->rg = $request->rg[$key];
$arquivo->trabalhoId = $projeto->id; $participante->data_de_nascimento = $request->data_de_nascimento[$key];
$arquivo->data = $agora; $participante->curso = $request->curso[$key];
$arquivo->participanteId = $participante->id; $participante->turno = $request->turno[$key];
$arquivo->versaoFinal = true; $participante->ordem_prioridade = $request->ordem_prioridade[$key];
$arquivo->save(); $participante->periodo_atual = $request->periodo_atual[$key];
$participante->total_periodos = $request->total_periodos[$key];
} if($edital->tipo != "PIBEX"){
$participante->media_do_curso = $request->media_geral_curso[$key];
$subject = "Participante de Projeto"; }
$time = Carbon::today('America/Recife'); $participante->save();
$time = $time->isoFormat('às H:mm, dddd, D/M/YYYY');
Mail::to($email) $usuario = User::where('email', $email)->first();
->send(new SubmissaoTrabalho($userParticipante, $subject, $edital, $projeto)); $participante = Participante::where([['user_id', '=', $usuario->id], ['trabalho_id', '=', $projeto->id]])->first();
} $path = 'trabalhos/' . $edital->id . '/' . $projeto->id . '/';
$nome = $request->nomePlanoTrabalho[$key] . ".pdf";
// if($request->nomePlanoTrabalho[$key] != null){ $file = $request->anexoPlanoTrabalho[$key];
// $usuario = User::where('email', $email)->first(); Storage::putFileAs($path, $file, $nome);
// $participante = Participante::where([['user_id', '=', $usuario->id], ['trabalho_id', '=', $projeto->id]])->first();
$agora = now();
// $path = 'trabalhos/' . $edital->id . '/' . $projeto->id .'/'; $arquivo = new Arquivo();
// $nome = $request->nomePlanoTrabalho[$key] .".pdf"; $arquivo->titulo = $request->nomePlanoTrabalho[$key];
// $file = $request->anexoPlanoTrabalho[$key]; $arquivo->nome = $path . $nome;
// Storage::putFileAs($path, $file, $nome); $arquivo->trabalhoId = $projeto->id;
$arquivo->data = $agora;
// $agora = now(); $arquivo->participanteId = $participante->id;
// $arquivo = new Arquivo(); $arquivo->versaoFinal = true;
// $arquivo->titulo = $request->nomePlanoTrabalho[$key]; $arquivo->save();
// $arquivo->nome = $path . $nome; $subject = "Participante de Projeto";
// $arquivo->trabalhoId = $projeto->id; Mail::to($email)->send(new EmailParaUsuarioNaoCadastrado(Auth()->user()->name, $projeto->titulo, 'Participante', $edital->nome, $passwordTemporario, $subject, $edital->tipo,$edital->natureza_id));
// $arquivo->data = $agora; } else {
// $arquivo->participanteId = $participante->id;
// $arquivo->versaoFinal = true; $participante->user_id = $userParticipante->id;
// $arquivo->save(); $participante->trabalho_id = $projeto->id;
// } $participante->funcao_participante_id = $request->funcaoParticipante[$key];
} $participante->confirmacao_convite = true;
} $participante->rg = $request->rg[$key];
$participante->data_de_nascimento = $request->data_de_nascimento[$key];
return true; $participante->curso = $request->curso[$key];
} $participante->turno = $request->turno[$key];
$participante->ordem_prioridade = $request->ordem_prioridade[$key];
public function atualizar(Request $request, $id) $participante->periodo_atual = $request->periodo_atual[$key];
{ $participante->total_periodos = $request->total_periodos[$key];
$edital = Evento::find($request->editalId); if($edital->tipo != "PIBEX"){
$hoje = now(); $participante->media_do_curso = $request->media_geral_curso[$key];
}
$projeto = Trabalho::find($id); $participante->save();
if (!($edital->inicioSubmissao < $hoje && $edital->fimSubmissao >= $hoje)) {
return redirect()->route('inicial')->with(['error' => 0, 'mensagem' => 'As submissões para o edital ' . $edital->titulo . ' foram encerradas.']); if ($request->anexoPlanoTrabalho[$key]) {
} $path = 'trabalhos/' . $edital->id . '/' . $projeto->id . '/';
$nome = $request->nomePlanoTrabalho[$key] . ".pdf";
$projeto = $this->atribuirDados($request, $edital, $projeto); $file = $request->anexoPlanoTrabalho[$key];
$projeto->update(); Storage::putFileAs($path, $file, $nome);
// dd($request->all()); $agora = now();
// Salvando participantes $arquivo = new Arquivo();
$this->salvarParticipantes($request, $edital, $projeto, true); $arquivo->titulo = $request->nomePlanoTrabalho[$key];
$arquivo->nome = $path . $nome;
return redirect(route('proponente.projetos'))->with(['mensagem' => 'Projeto atualizado com sucesso!']); $arquivo->trabalhoId = $projeto->id;
} $arquivo->data = $agora;
$arquivo->participanteId = $participante->id;
$arquivo->versaoFinal = true;
public function telaTrocaPart(Request $request) $arquivo->save();
{
$projeto = Trabalho::find($request->projeto_id); }
$edital = Evento::find($projeto->evento_id);
$subject = "Participante de Projeto";
if(Auth::user()->id != $projeto->proponente->user->id){ $time = Carbon::today('America/Recife');
return redirect()->back(); $time = $time->isoFormat('às H:mm, dddd, D/M/YYYY');
} Mail::to($email)
->send(new SubmissaoTrabalho($userParticipante, $subject, $edital, $projeto));
$participantes = $projeto->participantes;
$substituicoesProjeto = Substituicao::where('trabalho_id', $projeto->id)->orderBy('created_at', 'DESC')->get(); }
$desligamentosProjeto = Desligamento::where('trabalho_id', $projeto->id)->orderBy('created_at', 'DESC')->get();
// if($request->nomePlanoTrabalho[$key] != null){
return view('administrador.substituirParticipante')->with(['projeto' => $projeto, // $usuario = User::where('email', $email)->first();
'edital' => $edital, // $participante = Participante::where([['user_id', '=', $usuario->id], ['trabalho_id', '=', $projeto->id]])->first();
'participantes' => $participantes,
'substituicoesProjeto' => $substituicoesProjeto, // $path = 'trabalhos/' . $edital->id . '/' . $projeto->id .'/';
'estados' => $this->estados, // $nome = $request->nomePlanoTrabalho[$key] .".pdf";
'enum_turno' => Participante::ENUM_TURNO, // $file = $request->anexoPlanoTrabalho[$key];
'desligamentosProjeto' => $desligamentosProjeto, // Storage::putFileAs($path, $file, $nome);
]);
} // $agora = now();
// $arquivo = new Arquivo();
public function trocaParticipante(Request $request) // $arquivo->titulo = $request->nomePlanoTrabalho[$key];
{ // $arquivo->nome = $path . $nome;
try { // $arquivo->trabalhoId = $projeto->id;
DB::beginTransaction(); // $arquivo->data = $agora;
$trabalho = Trabalho::find($request->projetoId); // $arquivo->participanteId = $participante->id;
$evento = Evento::find($request->editalId); // $arquivo->versaoFinal = true;
$participanteSubstituido = Participante::where('id', $request->participanteId)->first(); // $arquivo->save();
$planoAntigo = Arquivo::where('id', $participanteSubstituido->planoTrabalho->id)->first(); // }
}
$passwordTemporario = Str::random(8); }
$data['name'] = $request->name;
$data['email'] = $request->email; return true;
$data['password'] = bcrypt($passwordTemporario); }
$data['data_de_nascimento'] = $request->data_de_nascimento;
$data['data_entrada'] = $request->data_entrada; public function atualizar(Request $request, $id)
$data['cpf'] = $request->cpf; {
$data['tipo'] = 'participante'; $edital = Evento::find($request->editalId);
$data['funcao_participante_id'] = 4; $hoje = now();
$data['rg'] = $request->rg;
$data['celular'] = $request->celular; $projeto = Trabalho::find($id);
$data['linkLattes'] = $request->linkLattes;
$data['cep'] = $request->cep; if (!($edital->inicioSubmissao < $hoje && $edital->fimSubmissao >= $hoje)) {
$data['uf'] = $request->uf; return redirect()->route('inicial')->with(['error' => 0, 'mensagem' => 'As submissões para o edital ' . $edital->titulo . ' foram encerradas.']);
$data['cidade'] = $request->cidade; }
$data['rua'] = $request->rua;
$data['numero'] = $request->numero; $projeto = $this->atribuirDados($request, $edital, $projeto);
$data['bairro'] = $request->bairro; $projeto->update();
$data['complemento'] = $request->complemento;
// dd($request->all());
if ($request->instituicao != "Outra") { // Salvando participantes
$data['instituicao'] = $request->instituicao; $this->salvarParticipantes($request, $edital, $projeto, true);
} else {
$data['instituicao'] = $request->outrainstituicao; return redirect(route('proponente.projetos'))->with(['mensagem' => 'Projeto atualizado com sucesso!']);
} }
$data['total_periodos'] = $request->total_periodos;
public function telaTrocaPart(Request $request)
if ($request->curso != "Outro") { {
$data['curso'] = $request->curso; $projeto = Trabalho::find($request->projeto_id);
} else { $edital = Evento::find($projeto->evento_id);
$data['curso'] = $request->outrocurso;
} if(Auth::user()->id != $projeto->proponente->user->id){
return redirect()->back();
$data['turno'] = $request->turno; }
$data['periodo_atual'] = $request->periodo_atual;
$data['ordem_prioridade'] = $request->ordem_prioridade; $participantes = $projeto->participantes;
if($evento->tipo!="PIBEX") { $substituicoesProjeto = Substituicao::where('trabalho_id', $projeto->id)->orderBy('created_at', 'DESC')->get();
$data['media_do_curso'] = $request->media_do_curso; $desligamentosProjeto = Desligamento::where('trabalho_id', $projeto->id)->orderBy('created_at', 'DESC')->get();
}
$data['nomePlanoTrabalho'] = $request->nomePlanoTrabalho; return view('administrador.substituirParticipante')->with(['projeto' => $projeto,
'edital' => $edital,
if ($request->substituirApenasPlanoCheck == 'check') { 'participantes' => $participantes,
$substituicao = new Substituicao(); 'substituicoesProjeto' => $substituicoesProjeto,
'estados' => $this->estados,
if ($request->has('anexoPlanoTrabalho')) { 'enum_turno' => Participante::ENUM_TURNO,
$path = 'trabalhos/' . $evento->id . '/' . $trabalho->id . '/'; 'desligamentosProjeto' => $desligamentosProjeto,
$nome = $data['nomePlanoTrabalho'] . ".pdf"; ]);
$file = $request->anexoPlanoTrabalho; }
Storage::putFileAs($path, $file, $nome);
$arquivo = new Arquivo(); public function trocaParticipante(Request $request)
$arquivo->titulo = $data['nomePlanoTrabalho']; {
$arquivo->nome = $path . $nome; try {
$arquivo->trabalhoId = $trabalho->id; DB::beginTransaction();
$arquivo->data = now(); $trabalho = Trabalho::find($request->projetoId);
$arquivo->participanteId = $participanteSubstituido->id; $evento = Evento::find($request->editalId);
$arquivo->versaoFinal = true; $participanteSubstituido = Participante::where('id', $request->participanteId)->first();
$arquivo->save(); $planoAntigo = Arquivo::where('id', $participanteSubstituido->planoTrabalho->id)->first();
$substituicao->status = 'Em Aguardo'; $passwordTemporario = Str::random(8);
$substituicao->tipo = 'TrocarPlano'; $data['name'] = $request->name;
$substituicao->observacao = $request->textObservacao; $data['email'] = $request->email;
$substituicao->participanteSubstituido_id = $participanteSubstituido->id; $data['password'] = bcrypt($passwordTemporario);
$substituicao->participanteSubstituto_id = $participanteSubstituido->id; $data['data_de_nascimento'] = $request->data_de_nascimento;
$substituicao->planoSubstituto_id = $arquivo->id; $data['data_entrada'] = $request->data_entrada;
$substituicao->trabalho_id = $trabalho->id; $data['cpf'] = $request->cpf;
$substituicao->save(); $data['tipo'] = 'participante';
} $data['funcao_participante_id'] = 4;
} else { $data['rg'] = $request->rg;
//$participanteSubstituido->delete(); $data['celular'] = $request->celular;
$substituicao = new Substituicao(); $data['linkLattes'] = $request->linkLattes;
$substituicao->observacao = $request->textObservacao; $data['cep'] = $request->cep;
if ($participanteSubstituido->data_entrada > $request->data_entrada) { $data['uf'] = $request->uf;
return redirect(route('trabalho.trocaParticipante', ['evento_id' => $evento->id, 'projeto_id' => $trabalho->id]))->with(['erro' => "Escolha uma data de entrada posterior a entrada do discente substituído"]); $data['cidade'] = $request->cidade;
} $data['rua'] = $request->rua;
$data['numero'] = $request->numero;
$participanteSubstituido->data_saida = $request->data_entrada; $data['bairro'] = $request->bairro;
$data['complemento'] = $request->complemento;
\App\Validator\CpfValidator::validate($request->all());
$user = User::where('email', $data['email'])->first(); if ($request->instituicao != "Outra") {
if (!$user) { $data['instituicao'] = $request->instituicao;
$data['usuarioTemp'] = true; } else {
$user = User::create($data); $data['instituicao'] = $request->outrainstituicao;
$endereco = Endereco::create($data); }
$endereco->user()->save($user);
} $data['total_periodos'] = $request->total_periodos;
$participante = $user->participantes->where('trabalho_id', $trabalho->id)->first();
if (!$participante) { if ($request->curso != "Outro") {
$participante = Participante::create($data); $data['curso'] = $request->curso;
$participanteSubstituido->save(); } else {
} $data['curso'] = $request->outrocurso;
}
$pasta = 'participantes/' . $participante->id;
$participante->anexoTermoCompromisso = Storage::putFileAs($pasta, $request->anexoTermoCompromisso, "Termo_de_Compromisso.pdf"); $data['turno'] = $request->turno;
$participante->anexoComprovanteMatricula = Storage::putFileAs($pasta, $request->anexoComprovanteMatricula, "Comprovante_de_Matricula.pdf"); $data['periodo_atual'] = $request->periodo_atual;
$participante->anexoLattes = Storage::putFileAs($pasta, $request->anexoCurriculoLattes, "Curriculo_Lattes.pdf"); $data['ordem_prioridade'] = $request->ordem_prioridade;
if ($request->anexoAutorizacaoPais != null) { if($evento->tipo!="PIBEX") {
$participante->anexoAutorizacaoPais = Storage::putFileAs($pasta, $request->anexoAutorizacaoPais, "Autorização_dos_Pais.pdf"); $data['media_do_curso'] = $request->media_do_curso;
} }
if ($request->anexoComprovanteBancario != null) { $data['nomePlanoTrabalho'] = $request->nomePlanoTrabalho;
$participante->anexoComprovanteBancario = Storage::putFileAs($pasta, $request->anexoComprovanteBancario, "Comprovante_Bancario." . $request->file('anexoComprovanteBancario')->getClientOriginalExtension());
} if ($request->substituirApenasPlanoCheck == 'check') {
$substituicao = new Substituicao();
$user->participantes()->save($participante);
//$trabalho->participantes()->save($participante); if ($request->has('anexoPlanoTrabalho')) {
$path = 'trabalhos/' . $evento->id . '/' . $trabalho->id . '/';
if ($request->manterPlanoCheck == 'check') { $nome = $data['nomePlanoTrabalho'] . ".pdf";
$substituicao->status = 'Em Aguardo'; $file = $request->anexoPlanoTrabalho;
$substituicao->tipo = 'ManterPlano'; Storage::putFileAs($path, $file, $nome);
$substituicao->observacao = $request->textObservacao; $arquivo = new Arquivo();
$substituicao->participanteSubstituido_id = $participanteSubstituido->id; $arquivo->titulo = $data['nomePlanoTrabalho'];
$substituicao->participanteSubstituto_id = $participante->id; $arquivo->nome = $path . $nome;
$substituicao->trabalho_id = $trabalho->id; $arquivo->trabalhoId = $trabalho->id;
$substituicao->planoSubstituto_id = $planoAntigo->id; $arquivo->data = now();
$arquivo->participanteId = $participanteSubstituido->id;
$planoAntigo->participanteId = $participante->id; $arquivo->versaoFinal = true;
$arquivo->save();
$substituicao->save();
$planoAntigo->save(); $substituicao->status = 'Em Aguardo';
$substituicao->tipo = 'TrocarPlano';
} else { $substituicao->observacao = $request->textObservacao;
$substituicao->participanteSubstituido_id = $participanteSubstituido->id;
if ($request->has('anexoPlanoTrabalho')) { $substituicao->participanteSubstituto_id = $participanteSubstituido->id;
$path = 'trabalhos/' . $evento->id . '/' . $trabalho->id . '/'; $substituicao->planoSubstituto_id = $arquivo->id;
$nome = $data['nomePlanoTrabalho'] . ".pdf"; $substituicao->trabalho_id = $trabalho->id;
$file = $request->anexoPlanoTrabalho; $substituicao->save();
Storage::putFileAs($path, $file, $nome); }
$arquivo = new Arquivo(); } else {
$arquivo->titulo = $data['nomePlanoTrabalho']; //$participanteSubstituido->delete();
$arquivo->nome = $path . $nome; $substituicao = new Substituicao();
$arquivo->trabalhoId = $trabalho->id; $substituicao->observacao = $request->textObservacao;
$arquivo->data = now(); if ($participanteSubstituido->data_entrada > $request->data_entrada) {
$arquivo->participanteId = $participante->id; return redirect(route('trabalho.trocaParticipante', ['evento_id' => $evento->id, 'projeto_id' => $trabalho->id]))->with(['erro' => "Escolha uma data de entrada posterior a entrada do discente substituído"]);
$arquivo->versaoFinal = true; }
$arquivo->save();
$participanteSubstituido->data_saida = $request->data_entrada;
$substituicao->status = 'Em Aguardo';
$substituicao->tipo = 'Completa'; \App\Validator\CpfValidator::validate($request->all());
$substituicao->observacao = $request->textObservacao; $user = User::where('email', $data['email'])->first();
$substituicao->participanteSubstituido_id = $participanteSubstituido->id; if (!$user) {
$substituicao->participanteSubstituto_id = $participante->id; $data['usuarioTemp'] = true;
$substituicao->trabalho_id = $trabalho->id; $user = User::create($data);
$substituicao->planoSubstituto_id = $arquivo->id; $endereco = Endereco::create($data);
$substituicao->save(); $endereco->user()->save($user);
} }
$participante = $user->participantes->where('trabalho_id', $trabalho->id)->first();
} if (!$participante) {
} $participante = Participante::create($data);
$participanteSubstituido->save();
$evento->trabalhos()->save($trabalho); }
$trabalho->save();
$pasta = 'participantes/' . $participante->id;
$notificacao = App\Notificacao::create([ $participante->anexoTermoCompromisso = Storage::putFileAs($pasta, $request->anexoTermoCompromisso, "Termo_de_Compromisso.pdf");
'remetente_id' => Auth::user()->id, $participante->anexoComprovanteMatricula = Storage::putFileAs($pasta, $request->anexoComprovanteMatricula, "Comprovante_de_Matricula.pdf");
'destinatario_id' => $evento->coordenadorComissao->user_id, $participante->anexoLattes = Storage::putFileAs($pasta, $request->anexoCurriculoLattes, "Curriculo_Lattes.pdf");
'trabalho_id' => $trabalho->id, if ($request->anexoAutorizacaoPais != null) {
'lido' => false, $participante->anexoAutorizacaoPais = Storage::putFileAs($pasta, $request->anexoAutorizacaoPais, "Autorização_dos_Pais.pdf");
'tipo' => 2, }
]); if ($request->anexoComprovanteBancario != null) {
$notificacao->save(); $participante->anexoComprovanteBancario = Storage::putFileAs($pasta, $request->anexoComprovanteBancario, "Comprovante_Bancario." . $request->file('anexoComprovanteBancario')->getClientOriginalExtension());
}
DB::commit();
$user->participantes()->save($participante);
Mail::to($evento->coordenadorComissao->user->email)->send(new SolicitacaoSubstituicao($evento, $trabalho,'',$substituicao->tipo,$substituicao->status)); //$trabalho->participantes()->save($participante);
return redirect(route('trabalho.trocaParticipante', ['evento_id' => $evento->id, 'projeto_id' => $trabalho->id]))->with(['sucesso' => 'Pedido de substituição enviado com sucesso!']);
} catch (\App\Validator\ValidationException $th) { if ($request->manterPlanoCheck == 'check') {
DB::rollback(); $substituicao->status = 'Em Aguardo';
return redirect(route('trabalho.trocaParticipante', ['evento_id' => $evento->id, 'projeto_id' => $trabalho->id]))->with(['erro' => "Cpf inválido"]); $substituicao->tipo = 'ManterPlano';
} catch (\Throwable $th) { $substituicao->observacao = $request->textObservacao;
DB::rollback(); $substituicao->participanteSubstituido_id = $participanteSubstituido->id;
return redirect(route('trabalho.trocaParticipante', ['evento_id' => $evento->id, 'projeto_id' => $trabalho->id]))->with(['erro' => $th->getMessage()]); $substituicao->participanteSubstituto_id = $participante->id;
} $substituicao->trabalho_id = $trabalho->id;
$substituicao->planoSubstituto_id = $planoAntigo->id;
}
$planoAntigo->participanteId = $participante->id;
public function telaShowSubst(Request $request) $substituicao->save();
{ $planoAntigo->save();
$trabalho = Trabalho::find($request->trabalho_id);
$substituicoesProjeto = Substituicao::where('trabalho_id', $trabalho->id)->orderBy('created_at', 'DESC')->get(); } else {
$substituicoesPendentes = Substituicao::where('trabalho_id', $trabalho->id)->where('status', 'Em Aguardo')->orderBy('created_at', 'DESC')->get();
if ($request->has('anexoPlanoTrabalho')) {
return view('administrador.analiseSubstituicoes')->with(['substituicoesPendentes' => $substituicoesPendentes, $path = 'trabalhos/' . $evento->id . '/' . $trabalho->id . '/';
'substituicoesProjeto' => $substituicoesProjeto, $nome = $data['nomePlanoTrabalho'] . ".pdf";
'trabalho' => $trabalho]); $file = $request->anexoPlanoTrabalho;
} Storage::putFileAs($path, $file, $nome);
$arquivo = new Arquivo();
public function aprovarSubstituicao(Request $request) $arquivo->titulo = $data['nomePlanoTrabalho'];
{ $arquivo->nome = $path . $nome;
$substituicao = Substituicao::find($request->substituicaoID); $arquivo->trabalhoId = $trabalho->id;
$trabalho = Trabalho::find($substituicao->trabalho->id); $arquivo->data = now();
$arquivo->participanteId = $participante->id;
if ($request->aprovar == 'true') { $arquivo->versaoFinal = true;
try { $arquivo->save();
if ($substituicao->tipo == 'TrocarPlano') {
if(!empty($substituicao->participanteSubstituido)){ $substituicao->status = 'Em Aguardo';
$substituicao->participanteSubstituido->planoTrabalho()->where('id', '!=', $substituicao->planoSubstituto->id)->delete(); $substituicao->tipo = 'Completa';
} $substituicao->observacao = $request->textObservacao;
$substituicao->status = 'Finalizada'; $substituicao->participanteSubstituido_id = $participanteSubstituido->id;
$substituicao->justificativa = $request->textJustificativa; $substituicao->participanteSubstituto_id = $participante->id;
$substituicao->causa = $request->selectJustificativa; $substituicao->trabalho_id = $trabalho->id;
$substituicao->planoSubstituto_id = $arquivo->id;
$substituicao->concluida_em = now(); $substituicao->save();
$substituicao->save(); }
} else { }
if(!empty($substituicao->participanteSubstituido)){ }
$substituicao->participanteSubstituido->delete();
} $evento->trabalhos()->save($trabalho);
$trabalho->save();
$trabalho->participantes()->save($substituicao->participanteSubstituto);
$notificacao = App\Notificacao::create([
$substituicao->status = 'Finalizada'; 'remetente_id' => Auth::user()->id,
$substituicao->justificativa = $request->textJustificativa; 'destinatario_id' => $evento->coordenadorComissao->user_id,
$substituicao->causa = $request->selectJustificativa; 'trabalho_id' => $trabalho->id,
$substituicao->concluida_em = now(); 'lido' => false,
'tipo' => 2,
$substituicao->save(); ]);
} $notificacao->save();
Mail::to($trabalho->proponente->user->email)->send(new SolicitacaoSubstituicao($trabalho->evento, $trabalho, 'resultado',$substituicao->tipo,$substituicao->status)); DB::commit();
return redirect()->back()->with(['sucesso' => 'Substituição concluída!']);
} catch (\Throwable $th) { Mail::to($evento->coordenadorComissao->user->email)->send(new SolicitacaoSubstituicao($evento, $trabalho,'',$substituicao->tipo,$substituicao->status));
return redirect()->back()->with(['erro' => $th->getMessage()]); return redirect(route('trabalho.trocaParticipante', ['evento_id' => $evento->id, 'projeto_id' => $trabalho->id]))->with(['sucesso' => 'Pedido de substituição enviado com sucesso!']);
} } catch (\App\Validator\ValidationException $th) {
DB::rollback();
return redirect(route('trabalho.trocaParticipante', ['evento_id' => $evento->id, 'projeto_id' => $trabalho->id]))->with(['erro' => "Cpf inválido"]);
} else { } catch (\Throwable $th) {
DB::rollback();
return redirect(route('trabalho.trocaParticipante', ['evento_id' => $evento->id, 'projeto_id' => $trabalho->id]))->with(['erro' => $th->getMessage()]);
try { }
}
if ($substituicao->tipo == 'TrocarPlano') {
$substituicao->participanteSubstituido->planoTrabalho()->where('id', '=', $substituicao->planoSubstituto->id)->delete();
$substituicao->status = 'Negada'; public function telaShowSubst(Request $request)
$substituicao->justificativa = $request->textJustificativa; {
$substituicao->causa = $request->selectJustificativa; $trabalho = Trabalho::find($request->trabalho_id);
$substituicoesProjeto = Substituicao::where('trabalho_id', $trabalho->id)->orderBy('created_at', 'DESC')->get();
$substituicao->concluida_em = now(); $substituicoesPendentes = Substituicao::where('trabalho_id', $trabalho->id)->where('status', 'Em Aguardo')->orderBy('created_at', 'DESC')->get();
$substituicao->save();
} elseif ($substituicao->tipo == 'ManterPlano') { return view('administrador.analiseSubstituicoes')->with(['substituicoesPendentes' => $substituicoesPendentes,
$substituicao->planoSubstituto->participanteId = $substituicao->participanteSubstituido->id; 'substituicoesProjeto' => $substituicoesProjeto,
$substituicao->planoSubstituto->save(); 'trabalho' => $trabalho]);
$substituicao->participanteSubstituto->delete(); }
$substituicao->status = 'Negada'; public function aprovarSubstituicao(Request $request)
$substituicao->justificativa = $request->textJustificativa; {
$substituicao->causa = $request->selectJustificativa; $substituicao = Substituicao::find($request->substituicaoID);
$substituicao->concluida_em = now(); $trabalho = Trabalho::find($substituicao->trabalho->id);
$substituicao->save(); if ($request->aprovar == 'true') {
} else { try {
$substituicao->participanteSubstituto->delete(); if ($substituicao->tipo == 'TrocarPlano') {
if(!empty($substituicao->participanteSubstituido)){
$substituicao->status = 'Negada'; $substituicao->participanteSubstituido->planoTrabalho()->where('id', '!=', $substituicao->planoSubstituto->id)->delete();
$substituicao->justificativa = $request->textJustificativa; }
$substituicao->causa = $request->selectJustificativa; $substituicao->status = 'Finalizada';
$substituicao->concluida_em = now(); $substituicao->justificativa = $request->textJustificativa;
$substituicao->causa = $request->selectJustificativa;
$substituicao->save();
} $substituicao->concluida_em = now();
$substituicao->save();
$trabalho = Trabalho::find($substituicao->trabalho->id);
Mail::to($trabalho->proponente->user->email)->send(new SolicitacaoSubstituicao($trabalho->evento, $trabalho, 'resultado',$substituicao->tipo,$substituicao->status)); } else {
return redirect()->back()->with(['sucesso' => 'Substituição cancelada com sucesso!']); if(!empty($substituicao->participanteSubstituido)){
} catch (\Throwable $th) { $substituicao->participanteSubstituido->delete();
}
return redirect()->back()->with(['erro' => $th->getMessage()]);
$trabalho->participantes()->save($substituicao->participanteSubstituto);
}
} $substituicao->status = 'Finalizada';
$substituicao->justificativa = $request->textJustificativa;
$substituicao->causa = $request->selectJustificativa;
} $substituicao->concluida_em = now();
public function aprovarProposta(Request $request, $id) $substituicao->save();
{ }
$trabalho = Trabalho::find($id);
$trabalho->status = $request->statusProp; Mail::to($trabalho->proponente->user->email)->send(new SolicitacaoSubstituicao($trabalho->evento, $trabalho, 'resultado',$substituicao->tipo,$substituicao->status));
$trabalho->comentario = $request->comentario; return redirect()->back()->with(['sucesso' => 'Substituição concluída!']);
$trabalho->save(); } catch (\Throwable $th) {
return redirect()->back()->with(['erro' => $th->getMessage()]);
return redirect()->back()->with(['sucesso' => 'Proposta avaliada com sucesso']); }
}
} else {
try {
if ($substituicao->tipo == 'TrocarPlano') {
$substituicao->participanteSubstituido->planoTrabalho()->where('id', '=', $substituicao->planoSubstituto->id)->delete();
$substituicao->status = 'Negada';
$substituicao->justificativa = $request->textJustificativa;
$substituicao->causa = $request->selectJustificativa;
$substituicao->concluida_em = now();
$substituicao->save();
} elseif ($substituicao->tipo == 'ManterPlano') {
$substituicao->planoSubstituto->participanteId = $substituicao->participanteSubstituido->id;
$substituicao->planoSubstituto->save();
$substituicao->participanteSubstituto->delete();
$substituicao->status = 'Negada';
$substituicao->justificativa = $request->textJustificativa;
$substituicao->causa = $request->selectJustificativa;
$substituicao->concluida_em = now();
$substituicao->save();
} else {
$substituicao->participanteSubstituto->delete();
$substituicao->status = 'Negada';
$substituicao->justificativa = $request->textJustificativa;
$substituicao->causa = $request->selectJustificativa;
$substituicao->concluida_em = now();
$substituicao->save();
}
$trabalho = Trabalho::find($substituicao->trabalho->id);
Mail::to($trabalho->proponente->user->email)->send(new SolicitacaoSubstituicao($trabalho->evento, $trabalho, 'resultado',$substituicao->tipo,$substituicao->status));
return redirect()->back()->with(['sucesso' => 'Substituição cancelada com sucesso!']);
} catch (\Throwable $th) {
return redirect()->back()->with(['erro' => $th->getMessage()]);
}
}
}
public function aprovarProposta(Request $request, $id)
{
$trabalho = Trabalho::find($id);
$trabalho->status = $request->statusProp;
$trabalho->comentario = $request->comentario;
$trabalho->save();
return redirect()->back()->with(['sucesso' => 'Proposta avaliada com sucesso']);
}
} }
\ No newline at end of file
...@@ -31,9 +31,6 @@ class StoreTrabalho extends FormRequest ...@@ -31,9 +31,6 @@ class StoreTrabalho extends FormRequest
$evento = Evento::find($this->editalId); $evento = Evento::find($this->editalId);
$rules = []; $rules = [];
if(!($this->has('marcado'))){
$rules['erro'] = ['required'];
}
if($this->has('marcado')){ if($this->has('marcado')){
foreach ($this->get('marcado') as $key => $value) { foreach ($this->get('marcado') as $key => $value) {
if( intval($value) == $key){ if( intval($value) == $key){
...@@ -67,6 +64,9 @@ class StoreTrabalho extends FormRequest ...@@ -67,6 +64,9 @@ class StoreTrabalho extends FormRequest
} }
} }
} else {
$rules['anexoPlanoTrabalho'] = ['required'];
$rules['nomePlanoTrabalho'] = ['required', 'string'];
} }
if($this->has('rascunho')) { if($this->has('rascunho')) {
......
...@@ -6,6 +6,7 @@ use App\Arquivo; ...@@ -6,6 +6,7 @@ use App\Arquivo;
use App\Evento; use App\Evento;
use App\Participante; use App\Participante;
use App\Trabalho; use App\Trabalho;
use App\Proponente;
use Illuminate\Validation\Rule; use Illuminate\Validation\Rule;
use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Auth;
use Illuminate\Foundation\Http\FormRequest; use Illuminate\Foundation\Http\FormRequest;
...@@ -32,9 +33,6 @@ class UpdateTrabalho extends FormRequest ...@@ -32,9 +33,6 @@ class UpdateTrabalho extends FormRequest
$projeto = Trabalho::find($this->id); $projeto = Trabalho::find($this->id);
$evento = Evento::find($this->editalId); $evento = Evento::find($this->editalId);
if(!($this->has('marcado'))){
$rules['erro'] = ['required'];
}
if($this->has('marcado')){ if($this->has('marcado')){
foreach ($this->get('marcado') as $key => $value) { foreach ($this->get('marcado') as $key => $value) {
if( intval($value) == $key){ if( intval($value) == $key){
...@@ -67,20 +65,17 @@ class UpdateTrabalho extends FormRequest ...@@ -67,20 +65,17 @@ class UpdateTrabalho extends FormRequest
if($evento->tipo != "PIBEX") { if($evento->tipo != "PIBEX") {
$rules['media_do_curso.' . $value] = ['required', 'string']; $rules['media_do_curso.' . $value] = ['required', 'string'];
} }
$rules['anexoPlanoTrabalho.'.$value] = [Rule::requiredIf($participante->planoTrabalho == null)];
$rules['nomePlanoTrabalho.'.$value] = ['required', 'string']; $rules['nomePlanoTrabalho.'.$value] = ['required', 'string'];
if($participante !=null){
$arquivo = Arquivo::where('participanteId',$participante->id)->where('trabalhoId',$projeto->id)->first();
if($arquivo == null || $this->nomePlanoTrabalho[$value] != $arquivo->titulo){
$rules['anexoPlanoTrabalho.'.$value] = ['required', 'mimes:pdf'];
}
}else{
$rules['anexoPlanoTrabalho.'.$value] = ['required', 'mimes:pdf'];
}
} }
} }
} else {
$arquivo = Arquivo::where("trabalhoId", $projeto->id)->first();
$rules['anexoPlanoTrabalho'] = [Rule::requiredIf($arquivo == null)];
$rules['nomePlanoTrabalho'] = [Rule::requiredIf($arquivo->titulo == null), 'string'];
} }
// dd($this->all()); // dd($this->all());
if ($this->has('rascunho')) { if ($this->has('rascunho')) {
$rules = []; $rules = [];
......
...@@ -11,6 +11,9 @@ class Proponente extends Model ...@@ -11,6 +11,9 @@ class Proponente extends Model
public function user(){ public function user(){
return $this->belongsTo('App\User'); return $this->belongsTo('App\User');
} }
public function planoTrabalho() {
return $this->hasOne('App\Arquivo', 'proponenteId');
}
public function trabalhos(){ public function trabalhos(){
return $this->hasMany('App\Trabalho'); return $this->hasMany('App\Trabalho');
} }
......
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class AlterTableArquivos3 extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::table('arquivos', function (Blueprint $table) {
$table->integer('participanteId')->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 AddProponenteArquivosTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::table('arquivos', function (Blueprint $table) {
$table->integer('proponenteId')->nullable();
$table->foreign('proponenteId')->references('id')->on('proponentes');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
//
}
}
...@@ -103,12 +103,13 @@ ...@@ -103,12 +103,13 @@
<div class="col-md-12"> <div class="col-md-12">
<p class="proponenteProj" style="color: #4D4D4D; padding: 0px"><b>Proponente:</b> {{ App\Proponente::find($trabalho->proponente_id)->user->name }}</p> <p class="proponenteProj" style="color: #4D4D4D; padding: 0px"><b>Proponente:</b> {{ App\Proponente::find($trabalho->proponente_id)->user->name }}</p>
</div> </div>
@if ($evento->numParticipantes != 0)
<div class="col-md-12"> <p style="color: #4D4D4D; padding: 0px"><b>Discentes:</b> <div class="col-md-12"> <p style="color: #4D4D4D; padding: 0px"><b>Discentes:</b>
@foreach($trabalho->participantes as $participante) @foreach($trabalho->participantes as $participante)
{{$participante->user->name}}; {{$participante->user->name}};
@endforeach @endforeach
</div> </div>
@endif
@if($trabalho->grande_area_id != null && $trabalho->area_id != null && $trabalho->sub_area_id != null) @if($trabalho->grande_area_id != null && $trabalho->area_id != null && $trabalho->sub_area_id != null)
<div class="col-md-12"> <div class="col-md-12">
<h6 style="color: #234B8B; font-weight: bold;font-size: 13px;">{{$trabalho->grandeArea->nome}} > {{$trabalho->area->nome}} > {{$trabalho->subArea->nome}}</h6> <h6 style="color: #234B8B; font-weight: bold;font-size: 13px;">{{$trabalho->grandeArea->nome}} > {{$trabalho->area->nome}} > {{$trabalho->subArea->nome}}</h6>
......
This source diff could not be displayed because it is too large. You can view the blob instead.
...@@ -60,7 +60,9 @@ ...@@ -60,7 +60,9 @@
<th scope="col">N. Planos</th> <th scope="col">N. Planos</th>
<th scope="col">Avaliador</th> <th scope="col">Avaliador</th>
<th scope="col">Status</th> <th scope="col">Status</th>
@if ($evento->numParticipantes != 0)
<th scope="col">Bolsas</th> <th scope="col">Bolsas</th>
@endif
</tr> </tr>
</thead> </thead>
<tbody id="projetos"> <tbody id="projetos">
...@@ -84,7 +86,7 @@ ...@@ -84,7 +86,7 @@
@endif @endif
</td> </td>
<td> <td>
{{$trabalho->participantes->count()}} @if ($evento->numParticipantes != 0) {{$trabalho->participantes->count()}} @else {{$trabalho->proponente->count()}} @endif
</td> </td>
<td> <td>
@if($trabalho->avaliadors->count() > 0) @if($trabalho->avaliadors->count() > 0)
...@@ -119,11 +121,13 @@ ...@@ -119,11 +121,13 @@
@else @else
<td>Pendente</td> <td>Pendente</td>
@endif @endif
@if ($evento->numParticipantes != 0)
<td> <td>
<button type="button" class="btn btn-primary" data-toggle="modal" data-target="#modalConfirmTrab{{$trabalho->id}}" > <button type="button" class="btn btn-primary" data-toggle="modal" data-target="#modalConfirmTrab{{$trabalho->id}}" >
Definir Definir
</button> </button>
</td> </td>
@endif
</tr> </tr>
@php $cont+=1;@endphp @php $cont+=1;@endphp
@endif @endif
...@@ -154,7 +158,9 @@ ...@@ -154,7 +158,9 @@
<th scope="col">N. Planos</th> <th scope="col">N. Planos</th>
<th scope="col">Avaliador</th> <th scope="col">Avaliador</th>
<th scope="col">Status</th> <th scope="col">Status</th>
@if ($evento->numParticipantes != 0)
<th scope="col">Bolsas</th> <th scope="col">Bolsas</th>
@endif
</tr> </tr>
</thead> </thead>
<tbody id="projetos"> <tbody id="projetos">
...@@ -178,7 +184,7 @@ ...@@ -178,7 +184,7 @@
@endif @endif
</td> </td>
<td> <td>
{{$trabalho->participantes->count()}} @if ($evento->numParticipantes != 0) {{$trabalho->participantes->count()}} @else {{$trabalho->proponente->count()}} @endif
</td> </td>
<td> <td>
@if($trabalho->avaliadors->count() > 0) @if($trabalho->avaliadors->count() > 0)
...@@ -213,11 +219,13 @@ ...@@ -213,11 +219,13 @@
@else @else
<td>Pendente</td> <td>Pendente</td>
@endif @endif
@if ($evento->numParticipantes != 0)
<td> <td>
<button type="button" class="btn btn-primary" data-toggle="modal" data-target="#modalConfirmTrab{{$trabalho->id}}" > <button type="button" class="btn btn-primary" data-toggle="modal" data-target="#modalConfirmTrab{{$trabalho->id}}" >
Definir Definir
</button> </button>
</td> </td>
@endif
</tr> </tr>
@php $cont+=1;@endphp @php $cont+=1;@endphp
@endif @endif
...@@ -249,7 +257,9 @@ ...@@ -249,7 +257,9 @@
<th scope="col">N. Planos</th> <th scope="col">N. Planos</th>
<th scope="col">Avaliador</th> <th scope="col">Avaliador</th>
<th scope="col">Status</th> <th scope="col">Status</th>
@if ($evento->numParticipantes != 0)
<th scope="col">Bolsas</th> <th scope="col">Bolsas</th>
@endif
</tr> </tr>
</thead> </thead>
<tbody id="projetos"> <tbody id="projetos">
...@@ -273,7 +283,7 @@ ...@@ -273,7 +283,7 @@
@endif @endif
</td> </td>
<td> <td>
{{$trabalho->participantes->count()}} @if ($evento->numParticipantes != 0) {{$trabalho->participantes->count()}} @else {{$trabalho->proponente->count()}} @endif
</td> </td>
<td> <td>
@if($trabalho->avaliadors->count() > 0) @if($trabalho->avaliadors->count() > 0)
...@@ -308,11 +318,13 @@ ...@@ -308,11 +318,13 @@
@else @else
<td>Pendente</td> <td>Pendente</td>
@endif @endif
@if ($evento->numParticipantes != 0)
<td> <td>
<button type="button" class="btn btn-primary" data-toggle="modal" data-target="#modalConfirmTrab{{$trabalho->id}}" > <button type="button" class="btn btn-primary" data-toggle="modal" data-target="#modalConfirmTrab{{$trabalho->id}}" >
Definir Definir
</button> </button>
</td> </td>
@endif
</tr> </tr>
@php $cont+=1;@endphp @php $cont+=1;@endphp
@endif @endif
......
...@@ -63,7 +63,9 @@ ...@@ -63,7 +63,9 @@
<th scope="col">N. Planos</th> <th scope="col">N. Planos</th>
<th scope="col">Avaliador</th> <th scope="col">Avaliador</th>
<th scope="col">Status</th> <th scope="col">Status</th>
@if ($evento->numParticipantes != 0)
<th scope="col">Bolsas</th> <th scope="col">Bolsas</th>
@endif
</tr> </tr>
</thead> </thead>
<tbody id="projetos"> <tbody id="projetos">
...@@ -84,7 +86,7 @@ ...@@ -84,7 +86,7 @@
{{$trabalho->area->nome}} {{$trabalho->area->nome}}
</td> </td>
<td> <td>
{{$trabalho->participantes->count()}} @if ($evento->numParticipantes != 0) {{$trabalho->participantes->count()}} @else {{$trabalho->proponente->count()}} @endif
</td> </td>
<td> <td>
@if($trabalho->avaliadors->count() > 0) @if($trabalho->avaliadors->count() > 0)
...@@ -119,11 +121,13 @@ ...@@ -119,11 +121,13 @@
@else @else
<td>Pendente</td> <td>Pendente</td>
@endif @endif
@if ($evento->numParticipantes != 0)
<td> <td>
<button type="button" class="btn btn-primary" data-toggle="modal" data-target="#modalConfirmTrab{{$trabalho->id}}" > <button type="button" class="btn btn-primary" data-toggle="modal" data-target="#modalConfirmTrab{{$trabalho->id}}" >
Definir Definir
</button> </button>
</td> </td>
@endif
</tr> </tr>
@php $cont+=1;@endphp @php $cont+=1;@endphp
@endif @endif
...@@ -151,7 +155,9 @@ ...@@ -151,7 +155,9 @@
<th scope="col">N. Planos</th> <th scope="col">N. Planos</th>
<th scope="col">Avaliador</th> <th scope="col">Avaliador</th>
<th scope="col">Status</th> <th scope="col">Status</th>
@if ($evento->numParticipantes != 0)
<th scope="col">Bolsas</th> <th scope="col">Bolsas</th>
@endif
</tr> </tr>
</thead> </thead>
<tbody id="projetos"> <tbody id="projetos">
...@@ -171,7 +177,7 @@ ...@@ -171,7 +177,7 @@
{{$trabalho->area->nome}} {{$trabalho->area->nome}}
</td> </td>
<td> <td>
{{$trabalho->participantes->count()}} @if ($evento->numParticipantes != 0) {{$trabalho->participantes->count()}} @else {{$trabalho->proponente->count()}} @endif
</td> </td>
<td> <td>
@if($trabalho->avaliadors->count() > 0) @if($trabalho->avaliadors->count() > 0)
...@@ -206,11 +212,13 @@ ...@@ -206,11 +212,13 @@
@else @else
<td>Pendente</td> <td>Pendente</td>
@endif @endif
@if ($evento->numParticipantes != 0)
<td> <td>
<button type="button" class="btn btn-primary" data-toggle="modal" data-target="#modalConfirmTrab{{$trabalho->id}}" > <button type="button" class="btn btn-primary" data-toggle="modal" data-target="#modalConfirmTrab{{$trabalho->id}}" >
Definir Definir
</button> </button>
</td> </td>
@endif
</tr> </tr>
@php $cont+=1;@endphp @php $cont+=1;@endphp
@endif @endif
...@@ -239,7 +247,9 @@ ...@@ -239,7 +247,9 @@
<th scope="col">N. Planos</th> <th scope="col">N. Planos</th>
<th scope="col">Avaliador</th> <th scope="col">Avaliador</th>
<th scope="col">Status</th> <th scope="col">Status</th>
@if ($evento->numParticipantes != 0)
<th scope="col">Bolsas</th> <th scope="col">Bolsas</th>
@endif
</tr> </tr>
</thead> </thead>
<tbody id="projetos"> <tbody id="projetos">
...@@ -260,7 +270,7 @@ ...@@ -260,7 +270,7 @@
{{$trabalho->area->nome}} {{$trabalho->area->nome}}
</td> </td>
<td> <td>
{{$trabalho->participantes->count()}} @if ($evento->numParticipantes != 0) {{$trabalho->participantes->count()}} @else {{$trabalho->proponente->count()}} @endif
</td> </td>
<td> <td>
@if($trabalho->avaliadors->count() > 0) @if($trabalho->avaliadors->count() > 0)
...@@ -295,11 +305,13 @@ ...@@ -295,11 +305,13 @@
@else @else
<td>Pendente</td> <td>Pendente</td>
@endif @endif
@if ($evento->numParticipantes != 0)
<td> <td>
<button type="button" class="btn btn-primary" data-toggle="modal" data-target="#modalConfirmTrab{{$trabalho->id}}" > <button type="button" class="btn btn-primary" data-toggle="modal" data-target="#modalConfirmTrab{{$trabalho->id}}" >
Definir Definir
</button> </button>
</td> </td>
@endif
</tr> </tr>
@php $cont+=1;@endphp @php $cont+=1;@endphp
@endif @endif
...@@ -320,7 +332,7 @@ ...@@ -320,7 +332,7 @@
{{$trabalho->area->nome}} {{$trabalho->area->nome}}
</td> </td>
<td> <td>
{{$trabalho->participantes->count()}} @if ($evento->numParticipantes != 0) {{$trabalho->participantes->count()}} @else {{$trabalho->proponente->count()}} @endif
</td> </td>
<td> <td>
@if($trabalho->avaliadors->count() > 0) @if($trabalho->avaliadors->count() > 0)
...@@ -355,11 +367,13 @@ ...@@ -355,11 +367,13 @@
@else @else
<td>Pendente</td> <td>Pendente</td>
@endif @endif
@if ($evento->numParticipantes != 0)
<td> <td>
<button type="button" class="btn btn-primary" data-toggle="modal" data-target="#modalConfirmTrab{{$trabalho->id}}" > <button type="button" class="btn btn-primary" data-toggle="modal" data-target="#modalConfirmTrab{{$trabalho->id}}" >
Definir Definir
</button> </button>
</td> </td>
@endif
</tr> </tr>
@php $cont+=1;@endphp @php $cont+=1;@endphp
@endif @endif
...@@ -387,7 +401,9 @@ ...@@ -387,7 +401,9 @@
<th scope="col">N. Planos</th> <th scope="col">N. Planos</th>
<th scope="col">Avaliador</th> <th scope="col">Avaliador</th>
<th scope="col">Status</th> <th scope="col">Status</th>
@if ($evento->numParticipantes != 0)
<th scope="col">Bolsas</th> <th scope="col">Bolsas</th>
@endif
</tr> </tr>
</thead> </thead>
<tbody id="projetos"> <tbody id="projetos">
...@@ -408,7 +424,7 @@ ...@@ -408,7 +424,7 @@
{{$trabalho->area->nome}} {{$trabalho->area->nome}}
</td> </td>
<td> <td>
{{$trabalho->participantes->count()}} @if ($evento->numParticipantes != 0) {{$trabalho->participantes->count()}} @else {{$trabalho->proponente->count()}} @endif
</td> </td>
<td> <td>
@if($trabalho->avaliadors->count() > 0) @if($trabalho->avaliadors->count() > 0)
...@@ -443,11 +459,13 @@ ...@@ -443,11 +459,13 @@
@else @else
<td>Pendente</td> <td>Pendente</td>
@endif @endif
@if ($evento->numParticipantes != 0)
<td> <td>
<button type="button" class="btn btn-primary" data-toggle="modal" data-target="#modalConfirmTrab{{$trabalho->id}}" > <button type="button" class="btn btn-primary" data-toggle="modal" data-target="#modalConfirmTrab{{$trabalho->id}}" >
Definir Definir
</button> </button>
</td> </td>
@endif
</tr> </tr>
@php $cont+=1;@endphp @php $cont+=1;@endphp
@endif @endif
...@@ -468,7 +486,7 @@ ...@@ -468,7 +486,7 @@
{{$trabalho->area->nome}} {{$trabalho->area->nome}}
</td> </td>
<td> <td>
{{$trabalho->participantes->count()}} @if ($evento->numParticipantes != 0) {{$trabalho->participantes->count()}} @else {{$trabalho->proponente->count()}} @endif
</td> </td>
<td> <td>
@if($trabalho->avaliadors->count() > 0) @if($trabalho->avaliadors->count() > 0)
...@@ -503,11 +521,13 @@ ...@@ -503,11 +521,13 @@
@else @else
<td>Pendente</td> <td>Pendente</td>
@endif @endif
@if ($evento->numParticipantes != 0)
<td> <td>
<button type="button" class="btn btn-primary" data-toggle="modal" data-target="#modalConfirmTrab{{$trabalho->id}}" > <button type="button" class="btn btn-primary" data-toggle="modal" data-target="#modalConfirmTrab{{$trabalho->id}}" >
Definir Definir
</button> </button>
</td> </td>
@endif
</tr> </tr>
@php $cont+=1;@endphp @php $cont+=1;@endphp
@endif @endif
......
...@@ -135,11 +135,18 @@ ...@@ -135,11 +135,18 @@
<input type="radio" name="anexoJustificativa" value="recusado" @if($parecer!=null && $parecer->statusJustificativaAutorizacaoEtica =='recusado' ) checked @else disabled @endif> <input type="radio" name="anexoJustificativa" value="recusado" @if($parecer!=null && $parecer->statusJustificativaAutorizacaoEtica =='recusado' ) checked @else disabled @endif>
</div> </div>
{{--Planos de trabalho--}} {{--Planos de trabalho MUDAR AQUI--}}
<div class="col-sm-3"> <div class="col-sm-3">
<label for="nomeTrabalho" class="col-form-label">{{ __('Plano de Trabalho: ') }}</label> <label for="nomeTrabalho" class="col-form-label">{{ __('Plano de Trabalho: ') }}</label>
@if ($trabalho->participantes != null) @if ($trabalho->participantes != null)
<a href=" " data-toggle="modal" data-target="#modalPlanos">Planos</a> @if ($evento->numParticipantes == 0)
@php
$arquivo = App\Arquivo::where("trabalhoId", $trabalho->id)->first();
@endphp
<a href="{{ route('baixar.plano', ['id' => $arquivo->id]) }}">Arquivo</a>
@else
<a href=" " data-toggle="modal" data-target="#modalPlanos">Planos</a>
@endif
@else @else
- -
@endif @endif
......
@php $arquivo = \App\Arquivo::find($aval->arquivo_id); @endphp @php $arquivo = \App\Arquivo::find($aval->arquivo_id); @endphp
<div class="container-fluid"> <div class="container-fluid">
<div class="row"> <div class="row">
@if ($arquivo->trabalho->evento->numParticipante != 0)
<h5><b>Discente:</b> <h5><b>Discente:</b>
{{\App\Participante::find($arquivo->participanteId)->user->name}}</h5> {{\App\Participante::find($arquivo->participanteId)->user->name}}</h5>
@else
<h5><b>Proponente:</b>
{{$arquivo->trabalho->proponente->user->name}}</h5>
@endif
</div> </div>
<div class="row"> <div class="row">
......
...@@ -48,7 +48,7 @@ ...@@ -48,7 +48,7 @@
<th scope="col">Nome do Evento</th> <th scope="col">Nome do Evento</th>
<th scope="col">Nome do Projeto</th> <th scope="col">Nome do Projeto</th>
<th scope="col">Nome do plano</th> <th scope="col">Nome do plano</th>
<th scope="col">Discente</th> <th scope="col">Nome</th>
<th scope="col">Tipo do Relatório</th> <th scope="col">Tipo do Relatório</th>
<th scope="col">Status</th> <th scope="col">Status</th>
...@@ -60,7 +60,7 @@ ...@@ -60,7 +60,7 @@
<td style="max-width:100px; overflow-x:hidden; text-overflow:ellipsis">{{ $avaliacao->plano->trabalho->evento->nome }}</td> <td style="max-width:100px; overflow-x:hidden; text-overflow:ellipsis">{{ $avaliacao->plano->trabalho->evento->nome }}</td>
<td style="max-width:100px; overflow-x:hidden; text-overflow:ellipsis">{{ $avaliacao->plano->trabalho->titulo }}</td> <td style="max-width:100px; overflow-x:hidden; text-overflow:ellipsis">{{ $avaliacao->plano->trabalho->titulo }}</td>
<td style="max-width:100px; overflow-x:hidden; text-overflow:ellipsis">{{ $avaliacao->plano->titulo }}</td> <td style="max-width:100px; overflow-x:hidden; text-overflow:ellipsis">{{ $avaliacao->plano->titulo }}</td>
<td style="max-width:100px; overflow-x:hidden; text-overflow:ellipsis">{{ $avaliacao->plano->participante->user->name }}</td> <td style="max-width:100px; overflow-x:hidden; text-overflow:ellipsis">{{ $avaliacao->plano->trabalho->evento->numParticipantes == 0 ? $avaliacao->plano->proponente->user->name : $avaliacao->plano->participante->user->name }}</td>
<td style="max-width:100px; overflow-x:hidden; text-overflow:ellipsis">{{ $avaliacao->tipo }}</td> <td style="max-width:100px; overflow-x:hidden; text-overflow:ellipsis">{{ $avaliacao->tipo }}</td>
<td> <td>
<div class="row justify-content-center"> <div class="row justify-content-center">
......
...@@ -85,22 +85,31 @@ ...@@ -85,22 +85,31 @@
</a> </a>
</td> </td>
<td> <td>
@foreach( $trabalho->participantes as $participante) @if ($evento->numParticipantes == 0)
@php @php
if( App\Arquivo::where('participanteId', $participante->id)->first() != null){ $planoTrabalho = App\Arquivo::where("trabalhoId", $trabalho->id)->first();
$planoTrabalho = App\Arquivo::where('participanteId', $participante->id)->first()->nome;
}else{
$planoTrabalho = null;
}
@endphp @endphp
@if ($planoTrabalho != null) <a href="{{ route('baixar.plano', ['id' => $planoTrabalho->id]) }}" target="_new" style="font-size: 20px; color: #114048ff;" class="btn btn-light">
<a href="{{route('download', ['file' => $planoTrabalho])}}" target="_new" style="font-size: 20px; color: #114048ff;" class="btn btn-light"> <img class="" src="{{asset('img/icons/file-download-solid.svg')}}" style="width:15px">
<img class="" src="{{asset('img/icons/file-download-solid.svg')}}" style="width:15px"> </a>
</a> @else
@else @foreach( $trabalho->participantes as $participante)
Não planos de trabalho. @php
@endif if( App\Arquivo::where('participanteId', $participante->id)->first() != null){
@endforeach $planoTrabalho = App\Arquivo::where('participanteId', $participante->id)->first()->nome;
}else{
$planoTrabalho = null;
}
@endphp
@if ($planoTrabalho != null)
<a href="{{route('download', ['file' => $planoTrabalho])}}" target="_new" style="font-size: 20px; color: #114048ff;" class="btn btn-light">
<img class="" src="{{asset('img/icons/file-download-solid.svg')}}" style="width:15px">
</a>
@else
Não planos de trabalho.
@endif
@endforeach
@endif
</td> </td>
<td> <td>
<div class="row justify-content-center"> <div class="row justify-content-center">
...@@ -186,7 +195,15 @@ ...@@ -186,7 +195,15 @@
<img class="" src="{{asset('img/icons/file-download-solid.svg')}}" style="width:15px"> <img class="" src="{{asset('img/icons/file-download-solid.svg')}}" style="width:15px">
</a> </a>
</td> </td>
<td style="text-align: center"> <td style="text-align: center">
@if ($evento->numParticipantes == 0)
@php
$planoTrabalho = App\Arquivo::where("trabalhoId", $trabalho->id)->first();
@endphp
<a href="{{ route('baixar.plano', ['id' => $planoTrabalho->id]) }}" target="_new" style="font-size: 20px; color: #114048ff;" class="btn btn-light">
<img class="" src="{{asset('img/icons/file-download-solid.svg')}}" style="width:15px">
</a>
@else
@foreach( $trabalho->participantes as $participante) @foreach( $trabalho->participantes as $participante)
@php @php
if( App\Arquivo::where('participanteId', $participante->id)->first() != null){ if( App\Arquivo::where('participanteId', $participante->id)->first() != null){
...@@ -203,6 +220,7 @@ ...@@ -203,6 +220,7 @@
Não planos de trabalho. Não planos de trabalho.
@endif @endif
@endforeach @endforeach
@endif
</td> </td>
<td style="text-align: center"> <td style="text-align: center">
@if($trabalho->pivot->recomendacao == 'RECOMENDADO') @if($trabalho->pivot->recomendacao == 'RECOMENDADO')
......
...@@ -20,6 +20,7 @@ ...@@ -20,6 +20,7 @@
@component('projeto.formularioVisualizar.anexos2', ['edital' => $trabalho->evento, 'projeto' => $trabalho]) @component('projeto.formularioVisualizar.anexos2', ['edital' => $trabalho->evento, 'projeto' => $trabalho])
@endcomponent @endcomponent
</div> </div>
@if ($evento->numParticipantes != 0)
<!-- Participantes --> <!-- Participantes -->
<div class="col-sm-10" style="margin-top: 20px"> <div class="col-sm-10" style="margin-top: 20px">
<div class="card" style="border-radius: 5px"> <div class="card" style="border-radius: 5px">
...@@ -64,6 +65,7 @@ ...@@ -64,6 +65,7 @@
</div> </div>
</div> </div>
</div> </div>
@endif
</div> </div>
</div> </div>
{{-- Parecer Interno --}} {{-- Parecer Interno --}}
......
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