diff --git a/app/Avaliador.php b/app/Avaliador.php index a3b73ead686e4df84e8b68de677ff586935bec03..e555542afa07125d262aaeb40d502cc6f86d244e 100755 --- a/app/Avaliador.php +++ b/app/Avaliador.php @@ -37,4 +37,8 @@ class Avaliador extends Model public function naturezas(){ return $this->belongsToMany('App\Natureza', 'naturezas_avaliadors', 'avaliador_id'); } + + public function areaTematicas() { + return $this->belongsToMany('App\AreaTematica', 'area_tematica_avaliadors', 'avaliador_id'); + } } diff --git a/app/Http/Controllers/AdministradorController.php b/app/Http/Controllers/AdministradorController.php index d78df05d51bbb8805995a11c697a6987c9726153..225341e830ff8f27ece95b46e86ed1b13f63170e 100755 --- a/app/Http/Controllers/AdministradorController.php +++ b/app/Http/Controllers/AdministradorController.php @@ -35,6 +35,7 @@ use Illuminate\Support\Str; use Illuminate\Validation\Rule; use PDF; use DB; +use App\AreaTematica; class AdministradorController extends Controller @@ -167,6 +168,8 @@ class AdministradorController extends Controller } $grandeAreas = GrandeArea::orderBy('nome')->get(); + $areasTematicas = AreaTematica::orderBy('nome')->get(); + //dd($areasTematicas); $hoje = Carbon::today('America/Recife'); $hoje = $hoje->toDateString(); @@ -181,7 +184,8 @@ class AdministradorController extends Controller 'AvalRelatParcial' => $AvalRelatParcial, 'AvalRelatFinal' => $AvalRelatFinal, 'hoje' => $hoje, - 'flagSubstituicao' => $flagSubstituicao, ]); + 'flagSubstituicao' => $flagSubstituicao, + 'areasTematicas' => $areasTematicas, ]); } public function showProjetos(Request $request) @@ -658,13 +662,33 @@ class AdministradorController extends Controller $coordenador_id_evento = $evento->coordenadorId; $coordenador_id = CoordenadorComissao::find($coordenador_id_evento); $grandeAreas = GrandeArea::orderBy('nome')->get(); + $areasTematicas = AreaTematica::orderBy('nome')->get(); $avalSelecionados = $evento->avaliadors; $avalNaoSelecionadosId = $evento->avaliadors->pluck('id'); $trabalhos = $evento->trabalhos->whereNotIn('status', 'rascunho'); - $avaliadores = Avaliador::join('naturezas_avaliadors', 'avaliadors.id', '=' ,'naturezas_avaliadors.avaliador_id') - ->whereNotIn('avaliadors.id', $avalNaoSelecionadosId) - ->where('naturezas_avaliadors.natureza_id', $evento->natureza_id) - ->get(); + $avaliadores = Avaliador::whereNotIn('id', $avalNaoSelecionadosId)->get(); + + //$avaliadores = Avaliador::join('naturezas_avaliadors', 'avaliadors.id', '=' ,'naturezas_avaliadors.avaliador_id')->whereNotIn('avaliadors.id', $avalNaoSelecionadosId) + // ->where('naturezas_avaliadors.natureza_id', $evento->natureza_id) + // ->get(); + + $avaliadores_extensao = collect(); + $avaliadores_others = collect(); + + foreach($avaliadores as $avaliador){ + if($evento->natureza_id == 3 && count($avaliador->areaTematicas) > 0){ + $avaliadores_extensao->push($avaliador); + }elseif($evento->natureza_id != 3 && count($avaliador->areaTematicas) == 0){ + $avaliadores_others->push($avaliador); + } + } + + if($evento->natureza_id == 3){ + $avaliadores = $avaliadores_extensao; + } else { + $avaliadores = $avaliadores_others; + } + if ((Auth::user()->id != $coordenador_id->user_id) && ($user->tipo != 'administrador')) { return redirect()->back(); @@ -676,6 +700,7 @@ class AdministradorController extends Controller 'avalSelecionados' => $avalSelecionados, 'grandeAreas' => $grandeAreas, 'trabalhos' => $trabalhos, + 'areasTematicas' => $areasTematicas, ]); } @@ -684,6 +709,7 @@ class AdministradorController extends Controller $evento = Evento::where('id', $request->evento_id)->first(); $trabalhos = $evento->trabalhos; $grandesAreas = GrandeArea::orderBy('nome')->get(); + $areasTematicas = AreaTematica::orderBy('nome')->get(); $avaliadores = $evento->avaliadors; foreach ($trabalhos as $key => $trabalho) { $avalSelecionadosId = $trabalho->avaliadors->pluck('id'); @@ -698,6 +724,7 @@ class AdministradorController extends Controller 'trabalhos' => $trabalhos, 'avaliadores' => $avaliadores, 'grandesAreas' => $grandesAreas, + 'areasTematicas' => $areasTematicas ]); } @@ -837,6 +864,7 @@ class AdministradorController extends Controller $emailAvaliador = $request->emailAvaliador; $area = Area::where('id', $request->area_id)->first(); $user = User::where('email', $emailAvaliador)->first(); + $areaTematica = AreaTematica::find($request->areasTemeticas); if ($request->instituicao == 'ufape') { $nomeInstituicao = 'Universidade Federal do Agreste de Pernambuco'; @@ -885,6 +913,10 @@ class AdministradorController extends Controller $avaliador->save(); } + if($evento->natureza_id == 3){ + $avaliador->areaTematicas()->sync($areaTematica); + } + if ($request->instituicao == 'ufape') { $trabalho->avaliadors()->attach($avaliador, ['acesso' => 2]); $evento->avaliadors()->syncWithoutDetaching($avaliador); @@ -939,7 +971,8 @@ class AdministradorController extends Controller $emailAvaliador = $request->emailAvaliador; $area = Area::where('id', $request->area_id)->first(); $user = User::where('email', $emailAvaliador)->first(); - + $areaTematica = AreaTematica::find($request->areasTemeticas); + if ($request->instituicao == 'ufape') { $nomeInstituicao = 'Universidade Federal do Agreste de Pernambuco'; $externoInterno = 'Interno'; @@ -984,6 +1017,7 @@ class AdministradorController extends Controller $avaliador->eventos()->attach($evento); if($evento->natureza_id == 3){ $avaliador->naturezas()->sync($evento->natureza_id); + $avaliador->areaTematicas()->sync($areaTematica); } $user->save(); $avaliador->save(); @@ -992,6 +1026,7 @@ class AdministradorController extends Controller $avaliador->eventos()->attach($evento); if($evento->natureza_id == 3){ $avaliador->naturezas()->sync($evento->natureza_id); + $avaliador->areaTematicas()->sync($areaTematica); } $user->save(); $avaliador->save(); diff --git a/app/Http/Controllers/Auth/RegisterController.php b/app/Http/Controllers/Auth/RegisterController.php index d9ae34de3ba1544eb2b6086696fe7d6fd1f52ba4..0776106e211514d1ec3471123cf180246e5fdbf2 100755 --- a/app/Http/Controllers/Auth/RegisterController.php +++ b/app/Http/Controllers/Auth/RegisterController.php @@ -12,6 +12,7 @@ use Illuminate\Validation\Rule; use App\User; use App\Participante; use App\Proponente; +use App\Endereco; use App\Rules\UrlValidacao; use App\Curso; @@ -55,31 +56,49 @@ class RegisterController extends Controller */ protected function validator(array $data) { + if ($data['perfil'] == "Estudante") + { + return Validator::make($data, [ + 'name' => ['required', 'string', 'max:255'], + 'email' => ['required', 'string', 'email', 'max:255', 'unique:users'], + 'password' => ['required', 'string', 'min:8', 'confirmed'], + 'cpf' => ['required', 'cpf', 'unique:users'], + 'rg' => ['required', 'unique:participantes'], + 'celular' => ['required', 'string', 'telefone'], + 'instituicao' => ['required_if:instituicaoSelect,Outra', 'max:255'], + 'instituicaoSelect' => ['required_without:instituicao'], + 'outroCursoEstudante' => ['required_if:cursoEstudante,Outro', 'max:255'], + 'cursoEstudante' => ['required_without:outroCursoEstudante'], + 'perfil' => ['required'], + 'linkLattes' => ['required'], + ]); + } return Validator::make($data, [ 'name' => ['required', 'string', 'max:255'], 'email' => ['required', 'string', 'email', 'max:255', 'unique:users'], 'password' => ['required', 'string', 'min:8', 'confirmed'], 'cpf' => ['required', 'cpf', 'unique:users'], + 'rg' => ['required', 'unique:participantes'], 'celular' => ['required', 'string', 'telefone'], 'instituicao' => ['required_if:instituicaoSelect,Outra', 'max:255'], 'instituicaoSelect' => ['required_without:instituicao'], - 'cargo' => ['required'], + 'perfil' => ['required'], 'vinculo' => ['required'], 'outro' => ['required_if:vinculo,Outro'], 'titulacaoMaxima' => ['required_with:anoTitulacao,areaFormacao,bolsistaProdutividade'], - 'titulacaoMaxima' => Rule::requiredIf((isset($data['cargo']) && $data['cargo'] !== 'Estudante') || (isset($data['cargo']) && $data['cargo'] === 'Estudante' && isset($data['vinculo']) && $data['vinculo'] === 'Pós-doutorando')), + 'titulacaoMaxima' => Rule::requiredIf((isset($data['perfil']) && $data['perfil'] !== 'Estudante') || (isset($data['perfil']) && $data['perfil'] === 'Estudante' && isset($data['vinculo']) && $data['vinculo'] === 'Pós-doutorando')), 'anoTitulacao' => ['required_with:titulacaoMaxima,areaFormacao,bolsistaProdutividade,linkLattes'], - 'anoTitulacao' => Rule::requiredIf((isset($data['cargo']) && $data['cargo'] !== 'Estudante') || (isset($data['cargo']) && $data['cargo'] === 'Estudante' && isset($data['vinculo']) && $data['vinculo'] === 'Pós-doutorando')), + 'anoTitulacao' => Rule::requiredIf((isset($data['perfil']) && $data['perfil'] !== 'Estudante') || (isset($data['perfil']) && $data['perfil'] === 'Estudante' && isset($data['vinculo']) && $data['vinculo'] === 'Pós-doutorando')), 'areaFormacao' => ['required_with:titulacaoMaxima,anoTitulacao,bolsistaProdutividade,linkLattes'], - 'areaFormacao' => Rule::requiredIf((isset($data['cargo']) && $data['cargo'] !== 'Estudante') || (isset($data['cargo']) && $data['cargo'] === 'Estudante' && isset($data['vinculo']) && $data['vinculo'] === 'Pós-doutorando')), + 'areaFormacao' => Rule::requiredIf((isset($data['perfil']) && $data['perfil'] !== 'Estudante') || (isset($data['perfil']) && $data['perfil'] === 'Estudante' && isset($data['vinculo']) && $data['vinculo'] === 'Pós-doutorando')), 'bolsistaProdutividade' => ['required_with:titulacaoMaxima,anoTitulacao,areaFormacao,linkLattes'], - 'bolsistaProdutividade' => Rule::requiredIf((isset($data['cargo']) && $data['cargo'] !== 'Estudante') || (isset($data['cargo']) && $data['cargo'] === 'Estudante' && isset($data['vinculo']) && $data['vinculo'] === 'Pós-doutorando')), + 'bolsistaProdutividade' => Rule::requiredIf((isset($data['perfil']) && $data['perfil'] !== 'Estudante') || (isset($data['perfil']) && $data['perfil'] === 'Estudante' && isset($data['vinculo']) && $data['vinculo'] === 'Pós-doutorando')), 'nivel' => ['required_if:bolsistaProdutividade,sim'], - //'nivel' => [(isset($data['cargo']) && $data['cargo'] !== 'Estudante') || (isset($data['cargo']) && $data['cargo'] === 'Estudante' && isset($data['vinculo']) && $data['vinculo'] === 'Pós-doutorando') ? 'required':''], + //'nivel' => [(isset($data['perfil']) && $data['perfil'] !== 'Estudante') || (isset($data['perfil']) && $data['perfil'] === 'Estudante' && isset($data['vinculo']) && $data['vinculo'] === 'Pós-doutorando') ? 'required':''], 'linkLattes' => ['required_with:titulacaoMaxima,anoTitulacao,areaFormacao,bolsistaProdutividade'], - 'linkLattes' => [(isset($data['cargo']) && $data['cargo'] !== 'Estudante') || (isset($data['cargo']) && $data['cargo'] === 'Estudante' && isset($data['vinculo']) && $data['vinculo'] === 'Pós-doutorando') ? 'required':''], - 'linkLattes' => [(isset($data['cargo']) && $data['cargo'] !== 'Estudante') || (isset($data['cargo']) && $data['cargo'] === 'Estudante' && isset($data['vinculo']) && $data['vinculo'] === 'Pós-doutorando') ? 'link_lattes':''], + 'linkLattes' => [(isset($data['perfil']) && $data['perfil'] !== 'Estudante') || (isset($data['perfil']) && $data['perfil'] === 'Estudante' && isset($data['vinculo']) && $data['vinculo'] === 'Pós-doutorando') ? 'required':''], + 'linkLattes' => [(isset($data['perfil']) && $data['perfil'] !== 'Estudante') || (isset($data['perfil']) && $data['perfil'] === 'Estudante' && isset($data['vinculo']) && $data['vinculo'] === 'Pós-doutorando') ? 'link_lattes':''], ]); } @@ -91,35 +110,61 @@ class RegisterController extends Controller * @return \App\User */ protected function create(array $data) - { - // dd($data); + { + $participante = new Participante(); + $participante->rg = $data['rg']; $user = new User(); $user->name = $data['name']; $user->email = $data['email']; $user->password = bcrypt($data['password']); $user->cpf = $data['cpf']; $user->celular = $data['celular']; + if ($data['instituicao'] != null) { $user->instituicao = $data['instituicao']; } else if (isset($data['instituicaoSelect']) && $data['instituicaoSelect'] != "Outra") { $user->instituicao = $data['instituicaoSelect']; } - if ($data['cargo'] === "Estudante" && $data['vinculo'] !== "Pós-doutorando") { + if ($data['perfil'] === "Estudante"){ $user->tipo = 'participante'; - $user->save(); - $participante = new Participante(); + $endereco = new Endereco(); + $endereco->cep = $data['cep']; + $endereco->uf = $data['uf']; + $endereco->cidade = $data['cidade']; + $endereco->rua = $data['rua']; + $endereco->numero = $data['numero']; + $endereco->bairro = $data['bairro']; + $endereco->complemento = $data['complemento']; + $endereco->save(); + + $participante->data_de_nascimento = $data['data_de_nascimento']; + $participante->linkLattes = $data['linkLattes']; + + + if ($data['outroCursoEstudante'] != null) { + $participante->curso = $data['outroCursoEstudante']; + } else if (isset($data['cursoEstudante']) && $data['cursoEstudante'] != "Outro") { + $participante->curso = $data['cursoEstudante']; + } + + $user->save(); $user->participantes()->save($participante); + $endereco->user()->save($user); + } else { + $user->tipo = 'proponente'; $user->save(); $proponente = new Proponente(); - if ($data['SIAPE'] != null) { - $proponente->SIAPE = $data['SIAPE']; - } - $proponente->cargo = $data['cargo']; + $proponente->cargo = $data['perfil']; + $proponente->titulacaoMaxima = $data['titulacaoMaxima']; + $proponente->anoTitulacao = $data['anoTitulacao']; + $proponente->areaFormacao = $data['areaFormacao']; + $proponente->bolsistaProdutividade = $data['bolsistaProdutividade']; + $proponente->linkLattes = $data['linkLattes']; if ($data['vinculo'] != 'Outro') { $proponente->vinculo = $data['vinculo']; @@ -127,17 +172,18 @@ class RegisterController extends Controller $proponente->vinculo = $data['outro']; } - $proponente->titulacaoMaxima = $data['titulacaoMaxima']; - $proponente->anoTitulacao = $data['anoTitulacao']; - $proponente->areaFormacao = $data['areaFormacao']; - $proponente->bolsistaProdutividade = $data['bolsistaProdutividade']; + if ($data['SIAPE'] != null) { + $proponente->SIAPE = $data['SIAPE']; + } + if ($data['bolsistaProdutividade'] == 'sim') { $proponente->nivel = $data['nivel']; - } - $proponente->linkLattes = $data['linkLattes']; + } $user->proponentes()->save($proponente); - if($proponente->titulacaoMaxima == 'Técnico'){ + $user->participantes()->save($participante); + + if($data['perfil'] == 'Professor'){ $proponente->cursos()->sync($data['curso']); } } diff --git a/app/Http/Controllers/TrabalhoController.php b/app/Http/Controllers/TrabalhoController.php index eeb6fd518dae544c27e86a967eafadb409d9667a..4a5256dc169413716470f9a3cfd50f35eb44b411 100755 --- a/app/Http/Controllers/TrabalhoController.php +++ b/app/Http/Controllers/TrabalhoController.php @@ -13,6 +13,7 @@ use App\AreaTematica; use App\Arquivo; use App\Coautor; use App\Revisor; +use App\TrabalhoUser; use App\SubArea; use App\Endereco; use App\Trabalho; @@ -400,6 +401,8 @@ class TrabalhoController extends Controller $flagSubstituicao = -1; } + $trabalhos_user = TrabalhoUser::where('trabalho_id', $projeto->id)->get(); + return view('projeto.visualizar')->with(['projeto' => $projeto, 'grandeAreas' => $grandeAreas, 'areas' => $areas, @@ -414,7 +417,8 @@ class TrabalhoController extends Controller 'enum_turno' => Participante::ENUM_TURNO, 'areasTematicas' => $areasTematicas, 'flagSubstituicao' =>$flagSubstituicao, - 'proponente' => $proponente, + 'trabalhos_user' => $trabalhos_user, + 'proponente' => $proponente ]); } @@ -469,6 +473,8 @@ class TrabalhoController extends Controller $rascunho = Trabalho::where('proponente_id', $proponente->id)->where('evento_id', $edital->id)->where('status', 'Rascunho') ->orderByDesc('updated_at')->first(); + $trabalhos_user = TrabalhoUser::where('trabalho_id', $projeto->id)->get(); + return view('projeto.editar')->with(['projeto' => $projeto, 'grandeAreas' => $grandeAreas, 'areas' => $areas, @@ -482,7 +488,8 @@ class TrabalhoController extends Controller 'estados' => $this->estados, 'areaTematicas' => $areaTematicas, 'listaOds' => $ODS, - 'proponente' => $proponente, + 'trabalhos_user' => $trabalhos_user, + 'proponente' => $proponente ]); } @@ -876,6 +883,29 @@ class TrabalhoController extends Controller $trabalho = $this->armazenarAnexosFinais($request, $pasta, $trabalho, $evento); $trabalho->save(); + + + if($request->integrantesExistentes == null){ + $request->integrantesExistentes = []; + } + $usuariosRemovidos = TrabalhoUser::where('trabalho_id', $trabalho->id)->whereNotIn('user_id', $request->integrantesExistentes)->get(); + + if($usuariosRemovidos->first() != null) { + foreach($usuariosRemovidos as $usuarioRemovido){ + $usuarioRemovido->delete(); + } + } + + if($evento->natureza_id == 3 && $request->integrantes != null){ + foreach($request->integrantes as $integrante){ + $integrante = explode(',', $integrante); + $trabalho_user = new TrabalhoUser(); + $trabalho_user->user_id = $integrante[0]; + $trabalho_user->funcao_participante_id = $integrante[1]; + $trabalho_user->trabalho_id = $trabalho->id; + $trabalho_user->save(); + } + } if ($evento->numParticipantes != 0) { if ($request->marcado == null) { @@ -1077,6 +1107,16 @@ class TrabalhoController extends Controller } + public function buscarUsuario(Request $request) { + $usuario = User::where('cpf', $request->cpf_consulta)->first(); + $funcao = FuncaoParticipantes::where('id', $request->funcao)->first(); + if($usuario){ + return json_encode([$usuario, $funcao]); + } + + return json_encode('inexistente'); + } + public function salvar(StoreTrabalho $request) { @@ -1215,6 +1255,19 @@ class TrabalhoController extends Controller $trabalho->modalidade = $request->modalidade; $trabalho->save(); + + if($evento->natureza_id == 3){ + foreach($request->integrantes as $integrante){ + $integrante = explode(',', $integrante); + + $trabalho_user = new TrabalhoUser(); + $trabalho_user->user_id = $integrante[0]; + $trabalho_user->funcao_participante_id = $integrante[1]; + $trabalho_user->trabalho_id = $trabalho->id; + $trabalho_user->save(); + } + } + $trabalho->ods()->sync($request->ods); DB::commit(); if (!$request->has('rascunho')) { diff --git a/app/Trabalho.php b/app/Trabalho.php index 174d9c1cf5a756b79e2e642ec8ab7220e6d4b391..3744e78468a4f7d3be21245b570495c85b2364df 100755 --- a/app/Trabalho.php +++ b/app/Trabalho.php @@ -1,133 +1,137 @@ -hasMany('App\Recurso', 'trabalhoId'); - } - - public function arquivo(){ - return $this->hasMany('App\Arquivo', 'trabalhoId'); - } - - public function modalidade(){ - return $this->belongsTo('App\Modalidade', 'modalidadeId'); - } - - public function area(){ - return $this->belongsTo('App\Area'); - } - public function grandeArea(){ - return $this->belongsTo('App\GrandeArea'); - } - public function subArea(){ - return $this->belongsTo('App\SubArea'); - } - - public function areaTematica(){ - return $this->belongsTo('App\AreaTematica'); - } - - public function autor(){ - return $this->belongsTo('App\User', 'autorId'); - } - - public function coautor(){ - return $this->hasMany('App\Coautor', 'trabalhoId'); - } - - public function parecer(){ - return $this->hasMany('App\Parecer', 'trabalhoId'); - } - - public function atribuicao(){ - return $this->hasMany('App\Atribuicao', 'trabalhoId'); - } - - public function evento(){ - return $this->belongsTo('App\Evento'); - } - public function planoTrabalho(){ - return $this->hasMany('App\PlanoTrabalho'); - } - public function participantes(){ - // return $this->belongsToMany('App\Trabalho', 'trabalho_participante'); - return $this->hasMany('App\Participante', 'trabalho_id'); - } - public function proponente(){ - return $this->belongsTo('App\Proponente'); - } - public function coordenador(){ - return $this->belongsTo('App\CoordenadorComissao'); - } - public function avaliadors(){ - return $this->belongsToMany('App\Avaliador')->withPivot('status', 'AnexoParecer', 'parecer', 'recomendacao', 'created_at','pontuacao','acesso'); - } - - public function substituicaos(){ - return $this->hasMany('App\Substituicao'); - } - - public function parecer_internos(){ - return $this->hasMany(ParecerInterno::class, 'trab_id', 'id'); - } - - public function notificacoes(){ - return $this->hasMany(Notificacao::class, 'trabalho_id', 'id'); - } - - public function desligamentos(){ - return $this->hasMany(Desligamento::class, 'trabalho_id', 'id')->orderBy('created_at', 'DESC'); - } - - public function solicitacoesCertificados() - { - return $this->hasMany(Certificado::class, 'trabalho_id'); - } - - public function ods(){ - return $this->belongsToMany('App\ObjetivoDeDesenvolvimentoSustentavel', 'objetivo_de_desenvolvimento_sustentavel_trabalhos', 'trabalho_id'); - } -} +hasMany('App\Recurso', 'trabalhoId'); + } + + public function arquivo(){ + return $this->hasMany('App\Arquivo', 'trabalhoId'); + } + + public function modalidade(){ + return $this->belongsTo('App\Modalidade', 'modalidadeId'); + } + + public function area(){ + return $this->belongsTo('App\Area'); + } + public function grandeArea(){ + return $this->belongsTo('App\GrandeArea'); + } + public function subArea(){ + return $this->belongsTo('App\SubArea'); + } + + public function areaTematica(){ + return $this->belongsTo('App\AreaTematica'); + } + + public function autor(){ + return $this->belongsTo('App\User', 'autorId'); + } + + public function coautor(){ + return $this->hasMany('App\Coautor', 'trabalhoId'); + } + + public function parecer(){ + return $this->hasMany('App\Parecer', 'trabalhoId'); + } + + public function atribuicao(){ + return $this->hasMany('App\Atribuicao', 'trabalhoId'); + } + + public function evento(){ + return $this->belongsTo('App\Evento'); + } + public function planoTrabalho(){ + return $this->hasMany('App\PlanoTrabalho'); + } + public function participantes(){ + // return $this->belongsToMany('App\Trabalho', 'trabalho_participante'); + return $this->hasMany('App\Participante', 'trabalho_id'); + } + public function proponente(){ + return $this->belongsTo('App\Proponente'); + } + public function coordenador(){ + return $this->belongsTo('App\CoordenadorComissao'); + } + public function avaliadors(){ + return $this->belongsToMany('App\Avaliador')->withPivot('status', 'AnexoParecer', 'parecer', 'recomendacao', 'created_at','pontuacao','acesso'); + } + + public function substituicaos(){ + return $this->hasMany('App\Substituicao'); + } + + public function parecer_internos(){ + return $this->hasMany(ParecerInterno::class, 'trab_id', 'id'); + } + + public function notificacoes(){ + return $this->hasMany(Notificacao::class, 'trabalho_id', 'id'); + } + + public function desligamentos(){ + return $this->hasMany(Desligamento::class, 'trabalho_id', 'id')->orderBy('created_at', 'DESC'); + } + + public function solicitacoesCertificados() + { + return $this->hasMany(Certificado::class, 'trabalho_id'); + } + + public function ods(){ + return $this->belongsToMany('App\ObjetivoDeDesenvolvimentoSustentavel', 'objetivo_de_desenvolvimento_sustentavel_trabalhos', 'trabalho_id'); + } + + public function integrantes() { + return $this->belongsToMany('App\User', 'trabalho_users', 'trabalho_id'); + } +} diff --git a/app/TrabalhoUser.php b/app/TrabalhoUser.php new file mode 100644 index 0000000000000000000000000000000000000000..ce8dc6113e98ee319e370151c11ac3baaad757aa --- /dev/null +++ b/app/TrabalhoUser.php @@ -0,0 +1,16 @@ +belongsTo('App\User'); + } + + public function funcao(){ + return $this->belongsTo('App\FuncaoParticipantes', 'funcao_participante_id'); + } +} diff --git a/database/migrations/2022_11_21_164737_create_area_tematica_avaliadors_table.php b/database/migrations/2022_11_21_164737_create_area_tematica_avaliadors_table.php new file mode 100644 index 0000000000000000000000000000000000000000..5fdef8179b32d63a1ae41a09d60e360223184bbc --- /dev/null +++ b/database/migrations/2022_11_21_164737_create_area_tematica_avaliadors_table.php @@ -0,0 +1,38 @@ +bigIncrements('id'); + + $table->integer('area_tematica_id'); + $table->foreign('area_tematica_id')->references('id')->on('area_tematicas'); + + $table->integer('avaliador_id'); + $table->foreign('avaliador_id')->references('id')->on('avaliadors'); + + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('area_tematica_avaliadors'); + } +} diff --git a/database/migrations/2023_01_09_165956_create_trabalho_users_table.php b/database/migrations/2023_01_09_165956_create_trabalho_users_table.php new file mode 100644 index 0000000000000000000000000000000000000000..ec45d3ba38c28792a37e9dc1a99e1fd5cc60925d --- /dev/null +++ b/database/migrations/2023_01_09_165956_create_trabalho_users_table.php @@ -0,0 +1,40 @@ +bigIncrements('id'); + $table->timestamps(); + + $table->integer('user_id'); + $table->foreign('user_id')->references('id')->on('users'); + + $table->integer('trabalho_id'); + $table->foreign('trabalho_id')->references('id')->on('trabalhos'); + + $table->integer('funcao_participante_id'); + $table->foreign('funcao_participante_id')->references('id')->on('funcao_participantes'); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('trabalho_users'); + } +} diff --git a/resources/views/administrador/analisarProposta.blade.php b/resources/views/administrador/analisarProposta.blade.php index 87b9d282b08c301329f1f1d1e578346e20a2023a..4080a0fbb118cb2f55a51016f4e6d14d01aaa0f3 100644 --- a/resources/views/administrador/analisarProposta.blade.php +++ b/resources/views/administrador/analisarProposta.blade.php @@ -1,5 +1,9 @@ @extends('layouts.app') +@section('styles') + +@endsection + @section('content') @php $grandesAreas = \App\GrandeArea::all(); @@ -1584,7 +1588,7 @@ + -
- - + @if($evento->natureza_id == 3) +
+ + +
+ @else +
+ + - - -
+ + +
+ @endif
+
+ + + + +
+ + + + + + @if($evento->natureza_id == 3) + + @else + + @endif + + + + + + @foreach ($avaliadores as $avaliador) + + + + + + + + @endforeach + +
Nome do UsuárioEmailÁrea TemáticaÁreaTipoAção
{{ $avaliador->user->name }}{{ $avaliador->user->email }} + @if(is_null($avaliador->area)) + @if($avaliador->areaTematicas()->get()->first() != null) + {{ $avaliador->areaTematicas()->get()->first()->nome }} + @else + Indefinida + @endif + @else + {{ $avaliador->area->nome }} + @endif + + + @if($avaliador->tipo == null) + Externo + @else + {{$avaliador->tipo}} + @endif + + + @csrf + + {{-- --}} + + + + +
+ +
+
+

