diff --git a/app/Http/Controllers/AdministradorController.php b/app/Http/Controllers/AdministradorController.php index 01df2accddab440e3e63ca7249da701011e73b91..3cf3b18e3310164af5e0946bd8687d8e31ee67dc 100755 --- a/app/Http/Controllers/AdministradorController.php +++ b/app/Http/Controllers/AdministradorController.php @@ -1,1123 +1,1123 @@ -get(); - $funcoesParticipante = FuncaoParticipantes::orderBy('nome')->get(); - - return view('naturezas.index')->with(['naturezas' => $naturezas, 'funcoes' => $funcoesParticipante]); - } - - public function usuarios() - { - $users = User::orderBy('name')->get(); - - return view('administrador.usersAdmin')->with(['users' => $users]); - } - - public function editais() - { - //$admin = Administrador::with('user')->where('user_id', Auth()->user()->id)->first(); - //$eventos = Evento::where('coordenadorId',$admin->id )->get(); - $eventos = Evento::all()->sortByDesc('created_at'); - - return view('administrador.editais', ['eventos' => $eventos]); - } - - public function pareceres(Request $request) - { - $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); - $user = Auth::user(); - - if ((Auth::user()->id != $coordenador_id->user_id) && ($user->tipo != 'administrador')) { - return redirect()->back(); - } - - return view('administrador.projetos')->with(['trabalhos' => $trabalhos, 'evento' => $evento]); - } - - public function analisar(Request $request) - { - $evento = Evento::find($request->evento_id); - $status = ['submetido', 'avaliado', 'aprovado', 'reprovado', 'corrigido']; - $aux = Trabalho::where('evento_id', $evento->id) - ->whereIn('status', $status) - ->pluck('grande_area_id'); - - $idArea = Trabalho::where('evento_id', $evento->id) - ->whereIn('status', $status) - ->pluck('area_id'); - - $trabalhos = $evento->trabalhos->whereNotIn('status', 'rascunho')->sortBy('titulo'); - - $grandesAreas = GrandeArea::whereIn('id', $aux)->get(); - $areas = Area::whereIn('id', $idArea)->get(); - - $funcaoParticipantes = FuncaoParticipantes::all(); - // $participantes = Participante::where('trabalho_id', $id)->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]); - } - - // Utilizado para paginação de Collection - - public function analisarProposta(Request $request) - { - $trabalho = Trabalho::where('id', $request->id)->first(); - $evento = Evento::where('id', $trabalho->evento_id)->first(); - $funcaoParticipantes = FuncaoParticipantes::all(); - $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(); - $trabalho->aval = $avalProjeto; - // Usuarios que possuem avaliações de relatório - //$avaliacoesRelatorio = [];->join('users','users.id','=','candidatos.user_id') - $AvalRelatParcial = []; - $AvalRelatFinal = []; - foreach ($trabalho->participantes as $participante) { - if (isset($participante->planoTrabalho)) { - $avals = AvaliacaoRelatorio::where('arquivo_id', $participante->planoTrabalho->id)->get(); - } else { - $avals = []; - } - foreach ($avals as $aval) { - if ($aval->tipo == 'Parcial') { - array_push($AvalRelatParcial, $aval); - } else { - array_push($AvalRelatFinal, $aval); - } - } - } - - // Verficação de pendencia de substituição - $aux = count(Substituicao::where('status', 'Em Aguardo')->whereIn('participanteSubstituido_id', $trabalho->participantes->pluck('id'))->get()); - $flagSubstituicao = 1; - if ($aux != 0) { - $flagSubstituicao = -1; - } - - $grandeAreas = GrandeArea::orderBy('nome')->get(); - $areasTematicas = AreaTematica::orderBy('nome')->get(); - //dd($areasTematicas); - - $hoje = Carbon::today('America/Recife'); - $hoje = $hoje->toDateString(); - - return view('administrador.analisarProposta')->with( - ['trabalho' => $trabalho, - 'funcaoParticipantes' => $funcaoParticipantes, - 'evento' => $evento, - 'substituicoesPendentes' => $substituicoesPendentes, - 'substituicoesProjeto' => $substituicoesProjeto, - 'grandeAreas' => $grandeAreas, - 'AvalRelatParcial' => $AvalRelatParcial, - 'AvalRelatFinal' => $AvalRelatFinal, - 'hoje' => $hoje, - 'flagSubstituicao' => $flagSubstituicao, - 'areasTematicas' => $areasTematicas, ]); - } - - public function showProjetos(Request $request) - { - $projetos = Trabalho::all()->where('status', '<>', 'rascunho'); - $funcaoParticipantes = FuncaoParticipantes::all(); - - return view('administrador.listaProjetos')->with(['projetos' => $projetos, 'funcaoParticipantes' => $funcaoParticipantes]); - } - - public function showResultados(Request $request) - { - //dd($request); - $evento = Evento::where('id', $request->evento_id)->first(); - $coordenador_id_evento = $evento->coordenadorId; - $coordenador_id = CoordenadorComissao::find($coordenador_id_evento); - $user = Auth::user(); - - if ((Auth::user()->id != $coordenador_id->user_id) && ($user->tipo != 'administrador')) { - return redirect()->back(); - } - - // Com cotas - if ($evento->cotaDoutor) { - // Ampla Concorrencia - $trabalhosAmpla = Trabalho::where('evento_id', $evento->id) - ->where('modalidade', 'AmplaConcorrencia')->get(); - foreach ($trabalhosAmpla as $trabalho) { - $trabalho->pontuacao = 0; - $cont = 0; - // Caso especial do PIBEX onde a pontuação fica no Ad Hoc - if ($evento->tipo == 'PIBEX') { - foreach ($trabalho->avaliadors as $avaliador) { - if (($avaliador->trabalhos()->where('trabalho_id', $trabalho->id)->first()->pivot->acesso == 1 || - $avaliador->trabalhos()->where('trabalho_id', $trabalho->id)->first()->pivot->acesso == 3) && - $avaliador->trabalhos()->where('trabalho_id', $trabalho->id)->first()->pivot->pontuacao != null) { - $trabalho->pontuacao += $avaliador->trabalhos()->where('trabalho_id', $trabalho->id)->first()->pivot->pontuacao; - ++$cont; - } - } - } else { - foreach ($trabalho->avaliadors as $avaliador) { - if ($avaliador->tipo == 'Interno') { - $parecerInterno = ParecerInterno::where([['avaliador_id', $avaliador->id], ['trabalho_id', $trabalho->id]])->first(); - if ($parecerInterno != null) { - $trabalho->pontuacao += $parecerInterno->statusAnexoPlanilhaPontuacao; - ++$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; - }); - - // Recém Doutor - $trabalhosDoutor = Trabalho::where('evento_id', $evento->id) - ->where('modalidade', 'RecemDoutor')->get(); - foreach ($trabalhosDoutor as $trabalho) { - $trabalho->pontuacao = 0; - $cont = 0; - // Caso especial do PIBEX onde a pontuação fica no Ad Hoc - if ($evento->tipo == 'PIBEX') { - foreach ($trabalho->avaliadors as $avaliador) { - if (($avaliador->trabalhos()->where('trabalho_id', $trabalho->id)->first()->pivot->acesso == 1 || - $avaliador->trabalhos()->where('trabalho_id', $trabalho->id)->first()->pivot->acesso == 3) && - $avaliador->trabalhos()->where('trabalho_id', $trabalho->id)->first()->pivot->pontuacao != null) { - $trabalho->pontuacao += $avaliador->trabalhos()->where('trabalho_id', $trabalho->id)->first()->pivot->pontuacao; - ++$cont; - } - } - } else { - foreach ($trabalho->avaliadors as $avaliador) { - if ($avaliador->tipo == 'Interno') { - $parecerInterno = ParecerInterno::where([['avaliador_id', $avaliador->id], ['trabalho_id', $trabalho->id]])->first(); - if ($parecerInterno != null) { - $trabalho->pontuacao += $parecerInterno->statusAnexoPlanilhaPontuacao; - ++$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; - }); - - return view('administrador.resultadosProjetosCotas')->with(['evento' => $evento, 'trabalhosAmpla' => $trabalhosAmpla, 'trabalhosDoutor' => $trabalhosDoutor]); - } - - // Sem Cotas - $trabalhos = $evento->trabalhos; - foreach ($trabalhos as $trabalho) { - $trabalho->pontuacao = 0; - $cont = 0; - // Caso especial do PIBEX onde a pontuação fica no Ad Hoc - if ($evento->tipo == 'PIBEX') { - foreach ($trabalho->avaliadors as $avaliador) { - if (($avaliador->trabalhos()->where('trabalho_id', $trabalho->id)->first()->pivot->acesso == 1 || - $avaliador->trabalhos()->where('trabalho_id', $trabalho->id)->first()->pivot->acesso == 3) && - $avaliador->trabalhos()->where('trabalho_id', $trabalho->id)->first()->pivot->pontuacao != null) { - $trabalho->pontuacao += $avaliador->trabalhos()->where('trabalho_id', $trabalho->id)->first()->pivot->pontuacao; - ++$cont; - } - } - } 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, ',', ''); - } - } - $trabalhos = $trabalhos->sort(function ($item, $next) { - return $item->pontuacao >= $next->pontuacao ? -1 : 1; - }); - - return view('administrador.resultadosProjetos')->with(['evento' => $evento, 'trabalhos' => $trabalhos]); - } - - public function visualizarParecer(Request $request) - { - $avaliador = Avaliador::find($request->avaliador_id); - $trabalho = $avaliador->trabalhos->where('id', $request->trabalho_id)->first(); - $parecer = $avaliador->trabalhos->where('id', $request->trabalho_id)->first()->pivot; - - //dd($parecer); - return view('administrador.visualizarParecer')->with(['trabalho' => $trabalho, 'parecer' => $parecer, 'avaliador' => $avaliador]); - } - - public function visualizarParecerInterno(Request $request) - { - $avaliador = Avaliador::find($request->avaliador_id); - $trabalho = $avaliador->trabalhos->where('id', $request->trabalho_id)->first(); - $parecerInterno = ParecerInterno::where([['avaliador_id', $avaliador->id], ['trabalho_id', $trabalho->id]])->first(); - $evento = Evento::find($trabalho->evento_id); - - //dd($parecer); - return view('administrador.visualizarParecerInterno')->with(['parecer' => $parecerInterno, 'avaliador' => $avaliador, 'trabalho' => $trabalho, 'evento' => $evento]); - } - - public function create() - { - return view('administrador.novo_user'); - } - - public function salvar(Request $request) - { - if ($request->tipo == 'coordenador') { - $validated = $request->validate([ - 'name' => ['required', 'string', 'max:255'], - 'tipo' => ['required'], - 'email' => ['required', 'string', 'email', 'max:255', 'unique:users'], - 'instituicao' => ['required_if:instituicaoSelect,Outra', 'max:255'], - 'instituicaoSelect' => ['required_without:instituicao'], - 'senha' => ['required', 'min:8'], - 'confirmar_senha' => ['required', 'min:8'], - 'celular' => ($request['celular'] != null ? 'required|string|telefone' : 'nullable'), - 'cpf' => ($request['cpf'] != null ? 'required|cpf|unique:users' : 'nullable'), - ]); - } elseif ($request->tipo != 'proponente') { - $validated = $request->validate([ - 'name' => ['required', 'string', 'max:255'], - 'tipo' => ['required'], - 'email' => ['required', 'string', 'email', 'max:255', 'unique:users'], - 'instituicao' => ['required_if:instituicaoSelect,Outra', 'max:255'], - 'instituicaoSelect' => ['required_without:instituicao'], - 'celular' => ['required', 'string', 'telefone'], - 'senha' => ['required', 'min:8'], - 'confirmar_senha' => ['required', 'min:8'], - 'cpf' => ['required', 'cpf', 'unique:users'], - ]); - } else { - $validated = $request->validate([ - 'name' => ['required', 'string', 'max:255'], - 'email' => ['required', 'string', 'email', 'max:255', 'unique:users'], - 'tipo' => ['required'], - 'cpf' => ['required', 'cpf', 'unique:users'], - 'celular' => ['required', 'string', 'telefone'], - 'senha' => ['required', 'min:8'], - 'confirmar_senha' => ['required', 'min:8'], - 'instituicao' => ['required_if:instituicaoSelect,Outra', 'max:255'], - 'instituicaoSelect' => ['required_without:instituicao'], - 'cargo' => ['required'], - 'vinculo' => ['required'], - 'outro' => ['required_if:vinculo,Outro'], - 'titulacaoMaxima' => ['required_with:anoTitulacao,areaFormacao,bolsistaProdutividade'], - 'titulacaoMaxima' => Rule::requiredIf((isset($request['cargo']) && $request['cargo'] !== 'Estudante') || (isset($request['cargo']) && $request['cargo'] === 'Estudante' && isset($request['vinculo']) && $request['vinculo'] === 'Pós-doutorando')), - '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')), - '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')), - 'bolsistaProdutividade' => ['required_with:titulacaoMaxima,anoTitulacao,areaFormacao,linkLattes'], - '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'], - //'nivel' => [(isset($data['cargo']) && $data['cargo'] !== 'Estudante') || (isset($data['cargo']) && $data['cargo'] === 'Estudante' && isset($data['vinculo']) && $data['vinculo'] === 'Pós-doutorando') ? 'required':''], - 'linkLattes' => ['required_with:titulacaoMaxima,anoTitulacao,areaFormacao,bolsistaProdutividade'], - 'linkLattes' => ['required_with:titulacaoMaxima,anoTitulacao,areaFormacao,bolsistaProdutividade'], - 'linkLattes' => ['required_with:titulacaoMaxima,anoTitulacao,areaFormacao,bolsistaProdutividade'], - 'linkLattes' => [(isset($request['cargo']) && $request['cargo'] !== 'Estudante') || (isset($request['cargo']) && $request['cargo'] === 'Estudante' && isset($request['vinculo']) && $request['vinculo'] === 'Pós-doutorando') ? 'required' : ''], - 'linkLattes' => [(isset($request['cargo']) && $request['cargo'] !== 'Estudante') || (isset($request['cargo']) && $request['cargo'] === 'Estudante' && isset($request['vinculo']) && $request['vinculo'] === 'Pós-doutorando') ? 'link_lattes' : ''], - ]); - } - - if (!($request->senha === $request->confirmar_senha)) { - return redirect()->back()->withErrors(['senha' => 'Senhas diferentes']); - } - - $user = new User(); - $user->name = $request->name; - $user->tipo = $request->tipo; - $user->cpf = $request->cpf; - $user->celular = $request->celular; - $user->email = $request->email; - $user->password = bcrypt($request->senha); - if ($request->instituicao != null) { - $user->instituicao = $request->instituicao; - } elseif (isset($request->instituicaoSelect) && $request->instituicaoSelect != 'Outra') { - $user->instituicao = $request->instituicaoSelect; - } - $user->save(); - - switch ($request->tipo) { - case 'administradorResponsavel': - $adminResp = new AdministradorResponsavel(); - $adminResp->user_id = $user->id; - $adminResp->save(); - break; - case 'coordenador': - $coordenador = new CoordenadorComissao(); - $coordenador->user_id = $user->id; - $coordenador->save(); - break; - case 'avaliador': - $avaliador = new Avaliador(); - $avaliador->user_id = $user->id; - $avaliador->tipo = $request->tipoAvaliador; - $avaliador->save(); - break; - case 'proponente': - $proponente = new Proponente(); - if ($request->SIAPE != null) { - $proponente->SIAPE = $request->SIAPE; - } - $proponente->cargo = $request->cargo; - - if ($request->vinculo != 'Outro') { - $proponente->vinculo = $request->vinculo; - } else { - $proponente->vinculo = $request->outro; - } - - $proponente->titulacaoMaxima = $request->titulacaoMaxima; - $proponente->anoTitulacao = $request->anoTitulacao; - $proponente->areaFormacao = $request->areaFormacao; - $proponente->bolsistaProdutividade = $request->bolsistaProdutividade; - if ($request->bolsistaProdutividade == 'sim') { - $proponente->nivel = $request->nivel; - } - $proponente->linkLattes = $request->linkLattes; - - $proponente->user_id = $user->id; - $proponente->save(); - break; - case 'participante': - $participante = new Participante(); - $participante->user_id = $user->id; - $participante->save(); - break; - } - - return redirect(route('admin.usuarios'))->with(['mensagem' => 'Usuário cadastrado com sucesso']); - } - - public function edit($id) - { - $user = User::find($id); - - $adminResp = AdministradorResponsavel::where('user_id', '=', $id)->first(); - $avaliador = Avaliador::where('user_id', '=', $id)->first(); - $proponente = Proponente::where('user_id', '=', $id)->first(); - $participante = Participante::where('user_id', '=', $id)->first(); - - return view('administrador.editar_user')->with(['user' => $user, - 'adminResp' => $adminResp, - 'proponente' => $proponente, - 'participante' => $participante, ]); - } - - public function update(Request $request, $id) - { - $user = User::find($id); - - if ($request->tipo == 'coordenador') { - $validated = $request->validate([ - 'name' => ['required', 'string', 'max:255'], - 'tipo' => ['required'], - 'email' => ['required', 'string', 'email', 'max:255'], - 'instituicao' => ['required_if:instituicaoSelect,Outra', 'max:255'], - 'instituicaoSelect' => ['required_without:instituicao'], - 'celular' => ($request['celular'] != null ? 'required|string|telefone' : 'nullable'), - 'cpf' => ($request['cpf'] != null ? 'required|cpf|unique:users' : 'nullable'), - ]); - } elseif ($request->tipo != 'proponente') { - $validated = $request->validate([ - 'name' => ['required', 'string', 'max:255'], - 'tipo' => ['required'], - 'email' => ['required', 'string', 'email', 'max:255'], - 'instituicao' => ['required_if:instituicaoSelect,Outra', 'max:255'], - 'instituicaoSelect' => ['required_without:instituicao'], - 'celular' => ['required', 'string', 'telefone'], - 'cpf' => ['required', 'cpf'], - ]); - } else { - $validated = $request->validate([ - 'name' => ['required', 'string', 'max:255'], - 'email' => ['required', 'string', 'email', 'max:255'], - 'tipo' => ['required'], - 'cpf' => ['required', 'cpf'], - 'celular' => ['required', 'string', 'telefone'], - 'instituicao' => ['required_if:instituicaoSelect,Outra', 'max:255'], - 'instituicaoSelect' => ['required_without:instituicao'], - 'cargo' => ['required'], - 'vinculo' => ['required'], - 'outro' => ['required_if:vinculo,Outro'], - 'titulacaoMaxima' => ['required_with:anoTitulacao,areaFormacao,bolsistaProdutividade'], - 'titulacaoMaxima' => Rule::requiredIf((isset($request['cargo']) && $request['cargo'] !== 'Estudante') || (isset($request['cargo']) && $request['cargo'] === 'Estudante' && isset($request['vinculo']) && $request['vinculo'] === 'Pós-doutorando')), - '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')), - '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')), - 'bolsistaProdutividade' => ['required_with:titulacaoMaxima,anoTitulacao,areaFormacao,linkLattes'], - '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'], - //'nivel' => [(isset($data['cargo']) && $data['cargo'] !== 'Estudante') || (isset($data['cargo']) && $data['cargo'] === 'Estudante' && isset($data['vinculo']) && $data['vinculo'] === 'Pós-doutorando') ? 'required':''], - 'linkLattes' => ['required_with:titulacaoMaxima,anoTitulacao,areaFormacao,bolsistaProdutividade'], - 'linkLattes' => ['required_with:titulacaoMaxima,anoTitulacao,areaFormacao,bolsistaProdutividade'], - 'linkLattes' => ['required_with:titulacaoMaxima,anoTitulacao,areaFormacao,bolsistaProdutividade'], - 'linkLattes' => [(isset($request['cargo']) && $request['cargo'] !== 'Estudante') || (isset($request['cargo']) && $request['cargo'] === 'Estudante' && isset($request['vinculo']) && $request['vinculo'] === 'Pós-doutorando') ? 'required' : ''], - 'linkLattes' => [(isset($request['cargo']) && $request['cargo'] !== 'Estudante') || (isset($request['cargo']) && $request['cargo'] === 'Estudante' && isset($request['vinculo']) && $request['vinculo'] === 'Pós-doutorando') ? 'link_lattes' : ''], - ]); - } - - // if (!(Hash::check($request->senha_atual, $user->password))) { - // return redirect()->back()->withErrors(['senha_atual' => 'Senha atual não correspondente']); - // } - - // if (!($request->nova_senha === $request->confirmar_senha)) { - // return redirect()->back()->withErrors(['nova_senha' => 'Senhas diferentes']); - // } - - switch ($request->tipo) { - case 'administradorResponsavel': - $adminResp = AdministradorResponsavel::where('user_id', '=', $id)->first(); - $adminResp->user_id = $user->id; - $adminResp->update(); - break; - case 'coordenador': - $coordenador = CoordenadorComissao::where('user_id', '=', $id)->first(); - $coordenador->user_id = $user->id; - $coordenador->update(); - break; - case 'avaliador': - $avaliador = Avaliador::where('user_id', '=', $id)->first(); - $avaliador->user_id = $user->id; - $avaliador->update(); - break; - case 'proponente': - $proponente = Proponente::where('user_id', '=', $id)->first(); - if ($request->SIAPE != null) { - $proponente->SIAPE = $request->SIAPE; - } - $proponente->cargo = $request->cargo; - - if ($request->vinculo != 'Outro') { - $proponente->vinculo = $request->vinculo; - } else { - $proponente->vinculo = $request->outro; - } - - $proponente->titulacaoMaxima = $request->titulacaoMaxima; - $proponente->anoTitulacao = $request->anoTitulacao; - $proponente->areaFormacao = $request->areaFormacao; - $proponente->bolsistaProdutividade = $request->bolsistaProdutividade; - if ($request->bolsistaProdutividade == 'sim') { - $proponente->nivel = $request->nivel; - } - $proponente->linkLattes = $request->linkLattes; - - $proponente->user_id = $user->id; - $proponente->update(); - break; - case 'participante': - $participante = Participante::where('user_id', '=', $id)->first(); - $participante->user_id = $user->id; - $participante->update(); - break; - } - - $user->name = $request->name; - $user->tipo = $request->tipo; - $user->email = $request->email; - $user->cpf = $request->cpf; - $user->celular = $request->celular; - if ($request->instituicao != null) { - $user->instituicao = $request->instituicao; - } elseif (isset($request->instituicaoSelect) && $request->instituicaoSelect != 'Outra') { - $user->instituicao = $request->instituicaoSelect; - } - // $user->password = bcrypt($request->nova_senha); - $user->update(); - - return redirect(route('admin.usuarios'))->with(['mensagem' => 'Usuário atualizado com sucesso']); - } - - public function destroy($id) - { - $user = User::find($id); - $adminResp = AdministradorResponsavel::where('user_id', '=', $id)->first(); - $avaliador = Avaliador::where('user_id', '=', $id)->first(); - $proponente = Proponente::where('user_id', '=', $id)->first(); - $participante = Participante::where('user_id', '=', $id)->first(); - - if (!(is_null($adminResp))) { - $adminResp->delete(); - } elseif (!(is_null($avaliador))) { - $avaliador->delete(); - } elseif (!(is_null($proponente))) { - $proponente->delete(); - } elseif (!(is_null($participante))) { - $participante->delete(); - } - - $user->delete(); - - return redirect(route('admin.usuarios'))->with(['mensagem' => 'Usuário deletado com sucesso']); - } - - public function atribuir(Request $request) - { - $evento = Evento::where('id', $request->evento_id)->first(); - $coordenador_id_evento = $evento->coordenadorId; - $coordenador_id = CoordenadorComissao::find($coordenador_id_evento); - $user = Auth::user(); - - if ((Auth::user()->id != $coordenador_id->user_id) && ($user->tipo != 'administrador')) { - return redirect()->back(); - } - - return view('administrador.atribuirAvaliadores', ['evento' => $evento]); - } - - public function selecionar(Request $request) - { - $user = Auth::user(); - - $evento = Evento::where('id', $request->evento_id)->first(); - $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::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(); - } - - return view('administrador.selecionarAvaliadores', [ - 'evento' => $evento, - 'avaliadores' => $avaliadores, - 'avalSelecionados' => $avalSelecionados, - 'grandeAreas' => $grandeAreas, - 'trabalhos' => $trabalhos, - 'areasTematicas' => $areasTematicas, - ]); - } - - public function projetos(Request $request) - { - $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'); - $avalProjeto = Avaliador::whereNotIn('id', $avalSelecionadosId)->get(); - $trabalho->aval = $avalProjeto; - } - - //dd($avaliadores->teste); - - return view('administrador.selecionarProjetos', [ - 'evento' => $evento, - 'trabalhos' => $trabalhos, - 'avaliadores' => $avaliadores, - 'grandesAreas' => $grandesAreas, - 'areasTematicas' => $areasTematicas - ]); - } - - public function adicionar(Request $request) - { - $evento = Evento::where('id', $request->evento_id)->first(); - $aval = Avaliador::where('id', $request->avaliador_id)->first(); - $aval->eventos()->attach($evento); - $aval->save(); - $user = $aval->user()->first(); - - $subject = 'Convite para avaliar projetos da UFAPE'; - Mail::to($user->email) - ->send(new EmailParaUsuarioNaoCadastrado($user->name, ' ', 'Avaliador-Cadastrado', $evento->nome, ' ', $subject, $evento->tipo, $evento->natureza_id)); - - return redirect()->back(); - } - - public function remover(Request $request) - { - $evento = Evento::where('id', $request->evento_id)->first(); - $aval = Avaliador::where('id', $request->avaliador_id)->first(); - $aval->eventos()->detach($evento); - $aval->trabalhos()->detach(); - $aval->save(); - - return redirect()->back(); - } - - public function removerProjAval(Request $request) - { - //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(); - 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'))) { - $aval->trabalhos() - ->updateExistingPivot($trabalho->id, ['acesso' => 2]); - } else { - $aval->trabalhos()->detach($trabalho); - } - } 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'))) { - $aval->trabalhos() - ->updateExistingPivot($trabalho->id, ['acesso' => 1]); - } else { - $aval->trabalhos()->detach($trabalho); - } - } - - if ($trabalho->status === 'avaliado') { - $trabalho->status = 'submetido'; - $trabalho->save(); - } - - $aval->save(); - - return redirect()->back(); - } - - public function buscar(Request $request) - { - $trabalho = Trabalho::where('id', $request->item)->first(); - $avalSelecionadosId = $trabalho->avaliadors->pluck('id'); - $avalProjeto = Avaliador::whereNotIn('id', $avalSelecionadosId)->get(); - - //dd($avaliadores); - - return response()->json($avalProjeto); - } - - public function atribuicaoProjeto(Request $request) - { - $trabalho = Trabalho::where('id', $request->trabalho_id)->first(); - $evento = Evento::where('id', $request->evento_id)->first(); - - if ($request->avaliadores_internos_id != null) { - foreach ($request->avaliadores_internos_id as $avaliador) { - $aval = Avaliador::find($avaliador); - if ($aval->trabalhos()->where('trabalho_id', $trabalho->id)->first() != null) { - $aval->trabalhos() - ->updateExistingPivot($trabalho->id, ['acesso' => 3]); - } else { - $trabalho->avaliadors()->attach($aval, ['acesso' => 2]); - $evento->avaliadors()->syncWithoutDetaching($aval); - } - } - } - - if ($request->avaliadores_externos_id != null) { - foreach ($request->avaliadores_externos_id as $avaliador) { - $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')))) { - if ($aval->trabalhos()->where('trabalho_id', $trabalho->id)->first() != null) { - $aval->trabalhos() - ->updateExistingPivot($trabalho->id, ['acesso' => 3]); - } else { - $trabalho->avaliadors()->attach($aval, ['acesso' => 1]); - $evento->avaliadors()->syncWithoutDetaching($aval); - } - } else { - $trabalho->avaliadors()->attach($aval, ['acesso' => 1]); - $evento->avaliadors()->syncWithoutDetaching($aval); - } - } - } - - if ($request->avaliadores_externos_id == null & $request->avaliadores_internos_id == null) { - redirect()->back()->with(['error' => 'Selecione ao menos um avaliador.', 'trabalho' => $trabalho->id]); - } - - $avaliadores = Avaliador::whereIn('id', (array) $request->avaliadores_externos_id) - ->orWhereIn('id', (array) $request->avaliadores_internos_id)->get(); - $trabalho->save(); - - foreach ($avaliadores as $avaliador) { - $userTemp = User::find($avaliador->user->id); - - $notificacao = Notificacao::create([ - 'remetente_id' => Auth::user()->id, - 'destinatario_id' => $avaliador->user_id, - 'trabalho_id' => $request->trabalho_id, - 'lido' => false, - 'tipo' => 5, - ]); - $notificacao->save(); - Notification::send($userTemp, new AtribuicaoAvaliadorExternoNotification($userTemp, $trabalho, $evento->formAvaliacaoExterno, $avaliador->trabalhos()->where('trabalho_id', $trabalho->id)->first()->pivot->acesso)); - } - - return redirect()->back(); - } - - public function enviarConviteEAtribuir(Request $request) - { - $evento = Evento::where('id', $request->evento_id)->first(); - $nomeAvaliador = $request->nomeAvaliador; - $emailAvaliador = $request->emailAvaliador; - $area = Area::where('id', $request->area_id)->first(); - $user = User::where('email', $emailAvaliador)->first(); - $areaTematica = AreaTematica::where('id', $request->area_tematica_id)->first(); - - if ($request->instituicao == 'ufape') { - $nomeInstituicao = 'Universidade Federal do Agreste de Pernambuco'; - $externoInterno = 'Interno'; - } else { - $nomeInstituicao = $request->outra; - $externoInterno = 'Externo'; - } - if (isset($user)) { - $passwordTemporario = Str::random(8); - $subject = 'Convite para avaliar projetos da UFAPE'; - Mail::to($emailAvaliador) - ->send(new EmailParaUsuarioNaoCadastrado($nomeAvaliador, ' ', 'Avaliador-Cadastrado', $evento->nome, $passwordTemporario, $subject, $evento->tipo, $evento->natureza_id)); - } else { - $passwordTemporario = Str::random(8); - $subject = 'Convite para avaliar projetos da UFAPE'; - Mail::to($emailAvaliador) - ->send(new EmailParaUsuarioNaoCadastrado($nomeAvaliador, ' ', 'Avaliador', $evento->nome, $passwordTemporario, $subject, $evento->tipo, $evento->natureza_id)); - $user = User::create([ - 'email' => $emailAvaliador, - 'password' => bcrypt($passwordTemporario), - 'usuarioTemp' => false, - 'name' => $nomeAvaliador, - 'tipo' => 'avaliador', - 'instituicao' => $nomeInstituicao, - ]); - - $user->markEmailAsVerified(); - } - - $trabalho = Trabalho::where('id', $request->trabalho_id)->first(); - - if ($user->avaliadors == null) { - $avaliador = new Avaliador(); - $avaliador->tipo = $externoInterno; - $avaliador->save(); - $avaliador->area()->associate($area); - $avaliador->user()->associate($user); - $avaliador->eventos()->attach($evento); - $user->save(); - $avaliador->save(); - } else { - $avaliador = $user->avaliadors; - $avaliador->eventos()->attach($evento); - $user->save(); - $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); - } else { - $trabalho->avaliadors()->attach($avaliador, ['acesso' => 1]); - $evento->avaliadors()->syncWithoutDetaching($avaliador); - } - - $trabalho->save(); - - $notificacao = Notificacao::create([ - 'remetente_id' => Auth::user()->id, - 'destinatario_id' => $avaliador->user_id, - 'trabalho_id' => $request->trabalho_id, - 'lido' => false, - 'tipo' => 5, - ]); - $notificacao->save(); - - return redirect()->back(); - } - - public function reenviarConviteAtribuicaoProjeto(Request $request) - { - $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) { - $avaliador->user->avaliadors->eventos()->updateExistingPivot($evento->id, ['convite' => null]); - } - - $notificacao = Notificacao::create([ - 'remetente_id' => Auth::user()->id, - 'destinatario_id' => $avaliador->user_id, - 'trabalho_id' => $request->trabalho_id, - 'lido' => false, - 'tipo' => 5, - ]); - $notificacao->save(); - - $trabalho = Trabalho::where('id', $request->trabalho_id)->first(); - $subject = 'Convite para avaliar projetos da UFAPE - Reenvio'; - Mail::to($avaliador->user->email) - ->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)); - - return redirect()->back(); - } - - public function enviarConvite(Request $request) - { - $evento = Evento::where('id', $request->evento_id)->first(); - $nomeAvaliador = $request->nomeAvaliador; - $emailAvaliador = $request->emailAvaliador; - $area = Area::where('id', $request->area_id)->first(); - $user = User::where('email', $emailAvaliador)->first(); - $areaTematica = AreaTematica::where('id', $request->area_tematica_id)->first(); - - if ($request->instituicao == 'ufape') { - $nomeInstituicao = 'Universidade Federal do Agreste de Pernambuco'; - $externoInterno = 'Interno'; - } else { - $nomeInstituicao = $request->outra; - $externoInterno = 'Externo'; - } - - //existe o caso de enviar o convite de novo para um mesmo usuário - // if(isset($user->avaliadors->eventos->where('id', $evento->id)->first()->pivot->convite) ){ - // return redirect()->back()->with(['mensagem' => 'Usuário já recebeu um convite e está pendente']); - // } - - if (isset($user)) { - $passwordTemporario = Str::random(8); - $subject = 'Convite para avaliar projetos da UFAPE'; - Mail::to($emailAvaliador) - ->send(new EmailParaUsuarioNaoCadastrado($nomeAvaliador, ' ', 'Avaliador-Cadastrado', $evento->nome, $passwordTemporario, $subject, $evento->tipo, $evento->natureza_id)); - } else { - $passwordTemporario = Str::random(8); - $subject = 'Convite para avaliar projetos da UFAPE'; - Mail::to($emailAvaliador) - ->send(new EmailParaUsuarioNaoCadastrado($nomeAvaliador, ' ', 'Avaliador', $evento->nome, $passwordTemporario, $subject, $evento->tipo, $evento->natureza_id)); - $user = User::create([ - 'email' => $emailAvaliador, - 'password' => bcrypt($passwordTemporario), - 'usuarioTemp' => false, - 'name' => $nomeAvaliador, - 'tipo' => 'avaliador', - 'instituicao' => $nomeInstituicao, - ]); - - $user->markEmailAsVerified(); - } - - if ($user->avaliadors == null) { - $avaliador = new Avaliador(); - $avaliador->tipo = $externoInterno; - $avaliador->save(); - $avaliador->area()->associate($area); - $avaliador->user()->associate($user); - $avaliador->eventos()->attach($evento); - if($evento->natureza_id == 3){ - $avaliador->naturezas()->sync($evento->natureza_id); - $avaliador->areaTematicas()->sync($areaTematica); - } - $user->save(); - $avaliador->save(); - } else { - $avaliador = $user->avaliadors; - $avaliador->eventos()->attach($evento); - if($evento->natureza_id == 3){ - $avaliador->naturezas()->sync($evento->natureza_id); - $avaliador->areaTematicas()->sync($areaTematica); - } - $user->save(); - $avaliador->save(); - } - - return redirect()->back(); - } - - public function reenviarConvite(Request $request) - { - $evento = Evento::where('id', $request->evento_id)->first(); - $avaliador = Avaliador::where('id', $request->avaliador_id)->first(); - $user = $avaliador->user()->first(); - - $subject = 'Convite para avaliar projetos da UFAPE - Reenvio'; - Mail::to($user->email) - ->send(new EmailParaUsuarioNaoCadastrado($user->name, ' ', 'Avaliador-Cadastrado', $evento->nome, ' ', $subject, $evento->tipo, $evento->natureza_id)); - - return redirect()->back(); - } - - // public function baixarAnexo(Request $request) { - // return Storage::download($request->anexo); - // } - - public function baixarModeloAvaliacao() - { - $file = public_path().'/ModeloFormularioAvaliadorExternoPIBIC.docx'; - $headers = ['Content-Type: application/docx']; - ob_end_clean(); - - return response()->download($file, 'ModeloFormularioAvaliadorExternoPIBIC.docx', $headers); - } - - public function imprimirResultados(Request $request) - { - $evento = Evento::where('id', $request->id)->first(); - // Ampla Concorrencia - $trabalhosAmpla = Trabalho::where('evento_id', $evento->id) - ->where('modalidade', 'AmplaConcorrencia')->get(); - - foreach ($trabalhosAmpla as $trabalho) { - $trabalho->pontuacao = 0; - $cont = 0; - // Caso especial do PIBEX onde a pontuação fica no Ad Hoc - if ($evento->tipo == 'PIBEX') { - foreach ($trabalho->avaliadors as $avaliador) { - if (($avaliador->trabalhos()->where('trabalho_id', $trabalho->id)->first()->pivot->acesso == 1 || - $avaliador->trabalhos()->where('trabalho_id', $trabalho->id)->first()->pivot->acesso == 3) && - $avaliador->trabalhos()->where('trabalho_id', $trabalho->id)->first()->pivot->pontuacao != null) { - $trabalho->pontuacao += $avaliador->trabalhos()->where('trabalho_id', $trabalho->id)->first()->pivot->pontuacao; - ++$cont; - } - } - } else { - foreach ($trabalho->avaliadors as $avaliador) { - if ($avaliador->tipo == 'Interno') { - $parecerInterno = ParecerInterno::where([['avaliador_id', $avaliador->id], ['trabalho_id', $trabalho->id]])->first(); - if ($parecerInterno != null) { - $trabalho->pontuacao += $parecerInterno->statusAnexoPlanilhaPontuacao; - ++$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; - }); - - // Recém Doutor - $trabalhosDoutor = Trabalho::where('evento_id', $evento->id) - ->where('modalidade', 'RecemDoutor')->get(); - foreach ($trabalhosDoutor as $trabalho) { - $trabalho->pontuacao = 0; - $cont = 0; - // Caso especial do PIBEX onde a pontuação fica no Ad Hoc - if ($evento->tipo == 'PIBEX') { - foreach ($trabalho->avaliadors as $avaliador) { - if (($avaliador->trabalhos()->where('trabalho_id', $trabalho->id)->first()->pivot->acesso == 1 || - $avaliador->trabalhos()->where('trabalho_id', $trabalho->id)->first()->pivot->acesso == 3) && - $avaliador->trabalhos()->where('trabalho_id', $trabalho->id)->first()->pivot->pontuacao != null) { - $trabalho->pontuacao += $avaliador->trabalhos()->where('trabalho_id', $trabalho->id)->first()->pivot->pontuacao; - ++$cont; - } - } - } else { - foreach ($trabalho->avaliadors as $avaliador) { - if ($avaliador->tipo == 'Interno') { - $parecerInterno = ParecerInterno::where([['avaliador_id', $avaliador->id], ['trabalho_id', $trabalho->id]])->first(); - if ($parecerInterno != null) { - $trabalho->pontuacao += $parecerInterno->statusAnexoPlanilhaPontuacao; - ++$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'); - } -} +get(); + $funcoesParticipante = FuncaoParticipantes::orderBy('nome')->get(); + + return view('naturezas.index')->with(['naturezas' => $naturezas, 'funcoes' => $funcoesParticipante]); + } + + public function usuarios() + { + $users = User::orderBy('name')->get(); + + return view('administrador.usersAdmin')->with(['users' => $users]); + } + + public function editais() + { + //$admin = Administrador::with('user')->where('user_id', Auth()->user()->id)->first(); + //$eventos = Evento::where('coordenadorId',$admin->id )->get(); + $eventos = Evento::all()->sortByDesc('created_at'); + + return view('administrador.editais', ['eventos' => $eventos]); + } + + public function pareceres(Request $request) + { + $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); + $user = Auth::user(); + + if ((Auth::user()->id != $coordenador_id->user_id) && ($user->tipo != 'administrador')) { + return redirect()->back(); + } + + return view('administrador.projetos')->with(['trabalhos' => $trabalhos, 'evento' => $evento]); + } + + public function analisar(Request $request) + { + $evento = Evento::find($request->evento_id); + $status = ['submetido', 'avaliado', 'aprovado', 'reprovado', 'corrigido']; + $aux = Trabalho::where('evento_id', $evento->id) + ->whereIn('status', $status) + ->pluck('grande_area_id'); + + $idArea = Trabalho::where('evento_id', $evento->id) + ->whereIn('status', $status) + ->pluck('area_id'); + + $trabalhos = $evento->trabalhos->whereNotIn('status', 'rascunho')->sortBy('titulo'); + + $grandesAreas = GrandeArea::whereIn('id', $aux)->get(); + $areas = Area::whereIn('id', $idArea)->get(); + + $funcaoParticipantes = FuncaoParticipantes::all(); + // $participantes = Participante::where('trabalho_id', $id)->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]); + } + + // Utilizado para paginação de Collection + + public function analisarProposta(Request $request) + { + $trabalho = Trabalho::where('id', $request->id)->first(); + $evento = Evento::where('id', $trabalho->evento_id)->first(); + $funcaoParticipantes = FuncaoParticipantes::all(); + $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(); + $trabalho->aval = $avalProjeto; + // Usuarios que possuem avaliações de relatório + //$avaliacoesRelatorio = [];->join('users','users.id','=','candidatos.user_id') + $AvalRelatParcial = []; + $AvalRelatFinal = []; + foreach ($trabalho->participantes as $participante) { + if (isset($participante->planoTrabalho)) { + $avals = AvaliacaoRelatorio::where('arquivo_id', $participante->planoTrabalho->id)->get(); + } else { + $avals = []; + } + foreach ($avals as $aval) { + if ($aval->tipo == 'Parcial') { + array_push($AvalRelatParcial, $aval); + } else { + array_push($AvalRelatFinal, $aval); + } + } + } + + // Verficação de pendencia de substituição + $aux = count(Substituicao::where('status', 'Em Aguardo')->whereIn('participanteSubstituido_id', $trabalho->participantes->pluck('id'))->get()); + $flagSubstituicao = 1; + if ($aux != 0) { + $flagSubstituicao = -1; + } + + $grandeAreas = GrandeArea::orderBy('nome')->get(); + $areasTematicas = AreaTematica::orderBy('nome')->get(); + //dd($areasTematicas); + + $hoje = Carbon::today('America/Recife'); + $hoje = $hoje->toDateString(); + + return view('administrador.analisarProposta')->with( + ['trabalho' => $trabalho, + 'funcaoParticipantes' => $funcaoParticipantes, + 'evento' => $evento, + 'substituicoesPendentes' => $substituicoesPendentes, + 'substituicoesProjeto' => $substituicoesProjeto, + 'grandeAreas' => $grandeAreas, + 'AvalRelatParcial' => $AvalRelatParcial, + 'AvalRelatFinal' => $AvalRelatFinal, + 'hoje' => $hoje, + 'flagSubstituicao' => $flagSubstituicao, + 'areasTematicas' => $areasTematicas, ]); + } + + public function showProjetos(Request $request) + { + $projetos = Trabalho::all()->where('status', '<>', 'rascunho'); + $funcaoParticipantes = FuncaoParticipantes::all(); + + return view('administrador.listaProjetos')->with(['projetos' => $projetos, 'funcaoParticipantes' => $funcaoParticipantes]); + } + + public function showResultados(Request $request) + { + //dd($request); + $evento = Evento::where('id', $request->evento_id)->first(); + $coordenador_id_evento = $evento->coordenadorId; + $coordenador_id = CoordenadorComissao::find($coordenador_id_evento); + $user = Auth::user(); + + if ((Auth::user()->id != $coordenador_id->user_id) && ($user->tipo != 'administrador')) { + return redirect()->back(); + } + + // Com cotas + if ($evento->cotaDoutor) { + // Ampla Concorrencia + $trabalhosAmpla = Trabalho::where('evento_id', $evento->id) + ->where('modalidade', 'AmplaConcorrencia')->get(); + foreach ($trabalhosAmpla as $trabalho) { + $trabalho->pontuacao = 0; + $cont = 0; + // Caso especial do PIBEX onde a pontuação fica no Ad Hoc + if ($evento->tipo == 'PIBEX') { + foreach ($trabalho->avaliadors as $avaliador) { + if (($avaliador->trabalhos()->where('trabalho_id', $trabalho->id)->first()->pivot->acesso == 1 || + $avaliador->trabalhos()->where('trabalho_id', $trabalho->id)->first()->pivot->acesso == 3) && + $avaliador->trabalhos()->where('trabalho_id', $trabalho->id)->first()->pivot->pontuacao != null) { + $trabalho->pontuacao += $avaliador->trabalhos()->where('trabalho_id', $trabalho->id)->first()->pivot->pontuacao; + ++$cont; + } + } + } else { + foreach ($trabalho->avaliadors as $avaliador) { + if ($avaliador->tipo == 'Interno') { + $parecerInterno = ParecerInterno::where([['avaliador_id', $avaliador->id], ['trabalho_id', $trabalho->id]])->first(); + if ($parecerInterno != null) { + $trabalho->pontuacao += $parecerInterno->statusAnexoPlanilhaPontuacao; + ++$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; + }); + + // Recém Doutor + $trabalhosDoutor = Trabalho::where('evento_id', $evento->id) + ->where('modalidade', 'RecemDoutor')->get(); + foreach ($trabalhosDoutor as $trabalho) { + $trabalho->pontuacao = 0; + $cont = 0; + // Caso especial do PIBEX onde a pontuação fica no Ad Hoc + if ($evento->tipo == 'PIBEX') { + foreach ($trabalho->avaliadors as $avaliador) { + if (($avaliador->trabalhos()->where('trabalho_id', $trabalho->id)->first()->pivot->acesso == 1 || + $avaliador->trabalhos()->where('trabalho_id', $trabalho->id)->first()->pivot->acesso == 3) && + $avaliador->trabalhos()->where('trabalho_id', $trabalho->id)->first()->pivot->pontuacao != null) { + $trabalho->pontuacao += $avaliador->trabalhos()->where('trabalho_id', $trabalho->id)->first()->pivot->pontuacao; + ++$cont; + } + } + } else { + foreach ($trabalho->avaliadors as $avaliador) { + if ($avaliador->tipo == 'Interno') { + $parecerInterno = ParecerInterno::where([['avaliador_id', $avaliador->id], ['trabalho_id', $trabalho->id]])->first(); + if ($parecerInterno != null) { + $trabalho->pontuacao += $parecerInterno->statusAnexoPlanilhaPontuacao; + ++$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; + }); + + return view('administrador.resultadosProjetosCotas')->with(['evento' => $evento, 'trabalhosAmpla' => $trabalhosAmpla, 'trabalhosDoutor' => $trabalhosDoutor]); + } + + // Sem Cotas + $trabalhos = $evento->trabalhos; + foreach ($trabalhos as $trabalho) { + $trabalho->pontuacao = 0; + $cont = 0; + // Caso especial do PIBEX onde a pontuação fica no Ad Hoc + if ($evento->tipo == 'PIBEX') { + foreach ($trabalho->avaliadors as $avaliador) { + if (($avaliador->trabalhos()->where('trabalho_id', $trabalho->id)->first()->pivot->acesso == 1 || + $avaliador->trabalhos()->where('trabalho_id', $trabalho->id)->first()->pivot->acesso == 3) && + $avaliador->trabalhos()->where('trabalho_id', $trabalho->id)->first()->pivot->pontuacao != null) { + $trabalho->pontuacao += $avaliador->trabalhos()->where('trabalho_id', $trabalho->id)->first()->pivot->pontuacao; + ++$cont; + } + } + } 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, ',', ''); + } + } + $trabalhos = $trabalhos->sort(function ($item, $next) { + return $item->pontuacao >= $next->pontuacao ? -1 : 1; + }); + + return view('administrador.resultadosProjetos')->with(['evento' => $evento, 'trabalhos' => $trabalhos]); + } + + public function visualizarParecer(Request $request) + { + $avaliador = Avaliador::find($request->avaliador_id); + $trabalho = $avaliador->trabalhos->where('id', $request->trabalho_id)->first(); + $parecer = $avaliador->trabalhos->where('id', $request->trabalho_id)->first()->pivot; + + //dd($parecer); + return view('administrador.visualizarParecer')->with(['trabalho' => $trabalho, 'parecer' => $parecer, 'avaliador' => $avaliador]); + } + + public function visualizarParecerInterno(Request $request) + { + $avaliador = Avaliador::find($request->avaliador_id); + $trabalho = $avaliador->trabalhos->where('id', $request->trabalho_id)->first(); + $parecerInterno = ParecerInterno::where([['avaliador_id', $avaliador->id], ['trabalho_id', $trabalho->id]])->first(); + $evento = Evento::find($trabalho->evento_id); + + //dd($parecer); + return view('administrador.visualizarParecerInterno')->with(['parecer' => $parecerInterno, 'avaliador' => $avaliador, 'trabalho' => $trabalho, 'evento' => $evento]); + } + + public function create() + { + return view('administrador.novo_user'); + } + + public function salvar(Request $request) + { + if ($request->tipo == 'coordenador') { + $validated = $request->validate([ + 'name' => ['required', 'string', 'max:255'], + 'tipo' => ['required'], + 'email' => ['required', 'string', 'email', 'max:255', 'unique:users'], + 'instituicao' => ['required_if:instituicaoSelect,Outra', 'max:255'], + 'instituicaoSelect' => ['required_without:instituicao'], + 'senha' => ['required', 'min:8'], + 'confirmar_senha' => ['required', 'min:8'], + 'celular' => ($request['celular'] != null ? 'required|string|telefone' : 'nullable'), + 'cpf' => ($request['cpf'] != null ? 'required|cpf|unique:users' : 'nullable'), + ]); + } elseif ($request->tipo != 'proponente') { + $validated = $request->validate([ + 'name' => ['required', 'string', 'max:255'], + 'tipo' => ['required'], + 'email' => ['required', 'string', 'email', 'max:255', 'unique:users'], + 'instituicao' => ['required_if:instituicaoSelect,Outra', 'max:255'], + 'instituicaoSelect' => ['required_without:instituicao'], + 'celular' => ['required', 'string', 'telefone'], + 'senha' => ['required', 'min:8'], + 'confirmar_senha' => ['required', 'min:8'], + 'cpf' => ['required', 'cpf', 'unique:users'], + ]); + } else { + $validated = $request->validate([ + 'name' => ['required', 'string', 'max:255'], + 'email' => ['required', 'string', 'email', 'max:255', 'unique:users'], + 'tipo' => ['required'], + 'cpf' => ['required', 'cpf', 'unique:users'], + 'celular' => ['required', 'string', 'telefone'], + 'senha' => ['required', 'min:8'], + 'confirmar_senha' => ['required', 'min:8'], + 'instituicao' => ['required_if:instituicaoSelect,Outra', 'max:255'], + 'instituicaoSelect' => ['required_without:instituicao'], + 'cargo' => ['required'], + 'vinculo' => ['required'], + 'outro' => ['required_if:vinculo,Outro'], + 'titulacaoMaxima' => ['required_with:anoTitulacao,areaFormacao,bolsistaProdutividade'], + 'titulacaoMaxima' => Rule::requiredIf((isset($request['cargo']) && $request['cargo'] !== 'Estudante') || (isset($request['cargo']) && $request['cargo'] === 'Estudante' && isset($request['vinculo']) && $request['vinculo'] === 'Pós-doutorando')), + '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')), + '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')), + 'bolsistaProdutividade' => ['required_with:titulacaoMaxima,anoTitulacao,areaFormacao,linkLattes'], + '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'], + //'nivel' => [(isset($data['cargo']) && $data['cargo'] !== 'Estudante') || (isset($data['cargo']) && $data['cargo'] === 'Estudante' && isset($data['vinculo']) && $data['vinculo'] === 'Pós-doutorando') ? 'required':''], + 'linkLattes' => ['required_with:titulacaoMaxima,anoTitulacao,areaFormacao,bolsistaProdutividade'], + 'linkLattes' => ['required_with:titulacaoMaxima,anoTitulacao,areaFormacao,bolsistaProdutividade'], + 'linkLattes' => ['required_with:titulacaoMaxima,anoTitulacao,areaFormacao,bolsistaProdutividade'], + 'linkLattes' => [(isset($request['cargo']) && $request['cargo'] !== 'Estudante') || (isset($request['cargo']) && $request['cargo'] === 'Estudante' && isset($request['vinculo']) && $request['vinculo'] === 'Pós-doutorando') ? 'required' : ''], + 'linkLattes' => [(isset($request['cargo']) && $request['cargo'] !== 'Estudante') || (isset($request['cargo']) && $request['cargo'] === 'Estudante' && isset($request['vinculo']) && $request['vinculo'] === 'Pós-doutorando') ? 'link_lattes' : ''], + ]); + } + + if (!($request->senha === $request->confirmar_senha)) { + return redirect()->back()->withErrors(['senha' => 'Senhas diferentes']); + } + + $user = new User(); + $user->name = $request->name; + $user->tipo = $request->tipo; + $user->cpf = $request->cpf; + $user->celular = $request->celular; + $user->email = $request->email; + $user->password = bcrypt($request->senha); + if ($request->instituicao != null) { + $user->instituicao = $request->instituicao; + } elseif (isset($request->instituicaoSelect) && $request->instituicaoSelect != 'Outra') { + $user->instituicao = $request->instituicaoSelect; + } + $user->save(); + + switch ($request->tipo) { + case 'administradorResponsavel': + $adminResp = new AdministradorResponsavel(); + $adminResp->user_id = $user->id; + $adminResp->save(); + break; + case 'coordenador': + $coordenador = new CoordenadorComissao(); + $coordenador->user_id = $user->id; + $coordenador->save(); + break; + case 'avaliador': + $avaliador = new Avaliador(); + $avaliador->user_id = $user->id; + $avaliador->tipo = $request->tipoAvaliador; + $avaliador->save(); + break; + case 'proponente': + $proponente = new Proponente(); + if ($request->SIAPE != null) { + $proponente->SIAPE = $request->SIAPE; + } + $proponente->cargo = $request->cargo; + + if ($request->vinculo != 'Outro') { + $proponente->vinculo = $request->vinculo; + } else { + $proponente->vinculo = $request->outro; + } + + $proponente->titulacaoMaxima = $request->titulacaoMaxima; + $proponente->anoTitulacao = $request->anoTitulacao; + $proponente->areaFormacao = $request->areaFormacao; + $proponente->bolsistaProdutividade = $request->bolsistaProdutividade; + if ($request->bolsistaProdutividade == 'sim') { + $proponente->nivel = $request->nivel; + } + $proponente->linkLattes = $request->linkLattes; + + $proponente->user_id = $user->id; + $proponente->save(); + break; + case 'participante': + $participante = new Participante(); + $participante->user_id = $user->id; + $participante->save(); + break; + } + + return redirect(route('admin.usuarios'))->with(['mensagem' => 'Usuário cadastrado com sucesso']); + } + + public function edit($id) + { + $user = User::find($id); + + $adminResp = AdministradorResponsavel::where('user_id', '=', $id)->first(); + $avaliador = Avaliador::where('user_id', '=', $id)->first(); + $proponente = Proponente::where('user_id', '=', $id)->first(); + $participante = Participante::where('user_id', '=', $id)->first(); + + return view('administrador.editar_user')->with(['user' => $user, + 'adminResp' => $adminResp, + 'proponente' => $proponente, + 'participante' => $participante, ]); + } + + public function update(Request $request, $id) + { + $user = User::find($id); + + if ($request->tipo == 'coordenador') { + $validated = $request->validate([ + 'name' => ['required', 'string', 'max:255'], + 'tipo' => ['required'], + 'email' => ['required', 'string', 'email', 'max:255'], + 'instituicao' => ['required_if:instituicaoSelect,Outra', 'max:255'], + 'instituicaoSelect' => ['required_without:instituicao'], + 'celular' => ($request['celular'] != null ? 'required|string|telefone' : 'nullable'), + 'cpf' => ($request['cpf'] != null ? 'required|cpf|unique:users' : 'nullable'), + ]); + } elseif ($request->tipo != 'proponente') { + $validated = $request->validate([ + 'name' => ['required', 'string', 'max:255'], + 'tipo' => ['required'], + 'email' => ['required', 'string', 'email', 'max:255'], + 'instituicao' => ['required_if:instituicaoSelect,Outra', 'max:255'], + 'instituicaoSelect' => ['required_without:instituicao'], + 'celular' => ['required', 'string', 'telefone'], + 'cpf' => ['required', 'cpf'], + ]); + } else { + $validated = $request->validate([ + 'name' => ['required', 'string', 'max:255'], + 'email' => ['required', 'string', 'email', 'max:255'], + 'tipo' => ['required'], + 'cpf' => ['required', 'cpf'], + 'celular' => ['required', 'string', 'telefone'], + 'instituicao' => ['required_if:instituicaoSelect,Outra', 'max:255'], + 'instituicaoSelect' => ['required_without:instituicao'], + 'cargo' => ['required'], + 'vinculo' => ['required'], + 'outro' => ['required_if:vinculo,Outro'], + 'titulacaoMaxima' => ['required_with:anoTitulacao,areaFormacao,bolsistaProdutividade'], + 'titulacaoMaxima' => Rule::requiredIf((isset($request['cargo']) && $request['cargo'] !== 'Estudante') || (isset($request['cargo']) && $request['cargo'] === 'Estudante' && isset($request['vinculo']) && $request['vinculo'] === 'Pós-doutorando')), + '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')), + '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')), + 'bolsistaProdutividade' => ['required_with:titulacaoMaxima,anoTitulacao,areaFormacao,linkLattes'], + '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'], + //'nivel' => [(isset($data['cargo']) && $data['cargo'] !== 'Estudante') || (isset($data['cargo']) && $data['cargo'] === 'Estudante' && isset($data['vinculo']) && $data['vinculo'] === 'Pós-doutorando') ? 'required':''], + 'linkLattes' => ['required_with:titulacaoMaxima,anoTitulacao,areaFormacao,bolsistaProdutividade'], + 'linkLattes' => ['required_with:titulacaoMaxima,anoTitulacao,areaFormacao,bolsistaProdutividade'], + 'linkLattes' => ['required_with:titulacaoMaxima,anoTitulacao,areaFormacao,bolsistaProdutividade'], + 'linkLattes' => [(isset($request['cargo']) && $request['cargo'] !== 'Estudante') || (isset($request['cargo']) && $request['cargo'] === 'Estudante' && isset($request['vinculo']) && $request['vinculo'] === 'Pós-doutorando') ? 'required' : ''], + 'linkLattes' => [(isset($request['cargo']) && $request['cargo'] !== 'Estudante') || (isset($request['cargo']) && $request['cargo'] === 'Estudante' && isset($request['vinculo']) && $request['vinculo'] === 'Pós-doutorando') ? 'link_lattes' : ''], + ]); + } + + // if (!(Hash::check($request->senha_atual, $user->password))) { + // return redirect()->back()->withErrors(['senha_atual' => 'Senha atual não correspondente']); + // } + + // if (!($request->nova_senha === $request->confirmar_senha)) { + // return redirect()->back()->withErrors(['nova_senha' => 'Senhas diferentes']); + // } + + switch ($request->tipo) { + case 'administradorResponsavel': + $adminResp = AdministradorResponsavel::where('user_id', '=', $id)->first(); + $adminResp->user_id = $user->id; + $adminResp->update(); + break; + case 'coordenador': + $coordenador = CoordenadorComissao::where('user_id', '=', $id)->first(); + $coordenador->user_id = $user->id; + $coordenador->update(); + break; + case 'avaliador': + $avaliador = Avaliador::where('user_id', '=', $id)->first(); + $avaliador->user_id = $user->id; + $avaliador->update(); + break; + case 'proponente': + $proponente = Proponente::where('user_id', '=', $id)->first(); + if ($request->SIAPE != null) { + $proponente->SIAPE = $request->SIAPE; + } + $proponente->cargo = $request->cargo; + + if ($request->vinculo != 'Outro') { + $proponente->vinculo = $request->vinculo; + } else { + $proponente->vinculo = $request->outro; + } + + $proponente->titulacaoMaxima = $request->titulacaoMaxima; + $proponente->anoTitulacao = $request->anoTitulacao; + $proponente->areaFormacao = $request->areaFormacao; + $proponente->bolsistaProdutividade = $request->bolsistaProdutividade; + if ($request->bolsistaProdutividade == 'sim') { + $proponente->nivel = $request->nivel; + } + $proponente->linkLattes = $request->linkLattes; + + $proponente->user_id = $user->id; + $proponente->update(); + break; + case 'participante': + $participante = Participante::where('user_id', '=', $id)->first(); + $participante->user_id = $user->id; + $participante->update(); + break; + } + + $user->name = $request->name; + $user->tipo = $request->tipo; + $user->email = $request->email; + $user->cpf = $request->cpf; + $user->celular = $request->celular; + if ($request->instituicao != null) { + $user->instituicao = $request->instituicao; + } elseif (isset($request->instituicaoSelect) && $request->instituicaoSelect != 'Outra') { + $user->instituicao = $request->instituicaoSelect; + } + // $user->password = bcrypt($request->nova_senha); + $user->update(); + + return redirect(route('admin.usuarios'))->with(['mensagem' => 'Usuário atualizado com sucesso']); + } + + public function destroy($id) + { + $user = User::find($id); + $adminResp = AdministradorResponsavel::where('user_id', '=', $id)->first(); + $avaliador = Avaliador::where('user_id', '=', $id)->first(); + $proponente = Proponente::where('user_id', '=', $id)->first(); + $participante = Participante::where('user_id', '=', $id)->first(); + + if (!(is_null($adminResp))) { + $adminResp->delete(); + } elseif (!(is_null($avaliador))) { + $avaliador->delete(); + } elseif (!(is_null($proponente))) { + $proponente->delete(); + } elseif (!(is_null($participante))) { + $participante->delete(); + } + + $user->delete(); + + return redirect(route('admin.usuarios'))->with(['mensagem' => 'Usuário deletado com sucesso']); + } + + public function atribuir(Request $request) + { + $evento = Evento::where('id', $request->evento_id)->first(); + $coordenador_id_evento = $evento->coordenadorId; + $coordenador_id = CoordenadorComissao::find($coordenador_id_evento); + $user = Auth::user(); + + if ((Auth::user()->id != $coordenador_id->user_id) && ($user->tipo != 'administrador')) { + return redirect()->back(); + } + + return view('administrador.atribuirAvaliadores', ['evento' => $evento]); + } + + public function selecionar(Request $request) + { + $user = Auth::user(); + + $evento = Evento::where('id', $request->evento_id)->first(); + $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::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(); + } + + return view('administrador.selecionarAvaliadores', [ + 'evento' => $evento, + 'avaliadores' => $avaliadores, + 'avalSelecionados' => $avalSelecionados, + 'grandeAreas' => $grandeAreas, + 'trabalhos' => $trabalhos, + 'areasTematicas' => $areasTematicas, + ]); + } + + public function projetos(Request $request) + { + $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'); + $avalProjeto = Avaliador::whereNotIn('id', $avalSelecionadosId)->get(); + $trabalho->aval = $avalProjeto; + } + + //dd($avaliadores->teste); + + return view('administrador.selecionarProjetos', [ + 'evento' => $evento, + 'trabalhos' => $trabalhos, + 'avaliadores' => $avaliadores, + 'grandesAreas' => $grandesAreas, + 'areasTematicas' => $areasTematicas + ]); + } + + public function adicionar(Request $request) + { + $evento = Evento::where('id', $request->evento_id)->first(); + $aval = Avaliador::where('id', $request->avaliador_id)->first(); + $aval->eventos()->attach($evento); + $aval->save(); + $user = $aval->user()->first(); + + $subject = 'Convite para avaliar projetos da UFAPE'; + Mail::to($user->email) + ->send(new EmailParaUsuarioNaoCadastrado($user->name, ' ', 'Avaliador-Cadastrado', $evento->nome, ' ', $subject, $evento->tipo, $evento->natureza_id)); + + return redirect()->back(); + } + + public function remover(Request $request) + { + $evento = Evento::where('id', $request->evento_id)->first(); + $aval = Avaliador::where('id', $request->avaliador_id)->first(); + $aval->eventos()->detach($evento); + $aval->trabalhos()->detach(); + $aval->save(); + + return redirect()->back(); + } + + public function removerProjAval(Request $request) + { + //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(); + 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'))) { + $aval->trabalhos() + ->updateExistingPivot($trabalho->id, ['acesso' => 2]); + } else { + $aval->trabalhos()->detach($trabalho); + } + } 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'))) { + $aval->trabalhos() + ->updateExistingPivot($trabalho->id, ['acesso' => 1]); + } else { + $aval->trabalhos()->detach($trabalho); + } + } + + if ($trabalho->status === 'avaliado') { + $trabalho->status = 'submetido'; + $trabalho->save(); + } + + $aval->save(); + + return redirect()->back(); + } + + public function buscar(Request $request) + { + $trabalho = Trabalho::where('id', $request->item)->first(); + $avalSelecionadosId = $trabalho->avaliadors->pluck('id'); + $avalProjeto = Avaliador::whereNotIn('id', $avalSelecionadosId)->get(); + + //dd($avaliadores); + + return response()->json($avalProjeto); + } + + public function atribuicaoProjeto(Request $request) + { + $trabalho = Trabalho::where('id', $request->trabalho_id)->first(); + $evento = Evento::where('id', $request->evento_id)->first(); + + if ($request->avaliadores_internos_id != null) { + foreach ($request->avaliadores_internos_id as $avaliador) { + $aval = Avaliador::find($avaliador); + if ($aval->trabalhos()->where('trabalho_id', $trabalho->id)->first() != null) { + $aval->trabalhos() + ->updateExistingPivot($trabalho->id, ['acesso' => 3]); + } else { + $trabalho->avaliadors()->attach($aval, ['acesso' => 2]); + $evento->avaliadors()->syncWithoutDetaching($aval); + } + } + } + + if ($request->avaliadores_externos_id != null) { + foreach ($request->avaliadores_externos_id as $avaliador) { + $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')))) { + if ($aval->trabalhos()->where('trabalho_id', $trabalho->id)->first() != null) { + $aval->trabalhos() + ->updateExistingPivot($trabalho->id, ['acesso' => 3]); + } else { + $trabalho->avaliadors()->attach($aval, ['acesso' => 1]); + $evento->avaliadors()->syncWithoutDetaching($aval); + } + } else { + $trabalho->avaliadors()->attach($aval, ['acesso' => 1]); + $evento->avaliadors()->syncWithoutDetaching($aval); + } + } + } + + if ($request->avaliadores_externos_id == null & $request->avaliadores_internos_id == null) { + redirect()->back()->with(['error' => 'Selecione ao menos um avaliador.', 'trabalho' => $trabalho->id]); + } + + $avaliadores = Avaliador::whereIn('id', (array) $request->avaliadores_externos_id) + ->orWhereIn('id', (array) $request->avaliadores_internos_id)->get(); + $trabalho->save(); + + foreach ($avaliadores as $avaliador) { + $userTemp = User::find($avaliador->user->id); + + $notificacao = Notificacao::create([ + 'remetente_id' => Auth::user()->id, + 'destinatario_id' => $avaliador->user_id, + 'trabalho_id' => $request->trabalho_id, + 'lido' => false, + 'tipo' => 5, + ]); + $notificacao->save(); + Notification::send($userTemp, new AtribuicaoAvaliadorExternoNotification($userTemp, $trabalho, $evento->formAvaliacaoExterno, $avaliador->trabalhos()->where('trabalho_id', $trabalho->id)->first()->pivot->acesso)); + } + + return redirect()->back(); + } + + public function enviarConviteEAtribuir(Request $request) + { + $evento = Evento::where('id', $request->evento_id)->first(); + $nomeAvaliador = $request->nomeAvaliador; + $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'; + } else { + $nomeInstituicao = $request->outra; + $externoInterno = 'Externo'; + } + if (isset($user)) { + $passwordTemporario = Str::random(8); + $subject = 'Convite para avaliar projetos da UFAPE'; + Mail::to($emailAvaliador) + ->send(new EmailParaUsuarioNaoCadastrado($nomeAvaliador, ' ', 'Avaliador-Cadastrado', $evento->nome, $passwordTemporario, $subject, $evento->tipo, $evento->natureza_id)); + } else { + $passwordTemporario = Str::random(8); + $subject = 'Convite para avaliar projetos da UFAPE'; + Mail::to($emailAvaliador) + ->send(new EmailParaUsuarioNaoCadastrado($nomeAvaliador, ' ', 'Avaliador', $evento->nome, $passwordTemporario, $subject, $evento->tipo, $evento->natureza_id)); + $user = User::create([ + 'email' => $emailAvaliador, + 'password' => bcrypt($passwordTemporario), + 'usuarioTemp' => false, + 'name' => $nomeAvaliador, + 'tipo' => 'avaliador', + 'instituicao' => $nomeInstituicao, + ]); + + $user->markEmailAsVerified(); + } + + $trabalho = Trabalho::where('id', $request->trabalho_id)->first(); + + if ($user->avaliadors == null) { + $avaliador = new Avaliador(); + $avaliador->tipo = $externoInterno; + $avaliador->save(); + $avaliador->area()->associate($area); + $avaliador->user()->associate($user); + $avaliador->eventos()->attach($evento); + $user->save(); + $avaliador->save(); + } else { + $avaliador = $user->avaliadors; + $avaliador->eventos()->attach($evento); + $user->save(); + $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); + } else { + $trabalho->avaliadors()->attach($avaliador, ['acesso' => 1]); + $evento->avaliadors()->syncWithoutDetaching($avaliador); + } + + $trabalho->save(); + + $notificacao = Notificacao::create([ + 'remetente_id' => Auth::user()->id, + 'destinatario_id' => $avaliador->user_id, + 'trabalho_id' => $request->trabalho_id, + 'lido' => false, + 'tipo' => 5, + ]); + $notificacao->save(); + + return redirect()->back(); + } + + public function reenviarConviteAtribuicaoProjeto(Request $request) + { + $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) { + $avaliador->user->avaliadors->eventos()->updateExistingPivot($evento->id, ['convite' => null]); + } + + $notificacao = Notificacao::create([ + 'remetente_id' => Auth::user()->id, + 'destinatario_id' => $avaliador->user_id, + 'trabalho_id' => $request->trabalho_id, + 'lido' => false, + 'tipo' => 5, + ]); + $notificacao->save(); + + $trabalho = Trabalho::where('id', $request->trabalho_id)->first(); + $subject = 'Convite para avaliar projetos da UFAPE - Reenvio'; + Mail::to($avaliador->user->email) + ->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)); + + return redirect()->back(); + } + + public function enviarConvite(Request $request) + { + $evento = Evento::where('id', $request->evento_id)->first(); + $nomeAvaliador = $request->nomeAvaliador; + $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'; + } else { + $nomeInstituicao = $request->outra; + $externoInterno = 'Externo'; + } + + //existe o caso de enviar o convite de novo para um mesmo usuário + // if(isset($user->avaliadors->eventos->where('id', $evento->id)->first()->pivot->convite) ){ + // return redirect()->back()->with(['mensagem' => 'Usuário já recebeu um convite e está pendente']); + // } + + if (isset($user)) { + $passwordTemporario = Str::random(8); + $subject = 'Convite para avaliar projetos da UFAPE'; + Mail::to($emailAvaliador) + ->send(new EmailParaUsuarioNaoCadastrado($nomeAvaliador, ' ', 'Avaliador-Cadastrado', $evento->nome, $passwordTemporario, $subject, $evento->tipo, $evento->natureza_id)); + } else { + $passwordTemporario = Str::random(8); + $subject = 'Convite para avaliar projetos da UFAPE'; + Mail::to($emailAvaliador) + ->send(new EmailParaUsuarioNaoCadastrado($nomeAvaliador, ' ', 'Avaliador', $evento->nome, $passwordTemporario, $subject, $evento->tipo, $evento->natureza_id)); + $user = User::create([ + 'email' => $emailAvaliador, + 'password' => bcrypt($passwordTemporario), + 'usuarioTemp' => false, + 'name' => $nomeAvaliador, + 'tipo' => 'avaliador', + 'instituicao' => $nomeInstituicao, + ]); + + $user->markEmailAsVerified(); + } + + if ($user->avaliadors == null) { + $avaliador = new Avaliador(); + $avaliador->tipo = $externoInterno; + $avaliador->save(); + $avaliador->area()->associate($area); + $avaliador->user()->associate($user); + $avaliador->eventos()->attach($evento); + if($evento->natureza_id == 3){ + $avaliador->naturezas()->sync($evento->natureza_id); + $avaliador->areaTematicas()->sync($areaTematica); + } + $user->save(); + $avaliador->save(); + } else { + $avaliador = $user->avaliadors; + $avaliador->eventos()->attach($evento); + if($evento->natureza_id == 3){ + $avaliador->naturezas()->sync($evento->natureza_id); + $avaliador->areaTematicas()->sync($areaTematica); + } + $user->save(); + $avaliador->save(); + } + + return redirect()->back(); + } + + public function reenviarConvite(Request $request) + { + $evento = Evento::where('id', $request->evento_id)->first(); + $avaliador = Avaliador::where('id', $request->avaliador_id)->first(); + $user = $avaliador->user()->first(); + + $subject = 'Convite para avaliar projetos da UFAPE - Reenvio'; + Mail::to($user->email) + ->send(new EmailParaUsuarioNaoCadastrado($user->name, ' ', 'Avaliador-Cadastrado', $evento->nome, ' ', $subject, $evento->tipo, $evento->natureza_id)); + + return redirect()->back(); + } + + // public function baixarAnexo(Request $request) { + // return Storage::download($request->anexo); + // } + + public function baixarModeloAvaliacao() + { + $file = public_path().'/ModeloFormularioAvaliadorExternoPIBIC.docx'; + $headers = ['Content-Type: application/docx']; + ob_end_clean(); + + return response()->download($file, 'ModeloFormularioAvaliadorExternoPIBIC.docx', $headers); + } + + public function imprimirResultados(Request $request) + { + $evento = Evento::where('id', $request->id)->first(); + // Ampla Concorrencia + $trabalhosAmpla = Trabalho::where('evento_id', $evento->id) + ->where('modalidade', 'AmplaConcorrencia')->get(); + + foreach ($trabalhosAmpla as $trabalho) { + $trabalho->pontuacao = 0; + $cont = 0; + // Caso especial do PIBEX onde a pontuação fica no Ad Hoc + if ($evento->tipo == 'PIBEX') { + foreach ($trabalho->avaliadors as $avaliador) { + if (($avaliador->trabalhos()->where('trabalho_id', $trabalho->id)->first()->pivot->acesso == 1 || + $avaliador->trabalhos()->where('trabalho_id', $trabalho->id)->first()->pivot->acesso == 3) && + $avaliador->trabalhos()->where('trabalho_id', $trabalho->id)->first()->pivot->pontuacao != null) { + $trabalho->pontuacao += $avaliador->trabalhos()->where('trabalho_id', $trabalho->id)->first()->pivot->pontuacao; + ++$cont; + } + } + } else { + foreach ($trabalho->avaliadors as $avaliador) { + if ($avaliador->tipo == 'Interno') { + $parecerInterno = ParecerInterno::where([['avaliador_id', $avaliador->id], ['trabalho_id', $trabalho->id]])->first(); + if ($parecerInterno != null) { + $trabalho->pontuacao += $parecerInterno->statusAnexoPlanilhaPontuacao; + ++$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; + }); + + // Recém Doutor + $trabalhosDoutor = Trabalho::where('evento_id', $evento->id) + ->where('modalidade', 'RecemDoutor')->get(); + foreach ($trabalhosDoutor as $trabalho) { + $trabalho->pontuacao = 0; + $cont = 0; + // Caso especial do PIBEX onde a pontuação fica no Ad Hoc + if ($evento->tipo == 'PIBEX') { + foreach ($trabalho->avaliadors as $avaliador) { + if (($avaliador->trabalhos()->where('trabalho_id', $trabalho->id)->first()->pivot->acesso == 1 || + $avaliador->trabalhos()->where('trabalho_id', $trabalho->id)->first()->pivot->acesso == 3) && + $avaliador->trabalhos()->where('trabalho_id', $trabalho->id)->first()->pivot->pontuacao != null) { + $trabalho->pontuacao += $avaliador->trabalhos()->where('trabalho_id', $trabalho->id)->first()->pivot->pontuacao; + ++$cont; + } + } + } else { + foreach ($trabalho->avaliadors as $avaliador) { + if ($avaliador->tipo == 'Interno') { + $parecerInterno = ParecerInterno::where([['avaliador_id', $avaliador->id], ['trabalho_id', $trabalho->id]])->first(); + if ($parecerInterno != null) { + $trabalho->pontuacao += $parecerInterno->statusAnexoPlanilhaPontuacao; + ++$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'); + } +} diff --git a/app/Http/Controllers/TrabalhoController.php b/app/Http/Controllers/TrabalhoController.php index 8494b93bd4c3a2059e6573c28e62dd9e0bc1d82b..303daa0084e8d24eeee00bb1a58e10281f0c4e9a 100755 --- a/app/Http/Controllers/TrabalhoController.php +++ b/app/Http/Controllers/TrabalhoController.php @@ -1,1942 +1,1942 @@ - 'Acre', - 'AL' => 'Alagoas', - 'AP' => 'Amapá', - 'AM' => 'Amazonas', - 'BA' => 'Bahia', - 'CE' => 'Ceará', - 'DF' => 'Distrito Federal', - 'ES' => 'Espirito Santo', - 'GO' => 'Goiás', - 'MA' => 'Maranhão', - 'MS' => 'Mato Grosso do Sul', - 'MT' => 'Mato Grosso', - 'MG' => 'Minas Gerais', - 'PA' => 'Pará', - 'PB' => 'Paraíba', - 'PR' => 'Paraná', - 'PE' => 'Pernambuco', - 'PI' => 'Piauí', - 'RJ' => 'Rio de Janeiro', - 'RN' => 'Rio Grande do Norte', - 'RS' => 'Rio Grande do Sul', - 'RO' => 'Rondônia', - 'RR' => 'Roraima', - 'SC' => 'Santa Catarina', - 'SP' => 'São Paulo', - 'SE' => 'Sergipe', - 'TO' => 'Tocantins', - ); - - public function index($id) - { - $edital = Evento::find($id); - $grandeAreas = GrandeArea::orderBy('nome')->get(); - $areaTematicas = AreaTematica::orderBy('nome')->get(); - $ODS = ObjetivoDeDesenvolvimentoSustentavel::orderBy('nome')->get(); - $funcaoParticipantes = FuncaoParticipantes::orderBy('nome')->get(); - $proponente = Proponente::where('user_id', Auth::user()->id)->first(); - - if($proponente == null){ - 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') - ->orderByDesc('updated_at')->first(); - - // dd($estados); - - return view('evento.submeterTrabalho',[ - // return view('evento.backupForm',[ - 'edital' => $edital, - 'grandeAreas' => $grandeAreas, - 'funcaoParticipantes'=> $funcaoParticipantes, - 'rascunho' => $rascunho, - 'enum_turno' => Participante::ENUM_TURNO, - 'estados' => $this->estados, - 'areaTematicas' => $areaTematicas, - 'ods' =>$ODS, - ]); - } - - public function arquivar(Request $request){ - - $trabalho = Trabalho::find($request->trabalho_id); - $arquivos = Arquivo::where('trabalhoId',$trabalho->id)->get(); - if($request->arquivar_tipo == 1 ){ - $trabalho->arquivado = true; - foreach ($arquivos as $arquivo){ - $arquivo->arquivado = true; - $arquivo->update(); - } - $message = "Projeto ".$trabalho->titulo." arquivado"; - }else{ - $trabalho->arquivado = false; - foreach ($arquivos as $arquivo){ - $arquivo->arquivado = false; - $arquivo->update(); - } - $message = "Projeto ".$trabalho->titulo." desarquivado"; - } - $trabalho->update(); - return redirect()->back()->with(['sucesso'=>$message ]); - } - - public function storeParcial(Request $request){ - $mytime = Carbon::now('America/Recife'); - $mytime = $mytime->toDateString(); - $evento = Evento::find($request->editalId); - $coordenador = CoordenadorComissao::find($evento->coordenadorId); - - //Relaciona o projeto criado com o proponente que criou o projeto - $proponente = Proponente::where('user_id', Auth::user()->id)->first(); - - $trabalho = "trabalho"; - if ($evento->inicioSubmissao > $mytime) { - if ($mytime >= $evento->fimSubmissao) { - return redirect()->route('home'); - } - } - - //--Salvando os dados da submissão temporariamente - $this->armazenarInfoTemp($request, $proponente); - - return redirect()->route('projetos.edital', ['id' => $request->editalId]); - } - - //Armazena temporariamente dados da submissão, no banco de dados e no storage - public function armazenarInfoTemp(Request $request, $proponente) - { - - //---Dados do Projeto - $trabalho = Trabalho::where('proponente_id', $proponente->id)->where('evento_id',$request->editalId)->where('status', 'Rascunho') - ->orderByDesc('updated_at')->first(); - //dd($trabalho); - if($trabalho == null){ - $trabalho = new Trabalho(); - $trabalho->proponente_id = $proponente->id; - $trabalho->evento_id = $request->editalId; - $trabalho->status = 'Rascunho'; - - $stringKeys = ['titulo','linkGrupoPesquisa', 'linkLattesEstudante','pontuacaoPlanilha','anexoProjeto', - 'anexoPlanilhaPontuacao', 'anexoLattesCoordenador', 'conflitosInteresse']; - $intKeys = ['grande_area_id','area_id','sub_area_id','coordenador_id']; - - $trabalho->fill( - array_fill_keys($stringKeys, "") + array_fill_keys($intKeys, 1) - )->save(); - //dd($trabalho); - } - - if(!(is_null($request->nomeProjeto)) ) { - $trabalho->titulo = $request->nomeProjeto; - } - if(!(is_null($request->grandeArea))){ - $trabalho->grande_area_id = $request->grandeArea; - } - if(!(is_null($request->area))){ - $trabalho->area_id = $request->area; - } - if(!(is_null($request->subArea))){ - $trabalho->sub_area_id = $request->subArea; - } - if(!(is_null($request->pontuacaoPlanilha))){ - $trabalho->pontuacaoPlanilha = $request->pontuacaoPlanilha; - } - if(!(is_null($request->linkGrupo))){ - $trabalho->linkGrupoPesquisa = $request->linkGrupo; - } - if(!(is_null($request->conflitosInteresse))){ - $trabalho->conflitosInteresse = $request->conflitosInteresse; - } - - //Anexos do projeto - - $pasta = 'trabalhos/' . $request->editalId . '/' . $trabalho->id; - - if(!(is_null($request->anexoDecisaoCONSU)) ) { - $trabalho->anexoDecisaoCONSU = Storage::putFileAs($pasta, $request->anexoDecisaoCONSU, "CONSU.pdf"); - } - if (!(is_null($request->anexoComiteEtica))) { - $trabalho->anexoAutorizacaoComiteEtica = Storage::putFileAs($pasta, $request->anexoComiteEtica, "Comite_de_etica.pdf"); - } - if (!(is_null($request->justificativaAutorizacaoEtica))) { - $trabalho->justificativaAutorizacaoEtica = Storage::putFileAs($pasta, $request->justificativaAutorizacaoEtica, "Justificativa.pdf"); - } - if (!(is_null($request->anexoProjeto))) { - $trabalho->anexoProjeto = Storage::putFileAs($pasta, $request->anexoProjeto, "Projeto.pdf"); - } - if (!(is_null($request->anexoLattesCoordenador))) { - $trabalho->anexoLattesCoordenador = Storage::putFileAs($pasta, $request->anexoLattesCoordenador, "Lattes_Coordenador.pdf"); - } - if (!(is_null($request->anexoPlanilhaPontuacao))) { - $trabalho->anexoPlanilhaPontuacao = Storage::putFileAs($pasta, $request->anexoPlanilhaPontuacao, "Planilha.". $request->file('anexoPlanilhaPontuacao')->getClientOriginalExtension()); - } - - $trabalho->update(); - - //---Anexos planos de trabalho - - //dd($trabalho); - - return $trabalho; - } - - public function validarAnexosRascunho(Request $request, $trabalho){ - $validator = Validator::make($trabalho->getAttributes(),[ - 'anexoPlanilhaPontuacao' => $request->anexoPlanilhaPontuacao==null?['planilha']:[], - ]); - - if ($validator->fails()) { - //dd('asdf'); - return back()->withErrors($validator)->withInput(); - } - return 1; - } - - public function armazenarAnexosFinais($request, $pasta, $trabalho, $evento){ - - // Checando se é um novo trabalho ou uma edição - - if ($trabalho->anexoProjeto != null) { - // Anexo Projeto - if (isset($request->anexoProjeto)) { - if (Storage::disk()->exists($trabalho->anexoProjeto)) { - Storage::delete($trabalho->anexoProjeto); - } - $trabalho->anexoProjeto = Storage::putFileAs($pasta, $request->anexoProjeto, 'Projeto.pdf'); - } - - //Anexo Decisão CONSU - // if ($evento->tipo == 'PIBIC' || $evento->tipo == 'PIBIC-EM') { - if (isset($request->anexoDecisaoCONSU)) { - if (Storage::disk()->exists($trabalho->anexoDecisaoCONSU)) { - Storage::delete($trabalho->anexoDecisaoCONSU); - } - $trabalho->anexoDecisaoCONSU = Storage::putFileAs($pasta, $request->anexoDecisaoCONSU, 'Decisão_da_Câmara_ou_Conselho_Pertinente.pdf'); - } - // } - - //Autorização ou Justificativa - if (isset($request->anexoAutorizacaoComiteEtica)) { - if (Storage::disk()->exists($trabalho->anexoAutorizacaoComiteEtica)) { - Storage::delete($trabalho->anexoAutorizacaoComiteEtica); - } - $trabalho->anexoAutorizacaoComiteEtica = Storage::putFileAs($pasta, $request->anexoAutorizacaoComiteEtica, 'Comite_de_etica.pdf'); - $trabalho->justificativaAutorizacaoEtica = null; - - } elseif (isset($request->justificativaAutorizacaoEtica)) { - if (Storage::disk()->exists($trabalho->justificativaAutorizacaoEtica)) { - Storage::delete($trabalho->justificativaAutorizacaoEtica); - } - $trabalho->justificativaAutorizacaoEtica = Storage::putFileAs($pasta, $request->justificativaAutorizacaoEtica, 'Justificativa.pdf'); - $trabalho->anexoAutorizacaoComiteEtica = null; - } - - //Anexo Lattes - if (isset($request->anexoLattesCoordenador)) { - if (Storage::disk()->exists($trabalho->anexoLattesCoordenador)) { - Storage::delete($trabalho->anexoLattesCoordenador); - } - $trabalho->anexoLattesCoordenador = Storage::putFileAs($pasta, $request->anexoLattesCoordenador, 'Lattes_Coordenador.pdf'); - } - - //Anexo Planilha - if (isset($request->anexoPlanilhaPontuacao)) { - if (Storage::disk()->exists($trabalho->anexoPlanilhaPontuacao)) { - Storage::delete($trabalho->anexoPlanilhaPontuacao); - } - - $trabalho->anexoPlanilhaPontuacao = Storage::putFileAs($pasta, $request->anexoPlanilhaPontuacao, "Planilha." . $request->file('anexoPlanilhaPontuacao')->getClientOriginalExtension()); - } - - // Anexo grupo pesquisa - if (isset($request->anexoGrupoPesquisa)) { - if (Storage::disk()->exists($trabalho->anexoGrupoPesquisa)) { - Storage::delete($trabalho->anexoGrupoPesquisa); - } - $trabalho->anexoGrupoPesquisa = Storage::putFileAs($pasta, $request->anexoGrupoPesquisa, "Grupo_de_pesquisa." . $request->file('anexoGrupoPesquisa')->extension()); - } - - //Anexo documentro extra - if (isset($request->anexo_docExtra)) { - if (Storage::disk()->exists($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->save(); - return $trabalho; - } - - // Anexo Projeto - if (isset($request->anexoProjeto)) { - $trabalho->anexoProjeto = Storage::putFileAs($pasta, $request->anexoProjeto, 'Projeto.pdf'); - } - - //Anexo Decisão CONSU - //if ($evento->tipo == 'PIBIC' || $evento->tipo == 'PIBIC-EM') { - if (isset($request->anexoDecisaoCONSU)) { - $trabalho->anexoDecisaoCONSU = Storage::putFileAs($pasta, $request->anexoDecisaoCONSU, 'Decisão_da_Câmara_ou_Conselho_Pertinente.pdf'); - } - //} - - //Autorização ou Justificativa - if (isset($request->anexoAutorizacaoComiteEtica)) { - $trabalho->anexoAutorizacaoComiteEtica = Storage::putFileAs($pasta, $request->anexoAutorizacaoComiteEtica, 'Comite_de_etica.pdf'); - $trabalho->justificativaAutorizacaoEtica = null; - - } elseif (isset($request->justificativaAutorizacaoEtica)) { - $trabalho->justificativaAutorizacaoEtica = Storage::putFileAs($pasta, $request->justificativaAutorizacaoEtica, 'Justificativa.pdf'); - $trabalho->anexoAutorizacaoComiteEtica = null; - - } - - //Anexo Lattes - if (isset($request->anexoLattesCoordenador)) { - $trabalho->anexoLattesCoordenador = Storage::putFileAs($pasta, $request->anexoLattesCoordenador, 'Lattes_Coordenador.pdf'); - } - - //Anexo Planilha - if (isset($request->anexoPlanilhaPontuacao)) { - $trabalho->anexoPlanilhaPontuacao = Storage::putFileAs($pasta, $request->anexoPlanilhaPontuacao, "Planilha." . $request->file('anexoPlanilhaPontuacao')->getClientOriginalExtension()); - } - - // Anexo grupo pesquisa - if (isset($request->anexoGrupoPesquisa)) { - $trabalho->anexoGrupoPesquisa = Storage::putFileAs($pasta, $request->anexoGrupoPesquisa, "Grupo_de_pesquisa." . $request->file('anexoGrupoPesquisa')->extension()); - } - - // Anexo documento extra - if (isset($request->anexo_docExtra)) { - $trabalho->anexo_docExtra = Storage::putFileAs($pasta, $request->anexo_docExtra, "Documento_Extra." . $request->file('anexo_docExtra')->extension()); - } - - return $trabalho; - } - - public function show($id) - { - $projeto = Trabalho::find($id); - if(Auth::user()->id != $projeto->proponente->user->id){ - return redirect()->back(); - } - $edital = Evento::find($projeto->evento_id); - $grandeAreas = GrandeArea::all(); - $areas = Area::all(); - $subareas = Subarea::all(); - $areasTematicas = AreaTematica::all(); - $funcaoParticipantes = FuncaoParticipantes::all(); - $participantes = $projeto->participantes; - $participantesUsersIds = Participante::where('trabalho_id', $id)->select('user_id')->get(); - $users = User::whereIn('id', $participantesUsersIds)->get(); - $arquivos = Arquivo::where('trabalhoId', $id)->get(); - - // Verficação de pendencia de substituição - $aux = count(Substituicao::where('status','Em Aguardo')->whereIn('participanteSubstituido_id',$projeto->participantes->pluck('id'))->get()); - $flagSubstituicao = 1; - if($aux != 0){ - $flagSubstituicao = -1; - } - - $trabalhos_user = TrabalhoUser::where('trabalho_id', $projeto->id)->get(); - - return view('projeto.visualizar')->with(['projeto' => $projeto, - 'grandeAreas' => $grandeAreas, - 'areas' => $areas, - 'subAreas' => $subareas, - 'edital' => $edital, - 'users' => $users, - 'funcaoParticipantes' => $funcaoParticipantes, - 'participantes' => $participantes, - 'arquivos' => $arquivos, - 'estados' => $this->estados, - 'visualizar' => true, - 'enum_turno' => Participante::ENUM_TURNO, - 'areasTematicas' => $areasTematicas, - 'flagSubstituicao' =>$flagSubstituicao, - 'trabalhos_user' => $trabalhos_user - ]); - } - - public function exportProjeto($id) - { - $projeto = Auth::user()->proponentes->trabalhos()->where('id', $id)->first(); - if (!$projeto) { - return back()->withErrors(['Proposta não encontrada!']); - } - $edital = Evento::find($projeto->evento_id); - $grandeAreas = GrandeArea::all(); - $areas = Area::all(); - $subAreas = Subarea::all(); - $funcaoParticipantes = FuncaoParticipantes::all(); - $participantes = Participante::where('trabalho_id', $id)->get(); - $participantesUsersIds = Participante::where('trabalho_id', $id)->select('user_id')->get(); - $users = User::whereIn('id', $participantesUsersIds)->get(); - $arquivos = Arquivo::where('trabalhoId', $id)->get(); - $enum_turno = Participante::ENUM_TURNO; - view()->share('projeto.visualizar', [$projeto, $grandeAreas, $areas, $subAreas, $edital, $users, $funcaoParticipantes, $participantes, $arquivos, $enum_turno]); - - $pdf = PDF::loadView('projeto.visualizar', compact('projeto', 'grandeAreas', 'areas', 'subAreas', 'edital', 'users', 'funcaoParticipantes', 'participantes', 'arquivos', 'enum_turno'))->setOptions(['defaultFont' => 'sans-serif']); - - // download PDF file with download method - return $pdf->download('pdf_file.pdf'); - } - - public function edit($id) - { - if(Auth::user()->tipo=='administrador'){ - $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!']); - } - $edital = Evento::find($projeto->evento_id); - $grandeAreas = GrandeArea::all(); - $areaTematicas = AreaTematica::orderBy('nome')->get(); - $areas = Area::all(); - $subareas = Subarea::all(); - $ODS = ObjetivoDeDesenvolvimentoSustentavel::orderBy('nome')->get(); - $funcaoParticipantes = FuncaoParticipantes::all(); - $participantes = Participante::where('trabalho_id', $id)->get(); - $participantesUsersIds = Participante::where('trabalho_id', $id)->select('user_id')->get(); - $users = User::whereIn('id', $participantesUsersIds)->get(); - $arquivos = Arquivo::where('trabalhoId', $id)->get(); - //dd(Participante::all()); - $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, - 'subAreas' => $subareas, - 'edital' => $edital, - 'users' => $users, - 'funcaoParticipantes' => $funcaoParticipantes, - 'participantes' => $participantes, - 'arquivos' => $arquivos, - 'enum_turno' => Participante::ENUM_TURNO, - 'estados' => $this->estados, - 'areaTematicas' => $areaTematicas, - 'listaOds' => $ODS, - 'trabalhos_user' => $trabalhos_user - ]); - } - - public function destroy(Request $request) - { - $projeto = Trabalho::find($request->id); - //dd($trabalho); - Storage::deleteDirectory('trabalhos/' . $projeto->evento->id . '/' . $projeto->id); - - $participantes = $projeto->participantes; - foreach ($participantes as $participante) { - $plano = $participante->planoTrabalho; - if ($plano) - $plano->delete(); - $participante->delete(); - } - - $projeto->delete(); - return redirect()->back()->with(['mensagem' => 'Projeto deletado com sucesso!']); - } - - public function excluirParticipante($id) - { - $participante = Participante::where('id', $id)->first(); - //$participante = Participante::where('user_id', Auth()->user()->id) - // ->where('trabalho_id', $id)->first(); - - //$participante->trabalhos()->detach($id); - $participante->delete(); - - return redirect()->back(); - } - - public function solicitarCertificado(Trabalho $trabalho, Request $request) - { - $users = User::find($request->users); - $coord = $trabalho->coordenador; - $SolicitacaoCertificado = SolicitacaoCertificado::create(); - Notificacao::create([ - 'remetente_id' => auth()->user()->id, - 'destinatario_id' => $coord->user_id, - 'solicitacao_certificado_id' => $SolicitacaoCertificado->id, - 'trabalho_id' => $trabalho->id, - 'lido' => false, - 'tipo' => 6 - ]); - foreach ($users as $user) { - SolicitacaoParticipante::create([ - 'user_id' => $user->id, - 'solicitacao_certificado_id' => $SolicitacaoCertificado->id, - ]); - } - $admins = Administrador::all(); - foreach ($admins as $admin) { - $userTemp = User::find($admin->user_id); - Notificacao::create([ - 'remetente_id' => auth()->user()->id, - 'destinatario_id' => $admin->user_id, - 'solicitacao_certificado_id' => $SolicitacaoCertificado->id, - 'trabalho_id' => $trabalho->id, - 'lido' => false, - 'tipo' => 6, - ]); - } - $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(); - $evento = Evento::find($request->eventoId); - if ($evento->inicioSubmissao > $mytime) { - if ($mytime >= $evento->fimSubmissao) { - return redirect()->route('home'); - } - } - $validatedData = $request->validate([ - 'arquivo' => ['required', 'file', 'mimes:pdf'], - 'eventoId' => ['required', 'integer'], - 'trabalhoId' => ['required', 'integer'], - ]); - - $trabalho = Trabalho::find($request->trabalhoId); - - if (Auth::user()->id != $trabalho->autorId) { - return redirect()->route('home'); - } - - $arquivos = $trabalho->arquivo; - $count = 1; - foreach ($arquivos as $key) { - $key->versaoFinal = false; - $key->save(); - $count++; - } - - $file = $request->arquivo; - $path = 'trabalhos/' . $request->eventoId . '/' . $trabalho->id . '/'; - $nome = $count . ".pdf"; - Storage::putFileAs($path, $file, $nome); - - $arquivo = Arquivo::create([ - 'nome' => $path . $nome, - 'trabalhoId' => $trabalho->id, - 'versaoFinal' => true, - ]); - - return redirect()->route('evento.visualizar', ['id' => $request->eventoId]); - } - - public function detalhesAjax(Request $request) - { - $validatedData = $request->validate([ - 'trabalhoId' => ['required', 'integer'] - ]); - - $trabalho = Trabalho::find($request->trabalhoId); - $revisores = Atribuicao::where('trabalhoId', $request->trabalhoId)->get(); - $revisoresAux = []; - foreach ($revisores as $key) { - if ($key->revisor->user->name != null) { - array_push($revisoresAux, [ - 'id' => $key->revisor->id, - 'nomeOuEmail' => $key->revisor->user->name - ]); - } 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 - $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, - 'nomeOuEmail' => $key->user->name - ]); - } else { - array_push($revisoresAux1, [ - 'id' => $key->id, - 'nomeOuEmail' => $key->user->email - ]); - } - } - } - return response()->json([ - 'titulo' => $trabalho->titulo, - 'resumo' => $trabalho->resumo, - 'revisores' => $revisoresAux, - 'revisoresDisponiveis' => $revisoresAux1 - ], 200); - } - - public function atribuirAvaliadorTrabalho(Request $request) - { - - $request->trabalho_id; - $trabalho = Trabalho::find($request->trabalho_id); - - $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); - - $todosAvaliadores = Avaliador::all(); - - $avaliadores = Avaliador::whereIn('id', $request->avaliadores)->with('user')->get(); - - $trabalho->avaliadors()->sync($request->avaliadores); - - foreach ($avaliadores as $key => $avaliador) { - - $user = $avaliador->user; - $subject = "Trabalho atribuido"; - Mail::to($user->email) - ->send(new EventoCriado($user, $subject)); - } - - return view('coordenadorComissao.detalhesEdital', ['evento' => $trabalho->evento]); - } - - public function projetosDoEdital($id) - { - $edital = Evento::find($id); - $projetos = Trabalho::where('evento_id', '=', $id)->get(); - $hoje = Carbon::today('America/Recife'); - $hoje = $hoje->toDateString(); - - return view('proponente.projetosEdital')->with(['edital' => $edital, 'projetos' => $projetos, 'hoje' => $hoje]); - } - - public function baixarAnexoProjeto($id) - { - $projeto = Trabalho::find($id); - //dd($projeto); - if (Storage::disk()->exists($projeto->anexoProjeto)) { - ob_end_clean(); - return Storage::download($projeto->anexoProjeto); - } - return abort(404); - } - - public function baixarAnexoGrupoPesquisa($id) - { - $projeto = Trabalho::find($id); - if (Storage::disk()->exists($projeto->anexoGrupoPesquisa)) { - ob_end_clean(); - return Storage::download($projeto->anexoGrupoPesquisa); - } - return abort(404); - } - - public function baixarAnexoConsu($id) - { - $projeto = Trabalho::find($id); - - if (Storage::disk()->exists($projeto->anexoDecisaoCONSU)) { - ob_end_clean(); - return Storage::download($projeto->anexoDecisaoCONSU); - } - return abort(404); - } - - public function baixarAnexoComite($id) - { - $projeto = Trabalho::find($id); - - if (Storage::disk()->exists($projeto->anexoAutorizacaoComiteEtica)) { - ob_end_clean(); - return Storage::download($projeto->anexoAutorizacaoComiteEtica); - } - return abort(404); - } - - public function baixarAnexoLattes($id) - { - $projeto = Trabalho::find($id); - - if (Storage::disk()->exists($projeto->anexoLattesCoordenador)) { - ob_end_clean(); - return Storage::download($projeto->anexoLattesCoordenador); - } - return abort(404); - } - - public function baixarAnexoPlanilha($id) - { - $projeto = Trabalho::find($id); - - if (Storage::disk()->exists($projeto->anexoPlanilhaPontuacao)) { - ob_end_clean(); - $file = $projeto->anexoPlanilhaPontuacao; - $ext = explode(".", $file); - - switch ($ext[1]) { - case 'xlsx': - $hearder = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'; - break; - case 'xls': - $hearder = 'application/vnd.ms-excel'; - break; - case 'ods': - $hearder = 'application/vnd.oasis.opendocument.spreadsheet'; - break; - - default: - $hearder = 'application/vnd.ms-excel'; - break; - } - - $headers = array( - "Content-type: {$hearder}", - ); - - - return Storage::download($projeto->anexoPlanilhaPontuacao, "Planilha.{$ext[1]}", $headers); - } - return abort(404); - } - - public function baixarAnexoJustificativa($id) - { - $projeto = Trabalho::find($id); - - if (Storage::disk()->exists($projeto->justificativaAutorizacaoEtica)) { - ob_end_clean(); - return Storage::download($projeto->justificativaAutorizacaoEtica); - } - - return abort(404); - } - - public function baixarAnexoDocExtra($id) - { - $projeto = Trabalho::find($id); - if (Storage::disk()->exists($projeto->anexo_docExtra)) { - ob_end_clean(); - return Storage::download($projeto->anexo_docExtra); - } - return abort(404); - } - - public function baixarAnexoTemp($eventoId, $nomeAnexo) - { - $proponente = Proponente::where('user_id', Auth::user()->id)->first(); - - $trabalho = Trabalho::where('proponente_id', $proponente->id)->where('evento_id', $eventoId)->where('status', 'Rascunho') - ->orderByDesc('updated_at')->first(); - - if (Storage::disk()->exists($trabalho->$nomeAnexo)) { - ob_end_clean(); - return Storage::download($trabalho->$nomeAnexo); - } - return abort(404); - } - - public function baixarEventoTemp($nomeAnexo) - { - $eventoTemp = Evento::where('criador_id', Auth::user()->id)->where('anexosStatus', 'temporario') - ->orderByDesc('updated_at')->first(); - - if (Storage::disk()->exists($eventoTemp->$nomeAnexo)) { - ob_end_clean(); - return Storage::download($eventoTemp->$nomeAnexo); - } - return abort(404); - } -//xxfa - - public function update(UpdateTrabalho $request, $id) - { - try { - if (!$request->has('rascunho')) { - $request->merge([ - 'status' => 'submetido' - ]); - } else { - $request->merge([ - 'status' => 'rascunho' - ]); - } - $evento = Evento::find($request->editalId); - $request->merge([ - 'coordenador_id' => $evento->coordenadorComissao->id - ]); - $trabalho = Trabalho::find($id); - $trabalho->ods()->sync($request->ods); - - DB::beginTransaction(); - if (!$trabalho) { - return back()->withErrors(['Proposta não encontrada']); - } - - if($evento->tipo=="PIBEX"){ - $trabalho->update($request->except([ - 'anexoProjeto', 'anexoDecisaoCONSU','modalidade','anexo_docExtra' - ])); - }else{ - $trabalho->update($request->except([ - 'anexoProjeto', 'anexoDecisaoCONSU', 'anexoPlanilhaPontuacao', - 'anexoLattesCoordenador', 'anexoGrupoPesquisa', 'anexoAutorizacaoComiteEtica', - 'justificativaAutorizacaoEtica','modalidade','anexo_docExtra' - ])); - } - - $pasta = 'trabalhos/' . $evento->id . '/' . $trabalho->id; - - $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 ($request->marcado == null) { - $idExcluido = $trabalho->participantes->pluck('id'); - - } else { - $idExcluido = []; - } - - foreach ($request->participante_id as $key => $value) { - if ($request->marcado != null && array_search($key, $request->marcado) === false) { - if ($value !== null) - array_push($idExcluido, $value); - } - } - - - foreach ($idExcluido as $key => $value) { - $trabalho->participantes()->find($value)->delete(); - } - $trabalho->refresh(); - - if ($request->has('marcado')) { - foreach ($request->marcado as $key => $part) { - $part = intval($part); - $passwordTemporario = Str::random(8); - $data['name'] = $request->name[$part]; - $data['email'] = $request->email[$part]; - $data['password'] = bcrypt($passwordTemporario); - $data['data_de_nascimento'] = $request->data_de_nascimento[$part]; - $data['cpf'] = $request->cpf[$part]; - $data['tipo'] = 'participante'; - $data['funcao_participante_id'] = 4; - $data['rg'] = $request->rg[$part]; - $data['celular'] = $request->celular[$part]; - $data['cep'] = $request->cep[$part]; - $data['uf'] = $request->uf[$part]; - $data['cidade'] = $request->cidade[$part]; - $data['rua'] = $request->rua[$part]; - $data['numero'] = $request->numero[$part]; - $data['bairro'] = $request->bairro[$part]; - $data['complemento'] = $request->complemento[$part]; - - if ($request->instituicao[$part] != "Outra") { - $data['instituicao'] = $request->instituicao[$part]; - } else { - $data['instituicao'] = $request->outrainstituicao[$part]; - } - - $data['total_periodos'] = $request->total_periodos[$part]; - - if ($request->curso[$part] != "Outro") { - $data['curso'] = $request->curso[$part]; - } 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]; - if($evento->tipo!="PIBEX") { - $data['media_do_curso'] = $request->media_do_curso[$part]; - } - $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{ - $user = User::where('email', $data['email'])->first(); - } - - - - - if ($user == null) { - $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; - $user->participantes()->save($participante); - $trabalho->participantes()->save($participante); - $participante->trabalho_id = $trabalho->id; - $participante->save(); - - } else { - // $user = $participante->user; - $user->update($data); - if( $user->endereco == null){ - $endereco = Endereco::create($data); - $endereco->user()->save($user); - }else{ - $endereco = $user->endereco; - $endereco->update($data); - } - $participante = $user->participantes->where('trabalho_id', $trabalho->id)->where('id', $request->participante_id[$part])->first(); - // dd($participante); - if ($participante == null) { - // dd('part null'); - $participante = Participante::create($data); - $user->participantes()->save($participante); - $trabalho->participantes()->save($participante); - } else { - // dd('part update'); - $participante->update($data); - } - - } - - if ($request->has('anexoPlanoTrabalho') && array_key_exists($part, $request->anexoPlanoTrabalho) && $request->nomePlanoTrabalho[$part] != null) { - if (Arquivo::where('participanteId', $participante->id)->where('trabalhoId', $trabalho->id)->count()) { - $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]; - Storage::putFileAs($path, $file, $nome); - $arquivo->update([ - 'titulo' => $titulo, - 'nome' => $path . $nome, - 'data' => now(), - ]); - } else { - $path = 'trabalhos/' . $evento->id . '/' . $trabalho->id . '/'; - $nome = $data['nomePlanoTrabalho'] . ".pdf"; - $file = $request->anexoPlanoTrabalho[$part]; - Storage::putFileAs($path, $file, $nome); - $arquivo = new Arquivo(); - $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])); - } - - if (!$request->has('rascunho')) { - Notification::send($trabalho->proponente->user, new SubmissaoNotification($trabalho)); - } - - return redirect(route('proponente.projetos'))->with(['mensagem' => 'Proposta atualizada!']); - - } catch (\Throwable $th) { - DB::rollback(); - return redirect(route('proponente.projetos'))->with(['mensagem' => $th->getMessage()]); - } - - } - - 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) - { - - try { - if (!$request->has('rascunho')) { - $request->merge([ - 'status' => 'submetido' - ]); - } - $evento = Evento::find($request->editalId); - $request->merge([ - 'coordenador_id' => $evento->coordenadorComissao->id - ]); - - DB::beginTransaction(); - - if($evento->tipo=="PIBEX"){ - $trabalho = Auth::user()->proponentes->trabalhos() - ->create($request->except([ - 'anexoProjeto', 'anexoDecisaoCONSU','modalidade','anexo_docExtra' - ])); - }else{ - $trabalho = Auth::user()->proponentes->trabalhos() - ->create($request->except([ - 'anexoProjeto', 'anexoDecisaoCONSU', 'anexoPlanilhaPontuacao', - 'anexoLattesCoordenador', 'anexoGrupoPesquisa', 'anexoAutorizacaoComiteEtica', - 'justificativaAutorizacaoEtica','modalidade','anexo_docExtra' - ])); - } - - - if ($request->has('marcado')) { - foreach ($request->marcado as $key => $part) { - $part = intval($part); - - $passwordTemporario = Str::random(8); - $data['name'] = $request->name[$part]; - $data['email'] = $request->email[$part]; - $data['password'] = bcrypt($passwordTemporario); - $data['data_de_nascimento'] = $request->data_de_nascimento[$part]; - $data['cpf'] = $request->cpf[$part]; - $data['tipo'] = 'participante'; - $data['funcao_participante_id'] = 4; - $data['rg'] = $request->rg[$part]; - $data['celular'] = $request->celular[$part]; - $data['cep'] = $request->cep[$part]; - $data['uf'] = $request->uf[$part]; - $data['cidade'] = $request->cidade[$part]; - $data['rua'] = $request->rua[$part]; - $data['numero'] = $request->numero[$part]; - $data['bairro'] = $request->bairro[$part]; - $data['complemento'] = $request->complemento[$part]; - - if ($request->instituicao[$part] != "Outra") { - $data['instituicao'] = $request->instituicao[$part]; - } else { - $data['instituicao'] = $request->outrainstituicao[$part]; - } - - $data['total_periodos'] = $request->total_periodos[$part]; - - if ($request->curso[$part] != "Outro") { - $data['curso'] = $request->curso[$part]; - } 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]; - if($evento->tipo!="PIBEX") { - $data['media_do_curso'] = $request->media_do_curso[$part]; - } - $data['nomePlanoTrabalho'] = $request->nomePlanoTrabalho[$part]; - - $user = User::where('email', $data['email'])->first(); - if ($user == null) { - $data['usuarioTemp'] = true; - $user = User::create($data); - $endereco = Endereco::create($data); - $endereco->user()->save($user); - } - // $participante = $user->participantes->where('trabalho_id', $trabalho->id)->first(); - // if ($participante == null){ - // $participante = Participante::create($data); - // } - $participante = Participante::create($data); - $participante->data_entrada = $participante->created_at; - $user->participantes()->save($participante); - - $participante->trabalho_id = $trabalho->id; - $participante->save(); - - if ($request->has('anexoPlanoTrabalho')) { - $path = 'trabalhos/' . $evento->id . '/' . $trabalho->id . '/'; - $nome = $data['nomePlanoTrabalho'] . ".pdf"; - $file = $request->anexoPlanoTrabalho[$part]; - Storage::putFileAs($path, $file, $nome); - $arquivo = new Arquivo(); - $arquivo->titulo = $data['nomePlanoTrabalho']; - $arquivo->nome = $path . $nome; - $arquivo->trabalhoId = $trabalho->id; - $arquivo->data = now(); - $arquivo->participanteId = $participante->id; - $arquivo->versaoFinal = true; - $arquivo->save(); - - } - - } - } - - $evento->trabalhos()->save($trabalho); - - $pasta = 'trabalhos/' . $evento->id . '/' . $trabalho->id; - $trabalho = $this->armazenarAnexosFinais($request, $pasta, $trabalho, $evento); - $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')) { - //Notificações - //Coordenador - $userTemp = User::find($evento->coordenadorComissao->user_id); - $notificacao = App\Notificacao::create([ - 'remetente_id' => Auth::user()->id, - 'destinatario_id' => $evento->coordenadorComissao->user_id, - 'trabalho_id' => $trabalho->id, - 'lido' => false, - 'tipo' => 1, - ]); - $notificacao->save(); - // SubmissaoRecebidaNotification.php - Notification::send($userTemp, new SubmissaoRecebidaNotification($trabalho->id,$trabalho->titulo,$userTemp)); - //Proponente - $notificacao = App\Notificacao::create([ - 'remetente_id' => Auth::user()->id, - 'destinatario_id' => Auth::user()->id, - 'trabalho_id' => $trabalho->id, - 'lido' => false, - 'tipo' => 1, - ]); - $notificacao->save(); - // submissao e notificação.php $trabalho->id,$trabalho->titulo - Notification::send(Auth::user(), new SubmissaoNotification($trabalho)); - - - return redirect(route('proponente.projetos'))->with(['mensagem' => 'Proposta submetida!']); - } else { - return redirect(route('proponente.projetos'))->with(['mensagem' => 'Rascunho salvo!']); - - } - } catch (\Throwable $th) { - DB::rollback(); - return redirect(route('proponente.projetos'))->with(['mensagem' => $th->getMessage()]); - } - - - } - - public function atribuirDados(Request $request, $edital, Trabalho $projeto = null) - { - if ($projeto == null) { - $projeto = new Trabalho(); - } - - $proponente = User::find(auth()->user()->id)->proponentes; - $hoje = now(); - - $projeto->titulo = $request->nomeProjeto; - $projeto->coordenador_id = $edital->coordenadorComissao->id; - $projeto->grande_area_id = $request->grandeArea; - $projeto->area_id = $request->area; - $projeto->sub_area_id = $request->subArea; - $projeto->pontuacaoPlanilha = $request->pontuacaoPlanilha; - $projeto->linkGrupoPesquisa = $request->linkGrupo; - $projeto->linkLattesEstudante = $request->linkLattesEstudante; - $projeto->data = $hoje; - $projeto->evento_id = $request->editalId; - $projeto->status = 'submetido'; - $projeto->proponente_id = $proponente->id; - $projeto->conflitosInteresse = $request->conflitosInteresse; - - // Salvando anexos no storage - $projeto->save(); - $pasta = 'trabalhos/' . $edital->id . '/' . $projeto->id; - - $projeto = $this->armazenarAnexosFinais($request, $pasta, $projeto, $edital); - - return $projeto; - } - - public function salvarParticipantes(Request $request, $edital, $projeto, $edicao = false) - { - if ($edicao) { - - $participantes = $projeto->participantes; - $participantesPermanecem = collect(); - // dd($request->all()); - foreach ($request->participante_id as $key => $id) { - // Novo participante - if ($id == 0 || $id == null) { - $userParticipante = User::where('email', $request->emailParticipante[$key])->first(); - - $participante = new Participante(); - - if ($userParticipante == null) { - $passwordTemporario = Str::random(8); - - $usuario = new User(); - $usuario->email = $request->emailParticipante[$key]; - $usuario->password = bcrypt($passwordTemporario); - $usuario->usuarioTemp = false; - $usuario->name = $request->nomeParticipante[$key]; - $usuario->tipo = 'participante'; - $usuario->instituicao = $request->universidade[$key]; - $usuario->cpf = $request->cpf[$key]; - $usuario->celular = $request->celular[$key]; - - $endereco = new Endereco(); - $endereco->rua = $request->rua[$key]; - $endereco->numero = $request->numero[$key]; - $endereco->bairro = $request->bairro[$key]; - $endereco->cidade = $request->cidade[$key]; - $endereco->uf = $request->uf[$key]; - $endereco->cep = $request->cep[$key]; - $endereco->complemento = $request->complemento[$key]; - $endereco->save(); - - $usuario->enderecoId = $endereco->id; - - $usuario->save(); - - $participante->user_id = $usuario->id; - $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]; - $participante->curso = $request->curso[$key]; - $participante->turno = $request->turno[$key]; - $participante->ordem_prioridade = $request->ordem_prioridade[$key]; - $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]; - } - $participante->save(); - - - $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)); - } else { - - $participante->user_id = $userParticipante->id; - $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]; - $participante->curso = $request->curso[$key]; - $participante->turno = $request->turno[$key]; - $participante->ordem_prioridade = $request->ordem_prioridade[$key]; - $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]; - } - $participante->save(); - - $subject = "Participante de Projeto"; - Mail::to($request->emailParticipante[$key]) - ->send(new SubmissaoTrabalho($userParticipante, $subject, $edital, $projeto)); - - } - - if ($request->nomePlanoTrabalho[$key] != null) { - $usuario = User::where('email', $request->emailParticipante[$key])->first(); - $participante = Participante::where([['user_id', '=', $usuario->id], ['trabalho_id', '=', $projeto->id]])->first(); - - $path = 'trabalhos/' . $edital->id . '/' . $projeto->id . '/'; - $nome = $request->nomePlanoTrabalho[$key] . ".pdf"; - $file = $request->anexoPlanoTrabalho[$key]; - Storage::putFileAs($path, $file, $nome); - - $agora = now(); - $arquivo = new Arquivo(); - $arquivo->titulo = $request->nomePlanoTrabalho[$key]; - $arquivo->nome = $path . $nome; - $arquivo->trabalhoId = $projeto->id; - $arquivo->data = $agora; - $arquivo->participanteId = $participante->id; - $arquivo->versaoFinal = true; - $arquivo->save(); - // dd($arquivo); - } - // Editado - } elseif ($id > 0) { - // Removo dos cantidatos excluidos - $participante = Participante::find($id); - $participantesPermanecem->push($participante); - $usuario = $participante->user; - $endereco = $usuario->endereco; - - $usuario->usuarioTemp = false; - $usuario->name = $request->nomeParticipante[$key]; - $usuario->tipo = 'participante'; - $usuario->instituicao = $request->universidade[$key]; - $usuario->cpf = $request->cpf[$key]; - $usuario->celular = $request->celular[$key]; - - $usuario->update(); - - $endereco->rua = $request->rua[$key]; - $endereco->numero = $request->numero[$key]; - $endereco->bairro = $request->bairro[$key]; - $endereco->cidade = $request->cidade[$key]; - $endereco->uf = $request->uf[$key]; - $endereco->cep = $request->cep[$key]; - $endereco->complemento = $request->complemento[$key]; - $endereco->update(); - - $participante->rg = $request->rg[$key]; - $participante->data_de_nascimento = $request->data_de_nascimento[$key]; - $participante->curso = $request->curso[$key]; - $participante->turno = $request->turno[$key]; - $participante->ordem_prioridade = $request->ordem_prioridade[$key]; - $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]; - } - $participante->update(); - - if ($request->anexoPlanoTrabalho != null && array_key_exists($key, $request->anexoPlanoTrabalho) && $request->anexoPlanoTrabalho[$key] != null) { - - $planoAtual = $participante->planoTrabalho; - if (Storage::disk()->exists($planoAtual->nome)) { - Storage::delete($planoAtual->nome); - } - $planoAtual->delete(); - - $path = 'trabalhos/' . $edital->id . '/' . $projeto->id . '/'; - $nome = $request->nomePlanoTrabalho[$key] . ".pdf"; - $file = $request->anexoPlanoTrabalho[$key]; - Storage::putFileAs($path, $file, $nome); - - $agora = now(); - $arquivo = new Arquivo(); - $arquivo->titulo = $request->nomePlanoTrabalho[$key]; - $arquivo->nome = $path . $nome; - $arquivo->trabalhoId = $projeto->id; - $arquivo->data = $agora; - $arquivo->participanteId = $id; - $arquivo->versaoFinal = true; - $arquivo->save(); - } - } - } - // Excluidos - $participantesExcluidos = $participantes->diff($participantesPermanecem); - foreach ($participantesExcluidos as $participante) { - $plano = $participante->planoTrabalho; - if ($plano) - $plano->delete(); - $participante->delete(); - } - - return true; - } - if ($request->emailParticipante != null) { - foreach ($request->emailParticipante as $key => $email) { - $userParticipante = User::where('email', $email)->first(); - - $participante = new Participante(); - - if ($userParticipante == null) { - $passwordTemporario = Str::random(8); - - $usuario = new User(); - $usuario->email = $email; - $usuario->password = bcrypt($passwordTemporario); - $usuario->usuarioTemp = false; - $usuario->name = $request->nomeParticipante[$key]; - $usuario->tipo = 'participante'; - $usuario->instituicao = $request->universidade[$key]; - $usuario->cpf = $request->cpf[$key]; - $usuario->celular = $request->celular[$key]; - - $endereco = new Endereco(); - $endereco->rua = $request->rua[$key]; - $endereco->numero = $request->numero[$key]; - $endereco->bairro = $request->bairro[$key]; - $endereco->cidade = $request->cidade[$key]; - $endereco->uf = $request->uf[$key]; - $endereco->cep = $request->cep[$key]; - $endereco->complemento = $request->complemento[$key]; - $endereco->save(); - - $usuario->enderecoId = $endereco->id; - - $usuario->save(); - - $participante->user_id = $usuario->id; - $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]; - $participante->curso = $request->curso[$key]; - $participante->turno = $request->turno[$key]; - $participante->ordem_prioridade = $request->ordem_prioridade[$key]; - $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]; - } - $participante->save(); - - $usuario = User::where('email', $email)->first(); - $participante = Participante::where([['user_id', '=', $usuario->id], ['trabalho_id', '=', $projeto->id]])->first(); - - $path = 'trabalhos/' . $edital->id . '/' . $projeto->id . '/'; - $nome = $request->nomePlanoTrabalho[$key] . ".pdf"; - $file = $request->anexoPlanoTrabalho[$key]; - Storage::putFileAs($path, $file, $nome); - - $agora = now(); - $arquivo = new Arquivo(); - $arquivo->titulo = $request->nomePlanoTrabalho[$key]; - $arquivo->nome = $path . $nome; - $arquivo->trabalhoId = $projeto->id; - $arquivo->data = $agora; - $arquivo->participanteId = $participante->id; - $arquivo->versaoFinal = true; - $arquivo->save(); - $subject = "Participante de Projeto"; - Mail::to($email)->send(new EmailParaUsuarioNaoCadastrado(Auth()->user()->name, $projeto->titulo, 'Participante', $edital->nome, $passwordTemporario, $subject, $edital->tipo,$edital->natureza_id)); - } else { - - $participante->user_id = $userParticipante->id; - $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]; - $participante->curso = $request->curso[$key]; - $participante->turno = $request->turno[$key]; - $participante->ordem_prioridade = $request->ordem_prioridade[$key]; - $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]; - } - $participante->save(); - - - if ($request->anexoPlanoTrabalho[$key]) { - $path = 'trabalhos/' . $edital->id . '/' . $projeto->id . '/'; - $nome = $request->nomePlanoTrabalho[$key] . ".pdf"; - $file = $request->anexoPlanoTrabalho[$key]; - Storage::putFileAs($path, $file, $nome); - - $agora = now(); - $arquivo = new Arquivo(); - $arquivo->titulo = $request->nomePlanoTrabalho[$key]; - $arquivo->nome = $path . $nome; - $arquivo->trabalhoId = $projeto->id; - $arquivo->data = $agora; - $arquivo->participanteId = $participante->id; - $arquivo->versaoFinal = true; - $arquivo->save(); - - } - - $subject = "Participante de Projeto"; - $time = Carbon::today('America/Recife'); - $time = $time->isoFormat('às H:mm, dddd, D/M/YYYY'); - Mail::to($email) - ->send(new SubmissaoTrabalho($userParticipante, $subject, $edital, $projeto)); - - } - - // if($request->nomePlanoTrabalho[$key] != null){ - // $usuario = User::where('email', $email)->first(); - // $participante = Participante::where([['user_id', '=', $usuario->id], ['trabalho_id', '=', $projeto->id]])->first(); - - // $path = 'trabalhos/' . $edital->id . '/' . $projeto->id .'/'; - // $nome = $request->nomePlanoTrabalho[$key] .".pdf"; - // $file = $request->anexoPlanoTrabalho[$key]; - // Storage::putFileAs($path, $file, $nome); - - // $agora = now(); - // $arquivo = new Arquivo(); - // $arquivo->titulo = $request->nomePlanoTrabalho[$key]; - // $arquivo->nome = $path . $nome; - // $arquivo->trabalhoId = $projeto->id; - // $arquivo->data = $agora; - // $arquivo->participanteId = $participante->id; - // $arquivo->versaoFinal = true; - // $arquivo->save(); - // } - } - } - - return true; - } - - public function atualizar(Request $request, $id) - { - $edital = Evento::find($request->editalId); - $hoje = now(); - - $projeto = Trabalho::find($id); - - 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.']); - } - - $projeto = $this->atribuirDados($request, $edital, $projeto); - $projeto->update(); - - // dd($request->all()); - // Salvando participantes - $this->salvarParticipantes($request, $edital, $projeto, true); - - return redirect(route('proponente.projetos'))->with(['mensagem' => 'Projeto atualizado com sucesso!']); - } - - - public function telaTrocaPart(Request $request) - { - $projeto = Trabalho::find($request->projeto_id); - $edital = Evento::find($projeto->evento_id); - - if(Auth::user()->id != $projeto->proponente->user->id){ - return redirect()->back(); - } - - $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(); - - return view('administrador.substituirParticipante')->with(['projeto' => $projeto, - 'edital' => $edital, - 'participantes' => $participantes, - 'substituicoesProjeto' => $substituicoesProjeto, - 'estados' => $this->estados, - 'enum_turno' => Participante::ENUM_TURNO, - 'desligamentosProjeto' => $desligamentosProjeto, - ]); - } - - public function trocaParticipante(Request $request) - { - try { - DB::beginTransaction(); - $trabalho = Trabalho::find($request->projetoId); - $evento = Evento::find($request->editalId); - $participanteSubstituido = Participante::where('id', $request->participanteId)->first(); - $planoAntigo = Arquivo::where('id', $participanteSubstituido->planoTrabalho->id)->first(); - - $passwordTemporario = Str::random(8); - $data['name'] = $request->name; - $data['email'] = $request->email; - $data['password'] = bcrypt($passwordTemporario); - $data['data_de_nascimento'] = $request->data_de_nascimento; - $data['data_entrada'] = $request->data_entrada; - $data['cpf'] = $request->cpf; - $data['tipo'] = 'participante'; - $data['funcao_participante_id'] = 4; - $data['rg'] = $request->rg; - $data['celular'] = $request->celular; - $data['linkLattes'] = $request->linkLattes; - $data['cep'] = $request->cep; - $data['uf'] = $request->uf; - $data['cidade'] = $request->cidade; - $data['rua'] = $request->rua; - $data['numero'] = $request->numero; - $data['bairro'] = $request->bairro; - $data['complemento'] = $request->complemento; - - if ($request->instituicao != "Outra") { - $data['instituicao'] = $request->instituicao; - } else { - $data['instituicao'] = $request->outrainstituicao; - } - - $data['total_periodos'] = $request->total_periodos; - - if ($request->curso != "Outro") { - $data['curso'] = $request->curso; - } else { - $data['curso'] = $request->outrocurso; - } - - $data['turno'] = $request->turno; - $data['periodo_atual'] = $request->periodo_atual; - $data['ordem_prioridade'] = $request->ordem_prioridade; - if($evento->tipo!="PIBEX") { - $data['media_do_curso'] = $request->media_do_curso; - } - $data['nomePlanoTrabalho'] = $request->nomePlanoTrabalho; - - if ($request->substituirApenasPlanoCheck == 'check') { - $substituicao = new Substituicao(); - - if ($request->has('anexoPlanoTrabalho')) { - $path = 'trabalhos/' . $evento->id . '/' . $trabalho->id . '/'; - $nome = $data['nomePlanoTrabalho'] . ".pdf"; - $file = $request->anexoPlanoTrabalho; - Storage::putFileAs($path, $file, $nome); - $arquivo = new Arquivo(); - $arquivo->titulo = $data['nomePlanoTrabalho']; - $arquivo->nome = $path . $nome; - $arquivo->trabalhoId = $trabalho->id; - $arquivo->data = now(); - $arquivo->participanteId = $participanteSubstituido->id; - $arquivo->versaoFinal = true; - $arquivo->save(); - - $substituicao->status = 'Em Aguardo'; - $substituicao->tipo = 'TrocarPlano'; - $substituicao->observacao = $request->textObservacao; - $substituicao->participanteSubstituido_id = $participanteSubstituido->id; - $substituicao->participanteSubstituto_id = $participanteSubstituido->id; - $substituicao->planoSubstituto_id = $arquivo->id; - $substituicao->trabalho_id = $trabalho->id; - $substituicao->save(); - } - } else { - //$participanteSubstituido->delete(); - $substituicao = new Substituicao(); - $substituicao->observacao = $request->textObservacao; - if ($participanteSubstituido->data_entrada > $request->data_entrada) { - 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"]); - } - - $participanteSubstituido->data_saida = $request->data_entrada; - - \App\Validator\CpfValidator::validate($request->all()); - $user = User::where('email', $data['email'])->first(); - if (!$user) { - $data['usuarioTemp'] = true; - $user = User::create($data); - $endereco = Endereco::create($data); - $endereco->user()->save($user); - } - $participante = $user->participantes->where('trabalho_id', $trabalho->id)->first(); - if (!$participante) { - $participante = Participante::create($data); - $participanteSubstituido->save(); - } - - $pasta = 'participantes/' . $participante->id; - $participante->anexoTermoCompromisso = Storage::putFileAs($pasta, $request->anexoTermoCompromisso, "Termo_de_Compromisso.pdf"); - $participante->anexoComprovanteMatricula = Storage::putFileAs($pasta, $request->anexoComprovanteMatricula, "Comprovante_de_Matricula.pdf"); - $participante->anexoLattes = Storage::putFileAs($pasta, $request->anexoCurriculoLattes, "Curriculo_Lattes.pdf"); - if ($request->anexoAutorizacaoPais != null) { - $participante->anexoAutorizacaoPais = Storage::putFileAs($pasta, $request->anexoAutorizacaoPais, "Autorização_dos_Pais.pdf"); - } - if ($request->anexoComprovanteBancario != null) { - $participante->anexoComprovanteBancario = Storage::putFileAs($pasta, $request->anexoComprovanteBancario, "Comprovante_Bancario." . $request->file('anexoComprovanteBancario')->getClientOriginalExtension()); - } - - $user->participantes()->save($participante); - //$trabalho->participantes()->save($participante); - - if ($request->manterPlanoCheck == 'check') { - $substituicao->status = 'Em Aguardo'; - $substituicao->tipo = 'ManterPlano'; - $substituicao->observacao = $request->textObservacao; - $substituicao->participanteSubstituido_id = $participanteSubstituido->id; - $substituicao->participanteSubstituto_id = $participante->id; - $substituicao->trabalho_id = $trabalho->id; - $substituicao->planoSubstituto_id = $planoAntigo->id; - - $planoAntigo->participanteId = $participante->id; - - $substituicao->save(); - $planoAntigo->save(); - - } else { - - if ($request->has('anexoPlanoTrabalho')) { - $path = 'trabalhos/' . $evento->id . '/' . $trabalho->id . '/'; - $nome = $data['nomePlanoTrabalho'] . ".pdf"; - $file = $request->anexoPlanoTrabalho; - Storage::putFileAs($path, $file, $nome); - $arquivo = new Arquivo(); - $arquivo->titulo = $data['nomePlanoTrabalho']; - $arquivo->nome = $path . $nome; - $arquivo->trabalhoId = $trabalho->id; - $arquivo->data = now(); - $arquivo->participanteId = $participante->id; - $arquivo->versaoFinal = true; - $arquivo->save(); - - $substituicao->status = 'Em Aguardo'; - $substituicao->tipo = 'Completa'; - $substituicao->observacao = $request->textObservacao; - $substituicao->participanteSubstituido_id = $participanteSubstituido->id; - $substituicao->participanteSubstituto_id = $participante->id; - $substituicao->trabalho_id = $trabalho->id; - $substituicao->planoSubstituto_id = $arquivo->id; - $substituicao->save(); - } - - } - } - - $evento->trabalhos()->save($trabalho); - $trabalho->save(); - - $notificacao = App\Notificacao::create([ - 'remetente_id' => Auth::user()->id, - 'destinatario_id' => $evento->coordenadorComissao->user_id, - 'trabalho_id' => $trabalho->id, - 'lido' => false, - 'tipo' => 2, - ]); - $notificacao->save(); - - DB::commit(); - - Mail::to($evento->coordenadorComissao->user->email)->send(new SolicitacaoSubstituicao($evento, $trabalho,'',$substituicao->tipo,$substituicao->status)); - 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"]); - } catch (\Throwable $th) { - DB::rollback(); - return redirect(route('trabalho.trocaParticipante', ['evento_id' => $evento->id, 'projeto_id' => $trabalho->id]))->with(['erro' => $th->getMessage()]); - } - - } - - - public function telaShowSubst(Request $request) - { - $trabalho = Trabalho::find($request->trabalho_id); - $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(); - - return view('administrador.analiseSubstituicoes')->with(['substituicoesPendentes' => $substituicoesPendentes, - 'substituicoesProjeto' => $substituicoesProjeto, - 'trabalho' => $trabalho]); - } - - public function aprovarSubstituicao(Request $request) - { - $substituicao = Substituicao::find($request->substituicaoID); - $trabalho = Trabalho::find($substituicao->trabalho->id); - - if ($request->aprovar == 'true') { - try { - if ($substituicao->tipo == 'TrocarPlano') { - if(!empty($substituicao->participanteSubstituido)){ - $substituicao->participanteSubstituido->planoTrabalho()->where('id', '!=', $substituicao->planoSubstituto->id)->delete(); - } - $substituicao->status = 'Finalizada'; - $substituicao->justificativa = $request->textJustificativa; - $substituicao->causa = $request->selectJustificativa; - - $substituicao->concluida_em = now(); - $substituicao->save(); - - } else { - if(!empty($substituicao->participanteSubstituido)){ - $substituicao->participanteSubstituido->delete(); - } - - $trabalho->participantes()->save($substituicao->participanteSubstituto); - - $substituicao->status = 'Finalizada'; - $substituicao->justificativa = $request->textJustificativa; - $substituicao->causa = $request->selectJustificativa; - $substituicao->concluida_em = now(); - - $substituicao->save(); - } - - Mail::to($trabalho->proponente->user->email)->send(new SolicitacaoSubstituicao($trabalho->evento, $trabalho, 'resultado',$substituicao->tipo,$substituicao->status)); - return redirect()->back()->with(['sucesso' => 'Substituição concluída!']); - } catch (\Throwable $th) { - return redirect()->back()->with(['erro' => $th->getMessage()]); - } - - - } 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']); - - } + 'Acre', + 'AL' => 'Alagoas', + 'AP' => 'Amapá', + 'AM' => 'Amazonas', + 'BA' => 'Bahia', + 'CE' => 'Ceará', + 'DF' => 'Distrito Federal', + 'ES' => 'Espirito Santo', + 'GO' => 'Goiás', + 'MA' => 'Maranhão', + 'MS' => 'Mato Grosso do Sul', + 'MT' => 'Mato Grosso', + 'MG' => 'Minas Gerais', + 'PA' => 'Pará', + 'PB' => 'Paraíba', + 'PR' => 'Paraná', + 'PE' => 'Pernambuco', + 'PI' => 'Piauí', + 'RJ' => 'Rio de Janeiro', + 'RN' => 'Rio Grande do Norte', + 'RS' => 'Rio Grande do Sul', + 'RO' => 'Rondônia', + 'RR' => 'Roraima', + 'SC' => 'Santa Catarina', + 'SP' => 'São Paulo', + 'SE' => 'Sergipe', + 'TO' => 'Tocantins', + ); + + public function index($id) + { + $edital = Evento::find($id); + $grandeAreas = GrandeArea::orderBy('nome')->get(); + $areaTematicas = AreaTematica::orderBy('nome')->get(); + $ODS = ObjetivoDeDesenvolvimentoSustentavel::orderBy('nome')->get(); + $funcaoParticipantes = FuncaoParticipantes::orderBy('nome')->get(); + $proponente = Proponente::where('user_id', Auth::user()->id)->first(); + + if($proponente == null){ + 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') + ->orderByDesc('updated_at')->first(); + + // dd($estados); + + return view('evento.submeterTrabalho',[ + // return view('evento.backupForm',[ + 'edital' => $edital, + 'grandeAreas' => $grandeAreas, + 'funcaoParticipantes'=> $funcaoParticipantes, + 'rascunho' => $rascunho, + 'enum_turno' => Participante::ENUM_TURNO, + 'estados' => $this->estados, + 'areaTematicas' => $areaTematicas, + 'ods' =>$ODS, + ]); + } + + public function arquivar(Request $request){ + + $trabalho = Trabalho::find($request->trabalho_id); + $arquivos = Arquivo::where('trabalhoId',$trabalho->id)->get(); + if($request->arquivar_tipo == 1 ){ + $trabalho->arquivado = true; + foreach ($arquivos as $arquivo){ + $arquivo->arquivado = true; + $arquivo->update(); + } + $message = "Projeto ".$trabalho->titulo." arquivado"; + }else{ + $trabalho->arquivado = false; + foreach ($arquivos as $arquivo){ + $arquivo->arquivado = false; + $arquivo->update(); + } + $message = "Projeto ".$trabalho->titulo." desarquivado"; + } + $trabalho->update(); + return redirect()->back()->with(['sucesso'=>$message ]); + } + + public function storeParcial(Request $request){ + $mytime = Carbon::now('America/Recife'); + $mytime = $mytime->toDateString(); + $evento = Evento::find($request->editalId); + $coordenador = CoordenadorComissao::find($evento->coordenadorId); + + //Relaciona o projeto criado com o proponente que criou o projeto + $proponente = Proponente::where('user_id', Auth::user()->id)->first(); + + $trabalho = "trabalho"; + if ($evento->inicioSubmissao > $mytime) { + if ($mytime >= $evento->fimSubmissao) { + return redirect()->route('home'); + } + } + + //--Salvando os dados da submissão temporariamente + $this->armazenarInfoTemp($request, $proponente); + + return redirect()->route('projetos.edital', ['id' => $request->editalId]); + } + + //Armazena temporariamente dados da submissão, no banco de dados e no storage + public function armazenarInfoTemp(Request $request, $proponente) + { + + //---Dados do Projeto + $trabalho = Trabalho::where('proponente_id', $proponente->id)->where('evento_id',$request->editalId)->where('status', 'Rascunho') + ->orderByDesc('updated_at')->first(); + //dd($trabalho); + if($trabalho == null){ + $trabalho = new Trabalho(); + $trabalho->proponente_id = $proponente->id; + $trabalho->evento_id = $request->editalId; + $trabalho->status = 'Rascunho'; + + $stringKeys = ['titulo','linkGrupoPesquisa', 'linkLattesEstudante','pontuacaoPlanilha','anexoProjeto', + 'anexoPlanilhaPontuacao', 'anexoLattesCoordenador', 'conflitosInteresse']; + $intKeys = ['grande_area_id','area_id','sub_area_id','coordenador_id']; + + $trabalho->fill( + array_fill_keys($stringKeys, "") + array_fill_keys($intKeys, 1) + )->save(); + //dd($trabalho); + } + + if(!(is_null($request->nomeProjeto)) ) { + $trabalho->titulo = $request->nomeProjeto; + } + if(!(is_null($request->grandeArea))){ + $trabalho->grande_area_id = $request->grandeArea; + } + if(!(is_null($request->area))){ + $trabalho->area_id = $request->area; + } + if(!(is_null($request->subArea))){ + $trabalho->sub_area_id = $request->subArea; + } + if(!(is_null($request->pontuacaoPlanilha))){ + $trabalho->pontuacaoPlanilha = $request->pontuacaoPlanilha; + } + if(!(is_null($request->linkGrupo))){ + $trabalho->linkGrupoPesquisa = $request->linkGrupo; + } + if(!(is_null($request->conflitosInteresse))){ + $trabalho->conflitosInteresse = $request->conflitosInteresse; + } + + //Anexos do projeto + + $pasta = 'trabalhos/' . $request->editalId . '/' . $trabalho->id; + + if(!(is_null($request->anexoDecisaoCONSU)) ) { + $trabalho->anexoDecisaoCONSU = Storage::putFileAs($pasta, $request->anexoDecisaoCONSU, "CONSU.pdf"); + } + if (!(is_null($request->anexoComiteEtica))) { + $trabalho->anexoAutorizacaoComiteEtica = Storage::putFileAs($pasta, $request->anexoComiteEtica, "Comite_de_etica.pdf"); + } + if (!(is_null($request->justificativaAutorizacaoEtica))) { + $trabalho->justificativaAutorizacaoEtica = Storage::putFileAs($pasta, $request->justificativaAutorizacaoEtica, "Justificativa.pdf"); + } + if (!(is_null($request->anexoProjeto))) { + $trabalho->anexoProjeto = Storage::putFileAs($pasta, $request->anexoProjeto, "Projeto.pdf"); + } + if (!(is_null($request->anexoLattesCoordenador))) { + $trabalho->anexoLattesCoordenador = Storage::putFileAs($pasta, $request->anexoLattesCoordenador, "Lattes_Coordenador.pdf"); + } + if (!(is_null($request->anexoPlanilhaPontuacao))) { + $trabalho->anexoPlanilhaPontuacao = Storage::putFileAs($pasta, $request->anexoPlanilhaPontuacao, "Planilha.". $request->file('anexoPlanilhaPontuacao')->getClientOriginalExtension()); + } + + $trabalho->update(); + + //---Anexos planos de trabalho + + //dd($trabalho); + + return $trabalho; + } + + public function validarAnexosRascunho(Request $request, $trabalho){ + $validator = Validator::make($trabalho->getAttributes(),[ + 'anexoPlanilhaPontuacao' => $request->anexoPlanilhaPontuacao==null?['planilha']:[], + ]); + + if ($validator->fails()) { + //dd('asdf'); + return back()->withErrors($validator)->withInput(); + } + return 1; + } + + public function armazenarAnexosFinais($request, $pasta, $trabalho, $evento){ + + // Checando se é um novo trabalho ou uma edição + + if ($trabalho->anexoProjeto != null) { + // Anexo Projeto + if (isset($request->anexoProjeto)) { + if (Storage::disk()->exists($trabalho->anexoProjeto)) { + Storage::delete($trabalho->anexoProjeto); + } + $trabalho->anexoProjeto = Storage::putFileAs($pasta, $request->anexoProjeto, 'Projeto.pdf'); + } + + //Anexo Decisão CONSU + // if ($evento->tipo == 'PIBIC' || $evento->tipo == 'PIBIC-EM') { + if (isset($request->anexoDecisaoCONSU)) { + if (Storage::disk()->exists($trabalho->anexoDecisaoCONSU)) { + Storage::delete($trabalho->anexoDecisaoCONSU); + } + $trabalho->anexoDecisaoCONSU = Storage::putFileAs($pasta, $request->anexoDecisaoCONSU, 'Decisão_da_Câmara_ou_Conselho_Pertinente.pdf'); + } + // } + + //Autorização ou Justificativa + if (isset($request->anexoAutorizacaoComiteEtica)) { + if (Storage::disk()->exists($trabalho->anexoAutorizacaoComiteEtica)) { + Storage::delete($trabalho->anexoAutorizacaoComiteEtica); + } + $trabalho->anexoAutorizacaoComiteEtica = Storage::putFileAs($pasta, $request->anexoAutorizacaoComiteEtica, 'Comite_de_etica.pdf'); + $trabalho->justificativaAutorizacaoEtica = null; + + } elseif (isset($request->justificativaAutorizacaoEtica)) { + if (Storage::disk()->exists($trabalho->justificativaAutorizacaoEtica)) { + Storage::delete($trabalho->justificativaAutorizacaoEtica); + } + $trabalho->justificativaAutorizacaoEtica = Storage::putFileAs($pasta, $request->justificativaAutorizacaoEtica, 'Justificativa.pdf'); + $trabalho->anexoAutorizacaoComiteEtica = null; + } + + //Anexo Lattes + if (isset($request->anexoLattesCoordenador)) { + if (Storage::disk()->exists($trabalho->anexoLattesCoordenador)) { + Storage::delete($trabalho->anexoLattesCoordenador); + } + $trabalho->anexoLattesCoordenador = Storage::putFileAs($pasta, $request->anexoLattesCoordenador, 'Lattes_Coordenador.pdf'); + } + + //Anexo Planilha + if (isset($request->anexoPlanilhaPontuacao)) { + if (Storage::disk()->exists($trabalho->anexoPlanilhaPontuacao)) { + Storage::delete($trabalho->anexoPlanilhaPontuacao); + } + + $trabalho->anexoPlanilhaPontuacao = Storage::putFileAs($pasta, $request->anexoPlanilhaPontuacao, "Planilha." . $request->file('anexoPlanilhaPontuacao')->getClientOriginalExtension()); + } + + // Anexo grupo pesquisa + if (isset($request->anexoGrupoPesquisa)) { + if (Storage::disk()->exists($trabalho->anexoGrupoPesquisa)) { + Storage::delete($trabalho->anexoGrupoPesquisa); + } + $trabalho->anexoGrupoPesquisa = Storage::putFileAs($pasta, $request->anexoGrupoPesquisa, "Grupo_de_pesquisa." . $request->file('anexoGrupoPesquisa')->extension()); + } + + //Anexo documentro extra + if (isset($request->anexo_docExtra)) { + if (Storage::disk()->exists($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->save(); + return $trabalho; + } + + // Anexo Projeto + if (isset($request->anexoProjeto)) { + $trabalho->anexoProjeto = Storage::putFileAs($pasta, $request->anexoProjeto, 'Projeto.pdf'); + } + + //Anexo Decisão CONSU + //if ($evento->tipo == 'PIBIC' || $evento->tipo == 'PIBIC-EM') { + if (isset($request->anexoDecisaoCONSU)) { + $trabalho->anexoDecisaoCONSU = Storage::putFileAs($pasta, $request->anexoDecisaoCONSU, 'Decisão_da_Câmara_ou_Conselho_Pertinente.pdf'); + } + //} + + //Autorização ou Justificativa + if (isset($request->anexoAutorizacaoComiteEtica)) { + $trabalho->anexoAutorizacaoComiteEtica = Storage::putFileAs($pasta, $request->anexoAutorizacaoComiteEtica, 'Comite_de_etica.pdf'); + $trabalho->justificativaAutorizacaoEtica = null; + + } elseif (isset($request->justificativaAutorizacaoEtica)) { + $trabalho->justificativaAutorizacaoEtica = Storage::putFileAs($pasta, $request->justificativaAutorizacaoEtica, 'Justificativa.pdf'); + $trabalho->anexoAutorizacaoComiteEtica = null; + + } + + //Anexo Lattes + if (isset($request->anexoLattesCoordenador)) { + $trabalho->anexoLattesCoordenador = Storage::putFileAs($pasta, $request->anexoLattesCoordenador, 'Lattes_Coordenador.pdf'); + } + + //Anexo Planilha + if (isset($request->anexoPlanilhaPontuacao)) { + $trabalho->anexoPlanilhaPontuacao = Storage::putFileAs($pasta, $request->anexoPlanilhaPontuacao, "Planilha." . $request->file('anexoPlanilhaPontuacao')->getClientOriginalExtension()); + } + + // Anexo grupo pesquisa + if (isset($request->anexoGrupoPesquisa)) { + $trabalho->anexoGrupoPesquisa = Storage::putFileAs($pasta, $request->anexoGrupoPesquisa, "Grupo_de_pesquisa." . $request->file('anexoGrupoPesquisa')->extension()); + } + + // Anexo documento extra + if (isset($request->anexo_docExtra)) { + $trabalho->anexo_docExtra = Storage::putFileAs($pasta, $request->anexo_docExtra, "Documento_Extra." . $request->file('anexo_docExtra')->extension()); + } + + return $trabalho; + } + + public function show($id) + { + $projeto = Trabalho::find($id); + if(Auth::user()->id != $projeto->proponente->user->id){ + return redirect()->back(); + } + $edital = Evento::find($projeto->evento_id); + $grandeAreas = GrandeArea::all(); + $areas = Area::all(); + $subareas = Subarea::all(); + $areasTematicas = AreaTematica::all(); + $funcaoParticipantes = FuncaoParticipantes::all(); + $participantes = $projeto->participantes; + $participantesUsersIds = Participante::where('trabalho_id', $id)->select('user_id')->get(); + $users = User::whereIn('id', $participantesUsersIds)->get(); + $arquivos = Arquivo::where('trabalhoId', $id)->get(); + + // Verficação de pendencia de substituição + $aux = count(Substituicao::where('status','Em Aguardo')->whereIn('participanteSubstituido_id',$projeto->participantes->pluck('id'))->get()); + $flagSubstituicao = 1; + if($aux != 0){ + $flagSubstituicao = -1; + } + + $trabalhos_user = TrabalhoUser::where('trabalho_id', $projeto->id)->get(); + + return view('projeto.visualizar')->with(['projeto' => $projeto, + 'grandeAreas' => $grandeAreas, + 'areas' => $areas, + 'subAreas' => $subareas, + 'edital' => $edital, + 'users' => $users, + 'funcaoParticipantes' => $funcaoParticipantes, + 'participantes' => $participantes, + 'arquivos' => $arquivos, + 'estados' => $this->estados, + 'visualizar' => true, + 'enum_turno' => Participante::ENUM_TURNO, + 'areasTematicas' => $areasTematicas, + 'flagSubstituicao' =>$flagSubstituicao, + 'trabalhos_user' => $trabalhos_user + ]); + } + + public function exportProjeto($id) + { + $projeto = Auth::user()->proponentes->trabalhos()->where('id', $id)->first(); + if (!$projeto) { + return back()->withErrors(['Proposta não encontrada!']); + } + $edital = Evento::find($projeto->evento_id); + $grandeAreas = GrandeArea::all(); + $areas = Area::all(); + $subAreas = Subarea::all(); + $funcaoParticipantes = FuncaoParticipantes::all(); + $participantes = Participante::where('trabalho_id', $id)->get(); + $participantesUsersIds = Participante::where('trabalho_id', $id)->select('user_id')->get(); + $users = User::whereIn('id', $participantesUsersIds)->get(); + $arquivos = Arquivo::where('trabalhoId', $id)->get(); + $enum_turno = Participante::ENUM_TURNO; + view()->share('projeto.visualizar', [$projeto, $grandeAreas, $areas, $subAreas, $edital, $users, $funcaoParticipantes, $participantes, $arquivos, $enum_turno]); + + $pdf = PDF::loadView('projeto.visualizar', compact('projeto', 'grandeAreas', 'areas', 'subAreas', 'edital', 'users', 'funcaoParticipantes', 'participantes', 'arquivos', 'enum_turno'))->setOptions(['defaultFont' => 'sans-serif']); + + // download PDF file with download method + return $pdf->download('pdf_file.pdf'); + } + + public function edit($id) + { + if(Auth::user()->tipo=='administrador'){ + $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!']); + } + $edital = Evento::find($projeto->evento_id); + $grandeAreas = GrandeArea::all(); + $areaTematicas = AreaTematica::orderBy('nome')->get(); + $areas = Area::all(); + $subareas = Subarea::all(); + $ODS = ObjetivoDeDesenvolvimentoSustentavel::orderBy('nome')->get(); + $funcaoParticipantes = FuncaoParticipantes::all(); + $participantes = Participante::where('trabalho_id', $id)->get(); + $participantesUsersIds = Participante::where('trabalho_id', $id)->select('user_id')->get(); + $users = User::whereIn('id', $participantesUsersIds)->get(); + $arquivos = Arquivo::where('trabalhoId', $id)->get(); + //dd(Participante::all()); + $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, + 'subAreas' => $subareas, + 'edital' => $edital, + 'users' => $users, + 'funcaoParticipantes' => $funcaoParticipantes, + 'participantes' => $participantes, + 'arquivos' => $arquivos, + 'enum_turno' => Participante::ENUM_TURNO, + 'estados' => $this->estados, + 'areaTematicas' => $areaTematicas, + 'listaOds' => $ODS, + 'trabalhos_user' => $trabalhos_user + ]); + } + + public function destroy(Request $request) + { + $projeto = Trabalho::find($request->id); + //dd($trabalho); + Storage::deleteDirectory('trabalhos/' . $projeto->evento->id . '/' . $projeto->id); + + $participantes = $projeto->participantes; + foreach ($participantes as $participante) { + $plano = $participante->planoTrabalho; + if ($plano) + $plano->delete(); + $participante->delete(); + } + + $projeto->delete(); + return redirect()->back()->with(['mensagem' => 'Projeto deletado com sucesso!']); + } + + public function excluirParticipante($id) + { + $participante = Participante::where('id', $id)->first(); + //$participante = Participante::where('user_id', Auth()->user()->id) + // ->where('trabalho_id', $id)->first(); + + //$participante->trabalhos()->detach($id); + $participante->delete(); + + return redirect()->back(); + } + + public function solicitarCertificado(Trabalho $trabalho, Request $request) + { + $users = User::find($request->users); + $coord = $trabalho->coordenador; + $SolicitacaoCertificado = SolicitacaoCertificado::create(); + Notificacao::create([ + 'remetente_id' => auth()->user()->id, + 'destinatario_id' => $coord->user_id, + 'solicitacao_certificado_id' => $SolicitacaoCertificado->id, + 'trabalho_id' => $trabalho->id, + 'lido' => false, + 'tipo' => 6 + ]); + foreach ($users as $user) { + SolicitacaoParticipante::create([ + 'user_id' => $user->id, + 'solicitacao_certificado_id' => $SolicitacaoCertificado->id, + ]); + } + $admins = Administrador::all(); + foreach ($admins as $admin) { + $userTemp = User::find($admin->user_id); + Notificacao::create([ + 'remetente_id' => auth()->user()->id, + 'destinatario_id' => $admin->user_id, + 'solicitacao_certificado_id' => $SolicitacaoCertificado->id, + 'trabalho_id' => $trabalho->id, + 'lido' => false, + 'tipo' => 6, + ]); + } + $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(); + $evento = Evento::find($request->eventoId); + if ($evento->inicioSubmissao > $mytime) { + if ($mytime >= $evento->fimSubmissao) { + return redirect()->route('home'); + } + } + $validatedData = $request->validate([ + 'arquivo' => ['required', 'file', 'mimes:pdf'], + 'eventoId' => ['required', 'integer'], + 'trabalhoId' => ['required', 'integer'], + ]); + + $trabalho = Trabalho::find($request->trabalhoId); + + if (Auth::user()->id != $trabalho->autorId) { + return redirect()->route('home'); + } + + $arquivos = $trabalho->arquivo; + $count = 1; + foreach ($arquivos as $key) { + $key->versaoFinal = false; + $key->save(); + $count++; + } + + $file = $request->arquivo; + $path = 'trabalhos/' . $request->eventoId . '/' . $trabalho->id . '/'; + $nome = $count . ".pdf"; + Storage::putFileAs($path, $file, $nome); + + $arquivo = Arquivo::create([ + 'nome' => $path . $nome, + 'trabalhoId' => $trabalho->id, + 'versaoFinal' => true, + ]); + + return redirect()->route('evento.visualizar', ['id' => $request->eventoId]); + } + + public function detalhesAjax(Request $request) + { + $validatedData = $request->validate([ + 'trabalhoId' => ['required', 'integer'] + ]); + + $trabalho = Trabalho::find($request->trabalhoId); + $revisores = Atribuicao::where('trabalhoId', $request->trabalhoId)->get(); + $revisoresAux = []; + foreach ($revisores as $key) { + if ($key->revisor->user->name != null) { + array_push($revisoresAux, [ + 'id' => $key->revisor->id, + 'nomeOuEmail' => $key->revisor->user->name + ]); + } 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 + $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, + 'nomeOuEmail' => $key->user->name + ]); + } else { + array_push($revisoresAux1, [ + 'id' => $key->id, + 'nomeOuEmail' => $key->user->email + ]); + } + } + } + return response()->json([ + 'titulo' => $trabalho->titulo, + 'resumo' => $trabalho->resumo, + 'revisores' => $revisoresAux, + 'revisoresDisponiveis' => $revisoresAux1 + ], 200); + } + + public function atribuirAvaliadorTrabalho(Request $request) + { + + $request->trabalho_id; + $trabalho = Trabalho::find($request->trabalho_id); + + $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); + + $todosAvaliadores = Avaliador::all(); + + $avaliadores = Avaliador::whereIn('id', $request->avaliadores)->with('user')->get(); + + $trabalho->avaliadors()->sync($request->avaliadores); + + foreach ($avaliadores as $key => $avaliador) { + + $user = $avaliador->user; + $subject = "Trabalho atribuido"; + Mail::to($user->email) + ->send(new EventoCriado($user, $subject)); + } + + return view('coordenadorComissao.detalhesEdital', ['evento' => $trabalho->evento]); + } + + public function projetosDoEdital($id) + { + $edital = Evento::find($id); + $projetos = Trabalho::where('evento_id', '=', $id)->get(); + $hoje = Carbon::today('America/Recife'); + $hoje = $hoje->toDateString(); + + return view('proponente.projetosEdital')->with(['edital' => $edital, 'projetos' => $projetos, 'hoje' => $hoje]); + } + + public function baixarAnexoProjeto($id) + { + $projeto = Trabalho::find($id); + //dd($projeto); + if (Storage::disk()->exists($projeto->anexoProjeto)) { + ob_end_clean(); + return Storage::download($projeto->anexoProjeto); + } + return abort(404); + } + + public function baixarAnexoGrupoPesquisa($id) + { + $projeto = Trabalho::find($id); + if (Storage::disk()->exists($projeto->anexoGrupoPesquisa)) { + ob_end_clean(); + return Storage::download($projeto->anexoGrupoPesquisa); + } + return abort(404); + } + + public function baixarAnexoConsu($id) + { + $projeto = Trabalho::find($id); + + if (Storage::disk()->exists($projeto->anexoDecisaoCONSU)) { + ob_end_clean(); + return Storage::download($projeto->anexoDecisaoCONSU); + } + return abort(404); + } + + public function baixarAnexoComite($id) + { + $projeto = Trabalho::find($id); + + if (Storage::disk()->exists($projeto->anexoAutorizacaoComiteEtica)) { + ob_end_clean(); + return Storage::download($projeto->anexoAutorizacaoComiteEtica); + } + return abort(404); + } + + public function baixarAnexoLattes($id) + { + $projeto = Trabalho::find($id); + + if (Storage::disk()->exists($projeto->anexoLattesCoordenador)) { + ob_end_clean(); + return Storage::download($projeto->anexoLattesCoordenador); + } + return abort(404); + } + + public function baixarAnexoPlanilha($id) + { + $projeto = Trabalho::find($id); + + if (Storage::disk()->exists($projeto->anexoPlanilhaPontuacao)) { + ob_end_clean(); + $file = $projeto->anexoPlanilhaPontuacao; + $ext = explode(".", $file); + + switch ($ext[1]) { + case 'xlsx': + $hearder = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'; + break; + case 'xls': + $hearder = 'application/vnd.ms-excel'; + break; + case 'ods': + $hearder = 'application/vnd.oasis.opendocument.spreadsheet'; + break; + + default: + $hearder = 'application/vnd.ms-excel'; + break; + } + + $headers = array( + "Content-type: {$hearder}", + ); + + + return Storage::download($projeto->anexoPlanilhaPontuacao, "Planilha.{$ext[1]}", $headers); + } + return abort(404); + } + + public function baixarAnexoJustificativa($id) + { + $projeto = Trabalho::find($id); + + if (Storage::disk()->exists($projeto->justificativaAutorizacaoEtica)) { + ob_end_clean(); + return Storage::download($projeto->justificativaAutorizacaoEtica); + } + + return abort(404); + } + + public function baixarAnexoDocExtra($id) + { + $projeto = Trabalho::find($id); + if (Storage::disk()->exists($projeto->anexo_docExtra)) { + ob_end_clean(); + return Storage::download($projeto->anexo_docExtra); + } + return abort(404); + } + + public function baixarAnexoTemp($eventoId, $nomeAnexo) + { + $proponente = Proponente::where('user_id', Auth::user()->id)->first(); + + $trabalho = Trabalho::where('proponente_id', $proponente->id)->where('evento_id', $eventoId)->where('status', 'Rascunho') + ->orderByDesc('updated_at')->first(); + + if (Storage::disk()->exists($trabalho->$nomeAnexo)) { + ob_end_clean(); + return Storage::download($trabalho->$nomeAnexo); + } + return abort(404); + } + + public function baixarEventoTemp($nomeAnexo) + { + $eventoTemp = Evento::where('criador_id', Auth::user()->id)->where('anexosStatus', 'temporario') + ->orderByDesc('updated_at')->first(); + + if (Storage::disk()->exists($eventoTemp->$nomeAnexo)) { + ob_end_clean(); + return Storage::download($eventoTemp->$nomeAnexo); + } + return abort(404); + } +//xxfa + + public function update(UpdateTrabalho $request, $id) + { + try { + if (!$request->has('rascunho')) { + $request->merge([ + 'status' => 'submetido' + ]); + } else { + $request->merge([ + 'status' => 'rascunho' + ]); + } + $evento = Evento::find($request->editalId); + $request->merge([ + 'coordenador_id' => $evento->coordenadorComissao->id + ]); + $trabalho = Trabalho::find($id); + $trabalho->ods()->sync($request->ods); + + DB::beginTransaction(); + if (!$trabalho) { + return back()->withErrors(['Proposta não encontrada']); + } + + if($evento->tipo=="PIBEX"){ + $trabalho->update($request->except([ + 'anexoProjeto', 'anexoDecisaoCONSU','modalidade','anexo_docExtra' + ])); + }else{ + $trabalho->update($request->except([ + 'anexoProjeto', 'anexoDecisaoCONSU', 'anexoPlanilhaPontuacao', + 'anexoLattesCoordenador', 'anexoGrupoPesquisa', 'anexoAutorizacaoComiteEtica', + 'justificativaAutorizacaoEtica','modalidade','anexo_docExtra' + ])); + } + + $pasta = 'trabalhos/' . $evento->id . '/' . $trabalho->id; + + $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 ($request->marcado == null) { + $idExcluido = $trabalho->participantes->pluck('id'); + + } else { + $idExcluido = []; + } + + foreach ($request->participante_id as $key => $value) { + if ($request->marcado != null && array_search($key, $request->marcado) === false) { + if ($value !== null) + array_push($idExcluido, $value); + } + } + + + foreach ($idExcluido as $key => $value) { + $trabalho->participantes()->find($value)->delete(); + } + $trabalho->refresh(); + + if ($request->has('marcado')) { + foreach ($request->marcado as $key => $part) { + $part = intval($part); + $passwordTemporario = Str::random(8); + $data['name'] = $request->name[$part]; + $data['email'] = $request->email[$part]; + $data['password'] = bcrypt($passwordTemporario); + $data['data_de_nascimento'] = $request->data_de_nascimento[$part]; + $data['cpf'] = $request->cpf[$part]; + $data['tipo'] = 'participante'; + $data['funcao_participante_id'] = 4; + $data['rg'] = $request->rg[$part]; + $data['celular'] = $request->celular[$part]; + $data['cep'] = $request->cep[$part]; + $data['uf'] = $request->uf[$part]; + $data['cidade'] = $request->cidade[$part]; + $data['rua'] = $request->rua[$part]; + $data['numero'] = $request->numero[$part]; + $data['bairro'] = $request->bairro[$part]; + $data['complemento'] = $request->complemento[$part]; + + if ($request->instituicao[$part] != "Outra") { + $data['instituicao'] = $request->instituicao[$part]; + } else { + $data['instituicao'] = $request->outrainstituicao[$part]; + } + + $data['total_periodos'] = $request->total_periodos[$part]; + + if ($request->curso[$part] != "Outro") { + $data['curso'] = $request->curso[$part]; + } 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]; + if($evento->tipo!="PIBEX") { + $data['media_do_curso'] = $request->media_do_curso[$part]; + } + $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{ + $user = User::where('email', $data['email'])->first(); + } + + + + + if ($user == null) { + $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; + $user->participantes()->save($participante); + $trabalho->participantes()->save($participante); + $participante->trabalho_id = $trabalho->id; + $participante->save(); + + } else { + // $user = $participante->user; + $user->update($data); + if( $user->endereco == null){ + $endereco = Endereco::create($data); + $endereco->user()->save($user); + }else{ + $endereco = $user->endereco; + $endereco->update($data); + } + $participante = $user->participantes->where('trabalho_id', $trabalho->id)->where('id', $request->participante_id[$part])->first(); + // dd($participante); + if ($participante == null) { + // dd('part null'); + $participante = Participante::create($data); + $user->participantes()->save($participante); + $trabalho->participantes()->save($participante); + } else { + // dd('part update'); + $participante->update($data); + } + + } + + if ($request->has('anexoPlanoTrabalho') && array_key_exists($part, $request->anexoPlanoTrabalho) && $request->nomePlanoTrabalho[$part] != null) { + if (Arquivo::where('participanteId', $participante->id)->where('trabalhoId', $trabalho->id)->count()) { + $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]; + Storage::putFileAs($path, $file, $nome); + $arquivo->update([ + 'titulo' => $titulo, + 'nome' => $path . $nome, + 'data' => now(), + ]); + } else { + $path = 'trabalhos/' . $evento->id . '/' . $trabalho->id . '/'; + $nome = $data['nomePlanoTrabalho'] . ".pdf"; + $file = $request->anexoPlanoTrabalho[$part]; + Storage::putFileAs($path, $file, $nome); + $arquivo = new Arquivo(); + $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])); + } + + if (!$request->has('rascunho')) { + Notification::send($trabalho->proponente->user, new SubmissaoNotification($trabalho)); + } + + return redirect(route('proponente.projetos'))->with(['mensagem' => 'Proposta atualizada!']); + + } catch (\Throwable $th) { + DB::rollback(); + return redirect(route('proponente.projetos'))->with(['mensagem' => $th->getMessage()]); + } + + } + + 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) + { + + try { + if (!$request->has('rascunho')) { + $request->merge([ + 'status' => 'submetido' + ]); + } + $evento = Evento::find($request->editalId); + $request->merge([ + 'coordenador_id' => $evento->coordenadorComissao->id + ]); + + DB::beginTransaction(); + + if($evento->tipo=="PIBEX"){ + $trabalho = Auth::user()->proponentes->trabalhos() + ->create($request->except([ + 'anexoProjeto', 'anexoDecisaoCONSU','modalidade','anexo_docExtra' + ])); + }else{ + $trabalho = Auth::user()->proponentes->trabalhos() + ->create($request->except([ + 'anexoProjeto', 'anexoDecisaoCONSU', 'anexoPlanilhaPontuacao', + 'anexoLattesCoordenador', 'anexoGrupoPesquisa', 'anexoAutorizacaoComiteEtica', + 'justificativaAutorizacaoEtica','modalidade','anexo_docExtra' + ])); + } + + + if ($request->has('marcado')) { + foreach ($request->marcado as $key => $part) { + $part = intval($part); + + $passwordTemporario = Str::random(8); + $data['name'] = $request->name[$part]; + $data['email'] = $request->email[$part]; + $data['password'] = bcrypt($passwordTemporario); + $data['data_de_nascimento'] = $request->data_de_nascimento[$part]; + $data['cpf'] = $request->cpf[$part]; + $data['tipo'] = 'participante'; + $data['funcao_participante_id'] = 4; + $data['rg'] = $request->rg[$part]; + $data['celular'] = $request->celular[$part]; + $data['cep'] = $request->cep[$part]; + $data['uf'] = $request->uf[$part]; + $data['cidade'] = $request->cidade[$part]; + $data['rua'] = $request->rua[$part]; + $data['numero'] = $request->numero[$part]; + $data['bairro'] = $request->bairro[$part]; + $data['complemento'] = $request->complemento[$part]; + + if ($request->instituicao[$part] != "Outra") { + $data['instituicao'] = $request->instituicao[$part]; + } else { + $data['instituicao'] = $request->outrainstituicao[$part]; + } + + $data['total_periodos'] = $request->total_periodos[$part]; + + if ($request->curso[$part] != "Outro") { + $data['curso'] = $request->curso[$part]; + } 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]; + if($evento->tipo!="PIBEX") { + $data['media_do_curso'] = $request->media_do_curso[$part]; + } + $data['nomePlanoTrabalho'] = $request->nomePlanoTrabalho[$part]; + + $user = User::where('email', $data['email'])->first(); + if ($user == null) { + $data['usuarioTemp'] = true; + $user = User::create($data); + $endereco = Endereco::create($data); + $endereco->user()->save($user); + } + // $participante = $user->participantes->where('trabalho_id', $trabalho->id)->first(); + // if ($participante == null){ + // $participante = Participante::create($data); + // } + $participante = Participante::create($data); + $participante->data_entrada = $participante->created_at; + $user->participantes()->save($participante); + + $participante->trabalho_id = $trabalho->id; + $participante->save(); + + if ($request->has('anexoPlanoTrabalho')) { + $path = 'trabalhos/' . $evento->id . '/' . $trabalho->id . '/'; + $nome = $data['nomePlanoTrabalho'] . ".pdf"; + $file = $request->anexoPlanoTrabalho[$part]; + Storage::putFileAs($path, $file, $nome); + $arquivo = new Arquivo(); + $arquivo->titulo = $data['nomePlanoTrabalho']; + $arquivo->nome = $path . $nome; + $arquivo->trabalhoId = $trabalho->id; + $arquivo->data = now(); + $arquivo->participanteId = $participante->id; + $arquivo->versaoFinal = true; + $arquivo->save(); + + } + + } + } + + $evento->trabalhos()->save($trabalho); + + $pasta = 'trabalhos/' . $evento->id . '/' . $trabalho->id; + $trabalho = $this->armazenarAnexosFinais($request, $pasta, $trabalho, $evento); + $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')) { + //Notificações + //Coordenador + $userTemp = User::find($evento->coordenadorComissao->user_id); + $notificacao = App\Notificacao::create([ + 'remetente_id' => Auth::user()->id, + 'destinatario_id' => $evento->coordenadorComissao->user_id, + 'trabalho_id' => $trabalho->id, + 'lido' => false, + 'tipo' => 1, + ]); + $notificacao->save(); + // SubmissaoRecebidaNotification.php + Notification::send($userTemp, new SubmissaoRecebidaNotification($trabalho->id,$trabalho->titulo,$userTemp)); + //Proponente + $notificacao = App\Notificacao::create([ + 'remetente_id' => Auth::user()->id, + 'destinatario_id' => Auth::user()->id, + 'trabalho_id' => $trabalho->id, + 'lido' => false, + 'tipo' => 1, + ]); + $notificacao->save(); + // submissao e notificação.php $trabalho->id,$trabalho->titulo + Notification::send(Auth::user(), new SubmissaoNotification($trabalho)); + + + return redirect(route('proponente.projetos'))->with(['mensagem' => 'Proposta submetida!']); + } else { + return redirect(route('proponente.projetos'))->with(['mensagem' => 'Rascunho salvo!']); + + } + } catch (\Throwable $th) { + DB::rollback(); + return redirect(route('proponente.projetos'))->with(['mensagem' => $th->getMessage()]); + } + + + } + + public function atribuirDados(Request $request, $edital, Trabalho $projeto = null) + { + if ($projeto == null) { + $projeto = new Trabalho(); + } + + $proponente = User::find(auth()->user()->id)->proponentes; + $hoje = now(); + + $projeto->titulo = $request->nomeProjeto; + $projeto->coordenador_id = $edital->coordenadorComissao->id; + $projeto->grande_area_id = $request->grandeArea; + $projeto->area_id = $request->area; + $projeto->sub_area_id = $request->subArea; + $projeto->pontuacaoPlanilha = $request->pontuacaoPlanilha; + $projeto->linkGrupoPesquisa = $request->linkGrupo; + $projeto->linkLattesEstudante = $request->linkLattesEstudante; + $projeto->data = $hoje; + $projeto->evento_id = $request->editalId; + $projeto->status = 'submetido'; + $projeto->proponente_id = $proponente->id; + $projeto->conflitosInteresse = $request->conflitosInteresse; + + // Salvando anexos no storage + $projeto->save(); + $pasta = 'trabalhos/' . $edital->id . '/' . $projeto->id; + + $projeto = $this->armazenarAnexosFinais($request, $pasta, $projeto, $edital); + + return $projeto; + } + + public function salvarParticipantes(Request $request, $edital, $projeto, $edicao = false) + { + if ($edicao) { + + $participantes = $projeto->participantes; + $participantesPermanecem = collect(); + // dd($request->all()); + foreach ($request->participante_id as $key => $id) { + // Novo participante + if ($id == 0 || $id == null) { + $userParticipante = User::where('email', $request->emailParticipante[$key])->first(); + + $participante = new Participante(); + + if ($userParticipante == null) { + $passwordTemporario = Str::random(8); + + $usuario = new User(); + $usuario->email = $request->emailParticipante[$key]; + $usuario->password = bcrypt($passwordTemporario); + $usuario->usuarioTemp = false; + $usuario->name = $request->nomeParticipante[$key]; + $usuario->tipo = 'participante'; + $usuario->instituicao = $request->universidade[$key]; + $usuario->cpf = $request->cpf[$key]; + $usuario->celular = $request->celular[$key]; + + $endereco = new Endereco(); + $endereco->rua = $request->rua[$key]; + $endereco->numero = $request->numero[$key]; + $endereco->bairro = $request->bairro[$key]; + $endereco->cidade = $request->cidade[$key]; + $endereco->uf = $request->uf[$key]; + $endereco->cep = $request->cep[$key]; + $endereco->complemento = $request->complemento[$key]; + $endereco->save(); + + $usuario->enderecoId = $endereco->id; + + $usuario->save(); + + $participante->user_id = $usuario->id; + $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]; + $participante->curso = $request->curso[$key]; + $participante->turno = $request->turno[$key]; + $participante->ordem_prioridade = $request->ordem_prioridade[$key]; + $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]; + } + $participante->save(); + + + $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)); + } else { + + $participante->user_id = $userParticipante->id; + $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]; + $participante->curso = $request->curso[$key]; + $participante->turno = $request->turno[$key]; + $participante->ordem_prioridade = $request->ordem_prioridade[$key]; + $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]; + } + $participante->save(); + + $subject = "Participante de Projeto"; + Mail::to($request->emailParticipante[$key]) + ->send(new SubmissaoTrabalho($userParticipante, $subject, $edital, $projeto)); + + } + + if ($request->nomePlanoTrabalho[$key] != null) { + $usuario = User::where('email', $request->emailParticipante[$key])->first(); + $participante = Participante::where([['user_id', '=', $usuario->id], ['trabalho_id', '=', $projeto->id]])->first(); + + $path = 'trabalhos/' . $edital->id . '/' . $projeto->id . '/'; + $nome = $request->nomePlanoTrabalho[$key] . ".pdf"; + $file = $request->anexoPlanoTrabalho[$key]; + Storage::putFileAs($path, $file, $nome); + + $agora = now(); + $arquivo = new Arquivo(); + $arquivo->titulo = $request->nomePlanoTrabalho[$key]; + $arquivo->nome = $path . $nome; + $arquivo->trabalhoId = $projeto->id; + $arquivo->data = $agora; + $arquivo->participanteId = $participante->id; + $arquivo->versaoFinal = true; + $arquivo->save(); + // dd($arquivo); + } + // Editado + } elseif ($id > 0) { + // Removo dos cantidatos excluidos + $participante = Participante::find($id); + $participantesPermanecem->push($participante); + $usuario = $participante->user; + $endereco = $usuario->endereco; + + $usuario->usuarioTemp = false; + $usuario->name = $request->nomeParticipante[$key]; + $usuario->tipo = 'participante'; + $usuario->instituicao = $request->universidade[$key]; + $usuario->cpf = $request->cpf[$key]; + $usuario->celular = $request->celular[$key]; + + $usuario->update(); + + $endereco->rua = $request->rua[$key]; + $endereco->numero = $request->numero[$key]; + $endereco->bairro = $request->bairro[$key]; + $endereco->cidade = $request->cidade[$key]; + $endereco->uf = $request->uf[$key]; + $endereco->cep = $request->cep[$key]; + $endereco->complemento = $request->complemento[$key]; + $endereco->update(); + + $participante->rg = $request->rg[$key]; + $participante->data_de_nascimento = $request->data_de_nascimento[$key]; + $participante->curso = $request->curso[$key]; + $participante->turno = $request->turno[$key]; + $participante->ordem_prioridade = $request->ordem_prioridade[$key]; + $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]; + } + $participante->update(); + + if ($request->anexoPlanoTrabalho != null && array_key_exists($key, $request->anexoPlanoTrabalho) && $request->anexoPlanoTrabalho[$key] != null) { + + $planoAtual = $participante->planoTrabalho; + if (Storage::disk()->exists($planoAtual->nome)) { + Storage::delete($planoAtual->nome); + } + $planoAtual->delete(); + + $path = 'trabalhos/' . $edital->id . '/' . $projeto->id . '/'; + $nome = $request->nomePlanoTrabalho[$key] . ".pdf"; + $file = $request->anexoPlanoTrabalho[$key]; + Storage::putFileAs($path, $file, $nome); + + $agora = now(); + $arquivo = new Arquivo(); + $arquivo->titulo = $request->nomePlanoTrabalho[$key]; + $arquivo->nome = $path . $nome; + $arquivo->trabalhoId = $projeto->id; + $arquivo->data = $agora; + $arquivo->participanteId = $id; + $arquivo->versaoFinal = true; + $arquivo->save(); + } + } + } + // Excluidos + $participantesExcluidos = $participantes->diff($participantesPermanecem); + foreach ($participantesExcluidos as $participante) { + $plano = $participante->planoTrabalho; + if ($plano) + $plano->delete(); + $participante->delete(); + } + + return true; + } + if ($request->emailParticipante != null) { + foreach ($request->emailParticipante as $key => $email) { + $userParticipante = User::where('email', $email)->first(); + + $participante = new Participante(); + + if ($userParticipante == null) { + $passwordTemporario = Str::random(8); + + $usuario = new User(); + $usuario->email = $email; + $usuario->password = bcrypt($passwordTemporario); + $usuario->usuarioTemp = false; + $usuario->name = $request->nomeParticipante[$key]; + $usuario->tipo = 'participante'; + $usuario->instituicao = $request->universidade[$key]; + $usuario->cpf = $request->cpf[$key]; + $usuario->celular = $request->celular[$key]; + + $endereco = new Endereco(); + $endereco->rua = $request->rua[$key]; + $endereco->numero = $request->numero[$key]; + $endereco->bairro = $request->bairro[$key]; + $endereco->cidade = $request->cidade[$key]; + $endereco->uf = $request->uf[$key]; + $endereco->cep = $request->cep[$key]; + $endereco->complemento = $request->complemento[$key]; + $endereco->save(); + + $usuario->enderecoId = $endereco->id; + + $usuario->save(); + + $participante->user_id = $usuario->id; + $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]; + $participante->curso = $request->curso[$key]; + $participante->turno = $request->turno[$key]; + $participante->ordem_prioridade = $request->ordem_prioridade[$key]; + $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]; + } + $participante->save(); + + $usuario = User::where('email', $email)->first(); + $participante = Participante::where([['user_id', '=', $usuario->id], ['trabalho_id', '=', $projeto->id]])->first(); + + $path = 'trabalhos/' . $edital->id . '/' . $projeto->id . '/'; + $nome = $request->nomePlanoTrabalho[$key] . ".pdf"; + $file = $request->anexoPlanoTrabalho[$key]; + Storage::putFileAs($path, $file, $nome); + + $agora = now(); + $arquivo = new Arquivo(); + $arquivo->titulo = $request->nomePlanoTrabalho[$key]; + $arquivo->nome = $path . $nome; + $arquivo->trabalhoId = $projeto->id; + $arquivo->data = $agora; + $arquivo->participanteId = $participante->id; + $arquivo->versaoFinal = true; + $arquivo->save(); + $subject = "Participante de Projeto"; + Mail::to($email)->send(new EmailParaUsuarioNaoCadastrado(Auth()->user()->name, $projeto->titulo, 'Participante', $edital->nome, $passwordTemporario, $subject, $edital->tipo,$edital->natureza_id)); + } else { + + $participante->user_id = $userParticipante->id; + $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]; + $participante->curso = $request->curso[$key]; + $participante->turno = $request->turno[$key]; + $participante->ordem_prioridade = $request->ordem_prioridade[$key]; + $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]; + } + $participante->save(); + + + if ($request->anexoPlanoTrabalho[$key]) { + $path = 'trabalhos/' . $edital->id . '/' . $projeto->id . '/'; + $nome = $request->nomePlanoTrabalho[$key] . ".pdf"; + $file = $request->anexoPlanoTrabalho[$key]; + Storage::putFileAs($path, $file, $nome); + + $agora = now(); + $arquivo = new Arquivo(); + $arquivo->titulo = $request->nomePlanoTrabalho[$key]; + $arquivo->nome = $path . $nome; + $arquivo->trabalhoId = $projeto->id; + $arquivo->data = $agora; + $arquivo->participanteId = $participante->id; + $arquivo->versaoFinal = true; + $arquivo->save(); + + } + + $subject = "Participante de Projeto"; + $time = Carbon::today('America/Recife'); + $time = $time->isoFormat('às H:mm, dddd, D/M/YYYY'); + Mail::to($email) + ->send(new SubmissaoTrabalho($userParticipante, $subject, $edital, $projeto)); + + } + + // if($request->nomePlanoTrabalho[$key] != null){ + // $usuario = User::where('email', $email)->first(); + // $participante = Participante::where([['user_id', '=', $usuario->id], ['trabalho_id', '=', $projeto->id]])->first(); + + // $path = 'trabalhos/' . $edital->id . '/' . $projeto->id .'/'; + // $nome = $request->nomePlanoTrabalho[$key] .".pdf"; + // $file = $request->anexoPlanoTrabalho[$key]; + // Storage::putFileAs($path, $file, $nome); + + // $agora = now(); + // $arquivo = new Arquivo(); + // $arquivo->titulo = $request->nomePlanoTrabalho[$key]; + // $arquivo->nome = $path . $nome; + // $arquivo->trabalhoId = $projeto->id; + // $arquivo->data = $agora; + // $arquivo->participanteId = $participante->id; + // $arquivo->versaoFinal = true; + // $arquivo->save(); + // } + } + } + + return true; + } + + public function atualizar(Request $request, $id) + { + $edital = Evento::find($request->editalId); + $hoje = now(); + + $projeto = Trabalho::find($id); + + 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.']); + } + + $projeto = $this->atribuirDados($request, $edital, $projeto); + $projeto->update(); + + // dd($request->all()); + // Salvando participantes + $this->salvarParticipantes($request, $edital, $projeto, true); + + return redirect(route('proponente.projetos'))->with(['mensagem' => 'Projeto atualizado com sucesso!']); + } + + + public function telaTrocaPart(Request $request) + { + $projeto = Trabalho::find($request->projeto_id); + $edital = Evento::find($projeto->evento_id); + + if(Auth::user()->id != $projeto->proponente->user->id){ + return redirect()->back(); + } + + $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(); + + return view('administrador.substituirParticipante')->with(['projeto' => $projeto, + 'edital' => $edital, + 'participantes' => $participantes, + 'substituicoesProjeto' => $substituicoesProjeto, + 'estados' => $this->estados, + 'enum_turno' => Participante::ENUM_TURNO, + 'desligamentosProjeto' => $desligamentosProjeto, + ]); + } + + public function trocaParticipante(Request $request) + { + try { + DB::beginTransaction(); + $trabalho = Trabalho::find($request->projetoId); + $evento = Evento::find($request->editalId); + $participanteSubstituido = Participante::where('id', $request->participanteId)->first(); + $planoAntigo = Arquivo::where('id', $participanteSubstituido->planoTrabalho->id)->first(); + + $passwordTemporario = Str::random(8); + $data['name'] = $request->name; + $data['email'] = $request->email; + $data['password'] = bcrypt($passwordTemporario); + $data['data_de_nascimento'] = $request->data_de_nascimento; + $data['data_entrada'] = $request->data_entrada; + $data['cpf'] = $request->cpf; + $data['tipo'] = 'participante'; + $data['funcao_participante_id'] = 4; + $data['rg'] = $request->rg; + $data['celular'] = $request->celular; + $data['linkLattes'] = $request->linkLattes; + $data['cep'] = $request->cep; + $data['uf'] = $request->uf; + $data['cidade'] = $request->cidade; + $data['rua'] = $request->rua; + $data['numero'] = $request->numero; + $data['bairro'] = $request->bairro; + $data['complemento'] = $request->complemento; + + if ($request->instituicao != "Outra") { + $data['instituicao'] = $request->instituicao; + } else { + $data['instituicao'] = $request->outrainstituicao; + } + + $data['total_periodos'] = $request->total_periodos; + + if ($request->curso != "Outro") { + $data['curso'] = $request->curso; + } else { + $data['curso'] = $request->outrocurso; + } + + $data['turno'] = $request->turno; + $data['periodo_atual'] = $request->periodo_atual; + $data['ordem_prioridade'] = $request->ordem_prioridade; + if($evento->tipo!="PIBEX") { + $data['media_do_curso'] = $request->media_do_curso; + } + $data['nomePlanoTrabalho'] = $request->nomePlanoTrabalho; + + if ($request->substituirApenasPlanoCheck == 'check') { + $substituicao = new Substituicao(); + + if ($request->has('anexoPlanoTrabalho')) { + $path = 'trabalhos/' . $evento->id . '/' . $trabalho->id . '/'; + $nome = $data['nomePlanoTrabalho'] . ".pdf"; + $file = $request->anexoPlanoTrabalho; + Storage::putFileAs($path, $file, $nome); + $arquivo = new Arquivo(); + $arquivo->titulo = $data['nomePlanoTrabalho']; + $arquivo->nome = $path . $nome; + $arquivo->trabalhoId = $trabalho->id; + $arquivo->data = now(); + $arquivo->participanteId = $participanteSubstituido->id; + $arquivo->versaoFinal = true; + $arquivo->save(); + + $substituicao->status = 'Em Aguardo'; + $substituicao->tipo = 'TrocarPlano'; + $substituicao->observacao = $request->textObservacao; + $substituicao->participanteSubstituido_id = $participanteSubstituido->id; + $substituicao->participanteSubstituto_id = $participanteSubstituido->id; + $substituicao->planoSubstituto_id = $arquivo->id; + $substituicao->trabalho_id = $trabalho->id; + $substituicao->save(); + } + } else { + //$participanteSubstituido->delete(); + $substituicao = new Substituicao(); + $substituicao->observacao = $request->textObservacao; + if ($participanteSubstituido->data_entrada > $request->data_entrada) { + 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"]); + } + + $participanteSubstituido->data_saida = $request->data_entrada; + + \App\Validator\CpfValidator::validate($request->all()); + $user = User::where('email', $data['email'])->first(); + if (!$user) { + $data['usuarioTemp'] = true; + $user = User::create($data); + $endereco = Endereco::create($data); + $endereco->user()->save($user); + } + $participante = $user->participantes->where('trabalho_id', $trabalho->id)->first(); + if (!$participante) { + $participante = Participante::create($data); + $participanteSubstituido->save(); + } + + $pasta = 'participantes/' . $participante->id; + $participante->anexoTermoCompromisso = Storage::putFileAs($pasta, $request->anexoTermoCompromisso, "Termo_de_Compromisso.pdf"); + $participante->anexoComprovanteMatricula = Storage::putFileAs($pasta, $request->anexoComprovanteMatricula, "Comprovante_de_Matricula.pdf"); + $participante->anexoLattes = Storage::putFileAs($pasta, $request->anexoCurriculoLattes, "Curriculo_Lattes.pdf"); + if ($request->anexoAutorizacaoPais != null) { + $participante->anexoAutorizacaoPais = Storage::putFileAs($pasta, $request->anexoAutorizacaoPais, "Autorização_dos_Pais.pdf"); + } + if ($request->anexoComprovanteBancario != null) { + $participante->anexoComprovanteBancario = Storage::putFileAs($pasta, $request->anexoComprovanteBancario, "Comprovante_Bancario." . $request->file('anexoComprovanteBancario')->getClientOriginalExtension()); + } + + $user->participantes()->save($participante); + //$trabalho->participantes()->save($participante); + + if ($request->manterPlanoCheck == 'check') { + $substituicao->status = 'Em Aguardo'; + $substituicao->tipo = 'ManterPlano'; + $substituicao->observacao = $request->textObservacao; + $substituicao->participanteSubstituido_id = $participanteSubstituido->id; + $substituicao->participanteSubstituto_id = $participante->id; + $substituicao->trabalho_id = $trabalho->id; + $substituicao->planoSubstituto_id = $planoAntigo->id; + + $planoAntigo->participanteId = $participante->id; + + $substituicao->save(); + $planoAntigo->save(); + + } else { + + if ($request->has('anexoPlanoTrabalho')) { + $path = 'trabalhos/' . $evento->id . '/' . $trabalho->id . '/'; + $nome = $data['nomePlanoTrabalho'] . ".pdf"; + $file = $request->anexoPlanoTrabalho; + Storage::putFileAs($path, $file, $nome); + $arquivo = new Arquivo(); + $arquivo->titulo = $data['nomePlanoTrabalho']; + $arquivo->nome = $path . $nome; + $arquivo->trabalhoId = $trabalho->id; + $arquivo->data = now(); + $arquivo->participanteId = $participante->id; + $arquivo->versaoFinal = true; + $arquivo->save(); + + $substituicao->status = 'Em Aguardo'; + $substituicao->tipo = 'Completa'; + $substituicao->observacao = $request->textObservacao; + $substituicao->participanteSubstituido_id = $participanteSubstituido->id; + $substituicao->participanteSubstituto_id = $participante->id; + $substituicao->trabalho_id = $trabalho->id; + $substituicao->planoSubstituto_id = $arquivo->id; + $substituicao->save(); + } + + } + } + + $evento->trabalhos()->save($trabalho); + $trabalho->save(); + + $notificacao = App\Notificacao::create([ + 'remetente_id' => Auth::user()->id, + 'destinatario_id' => $evento->coordenadorComissao->user_id, + 'trabalho_id' => $trabalho->id, + 'lido' => false, + 'tipo' => 2, + ]); + $notificacao->save(); + + DB::commit(); + + Mail::to($evento->coordenadorComissao->user->email)->send(new SolicitacaoSubstituicao($evento, $trabalho,'',$substituicao->tipo,$substituicao->status)); + 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"]); + } catch (\Throwable $th) { + DB::rollback(); + return redirect(route('trabalho.trocaParticipante', ['evento_id' => $evento->id, 'projeto_id' => $trabalho->id]))->with(['erro' => $th->getMessage()]); + } + + } + + + public function telaShowSubst(Request $request) + { + $trabalho = Trabalho::find($request->trabalho_id); + $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(); + + return view('administrador.analiseSubstituicoes')->with(['substituicoesPendentes' => $substituicoesPendentes, + 'substituicoesProjeto' => $substituicoesProjeto, + 'trabalho' => $trabalho]); + } + + public function aprovarSubstituicao(Request $request) + { + $substituicao = Substituicao::find($request->substituicaoID); + $trabalho = Trabalho::find($substituicao->trabalho->id); + + if ($request->aprovar == 'true') { + try { + if ($substituicao->tipo == 'TrocarPlano') { + if(!empty($substituicao->participanteSubstituido)){ + $substituicao->participanteSubstituido->planoTrabalho()->where('id', '!=', $substituicao->planoSubstituto->id)->delete(); + } + $substituicao->status = 'Finalizada'; + $substituicao->justificativa = $request->textJustificativa; + $substituicao->causa = $request->selectJustificativa; + + $substituicao->concluida_em = now(); + $substituicao->save(); + + } else { + if(!empty($substituicao->participanteSubstituido)){ + $substituicao->participanteSubstituido->delete(); + } + + $trabalho->participantes()->save($substituicao->participanteSubstituto); + + $substituicao->status = 'Finalizada'; + $substituicao->justificativa = $request->textJustificativa; + $substituicao->causa = $request->selectJustificativa; + $substituicao->concluida_em = now(); + + $substituicao->save(); + } + + Mail::to($trabalho->proponente->user->email)->send(new SolicitacaoSubstituicao($trabalho->evento, $trabalho, 'resultado',$substituicao->tipo,$substituicao->status)); + return redirect()->back()->with(['sucesso' => 'Substituição concluída!']); + } catch (\Throwable $th) { + return redirect()->back()->with(['erro' => $th->getMessage()]); + } + + + } 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 diff --git a/app/Trabalho.php b/app/Trabalho.php index 0c63eeae2c98302030cab9cbf2a3d4975939af08..3744e78468a4f7d3be21245b570495c85b2364df 100755 --- a/app/Trabalho.php +++ b/app/Trabalho.php @@ -1,137 +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'); - } - - public function integrantes() { - return $this->belongsToMany('App\User', 'trabalho_users', '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 index 198fd09dba25a98a7b11796ca7b1440a1c9a0d38..ce8dc6113e98ee319e370151c11ac3baaad757aa 100644 --- a/app/TrabalhoUser.php +++ b/app/TrabalhoUser.php @@ -1,16 +1,16 @@ -belongsTo('App\User'); - } - - public function funcao(){ - return $this->belongsTo('App\FuncaoParticipantes', 'funcao_participante_id'); - } -} +belongsTo('App\User'); + } + + public function funcao(){ + return $this->belongsTo('App\FuncaoParticipantes', 'funcao_participante_id'); + } +} 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 index c9a2057a4f8ae8997048ba310543824d1799f41f..ec45d3ba38c28792a37e9dc1a99e1fd5cc60925d 100644 --- a/database/migrations/2023_01_09_165956_create_trabalho_users_table.php +++ b/database/migrations/2023_01_09_165956_create_trabalho_users_table.php @@ -1,40 +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'); - } -} +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 f304e0b659594022fdacc25d09c5777597ddafbd..a3c565b8c3c4e598593c4a30ff485489dc8d0afc 100644 --- a/resources/views/administrador/analisarProposta.blade.php +++ b/resources/views/administrador/analisarProposta.blade.php @@ -1,2139 +1,2148 @@ -@extends('layouts.app') - -@section('content') - @php - $grandesAreas = \App\GrandeArea::all(); - $hoje = \Carbon\Carbon::today('America/Recife'); - $hoje = $hoje->toDateString(); - @endphp -
-
- -
- @if (session('sucesso')) -
- {{ session('sucesso') }} -
- @endif - @if($errors->any()) -
- {{$errors->first()}} -
- @endif -
-
-
-
- -
-
Informações da Proposta - @if($trabalho->arquivado == false) - - -
- @csrf - - -
- @else - - - -
- @csrf - - -
- @endif -
-
-
- -
-
{{$trabalho->titulo}} - @if(Auth::user()->tipo == 'administrador') - - - - @endif -
-
- -
{{$evento->nome}}
-
-
-
-
-
-
- -
-
- @if($trabalho->evento->natureza_id != 3) -
-
-
-
Área de Ensino
-
-
- {{App\GrandeArea::where('id', $trabalho->grande_area_id)->first()->nome}} > - {{App\Area::where('id', $trabalho->area_id)->first()->nome}} - @if(App\SubArea::where('id', $trabalho->sub_area_id)->first() != null) - > {{App\SubArea::where('id', $trabalho->sub_area_id)->first()->nome}}@endif - -
-
-
-
-
- @endif -
-
-
- -
-
-
-
-
-
-
-
Informações do - Proponente
-
-
-
-
-

- Nome: {{ App\Proponente::find($trabalho->proponente_id)->user->name }}

-
-
- Lattes: - @if(App\Proponente::where('id', $trabalho->proponente_id)->first()->linkLattes != null) - {{ App\Proponente::where('id', $trabalho->proponente_id)->first()->linkLattes }} - @endif -
- - @if($evento->tipo != "PIBEX") -
-
- Grupo de Pesquisa: - {{ $trabalho->linkGrupoPesquisa }} -
- -
-
- Valor da Planilha de Pontuação: - {{$trabalho->pontuacaoPlanilha}} -
- @endif - @if($trabalho->modalidade != null) -
-
- Modalidade: - {{$trabalho->modalidade}} -
- @endif - @if ($trabalho->conflitosInteresse != null) -
-
- Conflitos de Interesse: - {{ $trabalho->conflitosInteresse }} -
- @endif -
-
-
-
-
-
- -
-
-
-
-
-
-
Discentes
-
- @if($substituicoesPendentes->count() > 0) - Substituições - Pendentes - - @else - Substituições/Desligamentos - @endif -
-
-
- -
- @foreach($trabalho->participantes as $participante) -
- -
-
-
{{$participante->user->name}}
-
- Informações -
-
- - - - @foreach($substituicoesProjeto as $subs) - - - - - - - @endforeach - @endforeach -
-
-
-
-
-
- - {{--Janelas para aprovação ou reprovação de substituição--}} - - - - - - -
-
-
-
-
-
-
Anexos
-
-
- - {{-- Anexo do Projeto --}} -
- {{-- Arquivo --}} -
- - - -
- - @if($evento->tipo != "PIBEX") -
- - - -
- @endif - - @if($evento->tipo != "PIBEX") -
- @if($trabalho->anexoAutorizacaoComiteEtica != null) - - - @else - - @if($trabalho->justificativaAutorizacaoEtica != null) - - @else - - - @endif - @endif -
- @endif - - @if($evento->tipo != "PIBEX") -
- - - -
- @endif - - @if($evento->tipo != "PIBEX") -
- - @if($trabalho->anexoGrupoPesquisa != null) - - @else - - - @endif -
- @endif - - @if($evento->tipo == 'PIBIC' || $evento->tipo == 'PIBIC-EM' || $evento->tipo == "PIBEX") - {{-- Decisão do CONSU --}} -
- - -
- @endif - @if($evento->nome_docExtra != null) - {{-- Documento Extra --}} -
- - @if($trabalho->anexo_docExtra) - - @else - - - - @endif -
- @endif - -
-
-
-
-
-
- - -
-
-
-
-
-
-
Relatórios
-
- @if($substituicoesPendentes->count() == 0) - Listar - Relatórios - @else - Listar - Relatórios - @endif -
-
-
- -
- {{-- Relatório Parcial --}} -
- -
-
- -
-
- -
-
- -
- {{-- Relatório Final --}} -
- -
-
- -
-
- -
-
- -
-
- -
-
Avaliações de - Relatórios
- @if((($evento->dt_fimRelatorioParcial < $hoje && $hoje<$evento->dt_inicioRelatorioFinal) - || ($hoje>$evento->dt_fimRelatorioFinal)) && ($substituicoesPendentes->count() == 0) ) -
- - - -
- @else -
- - - -
- @endif - - @if($substituicoesPendentes->count() == 0) - - @endif -
-
- - @if(count($AvalRelatParcial) >0) -
-
Avaliações de Relatórios Parciais
-
-
- @foreach($AvalRelatParcial as $aval) -
- -
-
-
{{\App\User::find($aval->user_id)->name}}
-
- @if($aval->nota == null) Pendente @else Avaliação @endif
- @if($aval->nota == null) -
Remover
- @endif -
- - - - - - - - - @endforeach -
- @endif - - @if(count($AvalRelatFinal) >0) -
-
Avaliações de Relatórios Finais
-
-
- @foreach($AvalRelatFinal as $aval) -
- -
-
-
{{\App\User::find($aval->user_id)->name}}
-
- @if($aval->nota == null) Pendente @else Avaliação @endif
- @if($aval->nota == null) -
Remover
- @endif - -
- - - - - - - @endforeach -
- @endif - -
-
-
-
-
- - -
-
-
-
-
-
-
Avaliadores
- @if($hoje >= $evento->inicioRevisao && $hoje <= $evento->fimRevisao) -
- - - -
- @endif - - - -
-
- - -
-
Avaliadores - - Internos
-
-
- @foreach($trabalho->avaliadors as $avaliador) - @if(($avaliador->tipo == 'Interno' && ($avaliador->trabalhos()->where("trabalho_id",$trabalho->id)->first()->pivot->acesso == null || $avaliador->trabalhos()->where("trabalho_id",$trabalho->id)->first()->pivot->acesso == 2 || $avaliador->trabalhos()->where("trabalho_id",$trabalho->id)->first()->pivot->acesso == 3)) - || (($avaliador->user->instituicao == "UFAPE" || $avaliador->user->instituicao == "Universidade Federal do Agreste de Pernambuco") && $avaliador->tipo == null && ($avaliador->trabalhos()->where("trabalho_id",$trabalho->id)->first()->pivot->acesso == null || $avaliador->trabalhos()->where("trabalho_id",$trabalho->id)->first()->pivot->acesso == 2 || $avaliador->trabalhos()->where("trabalho_id",$trabalho->id)->first()->pivot->acesso == 3))) -
- -
-
-
{{$avaliador->user->name}}
- @php - $parecerInterno = App\ParecerInterno::where([['avaliador_id',$avaliador->id],['trabalho_id',$trabalho->id]])->first(); - @endphp - @if($parecerInterno == null) Pendente @else Avaliado @endif - -
- - Remover - -
- - Reenviar convite - -
- @endif - - - @endforeach -
-
- -
-
Avaliadores - - Ad Hoc
-
-
- @foreach($trabalho->avaliadors as $avaliador) - @if( ($avaliador->trabalhos()->where("trabalho_id",$trabalho->id)->first()->pivot->acesso == null && $avaliador->tipo == "Externo") || $avaliador->trabalhos()->where("trabalho_id",$trabalho->id)->first()->pivot->acesso == 1 || $avaliador->trabalhos()->where("trabalho_id",$trabalho->id)->first()->pivot->acesso == 3 - || (($avaliador->user->instituicao != "UFAPE" && $avaliador->user->instituicao != "Universidade Federal do Agreste de Pernambuco") && $avaliador->tipo == null && ($avaliador->trabalhos()->where("trabalho_id",$trabalho->id)->first()->pivot->acesso == null || $avaliador->trabalhos()->where("trabalho_id",$trabalho->id)->first()->pivot->acesso == 1 || $avaliador->trabalhos()->where("trabalho_id",$trabalho->id)->first()->pivot->acesso == 3))) -
- -
-
-
{{$avaliador->user->name}}
- - @if($avaliador->trabalhos->where('id', $trabalho->id)->first()->pivot->status == false) - Pendente @else Avaliado @endif - - -
- - Remover - -
- - Reenviar convite - -
- @endif - - - - @endforeach -
-
-
-
-
-
- - -
-
-
-
-
-
-
Recomendação da Proposta
-
-
-
- @csrf -
-
- Comentário - -
-
- status=="aprovado") checked @endif> - Recomendada -
- - status=="reprovado") checked @endif> - Não Recomendada -
-
- - -
-
-
-
- - Voltar - -
-
- - - - - - - - - - -
- - -@endsection - -@section('javascript') - - - - - - - - - - - - - - - - -@endsection +@extends('layouts.app') + +@section('styles') + +@endsection + +@section('content') + @php + $grandesAreas = \App\GrandeArea::all(); + $hoje = \Carbon\Carbon::today('America/Recife'); + $hoje = $hoje->toDateString(); + @endphp +
+
+ +
+ @if (session('sucesso')) +
+ {{ session('sucesso') }} +
+ @endif + @if($errors->any()) +
+ {{$errors->first()}} +
+ @endif +
+
+
+
+ +
+
Informações da Proposta + @if($trabalho->arquivado == false) + + +
+ @csrf + + +
+ @else + + + +
+ @csrf + + +
+ @endif +
+
+
+ +
+
{{$trabalho->titulo}} + @if(Auth::user()->tipo == 'administrador') + + + + @endif +
+
+ +
{{$evento->nome}}
+
+
+
+
+
+
+ +
+
+ @if($trabalho->evento->natureza_id != 3) +
+
+
+
Área de Ensino
+
+
+ {{App\GrandeArea::where('id', $trabalho->grande_area_id)->first()->nome}} > + {{App\Area::where('id', $trabalho->area_id)->first()->nome}} + @if(App\SubArea::where('id', $trabalho->sub_area_id)->first() != null) + > {{App\SubArea::where('id', $trabalho->sub_area_id)->first()->nome}}@endif + +
+
+
+
+
+ @endif +
+
+
+ +
+
+
+
+
+
+
+
Informações do + Proponente
+
+
+
+
+

