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.']);; } $estados = array( 'AC' => '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', ); $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' => $estados, ]); } // public function store(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(); // // if($proponente == null){ // // return view('proponente.cadastro'); // // } // //$trabalho->proponentes()->save($proponente); // //dd($proponente); // $trabalho = "trabalho"; // if($evento->inicioSubmissao > $mytime){ // if($mytime >= $evento->fimSubmissao){ // return redirect()->route('home'); // } // } // //--Salvando os dados da submissão temporariamente // // $trabalho = $this->armazenarInfoTemp($request, $proponente); // //O anexo de Decisão do CONSU dependo do tipo de edital // if( $evento->tipo == 'PIBIC' || $evento->tipo == 'PIBIC-EM'){ // $validatedData = $request->validate([ // 'editalId' => ['required', 'string'], // 'nomeProjeto' => ['required', 'string'], // 'grandeArea' => ['required', 'string'], // 'area' => ['required', 'string'], // 'subArea' => ['required', 'string'], // 'pontuacaoPlanilha' => ['required', 'string'], // 'linkGrupo' => ['required', 'string', 'link_grupo'], // 'linkLattesEstudante' => ['required', 'string', 'link_lattes'], // 'nomeParticipante.*' => ['required', 'string'], // 'emailParticipante.*' => ['required', 'string'], // 'funcaoParticipante' => ['required', 'array', 'size:'.$request->countParticipante], // 'funcaoParticipante.*' => ['required', 'string'], // 'nomePlanoTrabalho.*' => ['nullable', 'string'], // //--Verificando se anexos já foram submetidos // 'anexoProjeto' => [($request->anexoProjetoPreenchido!=='sim'?'required':''), 'file', 'mimes:pdf', 'max:2048'], // 'anexoCONSU' => [($request->anexoConsuPreenchido!=='sim'?'required':''), 'file', 'mimes:pdf', 'max:2048'], // 'botao' => ['required'], // 'anexoComiteEtica' => [($request->anexoComitePreenchido!=='sim'&&$request->anexoJustificativaPreenchido!=='sim'?'required_without:justificativaAutorizacaoEtica':''), 'file', 'mimes:pdf', 'max:2048'], // 'justificativaAutorizacaoEtica' => [($request->anexoJustificativaPreenchido!=='sim'&&$request->anexoComitePreenchido!=='sim'?'required_without:anexoComiteEtica':''), 'file', 'mimes:pdf', 'max:2048'], // 'anexoLattesCoordenador' => [($request->anexoLattesPreenchido!=='sim'?'required': ''), 'file', 'mimes:pdf', 'max:2048'], // 'anexoPlanilha' => [($request->anexoPlanilhaPreenchido!=='sim'?'required':''), 'file', 'mimes:xls,xlsx,ods', 'max:2048'], // 'anexoPlanoTrabalho.*' => ['nullable', 'file', 'mimes:pdf', 'max:2048'], // ]); // // if(gettype($this->validarAnexosRascunho($request, $trabalho)) != 'integer'){ // // return $this->validarAnexosRascunho($request, $trabalho); // // } // //$trabalho = Trabalho::create([ // $trabalho['titulo'] = $request->nomeProjeto; // $trabalho['coordenador_id'] = $coordenador->id; // $trabalho['grande_area_id'] = $request->grandeArea; // $trabalho['area_id'] = $request->area; // $trabalho['sub_area_id'] = $request->subArea; // $trabalho['pontuacaoPlanilha'] = $request->pontuacaoPlanilha; // $trabalho['linkGrupoPesquisa'] = $request->linkGrupo; // $trabalho['linkLattesEstudante'] = $request->linkLattesEstudante; // $trabalho['data'] = $mytime; // $trabalho['evento_id'] = $request->editalId; // $trabalho['status'] = 'Submetido'; // $trabalho['proponente_id'] = $proponente->id; // //Anexos // $trabalho['anexoDecisaoCONSU'] = $request->anexoCONSU != null ? $request->anexoCONSU : $trabalho->anexoDecisaoCONSU; // $trabalho['anexoProjeto'] = $request->anexoProjeto != null ? $request->anexoProjeto : $trabalho->anexoProjeto; // $trabalho['anexoAutorizacaoComiteEtica'] = $request->anexoComiteEtica != null ? $request->anexoComiteEtica : $trabalho->anexoAutorizacaoComiteEtica; // $trabalho['justificativaAutorizacaoEtica'] = $request->justificativaAutorizacaoEtica != null ? $request->justificativaAutorizacaoEtica : $trabalho->justificativaAutorizacaoEtica; // $trabalho['anexoLattesCoordenador'] = $request->anexoLattesCoordenador != null ? $request->anexoLattesCoordenador : $trabalho->anexoLattesCoordenador; // $trabalho['anexoPlanilhaPontuacao'] = $request->anexoPlanilha != null ? $request->anexoPlanilha : $trabalho->anexoPlanilhaPontuacao; // //dd($trabalho); // } else { // //Caso em que o anexo da Decisão do CONSU não necessário // $validatedData = $request->validate([ // 'editalId' => ['required', 'string'], // 'nomeProjeto' => ['required', 'string',], // 'grandeArea' => ['required', 'string'], // 'area' => ['required', 'string'], // 'subArea' => ['required', 'string'], // 'pontuacaoPlanilha' => ['required', 'string'], // 'linkGrupo' => ['required', 'string', 'link_grupo'], // 'linkLattesEstudante' => ['required', 'string', 'link_lattes'], // 'nomeParticipante.*' => ['required', 'string'], // 'emailParticipante.*' => ['required', 'string'], // 'funcaoParticipante.*' => ['required', 'string'], // 'nomePlanoTrabalho.*' => ['nullable', 'string'], // 'anexoProjeto' => [($request->anexoProjetoPreenchido!=='sim'?'required':''), 'file', 'mimes:pdf', 'max:2048'], // 'anexoLattesCoordenador' => [($request->anexoLattesPreenchido!=='sim'?'required':''), 'file', 'mimes:pdf', 'max:2048'], // 'anexoPlanilha' => [($request->anexoPlanilhaPreenchido!=='sim'?'required':''), 'file', 'mimes:xls,xlsx,ods', 'max:2048'], // 'anexoPlanoTrabalho.*' => ['nullable', 'file', 'mimes:pdf', 'max:2048'], // ]); // // if(gettype($this->validarAnexosRascunho($request, $trabalho)) != 'integer'){ // // return $this->validarAnexosRascunho($request, $trabalho); // // } // //$trabalho = Trabalho::create([ // $trabalho['titulo'] = $request->nomeProjeto; // $trabalho['coordenador_id'] = $coordenador->id; // $trabalho['grande_area_id'] = $request->grandeArea; // $trabalho['area_id'] = $request->area; // $trabalho['sub_area_id'] = $request->subArea; // $trabalho['pontuacaoPlanilha'] = $request->pontuacaoPlanilha; // $trabalho['linkGrupoPesquisa'] = $request->linkGrupo; // $trabalho['linkLattesEstudante'] = $request->linkLattesEstudante; // $trabalho['data'] = $mytime; // $trabalho['evento_id'] = $request->editalId; // $trabalho['status'] = 'Submetido'; // $trabalho['proponente_id'] = $proponente->id; // //Anexos // $trabalho['anexoProjeto'] = $request->anexoProjeto; // $trabalho['anexoAutorizacaoComiteEtica'] = $request->anexoComiteEtica; // $trabalho['justificativaAutorizacaoEtica'] = $request->justificativaAutorizacaoEtica; // $trabalho['anexoLattesCoordenador'] = $request->anexoLattesCoordenador; // $trabalho['anexoPlanilhaPontuacao'] = $request->anexoPlanilha; // } // //Envia email com senha temp para cada participante do projeto // if($request->emailParticipante != null){ // foreach ($request->emailParticipante as $key => $value) { // $userParticipante = User::where('email', $value)->first(); // $participante = new Participante(); // if($userParticipante == null){ // $passwordTemporario = Str::random(8); // $subject = "Participante de Projeto"; // Mail::to($value)->send(new EmailParaUsuarioNaoCadastrado(Auth()->user()->name, $request->nomeProjeto, 'Participante', $evento->nome, $passwordTemporario, $subject)); // $usuario = User::create([ // 'email' => $value, // 'password' => bcrypt($passwordTemporario), // 'usuarioTemp' => true, // 'name' => $request->nomeParticipante[$key], // 'tipo' => 'participante', // ]); // $participante->user_id = $usuario->id; // $participante->trabalho_id = $trabalho->id; // $participante->funcao_participante_id = $request->funcaoParticipante[$key]; // $participante->save(); // $usuario->participantes()->save($participante); // $usuario->save(); // $participante->trabalhos()->save($trabalho); // }else{ // $participante->user_id = $userParticipante->id; // $participante->trabalho_id = $trabalho->id; // $participante->funcao_participante_id = $request->funcaoParticipante[$key]; // $participante->save(); // $userParticipante->participantes()->save($participante); // $userParticipante->save(); // $participante->trabalhos()->save($trabalho); // $subject = "Participante de Projeto"; // $email = $value; // Mail::to($email) // ->send(new SubmissaoTrabalho($userParticipante, $subject, $evento, $trabalho)); // } // if($request->nomePlanoTrabalho[$key] != null){ // $usuario = User::where('email', $value)->first(); // $participante = Participante::where([['user_id', '=', $usuario->id], ['trabalho_id', '=', $trabalho->id]])->first(); // $path = 'trabalhos/' . $request->editalId . '/' . $trabalho->id .'/'; // $nome = $request->nomePlanoTrabalho[$key] .".pdf"; // $file = $request->anexoPlanoTrabalho[$key]; // Storage::putFileAs($path, $file, $nome); // $mytime = Carbon::now('America/Recife'); // $mytime = $mytime->toDateString(); // $arquivo = new Arquivo(); // $arquivo->titulo = $request->nomePlanoTrabalho[$key]; // $arquivo->nome = $path . $nome; // $arquivo->trabalhoId = $trabalho->id; // $arquivo->data = $mytime; // $arquivo->participanteId = $participante->id; // $arquivo->versaoFinal = true; // $arquivo->save(); // } // } // } // //-- Salvando anexos no storage ---// // $pasta = 'trabalhos/' . $request->editalId . '/' . $trabalho->id; // $trabalho = $this->armazenarAnexosFinais($request, $pasta, $trabalho, $evento); // $subject = "Submissão de Trabalho"; // $autor = Auth()->user(); // $evento = $evento; // $trabalho = $trabalho; // Mail::to($autor->email) // ->send(new SubmissaoTrabalho($autor, $subject, $evento, $trabalho)); // return redirect()->route('evento.visualizar',['id'=>$request->editalId]); // } 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']; $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; } //Anexos do projeto $pasta = 'trabalhos/' . $request->editalId . '/' . $trabalho->id; if(!(is_null($request->anexoCONSU)) ) { $trabalho->anexoDecisaoCONSU = Storage::putFileAs($pasta, $request->anexoCONSU, "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->anexoPlanilha))) { $trabalho->anexoPlanilhaPontuacao = Storage::putFileAs($pasta, $request->anexoPlanilha, "Planilha.". $request->file('anexoPlanilha')->extension()); } $trabalho->update(); //---Anexos planos de trabalho //dd($trabalho); return $trabalho; } public function validarAnexosRascunho(Request $request, $trabalho){ //dd($trabalho->getAttributes()); $validator = Validator::make($trabalho->getAttributes(),[ 'anexoPlanilhaPontuacao' => $request->anexoPlanilha==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->anexoCONSU)){ if(Storage::disk()->exists($trabalho->anexoDecisaoCONSU)) { Storage::delete($trabalho->anexoDecisaoCONSU); } $trabalho->anexoDecisaoCONSU = Storage::putFileAs($pasta, $request->anexoCONSU, 'CONSU.pdf'); } } //Autorização ou Justificativa if( isset($request->anexoComiteEtica)){ if(Storage::disk()->exists($trabalho->anexoAutorizacaoComiteEtica)) { Storage::delete($trabalho->anexoAutorizacaoComiteEtica); } $trabalho->anexoAutorizacaoComiteEtica = Storage::putFileAs($pasta, $request->anexoComiteEtica, 'Comite_de_etica.pdf'); } elseif( isset($request->justificativaAutorizacaoEtica)){ if(Storage::disk()->exists($trabalho->justificativaAutorizacaoEtica)) { Storage::delete($trabalho->justificativaAutorizacaoEtica); } $trabalho->justificativaAutorizacaoEtica = Storage::putFileAs($pasta, $request->justificativaAutorizacaoEtica, 'Justificativa.pdf'); } //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->anexoPlanilha)){ if(Storage::disk()->exists($trabalho->anexoPlanilhaPontuacao)) { Storage::delete($trabalho->anexoPlanilhaPontuacao); } $trabalho->anexoPlanilhaPontuacao = Storage::putFileAs($pasta, $request->anexoPlanilha, "Planilha.". $request->file('anexoPlanilha')->extension()); } // Anexo grupo pesquisa if(isset($request->grupoPesquisa)){ if(Storage::disk()->exists($trabalho->anexoGrupoPesquisa)) { Storage::delete($trabalho->anexoGrupoPesquisa); } $trabalho->anexoGrupoPesquisa = Storage::putFileAs($pasta, $request->anexoPlanilha, "Grupo_de_pesquisa.". $request->file('grupoPesquisa')->extension()); } 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->anexoCONSU)){ $trabalho->anexoDecisaoCONSU = Storage::putFileAs($pasta, $request->anexoCONSU, 'CONSU.pdf'); } } //Autorização ou Justificativa if( isset($request->anexoComiteEtica)){ $trabalho->anexoAutorizacaoComiteEtica = Storage::putFileAs($pasta, $request->anexoComiteEtica, 'Comite_de_etica.pdf'); } elseif( isset($request->justificativaAutorizacaoEtica)){ $trabalho->justificativaAutorizacaoEtica = Storage::putFileAs($pasta, $request->justificativaAutorizacaoEtica, 'Justificativa.pdf'); } //Anexo Lattes if( isset($request->anexoLattesCoordenador)){ $trabalho->anexoLattesCoordenador = Storage::putFileAs($pasta, $request->anexoLattesCoordenador, 'Lattes_Coordenador.pdf'); } //Anexo Planilha if( isset($request->anexoPlanilha)){ $trabalho->anexoPlanilhaPontuacao = Storage::putFileAs($pasta, $request->anexoPlanilha, "Planilha.". $request->file('anexoPlanilha')->extension()); } // Anexo grupo pesquisa if(isset($request->grupoPesquisa)){ $trabalho->anexoGrupoPesquisa = Storage::putFileAs($pasta, $request->anexoPlanilha, "Grupo_de_pesquisa.". $request->file('grupoPesquisa')->extension()); } return $trabalho; } public function show($id) { // $projeto = Trabalho::find($id); $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(); return view('projeto.visualizar')->with(['projeto' => $projeto, 'grandeAreas' => $grandeAreas, 'areas' => $areas, 'subAreas' => $subareas, 'edital' => $edital, 'users' => $users, 'funcaoParticipantes' => $funcaoParticipantes, 'participantes' => $participantes, 'arquivos' => $arquivos, 'enum_turno' => Participante::ENUM_TURNO, ]); } public function edit($id) { $projeto = Trabalho::find($id); $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(); //dd(Participante::all()); 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, ]); } public function update(Request $request, $id) { $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->proponentes()->save($proponente); //dd($coordenador->id); $trabalho = "trabalho"; if($evento->inicioSubmissao > $mytime){ if($mytime >= $evento->fimSubmissao){ return redirect()->route('home'); } } //O anexo de Decisão do CONSU dependo do tipo de edital if( $evento->tipo == 'PIBIC' || $evento->tipo == 'PIBIC-EM'){ $validatedData = $request->validate([ 'editalId' => ['required', 'string'], 'nomeProjeto' => ['required', 'string'], 'grandeArea' => ['required', 'string'], 'area' => ['required', 'string'], 'subArea' => ['required', 'string'], 'pontuacaoPlanilha' => ['required', 'string'], 'linkGrupo' => ['required', 'string'], 'linkLattesEstudante' => ['required', 'string'], 'nomeParticipante.*' => ['required', 'string'], 'emailParticipante.*' => ['required', 'string'], 'funcaoParticipante.*' => ['required', 'string'], ]); }else{ //Caso em que o anexo da Decisão do CONSU não necessário $validatedData = $request->validate([ 'editalId' => ['required', 'string'], 'nomeProjeto' => ['required', 'string',], 'grandeArea' => ['required', 'string'], 'area' => ['required', 'string'], 'subArea' => ['required', 'string'], 'pontuacaoPlanilha' => ['required', 'string'], 'linkGrupo' => ['required', 'string'], 'linkLattesEstudante' => ['required', 'string'], 'nomeCoordenador' => ['required', 'string'], 'nomeParticipante.*' => ['required', 'string'], 'emailParticipante.*' => ['required', 'string'], 'funcaoParticipante.*' => ['required', 'string'], ]); } $trabalho = Trabalho::find($id); $trabalho->titulo = $request->nomeProjeto; $trabalho->coordenador_id = $coordenador->id; $trabalho->grande_area_id = $request->grandeArea; $trabalho->area_id = $request->area; $trabalho->sub_area_id = $request->subArea; $trabalho->pontuacaoPlanilha = $request->pontuacaoPlanilha; $trabalho->linkGrupoPesquisa = $request->linkGrupo; $trabalho->linkLattesEstudante = $request->linkLattesEstudante; $trabalho->data = $mytime; $trabalho->evento_id = $request->editalId; $trabalho->proponente_id = $proponente->id; $pasta = 'trabalhos/' . $request->editalId . '/' . $trabalho->id; if (!(is_null($request->anexoCONSU))) { Storage::delete($trabalho->anexoDecisaoCONSU); $trabalho->anexoDecisaoCONSU = Storage::putFileAs($pasta, $request->anexoCONSU, "CONSU.pdf"); } if (!(is_null($request->anexoProjeto))) { Storage::delete($trabalho->anexoProjeto); $trabalho->anexoProjeto = Storage::putFileAs($pasta, $request->anexoProjeto, "Projeto.pdf"); } if (!(is_null($request->anexoComiteEtica))) { Storage::delete($trabalho->anexoComiteEtica); $trabalho->anexoAutorizacaoComiteEtica = Storage::putFileAs($pasta, $request->anexoComiteEtica, "Comite_de_etica.pdf"); } if (!(is_null($request->anexoLattesCoordenador))) { Storage::delete($trabalho->anexoLattesCoordenador); $trabalho->anexoLattesCoordenador = Storage::putFileAs($pasta, $request->anexoLattesCoordenador, "Latter_Coordenador.pdf"); } if (!(is_null($request->anexoPlanilha))) { Storage::delete($trabalho->anexoLattesCoordenador); $trabalho->anexoPlanilhaPontuacao = Storage::putFileAs($pasta, $request->anexoPlanilha, "Planilha.pdf"); } //atualizando projeto $trabalho->update(); // criando novos participantes que podem ter sido adicionados $participantesUsersIds = Participante::where('trabalho_id', '=', $trabalho->id)->select('user_id')->get(); $users = User::whereIn('id', $participantesUsersIds)->get(); $emailParticipantes = []; foreach ($users as $user) { array_push($emailParticipantes, $user->email); } foreach ($request->emailParticipante as $key => $value) { // criando novos participantes que podem ter sido adicionados if (!(in_array($request->emailParticipante[$key], $emailParticipantes, false))) { $userParticipante = User::where('email', $value)->first(); if($userParticipante == null){ $passwordTemporario = Str::random(8); $subject = "Participante de Projeto"; Mail::to($value)->send(new EmailParaUsuarioNaoCadastrado(Auth()->user()->name, ' ', 'Participante', $evento->nome, $passwordTemporario, $subject)); $usuario = User::create([ 'email' => $value, 'password' => bcrypt($passwordTemporario), 'usuarioTemp' => true, 'name' => $request->nomeParticipante[$key], 'tipo' => 'participante', ]); $participante = new Participante(); $participante->user_id = $usuario->id; $participante->trabalho_id = $trabalho->id; $participante->funcao_participante_id = $request->funcaoParticipante[$key]; $participante->save(); }else{ $participante = new Participante(); $participante->user_id = $userParticipante->id; $participante->trabalho_id = $trabalho->id; $participante->funcao_participante_id = $request->funcaoParticipante[$key]; $participante->save(); $participante->trabalhos()->save($trabalho); $subject = "Participante de Projeto"; $email = $value; Mail::to($email) ->send(new SubmissaoTrabalho($userParticipante, $subject, $evento, $trabalho)); } $path = 'trabalhos/' . $request->editalId . '/' . $trabalho->id .'/'; $nome = $request->nomePlanoTrabalho[$key] .".pdf"; $file = $request->anexoPlanoTrabalho[$key]; Storage::putFileAs($path, $file, $nome); $arquivo = new Arquivo(); $arquivo->titulo = $request->nomePlanoTrabalho[$key]; $arquivo->nome = $path . $nome; $arquivo->trabalhoId = $trabalho->id; $arquivo->data = $mytime; $arquivo->participanteId = $participante->id; $arquivo->versaoFinal = true; $arquivo->save(); } //atualizando os participantes que já estão no projeto e planos de trabalho se enviados if (in_array($request->emailParticipante[$key], $emailParticipantes, false)) { $userParticipante = User::where('email', $value)->first(); if($userParticipante != null){ $user = User::where('email', $request->emailParticipante[$key])->first(); $participante = Participante::where([['user_id', '=', $user->id], ['trabalho_id', '=', $trabalho->id]])->first(); $user->name = $request->nomeParticipante[$key]; $user->update(); $participante->funcao_participante_id = $request->funcaoParticipante[$key]; $participante->update(); //atualizando planos de trabalho if ($request->anexoPlanoTrabalho != null && array_key_exists($key, $request->anexoPlanoTrabalho)) { if (!(is_null($request->anexoPlanoTrabalho[$key]))) { $arquivo = Arquivo::where('participanteId', $participante->id)->first(); //se plano já existir, deletar if($arquivo != null){ Storage::delete($arquivo->nome); $arquivo->delete(); } //atualizar plano if($request->semPlano[$key] == null){ $path = 'trabalhos/' . $request->editalId . '/' . $trabalho->id .'/'; $nome = $request->nomePlanoTrabalho[$key] .".pdf"; $file = $request->anexoPlanoTrabalho[$key]; Storage::putFileAs($path, $file, $nome); $arquivo = new Arquivo(); $arquivo->titulo = $request->nomePlanoTrabalho[$key]; $arquivo->nome = $path . $nome; $arquivo->trabalhoId = $trabalho->id; $arquivo->data = $mytime; $arquivo->participanteId = $participante->id; $arquivo->versaoFinal = true; $arquivo->save(); } } } //removendo planos de trabalho if($request->nomePlanoTrabalho != null && array_key_exists($key, $request->nomePlanoTrabalho)){ if($request->semPlano[$key] == 'sim'){ $arquivo = Arquivo::where('participanteId', $participante->id)->first(); //se plano já existir, deletar if($arquivo != null){ Storage::delete($arquivo->nome); $arquivo->delete(); } } } } } } // Atualizando possiveis usuários removidos $participantesUsersIds = Participante::where('trabalho_id', '=', $trabalho->id)->select('user_id')->get(); $users = User::whereIn('id', $participantesUsersIds)->get(); foreach ($users as $user) { if (!(in_array($user->email, $request->emailParticipante, false))) { $participante = Participante::where([['user_id', '=', $user->id], ['trabalho_id', '=', $trabalho->id]])->first(); $arquivo = Arquivo::where('participanteId', $participante->id)->first(); if($arquivo != null){ Storage::delete($arquivo->nome); $arquivo->delete(); } $participante->delete(); } } return redirect()->route('evento.visualizar',['id'=>$request->editalId]); } 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; $plano->delete(); $participante->delete(); } $projeto->delete(); return redirect()->back()->with(['mensagem' => 'Projeto deletado com sucesso!']); } public function excluirParticipante($id){ $participante = Participante::where('user_id', Auth()->user()->id) ->where('trabalho_id', $id)->first(); $participante->trabalhos()->detach($id); $participante->delete(); return redirect()->back(); } 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)) { return Storage::download($projeto->anexoProjeto); } return abort(404); } public function baixarAnexoConsu($id) { $projeto = Trabalho::find($id); if (Storage::disk()->exists($projeto->anexoDecisaoCONSU)) { return Storage::download($projeto->anexoDecisaoCONSU); } return abort(404); } public function baixarAnexoComite($id) { $projeto = Trabalho::find($id); if (Storage::disk()->exists($projeto->anexoAutorizacaoComiteEtica)) { return Storage::download($projeto->anexoAutorizacaoComiteEtica); } return abort(404); } public function baixarAnexoLattes($id) { $projeto = Trabalho::find($id); if (Storage::disk()->exists($projeto->anexoLattesCoordenador)) { return Storage::download($projeto->anexoLattesCoordenador); } return abort(404); } public function baixarAnexoPlanilha($id) { $projeto = Trabalho::find($id); if (Storage::disk()->exists($projeto->anexoPlanilhaPontuacao)) { return Storage::download($projeto->anexoPlanilhaPontuacao); } return abort(404); } public function baixarAnexoJustificativa($id) { $projeto = Trabalho::find($id); if (Storage::disk()->exists($projeto->justificativaAutorizacaoEtica)) { return Storage::download($projeto->justificativaAutorizacaoEtica); } 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)) { 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)) { return Storage::download($eventoTemp->$nomeAnexo); } return abort(404); } public function salvar(Request $request) { $edital = Evento::find($request->editalId); $hoje = now(); // dd($request->all()); 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->save(); // dd($request->all()); // Email de submissão // $subject = "Submissão de Trabalho"; // $proponente = Auth()->user(); // Mail::to($proponente->email)->send(new SubmissaoTrabalho($proponente, $subject, $edital, $projeto)); // Salvando participantes $this->salvarParticipantes($request, $edital, $projeto); return redirect(route('proponente.projetos'))->with(['mensagem' => 'Projeto submetido com sucesso!']); } 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; // Salvando anexos no storage $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(); foreach ($request->participante_id as $key => $id) { // Novo participante if ($id == 0) { $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]; $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)); } 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]; $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(); } // 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]; $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; $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]; $participante->media_do_curso = $request->media_geral_curso[$key]; $participante->save(); $subject = "Participante de Projeto"; // Mail::to($email)->send(new EmailParaUsuarioNaoCadastrado(Auth()->user()->name, $projeto->titulo, 'Participante', $edital->nome, $passwordTemporario, $subject)); } 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]; $participante->media_do_curso = $request->media_geral_curso[$key]; $participante->save(); $subject = "Participante de Projeto"; // 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(); // Salvando participantes $this->salvarParticipantes($request, $edital, $projeto, true); return redirect(route('proponente.projetos'))->with(['mensagem' => 'Projeto atualizado com sucesso!']); } }