Avaliadores Selecionados para o Edital: {{ $evento->nome }}

+
+
+
+ + + + + + + + + + + + + @foreach ($avalSelecionados as $avaliador) + + + + + @if($avaliador->eventos->where('id', $evento->id)->first()->pivot->convite == true) + + @elseif(is_null($avaliador->eventos->where('id', $evento->id)->first()->pivot->convite)) + + @else + + @endif + + + + @if($avaliador->trabalhos->where('evento_id', $evento->id)->count() == 0) + + @else + + @endif + + + + + + + + + + @endforeach + +
Nome do UsuárioTipoEmailStatusProjetosAção
{{ $avaliador->user->name }}{{ $avaliador->tipo }}{{ $avaliador->user->email }}AceitoA confirmarRecusadoeventos->where('id', $evento->id)->first()->pivot->convite != null) style="text-align:center" @endif style="text-align:center; display:flex; justify-content: space-evenly"> +
+ @csrf + + + + + + + +
+
+ @csrf + + + +
+
+ + + + + + + + +@endsection + +@section('javascript') + + + + +@endsection diff --git a/resources/views/administrador/selecionarProjetos.blade.php b/resources/views/administrador/selecionarProjetos.blade.php index 7f7978530e4cebeac21d5b943f0554868c9386c2..11d8b19c78b76a13dca3ca375d06c79eecb781ec 100755 --- a/resources/views/administrador/selecionarProjetos.blade.php +++ b/resources/views/administrador/selecionarProjetos.blade.php @@ -1,481 +1,513 @@ -@extends('layouts.app') - -@section('content') - -
- - -
-
- - -
-