+ Nome: {{ App\Proponente::find($trabalho->proponente_id)->user->name }}

+
+
+ Lattes: + @if(App\Proponente::where('id', $trabalho->proponente_id)->first()->linkLattes != null) + {{ App\Proponente::where('id', $trabalho->proponente_id)->first()->linkLattes }} + @endif +
+ + @if($evento->tipo != "PIBEX") +
+
+ Grupo de Pesquisa: + {{ $trabalho->linkGrupoPesquisa }} +
+ +
+
+ Valor da Planilha de Pontuação: + {{$trabalho->pontuacaoPlanilha}} +
+ @endif + @if($trabalho->modalidade != null) +
+
+ Modalidade: + {{$trabalho->modalidade}} +
+ @endif + @if ($trabalho->conflitosInteresse != null) +
+
+ Conflitos de Interesse: + {{ $trabalho->conflitosInteresse }} +
+ @endif +
+
+
+
+
+
+ +
+
+
+
+
+
+
Discentes
+
+ @if($substituicoesPendentes->count() > 0) + Substituições + Pendentes + + @else + Substituições/Desligamentos + @endif +
+
+
+ +
+ @foreach($trabalho->participantes as $participante) +
+ +
+
+
{{$participante->user->name}}
+
+ Informações +
+
+ + + + @foreach($substituicoesProjeto as $subs) + + + + + + + @endforeach + @endforeach +
+
+
+
+
+
+ + {{--Janelas para aprovação ou reprovação de substituição--}} + + + + + + +
+
+
+
+
+
+
Anexos
+
+
+ + {{-- Anexo do Projeto --}} +
+ {{-- Arquivo --}} +
+ + + +
+ + @if($evento->tipo != "PIBEX") +
+ + + +
+ @endif + + @if($evento->tipo != "PIBEX") +
+ @if($trabalho->anexoAutorizacaoComiteEtica != null) + + + @else + + @if($trabalho->justificativaAutorizacaoEtica != null) + + @else + - + @endif + @endif +
+ @endif + + @if($evento->tipo != "PIBEX") +
+ + + +
+ @endif + + @if($evento->tipo != "PIBEX") +
+ + @if($trabalho->anexoGrupoPesquisa != null) + + @else + - + @endif +
+ @endif + + @if($evento->tipo == 'PIBIC' || $evento->tipo == 'PIBIC-EM' || $evento->tipo == "PIBEX") + {{-- Decisão do CONSU --}} +
+ + +
+ @endif + @if($evento->nome_docExtra != null) + {{-- Documento Extra --}} +
+ + @if($trabalho->anexo_docExtra) + + @else + + + + @endif +
+ @endif + +
+
+
+
+
+
+ + +
+
+
+
+
+
+
Relatórios
+
+ @if($substituicoesPendentes->count() == 0) + Listar + Relatórios + @else + Listar + Relatórios + @endif +
+
+
+ +
+ {{-- Relatório Parcial --}} +
+ +
+
+ +
+
+ +
+
+ +
+ {{-- Relatório Final --}} +
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
Avaliações de + Relatórios
+ @if((($evento->dt_fimRelatorioParcial < $hoje && $hoje<$evento->dt_inicioRelatorioFinal) + || ($hoje>$evento->dt_fimRelatorioFinal)) && ($substituicoesPendentes->count() == 0) ) +
+ + + +
+ @else +
+ + + +
+ @endif + + @if($substituicoesPendentes->count() == 0) + + @endif +
+
+ + @if(count($AvalRelatParcial) >0) +
+
Avaliações de Relatórios Parciais
+
+
+ @foreach($AvalRelatParcial as $aval) +
+ +
+
+
{{\App\User::find($aval->user_id)->name}}
+
+ @if($aval->nota == null) Pendente @else Avaliação @endif
+ @if($aval->nota == null) +
Remover
+ @endif +
+ + + + + + + + + @endforeach +
+ @endif + + @if(count($AvalRelatFinal) >0) +
+
Avaliações de Relatórios Finais
+
+
+ @foreach($AvalRelatFinal as $aval) +
+ +
+
+
{{\App\User::find($aval->user_id)->name}}
+
+ @if($aval->nota == null) Pendente @else Avaliação @endif
+ @if($aval->nota == null) +
Remover
+ @endif + +
+ + + + + + + @endforeach +
+ @endif + +
+
+
+
+
+ + +
+
+
+
+
+
+
Avaliadores
+ @if($hoje >= $evento->inicioRevisao && $hoje <= $evento->fimRevisao) +
+ + + +
+ @endif + + + +
+
+ + +
+
Avaliadores - + Internos
+
+
+ @foreach($trabalho->avaliadors as $avaliador) + @if(($avaliador->tipo == 'Interno' && ($avaliador->trabalhos()->where("trabalho_id",$trabalho->id)->first()->pivot->acesso == null || $avaliador->trabalhos()->where("trabalho_id",$trabalho->id)->first()->pivot->acesso == 2 || $avaliador->trabalhos()->where("trabalho_id",$trabalho->id)->first()->pivot->acesso == 3)) + || (($avaliador->user->instituicao == "UFAPE" || $avaliador->user->instituicao == "Universidade Federal do Agreste de Pernambuco") && $avaliador->tipo == null && ($avaliador->trabalhos()->where("trabalho_id",$trabalho->id)->first()->pivot->acesso == null || $avaliador->trabalhos()->where("trabalho_id",$trabalho->id)->first()->pivot->acesso == 2 || $avaliador->trabalhos()->where("trabalho_id",$trabalho->id)->first()->pivot->acesso == 3))) +
+ +
+
+
{{$avaliador->user->name}}
+ @php + $parecerInterno = App\ParecerInterno::where([['avaliador_id',$avaliador->id],['trabalho_id',$trabalho->id]])->first(); + @endphp + @if($parecerInterno == null) Pendente @else Avaliado @endif + +
+ + Remover + +
+ + Reenviar convite + +
+ @endif + + + @endforeach +
+
+ +
+
Avaliadores - + Ad Hoc
+
+
+ @foreach($trabalho->avaliadors as $avaliador) + @if( ($avaliador->trabalhos()->where("trabalho_id",$trabalho->id)->first()->pivot->acesso == null && $avaliador->tipo == "Externo") || $avaliador->trabalhos()->where("trabalho_id",$trabalho->id)->first()->pivot->acesso == 1 || $avaliador->trabalhos()->where("trabalho_id",$trabalho->id)->first()->pivot->acesso == 3 + || (($avaliador->user->instituicao != "UFAPE" && $avaliador->user->instituicao != "Universidade Federal do Agreste de Pernambuco") && $avaliador->tipo == null && ($avaliador->trabalhos()->where("trabalho_id",$trabalho->id)->first()->pivot->acesso == null || $avaliador->trabalhos()->where("trabalho_id",$trabalho->id)->first()->pivot->acesso == 1 || $avaliador->trabalhos()->where("trabalho_id",$trabalho->id)->first()->pivot->acesso == 3))) +
+ +
+
+
{{$avaliador->user->name}}
+ + @if($avaliador->trabalhos->where('id', $trabalho->id)->first()->pivot->status == false) + Pendente @else Avaliado @endif + + +
+ + Remover + +
+ + Reenviar convite + +
+ @endif + + + + @endforeach +
+
+
+
+
+
+ + +
+
+
+
+
+
+
Recomendação da Proposta
+
+
+
+ @csrf +
+
+ Comentário + +
+
+ status=="aprovado") checked @endif> + Recomendada +
+ + status=="reprovado") checked @endif> + Não Recomendada +
+
+ + +
+
+
+
+ + Voltar + +
+
+ + + + + + + + + + +
+ + +@endsection + +@section('javascript') + + + + + + + + + + + + + + + + + + + +@endsection diff --git a/resources/views/administrador/selecionarAvaliadores.blade.php b/resources/views/administrador/selecionarAvaliadores.blade.php index ebc69aff6e16a16f1a507da3027254f3bd42d7fb..219364deb088ada868f25aa403ca0483f3f451d8 100755 --- a/resources/views/administrador/selecionarAvaliadores.blade.php +++ b/resources/views/administrador/selecionarAvaliadores.blade.php @@ -1,409 +1,415 @@ -@extends('layouts.app') - -@section('content') - -
- - -
-
- -
-

