diff --git a/app/Arquivo.php b/app/Arquivo.php
index 197c57f01c16b128b19004a5e1993c10762b2ed4..32877871e80316fcc23e5011a79dcb03fef07299 100755
--- a/app/Arquivo.php
+++ b/app/Arquivo.php
@@ -15,7 +15,7 @@ class Arquivo extends Model
use SoftDeletes;
protected $fillable = [
- 'nome','titulo', 'versao', 'versaoFinal', 'data', 'trabalhoId', 'participanteId'
+ 'nome','titulo', 'versao', 'versaoFinal', 'data', 'trabalhoId', 'participanteId', 'proponenteId'
];
public function trabalho(){
@@ -29,6 +29,11 @@ class Arquivo extends Model
public function participante() {
return $this->belongsTo('App\Participante', 'participanteId');
}
+
+ public function proponente() {
+ return $this->belongsTo('App\Proponente', 'proponenteId');
+ }
+
public function avaliadors(){
return $this->belongsToMany('App\Avaliador', 'avaliadors_plano_trabalho')->withPivot('status', 'AnexoParecer', 'parecer', 'recomendacao', 'created_at');
}
diff --git a/app/Http/Controllers/AdministradorController.php b/app/Http/Controllers/AdministradorController.php
index 534ab16591d475674ca70fee07c7716357b6b6fe..4e48d64932ecd494f3974f86d87b83f93d39b4dc 100755
--- a/app/Http/Controllers/AdministradorController.php
+++ b/app/Http/Controllers/AdministradorController.php
@@ -1,1151 +1,1181 @@
-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 = [];
- $MediaAvalRelatParcial = 0;
- $AvalRelatParcialPendentes = 0;
- $MediaAvalRelatFinal = 0;
- $AvalRelatFinalPendentes = 0;
-
- 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);
- $MediaAvalRelatParcial += $aval->nota;
-
- if($aval->nota == null){
- $AvalRelatParcialPendentes += 1;
- }
- } else {
- array_push($AvalRelatFinal, $aval);
- $MediaAvalRelatFinal += $aval->nota;
-
- if($aval->nota == null){
- $AvalRelatFinalPendentes += 1;
- }
- }
- }
- }
-
- if(count($AvalRelatParcial) > 0){
- $MediaAvalRelatParcial = $MediaAvalRelatParcial / count($AvalRelatParcial);
- }
-
- if(count($AvalRelatFinal) > 0){
- $MediaAvalRelatFinal = $MediaAvalRelatFinal / count($AvalRelatFinal);
- }
-
- // 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,
- 'MediaAvalRelatParcial' => $MediaAvalRelatParcial,
- 'AvalRelatParcialPendentes' => $AvalRelatParcialPendentes,
- 'MediaAvalRelatFinal' => $MediaAvalRelatFinal,
- 'AvalRelatFinalPendentes' => $AvalRelatFinalPendentes,
- ]);
- }
-
- 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');
- }
-}
+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 = [];
+ $MediaAvalRelatParcial = 0;
+ $AvalRelatParcialPendentes = 0;
+ $MediaAvalRelatFinal = 0;
+ $AvalRelatFinalPendentes = 0;
+
+ if ($evento->numParticipantes == 0) {
+ $arquivo = Arquivo::where("trabalhoId", $trabalho->id)->first();
+
+ if (isset($arquivo)) {
+ $avals = AvaliacaoRelatorio::where('arquivo_id', $arquivo->id)->get();
+ } else {
+ $avals = [];
+ }
+
+ foreach ($avals as $aval) {
+ if ($aval->tipo == 'Parcial') {
+ array_push($AvalRelatParcial, $aval);
+ $MediaAvalRelatParcial += $aval->nota;
+
+ if($aval->nota == null){
+ $AvalRelatParcialPendentes += 1;
+ }
+ } else {
+ array_push($AvalRelatFinal, $aval);
+ $MediaAvalRelatFinal += $aval->nota;
+
+ if($aval->nota == null){
+ $AvalRelatFinalPendentes += 1;
+ }
+ }
+ }
+ }
+
+
+ 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);
+ $MediaAvalRelatParcial += $aval->nota;
+
+ if($aval->nota == null){
+ $AvalRelatParcialPendentes += 1;
+ }
+ } else {
+ array_push($AvalRelatFinal, $aval);
+ $MediaAvalRelatFinal += $aval->nota;
+
+ if($aval->nota == null){
+ $AvalRelatFinalPendentes += 1;
+ }
+ }
+ }
+ }
+
+ if(count($AvalRelatParcial) > 0){
+ $MediaAvalRelatParcial = $MediaAvalRelatParcial / count($AvalRelatParcial);
+ }
+
+ if(count($AvalRelatFinal) > 0){
+ $MediaAvalRelatFinal = $MediaAvalRelatFinal / count($AvalRelatFinal);
+ }
+
+ // 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,
+ 'MediaAvalRelatParcial' => $MediaAvalRelatParcial,
+ 'AvalRelatParcialPendentes' => $AvalRelatParcialPendentes,
+ 'MediaAvalRelatFinal' => $MediaAvalRelatFinal,
+ 'AvalRelatFinalPendentes' => $AvalRelatFinalPendentes,
+ ]);
+ }
+
+ 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/ArquivoController.php b/app/Http/Controllers/ArquivoController.php
index fa9b6ce25f44647aeef4956d7820daa44c115b79..87c03928f1a15cb7108a2ef8c4de201aa8d4e6c2 100755
--- a/app/Http/Controllers/ArquivoController.php
+++ b/app/Http/Controllers/ArquivoController.php
@@ -124,6 +124,7 @@ class ArquivoController extends Controller
$trabalho = Trabalho::where('id',$id)->first();
$participantes = $trabalho->participantes;
+ $evento = $trabalho->evento;
// Verficação de pendencia de substituição
$aux = count(Substituicao::where('status','Em Aguardo')->whereIn('participanteSubstituido_id',$trabalho->participantes->pluck('id'))->get());
@@ -139,12 +140,18 @@ class ArquivoController extends Controller
return redirect()->back();
}
- foreach ($participantes as $participante){
- array_push($arquivos, $participante->planoTrabalho);
+ if ($evento->numParticipantes != 0) {
+ foreach ($participantes as $participante){
+ array_push($arquivos, $participante->planoTrabalho);
+ }
+ } else {
+ $arquivo = Arquivo::where("trabalhoId", $trabalho->id)->first();
+ array_push($arquivos, $arquivo);
}
+
$hoje = Carbon::today('America/Recife');
$hoje = $hoje->toDateString();
- return view('planosTrabalho.listar')->with(['arquivos' => $arquivos, 'hoje' => $hoje, 'trabalho' => $trabalho]);
+ return view('planosTrabalho.listar')->with(['arquivos' => $arquivos, 'hoje' => $hoje, 'trabalho' => $trabalho, 'evento' => $evento]);
}
public function anexarRelatorio(Request $request){
diff --git a/app/Http/Controllers/AvaliacaoRelatorioController.php b/app/Http/Controllers/AvaliacaoRelatorioController.php
index 97a31aa99051e6819e146aaa595df3c222f6a3ac..dd1af6268b341515613c6ffe6a78b404ce8b4cc7 100644
--- a/app/Http/Controllers/AvaliacaoRelatorioController.php
+++ b/app/Http/Controllers/AvaliacaoRelatorioController.php
@@ -86,9 +86,11 @@ class AvaliacaoRelatorioController extends Controller
public function atribuicaoAvaliador(Request $request){
$trabalho = Trabalho::find($request->trabalho_id);
- foreach ($trabalho->participantes as $participante){
- $avaliadoresId= $request->input('avaliadores_'.$participante->planoTrabalho->id.'_id');
- // utilizado desta forma pois a versão do PHP 7.2 é preciso que o $array usado na função count($array) não pode ser um valor NULL.
+ $evento = $trabalho->evento;
+ if ($evento->numParticipantes == 0) {
+ $arquivo = Arquivo::where("trabalhoId", $trabalho->id)->first();
+
+ $avaliadoresId = $request->input('avaliadores_'.$arquivo->id.'_id');
$numeroDeItens = is_countable( $avaliadoresId ) ? count( $avaliadoresId ) : 0;
for ($i = 0; $i < $numeroDeItens; $i++){
@@ -97,7 +99,7 @@ class AvaliacaoRelatorioController extends Controller
'comentario'=>'',
'nota'=>null,
'user_id'=>$avaliadoresId[$i],
- 'arquivo_id'=>$participante->planoTrabalho->id,
+ 'arquivo_id'=>$arquivo->id,
]);
$avaliacao->save();
Notification::send( $avaliacao->user, new AtribuicaoAvaliadorRelatorioNotification($avaliacao->tipo, $avaliacao->plano, $trabalho, $avaliacao->user));
@@ -115,6 +117,38 @@ class AvaliacaoRelatorioController extends Controller
$avaliador->save();
}
}
+
+ } else {
+ foreach ($trabalho->participantes as $participante){
+ $avaliadoresId= $request->input('avaliadores_'.$participante->planoTrabalho->id.'_id');
+ // utilizado desta forma pois a versão do PHP 7.2 é preciso que o $array usado na função count($array) não pode ser um valor NULL.
+ $numeroDeItens = is_countable( $avaliadoresId ) ? count( $avaliadoresId ) : 0;
+
+ for ($i = 0; $i < $numeroDeItens; $i++){
+ $avaliacao = AvaliacaoRelatorio::create([
+ 'tipo'=>$request->tipo_relatorio,
+ 'comentario'=>'',
+ 'nota'=>null,
+ 'user_id'=>$avaliadoresId[$i],
+ 'arquivo_id'=>$participante->planoTrabalho->id,
+ ]);
+ $avaliacao->save();
+ Notification::send( $avaliacao->user, new AtribuicaoAvaliadorRelatorioNotification($avaliacao->tipo, $avaliacao->plano, $trabalho, $avaliacao->user));
+
+ if(Avaliador::where('user_id',$avaliadoresId[$i])->get()->count()==0){
+ $userTemp = User::find($avaliadoresId[$i]);
+ if($userTemp->instituicao==null || $userTemp->instituicao == "UFAPE" || $userTemp->instituicao == "Universidade Federal do Agreste de Pernambuco"){
+ $tipoAvaliador = "Interno";
+ }else{
+ $tipoAvaliador = "Externo";
+ }
+ $avaliador = new Avaliador();
+ $avaliador->tipo = $tipoAvaliador;
+ $avaliador->user_id = $avaliadoresId[$i];
+ $avaliador->save();
+ }
+ }
+ }
}
return redirect()->back();
}
diff --git a/app/Http/Controllers/TrabalhoController.php b/app/Http/Controllers/TrabalhoController.php
index cef11cd4d22adc21f370416b3ef7c7f6b172d152..7a88a10f017b8b6aab94b5311607fd098954525a 100755
--- a/app/Http/Controllers/TrabalhoController.php
+++ b/app/Http/Controllers/TrabalhoController.php
@@ -1,1963 +1,2022 @@
- '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();
-
- $AvalRelatParcial = [];
- $AvalRelatFinal = [];
-
- foreach ($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);
- }
- }
- }
-
- 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,
- 'AvalRelatParcial' => $AvalRelatParcial,
- 'AvalRelatFinal' => $AvalRelatFinal,
- ]);
- }
-
- 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();
+ $proponente = Proponente::where('user_id', $projeto->proponente->user_id)->first();
+
+ // Verficação de pendencia de substituição
+ $aux = count(Substituicao::where('status','Em Aguardo')->whereIn('participanteSubstituido_id',$projeto->participantes->pluck('id'))->get());
+ $flagSubstituicao = 1;
+ if($aux != 0){
+ $flagSubstituicao = -1;
+ }
+
+ $trabalhos_user = TrabalhoUser::where('trabalho_id', $projeto->id)->get();
+
+ $AvalRelatParcial = [];
+ $AvalRelatFinal = [];
+
+ foreach ($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);
+ }
+ }
+ }
+
+ 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,
+ 'AvalRelatParcial' => $AvalRelatParcial,
+ 'AvalRelatFinal' => $AvalRelatFinal,
+ 'proponente' => $proponente
+ ]);
+ }
+
+ 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,
+ 'proponente' => $proponente
+ ]);
+ }
+
+ 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);
+ $proponente = Proponente::where('user_id', Auth::user()->id)->first();
+
+ 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 ($evento->numParticipantes != 0) {
+ 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();
+
+ }
+
+ }
+
+ }
+
+ } else {
+ $data['nomePlanoTrabalho'] = $request->nomePlanoTrabalho;
+
+ if (Arquivo::where('proponenteId', $proponente->id)->where('trabalhoId', $trabalho->id)->count()) {
+ $arquivo = Arquivo::where('proponenteId', $proponente->id)->where('trabalhoId', $trabalho->id)->first();
+ $path = 'trabalhos/' . $evento->id . '/' . $trabalho->id . '/';
+ $nome = $data['nomePlanoTrabalho'] . ".pdf";
+ $titulo = $data['nomePlanoTrabalho'];
+ if ($request->has('anexoPlanoTrabalho')) {
+ $file = $request->anexoPlanoTrabalho;
+ Storage::putFileAs($path, $file, $nome);
+ } else {
+ if($arquivo->nome != $path.$nome) {
+ Storage::rename( $arquivo->nome, $path.$nome );
+ }
+ }
+ $arquivo->update([
+ 'titulo' => $titulo,
+ 'nome' => $path . $nome,
+ 'data' => now(),
+ ]);
+ } else {
+ $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->proponenteId = $proponente->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);
+ $proponente = Proponente::where('user_id', Auth::user()->id)->first();
+ $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();
+
+ }
+
+ }
+ } else {
+ $data['nomePlanoTrabalho'] = $request->nomePlanoTrabalho;
+ 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->proponenteId = $proponente->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/Http/Requests/StoreTrabalho.php b/app/Http/Requests/StoreTrabalho.php
index 4cc981ca88936f97f51372b5bf72070c1c8d1160..8c7edd08624ce6768831ddf6798aa16e93f2a896 100755
--- a/app/Http/Requests/StoreTrabalho.php
+++ b/app/Http/Requests/StoreTrabalho.php
@@ -31,9 +31,6 @@ class StoreTrabalho extends FormRequest
$evento = Evento::find($this->editalId);
$rules = [];
- if(!($this->has('marcado'))){
- $rules['erro'] = ['required'];
- }
if($this->has('marcado')){
foreach ($this->get('marcado') as $key => $value) {
if( intval($value) == $key){
@@ -67,6 +64,9 @@ class StoreTrabalho extends FormRequest
}
}
+ } else {
+ $rules['anexoPlanoTrabalho'] = ['required'];
+ $rules['nomePlanoTrabalho'] = ['required', 'string'];
}
if($this->has('rascunho')) {
diff --git a/app/Http/Requests/UpdateTrabalho.php b/app/Http/Requests/UpdateTrabalho.php
index 4d8cff53606e972f91870ae01f69e420d413b583..83534ac6bce9723515cf2c87259bd6d3f522437d 100755
--- a/app/Http/Requests/UpdateTrabalho.php
+++ b/app/Http/Requests/UpdateTrabalho.php
@@ -6,6 +6,7 @@ use App\Arquivo;
use App\Evento;
use App\Participante;
use App\Trabalho;
+use App\Proponente;
use Illuminate\Validation\Rule;
use Illuminate\Support\Facades\Auth;
use Illuminate\Foundation\Http\FormRequest;
@@ -32,9 +33,6 @@ class UpdateTrabalho extends FormRequest
$projeto = Trabalho::find($this->id);
$evento = Evento::find($this->editalId);
- if(!($this->has('marcado'))){
- $rules['erro'] = ['required'];
- }
if($this->has('marcado')){
foreach ($this->get('marcado') as $key => $value) {
if( intval($value) == $key){
@@ -67,20 +65,17 @@ class UpdateTrabalho extends FormRequest
if($evento->tipo != "PIBEX") {
$rules['media_do_curso.' . $value] = ['required', 'string'];
}
+ $rules['anexoPlanoTrabalho.'.$value] = [Rule::requiredIf($participante->planoTrabalho == null)];
$rules['nomePlanoTrabalho.'.$value] = ['required', 'string'];
-
- if($participante !=null){
- $arquivo = Arquivo::where('participanteId',$participante->id)->where('trabalhoId',$projeto->id)->first();
- if($arquivo == null || $this->nomePlanoTrabalho[$value] != $arquivo->titulo){
- $rules['anexoPlanoTrabalho.'.$value] = ['required', 'mimes:pdf'];
- }
- }else{
- $rules['anexoPlanoTrabalho.'.$value] = ['required', 'mimes:pdf'];
- }
-
+
}
}
+ } else {
+ $arquivo = Arquivo::where("trabalhoId", $projeto->id)->first();
+ $rules['anexoPlanoTrabalho'] = [Rule::requiredIf($arquivo == null)];
+ $rules['nomePlanoTrabalho'] = [Rule::requiredIf($arquivo->titulo == null), 'string'];
}
+
// dd($this->all());
if ($this->has('rascunho')) {
$rules = [];
diff --git a/app/Proponente.php b/app/Proponente.php
index 8ccf27ecdbae4f2cc44fd25b26d4064dfdc69a30..d8b3fa18ce02d0e830ebbc19cd119f0c2b1d5113 100755
--- a/app/Proponente.php
+++ b/app/Proponente.php
@@ -11,6 +11,9 @@ class Proponente extends Model
public function user(){
return $this->belongsTo('App\User');
}
+ public function planoTrabalho() {
+ return $this->hasOne('App\Arquivo', 'proponenteId');
+ }
public function trabalhos(){
return $this->hasMany('App\Trabalho');
}
diff --git a/database/migrations/2022_11_08_214901_add_conflitos_interesse_to_trabalhos_table.php b/database/migrations/2022_11_08_162425_add_conflitos_interesse_to_trabalhos_table.php
similarity index 100%
rename from database/migrations/2022_11_08_214901_add_conflitos_interesse_to_trabalhos_table.php
rename to database/migrations/2022_11_08_162425_add_conflitos_interesse_to_trabalhos_table.php
diff --git a/database/migrations/2022_11_21_161801_alter_table_arquivos3.php b/database/migrations/2022_11_21_161801_alter_table_arquivos3.php
new file mode 100644
index 0000000000000000000000000000000000000000..5726f4fd781f19e8c0222e1be10d95dfe098272d
--- /dev/null
+++ b/database/migrations/2022_11_21_161801_alter_table_arquivos3.php
@@ -0,0 +1,30 @@
+integer('participanteId')->nullable()->change();
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ //
+ }
+}
diff --git a/database/migrations/2022_11_22_115005_add_proponente_arquivos_table.php b/database/migrations/2022_11_22_115005_add_proponente_arquivos_table.php
new file mode 100644
index 0000000000000000000000000000000000000000..48a1d24e6b62d4755a9fc3f5e84bf0b7d47cc193
--- /dev/null
+++ b/database/migrations/2022_11_22_115005_add_proponente_arquivos_table.php
@@ -0,0 +1,32 @@
+integer('proponenteId')->nullable();
+
+ $table->foreign('proponenteId')->references('id')->on('proponentes');
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ //
+ }
+}
diff --git a/resources/views/administrador/analisar.blade.php b/resources/views/administrador/analisar.blade.php
index 488d52f35d53061f28af4629b9a71359ec9842be..4a7daed38906a8cf5280697d0730066509dfa87c 100755
--- a/resources/views/administrador/analisar.blade.php
+++ b/resources/views/administrador/analisar.blade.php
@@ -103,12 +103,13 @@
Proponente: {{ App\Proponente::find($trabalho->proponente_id)->user->name }}
-
+ @if ($evento->numParticipantes != 0)
Discentes:
@foreach($trabalho->participantes as $participante)
{{$participante->user->name}};
@endforeach
+ @endif
@if($trabalho->grande_area_id != null && $trabalho->area_id != null && $trabalho->sub_area_id != null)
{{$trabalho->grandeArea->nome}} > {{$trabalho->area->nome}} > {{$trabalho->subArea->nome}}
diff --git a/resources/views/administrador/analisarProposta.blade.php b/resources/views/administrador/analisarProposta.blade.php
index 023cdf8cc8089f40f0b27a0f869c367416e59ddd..93762582628fe6a44b66eebf6c9b7dce1ffe74d7 100644
--- a/resources/views/administrador/analisarProposta.blade.php
+++ b/resources/views/administrador/analisarProposta.blade.php
@@ -1,2158 +1,2199 @@
-@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
-
-
-
Media das avaliações: {{$MediaAvalRelatParcial}}
- Avaliações pendentes: {{$AvalRelatParcialPendentes}}
-
-
-
- @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
-
-
-
Media das avaliações: {{$MediaAvalRelatFinal}}
- Avaliações pendentes: {{$AvalRelatFinalPendentes}}
-
-
-
- @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
+
+
+
+
+
+
+ @if ($evento->numParticipantes != 0)
+
+
+
+
+
+
+
+
+
+ @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
+
+
+
+
+
+
+ @endif
+
+ {{--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
+
+
+
Media das avaliações: {{$MediaAvalRelatParcial}}
+ Avaliações pendentes: {{$AvalRelatParcialPendentes}}
+
+
+
+ @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
+
+
+
Media das avaliações: {{$MediaAvalRelatFinal}}
+ Avaliações pendentes: {{$AvalRelatFinalPendentes}}
+
+
+
+ @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/resultadosProjetos.blade.php b/resources/views/administrador/resultadosProjetos.blade.php
index 636f4fd51414a65ef167e0b2f9c78d87514983d6..b7dc5a05c6e41ad9cdfdb880f3da7c879b23903e 100644
--- a/resources/views/administrador/resultadosProjetos.blade.php
+++ b/resources/views/administrador/resultadosProjetos.blade.php
@@ -60,7 +60,9 @@
N. Planos |
Avaliador |
Status |
+ @if ($evento->numParticipantes != 0)
Bolsas |
+ @endif
@@ -84,7 +86,7 @@
@endif
- {{$trabalho->participantes->count()}}
+ @if ($evento->numParticipantes != 0) {{$trabalho->participantes->count()}} @else {{$trabalho->proponente->count()}} @endif
|
@if($trabalho->avaliadors->count() > 0)
@@ -119,11 +121,13 @@
@else
| Pendente |
@endif
+ @if ($evento->numParticipantes != 0)
|
+ @endif
@php $cont+=1;@endphp
@endif
@@ -154,7 +158,9 @@
N. Planos |
Avaliador |
Status |
+ @if ($evento->numParticipantes != 0)
Bolsas |
+ @endif
@@ -178,7 +184,7 @@
@endif
- {{$trabalho->participantes->count()}}
+ @if ($evento->numParticipantes != 0) {{$trabalho->participantes->count()}} @else {{$trabalho->proponente->count()}} @endif
|
@if($trabalho->avaliadors->count() > 0)
@@ -213,11 +219,13 @@
@else
| Pendente |
@endif
+ @if ($evento->numParticipantes != 0)
|
+ @endif
@php $cont+=1;@endphp
@endif
@@ -249,7 +257,9 @@
N. Planos |
Avaliador |
Status |
+ @if ($evento->numParticipantes != 0)
Bolsas |
+ @endif
@@ -273,7 +283,7 @@
@endif
- {{$trabalho->participantes->count()}}
+ @if ($evento->numParticipantes != 0) {{$trabalho->participantes->count()}} @else {{$trabalho->proponente->count()}} @endif
|
@if($trabalho->avaliadors->count() > 0)
@@ -308,11 +318,13 @@
@else
| Pendente |
@endif
+ @if ($evento->numParticipantes != 0)
|
+ @endif
@php $cont+=1;@endphp
@endif
diff --git a/resources/views/administrador/resultadosProjetosCotas.blade.php b/resources/views/administrador/resultadosProjetosCotas.blade.php
index 85dc144df8b44d2cb7bc607da778f981feefbd26..82e4683421375fda08c5e34691360eb5f51b9e4a 100644
--- a/resources/views/administrador/resultadosProjetosCotas.blade.php
+++ b/resources/views/administrador/resultadosProjetosCotas.blade.php
@@ -63,7 +63,9 @@
N. Planos |
Avaliador |
Status |
+ @if ($evento->numParticipantes != 0)
Bolsas |
+ @endif
@@ -84,7 +86,7 @@
{{$trabalho->area->nome}}
- {{$trabalho->participantes->count()}}
+ @if ($evento->numParticipantes != 0) {{$trabalho->participantes->count()}} @else {{$trabalho->proponente->count()}} @endif
|
@if($trabalho->avaliadors->count() > 0)
@@ -119,11 +121,13 @@
@else
| Pendente |
@endif
+ @if ($evento->numParticipantes != 0)
|
+ @endif
@php $cont+=1;@endphp
@endif
@@ -151,7 +155,9 @@
N. Planos |
Avaliador |
Status |
+ @if ($evento->numParticipantes != 0)
Bolsas |
+ @endif
@@ -171,7 +177,7 @@
{{$trabalho->area->nome}}
- {{$trabalho->participantes->count()}}
+ @if ($evento->numParticipantes != 0) {{$trabalho->participantes->count()}} @else {{$trabalho->proponente->count()}} @endif
|
@if($trabalho->avaliadors->count() > 0)
@@ -206,11 +212,13 @@
@else
| Pendente |
@endif
+ @if ($evento->numParticipantes != 0)
|
+ @endif
@php $cont+=1;@endphp
@endif
@@ -239,7 +247,9 @@
N. Planos |
Avaliador |
Status |
+ @if ($evento->numParticipantes != 0)
Bolsas |
+ @endif
@@ -260,7 +270,7 @@
{{$trabalho->area->nome}}
- {{$trabalho->participantes->count()}}
+ @if ($evento->numParticipantes != 0) {{$trabalho->participantes->count()}} @else {{$trabalho->proponente->count()}} @endif
|
@if($trabalho->avaliadors->count() > 0)
@@ -295,11 +305,13 @@
@else
| Pendente |
@endif
+ @if ($evento->numParticipantes != 0)
|
+ @endif
@php $cont+=1;@endphp
@endif
@@ -320,7 +332,7 @@
{{$trabalho->area->nome}}
- {{$trabalho->participantes->count()}}
+ @if ($evento->numParticipantes != 0) {{$trabalho->participantes->count()}} @else {{$trabalho->proponente->count()}} @endif
|
@if($trabalho->avaliadors->count() > 0)
@@ -355,11 +367,13 @@
@else
| Pendente |
@endif
+ @if ($evento->numParticipantes != 0)
|
+ @endif
@php $cont+=1;@endphp
@endif
@@ -387,7 +401,9 @@
N. Planos |
Avaliador |
Status |
+ @if ($evento->numParticipantes != 0)
Bolsas |
+ @endif
@@ -408,7 +424,7 @@
{{$trabalho->area->nome}}
- {{$trabalho->participantes->count()}}
+ @if ($evento->numParticipantes != 0) {{$trabalho->participantes->count()}} @else {{$trabalho->proponente->count()}} @endif
|
@if($trabalho->avaliadors->count() > 0)
@@ -443,11 +459,13 @@
@else
| Pendente |
@endif
+ @if ($evento->numParticipantes != 0)
|
+ @endif
@php $cont+=1;@endphp
@endif
@@ -468,7 +486,7 @@
{{$trabalho->area->nome}}
- {{$trabalho->participantes->count()}}
+ @if ($evento->numParticipantes != 0) {{$trabalho->participantes->count()}} @else {{$trabalho->proponente->count()}} @endif
|
@if($trabalho->avaliadors->count() > 0)
@@ -503,11 +521,13 @@
@else
| Pendente |
@endif
+ @if ($evento->numParticipantes != 0)
|
+ @endif
@php $cont+=1;@endphp
@endif
diff --git a/resources/views/administrador/visualizarParecerInterno.blade.php b/resources/views/administrador/visualizarParecerInterno.blade.php
index 51d647810f334ff92587de388410f1439a120f28..bedefe9a470a8e0f4891ca8bd0d804aa46c3644c 100644
--- a/resources/views/administrador/visualizarParecerInterno.blade.php
+++ b/resources/views/administrador/visualizarParecerInterno.blade.php
@@ -135,11 +135,18 @@
statusJustificativaAutorizacaoEtica =='recusado' ) checked @else disabled @endif>
- {{--Planos de trabalho--}}
+ {{--Planos de trabalho MUDAR AQUI--}}
@if ($trabalho->participantes != null)
-
Planos
+ @if ($evento->numParticipantes == 0)
+ @php
+ $arquivo = App\Arquivo::where("trabalhoId", $trabalho->id)->first();
+ @endphp
+
Arquivo
+ @else
+
Planos
+ @endif
@else
-
@endif
diff --git a/resources/views/avaliacaoRelatorio/avaliacao.blade.php b/resources/views/avaliacaoRelatorio/avaliacao.blade.php
index 69058b8e69b372f88e8a382a6f5d104c78e6c19b..d001b55f2fac8db9c816a982dba0970ee9a666a8 100644
--- a/resources/views/avaliacaoRelatorio/avaliacao.blade.php
+++ b/resources/views/avaliacaoRelatorio/avaliacao.blade.php
@@ -1,8 +1,13 @@
@php $arquivo = \App\Arquivo::find($aval->arquivo_id); @endphp
+ @if ($arquivo->trabalho->evento->numParticipante != 0)
Discente:
{{\App\Participante::find($arquivo->participanteId)->user->name}}
+ @else
+ Proponente:
+ {{$arquivo->trabalho->proponente->user->name}}
+ @endif
diff --git a/resources/views/avaliacaoRelatorio/index.blade.php b/resources/views/avaliacaoRelatorio/index.blade.php
index 0ee0a00f637c519806f437dce8dd7d19a173574b..924add7897596c59b1906e2c52e90d63a7b46169 100644
--- a/resources/views/avaliacaoRelatorio/index.blade.php
+++ b/resources/views/avaliacaoRelatorio/index.blade.php
@@ -48,7 +48,7 @@
Nome do Evento |
Nome do Projeto |
Nome do plano |
-
Discente |
+
Nome |
Tipo do Relatório |
Status |
@@ -60,7 +60,7 @@
{{ $avaliacao->plano->trabalho->evento->nome }} |
{{ $avaliacao->plano->trabalho->titulo }} |
{{ $avaliacao->plano->titulo }} |
-
{{ $avaliacao->plano->participante->user->name }} |
+
{{ $avaliacao->plano->trabalho->evento->numParticipantes == 0 ? $avaliacao->plano->proponente->user->name : $avaliacao->plano->participante->user->name }} |
{{ $avaliacao->tipo }} |
diff --git a/resources/views/avaliador/listarTrabalhos.blade.php b/resources/views/avaliador/listarTrabalhos.blade.php
index 78c6ade3f567a84445b48c1bd58c49ff9ea11429..430c841af94627143594427e466530d7887f23e1 100755
--- a/resources/views/avaliador/listarTrabalhos.blade.php
+++ b/resources/views/avaliador/listarTrabalhos.blade.php
@@ -85,22 +85,31 @@
|
- @foreach( $trabalho->participantes as $participante)
+ @if ($evento->numParticipantes == 0)
@php
- if( App\Arquivo::where('participanteId', $participante->id)->first() != null){
- $planoTrabalho = App\Arquivo::where('participanteId', $participante->id)->first()->nome;
- }else{
- $planoTrabalho = null;
- }
+ $planoTrabalho = App\Arquivo::where("trabalhoId", $trabalho->id)->first();
@endphp
- @if ($planoTrabalho != null)
-
-
-
- @else
- Não há planos de trabalho.
- @endif
- @endforeach
+
+
+
+ @else
+ @foreach( $trabalho->participantes as $participante)
+ @php
+ if( App\Arquivo::where('participanteId', $participante->id)->first() != null){
+ $planoTrabalho = App\Arquivo::where('participanteId', $participante->id)->first()->nome;
+ }else{
+ $planoTrabalho = null;
+ }
+ @endphp
+ @if ($planoTrabalho != null)
+
+
+
+ @else
+ Não há planos de trabalho.
+ @endif
+ @endforeach
+ @endif
|
@@ -186,7 +195,15 @@
|
-
+ |
+ @if ($evento->numParticipantes == 0)
+ @php
+ $planoTrabalho = App\Arquivo::where("trabalhoId", $trabalho->id)->first();
+ @endphp
+
+
+
+ @else
@foreach( $trabalho->participantes as $participante)
@php
if( App\Arquivo::where('participanteId', $participante->id)->first() != null){
@@ -203,6 +220,7 @@
Não há planos de trabalho.
@endif
@endforeach
+ @endif
|
@if($trabalho->pivot->recomendacao == 'RECOMENDADO')
diff --git a/resources/views/avaliador/parecerInterno.blade.php b/resources/views/avaliador/parecerInterno.blade.php
index 21163cd8c773f6264696092c70a62fd128e93dc5..cb3b9243ea3cb0b5c798e1db60fbc20afc177c14 100644
--- a/resources/views/avaliador/parecerInterno.blade.php
+++ b/resources/views/avaliador/parecerInterno.blade.php
@@ -20,6 +20,7 @@
@component('projeto.formularioVisualizar.anexos2', ['edital' => $trabalho->evento, 'projeto' => $trabalho])
@endcomponent
+ @if ($evento->numParticipantes != 0)
+ @endif
{{-- Parecer Interno --}}
diff --git a/resources/views/evento/criarEvento.blade.php b/resources/views/evento/criarEvento.blade.php
index 2ff0a7467d2a3a7929a469813f717f661e08088f..df6a9cfae422506788f49efbc4f2a36b2c6f86d1 100755
--- a/resources/views/evento/criarEvento.blade.php
+++ b/resources/views/evento/criarEvento.blade.php
@@ -60,7 +60,7 @@
-
+
@error('numParticipantes')
diff --git a/resources/views/evento/editarEvento.blade.php b/resources/views/evento/editarEvento.blade.php
index 026d58d11fab8ec8eba1356a2050f558d501a51c..d6c81078662cb755684c9fccd53fe78b73362ab6 100755
--- a/resources/views/evento/editarEvento.blade.php
+++ b/resources/views/evento/editarEvento.blade.php
@@ -64,7 +64,7 @@
-
+
@error('numParticipantes')
diff --git a/resources/views/evento/formulario/proponente.blade.php b/resources/views/evento/formulario/proponente.blade.php
index cbcf66a4ad64e9ad1a64fc3897037d3ba5136fd2..c870bf965a5dbb8fa4f31c55b427681917723882 100755
--- a/resources/views/evento/formulario/proponente.blade.php
+++ b/resources/views/evento/formulario/proponente.blade.php
@@ -85,6 +85,38 @@
@endif
+ @if ($edital->numParticipantes == 0)
+
+
+
+
+
+
+
+
+
+ @error('nomePlanoTrabalho')
+
+ {{ $message }}
+
+ @enderror
+
+
+
+
+
+
+
+
+ @error('anexoPlanoTrabalho')
+
+ {{ $message }}
+
+ @enderror
+
+ @endif
+
+ @if ($edital->numParticipantes != 0)
@component('componentes.participante', ['enum_turno' => $enum_turno,'estados' => $estados, ])
@endcomponent
+ @endif
diff --git a/resources/views/evento/submeterTrabalho.blade.php b/resources/views/evento/submeterTrabalho.blade.php
index 7161843276758f37d5e795caaa5462e1bb84677f..11834b2b20df7960edb6a1af43bde6fd0b56e304 100755
--- a/resources/views/evento/submeterTrabalho.blade.php
+++ b/resources/views/evento/submeterTrabalho.blade.php
@@ -1,759 +1,767 @@
-@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')}}" --}}
+
+ @if ($edital->numParticipantes != 0)
+
+ @component('componentes.participante', ['enum_turno' => $enum_turno,'estados' => $estados, ])
+
+ @endcomponent
+
+ @endif
+
+
+
+
+
+
+
+
+
+
+ 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/planosTrabalho/listar.blade.php b/resources/views/planosTrabalho/listar.blade.php
index ccf5feeda5162c90ac839ac923505335baf7c9ba..cac804e0e152649de99de10ae504c179f7696a87 100644
--- a/resources/views/planosTrabalho/listar.blade.php
+++ b/resources/views/planosTrabalho/listar.blade.php
@@ -21,18 +21,21 @@
| Projeto |
Proponente |
Título do Plano |
+ @if ($evento->numParticipantes != 0)
Discente |
-
Relatório Parcial |
-
Relatório Final |
+ @endif
+
Relatório Parcial |
+
Relatório Final |
-
@foreach($arquivos as $arquivo)
{{$arquivo->trabalho->titulo}} |
{{$arquivo->trabalho->proponente->user->name}} |
{{$arquivo->titulo}} |
+ @if ($evento->numParticipantes != 0)
{{$arquivo->participante->user->name}} |
+ @endif
@if((Auth::user()->proponentes != null) && ($arquivo->relatorioParcial == null) &&
($arquivo->trabalho->evento->dt_inicioRelatorioParcial <= $hoje) && ($hoje <= $arquivo->trabalho->evento->dt_fimRelatorioParcial))
diff --git a/resources/views/projeto/editaFormulario/anexos.blade.php b/resources/views/projeto/editaFormulario/anexos.blade.php
index 2706755ccf17fde33a1b4b2761df528761de80ca..7b35ec3e21741b66690f5c79acf1a6dae5329ff7 100755
--- a/resources/views/projeto/editaFormulario/anexos.blade.php
+++ b/resources/views/projeto/editaFormulario/anexos.blade.php
@@ -181,7 +181,7 @@
-
+
-
-
-
-
-
-
+@extends('layouts.app')
+
+@section('content')
+
+
+ {{-- action="{{route('trabalho.store')}}" --}}
+
+ @if ($edital->numParticipantes != 0)
+
+ @component('componentes.participante', ['enum_turno' => $enum_turno,'estados' => $estados, ])
+
+ @endcomponent
+
+ @endif
+
+
+
+
+
+
+
+
+
+
+ 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/proponente2.blade.php b/resources/views/projeto/formularioVisualizar/proponente2.blade.php
index 678eac0b66668e1d82eb72f1c12fb8690d37b75d..0d5ca1169be895bea5105fbc27e504016e3155af 100644
--- a/resources/views/projeto/formularioVisualizar/proponente2.blade.php
+++ b/resources/views/projeto/formularioVisualizar/proponente2.blade.php
@@ -76,6 +76,23 @@
@endif
+ @if ($edital->numParticipantes == 0)
+ @php
+ $arquivo = App\Arquivo::where("trabalhoId", $projeto->id)->first();
+ @endphp
+
+
+
+
+ }})
+
+
+ @endif
+
@if ($projeto->conflitosInteresse != null &&
(Auth::user()->tipo == 'administrador' ||
Auth::user()->tipo == 'administradorResponsavel' ||
diff --git a/resources/views/projeto/visualizar.blade.php b/resources/views/projeto/visualizar.blade.php
index 9d7a1dda5dadabdea38075f4c5a857f0caee26fb..d8b7ec15ffd737666019cbef447e3c0e94689ac0 100755
--- a/resources/views/projeto/visualizar.blade.php
+++ b/resources/views/projeto/visualizar.blade.php
@@ -1,779 +1,783 @@
-@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/resources/views/proponente/projetos.blade.php b/resources/views/proponente/projetos.blade.php
index e4e9f5b3394fb07597d3c537f6ae3c6a064c882f..86509b804495f3be2c9911707428cd1673f5dc4c 100755
--- a/resources/views/proponente/projetos.blade.php
+++ b/resources/views/proponente/projetos.blade.php
@@ -108,7 +108,7 @@
@endif
- @if( $projeto->status== 'aprovado')
+ @if( $projeto->status== 'aprovado' && $projeto->evento->numParticipantes != 0)
Solicitar Substituições
diff --git a/resources/views/proponente/projetosEdital.blade.php b/resources/views/proponente/projetosEdital.blade.php
index 49bcbf1eb6b35139354ffbaafbfa1ccb064fa657..c4a1a11f877b1ffb24fd18b143ad7e1f43b563da 100755
--- a/resources/views/proponente/projetosEdital.blade.php
+++ b/resources/views/proponente/projetosEdital.blade.php
@@ -124,7 +124,7 @@
@endif
- @if( $projeto->status== 'aprovado')
+ @if( $projeto->status== 'aprovado' && $projeto->evento->numParticipantes != 0)
Solicitar Substituições
|