Status dos Projetos em Avaliação do edital: {{ $evento->nome }}

-
-
- - {{-- --}} -
-
-
- - - - - - - - - - - - - @foreach($trabalhos as $trabalho) - @foreach($trabalho->avaliadors as $avaliador) - {{-- Avaliação Interna --}} - @if(($avaliador->tipo == 'Interno' && ($avaliador->trabalhos()->where("trabalho_id",$trabalho->id)->first()->pivot->acesso == null || $avaliador->trabalhos()->where("trabalho_id",$trabalho->id)->first()->pivot->acesso != 1)) - || (($avaliador->user->instituicao == "UFAPE" || $avaliador->user->instituicao == "Universidade Federal do Agreste de Pernambuco") && $avaliador->tipo == null && ($avaliador->trabalhos()->where("trabalho_id",$trabalho->id)->first()->pivot->acesso == null || $avaliador->trabalhos()->where("trabalho_id",$trabalho->id)->first()->pivot->acesso != 1))) - - - - - - @php - $parecerInterno = App\ParecerInterno::where([['avaliador_id',$avaliador->id],['trabalho_id',$trabalho->id]])->first(); - @endphp - - - - @endif - - {{-- Avaliação Ad Hoc --}} - @if( ($avaliador->trabalhos()->where("trabalho_id",$trabalho->id)->first()->pivot->acesso == null && $avaliador->tipo == "Externo") || $avaliador->trabalhos()->where("trabalho_id",$trabalho->id)->first()->pivot->acesso != 2 - || (($avaliador->user->instituicao != "UFAPE" && $avaliador->user->instituicao != "Universidade Federal do Agreste de Pernambuco") && $avaliador->tipo == null && ($avaliador->trabalhos()->where("trabalho_id",$trabalho->id)->first()->pivot->acesso == null || $avaliador->trabalhos()->where("trabalho_id",$trabalho->id)->first()->pivot->acesso != 2))) - - - - - - - - - @endif - - - @endforeach - @endforeach - - -
Nome do UsuárioTipo de AvaliaçãoE-mailTitulo do projetoStatus avaliaçãoAção
{{ $avaliador->user->name }} Interno {{ $avaliador->user->email }}{{ $trabalho->titulo }}@if($parecerInterno == null) Pendente @else Avaliado @endif - -
{{ $avaliador->user->name }} Ad Hoc {{ $avaliador->user->email }}{{ $trabalho->titulo }}@if($avaliador->trabalhos->where('id', $trabalho->id)->first()->pivot->status == false) Pendente @else Avaliado @endif - -
- - -
-
- -