Avaliadores

-
-
- - -
-
-
-
-
-
- -
-
- -
-
-
-
-
-
- - - - - - @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 +@extends('layouts.app') + +@section('styles') + +@endsection + +@section('content') + +
+ + +
+
+ +
+

Avaliadores

+
+
+ + +
+
+
+
+
+
+ +
+
+ +
+
+
+
+
+
+ + + + + + @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 ac8c43dcb02f1bf9c5f8128f74eb46147b5e43e5..11d8b19c78b76a13dca3ca375d06c79eecb781ec 100755 --- a/resources/views/administrador/selecionarProjetos.blade.php +++ b/resources/views/administrador/selecionarProjetos.blade.php @@ -1,503 +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 }}

- -
-
- -
-
-
-
- -
-
- -
-
-
-
-
-
- - - - - @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 +@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/evento/formulario/integrantes.blade.php b/resources/views/evento/formulario/integrantes.blade.php index 06364af74c3736a4d4ba30db37283e46f4bbbcf2..27769461852ab9ea35cc7db795cea8120d07bc3e 100644 --- a/resources/views/evento/formulario/integrantes.blade.php +++ b/resources/views/evento/formulario/integrantes.blade.php @@ -1,179 +1,179 @@ -
-
-
-
-
-
-
Adicionar Integrante(s)
-
- -
- - - -
-
-
-
-
-
-
-
-
- - - - - - - - - - - - - - - \ No newline at end of file diff --git a/resources/views/evento/submeterTrabalho.blade.php b/resources/views/evento/submeterTrabalho.blade.php index 07e80cd2609c5268ca97af481bf32220a46f7465..7161843276758f37d5e795caaa5462e1bb84677f 100755 --- a/resources/views/evento/submeterTrabalho.blade.php +++ b/resources/views/evento/submeterTrabalho.blade.php @@ -1,759 +1,759 @@ -@extends('layouts.app') - -@section('content') - -
- {{-- action="{{route('trabalho.store')}}" --}} -
- @csrf - - -
- -
- - @include('evento.formulario.projeto') - - - @include('evento.formulario.proponente') - - - @include('evento.formulario.participantes') - - @if($edital->natureza_id == 3) - @include('evento.formulario.integrantes') - @endif - - @include('evento.formulario.anexos') - - - @include('evento.formulario.finalizar') - - - - -
-
-
-
- @component('componentes.participante', ['enum_turno' => $enum_turno,'estados' => $estados, ]) - - @endcomponent -
- - - -
- - - -@endsection - -@section('javascript') - - - - - - - - - +@extends('layouts.app') + +@section('content') + +
+ {{-- action="{{route('trabalho.store')}}" --}} +
+ @csrf + + +
+ +
+ + @include('evento.formulario.projeto') + + + @include('evento.formulario.proponente') + + + @include('evento.formulario.participantes') + + @if($edital->natureza_id == 3) + @include('evento.formulario.integrantes') + @endif + + @include('evento.formulario.anexos') + + + @include('evento.formulario.finalizar') + + + + +
+
+
+
+ @component('componentes.participante', ['enum_turno' => $enum_turno,'estados' => $estados, ]) + + @endcomponent +
+ + + +
+ + + +@endsection + +@section('javascript') + + + + + + + + + @endsection \ No newline at end of file diff --git a/resources/views/layouts/app.blade.php b/resources/views/layouts/app.blade.php index b1aabd1ba1fe8075e5127fdc61f78683ecaf74d8..81e82ca406ff2815010b24fdf7e033288334d335 100755 --- a/resources/views/layouts/app.blade.php +++ b/resources/views/layouts/app.blade.php @@ -1,337 +1,338 @@ - - - - - - - - - - {{ config('app.name', 'Laravel') }} - - - - - - - - - - - {{-- --}} - - - - - - - - - - -
-
- {{-- Navbar --}} - -
-
- @hasSection ('sidebar') - @yield('sidebar') - @endif - - {{--
--}} - @yield('content') - {{--
--}} -
-
- @hasSection ('javascript') - @yield('javascript') - @else - @endif - - - - - -
-
-
-
- Logo -
-
-
Desenvolvido por:
-
-
- Logo -
-
- Logo -
-
-
-
-
Redes sociais:
-
-
Logo
-
Logo
-
-
Logo lmts@ufape.edu.br
-
-
-
-
- {{-- --}} - - - - - + + + + + + + + + + {{ config('app.name', 'Laravel') }} + + + + + + + + + + + {{-- --}} + + + + + @yield('styles') + + + + + + +
+
+ {{-- Navbar --}} + +
+
+ @hasSection ('sidebar') + @yield('sidebar') + @endif + + {{--
--}} + @yield('content') + {{--
--}} +
+
+ @hasSection ('javascript') + @yield('javascript') + @else + @endif + + + + + +
+
+
+
+ Logo +
+
+
Desenvolvido por:
+
+
+ Logo +
+
+ Logo +
+
+
+
+
Redes sociais:
+
+
Logo
+
Logo
+
+
Logo lmts@ufape.edu.br
+
+
+
+
+ {{-- --}} + + + + + \ No newline at end of file diff --git a/resources/views/projeto/editaFormulario/integrantes.blade.php b/resources/views/projeto/editaFormulario/integrantes.blade.php index 9ed642d1092dc1d491808037dcbfb9a0ef04cd49..af66dcb074cdba97e3912848fba8fe38f71012e3 100644 --- a/resources/views/projeto/editaFormulario/integrantes.blade.php +++ b/resources/views/projeto/editaFormulario/integrantes.blade.php @@ -1,201 +1,201 @@ -
-
-
-
-
-
-
Integrante(s)
-
- -
- - - -
-
-
-
-
-
-
-
-
- - - - - - - - - - - - \ No newline at end of file diff --git a/resources/views/projeto/editar.blade.php b/resources/views/projeto/editar.blade.php index b14d83afe44b46661f3e79e8711176cbc56e8b13..c60af08044b5fa723df2b5dd3448622329e30e03 100755 --- a/resources/views/projeto/editar.blade.php +++ b/resources/views/projeto/editar.blade.php @@ -1,775 +1,775 @@ -@extends('layouts.app') - -@section('content') - -
- {{-- action="{{route('trabalho.store')}}" --}} -
- @csrf - - -
- {{-- @dd($errors->get('name.*')) --}} - {{-- @dd($errors->has('cpf.*')) --}} - {{-- @dd($errors->getBags()['default']->keys()) --}} - @if (session('mensagem')) - - @endif - - -
- - @include('projeto.editaFormulario.projeto') - - - @include('projeto.editaFormulario.proponente') - - @include('projeto.editaFormulario.participantes') - - @if($edital->natureza_id == 3) - @include('projeto.editaFormulario.integrantes') - @endif - - @include('projeto.editaFormulario.anexos') - - @include('projeto.editaFormulario.finalizar') - - -
-
-
-
- @component('componentes.participante', ['enum_turno' => $enum_turno,'estados' => $estados, ]) - - @endcomponent -
- - - -
- - - -@endsection - -@section('javascript') - - - - - - - - - +@extends('layouts.app') + +@section('content') + +
+ {{-- action="{{route('trabalho.store')}}" --}} +
+ @csrf + + +
+ {{-- @dd($errors->get('name.*')) --}} + {{-- @dd($errors->has('cpf.*')) --}} + {{-- @dd($errors->getBags()['default']->keys()) --}} + @if (session('mensagem')) + + @endif + + +
+ + @include('projeto.editaFormulario.projeto') + + + @include('projeto.editaFormulario.proponente') + + @include('projeto.editaFormulario.participantes') + + @if($edital->natureza_id == 3) + @include('projeto.editaFormulario.integrantes') + @endif + + @include('projeto.editaFormulario.anexos') + + @include('projeto.editaFormulario.finalizar') + + +
+
+
+
+ @component('componentes.participante', ['enum_turno' => $enum_turno,'estados' => $estados, ]) + + @endcomponent +
+ + + +
+ + + +@endsection + +@section('javascript') + + + + + + + + + @endsection \ No newline at end of file diff --git a/resources/views/projeto/formularioVisualizar/integrantes.blade.php b/resources/views/projeto/formularioVisualizar/integrantes.blade.php index 7c9e552c64acee39a40bde69e81a514af2d4f976..cef333f3bc76acdc72b4a54d4e42a48b5e359372 100644 --- a/resources/views/projeto/formularioVisualizar/integrantes.blade.php +++ b/resources/views/projeto/formularioVisualizar/integrantes.blade.php @@ -1,28 +1,28 @@ - -
-
-
-
-
-
Integrantes
-
-
- -
- @foreach($trabalhos_user as $trabalho_user) -
- -
-
-
Nome: {{ $trabalho_user->user->name }}
-
Função: {{ $trabalho_user->funcao->nome }}
-
- - @endforeach -
-
-
-
-
- - + +
+
+
+
+
+
Integrantes
+
+
+ +
+ @foreach($trabalhos_user as $trabalho_user) +
+ +
+
+
Nome: {{ $trabalho_user->user->name }}
+
Função: {{ $trabalho_user->funcao->nome }}
+
+ + @endforeach +
+
+
+
+
+ + diff --git a/resources/views/projeto/visualizar.blade.php b/resources/views/projeto/visualizar.blade.php index 9fbbec6dd0a2b6f0de694a654c03c2dedddf45c5..af1014ae824ec6b7cfa0c58814811996b95ef539 100755 --- a/resources/views/projeto/visualizar.blade.php +++ b/resources/views/projeto/visualizar.blade.php @@ -1,778 +1,778 @@ -@extends('layouts.app') - -@section('content') - -
- {{-- action="{{route('trabalho.store')}}" --}} -
- @csrf - - -
- @if (session('mensagem')) - - @endif - @if($errors->any()) -
- {{$errors->first()}} -
- @endif - -
- - @component('projeto.formularioVisualizar.projeto2', - ['edital' => $edital, 'projeto' => $projeto]) - @endcomponent - - @component('projeto.formularioVisualizar.proponente2', ['projeto' => $projeto, 'edital' => $edital, 'areasTematicas' => $areasTematicas]) - @endcomponent - - @component('projeto.formularioVisualizar.anexos2', ['edital' => $edital,'projeto' => $projeto]) - @endcomponent - - @component('projeto.formularioVisualizar.participantes2', ['projeto' => $projeto, 'edital' => $edital]) - @endcomponent - @if($edital->natureza_id == 3) - @component('projeto.formularioVisualizar.integrantes', ['projeto' => $projeto, 'edital' => $edital, 'trabalhos_user' => $trabalhos_user]) - @endcomponent - @endif - @component('projeto.formularioVisualizar.relatorio',['edital' => $edital,'projeto' => $projeto,'flagSubstituicao' =>$flagSubstituicao]) - @endcomponent - - @component('projeto.formularioVisualizar.resultado2', - ['projeto' => $projeto]) - @endcomponent - - {{-- @component('projeto.formularioVisualizar.finalizar', ['projeto' => $projeto]) - @endcomponent --}} -
- -
- Voltar -
- -
-
- -
- @component('componentes.participante', ['enum_turno' => $enum_turno,'estados' => $estados, ]) - - @endcomponent -
- - - -
- - - -@endsection - -@section('javascript') - - - - - - - - - - -@endsection +@extends('layouts.app') + +@section('content') + +
+ {{-- action="{{route('trabalho.store')}}" --}} +
+ @csrf + + +
+ @if (session('mensagem')) + + @endif + @if($errors->any()) +
+ {{$errors->first()}} +
+ @endif + +
+ + @component('projeto.formularioVisualizar.projeto2', + ['edital' => $edital, 'projeto' => $projeto]) + @endcomponent + + @component('projeto.formularioVisualizar.proponente2', ['projeto' => $projeto, 'edital' => $edital, 'areasTematicas' => $areasTematicas]) + @endcomponent + + @component('projeto.formularioVisualizar.anexos2', ['edital' => $edital,'projeto' => $projeto]) + @endcomponent + + @component('projeto.formularioVisualizar.participantes2', ['projeto' => $projeto, 'edital' => $edital]) + @endcomponent + @if($edital->natureza_id == 3) + @component('projeto.formularioVisualizar.integrantes', ['projeto' => $projeto, 'edital' => $edital, 'trabalhos_user' => $trabalhos_user]) + @endcomponent + @endif + @component('projeto.formularioVisualizar.relatorio',['edital' => $edital,'projeto' => $projeto,'flagSubstituicao' =>$flagSubstituicao]) + @endcomponent + + @component('projeto.formularioVisualizar.resultado2', + ['projeto' => $projeto]) + @endcomponent + + {{-- @component('projeto.formularioVisualizar.finalizar', ['projeto' => $projeto]) + @endcomponent --}} +
+ +
+ Voltar +
+ +
+
+ +
+ @component('componentes.participante', ['enum_turno' => $enum_turno,'estados' => $estados, ]) + + @endcomponent +
+ + + +
+ + + +@endsection + +@section('javascript') + + + + + + + + + + +@endsection diff --git a/routes/web.php b/routes/web.php index 4a7de883c29887d4d301643682d0b57cda08d6fc..863fc3b8373b52f1461edc1fb73ba7d285c6f437 100755 --- a/routes/web.php +++ b/routes/web.php @@ -1,339 +1,339 @@ -id; - Notification::send(Auth::user(), new SubmissaoNotification($id)); - - return 'Ok'; - // Auth::user()->notify(new SubmissaoTrabalho('teste')); -}); - -Route::get('/baixarModeloAvaliacao', 'AdministradorController@baixarModeloAvaliacao')->name('baixarModelo'); -Route::get('/', 'UserController@index')->name('home-user'); -Route::get('/', 'UserController@inicial')->name('inicial'); -Route::get('/home', 'HomeController@index')->name('home')->middleware('verified'); - -Route::get('/evento/visualizar/naologado/{id}', 'EventoController@showNaoLogado')->name('evento.visualizarNaoLogado'); -Route::get('/editais/home', 'EventoController@index')->name('coord.home'); -Route::get('/perfil', 'UserController@perfil')->name('perfil'); -Auth::routes(['verify' => true]); - -//Rota para avaliador atualizar perfil, deixando de ser usuario temporario -Route::post('/perfil-usuario', 'UserController@editarPerfil')->name('perfil.edit')->middleware(['auth', 'verified']); - -Route::group(['middleware' => ['isTemp', 'auth', 'verified']], function () { - //######### Proponente ######################################## - Route::get('/proponente/index', 'ProponenteController@index')->name('proponente.index'); - Route::get('/proponente/cadastro', 'ProponenteController@create')->name('proponente.create'); - Route::post('/proponente/cadastro', 'ProponenteController@store')->name('proponente.store'); - Route::get('/proponente/editais', 'ProponenteController@editais')->name('proponente.editais'); - Route::get('/projetos-submetidos', 'ProponenteController@projetosDoProponente')->name('proponente.projetos'); - Route::get('/projetos-edital/{id}', 'ProponenteController@projetosEdital')->name('proponente.projetosEdital')->middleware('auth'); - Route::post('/proponente/edital/{edital_id}/projeto/{projeto_id}/solicitar_desligamento/{participante_id}', 'ProponenteController@solicitarDesligamento')->name('proponente.solicitar.desligamento'); - - //######## Rotas Avaliador #################################### - Route::prefix('avaliacaoRelatorio')->name('avaliacaoRelatorio.')->group(function () { - Route::post('/atribuirAvaliadorPlano', 'AvaliacaoRelatorioController@atribuicaoAvaliador')->name('atribuicao.avaliador')->middleware('checkRoles:coordenador,administrador'); - Route::get('/removerAvaliadorPlano/{id}', 'AvaliacaoRelatorioController@removerAvaliador')->name('remover.avaliador')->middleware('checkRoles:coordenador,administrador'); - }); - Route::get('/trabalho/planos/avaliacao/{id}', 'AvaliacaoRelatorioController@listarUser')->name('planos.avaliacoesUser'); - Route::get('/trabalho/planos/avaliacoes/index', 'AvaliacaoRelatorioController@index')->name('planos.avaliacoes.index'); - Route::post('/trabalho/planos/avaliacoes/criar', 'AvaliacaoRelatorioController@criar')->name('planos.avaliacoesUser.criar'); - - Route::prefix('areaTematica')->name('areaTematica.')->group(function () { - Route::get('/editar/{id}', 'AreaTematicaController@edit')->name('edit')->middleware('checkAdministrador'); - Route::post('/atualizar/{id}', 'AreaTematicaController@update')->name('atualizar')->middleware('checkAdministrador'); - Route::post('/excluir/{id}', 'AreaTematicaController@destroy')->name('deletar')->middleware('checkAdministrador'); - Route::post('/salvar', 'AreaTematicaController@store')->name('salvar')->middleware('checkAdministrador'); - Route::get('/nova', 'AreaTematicaController@create')->name('criar')->middleware('checkAdministrador'); - }); - - Route::prefix('objetivoDeDenvolvimentoSustentavel')->name('objetivoDeDenvolvimentoSustentavel.')->group(function () { - Route::get('/editar/{id}', 'ObjetivoDeDesenvolvimentoSustentavelController@edit')->name('edit')->middleware('checkAdministrador'); - Route::post('/atualizar/{id}', 'ObjetivoDeDesenvolvimentoSustentavelController@update')->name('atualizar')->middleware('checkAdministrador'); - Route::post('/excluir/{id}', 'ObjetivoDeDesenvolvimentoSustentavelController@destroy')->name('deletar')->middleware('checkAdministrador'); - Route::post('/salvar', 'ObjetivoDeDesenvolvimentoSustentavelController@store')->name('salvar')->middleware('checkAdministrador'); - Route::get('/novo', 'ObjetivoDeDesenvolvimentoSustentavelController@create')->name('criar')->middleware('checkAdministrador'); - }); - - //######### Rotas Administrador ################################# - Route::get('/perfil-usuario', 'UserController@minhaConta')->name('user.perfil')->middleware(['auth', 'verified']); - - //######## Rotas Avaliador #################################### - Route::prefix('avaliador')->name('avaliador.')->group(function () { - Route::get('/index', 'AvaliadorController@index')->name('index')->middleware('auth'); - Route::get('/trabalhos', 'AvaliadorController@visualizarTrabalhos')->name('visualizarTrabalho')->middleware('auth'); - Route::get('/planos', 'AvaliadorController@listarPlanos')->name('listarPlanos')->middleware('auth'); - Route::post('/parecer', 'AvaliadorController@parecer')->name('parecer')->middleware('auth'); - Route::post('/parecer/plano', 'AvaliadorController@parecerPlano')->name('parecer.plano')->middleware('auth'); - Route::get('/editais', 'AvaliadorController@editais')->name('editais')->middleware('auth'); - Route::post('/Enviarparecer', 'AvaliadorController@enviarParecer')->name('enviarParecer')->middleware('auth'); - Route::post('/Enviarparecer/plano', 'AvaliadorController@enviarParecerPlano')->name('enviarParecerPlano')->middleware('auth'); - Route::get('/Resposta', 'AvaliadorController@conviteResposta')->name('conviteResposta')->middleware('auth'); - - Route::post('/parecerInterno', 'AvaliadorController@parecerInterno')->name('parecerInterno')->middleware('auth'); - Route::post('/EnviarparecerInterno', 'AvaliadorController@enviarParecerInterno')->name('enviarParecerInterno')->middleware('auth'); - }); - - Route::get('/notificacao/listar', 'NotificacaoController@listar')->name('notificacao.listar')->middleware('auth'); - Route::get('/notificacao/lista', 'NotificacaoController@listarTrab')->name('notificacao.listarTrab')->middleware('auth'); - Route::get('/notificacao/ler/{id}', 'NotificacaoController@ler')->name('notificacao.ler'); - - Route::get('/home/edital', 'EventoController@index')->name('visualizarEvento'); - - // ######## rotas de teste ##################################### - - Route::get('/coordenador/evento/detalhes', 'EventoController@detalhes')->name('coord.detalhesEvento'); - - //####### Visualizar trabalhos do usuário ###################### - Route::get('/user/trabalhos', 'UserController@meusTrabalhos')->name('user.meusTrabalhos'); - - //######### Cadastrar Comissão ################################### - Route::post('/evento/cadastrarComissao', 'ComissaoController@store')->name('cadastrar.comissao'); - Route::post('/evento/cadastrarCoordComissao', 'ComissaoController@coordenadorComissao')->name('cadastrar.coordComissao'); - - //######### rota downloadArquivo ################################ - Route::get('/downloadArquivo', 'HomeController@downloadArquivo')->name('download'); - - //######### Area do participante ############################### - Route::get('/participante', 'EventoController@areaParticipante')->name('area.participante'); - Route::get('participante/editais', 'ParticipanteController@editais')->name('participante.editais'); - //######### Participante ######################################## - Route::get('/participante/index', 'ParticipanteController@index')->name('participante.index'); - Route::get('/participante/edital/{id}', 'ParticipanteController@edital')->name('participante.edital'); - - //######### Plano de Trablho ######################################## - Route::prefix('/plano/trabalho')->name('plano.trabalho.')->group(function () { - Route::get('/index/{evento_id}', 'PlanoTrabalhoController@index')->name('index'); - Route::get('/selecionar/{evento_id}', 'PlanoTrabalhoController@selecionarPlanos')->name('selecionarPlanos'); - Route::post('/atribuicao', 'PlanoTrabalhoController@atribuicao')->name('atribuicao'); - }); - - //########## Area da comissao ################################### - Route::get('/comissoes', 'EventoController@listComissao')->name('comissoes'); - Route::get('/area/comissao', 'EventoController@listComissaoTrabalhos')->name('area.comissao'); - - //########### Deletar Comissão ################################### - Route::delete('/evento/apagar-comissao/', 'ComissaoController@destroy')->name('delete.comissao'); - Route::post('/evento/numTrabalhos', 'EventoController@numTrabalhos')->name('trabalho.numTrabalhos'); - - //########## Area ########################################### - Route::post('/area/criar', 'AreaController@store')->name('area.store'); - - //########### Deletar Area ###################################### - Route::delete('/area/deletar/{id}', 'AreaController@destroy')->name('area.delete'); - - //######### Deletar Revisores ############################## - Route::delete('/revisor/apagar', 'RevisorController@destroy')->name('revisor.delete'); - - //######### AreaModalidade ################################### - Route::post('/areaModalidade/criar', 'AreaModalidadeController@store')->name('areaModalidade.store'); - - //######### Trabalho ######################################## - Route::get('/trabalho/submeter/{id}', 'TrabalhoController@index')->name('trabalho.index'); - // Route::get( '/trabalho/visualizar/{id}','TrabalhoController@show' )->name('trabalho.show'); - Route::post('/trabalho/novaVersao', 'TrabalhoController@novaVersao')->name('trabalho.novaVersao'); - Route::post('/trabalho/criar', 'TrabalhoController@salvar')->name('trabalho.store'); - Route::post('/trabalho/criarRascunho', 'TrabalhoController@storeParcial')->name('trabalho.storeParcial'); - Route::get('/edital/{id}/projetos', 'TrabalhoController@projetosDoEdital')->name('projetos.edital'); - Route::get('/projeto/visualizar/{id}', 'TrabalhoController@show')->name('trabalho.show'); - Route::get('/projeto/{id}/editar', 'TrabalhoController@edit')->name('trabalho.editar'); - - Route::post('/projeto/buscarUsuario', 'TrabalhoController@buscarUsuario')->name('trabalho.buscarUsuario'); - - Route::post('/projeto/{id}/atualizar', 'TrabalhoController@update')->name('trabalho.update'); - Route::get('/projeto/{id}/excluir', 'TrabalhoController@destroy')->name('trabalho.destroy'); - Route::get('/projeto/{id}/excluirParticipante', 'TrabalhoController@excluirParticipante')->name('trabalho.excluirParticipante'); - Route::post('/projeto/{trabalho}/solicitarCertificado', 'TrabalhoController@solicitarCertificado')->name('trabalho.solicitarCertificado'); - Route::get('/projeto/exportar/{id}', 'TrabalhoController@exportProjeto')->name('exportar.projeto'); - Route::get('/projeto/substituirParticipante', 'TrabalhoController@telaTrocaPart')->name('trabalho.trocaParticipante'); - Route::post('/projeto/substituirParticipante', 'TrabalhoController@trocaParticipante')->name('trabalho.infoTrocaParticipante'); - Route::get('/showSubstituicoes', 'TrabalhoController@telaShowSubst')->name('trabalho.telaAnaliseSubstituicoes')->middleware('checkRoles:coordenador,administrador'); - Route::post('/aprovarSubstituicao', 'TrabalhoController@aprovarSubstituicao')->name('trabalho.aprovarSubstituicao'); - Route::post('/aprovarProposta/{id}', 'TrabalhoController@aprovarProposta')->name('trabalho.aprovarProposta'); - - Route::post('/certificado/{certificado}', 'CertificadoController@update')->name('certificado.update'); - - //########## Bolsas - Route::get('/bolsas', 'ParticipanteController@listarParticipanteEdital')->name('bolsas.listar'); - Route::post('/bolsas/alteracao', 'ParticipanteController@alterarBolsa')->name('bolsa.alterar'); - - //########## Arquivar Projeto e Plano - Route::get('/arquivar/projeto', 'TrabalhoController@arquivar')->name('projeto.arquivar'); - Route::get('/arquivar/plano', 'ArquivoController@arquivar')->name('arquivo.arquivar'); - - //######### Imprimir Resultado ################################# - Route::get('/usuarios/showResultados/imprimir', 'AdministradorController@imprimirResultados')->name('resultados.gerar'); - - //########## Relatórios - Route::get('/projeto/planosTrabalho/{id}', 'ArquivoController@listar')->name('planos.listar'); - Route::post('/projeto/planosTrabalho/anexarRelatorio', 'ArquivoController@anexarRelatorio')->name('planos.anexar.relatorio'); - - //########## Documentação Complementar - Route::get('/documentacaoComplementar', 'ParticipanteController@listarParticipanteProjeto')->name('docComplementar.listar'); - Route::post('/documentacaoComplementar/enviar', 'ParticipanteController@atualizarDocComplementar')->name('docComplementar.enviar'); - - //######### Atribuição ####################################### - Route::get('/atribuir', 'AtribuicaoController@distribuicaoAutomatica')->name('distribuicao'); - Route::get('/atribuirPorArea', 'AtribuicaoController@distribuicaoPorArea')->name('distribuicaoAutomaticaPorArea'); - Route::post('/distribuicaoManual', 'AtribuicaoController@distribuicaoManual')->name('distribuicaoManual'); - Route::post('/removerAtribuicao', 'AtribuicaoController@deletePorRevisores')->name('atribuicao.delete'); - - //########## Revisores ######################################### - Route::post('/revisor/criar', 'RevisorController@store')->name('revisor.store'); - Route::get('/revisor/listarTrabalhos', 'RevisorController@indexListarTrabalhos')->name('revisor.listarTrabalhos'); - Route::post('/revisor/email', 'RevisorController@enviarEmailRevisor')->name('revisor.email'); - Route::post('/revisor/emailTodos', 'RevisorController@enviarEmailTodosRevisores')->name('revisor.emailTodos'); - - //########## Rotas de download de documentos ########################### - Route::get('/baixar/anexo-projeto/{id}', 'TrabalhoController@baixarAnexoProjeto')->name('baixar.anexo.projeto'); - Route::get('/baixar/anexo-consu/{id}', 'TrabalhoController@baixarAnexoConsu')->name('baixar.anexo.consu'); - Route::get('/baixar/anexo-comite/{id}', 'TrabalhoController@baixarAnexoComite')->name('baixar.anexo.comite'); - Route::get('/baixar/anexo-justificativa/{id}', 'TrabalhoController@baixarAnexoJustificativa')->name('baixar.anexo.justificativa'); - Route::get('/baixar/anexo-lattes/{id}', 'TrabalhoController@baixarAnexoLattes')->name('baixar.anexo.lattes'); - Route::get('/baixar/anexo-planilha/{id}', 'TrabalhoController@baixarAnexoPlanilha')->name('baixar.anexo.planilha'); - Route::get('/baixar/plano-de-trabalho/{id}', 'ArquivoController@baixarPlano')->name('baixar.plano'); - Route::get('/baixar/anexoGrupoPesquisa/{id}', 'TrabalhoController@baixarAnexoGrupoPesquisa')->name('baixar.anexoGrupoPesquisa'); - Route::get('/baixar/anexo-temp/{eventoId}/{nomeAnexo}', 'TrabalhoController@baixarAnexoTemp')->name('baixar.anexo.temp'); - Route::get('/baixar/evento-temp/{nomeAnexo}', 'TrabalhoController@baixarEventoTemp')->name('baixar.evento.temp'); - Route::get('/baixar/documentosParticipante', 'ParticipanteController@baixarDocumento')->name('baixar.documentosParticipante'); - Route::get('/baixar/anexoDocExtra/{id}', 'TrabalhoController@baixarAnexoDocExtra')->name('baixar.anexo.docExtra'); -}); - -Route::get('/baixar/edital/{id}', 'EventoController@baixarEdital')->name('baixar.edital'); -Route::get('/baixar/modelos/{id}', 'EventoController@baixarModelos')->name('baixar.modelos'); - -Route::prefix('usuarios')->name('admin.')->group(function () { - //######### Rotas da administração dos usuários #################### - Route::get('/home-admin', 'AdministradorController@index')->name('index')->middleware('checkAdministrador'); - Route::get('/usuarios', 'AdministradorController@usuarios')->name('usuarios')->middleware('checkAdministrador'); - Route::get('/novo', 'AdministradorController@create')->name('user.create')->middleware('checkAdministrador'); - Route::post('/salvar-novo', 'AdministradorController@salvar')->name('user.store')->middleware('checkAdministrador'); - Route::get('/editar/{id}', 'AdministradorController@edit')->name('user.edit')->middleware('checkAdministrador'); - Route::post('/editar/atualizar/{id}', 'AdministradorController@update')->name('user.update')->middleware('checkAdministrador'); - Route::post('/editar/deletar/{id}', 'AdministradorController@destroy')->name('user.destroy')->middleware('checkAdministrador'); - Route::get('/editais', 'AdministradorController@editais')->name('editais'); - Route::get('/atribuir', 'AdministradorController@atribuir')->name('atribuir'); - Route::get('/selecionarAvaliador', 'AdministradorController@selecionar')->name('selecionar'); - Route::get('/selecionarProjetos', 'AdministradorController@projetos')->name('projetos'); - Route::post('/adicionarAvalEvento', 'AdministradorController@adicionar')->name('adicionar'); - Route::post('/removerAvalEvento', 'AdministradorController@remover')->name('remover'); - Route::get('/removerProjAval', 'AdministradorController@removerProjAval')->name('removerProjAval'); - Route::post('/atribuirAvaliadorProjeto', 'AdministradorController@atribuicaoProjeto')->name('atribuicao.projeto'); - Route::post('/enviarConviteEAtribuirProjeto', 'AdministradorController@enviarConviteEAtribuir')->name('convite.atribuicao.projeto'); - Route::get('/reenviarConviteAtribuicaoProjeto', 'AdministradorController@reenviarConviteAtribuicaoProjeto')->name('reenviar.atribuicao.projeto'); - Route::post('/enviarConviteAvaliador', 'AdministradorController@enviarConvite')->name('enviarConvite'); - Route::post('/reenviarConviteAvaliador', 'AdministradorController@reenviarConvite')->name('reenviarConvite'); - Route::post('/visualizarParecer', 'AdministradorController@visualizarParecer')->name('visualizarParecer'); - Route::get('/visualizarParecer', 'AdministradorController@visualizarParecer')->name('visualizarParecer'); - Route::get('/visualizarParecerInterno', 'AdministradorController@visualizarParecerInterno')->name('visualizarParecerInterno'); - Route::get('/pareceresProjetos', 'AdministradorController@pareceres')->name('pareceres'); - Route::get('/analisarProjetos/{column?}', 'AdministradorController@analisar')->name('analisar')->middleware('checkRoles:coordenador,administrador'); - Route::get('/analisarProposta', 'AdministradorController@analisarProposta')->name('analisarProposta')->middleware('checkRoles:coordenador,administrador'); - Route::get('/showProjetos', 'AdministradorController@showProjetos')->name('showProjetos'); - Route::get('/showResultados', 'AdministradorController@showResultados')->name('showResultados')->middleware(['auth', 'verified']); -}); - -Route::prefix('naturezas')->group(function () { - //########### Rotas das naturezas ############################### - - Route::get('/', 'AdministradorController@naturezas')->name('admin.naturezas')->middleware('checkAdministrador'); - Route::get('/index', 'NaturezaController@index')->name('natureza.index')->middleware('checkAdministrador'); - Route::get('/nova', 'NaturezaController@create')->name('natureza.criar')->middleware('checkAdministrador'); - Route::post('/salvar', 'NaturezaController@store')->name('natureza.salvar')->middleware('checkAdministrador'); - Route::get('/detalhes/{id}', 'NaturezaController@show')->name('natureza.show')->middleware('checkAdministrador'); - Route::get('/editar/{id}', 'NaturezaController@edit')->name('natureza.editar')->middleware('checkAdministrador'); - Route::get('/atualizar/{id}', 'NaturezaController@update')->name('natureza.atualizar')->middleware('checkAdministrador'); - Route::get('/excluir/{id}', 'NaturezaController@destroy')->name('natureza.deletar')->middleware('checkAdministrador'); - - //########### Rotas das grandes areas ############################## - Route::get('/grande-area', 'GrandeAreaController@index')->name('grandearea.index')->middleware('checkAdministrador'); - Route::get('/grande-area/nova', 'GrandeAreaController@create')->name('grandearea.criar')->middleware('checkAdministrador'); - Route::post('/grande-area/salvar', 'GrandeAreaController@store')->name('grandearea.salvar')->middleware('checkAdministrador'); - Route::get('/grande-area/detalhes/{id}', 'GrandeAreaController@show')->name('grandearea.show')->middleware('checkAdministrador'); - Route::get('/grande-area/editar/{id}', 'GrandeAreaController@edit')->name('grandearea.editar')->middleware('checkAdministrador'); - Route::post('/grande-area/atualizar/{id}', 'GrandeAreaController@update')->name('grandearea.atualizar')->middleware('checkAdministrador'); - Route::post('/grande-area/excluir/{id}', 'GrandeAreaController@destroy')->name('grandearea.deletar')->middleware('checkAdministrador'); - - //#### Rotas das areas, id's de nova e salvar são os ids da grande área a qual a nova área pertence #### - Route::get('/areas', 'AreaController@index')->name('area.index')->middleware('checkAdministrador'); - Route::get('/{id}/area/nova', 'AreaController@create')->name('area.criar')->middleware('checkAdministrador'); - Route::post('/{id}/area/salvar', 'AreaController@store')->name('area.salvar')->middleware('checkAdministrador'); - Route::get('/area/detalhes/{id}', 'AreaController@show')->name('area.show')->middleware('checkAdministrador'); - Route::get('/area/editar/{id}', 'AreaController@edit')->name('area.editar')->middleware('checkAdministrador'); - Route::post('/area/atualizar/{id}', 'AreaController@update')->name('area.atualizar')->middleware('checkAdministrador'); - Route::post('/area/excluir/{id}', 'AreaController@destroy')->name('area.deletar')->middleware('checkAdministrador'); - Route::post('/areas/', 'AreaController@consulta')->name('area.consulta'); - Route::post('/avalConExterno/', 'AvaliadorController@consultaExterno')->name('aval.consultaExterno'); - Route::post('/avalConInterno/', 'AvaliadorController@consultaInterno')->name('aval.consultaInterno'); - - //### Rotas das subareas, id's de nova e salvar são os ids da área a qual a nova subárea pertence ##### - Route::get('/subareas', 'SubAreaController@index')->name('subarea.index')->middleware('checkAdministrador'); - Route::get('/{id}/subarea/nova', 'SubAreaController@create')->name('subarea.criar')->middleware('checkAdministrador'); - Route::post('/{id}/subarea/salvar', 'SubAreaController@store')->name('subarea.salvar')->middleware('checkAdministrador'); - Route::get('/subarea/detalhes/{id}', 'SubAreaController@show')->name('subarea.show')->middleware('checkAdministrador'); - Route::get('/subarea/editar/{id}', 'SubAreaController@edit')->name('subarea.editar')->middleware('checkAdministrador'); - Route::post('/subarea/atualizar/{id}', 'SubAreaController@update')->name('subarea.atualizar')->middleware('checkAdministrador'); - Route::post('/subarea/excluir/{id}', 'SubAreaController@destroy')->name('subarea.deletar')->middleware('checkAdministrador'); - Route::post('/subarea/', 'SubAreaController@consulta')->name('subarea.consulta'); - - Route::post('/funcao-participante/store', 'ParticipanteController@storeFuncao')->name('funcao_participante.store'); - Route::post('/funcao-participante/{id}/update', 'ParticipanteController@updateFuncao')->name('funcao_participante.update'); - Route::get('/funcao-participante/{id}/destroy', 'ParticipanteController@destroyFuncao')->name('funcao_participante.destroy'); -}); - -//############ Evento ############################################## -Route::prefix('evento')->name('evento.')->group(function () { - Route::get('/criar', 'EventoController@create')->name('criar')->middleware('checkAdministrador'); - Route::post('/criar', 'EventoController@store')->name('criar')->middleware('checkAdministrador'); - Route::get('/visualizar/{id}', 'EventoController@show')->name('visualizar')->middleware('auth'); - Route::get('/listar', 'EventoController@listar')->name('listar')->middleware('auth'); - Route::delete('/excluir/{id}', 'EventoController@destroy')->name('deletar')->middleware('checkRoles:coordenador,administrador'); - Route::get('/editar/{id}', 'EventoController@edit')->name('editar')->middleware('checkRoles:coordenador,administrador'); - Route::post('/editar/{id}', 'EventoController@update')->name('update')->middleware('checkRoles:coordenador,administrador'); - Route::post('/setResumo', 'EventoController@setResumo')->name('setResumo')->middleware('checkAdministrador'); - Route::post('/setFoto', 'EventoController@setFotoEvento')->name('setFotoEvento')->middleware('checkAdministrador'); -}); - -//########## Rotas de administrador responsavel (Reitor ou pro-reitor)######## -Route::prefix('adminResp')->name('adminResp.')->group(function () { - Route::get('/index', 'AdministradorResponsavelController@index')->name('index'); - Route::get('/editais', 'AdministradorResponsavelController@editais')->name('editais'); - Route::get('/usuarios', 'AdministradorResponsavelController@usuarios')->name('usuarios'); - Route::get('/atribuir', 'AdministradorResponsavelController@atribuirPermissao')->name('atribuir'); - Route::post('/atribuir', 'AdministradorResponsavelController@atribuirPermissao')->name('atribuir'); - Route::post('/verPermissao', 'AdministradorResponsavelController@verPermissao')->name('verPermissao'); -}); - -//########### Rotas Coordenador ################################## -Route::prefix('coordenador')->name('coordenador.')->group(function () { - Route::get('/index', 'CoordenadorComissaoController@index')->name('index'); - Route::get('/editais', 'CoordenadorComissaoController@editais')->name('editais'); - Route::get('/usuarios', 'CoordenadorComissaoController@usuarios')->name('usuarios'); - Route::get('/listarCoord', 'CoordenadorComissaoController@coordenadorComite')->name('coord'); - Route::get('/listarAvaliador', 'CoordenadorComissaoController@avaliador')->name('avaliador'); - Route::get('/listarProponente', 'CoordenadorComissaoController@proponente')->name('proponente'); - Route::get('/listarParticipante', 'CoordenadorComissaoController@participante')->name('participante'); - Route::get('/listarTrabalhos', 'CoordenadorComissaoController@listarTrabalhos')->name('listarTrabalhos'); - Route::get('/detalhesEdital/{evento_id}', 'CoordenadorComissaoController@detalhesEdital')->name('detalhesEdital'); - Route::post('/retornoDetalhes', 'CoordenadorComissaoController@retornoDetalhes')->name('retornoDetalhes'); - Route::post('/atribuirAvaliadorTrabalho', 'TrabalhoController@atribuirAvaliadorTrabalho')->name('atribuirAvaliadorTrabalho'); - Route::post('/atribuir', 'TrabalhoController@atribuir')->name('atribuir'); - Route::post('/atribuir', 'TrabalhoController@atribuir')->name('atribuir'); - Route::post('/resposta-solicitacao-desligamento/{desligamento_id}', 'CoordenadorComissaoController@respostaDesligamento')->name('resposta.desligamento'); -}); +id; + Notification::send(Auth::user(), new SubmissaoNotification($id)); + + return 'Ok'; + // Auth::user()->notify(new SubmissaoTrabalho('teste')); +}); + +Route::get('/baixarModeloAvaliacao', 'AdministradorController@baixarModeloAvaliacao')->name('baixarModelo'); +Route::get('/', 'UserController@index')->name('home-user'); +Route::get('/', 'UserController@inicial')->name('inicial'); +Route::get('/home', 'HomeController@index')->name('home')->middleware('verified'); + +Route::get('/evento/visualizar/naologado/{id}', 'EventoController@showNaoLogado')->name('evento.visualizarNaoLogado'); +Route::get('/editais/home', 'EventoController@index')->name('coord.home'); +Route::get('/perfil', 'UserController@perfil')->name('perfil'); +Auth::routes(['verify' => true]); + +//Rota para avaliador atualizar perfil, deixando de ser usuario temporario +Route::post('/perfil-usuario', 'UserController@editarPerfil')->name('perfil.edit')->middleware(['auth', 'verified']); + +Route::group(['middleware' => ['isTemp', 'auth', 'verified']], function () { + //######### Proponente ######################################## + Route::get('/proponente/index', 'ProponenteController@index')->name('proponente.index'); + Route::get('/proponente/cadastro', 'ProponenteController@create')->name('proponente.create'); + Route::post('/proponente/cadastro', 'ProponenteController@store')->name('proponente.store'); + Route::get('/proponente/editais', 'ProponenteController@editais')->name('proponente.editais'); + Route::get('/projetos-submetidos', 'ProponenteController@projetosDoProponente')->name('proponente.projetos'); + Route::get('/projetos-edital/{id}', 'ProponenteController@projetosEdital')->name('proponente.projetosEdital')->middleware('auth'); + Route::post('/proponente/edital/{edital_id}/projeto/{projeto_id}/solicitar_desligamento/{participante_id}', 'ProponenteController@solicitarDesligamento')->name('proponente.solicitar.desligamento'); + + //######## Rotas Avaliador #################################### + Route::prefix('avaliacaoRelatorio')->name('avaliacaoRelatorio.')->group(function () { + Route::post('/atribuirAvaliadorPlano', 'AvaliacaoRelatorioController@atribuicaoAvaliador')->name('atribuicao.avaliador')->middleware('checkRoles:coordenador,administrador'); + Route::get('/removerAvaliadorPlano/{id}', 'AvaliacaoRelatorioController@removerAvaliador')->name('remover.avaliador')->middleware('checkRoles:coordenador,administrador'); + }); + Route::get('/trabalho/planos/avaliacao/{id}', 'AvaliacaoRelatorioController@listarUser')->name('planos.avaliacoesUser'); + Route::get('/trabalho/planos/avaliacoes/index', 'AvaliacaoRelatorioController@index')->name('planos.avaliacoes.index'); + Route::post('/trabalho/planos/avaliacoes/criar', 'AvaliacaoRelatorioController@criar')->name('planos.avaliacoesUser.criar'); + + Route::prefix('areaTematica')->name('areaTematica.')->group(function () { + Route::get('/editar/{id}', 'AreaTematicaController@edit')->name('edit')->middleware('checkAdministrador'); + Route::post('/atualizar/{id}', 'AreaTematicaController@update')->name('atualizar')->middleware('checkAdministrador'); + Route::post('/excluir/{id}', 'AreaTematicaController@destroy')->name('deletar')->middleware('checkAdministrador'); + Route::post('/salvar', 'AreaTematicaController@store')->name('salvar')->middleware('checkAdministrador'); + Route::get('/nova', 'AreaTematicaController@create')->name('criar')->middleware('checkAdministrador'); + }); + + Route::prefix('objetivoDeDenvolvimentoSustentavel')->name('objetivoDeDenvolvimentoSustentavel.')->group(function () { + Route::get('/editar/{id}', 'ObjetivoDeDesenvolvimentoSustentavelController@edit')->name('edit')->middleware('checkAdministrador'); + Route::post('/atualizar/{id}', 'ObjetivoDeDesenvolvimentoSustentavelController@update')->name('atualizar')->middleware('checkAdministrador'); + Route::post('/excluir/{id}', 'ObjetivoDeDesenvolvimentoSustentavelController@destroy')->name('deletar')->middleware('checkAdministrador'); + Route::post('/salvar', 'ObjetivoDeDesenvolvimentoSustentavelController@store')->name('salvar')->middleware('checkAdministrador'); + Route::get('/novo', 'ObjetivoDeDesenvolvimentoSustentavelController@create')->name('criar')->middleware('checkAdministrador'); + }); + + //######### Rotas Administrador ################################# + Route::get('/perfil-usuario', 'UserController@minhaConta')->name('user.perfil')->middleware(['auth', 'verified']); + + //######## Rotas Avaliador #################################### + Route::prefix('avaliador')->name('avaliador.')->group(function () { + Route::get('/index', 'AvaliadorController@index')->name('index')->middleware('auth'); + Route::get('/trabalhos', 'AvaliadorController@visualizarTrabalhos')->name('visualizarTrabalho')->middleware('auth'); + Route::get('/planos', 'AvaliadorController@listarPlanos')->name('listarPlanos')->middleware('auth'); + Route::post('/parecer', 'AvaliadorController@parecer')->name('parecer')->middleware('auth'); + Route::post('/parecer/plano', 'AvaliadorController@parecerPlano')->name('parecer.plano')->middleware('auth'); + Route::get('/editais', 'AvaliadorController@editais')->name('editais')->middleware('auth'); + Route::post('/Enviarparecer', 'AvaliadorController@enviarParecer')->name('enviarParecer')->middleware('auth'); + Route::post('/Enviarparecer/plano', 'AvaliadorController@enviarParecerPlano')->name('enviarParecerPlano')->middleware('auth'); + Route::get('/Resposta', 'AvaliadorController@conviteResposta')->name('conviteResposta')->middleware('auth'); + + Route::post('/parecerInterno', 'AvaliadorController@parecerInterno')->name('parecerInterno')->middleware('auth'); + Route::post('/EnviarparecerInterno', 'AvaliadorController@enviarParecerInterno')->name('enviarParecerInterno')->middleware('auth'); + }); + + Route::get('/notificacao/listar', 'NotificacaoController@listar')->name('notificacao.listar')->middleware('auth'); + Route::get('/notificacao/lista', 'NotificacaoController@listarTrab')->name('notificacao.listarTrab')->middleware('auth'); + Route::get('/notificacao/ler/{id}', 'NotificacaoController@ler')->name('notificacao.ler'); + + Route::get('/home/edital', 'EventoController@index')->name('visualizarEvento'); + + // ######## rotas de teste ##################################### + + Route::get('/coordenador/evento/detalhes', 'EventoController@detalhes')->name('coord.detalhesEvento'); + + //####### Visualizar trabalhos do usuário ###################### + Route::get('/user/trabalhos', 'UserController@meusTrabalhos')->name('user.meusTrabalhos'); + + //######### Cadastrar Comissão ################################### + Route::post('/evento/cadastrarComissao', 'ComissaoController@store')->name('cadastrar.comissao'); + Route::post('/evento/cadastrarCoordComissao', 'ComissaoController@coordenadorComissao')->name('cadastrar.coordComissao'); + + //######### rota downloadArquivo ################################ + Route::get('/downloadArquivo', 'HomeController@downloadArquivo')->name('download'); + + //######### Area do participante ############################### + Route::get('/participante', 'EventoController@areaParticipante')->name('area.participante'); + Route::get('participante/editais', 'ParticipanteController@editais')->name('participante.editais'); + //######### Participante ######################################## + Route::get('/participante/index', 'ParticipanteController@index')->name('participante.index'); + Route::get('/participante/edital/{id}', 'ParticipanteController@edital')->name('participante.edital'); + + //######### Plano de Trablho ######################################## + Route::prefix('/plano/trabalho')->name('plano.trabalho.')->group(function () { + Route::get('/index/{evento_id}', 'PlanoTrabalhoController@index')->name('index'); + Route::get('/selecionar/{evento_id}', 'PlanoTrabalhoController@selecionarPlanos')->name('selecionarPlanos'); + Route::post('/atribuicao', 'PlanoTrabalhoController@atribuicao')->name('atribuicao'); + }); + + //########## Area da comissao ################################### + Route::get('/comissoes', 'EventoController@listComissao')->name('comissoes'); + Route::get('/area/comissao', 'EventoController@listComissaoTrabalhos')->name('area.comissao'); + + //########### Deletar Comissão ################################### + Route::delete('/evento/apagar-comissao/', 'ComissaoController@destroy')->name('delete.comissao'); + Route::post('/evento/numTrabalhos', 'EventoController@numTrabalhos')->name('trabalho.numTrabalhos'); + + //########## Area ########################################### + Route::post('/area/criar', 'AreaController@store')->name('area.store'); + + //########### Deletar Area ###################################### + Route::delete('/area/deletar/{id}', 'AreaController@destroy')->name('area.delete'); + + //######### Deletar Revisores ############################## + Route::delete('/revisor/apagar', 'RevisorController@destroy')->name('revisor.delete'); + + //######### AreaModalidade ################################### + Route::post('/areaModalidade/criar', 'AreaModalidadeController@store')->name('areaModalidade.store'); + + //######### Trabalho ######################################## + Route::get('/trabalho/submeter/{id}', 'TrabalhoController@index')->name('trabalho.index'); + // Route::get( '/trabalho/visualizar/{id}','TrabalhoController@show' )->name('trabalho.show'); + Route::post('/trabalho/novaVersao', 'TrabalhoController@novaVersao')->name('trabalho.novaVersao'); + Route::post('/trabalho/criar', 'TrabalhoController@salvar')->name('trabalho.store'); + Route::post('/trabalho/criarRascunho', 'TrabalhoController@storeParcial')->name('trabalho.storeParcial'); + Route::get('/edital/{id}/projetos', 'TrabalhoController@projetosDoEdital')->name('projetos.edital'); + Route::get('/projeto/visualizar/{id}', 'TrabalhoController@show')->name('trabalho.show'); + Route::get('/projeto/{id}/editar', 'TrabalhoController@edit')->name('trabalho.editar'); + + Route::post('/projeto/buscarUsuario', 'TrabalhoController@buscarUsuario')->name('trabalho.buscarUsuario'); + + Route::post('/projeto/{id}/atualizar', 'TrabalhoController@update')->name('trabalho.update'); + Route::get('/projeto/{id}/excluir', 'TrabalhoController@destroy')->name('trabalho.destroy'); + Route::get('/projeto/{id}/excluirParticipante', 'TrabalhoController@excluirParticipante')->name('trabalho.excluirParticipante'); + Route::post('/projeto/{trabalho}/solicitarCertificado', 'TrabalhoController@solicitarCertificado')->name('trabalho.solicitarCertificado'); + Route::get('/projeto/exportar/{id}', 'TrabalhoController@exportProjeto')->name('exportar.projeto'); + Route::get('/projeto/substituirParticipante', 'TrabalhoController@telaTrocaPart')->name('trabalho.trocaParticipante'); + Route::post('/projeto/substituirParticipante', 'TrabalhoController@trocaParticipante')->name('trabalho.infoTrocaParticipante'); + Route::get('/showSubstituicoes', 'TrabalhoController@telaShowSubst')->name('trabalho.telaAnaliseSubstituicoes')->middleware('checkRoles:coordenador,administrador'); + Route::post('/aprovarSubstituicao', 'TrabalhoController@aprovarSubstituicao')->name('trabalho.aprovarSubstituicao'); + Route::post('/aprovarProposta/{id}', 'TrabalhoController@aprovarProposta')->name('trabalho.aprovarProposta'); + + Route::post('/certificado/{certificado}', 'CertificadoController@update')->name('certificado.update'); + + //########## Bolsas + Route::get('/bolsas', 'ParticipanteController@listarParticipanteEdital')->name('bolsas.listar'); + Route::post('/bolsas/alteracao', 'ParticipanteController@alterarBolsa')->name('bolsa.alterar'); + + //########## Arquivar Projeto e Plano + Route::get('/arquivar/projeto', 'TrabalhoController@arquivar')->name('projeto.arquivar'); + Route::get('/arquivar/plano', 'ArquivoController@arquivar')->name('arquivo.arquivar'); + + //######### Imprimir Resultado ################################# + Route::get('/usuarios/showResultados/imprimir', 'AdministradorController@imprimirResultados')->name('resultados.gerar'); + + //########## Relatórios + Route::get('/projeto/planosTrabalho/{id}', 'ArquivoController@listar')->name('planos.listar'); + Route::post('/projeto/planosTrabalho/anexarRelatorio', 'ArquivoController@anexarRelatorio')->name('planos.anexar.relatorio'); + + //########## Documentação Complementar + Route::get('/documentacaoComplementar', 'ParticipanteController@listarParticipanteProjeto')->name('docComplementar.listar'); + Route::post('/documentacaoComplementar/enviar', 'ParticipanteController@atualizarDocComplementar')->name('docComplementar.enviar'); + + //######### Atribuição ####################################### + Route::get('/atribuir', 'AtribuicaoController@distribuicaoAutomatica')->name('distribuicao'); + Route::get('/atribuirPorArea', 'AtribuicaoController@distribuicaoPorArea')->name('distribuicaoAutomaticaPorArea'); + Route::post('/distribuicaoManual', 'AtribuicaoController@distribuicaoManual')->name('distribuicaoManual'); + Route::post('/removerAtribuicao', 'AtribuicaoController@deletePorRevisores')->name('atribuicao.delete'); + + //########## Revisores ######################################### + Route::post('/revisor/criar', 'RevisorController@store')->name('revisor.store'); + Route::get('/revisor/listarTrabalhos', 'RevisorController@indexListarTrabalhos')->name('revisor.listarTrabalhos'); + Route::post('/revisor/email', 'RevisorController@enviarEmailRevisor')->name('revisor.email'); + Route::post('/revisor/emailTodos', 'RevisorController@enviarEmailTodosRevisores')->name('revisor.emailTodos'); + + //########## Rotas de download de documentos ########################### + Route::get('/baixar/anexo-projeto/{id}', 'TrabalhoController@baixarAnexoProjeto')->name('baixar.anexo.projeto'); + Route::get('/baixar/anexo-consu/{id}', 'TrabalhoController@baixarAnexoConsu')->name('baixar.anexo.consu'); + Route::get('/baixar/anexo-comite/{id}', 'TrabalhoController@baixarAnexoComite')->name('baixar.anexo.comite'); + Route::get('/baixar/anexo-justificativa/{id}', 'TrabalhoController@baixarAnexoJustificativa')->name('baixar.anexo.justificativa'); + Route::get('/baixar/anexo-lattes/{id}', 'TrabalhoController@baixarAnexoLattes')->name('baixar.anexo.lattes'); + Route::get('/baixar/anexo-planilha/{id}', 'TrabalhoController@baixarAnexoPlanilha')->name('baixar.anexo.planilha'); + Route::get('/baixar/plano-de-trabalho/{id}', 'ArquivoController@baixarPlano')->name('baixar.plano'); + Route::get('/baixar/anexoGrupoPesquisa/{id}', 'TrabalhoController@baixarAnexoGrupoPesquisa')->name('baixar.anexoGrupoPesquisa'); + Route::get('/baixar/anexo-temp/{eventoId}/{nomeAnexo}', 'TrabalhoController@baixarAnexoTemp')->name('baixar.anexo.temp'); + Route::get('/baixar/evento-temp/{nomeAnexo}', 'TrabalhoController@baixarEventoTemp')->name('baixar.evento.temp'); + Route::get('/baixar/documentosParticipante', 'ParticipanteController@baixarDocumento')->name('baixar.documentosParticipante'); + Route::get('/baixar/anexoDocExtra/{id}', 'TrabalhoController@baixarAnexoDocExtra')->name('baixar.anexo.docExtra'); +}); + +Route::get('/baixar/edital/{id}', 'EventoController@baixarEdital')->name('baixar.edital'); +Route::get('/baixar/modelos/{id}', 'EventoController@baixarModelos')->name('baixar.modelos'); + +Route::prefix('usuarios')->name('admin.')->group(function () { + //######### Rotas da administração dos usuários #################### + Route::get('/home-admin', 'AdministradorController@index')->name('index')->middleware('checkAdministrador'); + Route::get('/usuarios', 'AdministradorController@usuarios')->name('usuarios')->middleware('checkAdministrador'); + Route::get('/novo', 'AdministradorController@create')->name('user.create')->middleware('checkAdministrador'); + Route::post('/salvar-novo', 'AdministradorController@salvar')->name('user.store')->middleware('checkAdministrador'); + Route::get('/editar/{id}', 'AdministradorController@edit')->name('user.edit')->middleware('checkAdministrador'); + Route::post('/editar/atualizar/{id}', 'AdministradorController@update')->name('user.update')->middleware('checkAdministrador'); + Route::post('/editar/deletar/{id}', 'AdministradorController@destroy')->name('user.destroy')->middleware('checkAdministrador'); + Route::get('/editais', 'AdministradorController@editais')->name('editais'); + Route::get('/atribuir', 'AdministradorController@atribuir')->name('atribuir'); + Route::get('/selecionarAvaliador', 'AdministradorController@selecionar')->name('selecionar'); + Route::get('/selecionarProjetos', 'AdministradorController@projetos')->name('projetos'); + Route::post('/adicionarAvalEvento', 'AdministradorController@adicionar')->name('adicionar'); + Route::post('/removerAvalEvento', 'AdministradorController@remover')->name('remover'); + Route::get('/removerProjAval', 'AdministradorController@removerProjAval')->name('removerProjAval'); + Route::post('/atribuirAvaliadorProjeto', 'AdministradorController@atribuicaoProjeto')->name('atribuicao.projeto'); + Route::post('/enviarConviteEAtribuirProjeto', 'AdministradorController@enviarConviteEAtribuir')->name('convite.atribuicao.projeto'); + Route::get('/reenviarConviteAtribuicaoProjeto', 'AdministradorController@reenviarConviteAtribuicaoProjeto')->name('reenviar.atribuicao.projeto'); + Route::post('/enviarConviteAvaliador', 'AdministradorController@enviarConvite')->name('enviarConvite'); + Route::post('/reenviarConviteAvaliador', 'AdministradorController@reenviarConvite')->name('reenviarConvite'); + Route::post('/visualizarParecer', 'AdministradorController@visualizarParecer')->name('visualizarParecer'); + Route::get('/visualizarParecer', 'AdministradorController@visualizarParecer')->name('visualizarParecer'); + Route::get('/visualizarParecerInterno', 'AdministradorController@visualizarParecerInterno')->name('visualizarParecerInterno'); + Route::get('/pareceresProjetos', 'AdministradorController@pareceres')->name('pareceres'); + Route::get('/analisarProjetos/{column?}', 'AdministradorController@analisar')->name('analisar')->middleware('checkRoles:coordenador,administrador'); + Route::get('/analisarProposta', 'AdministradorController@analisarProposta')->name('analisarProposta')->middleware('checkRoles:coordenador,administrador'); + Route::get('/showProjetos', 'AdministradorController@showProjetos')->name('showProjetos'); + Route::get('/showResultados', 'AdministradorController@showResultados')->name('showResultados')->middleware(['auth', 'verified']); +}); + +Route::prefix('naturezas')->group(function () { + //########### Rotas das naturezas ############################### + + Route::get('/', 'AdministradorController@naturezas')->name('admin.naturezas')->middleware('checkAdministrador'); + Route::get('/index', 'NaturezaController@index')->name('natureza.index')->middleware('checkAdministrador'); + Route::get('/nova', 'NaturezaController@create')->name('natureza.criar')->middleware('checkAdministrador'); + Route::post('/salvar', 'NaturezaController@store')->name('natureza.salvar')->middleware('checkAdministrador'); + Route::get('/detalhes/{id}', 'NaturezaController@show')->name('natureza.show')->middleware('checkAdministrador'); + Route::get('/editar/{id}', 'NaturezaController@edit')->name('natureza.editar')->middleware('checkAdministrador'); + Route::get('/atualizar/{id}', 'NaturezaController@update')->name('natureza.atualizar')->middleware('checkAdministrador'); + Route::get('/excluir/{id}', 'NaturezaController@destroy')->name('natureza.deletar')->middleware('checkAdministrador'); + + //########### Rotas das grandes areas ############################## + Route::get('/grande-area', 'GrandeAreaController@index')->name('grandearea.index')->middleware('checkAdministrador'); + Route::get('/grande-area/nova', 'GrandeAreaController@create')->name('grandearea.criar')->middleware('checkAdministrador'); + Route::post('/grande-area/salvar', 'GrandeAreaController@store')->name('grandearea.salvar')->middleware('checkAdministrador'); + Route::get('/grande-area/detalhes/{id}', 'GrandeAreaController@show')->name('grandearea.show')->middleware('checkAdministrador'); + Route::get('/grande-area/editar/{id}', 'GrandeAreaController@edit')->name('grandearea.editar')->middleware('checkAdministrador'); + Route::post('/grande-area/atualizar/{id}', 'GrandeAreaController@update')->name('grandearea.atualizar')->middleware('checkAdministrador'); + Route::post('/grande-area/excluir/{id}', 'GrandeAreaController@destroy')->name('grandearea.deletar')->middleware('checkAdministrador'); + + //#### Rotas das areas, id's de nova e salvar são os ids da grande área a qual a nova área pertence #### + Route::get('/areas', 'AreaController@index')->name('area.index')->middleware('checkAdministrador'); + Route::get('/{id}/area/nova', 'AreaController@create')->name('area.criar')->middleware('checkAdministrador'); + Route::post('/{id}/area/salvar', 'AreaController@store')->name('area.salvar')->middleware('checkAdministrador'); + Route::get('/area/detalhes/{id}', 'AreaController@show')->name('area.show')->middleware('checkAdministrador'); + Route::get('/area/editar/{id}', 'AreaController@edit')->name('area.editar')->middleware('checkAdministrador'); + Route::post('/area/atualizar/{id}', 'AreaController@update')->name('area.atualizar')->middleware('checkAdministrador'); + Route::post('/area/excluir/{id}', 'AreaController@destroy')->name('area.deletar')->middleware('checkAdministrador'); + Route::post('/areas/', 'AreaController@consulta')->name('area.consulta'); + Route::post('/avalConExterno/', 'AvaliadorController@consultaExterno')->name('aval.consultaExterno'); + Route::post('/avalConInterno/', 'AvaliadorController@consultaInterno')->name('aval.consultaInterno'); + + //### Rotas das subareas, id's de nova e salvar são os ids da área a qual a nova subárea pertence ##### + Route::get('/subareas', 'SubAreaController@index')->name('subarea.index')->middleware('checkAdministrador'); + Route::get('/{id}/subarea/nova', 'SubAreaController@create')->name('subarea.criar')->middleware('checkAdministrador'); + Route::post('/{id}/subarea/salvar', 'SubAreaController@store')->name('subarea.salvar')->middleware('checkAdministrador'); + Route::get('/subarea/detalhes/{id}', 'SubAreaController@show')->name('subarea.show')->middleware('checkAdministrador'); + Route::get('/subarea/editar/{id}', 'SubAreaController@edit')->name('subarea.editar')->middleware('checkAdministrador'); + Route::post('/subarea/atualizar/{id}', 'SubAreaController@update')->name('subarea.atualizar')->middleware('checkAdministrador'); + Route::post('/subarea/excluir/{id}', 'SubAreaController@destroy')->name('subarea.deletar')->middleware('checkAdministrador'); + Route::post('/subarea/', 'SubAreaController@consulta')->name('subarea.consulta'); + + Route::post('/funcao-participante/store', 'ParticipanteController@storeFuncao')->name('funcao_participante.store'); + Route::post('/funcao-participante/{id}/update', 'ParticipanteController@updateFuncao')->name('funcao_participante.update'); + Route::get('/funcao-participante/{id}/destroy', 'ParticipanteController@destroyFuncao')->name('funcao_participante.destroy'); +}); + +//############ Evento ############################################## +Route::prefix('evento')->name('evento.')->group(function () { + Route::get('/criar', 'EventoController@create')->name('criar')->middleware('checkAdministrador'); + Route::post('/criar', 'EventoController@store')->name('criar')->middleware('checkAdministrador'); + Route::get('/visualizar/{id}', 'EventoController@show')->name('visualizar')->middleware('auth'); + Route::get('/listar', 'EventoController@listar')->name('listar')->middleware('auth'); + Route::delete('/excluir/{id}', 'EventoController@destroy')->name('deletar')->middleware('checkRoles:coordenador,administrador'); + Route::get('/editar/{id}', 'EventoController@edit')->name('editar')->middleware('checkRoles:coordenador,administrador'); + Route::post('/editar/{id}', 'EventoController@update')->name('update')->middleware('checkRoles:coordenador,administrador'); + Route::post('/setResumo', 'EventoController@setResumo')->name('setResumo')->middleware('checkAdministrador'); + Route::post('/setFoto', 'EventoController@setFotoEvento')->name('setFotoEvento')->middleware('checkAdministrador'); +}); + +//########## Rotas de administrador responsavel (Reitor ou pro-reitor)######## +Route::prefix('adminResp')->name('adminResp.')->group(function () { + Route::get('/index', 'AdministradorResponsavelController@index')->name('index'); + Route::get('/editais', 'AdministradorResponsavelController@editais')->name('editais'); + Route::get('/usuarios', 'AdministradorResponsavelController@usuarios')->name('usuarios'); + Route::get('/atribuir', 'AdministradorResponsavelController@atribuirPermissao')->name('atribuir'); + Route::post('/atribuir', 'AdministradorResponsavelController@atribuirPermissao')->name('atribuir'); + Route::post('/verPermissao', 'AdministradorResponsavelController@verPermissao')->name('verPermissao'); +}); + +//########### Rotas Coordenador ################################## +Route::prefix('coordenador')->name('coordenador.')->group(function () { + Route::get('/index', 'CoordenadorComissaoController@index')->name('index'); + Route::get('/editais', 'CoordenadorComissaoController@editais')->name('editais'); + Route::get('/usuarios', 'CoordenadorComissaoController@usuarios')->name('usuarios'); + Route::get('/listarCoord', 'CoordenadorComissaoController@coordenadorComite')->name('coord'); + Route::get('/listarAvaliador', 'CoordenadorComissaoController@avaliador')->name('avaliador'); + Route::get('/listarProponente', 'CoordenadorComissaoController@proponente')->name('proponente'); + Route::get('/listarParticipante', 'CoordenadorComissaoController@participante')->name('participante'); + Route::get('/listarTrabalhos', 'CoordenadorComissaoController@listarTrabalhos')->name('listarTrabalhos'); + Route::get('/detalhesEdital/{evento_id}', 'CoordenadorComissaoController@detalhesEdital')->name('detalhesEdital'); + Route::post('/retornoDetalhes', 'CoordenadorComissaoController@retornoDetalhes')->name('retornoDetalhes'); + Route::post('/atribuirAvaliadorTrabalho', 'TrabalhoController@atribuirAvaliadorTrabalho')->name('atribuirAvaliadorTrabalho'); + Route::post('/atribuir', 'TrabalhoController@atribuir')->name('atribuir'); + Route::post('/atribuir', 'TrabalhoController@atribuir')->name('atribuir'); + Route::post('/resposta-solicitacao-desligamento/{desligamento_id}', 'CoordenadorComissaoController@respostaDesligamento')->name('resposta.desligamento'); +});