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
-
-
-
-
-
- @if($trabalho->evento->natureza_id != 3)
-
- @endif
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- @foreach($trabalho->participantes as $participante)
-
-
}})
-
-
-
{{$participante->user->name}}
-
-
-
-
-
-
-
-
-
-
-
- @include('administrador.substituirParticipanteForm', ['visualizarOnly' => 1, 'edital' => $evento])
-
-
-
-
- @foreach($substituicoesProjeto as $subs)
-
-
-
-
-
-
-
-
-
- @include('administrador.vizualizarParticipante', ['visualizarSubstituido' => 1])
-
-
-
-
-
-
-
-
-
-
-
-
-
- @include('administrador.vizualizarParticipante')
-
-
-
-
- @endforeach
- @endforeach
-
-
-
-
-
-
-
- {{--Janelas para aprovação ou reprovação de substituição--}}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{-- 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ório Parcial --}}
-
-
-
-
-
-
-
-
-
-
-
-
- {{-- Relatório Final --}}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- @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)
-
- @endif
-
-
-
-
-
-
-
-
-
Você tem certeza que deseja remover o avaliador: {{ $aval->user->name }}?
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- @include('avaliacaoRelatorio.avaliacao', ['avaliacao' => $aval])
-
-
-
-
- @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)
-
- @endif
-
-
-
-
-
-
-
-
-
-
Você tem certeza que deseja remover o avaliador: {{ $aval->user->name }}?
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- @include('avaliacaoRelatorio.avaliacao', ['avaliacao' => $aval])
-
-
-
-
- @endforeach
-
- @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
-
-
-
-
-
-
-
Você tem certeza que deseja remover o avaliador: {{ $avaliador->user->name }}?
-
-
-
-
-
- @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
-
-
-
-
-
-
-
-
Você tem certeza que deseja remover o avaliador: {{ $avaliador->user->name }}?
-
-
-
-
-
- @endforeach
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Voltar
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- @foreach($substituicoesPendentes as $subs)
-
-
- @endforeach
-
-
-
-
-
-
-
-
- {{--
-
-
-
-
- @foreach($substituicoesProjeto as $subs)
-
-
-
- @if($subs->tipo == 'ManterPlano')
-
Tipo: Manter Plano>
- @elseif($subs->tipo == 'TrocarPlano')
- Tipo: Alterar Plano
- @elseif($subs->tipo == 'Completa')
- Tipo: Completa
- @endif
- @if($subs->status == 'Finalizada')
- Status: Concluída
- @elseif($subs->status == 'Negada')
- Status: Negada
- @elseif($subs->status == 'Em Aguardo')
- Status: Pendente
- @endif
- @if($subs->status == 'Em Aguardo')
- Pendente
- @else
- Visualizar
- @endif
-
-
-
-
-
- @endforeach
-
-
-
-
-
--}}
-
-
-
-
- @foreach($substituicoesProjeto as $subs)
-
-
-
- {{$subs->participanteSubstituido()->withTrashed()->first()->user->name}}
-
-
{{date('d-m-Y', strtotime($subs->participanteSubstituido()->withTrashed()->first()->data_entrada))}}
- - @if($subs->participanteSubstituido()->withTrashed()->first()->data_saida == null)
- Atualmente @else {{date('d-m-Y', strtotime($subs->participanteSubstituido()->withTrashed()->first()->data_saida))}} @endif
-
-
-
- {{$subs->participanteSubstituto()->withTrashed()->first()->user->name}}
-
-
{{date('d-m-Y', strtotime($subs->participanteSubstituto()->withTrashed()->first()->data_entrada))}}
- - @if($subs->participanteSubstituto()->withTrashed()->first()->data_saida == null)
- Atualmente @else {{date('d-m-Y', strtotime($subs->participanteSubstituto()->withTrashed()->first()->data_saida))}} @endif
-
-
- @if($subs->tipo == 'ManterPlano')
-
Manter Plano
- @elseif($subs->tipo == 'TrocarPlano')
- Alterar Plano
- @elseif($subs->tipo == 'Completa')
- Completa
- @endif
-
-
- @if($subs->status == 'Finalizada')
-
Concluída
- @elseif($subs->status == 'Negada')
- Negada
- @elseif($subs->status == 'Em Aguardo')
- Pendente
- @endif
-
-
- @if($subs->status == 'Em Aguardo')
-
Pendente
- @else
-
Visualizar
- @endif
-
-
- @endforeach
-
-
-
-
-
-
-
-
-
- @foreach($trabalho->desligamentos as $desligamento)
-
-
-
Desligamento
-
-
-
}})
-
-
-
-
-
- @if($desligamento->status == \App\Desligamento::STATUS_ENUM['solicitado'])
-
Ações
-
-
-
- @else
-
Status
-
- {{$desligamento->getStatus()}}
-
- @endif
-
-
-
- @endforeach
-
-
-
-
-
-
-
-
-
-
-
-
- {{--
- @include('administrador.substituirParticipanteForm', ['visualizarOnly' => 1])
-
--}}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-@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
+
+
+
+
+
+ @if($trabalho->evento->natureza_id != 3)
+
+ @endif
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ @foreach($trabalho->participantes as $participante)
+
+
}})
+
+
+
{{$participante->user->name}}
+
+
+
+
+
+
+
+
+
+
+
+ @include('administrador.substituirParticipanteForm', ['visualizarOnly' => 1, 'edital' => $evento])
+
+
+
+
+ @foreach($substituicoesProjeto as $subs)
+
+
+
+
+
+
+
+
+
+ @include('administrador.vizualizarParticipante', ['visualizarSubstituido' => 1])
+
+
+
+
+
+
+
+
+
+
+
+
+
+ @include('administrador.vizualizarParticipante')
+
+
+
+
+ @endforeach
+ @endforeach
+
+
+
+
+
+
+
+ {{--Janelas para aprovação ou reprovação de substituição--}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{-- 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ório Parcial --}}
+
+
+
+
+
+
+
+
+
+
+
+
+ {{-- Relatório Final --}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ @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)
+
+ @endif
+
+
+
+
+
+
+
+
+
Você tem certeza que deseja remover o avaliador: {{ $aval->user->name }}?
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ @include('avaliacaoRelatorio.avaliacao', ['avaliacao' => $aval])
+
+
+
+
+ @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)
+
+ @endif
+
+
+
+
+
+
+
+
+
+
Você tem certeza que deseja remover o avaliador: {{ $aval->user->name }}?
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ @include('avaliacaoRelatorio.avaliacao', ['avaliacao' => $aval])
+
+
+
+
+ @endforeach
+
+ @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
+
+
+
+
+
+
+
Você tem certeza que deseja remover o avaliador: {{ $avaliador->user->name }}?
+
+
+
+
+
+ @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
+
+
+
+
+
+
+
+
Você tem certeza que deseja remover o avaliador: {{ $avaliador->user->name }}?
+
+
+
+
+
+ @endforeach
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Voltar
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ @foreach($substituicoesPendentes as $subs)
+
+
+ @endforeach
+
+
+
+
+
+
+
+
+ {{--
+
+
+
+
+ @foreach($substituicoesProjeto as $subs)
+
+
+
+ @if($subs->tipo == 'ManterPlano')
+
Tipo: Manter Plano>
+ @elseif($subs->tipo == 'TrocarPlano')
+ Tipo: Alterar Plano
+ @elseif($subs->tipo == 'Completa')
+ Tipo: Completa
+ @endif
+ @if($subs->status == 'Finalizada')
+ Status: Concluída
+ @elseif($subs->status == 'Negada')
+ Status: Negada
+ @elseif($subs->status == 'Em Aguardo')
+ Status: Pendente
+ @endif
+ @if($subs->status == 'Em Aguardo')
+ Pendente
+ @else
+ Visualizar
+ @endif
+
+
+
+
+
+ @endforeach
+
+
+
+
+
--}}
+
+
+
+
+ @foreach($substituicoesProjeto as $subs)
+
+
+
+ {{$subs->participanteSubstituido()->withTrashed()->first()->user->name}}
+
+
{{date('d-m-Y', strtotime($subs->participanteSubstituido()->withTrashed()->first()->data_entrada))}}
+ - @if($subs->participanteSubstituido()->withTrashed()->first()->data_saida == null)
+ Atualmente @else {{date('d-m-Y', strtotime($subs->participanteSubstituido()->withTrashed()->first()->data_saida))}} @endif
+
+
+
+ {{$subs->participanteSubstituto()->withTrashed()->first()->user->name}}
+
+
{{date('d-m-Y', strtotime($subs->participanteSubstituto()->withTrashed()->first()->data_entrada))}}
+ - @if($subs->participanteSubstituto()->withTrashed()->first()->data_saida == null)
+ Atualmente @else {{date('d-m-Y', strtotime($subs->participanteSubstituto()->withTrashed()->first()->data_saida))}} @endif
+
+
+ @if($subs->tipo == 'ManterPlano')
+
Manter Plano
+ @elseif($subs->tipo == 'TrocarPlano')
+ Alterar Plano
+ @elseif($subs->tipo == 'Completa')
+ Completa
+ @endif
+
+
+ @if($subs->status == 'Finalizada')
+
Concluída
+ @elseif($subs->status == 'Negada')
+ Negada
+ @elseif($subs->status == 'Em Aguardo')
+ Pendente
+ @endif
+
+
+ @if($subs->status == 'Em Aguardo')
+
Pendente
+ @else
+
Visualizar
+ @endif
+
+
+ @endforeach
+
+
+
+
+
+
+
+
+
+ @foreach($trabalho->desligamentos as $desligamento)
+
+
+
Desligamento
+
+
+
}})
+
+
+
+
+
+ @if($desligamento->status == \App\Desligamento::STATUS_ENUM['solicitado'])
+
Ações
+
+
+
+ @else
+
Status
+
+ {{$desligamento->getStatus()}}
+
+ @endif
+
+
+
+ @endforeach
+
+
+
+
+
+
+
+
+
+
+
+
+ {{--
+ @include('administrador.substituirParticipanteForm', ['visualizarOnly' => 1])
+
--}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+@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
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Nome do Usuário |
- Email |
- @if($evento->natureza_id == 3)
- Área Temática |
- @else
- Área |
- @endif
- Tipo |
- Ação |
-
-
-
- @foreach ($avaliadores as $avaliador)
-
- {{ $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
- |
-
-
- |
-
- @endforeach
-
-
-
-
-
-
Avaliadores Selecionados para o Edital: {{ $evento->nome }}
-
-
-
-
-
-
- Nome do Usuário |
- Tipo |
- Email |
- Status |
- Projetos |
- Ação |
-
-
-
- @foreach ($avalSelecionados as $avaliador)
-
- {{ $avaliador->user->name }} |
- {{ $avaliador->tipo }} |
- {{ $avaliador->user->email }} |
- @if($avaliador->eventos->where('id', $evento->id)->first()->pivot->convite == true)
- Aceito |
- @elseif(is_null($avaliador->eventos->where('id', $evento->id)->first()->pivot->convite))
- A confirmar |
- @else
- Recusado |
- @endif
-
-
-
- @if($avaliador->trabalhos->where('evento_id', $evento->id)->count() == 0)
- |
- @else
- |
- @endif
-
-
-
-
-
-
-
-
-
- @foreach($trabalhos as $trabalho)
- @foreach($trabalho->avaliadors as $avaliador1)
- @if($avaliador1->id == $avaliador->id)
- {{-- {{ $avaliador->trabalhos->where('id', $trabalho->id)->first()->pivot }} --}}
-
Título: {{ $trabalho->titulo }}
- @endif
- @endforeach
- @endforeach
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Esse Avaliador não possui projetos.
Clique aqui e verifique os projetos disponíveis.
-
-
-
-
-
-
- eventos->where('id', $evento->id)->first()->pivot->convite != null) style="text-align:center" @endif style="text-align:center; display:flex; justify-content: space-evenly">
-
-
- |
-
- @endforeach
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-@endsection
-
-@section('javascript')
-
-@endsection
+@extends('layouts.app')
+
+@section('styles')
+
+@endsection
+
+@section('content')
+
+
+
+
+
+
+
+
+
Avaliadores
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Nome do Usuário |
+ Email |
+ @if($evento->natureza_id == 3)
+ Área Temática |
+ @else
+ Área |
+ @endif
+ Tipo |
+ Ação |
+
+
+
+ @foreach ($avaliadores as $avaliador)
+
+ {{ $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
+ |
+
+
+ |
+
+ @endforeach
+
+
+
+
+
+
Avaliadores Selecionados para o Edital: {{ $evento->nome }}
+
+
+
+
+
+
+ Nome do Usuário |
+ Tipo |
+ Email |
+ Status |
+ Projetos |
+ Ação |
+
+
+
+ @foreach ($avalSelecionados as $avaliador)
+
+ {{ $avaliador->user->name }} |
+ {{ $avaliador->tipo }} |
+ {{ $avaliador->user->email }} |
+ @if($avaliador->eventos->where('id', $evento->id)->first()->pivot->convite == true)
+ Aceito |
+ @elseif(is_null($avaliador->eventos->where('id', $evento->id)->first()->pivot->convite))
+ A confirmar |
+ @else
+ Recusado |
+ @endif
+
+
+
+ @if($avaliador->trabalhos->where('evento_id', $evento->id)->count() == 0)
+ |
+ @else
+ |
+ @endif
+
+
+
+
+
+
+
+
+
+ @foreach($trabalhos as $trabalho)
+ @foreach($trabalho->avaliadors as $avaliador1)
+ @if($avaliador1->id == $avaliador->id)
+ {{-- {{ $avaliador->trabalhos->where('id', $trabalho->id)->first()->pivot }} --}}
+
Título: {{ $trabalho->titulo }}
+ @endif
+ @endforeach
+ @endforeach
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Esse Avaliador não possui projetos.
Clique aqui e verifique os projetos disponíveis.
+
+
+
+
+
+
+ eventos->where('id', $evento->id)->first()->pivot->convite != null) style="text-align:center" @endif style="text-align:center; display:flex; justify-content: space-evenly">
+
+
+ |
+
+ @endforeach
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+@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 }}
-
-
-
- {{-- --}}
-
-
-
-
-
-
- Nome do Usuário |
- Tipo de Avaliação |
- E-mail |
- Titulo do projeto |
- Status avaliação |
- Ação |
-
-
-
- @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)))
-
- {{ $avaliador->user->name }} |
- Interno |
- {{ $avaliador->user->email }} |
- {{ $trabalho->titulo }} |
- @php
- $parecerInterno = App\ParecerInterno::where([['avaliador_id',$avaliador->id],['trabalho_id',$trabalho->id]])->first();
- @endphp
- @if($parecerInterno == null) Pendente @else Avaliado @endif |
-
-
- |
-
- @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)))
-
- {{ $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 |
-
-
- |
-
- @endif
-
-
- @endforeach
- @endforeach
-
-
-
-
-
-
-
-
-
Lista de Projetos do Edital: {{ $evento->nome }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Nome do Projeto |
- @if($evento->natureza_id == 3)
- Área Temática |
- @else
- Área |
- @endif
- Proponente |
- Ação |
-
-
-
- @foreach ($trabalhos as $trabalho)
-
- {{ $trabalho->titulo }} |
- @if($evento->natureza_id == 3)
- {{ App\AreaTematica::find($trabalho->area_tematica_id)->nome }} |
- @else
- {{ App\Area::find($trabalho->area_id)->nome }} |
- @endif
- {{ $trabalho->proponente->user->name }} |
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- |
-
- @endforeach
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-@endsection
-@section('javascript')
-
-@endsection
+@extends('layouts.app')
+
+@section('styles')
+
+@endsection
+
+@section('content')
+
+
+
+
+
+
+
+
+
+
Status dos Projetos em Avaliação do edital: {{ $evento->nome }}
+
+
+
+ {{-- --}}
+
+
+
+
+
+
+ Nome do Usuário |
+ Tipo de Avaliação |
+ E-mail |
+ Titulo do projeto |
+ Status avaliação |
+ Ação |
+
+
+
+ @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)))
+
+ {{ $avaliador->user->name }} |
+ Interno |
+ {{ $avaliador->user->email }} |
+ {{ $trabalho->titulo }} |
+ @php
+ $parecerInterno = App\ParecerInterno::where([['avaliador_id',$avaliador->id],['trabalho_id',$trabalho->id]])->first();
+ @endphp
+ @if($parecerInterno == null) Pendente @else Avaliado @endif |
+
+
+ |
+
+ @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)))
+
+ {{ $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 |
+
+
+ |
+
+ @endif
+
+
+ @endforeach
+ @endforeach
+
+
+
+
+
+
+
+
+
Lista de Projetos do Edital: {{ $evento->nome }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Nome do Projeto |
+ @if($evento->natureza_id == 3)
+ Área Temática |
+ @else
+ Área |
+ @endif
+ Proponente |
+ Ação |
+
+
+
+ @foreach ($trabalhos as $trabalho)
+
+ {{ $trabalho->titulo }} |
+ @if($evento->natureza_id == 3)
+ {{ App\AreaTematica::find($trabalho->area_tematica_id)->nome }} |
+ @else
+ {{ App\Area::find($trabalho->area_id)->nome }} |
+ @endif
+ {{ $trabalho->proponente->user->name }} |
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ |
+
+ @endforeach
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+@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 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- CPF não consta no sistema!
-
-
-
-
-
-
-
-
-
-
-
- Integrante adicionado com sucesso
-
-
-
-
-
-
-
-
-
\ 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')}}" --}}
-
-
- @component('componentes.participante', ['enum_turno' => $enum_turno,'estados' => $estados, ])
-
- @endcomponent
-
-
-
-
-
-
-
-
-
-
-
- Existe um CPF inválido em um dos discentes por favor corrija para continuar.
-
- {{-- --}}
-
-
-
-
-@endsection
-
-@section('javascript')
-
-
-
-
-
-
-
-
-
+@extends('layouts.app')
+
+@section('content')
+
+
+ {{-- action="{{route('trabalho.store')}}" --}}
+
+
+ @component('componentes.participante', ['enum_turno' => $enum_turno,'estados' => $estados, ])
+
+ @endcomponent
+
+
+
+
+
+
+
+
+
+
+
+ Existe um CPF inválido em um dos discentes por favor corrija para continuar.
+
+ {{-- --}}
+
+
+
+
+@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
-
-
-
-
-
-
-
-
-
-
 }})
