diff --git a/app/Arquivo.php b/app/Arquivo.php index 665ffce12ae30ea75e436d1e0e2f0111c7971380..709ecae98c40e27a7a5093aa56e20403e83dcf4e 100644 --- a/app/Arquivo.php +++ b/app/Arquivo.php @@ -12,7 +12,7 @@ class Arquivo extends Model * @var array */ protected $fillable = [ - 'nome', 'versao', 'versaoFinal', 'data', 'trabalhoId', 'participanteId' + 'nome','titulo', 'versao', 'versaoFinal', 'data', 'trabalhoId', 'participanteId' ]; public function trabalho(){ diff --git a/app/Http/Controllers/TrabalhoController.php b/app/Http/Controllers/TrabalhoController.php index facf84c1912de6ed440ed7eb2fa61175c6c7ff64..bcfb7000129132b7706b8ddb0add2f4295ad886b 100644 --- a/app/Http/Controllers/TrabalhoController.php +++ b/app/Http/Controllers/TrabalhoController.php @@ -35,6 +35,7 @@ use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Log; use App\Http\Requests\StoreTrabalho; use Illuminate\Support\Facades\Mail; +use App\Http\Requests\UpdateTrabalho; use Illuminate\Support\Facades\Storage; use Illuminate\Support\Facades\Validator; use App\Mail\EmailParaUsuarioNaoCadastrado; @@ -233,7 +234,7 @@ class TrabalhoController extends Controller } //Autorização ou Justificativa - if( isset($request->anexoComiteEtica)){ + if( isset($request->anexoAutorizacaoComiteEtica)){ if(Storage::disk()->exists($trabalho->anexoAutorizacaoComiteEtica)) { Storage::delete($trabalho->anexoAutorizacaoComiteEtica); } @@ -391,234 +392,233 @@ class TrabalhoController extends Controller ]); } - 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->anexoDecisaoCONSU))) { - Storage::delete($trabalho->anexoDecisaoCONSU); - $trabalho->anexoDecisaoCONSU = Storage::putFileAs($pasta, $request->anexoDecisaoCONSU, "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->anexoPlanilhaPontuacao))) { - Storage::delete($trabalho->anexoLattesCoordenador); - $trabalho->anexoPlanilhaPontuacao = Storage::putFileAs($pasta, $request->anexoPlanilhaPontuacao, "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); + // $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'); + // } + // } - $subject = "Participante de Projeto"; - $email = $value; - Mail::to($email) - ->send(new SubmissaoTrabalho($userParticipante, $subject, $evento, $trabalho)); - } + // //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'], + // ]); - $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(); - } + // }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'], + // ]); + // } - //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){ + // $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->anexoDecisaoCONSU))) { + // Storage::delete($trabalho->anexoDecisaoCONSU); + // $trabalho->anexoDecisaoCONSU = Storage::putFileAs($pasta, $request->anexoDecisaoCONSU, "CONSU.pdf"); + // } - $user = User::where('email', $request->emailParticipante[$key])->first(); - $participante = Participante::where([['user_id', '=', $user->id], ['trabalho_id', '=', $trabalho->id]])->first(); + // if (!(is_null($request->anexoProjeto))) { + // Storage::delete($trabalho->anexoProjeto); + // $trabalho->anexoProjeto = Storage::putFileAs($pasta, $request->anexoProjeto, "Projeto.pdf"); + // } - $user->name = $request->nomeParticipante[$key]; - $user->update(); + // if (!(is_null($request->anexoComiteEtica))) { + // Storage::delete($trabalho->anexoComiteEtica); + // $trabalho->anexoAutorizacaoComiteEtica = Storage::putFileAs($pasta, $request->anexoComiteEtica, "Comite_de_etica.pdf"); + // } - $participante->funcao_participante_id = $request->funcaoParticipante[$key]; - $participante->update(); + // if (!(is_null($request->anexoLattesCoordenador))) { + // Storage::delete($trabalho->anexoLattesCoordenador); + // $trabalho->anexoLattesCoordenador = Storage::putFileAs($pasta, $request->anexoLattesCoordenador, "Latter_Coordenador.pdf"); + // } - //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); + // if (!(is_null($request->anexoPlanilhaPontuacao))) { + // Storage::delete($trabalho->anexoLattesCoordenador); + // $trabalho->anexoPlanilhaPontuacao = Storage::putFileAs($pasta, $request->anexoPlanilhaPontuacao, "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(); + // } - $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 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(); + // // 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(); + // } + // } - 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) { @@ -926,12 +926,168 @@ class TrabalhoController extends Controller // $trabalho->participantes()->save($participante); // } - public function salvar(StoreTrabalho $request) { + public function update(UpdateTrabalho $request, $id) + { + // dd($request->participante_id); + // dd( $request->all() ); + 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 + ]); + + DB::beginTransaction(); + + $trabalho = Auth::user()->proponentes->trabalhos()->where('id', $id)->first(); + $trabalho->update($request->except([ + 'anexoProjeto', 'anexoDecisaoCONSU','anexoPlanilhaPontuacao', + 'anexoLattesCoordenador','anexoGrupoPesquisa','anexoAutorizacaoComiteEtica', + 'justificativaAutorizacaoEtica' + ])); + if ($request->marcado == null) { + $idExcluido = $trabalho->participantes->pluck('id'); + + }else{ + $idExcluido = []; + } + // dd($idExcluido); + // dd(array_search( 2, $request->marcado)); + foreach ($request->participante_id as $key => $value) { + // $value = intval($value); + if($request->marcado != null && array_search( $key, $request->marcado) === false){ + if($value !== null) + array_push($idExcluido, $value); + } + } + // dd($idExcluido); + 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]; + $data['instituicao'] = $request->instituicao[$part]; + $data['total_periodos'] = $request->total_periodos[$part]; + $data['curso'] = $request->curso[$part]; + $data['turno'] = $request->turno[$part]; + $data['periodo_atual'] = $request->periodo_atual[$part]; + $data['ordem_prioridade'] = $request->ordem_prioridade[$part]; + $data['media_do_curso'] = $request->media_do_curso[$part]; + $data['nomePlanoTrabalho'] = $request->nomePlanoTrabalho[$part]; - try { + $participante = Participante::find($request->participante_id[$part]); - - + if (!$participante){ + $data['usuarioTemp'] = true; + $user = User::updateOrCreate( + ['email' => $data['email']], + $data + ); + $endereco = Endereco::create($data); + $endereco->user()->save($user); + $participante = Participante::create($data); + $user->participantes()->save($participante); + $trabalho->participantes()->save($participante); + + }else{ + $user = $participante->user; + $user->update($data); + $endereco = $user->endereco; + $endereco->update($data); + $participante = $user->participantes->where('trabalho_id', $trabalho->id)->first(); + if (!$participante){ + $participante = Participante::create($data); + $user->participantes()->save($participante); + $trabalho->participantes()->save($participante); + }else{ + $participante->update($data); + } + + } + + + + if ( $request->has('anexoPlanoTrabalho') && array_key_exists($part,$request->anexoPlanoTrabalho) ) { + if(Arquivo::where('participanteId', $participante->id)->count()){ + $arquivo = Arquivo::where('participanteId', $participante->id)->first(); + $path = 'trabalhos/' . $evento->id . '/' . $trabalho->id .'/'; + $nome = $data['nomePlanoTrabalho'] .".pdf"; + $file = $request->anexoPlanoTrabalho[$part] ; + Storage::putFileAs($path, $file, $nome); + $arquivo->update([ + 'titulo' => $nome, + '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(); + + } + + } + + } + + } + + + $pasta = 'trabalhos/' . $evento->id . '/' . $trabalho->id; + $trabalho = $this->armazenarAnexosFinais($request, $pasta, $trabalho, $evento); + $trabalho->save(); + + DB::commit(); + + 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 salvar(StoreTrabalho $request) { + + try { if (!$request->has('rascunho') ) { $request->merge([ 'status' => 'submetido' @@ -969,6 +1125,7 @@ class TrabalhoController extends Controller $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]; $data['instituicao'] = $request->instituicao[$part]; $data['total_periodos'] = $request->total_periodos[$part]; diff --git a/app/Http/Requests/StoreTrabalho.php b/app/Http/Requests/StoreTrabalho.php index 544dd0df421d93ab82b27734f6ceb1848f013a5a..1d0dcd350b4644e74bafd6f118667643947f2e75 100644 --- a/app/Http/Requests/StoreTrabalho.php +++ b/app/Http/Requests/StoreTrabalho.php @@ -33,7 +33,6 @@ class StoreTrabalho extends FormRequest 'titulo' => ['required', 'string'], 'grande_area_id' => ['required', 'string'], 'area_id' => ['required', 'string'], - 'sub_area_id' => ['required', 'string'], 'linkLattesEstudante' => ['required', 'string'], 'pontuacaoPlanilha' => ['required', 'string'], 'linkGrupoPesquisa' => ['required', 'string'], @@ -80,7 +79,6 @@ class StoreTrabalho extends FormRequest } } - // dd($rules); if ($this->has('rascunho')) { return [ diff --git a/app/Http/Requests/UpdateTrabalho.php b/app/Http/Requests/UpdateTrabalho.php index 1cbb2b61b28f0fb612c8f602320ce092ba6589cd..b9f5ed54014d74a2e706f71db8881b04b2e78f11 100644 --- a/app/Http/Requests/UpdateTrabalho.php +++ b/app/Http/Requests/UpdateTrabalho.php @@ -2,7 +2,10 @@ namespace App\Http\Requests; +use App\Trabalho; use Illuminate\Foundation\Http\FormRequest; +use Illuminate\Support\Facades\Auth; +use Illuminate\Validation\Rule; class UpdateTrabalho extends FormRequest { @@ -13,7 +16,7 @@ class UpdateTrabalho extends FormRequest */ public function authorize() { - return false; + return true; } /** @@ -23,8 +26,69 @@ class UpdateTrabalho extends FormRequest */ public function rules() { - return [ - // + $projeto = Trabalho::find($this->id); + + $rules = [ + 'editalId' => ['required', 'string'], + 'marcado.*' => ['required'], + 'titulo' => ['required', 'string'], + 'grande_area_id' => ['required', 'string'], + 'area_id' => ['required', 'string'], + 'linkLattesEstudante' => ['required', 'string'], + 'pontuacaoPlanilha' => ['required', 'string'], + 'linkGrupoPesquisa' => ['required', 'string'], + 'anexoProjeto' => [[Rule::requiredIf(!$this->has('rascunho') && $projeto->anexoProjeto == null)], 'mimes:pdf'], + 'anexoDecisaoCONSU' => ['mimes:pdf'], + 'anexoPlanilhaPontuacao' => [[Rule::requiredIf(!$this->has('rascunho') && $projeto->anexoPlanilhaPontuacao == null)]], + 'anexoLattesCoordenador' => [[Rule::requiredIf(!$this->has('rascunho') && $projeto->anexoLattesCoordenador == null)], 'mimes:pdf'], + 'anexoGrupoPesquisa' => [[Rule::requiredIf(!$this->has('rascunho') && $projeto->anexoGrupoPesquisa == null)], 'mimes:pdf'], + 'anexoAutorizacaoComiteEtica' => [ + Rule::requiredIf((!$this->has('rascunho') && $projeto->anexoAutorizacaoComiteEtica == null) ) + ], + 'justificativaAutorizacaoEtica' => [ + Rule::requiredIf((!$this->has('rascunho') && $projeto->anexoAutorizacaoComiteEtica == null)) + ], + ]; + if($this->has('marcado')){ + foreach ($this->get('marcado') as $key => $value) { + if( intval($value) == $key){ + //user + $rules['name.'.$value] = ['required', 'string']; + $rules['email.'.$value] = ['required', 'string']; + $rules['instituicao.'.$value] = ['required', 'string']; + $rules['cpf.'.$value] = ['required', 'string']; + $rules['celular.'.$value] = ['required', 'string']; + //endereco + $rules['rua.'.$value] = ['required', 'string']; + $rules['numero.'.$value] = ['required', 'string']; + $rules['bairro.'.$value] = ['required', 'string']; + $rules['cidade.'.$value] = ['required', 'string']; + $rules['uf.'.$value] = ['required', 'string']; + $rules['cep.'.$value] = ['required', 'string']; + $rules['complemento.'.$value] = ['required', 'string']; + //participante + $rules['rg.'.$value] = ['required', 'string']; + $rules['data_de_nascimento.'.$value] = ['required', 'string']; + $rules['curso.'.$value] = ['required', 'string']; + $rules['turno.'.$value] = ['required', 'string']; + $rules['ordem_prioridade.'.$value] = ['required', 'string']; + $rules['periodo_atual.'.$value] = ['required', 'string']; + $rules['total_periodos.'.$value] = ['required', 'string']; + $rules['media_do_curso.'.$value] = ['required', 'string']; + $rules['nomePlanoTrabalho.'.$value] = ['required', 'string']; + + } + } + + } + // dd($this->all()); + if ($this->has('rascunho')) { + return [ + + ]; + }else{ + return $rules; + } } } diff --git a/database/migrations/2021_07_01_020325_alter_table_arquivos.php b/database/migrations/2021_07_01_020325_alter_table_arquivos.php new file mode 100644 index 0000000000000000000000000000000000000000..278115dc011b5a6a62400fbcad71e95f76c5edd0 --- /dev/null +++ b/database/migrations/2021_07_01_020325_alter_table_arquivos.php @@ -0,0 +1,33 @@ +string('nome')->nullable()->change(); + $table->string('titulo')->nullable()->change(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('arquivos', function (Blueprint $table) { + // + }); + } +} diff --git a/resources/views/componentes/input.blade.php b/resources/views/componentes/input.blade.php index f17e3f2512fe5a977138bdc8f38f4e80eb77a90a..57788b3a5609fd44fce5689ab818410ec92dc6a1 100644 --- a/resources/views/componentes/input.blade.php +++ b/resources/views/componentes/input.blade.php @@ -1,10 +1,11 @@ @php $class = $class ?? " "; - $obrigatorio = $obrigatorio ?? " "; + // $obrigatorio = $obrigatorio ?? " "; @endphp
+
+
+
+
+