Lista de Projetos do Edital: {{ $evento->nome }}

- -
-
- -
-
-
-
- -
-
- -
-
-
-
-
-
- - - - - - - - - - - @foreach ($trabalhos as $trabalho) - - - - - - - @endforeach - -
Nome do ProjetoÁreaProponenteAção
{{ $trabalho->titulo}}{{ App\Area::find($trabalho->area_id)->nome}}{{ $trabalho->proponente->user->name }} - - - -
- - - - -
- -@endsection -@section('javascript') - -@endsection +@extends('layouts.app') + +@section('styles') + +@endsection + +@section('content') + +
+ + +
+
+ + +
+

Status dos Projetos em Avaliação do edital: {{ $evento->nome }}

+
+
+ + {{-- --}} +
+
+
+ + + + + + + + + + + + + @foreach($trabalhos as $trabalho) + @foreach($trabalho->avaliadors as $avaliador) + {{-- Avaliação Interna --}} + @if(($avaliador->tipo == 'Interno' && ($avaliador->trabalhos()->where("trabalho_id",$trabalho->id)->first()->pivot->acesso == null || $avaliador->trabalhos()->where("trabalho_id",$trabalho->id)->first()->pivot->acesso != 1)) + || (($avaliador->user->instituicao == "UFAPE" || $avaliador->user->instituicao == "Universidade Federal do Agreste de Pernambuco") && $avaliador->tipo == null && ($avaliador->trabalhos()->where("trabalho_id",$trabalho->id)->first()->pivot->acesso == null || $avaliador->trabalhos()->where("trabalho_id",$trabalho->id)->first()->pivot->acesso != 1))) + + + + + + @php + $parecerInterno = App\ParecerInterno::where([['avaliador_id',$avaliador->id],['trabalho_id',$trabalho->id]])->first(); + @endphp + + + + @endif + + {{-- Avaliação Ad Hoc --}} + @if( ($avaliador->trabalhos()->where("trabalho_id",$trabalho->id)->first()->pivot->acesso == null && $avaliador->tipo == "Externo") || $avaliador->trabalhos()->where("trabalho_id",$trabalho->id)->first()->pivot->acesso != 2 + || (($avaliador->user->instituicao != "UFAPE" && $avaliador->user->instituicao != "Universidade Federal do Agreste de Pernambuco") && $avaliador->tipo == null && ($avaliador->trabalhos()->where("trabalho_id",$trabalho->id)->first()->pivot->acesso == null || $avaliador->trabalhos()->where("trabalho_id",$trabalho->id)->first()->pivot->acesso != 2))) + + + + + + + + + @endif + + + @endforeach + @endforeach + + +
Nome do UsuárioTipo de AvaliaçãoE-mailTitulo do projetoStatus avaliaçãoAção
{{ $avaliador->user->name }} Interno {{ $avaliador->user->email }}{{ $trabalho->titulo }}@if($parecerInterno == null) Pendente @else Avaliado @endif + +
{{ $avaliador->user->name }} Ad Hoc {{ $avaliador->user->email }}{{ $trabalho->titulo }}@if($avaliador->trabalhos->where('id', $trabalho->id)->first()->pivot->status == false) Pendente @else Avaliado @endif + +
+ + +
+
+ +