-
-
-
-
-
-
- {{-- --}}
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+ {{ config('app.name', 'Laravel') }}
+
+
+
+
+
+
+
+
+
+
+ {{-- --}}
+
+
+
+
+ @yield('styles')
+
+
+
+
+
+
+
+
+ {{-- Navbar --}}
+
+
+
+ @hasSection ('sidebar')
+ @yield('sidebar')
+ @endif
+
+ {{-- --}}
+ @yield('content')
+ {{-- --}}
+
+
+ @hasSection ('javascript')
+ @yield('javascript')
+ @else
+ @endif
+
+
+
+
+
+
+
+
+
+
 }})
+
+
+
+
+
+
+ {{-- --}}
+
+
+
+
+
\ 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 adicionado com sucesso
-
-
-
-
-
-
-
-
-
-
-
-
- CPF não consta no sistema!
-
-
-
-
-
-
-
-
-
\ 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')}}" --}}
-
-
- @component('componentes.participante', ['enum_turno' => $enum_turno,'estados' => $estados, ])
-
- @endcomponent
-
-
-
-
-
-
-
-
-
-
-
- Existe um CPF inválido em um dos discentes por favor corrija para continuar.
-
- {{-- --}}
-
-
-
-
-@endsection
-
-@section('javascript')
-
-
-
-
-
-
-
-
-
+@extends('layouts.app')
+
+@section('content')
+
+
+ {{-- action="{{route('trabalho.store')}}" --}}
+
+
+ @component('componentes.participante', ['enum_turno' => $enum_turno,'estados' => $estados, ])
+
+ @endcomponent
+
+
+
+
+
+
+
+
+
+
+
+ Existe um CPF inválido em um dos discentes por favor corrija para continuar.
+
+ {{-- --}}
+
+
+
+
+@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 @@
-
-
-
-
-
-
-
-
-
- @foreach($trabalhos_user as $trabalho_user)
-
-
}})
-
-
-
Nome: {{ $trabalho_user->user->name }}
- Função: {{ $trabalho_user->funcao->nome }}
-
-
- @endforeach
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+ @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')}}" --}}
-
-
-
- @component('componentes.participante', ['enum_turno' => $enum_turno,'estados' => $estados, ])
-
- @endcomponent
-
-
-
-
-
-
-
-
-
-
-
- Existe um CPF inválido em um dos discentes por favor corrija para continuar.
-
- {{-- --}}
-
-
-
-
-@endsection
-
-@section('javascript')
-
-
-
-
-
-
-
-
-
-
-@endsection
+@extends('layouts.app')
+
+@section('content')
+
+
+ {{-- action="{{route('trabalho.store')}}" --}}
+
+
+
+ @component('componentes.participante', ['enum_turno' => $enum_turno,'estados' => $estados, ])
+
+ @endcomponent
+
+
+
+
+
+
+
+
+
+
+
+ Existe um CPF inválido em um dos discentes por favor corrija para continuar.
+
+ {{-- --}}
+
+
+
+
+@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');
+});