diff --git a/app/Evento.php b/app/Evento.php index 4bb65dbed7e34a78438b99e99fe3c1745b913a19..ab5882dbb139dbbb983882ce11cc13e2095e4d54 100755 --- a/app/Evento.php +++ b/app/Evento.php @@ -3,6 +3,8 @@ namespace App; use Illuminate\Database\Eloquent\Model; +use Illuminate\Validation\Rule; + class Evento extends Model { @@ -22,6 +24,115 @@ class Evento extends Model 'formAvaliacaoRelatorio', 'docTutorial' ]; + #validação para as datas dos editais padrão + public static $dates_rules = [ + 'inicioSubmissao' => ['required', 'date'], + 'fimSubmissao' => ['required', 'date'], + 'inicioRevisao' => ['required', 'date'], + 'fimRevisao' => ['required', 'date'], + 'inicio_recurso' => ['required', 'date'], + 'fim_recurso' => ['required', 'date'], + 'resultado_final' => ['required', 'date'], + 'resultado_preliminar' => ['required', 'date'], + 'dt_inicioRelatorioParcial' => ['required', 'date'], + 'dt_fimRelatorioParcial' => ['required', 'date'], + 'dt_inicioRelatorioFinal' => ['required', 'date'], + 'dt_fimRelatorioFinal' => ['required', 'date'], + 'inicioProjeto' => ['required', 'date'], + 'fimProjeto' => ['required', 'date'], + //'modeloDocumento' => [], + ]; + + #validação para as datas dos editais de fluxo continuo + public static $continuos_dates_rules = [ + 'inicioSubmissao' => ['required', 'date'], + 'fimSubmissao' => ['required', 'date'], + ]; + + #validação completa dos dados de editais padrão + public static $rules = [ + 'nome' => ['required', 'string'], + 'descricao' => ['required', 'string','max:1500'], + 'tipo' => ['required', 'string'], + 'natureza' => ['required'], + 'coordenador_id' => ['required'], + 'numParticipantes' => ['required'], + 'nome_docExtra' => ['required_with:check_docExtra','max:255'], + 'tipoAvaliacao' => ['required'], + 'inicioSubmissao' => ['required', 'date', 'after:yesterday'], + 'fimSubmissao' => ['required', 'date', 'after_or_equal:inicioSubmissao'], + 'inicioRevisao' => ['required', 'date', 'after:yesterday'], + 'fimRevisao' => ['required', 'date', 'after:inicioRevisao', 'after:fimSubmissao'], + 'resultado_preliminar' => ['required', 'date', 'after_or_equal:fimRevisao'], + 'inicio_recurso' => ['required', 'date', 'after_or_equal:resultado_preliminar'], + 'fim_recurso' => ['required', 'date', 'after:inicio_recurso'], + 'resultado_final' => ['required', 'date', 'after:fim_recurso'], + 'dt_inicioRelatorioParcial' => ['required', 'date', 'after:resultado_final'], + 'dt_fimRelatorioParcial' => ['required', 'date', 'after_or_equal:dt_inicioRelatorioParcial'], + 'dt_inicioRelatorioFinal' => ['required', 'date', 'after:dt_fimRelatorioParcial'], + 'dt_fimRelatorioFinal' => ['required', 'date', 'after_or_equal:dt_inicioRelatorioFinal'], + 'pdfEdital' => [('pdfEditalPreenchido'!=='sim'?'required':''), 'file', 'mimes:pdf', 'max:2048'], + 'inicioProjeto' => ['required', 'date', 'after:yesterday'], + 'fimProjeto' => ['required', 'date', 'after_or_equal:fimSubmissao'], + ]; + + #validação completa dos dados de editais de fluxo continuo + public static $continuos_rules = [ + 'nome' => ['required', 'string'], + 'descricao' => ['required', 'string','max:1500'], + 'tipo' => ['required', 'string'], + 'natureza' => ['required'], + 'coordenador_id' => ['required'], + 'numParticipantes' => ['required'], + 'nome_docExtra' => ['required_with:check_docExtra','max:255'], + 'tipoAvaliacao' => ['required'], + 'inicioSubmissao' => ['required', 'date', 'after:yesterday'], + 'fimSubmissao' => ['required', 'date', 'after_or_equal:inicioSubmissao'], + 'pdfEdital' => [('pdfEditalPreenchido'!=='sim'?'required':''), 'file', 'mimes:pdf', 'max:2048'], + ]; + + public static $edit_rules = [ + 'nome' => ['required', 'string'], + 'descricao' => ['required', 'string', 'max:1500'], + 'tipo' => ['required', 'string'], + 'natureza' => ['required'], + 'numParticipantes' => ['required'], + 'tipoAvaliacao' => ['required'], + 'inicioSubmissao' => ['required', 'date', 'after_or_equal:inicioSubmissao'], + 'fimSubmissao' => ['required', 'date', 'after_or_equal:inicioSubmissao'], + 'inicioRevisao' => ['required', 'date', 'after:fimSubmissao'], + 'fimRevisao' => ['required', 'date', 'after:inicioRevisao'], + 'resultado_preliminar'=> ['required', 'date', 'after_or_equal:fimRevisao'], + 'inicio_recurso' => ['required', 'date', 'after_or_equal:resultado_preliminar'], + 'fim_recurso' => ['required', 'date', 'after:inicio_recurso'], + 'resultado_final' => ['required', 'date', 'after:fim_recurso'], + 'dt_inicioRelatorioParcial' => ['required', 'date', 'after:resultado_final'], + 'dt_fimRelatorioParcial' => ['required', 'date', 'after_or_equal:dt_inicioRelatorioParcial'], + 'dt_inicioRelatorioFinal' => ['required', 'date', 'after:dt_fimRelatorioParcial'], + 'dt_fimRelatorioFinal' => ['required', 'date', 'after_or_equal:dt_inicioRelatorioFinal'], + 'modeloDocumento' => ['file', 'mimes:zip,doc,docx,odt,pdf', 'max:2048'], + 'pdfFormAvalExterno' => ['file', 'mimes:pdf,doc,docx,xlsx,xls,csv,zip', 'max:2048'], + 'inicioProjeto' => ['required', 'date', 'after:resultado_final'], + 'fimProjeto' => ['required', 'date', 'after:inicioProjeto'], + 'docTutorial' => ['file', 'mimes:zip,doc,docx,pdf', 'max:2048'], + 'nome_docExtra' => ['required_with:check_docExtra', 'max:255'], + ]; + + + public static $continuos_edit_rules = [ + 'nome' => ['required', 'string'], + 'descricao' => ['required', 'string','max:1500'], + 'tipo' => ['required', 'string'], + 'natureza' => ['required'], + 'coordenador_id' => ['required'], + 'numParticipantes' => ['required'], + 'nome_docExtra' => ['required_with:check_docExtra','max:255'], + 'tipoAvaliacao' => ['required'], + 'inicioSubmissao' => ['required', 'date', 'after_or_equal:inicioSubmissao'], + 'fimSubmissao' => ['required', 'date', 'after_or_equal:inicioSubmissao'], + 'pdfEdital' => [('pdfEditalPreenchido'!=='sim'?'required':''), 'file', 'mimes:pdf', 'max:2048'], + ]; + public function endereco(){ return $this->belongsTo('App\Endereco', 'enderecoId'); } diff --git a/app/Http/Controllers/AdministradorController.php b/app/Http/Controllers/AdministradorController.php index 4bb860f9e068d73ced194b929775f49122374ee3..dce852f4426c960c71d23659124bf92f6084abea 100755 --- a/app/Http/Controllers/AdministradorController.php +++ b/app/Http/Controllers/AdministradorController.php @@ -112,88 +112,87 @@ class AdministradorController extends Controller return view('administrador.analisar')->with(['trabalhos' => $trabalhos, 'evento' => $evento, 'funcaoParticipantes' => $funcaoParticipantes, 'column' => $request->column, 'grandesAreas' => $grandesAreas, 'areas' => $areas]); } - // Utilizado para paginação de Collection - - public function analisarProposta(Request $request) - { - $trabalho = Trabalho::where('id', $request->id)->first(); - $evento = Evento::where('id', $trabalho->evento_id)->first(); - $funcaoParticipantes = FuncaoParticipantes::all(); - $substituicoesProjeto = Substituicao::where('trabalho_id', $trabalho->id)->orderBy('created_at', 'DESC')->get(); - $substituicoesPendentes = Substituicao::where('trabalho_id', $trabalho->id)->where('status', 'Em Aguardo')->orderBy('created_at', 'DESC')->get(); - - $avalSelecionadosId = $trabalho->avaliadors->pluck('id'); - $avalProjeto = Avaliador::whereNotIn('id', $avalSelecionadosId)->get(); - $trabalho->aval = $avalProjeto; - // Usuarios que possuem avaliações de relatório - //$avaliacoesRelatorio = [];->join('users','users.id','=','candidatos.user_id') + //retorna a média das avaliações dos relatórios e apresentações, + //o número de avaliações pendentes e duas listas com as avaliações parciais + //e finais respectivamente + protected function get_info_avaliacoes($avals){ $AvalRelatParcial = []; $AvalRelatFinal = []; $MediaAvalRelatParcial = 0; + $MediaApresentacaoParcial = 0; $AvalRelatParcialPendentes = 0; $MediaAvalRelatFinal = 0; + $MediaApresentacaoFinal = 0; $AvalRelatFinalPendentes = 0; - - if ($evento->numParticipantes == 0) { - $arquivo = Arquivo::where("trabalhoId", $trabalho->id)->first(); - - if (isset($arquivo)) { - $avals = AvaliacaoRelatorio::where('arquivo_id', $arquivo->id)->get(); - } else { - $avals = []; - } - foreach ($avals as $aval) { - if ($aval->tipo == 'Parcial') { - array_push($AvalRelatParcial, $aval); - $MediaAvalRelatParcial += $aval->nota; + foreach ($avals as $aval) { + if ($aval->tipo == 'Parcial') { + array_push($AvalRelatParcial, $aval); + $MediaAvalRelatParcial += $aval->nota; + $MediaApresentacaoParcial += $aval->nota_apresentacao; - if($aval->nota == null){ - $AvalRelatParcialPendentes += 1; - } - } else { - array_push($AvalRelatFinal, $aval); - $MediaAvalRelatFinal += $aval->nota; - - if($aval->nota == null){ - $AvalRelatFinalPendentes += 1; - } + if($aval->nota == null){ + $AvalRelatParcialPendentes += 1; } - } - } - - - foreach ($trabalho->participantes as $participante) { - if (isset($participante->planoTrabalho)) { - $avals = AvaliacaoRelatorio::where('arquivo_id', $participante->planoTrabalho->id)->get(); } else { - $avals = []; - } - foreach ($avals as $aval) { - if ($aval->tipo == 'Parcial') { - array_push($AvalRelatParcial, $aval); - $MediaAvalRelatParcial += $aval->nota; + array_push($AvalRelatFinal, $aval); + $MediaAvalRelatFinal += $aval->nota; + $MediaApresentacaoFinal += $aval->nota_apresentacao; - if($aval->nota == null){ - $AvalRelatParcialPendentes += 1; - } - } else { - array_push($AvalRelatFinal, $aval); - $MediaAvalRelatFinal += $aval->nota; - - if($aval->nota == null){ - $AvalRelatFinalPendentes += 1; - } + if($aval->nota == null){ + $AvalRelatFinalPendentes += 1; } } } - + if(count($AvalRelatParcial) > 0){ $MediaAvalRelatParcial = $MediaAvalRelatParcial / count($AvalRelatParcial); + $MediaApresentacaoParcial = $MediaApresentacaoParcial / count($AvalRelatParcial); } if(count($AvalRelatFinal) > 0){ $MediaAvalRelatFinal = $MediaAvalRelatFinal / count($AvalRelatFinal); + $MediaApresentacaoFinal = $MediaApresentacaoFinal / count($AvalRelatFinal); + } + + return ['relatorio_parcial' => number_format($MediaAvalRelatParcial, 2, '.', ''), + 'apresentacao_parcial' => number_format($MediaApresentacaoParcial, 2, '.', ''), + 'pendentes_parcial' => $AvalRelatParcialPendentes, + 'relatorio_final' => number_format($MediaAvalRelatFinal, 2, '.', ''), + 'apresentacao_final' => number_format($MediaApresentacaoFinal, 2, '.', ''), + 'pendentes_final' => $AvalRelatFinalPendentes, + 'avaliacoes_parciais' => $AvalRelatParcial, + 'avaliacoes_finais' => $AvalRelatFinal]; + } + + + // Utilizado para paginação de Collection + + public function analisarProposta(Request $request) + { + $trabalho = Trabalho::where('id', $request->id)->first(); + $evento = Evento::where('id', $trabalho->evento_id)->first(); + $funcaoParticipantes = FuncaoParticipantes::all(); + $substituicoesProjeto = Substituicao::where('trabalho_id', $trabalho->id)->orderBy('created_at', 'DESC')->get(); + $substituicoesPendentes = Substituicao::where('trabalho_id', $trabalho->id)->where('status', 'Em Aguardo')->orderBy('created_at', 'DESC')->get(); + + $avalSelecionadosId = $trabalho->avaliadors->pluck('id'); + $avalProjeto = Avaliador::whereNotIn('id', $avalSelecionadosId)->get(); + $trabalho->aval = $avalProjeto; + // Usuarios que possuem avaliações de relatório + //$avaliacoesRelatorio = [];->join('users','users.id','=','candidatos.user_id') + $arquivos = Arquivo::where("trabalhoId", $trabalho->id)->get(); + $avals_projeto = []; + $media_avaliacoes = []; + + if (isset($arquivos)) { + foreach ($arquivos as $arquivo) { + array_push($avals_projeto, AvaliacaoRelatorio::where('arquivo_id', $arquivo->id)->get()); + } + } + + foreach ($avals_projeto as $avals) { + array_push($media_avaliacoes, $this->get_info_avaliacoes($avals)); } // Verficação de pendencia de substituição @@ -209,7 +208,7 @@ class AdministradorController extends Controller $hoje = Carbon::today('America/Recife'); $hoje = $hoje->toDateString(); - + //dd($media_avaliacoes, $arquivos); return view('administrador.analisarProposta')->with( ['trabalho' => $trabalho, 'funcaoParticipantes' => $funcaoParticipantes, @@ -217,15 +216,11 @@ class AdministradorController extends Controller 'substituicoesPendentes' => $substituicoesPendentes, 'substituicoesProjeto' => $substituicoesProjeto, 'grandeAreas' => $grandeAreas, - 'AvalRelatParcial' => $AvalRelatParcial, - 'AvalRelatFinal' => $AvalRelatFinal, 'hoje' => $hoje, 'flagSubstituicao' => $flagSubstituicao, - 'areasTematicas' => $areasTematicas, - 'MediaAvalRelatParcial' => $MediaAvalRelatParcial, - 'AvalRelatParcialPendentes' => $AvalRelatParcialPendentes, - 'MediaAvalRelatFinal' => $MediaAvalRelatFinal, - 'AvalRelatFinalPendentes' => $AvalRelatFinalPendentes, + 'areasTematicas' => $areasTematicas, + 'mediaAval' => $media_avaliacoes, + 'arquivos' => $arquivos, ]); } diff --git a/app/Http/Controllers/AvaliacaoRelatorioController.php b/app/Http/Controllers/AvaliacaoRelatorioController.php index dd1af6268b341515613c6ffe6a78b404ce8b4cc7..c23d38f8dd35f7124ec8e35dcbf2fe33ac3e7719 100644 --- a/app/Http/Controllers/AvaliacaoRelatorioController.php +++ b/app/Http/Controllers/AvaliacaoRelatorioController.php @@ -17,13 +17,6 @@ use Auth; class AvaliacaoRelatorioController extends Controller { - - public function create() - { - - } - - public function listarUser($id){ $avaliacao = AvaliacaoRelatorio::find($id); @@ -66,8 +59,10 @@ class AvaliacaoRelatorioController extends Controller public function criar(Request $request){ $validatedData = $request->validate([ 'nota' => ['required'], + 'nota_apresentacao' => ['required'], 'comentario' => ['required'], ]); + $avaliacao = AvaliacaoRelatorio::find($request->avaliacao_id); if($request->avaliacaoArq !=null){ @@ -77,6 +72,7 @@ class AvaliacaoRelatorioController extends Controller } $plano = Arquivo::find($request->plano_id); $avaliacao->nota = $request->nota; + $avaliacao->nota_apresentacao = $request->nota_apresentacao; $avaliacao->comentario = $request->comentario; $avaliacao->update(); diff --git a/app/Http/Controllers/EventoController.php b/app/Http/Controllers/EventoController.php index 0d2493de45a0c44db5a6dca9678a3ef78d03b316..159586f1cb133403600f223f2bf7ca8e269b8141 100755 --- a/app/Http/Controllers/EventoController.php +++ b/app/Http/Controllers/EventoController.php @@ -83,6 +83,7 @@ class EventoController extends Controller */ public function store(Request $request) { + // dd($request->all()); $mytime = Carbon::now('America/Recife'); $yesterday = Carbon::yesterday('America/Recife'); $yesterday = $yesterday->toDateString(); @@ -115,87 +116,45 @@ class EventoController extends Controller $request->fimProjeto == null ){ - $validatedData = $request->validate([ - 'nome' => ['required', 'string'], - 'descricao' => ['required', 'string'], - 'tipo' => ['required', 'string'], - 'natureza' => ['required'], - 'coordenador_id' => ['required'], - 'numParticipantes' => ['required'], - 'tipoAvaliacao' => ['required'], - 'inicioSubmissao' => ['required', 'date'], - 'fimSubmissao' => ['required', 'date'], - 'inicioRevisao' => ['required', 'date'], - 'fimRevisao' => ['required', 'date'], - 'inicio_recurso' => ['required', 'date'], - 'fim_recurso' => ['required', 'date'], - 'resultado_final' => ['required', 'date'], - 'resultado_preliminar'=> ['required', 'date'], - 'dt_inicioRelatorioParcial' => ['required', 'date'], - 'dt_fimRelatorioParcial' => ['required', 'date'], - 'dt_inicioRelatorioFinal' => ['required', 'date'], - 'dt_fimRelatorioFinal' => ['required', 'date'], - 'pdfEdital' => [($request->pdfEditalPreenchido!=='sim'?'required':''), 'file', 'mimes:pdf', 'max:2048'], - 'inicioProjeto' => ['required', 'date'], - 'fimProjeto' => ['required', 'date'], - 'nome_docExtra' => [Rule::requiredIf($request->check_docExtra != null), 'max:255'], - //'modeloDocumento' => [], - ]); - } + if($request->tipo == 'CONTINUO'){ + $validatedData = $request->validate(Evento::$continuos_dates_rules); + } else { + $validatedData = $request->validate(Evento::$dates_rules); + } - // validacao normal - //after = depois - //before = antes - $validatedData = $request->validate([ - 'nome' => ['required', 'string'], - 'descricao' => ['required', 'string','max:1500'], - 'tipo' => ['required', 'string'], - 'natureza' => ['required'], - 'coordenador_id' => ['required'], - 'numParticipantes' => ['required'], - 'nome_docExtra' => [Rule::requiredIf($request->check_docExtra != null),'max:255'], - 'tipoAvaliacao' => ['required'], - #---------------------------------------------- - 'inicioSubmissao' => ['required', 'date', 'after:yesterday'], - 'fimSubmissao' => ['required', 'date', 'after_or_equal:inicioSubmissao'], - 'inicioRevisao' => ['required', 'date', 'after:yesterday'], - 'fimRevisao' => ['required', 'date', 'after:inicioRevisao', 'after:fimSubmissao'], - 'resultado_preliminar'=> ['required', 'date', 'after_or_equal:fimRevisao'], - 'inicio_recurso' => ['required', 'date', 'after_or_equal:resultado_preliminar'], - 'fim_recurso' => ['required', 'date', 'after:inicio_recurso'], - 'resultado_final' => ['required', 'date', 'after:fim_recurso'], - 'dt_inicioRelatorioParcial' => ['required', 'date', 'after:resultado_final'], - 'dt_fimRelatorioParcial' => ['required', 'date', 'after_or_equal:dt_inicioRelatorioParcial'], - 'dt_inicioRelatorioFinal' => ['required', 'date', 'after:dt_fimRelatorioParcial'], - 'dt_fimRelatorioFinal' => ['required', 'date', 'after_or_equal:dt_inicioRelatorioFinal'], - 'pdfEdital' => [($request->pdfEditalPreenchido!=='sim'?'required':''), 'file', 'mimes:pdf', 'max:2048'], - 'inicioProjeto' => ['required', 'date', 'after:yesterday'], - 'fimProjeto' => ['required', 'date', 'after_or_equal:fimSubmissao'], - //'modeloDocumento' => ['file', 'mimes:zip,doc,docx,odt,pdf', 'max:2048'], - ]); + } + // validacao normal + if($request->tipo == 'CONTINUO'){ + $validatedData = $request->validate(Evento::$continuos_rules); + } else { + $validatedData = $request->validate(Evento::$rules); + } + + // Validação quando avaliação for por Barema - if ($request->tipoAvaliacao == 'form') { - $validateAvaliacao = $request->validate([ - 'pdfFormAvalExterno' => [($request->pdfFormAvalExternoPreenchido!=='sim'?'required':''), 'file', 'mimes:pdf,doc,docx,xlsx,xls,csv,zip', 'max:2048'], - ]); - } elseif ($request->tipoAvaliacao == 'campos') { - if($request->has('campos')){ - $validateCampo = $request->validate([ - 'inputField.*.nome' => ['required', 'string'], - 'inputField.*.nota_maxima' => ['required'], - 'inputField.*.prioridade' => ['required'], - 'somaNotas' => ['required', 'numeric', 'max:' . $request->pontuacao, 'min:' . $request->pontuacao], - ['somaNotas.*' => 'A soma das notas máximas deve ser igual a pontuação total definida.'] + if($request->tipo != 'CONTINUO'){ + if ($request->tipoAvaliacao == 'form') { + $validateAvaliacao = $request->validate([ + 'pdfFormAvalExterno' => [($request->pdfFormAvalExternoPreenchido!=='sim'?'required':''), 'file', 'mimes:pdf,doc,docx,xlsx,xls,csv,zip', 'max:2048'], + ]); + } elseif ($request->tipoAvaliacao == 'campos') { + if($request->has('campos')){ + $validateCampo = $request->validate([ + 'inputField.*.nome' => ['required', 'string'], + 'inputField.*.nota_maxima' => ['required'], + 'inputField.*.prioridade' => ['required'], + 'somaNotas' => ['required', 'numeric', 'max:' . $request->pontuacao, 'min:' . $request->pontuacao], + ['somaNotas.*' => 'A soma das notas máximas deve ser igual a pontuação total definida.'] + ]); + } + } elseif ($request->tipoAvaliacao == 'link') { + $validateAvaliacao = $request->validate([ + 'link' => ['required', 'url'], ]); } - } elseif ($request->tipoAvaliacao == 'link') { - $validateAvaliacao = $request->validate([ - 'link' => ['required', 'url'], - ]); } - //$evento = Evento::create([ $evento['nome'] = $request->nome; $evento['descricao'] = $request->descricao; @@ -206,16 +165,21 @@ class EventoController extends Controller } $evento['inicioSubmissao'] = $request->inicioSubmissao; $evento['fimSubmissao'] = $request->fimSubmissao; - $evento['inicioRevisao'] = $request->inicioRevisao; - $evento['fimRevisao'] = $request->fimRevisao; - $evento['inicio_recurso'] = $request->inicio_recurso; - $evento['fim_recurso'] = $request->fim_recurso; - $evento['resultado_preliminar']= $request->resultado_preliminar; - $evento['resultado_final'] = $request->resultado_final; - $evento['dt_inicioRelatorioParcial'] = $request->dt_inicioRelatorioParcial; - $evento['dt_fimRelatorioParcial'] = $request->dt_fimRelatorioParcial; - $evento['dt_inicioRelatorioFinal'] = $request->dt_inicioRelatorioFinal; - $evento['dt_fimRelatorioFinal'] = $request->dt_fimRelatorioFinal; + + if ($request->tipo != "CONTINUO"){ + $evento['inicioRevisao'] = $request->inicioRevisao; + $evento['fimRevisao'] = $request->fimRevisao; + $evento['inicio_recurso'] = $request->inicio_recurso; + $evento['fim_recurso'] = $request->fim_recurso; + $evento['resultado_preliminar']= $request->resultado_preliminar; + $evento['resultado_final'] = $request->resultado_final; + $evento['dt_inicioRelatorioParcial'] = $request->dt_inicioRelatorioParcial; + $evento['dt_fimRelatorioParcial'] = $request->dt_fimRelatorioParcial; + $evento['dt_inicioRelatorioFinal'] = $request->dt_inicioRelatorioFinal; + $evento['dt_fimRelatorioFinal'] = $request->dt_fimRelatorioFinal; + $evento['inicioProjeto'] = $request->inicioProjeto; + $evento['fimProjeto'] = $request->fimProjeto; + } $evento['coordenadorId'] = $request->coordenador_id; $evento['criador_id'] = $user_id; $evento['numParticipantes'] = $request->numParticipantes; @@ -223,13 +187,10 @@ class EventoController extends Controller $evento['cotaDoutor'] = $request->has('cotaDoutor'); $evento['obrigatoriedade_docExtra'] = $request->has('obrigatoriedade_docExtra'); $evento['anexosStatus'] = 'final'; - $evento['inicioProjeto'] = $request->inicioProjeto; - $evento['fimProjeto'] = $request->fimProjeto; $evento['tipoAvaliacao'] = $request->tipoAvaliacao; if($request->tipoAvaliacao == "link") { $evento['formAvaliacaoExterno'] = $request->link; - } - + } //dd($evento); // $user = User::find($request->coordenador_id); // $user->coordenadorComissao()->editais()->save($evento); @@ -490,81 +451,54 @@ class EventoController extends Controller $request->fimProjeto == null ){ - $validatedData = $request->validate([ - 'nome' => ['required', 'string'], - 'descricao' => ['required', 'string'], - 'tipo' => ['required', 'string'], - 'natureza' => ['required'], - 'numParticipantes' => ['required'], - 'tipoAvaliacao' => ['required'], - 'inicioSubmissao' => ['required', 'date'], - 'fimSubmissao' => ['required', 'date'], - 'inicioRevisao' => ['required', 'date', 'after:fimSubmissao'], - 'fimRevisao' => ['required', 'date'], - 'resultado_preliminar'=> ['required', 'date'], - 'inicio_recurso' => ['required', 'date'], - 'fim_recurso' => ['required', 'date'], - 'resultado_final' => ['required', 'date'], - 'dt_inicioRelatorioParcial' => ['required', 'date'], - 'dt_fimRelatorioParcial' => ['required', 'date'], - 'dt_inicioRelatorioFinal' => ['required', 'date'], - 'dt_fimRelatorioFinal' => ['required', 'date'], - 'pdfEdital' => ['file', 'mimes:pdf', 'max:2048'], - 'modeloDocumento' => ['file', 'mimes:zip,doc,docx,odt,pdf', 'max:2048'], - 'pdfFormAvalRelatorio' => ['file', 'mimes:pdf', 'max:2048'], - 'inicioProjeto' => ['required', 'date'], - 'fimProjeto' => ['required', 'date'], - 'docTutorial' => ['file', 'mimes:zip,doc,docx,pdf', 'max:2048'], - 'nome_docExtra' => [Rule::requiredIf($request->check_docExtra != null), 'max:255'], - - ]); + if($request->tipo == 'CONTINUO'){ + $validatedData = $request->validate(Evento::$continuos_dates_rules); + } else { + $validatedData = $request->validate(Evento::$dates_rules); + } } - $validated = $request->validate([ - 'nome' => ['required', 'string'], - 'descricao' => ['required', 'string', 'max:1500'], - 'tipo' => ['required', 'string'], - 'natureza' => ['required'], - 'numParticipantes' => ['required'], - 'tipoAvaliacao' => ['required'], - 'inicioSubmissao' => ['required', 'date', 'after_or_equal:inicioSubmissao'], - 'fimSubmissao' => ['required', 'date', 'after_or_equal:inicioSubmissao'], - 'inicioRevisao' => ['required', 'date', 'after:fimSubmissao'], - 'fimRevisao' => ['required', 'date', 'after:inicioRevisao'], - 'resultado_preliminar'=> ['required', 'date', 'after_or_equal:fimRevisao'], - 'inicio_recurso' => ['required', 'date', 'after_or_equal:resultado_preliminar'], - 'fim_recurso' => ['required', 'date', 'after:inicio_recurso'], - 'resultado_final' => ['required', 'date', 'after:fim_recurso'], - 'dt_inicioRelatorioParcial' => ['required', 'date', 'after:resultado_final'], - 'dt_fimRelatorioParcial' => ['required', 'date', 'after_or_equal:dt_inicioRelatorioParcial'], - 'dt_inicioRelatorioFinal' => ['required', 'date', 'after:dt_fimRelatorioParcial'], - 'dt_fimRelatorioFinal' => ['required', 'date', 'after_or_equal:dt_inicioRelatorioFinal'], - 'modeloDocumento' => ['file', 'mimes:zip,doc,docx,odt,pdf', 'max:2048'], - 'pdfFormAvalExterno' => ['file', 'mimes:pdf,doc,docx,xlsx,xls,csv,zip', 'max:2048'], - 'inicioProjeto' => ['required', 'date', 'after:resultado_final'], - 'fimProjeto' => ['required', 'date', 'after:inicioProjeto'], - 'docTutorial' => ['file', 'mimes:zip,doc,docx,pdf', 'max:2048'], - 'nome_docExtra' => [Rule::requiredIf($request->check_docExtra != null) , 'max:255'], - ]); + if($request->tipo == 'CONTINUO'){ + $validatedData = $request->validate(Evento::$continuos_edit_rules); + } else { + $validatedData = $request->validate(Evento::$edit_rules); + } - if ($request->tipoAvaliacao == 'form') { - $validateAvaliacao = $request->validate([ - 'pdfFormAvalExterno' => ['file','mimes:pdf,doc,docx,xlsx,xls,csv,zip', 'max:2048'], - ]); - } elseif ($request->tipoAvaliacao == 'campos') { - if($request->has('campos')){ - $validateCampo = $request->validate([ - 'inputField.*.nome' => ['required', 'string'], - 'inputField.*.nota_maxima' => ['required'], - 'inputField.*.prioridade' => ['required'], - 'somaNotas' => ['required', 'numeric', 'max:' . $request->pontuacao, 'min:' . $request->pontuacao], - ['somaNotas.*' => 'A soma das notas máximas deve ser igual a pontuação total definida.'] + if($request->tipo != 'CONTINUO'){ + if ($request->tipoAvaliacao == 'form') { + $validateAvaliacao = $request->validate([ + 'pdfFormAvalExterno' => ['file','mimes:pdf,doc,docx,xlsx,xls,csv,zip', 'max:2048'], + ]); + } elseif ($request->tipoAvaliacao == 'campos') { + if($request->has('campos')){ + $validateCampo = $request->validate([ + 'inputField.*.nome' => ['required', 'string'], + 'inputField.*.nota_maxima' => ['required'], + 'inputField.*.prioridade' => ['required'], + 'somaNotas' => ['required', 'numeric', 'max:' . $request->pontuacao, 'min:' . $request->pontuacao], + ['somaNotas.*' => 'A soma das notas máximas deve ser igual a pontuação total definida.'] + ]); + } + } elseif ($request->tipoAvaliacao == 'link') { + $validateAvaliacao = $request->validate([ + 'link' => ['required', 'url'], ]); } - } elseif ($request->tipoAvaliacao == 'link') { - $validateAvaliacao = $request->validate([ - 'link' => ['required', 'url'], - ]); + + $evento->inicioRevisao = $request->inicioRevisao; + $evento->fimRevisao = $request->fimRevisao; + $evento->inicio_recurso = $request->inicio_recurso; + $evento->fim_recurso = $request->fim_recurso; + $evento->resultado_preliminar = $request->resultado_preliminar; + $evento->resultado_final = $request->resultado_final; + $evento->dt_inicioRelatorioParcial = $request->dt_inicioRelatorioParcial; + $evento->dt_fimRelatorioParcial = $request->dt_fimRelatorioParcial; + $evento->dt_inicioRelatorioFinal = $request->dt_inicioRelatorioFinal; + $evento->dt_fimRelatorioFinal = $request->dt_fimRelatorioFinal; + $evento->cotaDoutor = $request->has('cotaDoutor'); + $evento->inicioProjeto = $request->inicioProjeto; + $evento->fimProjeto = $request->fimProjeto; + $evento->tipoAvaliacao = $request->tipoAvaliacao; } $evento->nome = $request->nome; @@ -577,25 +511,13 @@ class EventoController extends Controller }else{ $evento->nome_docExtra = null; } + $evento->inicioSubmissao = $request->inicioSubmissao; - $evento->fimSubmissao = $request->fimSubmissao; - $evento->inicioRevisao = $request->inicioRevisao; - $evento->fimRevisao = $request->fimRevisao; - $evento->inicio_recurso = $request->inicio_recurso; - $evento->fim_recurso = $request->fim_recurso; - $evento->resultado_preliminar = $request->resultado_preliminar; - $evento->resultado_final = $request->resultado_final; - $evento->dt_inicioRelatorioParcial = $request->dt_inicioRelatorioParcial; - $evento->dt_fimRelatorioParcial = $request->dt_fimRelatorioParcial; - $evento->dt_inicioRelatorioFinal = $request->dt_inicioRelatorioFinal; - $evento->dt_fimRelatorioFinal = $request->dt_fimRelatorioFinal; + $evento->fimSubmissao = $request->fimSubmissao; $evento->coordenadorId = $request->coordenador_id; $evento->consu = $request->has('consu'); - $evento->cotaDoutor = $request->has('cotaDoutor'); $evento->obrigatoriedade_docExtra = $request->has('obrigatoriedade_docExtra'); - $evento->inicioProjeto = $request->inicioProjeto; - $evento->fimProjeto = $request->fimProjeto; - $evento->tipoAvaliacao = $request->tipoAvaliacao; + if($request->tipoAvaliacao == "link") { $evento->formAvaliacaoExterno = $request->link; } diff --git a/app/Http/Controllers/TrabalhoController.php b/app/Http/Controllers/TrabalhoController.php index 7a88a10f017b8b6aab94b5311607fd098954525a..b6a4afb13fc567e617a4695c5b4932e61c7d370a 100755 --- a/app/Http/Controllers/TrabalhoController.php +++ b/app/Http/Controllers/TrabalhoController.php @@ -374,6 +374,14 @@ class TrabalhoController extends Controller $trabalho->anexo_docExtra = Storage::putFileAs($pasta, $request->anexo_docExtra, "Documento_Extra." . $request->file('anexo_docExtra')->extension()); } + //Anexo SIPAC + if (isset($request->anexo_SIPAC)) { + if (Storage::disk()->exists($trabalho->anexo_SIPAC)) { + Storage::delete($trabalho->anexo_SIPAC); + } + $trabalho->anexo_SIPAC = Storage::putFileAs($pasta, $request->anexo_SIPAC, "Anexo_SIPAC." . $request->file('anexo_SIPAC')->extension()); + } + return $trabalho; } @@ -404,24 +412,28 @@ class TrabalhoController extends Controller $trabalhos_user = TrabalhoUser::where('trabalho_id', $projeto->id)->get(); + $avals_projeto = []; $AvalRelatParcial = []; $AvalRelatFinal = []; - foreach ($participantes as $participante) { - if (isset($participante->planoTrabalho)) { - $avals = AvaliacaoRelatorio::where('arquivo_id', $participante->planoTrabalho->id)->get(); - } else { - $avals = []; + if (isset($arquivos)) { + foreach ($arquivos as $arquivo) { + array_push($avals_projeto, AvaliacaoRelatorio::where('arquivo_id', $arquivo->id)->get()); } - foreach ($avals as $aval) { + } + + foreach ($avals_projeto as $avals) { + foreach ($avals as $aval){ if ($aval->tipo == 'Parcial') { array_push($AvalRelatParcial, $aval); } else { array_push($AvalRelatFinal, $aval); } - } + } } + + return view('projeto.visualizar')->with(['projeto' => $projeto, 'grandeAreas' => $grandeAreas, 'areas' => $areas, @@ -836,6 +848,16 @@ class TrabalhoController extends Controller return abort(404); } + public function baixarAnexoSIPAC($id) + { + $projeto = Trabalho::find($id); + if (Storage::disk()->exists($projeto->anexo_SIPAC)) { + ob_end_clean(); + return Storage::download($projeto->anexo_SIPAC); + } + return abort(404); + } + public function baixarAnexoTemp($eventoId, $nomeAnexo) { $proponente = Proponente::where('user_id', Auth::user()->id)->first(); @@ -1141,7 +1163,6 @@ class TrabalhoController extends Controller public function salvar(StoreTrabalho $request) { - try { if (!$request->has('rascunho')) { $request->merge([ @@ -1159,14 +1180,21 @@ class TrabalhoController extends Controller if($evento->tipo=="PIBEX"){ $trabalho = Auth::user()->proponentes->trabalhos() ->create($request->except([ - 'anexoProjeto', 'anexoDecisaoCONSU','modalidade','anexo_docExtra' + 'anexoProjeto', 'anexoDecisaoCONSU','modalidade','anexo_docExtra', 'anexo_SIPAC' ])); - }else{ + }else if($evento->tipo=="CONTINUO"){ + $trabalho = Auth::user()->proponentes->trabalhos() + ->create($request->except([ + 'anexoProjeto', 'anexoDecisaoCONSU', 'anexoPlanilhaPontuacao', + 'anexoLattesCoordenador', 'anexoGrupoPesquisa', 'anexoAutorizacaoComiteEtica', + 'justificativaAutorizacaoEtica','modalidade','anexo_docExtra', + ])); + } else { $trabalho = Auth::user()->proponentes->trabalhos() ->create($request->except([ 'anexoProjeto', 'anexoDecisaoCONSU', 'anexoPlanilhaPontuacao', 'anexoLattesCoordenador', 'anexoGrupoPesquisa', 'anexoAutorizacaoComiteEtica', - 'justificativaAutorizacaoEtica','modalidade','anexo_docExtra' + 'justificativaAutorizacaoEtica','modalidade','anexo_docExtra', 'anexo_SIPAC' ])); } diff --git a/app/Http/Requests/StoreTrabalho.php b/app/Http/Requests/StoreTrabalho.php index 8c7edd08624ce6768831ddf6798aa16e93f2a896..1b71f6acca013c0624c195ffd888dab061dd712c 100755 --- a/app/Http/Requests/StoreTrabalho.php +++ b/app/Http/Requests/StoreTrabalho.php @@ -76,7 +76,7 @@ class StoreTrabalho extends FormRequest if($evento->nome_docExtra != null ){ $rules['anexo_docExtra'] = [Rule::requiredIf($evento->obrigatoriedade_docExtra == true),'file', 'mimes:zip,doc,docx,pdf', 'max:2048']; } - if($evento->tipo!="PIBEX"){ + if($evento->tipo!="PIBEX" && $evento->tipo!="CONTINUO"){ $rules['anexoPlanilhaPontuacao'] = ['required']; $rules['anexoLattesCoordenador'] = ['required', 'mimes:pdf']; $rules['anexoGrupoPesquisa'] = ['required', 'mimes:pdf']; @@ -98,9 +98,14 @@ class StoreTrabalho extends FormRequest } $rules['linkLattesEstudante'] = ['required', 'string']; - $rules['anexoProjeto'] = ['required', 'mimes:pdf']; $rules['anexoDecisaoCONSU'] = [Rule::requiredIf($evento->consu), 'mimes:pdf']; - + + if($evento->tipo!="CONTINUO"){ + $rules['anexoProjeto'] = ['required', 'mimes:pdf']; + } else { + $rules['anexo_SIPAC'] = ['required', 'mimes:pdf']; + } + return $rules; } diff --git a/database/migrations/2023_03_03_160243_add_nota_apresentacao_to_avaliacao_relatorios.php b/database/migrations/2023_03_03_160243_add_nota_apresentacao_to_avaliacao_relatorios.php new file mode 100644 index 0000000000000000000000000000000000000000..a6dae4520e3b0b900b27ea8cd3ff6c6a87220a0c --- /dev/null +++ b/database/migrations/2023_03_03_160243_add_nota_apresentacao_to_avaliacao_relatorios.php @@ -0,0 +1,32 @@ +float('nota_apresentacao')->nullable(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('avaliacao_relatorios', function (Blueprint $table) { + $table->dropColumn('nota_apresentacao'); + }); + } +} diff --git a/database/migrations/2023_04_10_170619_add_anexo_sipac_to_trabalhos_table.php b/database/migrations/2023_04_10_170619_add_anexo_sipac_to_trabalhos_table.php new file mode 100644 index 0000000000000000000000000000000000000000..739ff881fc7a3bc8494f7ff7f8e2e30d2ed330d4 --- /dev/null +++ b/database/migrations/2023_04_10_170619_add_anexo_sipac_to_trabalhos_table.php @@ -0,0 +1,32 @@ +string('anexo_SIPAC')->nullable(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('trabalhos', function (Blueprint $table) { + $table->dropColumn('anexo_SIPAC'); + }); + } +} diff --git a/database/seeds/OdsSeeder.php b/database/seeds/OdsSeeder.php new file mode 100644 index 0000000000000000000000000000000000000000..40eaa0df20550b6962012da3e5752217644ff051 --- /dev/null +++ b/database/seeds/OdsSeeder.php @@ -0,0 +1,83 @@ +insert([ + 'nome'=>'Erradicação da pobreza', + ]); + + DB::table('objetivo_de_desenvolvimento_sustentavels')->insert([ + 'nome'=>'Fome zero e agricultura sustentável', + ]); + + DB::table('objetivo_de_desenvolvimento_sustentavels')->insert([ + 'nome'=>'Saúde e Bem-estar', + ]); + + DB::table('objetivo_de_desenvolvimento_sustentavels')->insert([ + 'nome'=>'Educação de qualidade', + ]); + + DB::table('objetivo_de_desenvolvimento_sustentavels')->insert([ + 'nome'=>'Igualdade de Gênero', + ]); + + DB::table('objetivo_de_desenvolvimento_sustentavels')->insert([ + 'nome'=>'Água potável e Saneamento', + ]); + + DB::table('objetivo_de_desenvolvimento_sustentavels')->insert([ + 'nome'=>'Energia Acessível e Limpa', + ]); + + DB::table('objetivo_de_desenvolvimento_sustentavels')->insert([ + 'nome'=>'Trabalho decente e crescimento econômico', + ]); + + DB::table('objetivo_de_desenvolvimento_sustentavels')->insert([ + 'nome'=>'Indústria, Inovação e Infraestrutura', + ]); + + DB::table('objetivo_de_desenvolvimento_sustentavels')->insert([ + 'nome'=>'Redução das desigualdades', + ]); + + DB::table('objetivo_de_desenvolvimento_sustentavels')->insert([ + 'nome'=>'Cidades e comunidades sustentáveis', + ]); + + DB::table('objetivo_de_desenvolvimento_sustentavels')->insert([ + 'nome'=>'Consumo e produção responsáveis', + ]); + + DB::table('objetivo_de_desenvolvimento_sustentavels')->insert([ + 'nome'=>'Ação contra a mudança global do clima', + ]); + + DB::table('objetivo_de_desenvolvimento_sustentavels')->insert([ + 'nome'=>'Vida na água', + ]); + + DB::table('objetivo_de_desenvolvimento_sustentavels')->insert([ + 'nome'=>'Vida terrestre', + ]); + + DB::table('objetivo_de_desenvolvimento_sustentavels')->insert([ + 'nome'=>'Paz, justiça e instituições eficazes', + ]); + + DB::table('objetivo_de_desenvolvimento_sustentavels')->insert([ + 'nome'=>'Parcerias e meios de implementação', + ]); + } +} diff --git a/resources/views/administrador/analisarProposta.blade.php b/resources/views/administrador/analisarProposta.blade.php index 0a9b1ba1cb2d1af308d7525af7bf70b71ab8d50f..d1d50f3eb9212b8c5855eb1c1ef85a4457686016 100644 --- a/resources/views/administrador/analisarProposta.blade.php +++ b/resources/views/administrador/analisarProposta.blade.php @@ -435,94 +435,105 @@