diff --git a/app/Http/Controllers/TrabalhoController.php b/app/Http/Controllers/TrabalhoController.php index 59f0a2260b3f5019a66e977d5d25e96b8a140dc4..4022094195d055368015d6124585648989112432 100644 --- a/app/Http/Controllers/TrabalhoController.php +++ b/app/Http/Controllers/TrabalhoController.php @@ -95,7 +95,7 @@ class TrabalhoController extends Controller } //--Salvando os anexos da submissão temporariamente - $this->armazenarAnexosTemp($request, Auth::user()->id); + $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'){ @@ -125,28 +125,28 @@ class TrabalhoController extends Controller ]); //dd($request->all()); - $trabalho = Trabalho::create([ - 'titulo' => $request->nomeProjeto, - 'coordenador_id' => $coordenador->id, - 'grande_area_id' => $request->grandeArea, - 'area_id' => $request->area, - 'sub_area_id' => $request->subArea, - 'pontuacaoPlanilha' => $request->pontuacaoPlanilha, - 'linkGrupoPesquisa' => $request->linkGrupo, - 'linkLattesEstudante' => $request->linkLattesEstudante, - 'data' => $mytime, - 'evento_id' => $request->editalId, - 'avaliado' => 0, - 'status' => 'Submetido' , - 'proponente_id' => $proponente->id, - //Anexos - 'anexoCONSU' => $request->anexoCONSU != null ? $request->anexoCONSU : "", - 'anexoProjeto' => $request->anexoProjeto != null ? $request->anexoProjeto : "", - 'anexoAutorizacaoComiteEtica' => $request->anexoComiteEtica != null ? $request->anexoComiteEtica : "", - 'justificativaAutorizacaoEtica' => $request->justificativaAutorizacaoEtica != null ? $request->justificativaAutorizacaoEtica : "", - 'anexoLattesCoordenador' => $request->anexoLattesCoordenador != null ? $request->anexoLattesCoordenador : "", - 'anexoPlanilhaPontuacao' => $request->anexoPlanilha != null ? $request->anexoPlanilha : "", - ]); + //$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['avaliado'] = 0; + $trabalho['status'] = 'Submetido'; + $trabalho['proponente_id'] = $proponente->id; + //Anexos + $trabalho['anexoCONSU'] = $request->anexoCONSU != null ? $request->anexoCONSU : ""; + $trabalho['anexoProjeto'] = $request->anexoProjeto != null ? $request->anexoProjeto : ""; + $trabalho['anexoAutorizacaoComiteEtica'] = $request->anexoComiteEtica != null ? $request->anexoComiteEtica : ""; + $trabalho['justificativaAutorizacaoEtica'] = $request->justificativaAutorizacaoEtica != null ? $request->justificativaAutorizacaoEtica : ""; + $trabalho['anexoLattesCoordenador'] = $request->anexoLattesCoordenador != null ? $request->anexoLattesCoordenador : ""; + $trabalho['anexoPlanilhaPontuacao'] = $request->anexoPlanilha != null ? $request->anexoPlanilha : ""; + //dd($trabalho); } else { //Caso em que o anexo da Decisão do CONSU não necessário @@ -169,28 +169,27 @@ class TrabalhoController extends Controller 'anexoPlanoTrabalho.*' => ['nullable', 'file', 'mimes:pdf', 'max:2000000'], ]); - $trabalho = Trabalho::create([ - 'titulo' => $request->nomeProjeto, - 'coordenador_id' => $coordenador->id, - 'grande_area_id' => $request->grandeArea, - 'area_id' => $request->area, - 'sub_area_id' => $request->subArea, - 'pontuacaoPlanilha' => $request->pontuacaoPlanilha, - 'linkGrupoPesquisa' => $request->linkGrupo, - 'linkLattesEstudante' => $request->linkLattesEstudante, - 'data' => $mytime, - 'evento_id' => $request->editalId, - 'avaliado' => 0, - 'status' => 'Submetido' , - 'proponente_id' => $proponente->id, + //$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['avaliado'] = 0; + $trabalho['status'] = 'Submetido'; + $trabalho['proponente_id'] = $proponente->id; //Anexos - 'anexoProjeto' => $request->anexoProjeto, - 'anexoAutorizacaoComiteEtica' => $request->anexoComiteEtica, - 'justificativaAutorizacaoEtica' => $request->justificativaAutorizacaoEtica, - 'anexoLattesCoordenador' => $request->anexoLattesCoordenador, - 'anexoPlanilhaPontuacao' => $request->anexoPlanilha, - ]); - + $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 @@ -257,19 +256,7 @@ class TrabalhoController extends Controller $pasta = 'trabalhos/' . $request->editalId . '/' . $trabalho->id; - //-- Se existem anexos temporários, utilizá-los - $anexosTemp = AnexosTemp::where('eventoId', $request->editalId)->where('proponenteId', Auth::user()->id) - ->orderByDesc('updated_at')->first(); - - if($anexosTemp != null){ - $this->armazenarAnexosFinais($anexosTemp, $request, $pasta, $trabalho, $evento); - } - - $trabalho->update(); - - //Deletando arquivos temporários - Storage::deleteDirectory('anexosTemp/' . $request->editalId . '/' . Auth::user()->id); - $anexosTemp->delete(); + $trabalho = $this->armazenarAnexosFinais($request, $pasta, $trabalho, $evento); $subject = "Submissão de Trabalho"; $autor = Auth()->user(); @@ -281,91 +268,187 @@ class TrabalhoController extends Controller return redirect()->route('evento.visualizar',['id'=>$request->editalId]); } + public function storeParcial(Request $request){ + // dd($request->all()); + $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"; + + //--Salvando os anexos da submissão temporariamente + $this->armazenarAnexosTemp($request, Auth::user()->id); + + $trabalho = Trabalho::create([ + 'titulo' => $request->nomeProjeto != null ? $request->nomeProjeto : "", + 'coordenador_id' => $coordenador->id != null ? $request->coordenador->id : "", + 'grande_area_id' => $request->grandeArea != null ? $request->grandeArea : "", + 'area_id' => $request->area != null ? $request->area : "", + 'sub_area_id' => $request->subArea != null ? $request->subArea : "", + 'pontuacaoPlanilha' => $request->pontuacaoPlanilha != null ? $request->pontuacaoPlanilha : "", + 'linkGrupoPesquisa' => $request->linkGrupo != null ? $request->linkGrupo : "", + 'linkLattesEstudante' => $request->linkLattesEstudante != null ? $request->linkLattesEstudante : "", + 'data' => $mytime, + 'evento_id' => $request->editalId != null ? $request->editalId : "", + 'avaliado' => 0, + 'status' => 'Rascunho', + 'proponente_id' => $proponente->id != null ? $request->nomeProjeto : "", + //Anexos + 'anexoCONSU' => $request->anexoCONSU != null ? $request->anexoCONSU : "", + 'anexoProjeto' => $request->anexoProjeto != null ? $request->anexoProjeto : "", + 'anexoAutorizacaoComiteEtica' => $request->anexoComiteEtica != null ? $request->anexoComiteEtica : "", + 'justificativaAutorizacaoEtica' => $request->justificativaAutorizacaoEtica != null ? $request->justificativaAutorizacaoEtica : "", + 'anexoLattesCoordenador' => $request->anexoLattesCoordenador != null ? $request->anexoLattesCoordenador : "", + 'anexoPlanilhaPontuacao' => $request->anexoPlanilha != null ? $request->anexoPlanilha : "", + ]); + + // Anexo Projeto + if( (!isset($request->anexoProjeto) && $request->anexoProjetoPreenchido == 'sim') || isset($request->anexoProjeto)){ + Storage::putFileAs($anexosTemp->anexoProjeto, $pasta . '/Projeto.pdf'); + + $trabalho->anexoProjeto = $pasta . '/Projeto.pdf'; + } + + //Anexo Decisão CONSU + if( $evento->tipo == 'PIBIC' || $evento->tipo == 'PIBIC-EM') { + if( (!isset($request->anexoCONSU) && $request->anexoConsuPreenchido == 'sim') || isset($request->anexoCONSU)){ + Storage::putFileAs($anexosTemp->anexoDecisaoCONSU, $pasta . '/CONSU.pdf'); + $trabalho->anexoDecisaoCONSU = $pasta . '/CONSU.pdf'; + } + } + + //Autorização ou Justificativa + if( (!isset($request->anexoComiteEtica) && $request->anexoComitePreenchido == 'sim') || isset($request->anexoComiteEtica)){ + Storage::putFileAs($anexosTemp->anexoAutorizacaoComiteEtica, $pasta . '/Comite_de_etica.pdf'); + $trabalho->anexoAutorizacaoComiteEtica = $pasta . '/Comite_de_etica.pdf'; + + } elseif( (!isset($request->justificativaAutorizacaoEtica) && $request->anexoJustificativaPreenchido == 'sim') || isset($request->justificativaAutorizacaoEtica)){ + Storage::putFileAs($anexosTemp->justificativaAutorizacaoEtica, $pasta . '/Justificativa.pdf'); + $trabalho->justificativaAutorizacaoEtica = $pasta . '/Justificativa.pdf'; + } + + //Anexo Lattes + if( (!isset($request->anexoLattesCoordenador) && $request->anexoLattesPreenchido == 'sim') || isset($request->anexoLattesCoordenador)){ + Storage::putFileAs($anexosTemp->anexoLattesCoordenador, $pasta . '/Latter_Coordenador.pdf'); + $trabalho->anexoLattesCoordenador = $pasta . '/Latter_Coordenador.pdf'; + } + + //Anexo Planilha + if( (!isset($request->anexoPlanilha) && $request->anexoPlanilhaPreenchido == 'sim') || isset($request->anexoPlanilha)){ + Storage::putFileAs($anexosTemp->anexoPlanilhaPontuacao, $pasta . '/Planilha.pdf'); + $trabalho->anexoPlanilhaPontuacao = $pasta . '/Planilha.pdf'; + } + + } + //Armazena temporariamente anexos da submissão, no banco de dados e no storage - public function armazenarAnexosTemp(Request $request, $proponenteId){ + public function armazenarInfoTemp(Request $request, $proponente){ //---Anexos do Projeto - $anexosTemp = AnexosTemp::where('eventoId', $request->editalId)->where('proponenteId', $proponenteId) + $trabalho = Trabalho::where('proponente_id', $proponente->id)->where('evento_id',$request->editalId)->where('status', 'Rascunho') ->orderByDesc('updated_at')->first(); - - if($anexosTemp == null){ - $anexosTemp = new AnexosTemp(); - $jaExiste = false; - }else{ - $jaExiste = true; + // 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; } - $pasta = 'anexosTemp/' . $request->editalId . '/' . $proponenteId; + //Anexos do projeto + + $pasta = 'trabalhos/' . $request->editalId . '/' . $trabalho->id; if(!(is_null($request->anexoCONSU)) ) { - $anexosTemp->anexoDecisaoCONSU = Storage::putFileAs($pasta, $request->anexoCONSU, "CONSU.pdf"); + $trabalho->anexoDecisaoCONSU = Storage::putFileAs($pasta, $request->anexoCONSU, "CONSU.pdf"); } if (!(is_null($request->anexoComiteEtica))) { - $anexosTemp->anexoAutorizacaoComiteEtica = Storage::putFileAs($pasta, $request->anexoComiteEtica, "Comite_de_etica.pdf"); + $trabalho->anexoAutorizacaoComiteEtica = Storage::putFileAs($pasta, $request->anexoComiteEtica, "Comite_de_etica.pdf"); } if (!(is_null($request->justificativaAutorizacaoEtica))) { - $anexosTemp->justificativaAutorizacaoEtica = Storage::putFileAs($pasta, $request->justificativaAutorizacaoEtica, "Justificativa.pdf"); + $trabalho->justificativaAutorizacaoEtica = Storage::putFileAs($pasta, $request->justificativaAutorizacaoEtica, "Justificativa.pdf"); } if (!(is_null($request->anexoProjeto))) { - $anexosTemp->anexoProjeto = Storage::putFileAs($pasta, $request->anexoProjeto, "Projeto.pdf"); + $trabalho->anexoProjeto = Storage::putFileAs($pasta, $request->anexoProjeto, "Projeto.pdf"); } if (!(is_null($request->anexoLattesCoordenador))) { - $anexosTemp->anexoLattesCoordenador = Storage::putFileAs($pasta, $request->anexoLattesCoordenador, "Latter_Coordenador.pdf"); + $trabalho->anexoLattesCoordenador = Storage::putFileAs($pasta, $request->anexoLattesCoordenador, "Latter_Coordenador.pdf"); } if (!(is_null($request->anexoPlanilha))) { - $anexosTemp->anexoPlanilhaPontuacao = Storage::putFileAs($pasta, $request->anexoPlanilha, "Planilha.pdf"); - } - - $anexosTemp->eventoId = $request->editalId; - $anexosTemp->proponenteId = $proponenteId; - - if(!$jaExiste){ - $anexosTemp->save(); - }else{ - $anexosTemp->update(); + $trabalho->anexoPlanilhaPontuacao = Storage::putFileAs($pasta, $request->anexoPlanilha, "Planilha.pdf"); } + $trabalho->update(); + //---Anexos planos de trabalho - + + return $trabalho; } - public function armazenarAnexosFinais($anexosTemp, $request, $pasta, $trabalho, $evento){ + public function armazenarAnexosFinais($request, $pasta, $trabalho, $evento){ // Anexo Projeto if( (!isset($request->anexoProjeto) && $request->anexoProjetoPreenchido == 'sim') || isset($request->anexoProjeto)){ - Storage::move($anexosTemp->anexoProjeto, $pasta . '/Projeto.pdf'); - $trabalho->anexoProjeto = $pasta . '/Projeto.pdf'; + $trabalho->anexoProjetoStorage::putFileAs($pasta, $request->anexoProjeto, 'Projeto.pdf'); } //Anexo Decisão CONSU if( $evento->tipo == 'PIBIC' || $evento->tipo == 'PIBIC-EM') { if( (!isset($request->anexoCONSU) && $request->anexoConsuPreenchido == 'sim') || isset($request->anexoCONSU)){ - Storage::move($anexosTemp->anexoDecisaoCONSU, $pasta . '/CONSU.pdf'); - $trabalho->anexoDecisaoCONSU = $pasta . '/CONSU.pdf'; + $trabalho->anexoDecisaoCONSUStorage::putFileAs($pasta, $request->anexoDecisaoCONSU, 'CONSU.pdf'); } } //Autorização ou Justificativa if( (!isset($request->anexoComiteEtica) && $request->anexoComitePreenchido == 'sim') || isset($request->anexoComiteEtica)){ - Storage::move($anexosTemp->anexoAutorizacaoComiteEtica, $pasta . '/Comite_de_etica.pdf'); - $trabalho->anexoAutorizacaoComiteEtica = $pasta . '/Comite_de_etica.pdf'; + $trabalho->anexoAutorizacaoComiteEtica = Storage::putFileAs($pasta, $request->anexoAutorizacaoComiteEtica, 'Comite_de_etica.pdf'); } elseif( (!isset($request->justificativaAutorizacaoEtica) && $request->anexoJustificativaPreenchido == 'sim') || isset($request->justificativaAutorizacaoEtica)){ - Storage::move($anexosTemp->justificativaAutorizacaoEtica, $pasta . '/Justificativa.pdf'); - $trabalho->justificativaAutorizacaoEtica = $pasta . '/Justificativa.pdf'; + $trabalho->justificativaAutorizacaoEtica = Storage::putFileAs($pasta, $request->justificativaAutorizacaoEtica, 'Justificativa.pdf'); } //Anexo Lattes if( (!isset($request->anexoLattesCoordenador) && $request->anexoLattesPreenchido == 'sim') || isset($request->anexoLattesCoordenador)){ - Storage::move($anexosTemp->anexoLattesCoordenador, $pasta . '/Latter_Coordenador.pdf'); - $trabalho->anexoLattesCoordenador = $pasta . '/Latter_Coordenador.pdf'; + $trabalho->anexoLattesCoordenadorStorage::putFileAs($pasta, $request->anexoLattesCoordenador, 'Latter_Coordenador.pdf'); } //Anexo Planilha if( (!isset($request->anexoPlanilha) && $request->anexoPlanilhaPreenchido == 'sim') || isset($request->anexoPlanilha)){ - Storage::move($anexosTemp->anexoPlanilhaPontuacao, $pasta . '/Planilha.pdf'); - $trabalho->anexoPlanilhaPontuacao = $pasta . '/Planilha.pdf'; + $trabalho->anexoPlanilhaPontuacao = Storage::putFileAs($pasta, $request->anexoPlanilhaPontuacao, 'Planilha.pdf'); } + + $trabalho->update(); + return $trabalho; } /** * Display the specified resource. diff --git a/database/migrations/2020_06_15_160417_create_anexos_temps_table.php b/database/migrations/2020_06_15_160417_create_anexos_temps_table.php deleted file mode 100644 index 4c0b77a7862dd1a70460a12ad2e58b95ddbc07c7..0000000000000000000000000000000000000000 --- a/database/migrations/2020_06_15_160417_create_anexos_temps_table.php +++ /dev/null @@ -1,41 +0,0 @@ -bigIncrements('id'); - $table->timestamps(); - - $table->string('anexoProjeto')->nullable(); - $table->string('anexoDecisaoCONSU')->nullable(); - $table->string('anexoPlanilhaPontuacao')->nullable(); - $table->string('anexoLattesCoordenador')->nullable(); - $table->string('anexoAutorizacaoComiteEtica')->nullable(); - $table->string('justificativaAutorizacaoEtica')->nullable(); - - $table->integer('eventoId'); - $table->integer('proponenteId'); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('anexos_temps'); - } -} diff --git a/resources/views/evento/submeterTrabalho.blade.php b/resources/views/evento/submeterTrabalho.blade.php index 890ed82b9e483c9366dcb08ec225e98c0a19123f..a0c62868bd9de210cc952921c1b8cdb764f8b23e 100644 --- a/resources/views/evento/submeterTrabalho.blade.php +++ b/resources/views/evento/submeterTrabalho.blade.php @@ -388,14 +388,17 @@
+ Cancelar diff --git a/routes/web.php b/routes/web.php index ca54280ebbbd1ae72575e945602296f20dd692bb..bc1dfa0eace306a26cd7f4c74fe2119fb759a991 100644 --- a/routes/web.php +++ b/routes/web.php @@ -94,6 +94,7 @@ Route::group(['middleware' => ['isTemp', 'auth', 'verified']], function(){ Route::get( '/trabalho/visualizar/{id}','TrabalhoController@show' )->name('trabalho.show'); Route::post( '/trabalho/novaVersao', 'TrabalhoController@novaVersao' )->name('trabalho.novaVersao'); Route::post( '/trabalho/criar', 'TrabalhoController@store' )->name('trabalho.store'); + Route::post( '/trabalho/criarRascunho', 'TrabalhoController@storeParcial' )->name('trabalho.storeParcial'); Route::get( '/edital/{id}/projetos', 'TrabalhoController@projetosDoEdital' )->name('projetos.edital'); Route::get( '/projeto/{id}/visualizar', 'TrabalhoController@show' )->name('trabalho.show'); Route::get( '/projeto/{id}/editar', 'TrabalhoController@edit' )->name('trabalho.editar');