From 218cc8515cb0e658af74766a98cc7293d8eb71e1 Mon Sep 17 00:00:00 2001 From: alinetenorio <aline.tenorio96@gmail.com> Date: Tue, 16 Jun 2020 16:54:37 -0300 Subject: [PATCH] salvando anexos --- app/Http/Controllers/TrabalhoController.php | 104 ++++++++++++----- .../views/evento/submeterTrabalho.blade.php | 105 ++++++++++++++---- 2 files changed, 161 insertions(+), 48 deletions(-) diff --git a/app/Http/Controllers/TrabalhoController.php b/app/Http/Controllers/TrabalhoController.php index 39fe12b..6a6583e 100644 --- a/app/Http/Controllers/TrabalhoController.php +++ b/app/Http/Controllers/TrabalhoController.php @@ -106,12 +106,12 @@ class TrabalhoController extends Controller 'nomePlanoTrabalho.*' => ['required', 'string'], //--Verificando se anexos já foram submetidos 'anexoProjeto' => [($request->anexoProjetoPreenchido!=='sim'?'required':''), 'file', 'mimes:pdf', 'max:2000000'], - 'anexoCONSU' => ['required', 'file', 'mimes:pdf', 'max:2000000'], + 'anexoCONSU' => [($request->anexoConsuPreenchido!=='sim'?'required':''), 'file', 'mimes:pdf', 'max:2000000'], 'botao' => ['required'], - 'anexoComiteEtica' => ['required_without:justificativaAutorizacaoEtica', 'file', 'mimes:pdf', 'max:2000000'], - 'justificativaAutorizacaoEtica' => ['required_without:anexoComiteEtica', 'file', 'mimes:pdf', 'max:2000000'], - 'anexoLattesCoordenador' => ['required', 'file', 'mimes:pdf', 'max:2000000'], - 'anexoPlanilha' => ['required', 'file', 'mimes:pdf', 'max:2000000'], + 'anexoComiteEtica' => [($request->anexoComitePreenchido!=='sim'&&$request->anexoJustificativaPreenchido!=='sim'?'required_without:justificativaAutorizacaoEtica':''), 'file', 'mimes:pdf', 'max:2000000'], + 'justificativaAutorizacaoEtica' => [($request->anexoJustificativaPreenchido!=='sim'&&$request->anexoComitePreenchido!=='sim'?'required_without:anexoComiteEtica':''), 'file', 'mimes:pdf', 'max:2000000'], + 'anexoLattesCoordenador' => [($request->anexoLattesPreenchido!=='sim'?'required':''), 'file', 'mimes:pdf', 'max:2000000'], + 'anexoPlanilha' => [($request->anexoPlanilhaPreenchido!=='sim'?'required':''), 'file', 'mimes:pdf', 'max:2000000'], 'anexoPlanoTrabalho.*' => ['required', 'file', 'mimes:pdf', 'max:2000000'], ]); //dd($request->all()); @@ -131,12 +131,12 @@ class TrabalhoController extends Controller 'status' => 'Submetido' , 'proponente_id' => $proponente->id, //Anexos - 'anexoCONSU' => $request->anexoCONSU, + 'anexoCONSU' => $request->anexoCONSU != null ? $request->anexoCONSU : "", 'anexoProjeto' => $request->anexoProjeto != null ? $request->anexoProjeto : "", - 'anexoAutorizacaoComiteEtica' => $request->anexoComiteEtica, - 'justificativaAutorizacaoEtica' => $request->justificativaAutorizacaoEtica, - 'anexoLattesCoordenador' => $request->anexoLattesCoordenador, - 'anexoPlanilhaPontuacao' => $request->anexoPlanilha, + 'anexoAutorizacaoComiteEtica' => $request->anexoComiteEtica != null ? $request->anexoComiteEtica : "", + 'justificativaAutorizacaoEtica' => $request->justificativaAutorizacaoEtica != null ? $request->justificativaAutorizacaoEtica : "", + 'anexoLattesCoordenador' => $request->anexoLattesCoordenador != null ? $request->anexoLattesCoordenador : "", + 'anexoPlanilhaPontuacao' => $request->anexoPlanilha != null ? $request->anexoPlanilha : "", ]); //dd($trabalho); } else { @@ -242,33 +242,38 @@ class TrabalhoController extends Controller } } + //-- Salvando anexos no storage ---// + $pasta = 'trabalhos/' . $request->editalId . '/' . $trabalho->id; - if( $evento->tipo == 'PIBIC' || $evento->tipo == 'PIBIC-EM') { - $trabalho->anexoDecisaoCONSU = Storage::putFileAs($pasta, $request->anexoCONSU, "CONSU.pdf"); - } + //-- Se existem anexos temporários, utilizá-los + $anexosTemp = AnexosTemp::where('eventoId', $request->editalId)->where('proponenteId', Auth::user()->id) + ->orderByDesc('updated_at')->first(); - if (!(is_null($request->anexoComiteEtica))) { - $trabalho->anexoAutorizacaoComiteEtica = Storage::putFileAs($pasta, $request->anexoComiteEtica, "Comite_de_etica.pdf"); - } else { - $trabalho->justificativaAutorizacaoEtica = Storage::putFileAs($pasta, $request->justificativaAutorizacaoEtica, "Justificativa.pdf"); - } - - if(!isset($request->anexoProjeto) && $request->anexoProjetoPreenchido == 'sim'){ - $anexosTemp = AnexosTemp::where('eventoId', $request->editalId)->where('proponenteId', Auth::user()->id) - ->orderByDesc('updated_at')->first(); - Storage::move($anexosTemp->anexoProjeto, $pasta . '/Projeto.pdf'); - $trabalho->anexoProjeto = $pasta . '/Projeto.pdf'; + if($anexosTemp != null){ + $this->armazenarAnexosFinais($anexosTemp, $request, $pasta, $trabalho, $evento); }else{ - $trabalho->anexoProjeto = Storage::putFileAs($pasta, $request->anexoProjeto, "Projeto.pdf"); + + if( $evento->tipo == 'PIBIC' || $evento->tipo == 'PIBIC-EM') { + $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"); + } else { + $trabalho->justificativaAutorizacaoEtica = Storage::putFileAs($pasta, $request->justificativaAutorizacaoEtica, "Justificativa.pdf"); + } + + $trabalho->anexoProjeto = Storage::putFileAs($pasta, $request->anexoProjeto, "Projeto.pdf"); + $trabalho->anexoLattesCoordenador = Storage::putFileAs($pasta, $request->anexoLattesCoordenador, "Latter_Coordenador.pdf"); + $trabalho->anexoPlanilhaPontuacao = Storage::putFileAs($pasta, $request->anexoPlanilha, "Planilha.pdf"); } - $trabalho->anexoLattesCoordenador = Storage::putFileAs($pasta, $request->anexoLattesCoordenador, "Latter_Coordenador.pdf"); - $trabalho->anexoPlanilhaPontuacao = Storage::putFileAs($pasta, $request->anexoPlanilha, "Planilha.pdf"); + $trabalho->update(); //Deletando arquivos temporários Storage::deleteDirectory('anexosTemp/' . $request->editalId . '/' . Auth::user()->id); - + $anexosTemp->delete(); //dd($trabalho); $subject = "Submissão de Trabalho"; @@ -285,13 +290,15 @@ class TrabalhoController extends Controller //---Anexos do Projeto $anexosTemp = AnexosTemp::where('eventoId', $request->editalId)->where('proponenteId', $proponenteId) ->orderByDesc('updated_at')->first(); - + //dd($anexosTemp); if($anexosTemp == null){ $anexosTemp = new AnexosTemp(); $jaExiste = false; }else{ $jaExiste = true; } + + //dd($jaExiste); $pasta = 'anexosTemp/' . $request->editalId . '/' . $proponenteId; @@ -327,6 +334,45 @@ class TrabalhoController extends Controller } + public function armazenarAnexosFinais($anexosTemp, $request, $pasta, $trabalho, $evento){ + //dd($anexosTemp); + // Anexo Projeto + if(!isset($request->anexoProjeto) && $request->anexoProjetoPreenchido == 'sim'){ + Storage::move($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'){ + Storage::move($anexosTemp->anexoDecisaoCONSU, $pasta . '/CONSU.pdf'); + $trabalho->anexoDecisaoCONSU = $pasta . '/CONSU.pdf'; + } + } + + //Autorização ou Justificativa + + if(!isset($request->anexoComiteEtica) && $request->anexoComitePreenchido == 'sim'){ + Storage::move($anexosTemp->anexoAutorizacaoComiteEtica, $pasta . '/Comite_de_etica.pdf'); + $trabalho->anexoAutorizacaoComiteEtica = $pasta . '/Comite_de_etica.pdf'; + + } elseif(!isset($request->justificativaAutorizacaoEtica) && $request->anexoJustificativaPreenchido == 'sim'){ + Storage::move($anexosTemp->justificativaAutorizacaoEtica, $pasta . '/Justificativa.pdf'); + $trabalho->justificativaAutorizacaoEtica = $pasta . '/Justificativa.pdf'; + } + + //Anexo Lattes + if(!isset($request->anexoLattesCoordenador) && $request->anexoLattesPreenchido == 'sim'){ + Storage::move($anexosTemp->anexoLattesCoordenador, $pasta . '/Latter_Coordenador.pdf'); + $trabalho->anexoLattesCoordenador = $pasta . '/Latter_Coordenador.pdf'; + } + + //Anexo Planilha + if(!isset($request->anexoPlanilha) && $request->anexoPlanilhaPreenchido == 'sim'){ + Storage::move($anexosTemp->anexoPlanilhaPontuacao, $pasta . '/Planilha.pdf'); + $trabalho->anexoPlanilhaPontuacao = $pasta . '/Planilha.pdf'; + } + } /** * Display the specified resource. * diff --git a/resources/views/evento/submeterTrabalho.blade.php b/resources/views/evento/submeterTrabalho.blade.php index bc41b42..8f288ab 100644 --- a/resources/views/evento/submeterTrabalho.blade.php +++ b/resources/views/evento/submeterTrabalho.blade.php @@ -153,12 +153,17 @@ <div class="col-sm-6"> <label for="anexoLattesCoordenador" class="col-form-label">{{ __('Anexo do Lattes do Coordenador*:') }}</label> + @if(old('anexoLattesPreenchido') != null) + <a id="anexoLattesTemp" href="{{ route('baixar.anexo.temp', ['eventoId' => $edital->id, + 'nomeAnexo' => 'anexoLattesCoordenador' ])}}">Arquivo atual</a> + @endif + <input type="hidden" id="anexoLattesPreenchido" name="anexoLattesPreenchido" value="{{ old('anexoLattesPreenchido') }}" > <div class="input-group"> <div class="custom-file"> - <input type="file" class="custom-file-input @error('anexoLattesCoordenador') is-invalid @enderror" id="inputGroupFile01" aria-describedby="anexoLattesCoordenador" name="anexoLattesCoordenador"> - <label class="custom-file-label" id="custom-file-label" for="inputGroupFile01">O arquivo deve ser no formato PDF de até 2mb.</label> + <input type="file" class="custom-file-input @error('anexoLattesCoordenador') is-invalid @enderror" id="anexoLattesCoordenador" aria-describedby="anexoLattesCoordenador" name="anexoLattesCoordenador" onchange="exibirAnexoTemp(this)"> + <label class="custom-file-label" id="custom-file-label" for="anexoLattesCoordenador">O arquivo deve ser no formato PDF de até 2mb.</label> </div> </div> @error('anexoLattesCoordenador') @@ -179,12 +184,17 @@ <strong>{{ $message }}</strong> </span> @enderror - + <br/> + @if(old('anexoComitePreenchido') != null) + <a id="anexoComiteTemp" href="{{ route('baixar.anexo.temp', ['eventoId' => $edital->id, + 'nomeAnexo' => 'anexoAutorizacaoComiteEtica' ])}}">Arquivo atual</a> + @endif + <input type="hidden" id="anexoComitePreenchido" name="anexoComitePreenchido" value="{{ old('anexoComitePreenchido') }}" > <div class="input-group"> <div class="custom-file"> - <input disabled type="file" class="custom-file-input @error('anexoComiteEtica') is-invalid @enderror" id="inputEtica" aria-describedby="inputGroupFileAddon01" name="anexoComiteEtica"> - <label class="custom-file-label" id="custom-file-label" for="inputGroupFile01">O arquivo deve ser no formato PDF de até 2mb.</label> + <input disabled type="file" class="custom-file-input @error('anexoComiteEtica') is-invalid @enderror" id="inputEtica" aria-describedby="inputGroupFileAddon01" name="anexoComiteEtica" onchange="exibirAnexoTemp(this)"> + <label class="custom-file-label" id="custom-file-label" for="inputEtica">O arquivo deve ser no formato PDF de até 2mb.</label> </div> </div> @error('anexoComiteEtica') @@ -196,11 +206,15 @@ <div class="col-sm-6 mt-3"> <label for="anexoPlanilha" class="col-form-label">{{ __('Anexo do Planilha de Pontuação*:') }}</label> - + @if(old('anexoPlanilhaPreenchido') != null) + <a id="anexoPlanilhaTemp" href="{{ route('baixar.anexo.temp', ['eventoId' => $edital->id, + 'nomeAnexo' => 'anexoPlanilhaPontuacao' ])}}">Arquivo atual</a> + @endif + <input type="hidden" id="anexoPlanilhaPreenchido" name="anexoPlanilhaPreenchido" value="{{ old('anexoPlanilhaPreenchido') }}" > <div class="input-group"> <div class="custom-file"> - <input type="file" class="custom-file-input @error('anexoPlanilha') is-invalid @enderror" id="anexoPlanilha" aria-describedby="anexoPlanilhaDescribe" name="anexoPlanilha"> + <input type="file" class="custom-file-input @error('anexoPlanilha') is-invalid @enderror" id="anexoPlanilha" aria-describedby="anexoPlanilhaDescribe" name="anexoPlanilha" onchange="exibirAnexoTemp(this)"> <label class="custom-file-label" id="custom-file-label" for="anexoPlanilha">O arquivo deve ser no formato PDF de até 2mb.</label> </div> </div> @@ -213,13 +227,17 @@ <div class="col-sm-6"> <label for="nomeTrabalho" class="col-form-label">{{ __('Justificativa*:') }}</label> - + @if(old('anexoJustificativaPreenchido') != null) + <a id="anexoJustificativaTemp" href="{{ route('baixar.anexo.temp', ['eventoId' => $edital->id, + 'nomeAnexo' => 'justificativaAutorizacaoEtica' ])}}">Arquivo atual</a> + @endif + <input type="hidden" id="anexoJustificativaPreenchido" name="anexoJustificativaPreenchido" value="{{ old('anexoJustificativaPreenchido') }}" > <div class="input-group"> <div class="custom-file"> - <input type="file" class="custom-file-input @error('justificativaAutorizacaoEtica') is-invalid @enderror" id="inputJustificativa" aria-describedby="inputGroupFileAddon01" disabled name="justificativaAutorizacaoEtica"> - <label class="custom-file-label" id="custom-file-label" for="inputGroupFile01">O arquivo deve ser no formato PDF de até 2mb.</label> + <input type="file" class="custom-file-input @error('justificativaAutorizacaoEtica') is-invalid @enderror" id="inputJustificativa" aria-describedby="inputGroupFileAddon01" disabled name="justificativaAutorizacaoEtica" onchange="exibirAnexoTemp(this)"> + <label class="custom-file-label" id="custom-file-label" for="inputJustificativa">O arquivo deve ser no formato PDF de até 2mb.</label> </div> </div> @error('justificativaAutorizacaoEtica') @@ -233,12 +251,17 @@ {{-- Decisão do CONSU --}} <div class="col-sm-6"> <label for="anexoCONSU" class="col-form-label">{{ __('Decisão do CONSU*:') }}</label> + @if(old('anexoConsuPreenchido') != null) + <a id="anexoConsuTemp" href="{{ route('baixar.anexo.temp', ['eventoId' => $edital->id, + 'nomeAnexo' => 'anexoDecisaoCONSU' ])}}">Arquivo atual</a> + @endif + <input type="hidden" id="anexoConsuPreenchido" name="anexoConsuPreenchido" value="{{ old('anexoConsuPreenchido') }}" > <div class="input-group"> <div class="custom-file"> - <input type="file" class="custom-file-input @error('anexoCONSU') is-invalid @enderror" id="anexoCONSU" aria-describedby="inputGroupFileAddon01" name="anexoCONSU"> - <label class="custom-file-label" id="custom-file-label" for="inputGroupFile01">O arquivo deve ser no formato PDF de até 2mb.</label> + <input type="file" class="custom-file-input @error('anexoCONSU') is-invalid @enderror" id="anexoCONSU" aria-describedby="inputGroupFileAddon01" name="anexoCONSU" onchange="exibirAnexoTemp(this)"> + <label class="custom-file-label" id="custom-file-label" for="anexoCONSU">O arquivo deve ser no formato PDF de até 2mb.</label> </div> </div> @error('anexoCONSU') @@ -361,7 +384,7 @@ <a href="{{route('evento.visualizar',['id'=>$edital->id])}}" class="btn btn-secondary" style="width:100%">Cancelar</a> </div> <div class="col-md-6"> - <button type="submit" class="btn btn-primary" style="width:100%" onclick="setParticipanteDiv()"> + <button type="submit" class="btn btn-primary" style="width:100%"> {{ __('Enviar') }} </button> </div> @@ -439,12 +462,14 @@ $('#inputEtica').prop('disabled', false); $('#inputJustificativa').prop('disabled', true); exibirErro('comite'); + // $('#anexoJustificativaPreenchido').val(""); }); $('#buttonNao').on('click', function(e) { e.preventDefault(); $('#inputEtica').prop('disabled', true); $('#inputJustificativa').prop('disabled', false); exibirErro('justificativa'); + //$('#anexoComitePreenchido').val(""); }); }); @@ -454,12 +479,29 @@ var comiteErro = document.getElementById('comiteErro'); var justificativaErro = document.getElementById('justificativaErro'); - if (campo === 'comite') { - comiteErro.style.display = "block"; - justificativaErro.style.display = "none"; - } else if (campo === 'justificativa') { - comiteErro.style.display = "none"; - justificativaErro.style.display = "block"; + if(comiteErro != null || justificativaErro != null){ + if (campo === 'comite') { + comiteErro.style.display = "block"; + justificativaErro.style.display = "none"; + } else if (campo === 'justificativa') { + comiteErro.style.display = "none"; + justificativaErro.style.display = "block"; + } + } + } + + function habilitarBotao(){ + var anexoComitePreenchido = document.getElementById('anexoComitePreenchido'); + var anexoJustificativaPreenchido = document.getElementById('anexoJustificativaPreenchido'); + + if(anexoComitePreenchido.value == "sim"){ + $('#inputEtica').prop('disabled', false); + $('#inputJustificativa').prop('disabled', true); + exibirErro('comite'); + } else if(anexoJustificativaPreenchido.value == "sim"){ + $('#inputEtica').prop('disabled', true); + $('#inputJustificativa').prop('disabled', false); + exibirErro('justificativa'); } } // Remover Coautor @@ -637,7 +679,32 @@ var anexoProjetoPreenchido = document.getElementById('anexoProjetoPreenchido'); anexoProjetoPreenchido.value = "sim"; } + if(file.id === "anexoLattesCoordenador"){ + var anexoLattesPreenchido = document.getElementById('anexoLattesPreenchido'); + anexoLattesPreenchido.value = "sim"; + } + if(file.id === "inputEtica"){ + var anexoComitePreenchido = document.getElementById('anexoComitePreenchido'); + var anexoJustificativaPreenchido = document.getElementById('anexoJustificativaPreenchido'); + anexoComitePreenchido.value = "sim"; + anexoJustificativaPreenchido.value = ""; + } + if(file.id === "inputJustificativa"){ + var anexoComitePreenchido = document.getElementById('anexoComitePreenchido'); + var anexoJustificativaPreenchido = document.getElementById('anexoJustificativaPreenchido'); + anexoJustificativaPreenchido.value = "sim"; + anexoComitePreenchido.value = ""; + } + if(file.id === "anexoCONSU"){ + var anexoConsuPreenchido = document.getElementById('anexoConsuPreenchido'); + anexoConsuPreenchido.value = "sim"; + } + if(file.id === "anexoPlanilha"){ + var anexoPlanilhaPreenchido = document.getElementById('anexoPlanilhaPreenchido'); + anexoPlanilhaPreenchido.value = "sim"; + } } window.onload = areas(); + window.onload = habilitarBotao(); </script> @endsection \ No newline at end of file -- GitLab