Lista de Projetos do Edital: {{ $evento->nome }}

+ +
+
+ +
+
+
+
+ +
+
+ +
+
+
+
+
+
+ + + + + @if($evento->natureza_id == 3) + + @else + + @endif + + + + + + @foreach ($trabalhos as $trabalho) + + + @if($evento->natureza_id == 3) + + @else + + @endif + + + + @endforeach + +
Nome do ProjetoÁrea TemáticaÁreaProponenteAção
{{ $trabalho->titulo }}{{ App\AreaTematica::find($trabalho->area_tematica_id)->nome }}{{ App\Area::find($trabalho->area_id)->nome }}{{ $trabalho->proponente->user->name }} + + + +
+ + + + +
+ +@endsection +@section('javascript') + + + + + +@endsection diff --git a/resources/views/auth/register.blade.php b/resources/views/auth/register.blade.php index c24e3b82fb76c11100acf1a745304751daa9a1e1..96217def0034ba2de53a2f797b672b73a02f3e6b 100755 --- a/resources/views/auth/register.blade.php +++ b/resources/views/auth/register.blade.php @@ -23,7 +23,7 @@
- + @error('name') @@ -34,8 +34,8 @@
- - + + @error('cpf') @@ -46,7 +46,19 @@
- + + + + @error('rg') + + {{ $message }} + + @enderror +
+
+
+
+ @error('celular') @@ -63,7 +75,7 @@
- + @error('instituicao') @@ -89,15 +101,15 @@
- - + + + + + - - @error('cargo') + @error('perfil') {{ $message }} @@ -105,27 +117,18 @@
-
- - - - @error('vinculo') +
+ + + @error('outroPerfil') {{ $message }} @enderror
- -