Commit 691d76ba authored by Vitor Roberto's avatar Vitor Roberto
Browse files

Edital Edital Ajustado e ajuste no bd (tinha 2 colunas com a mesma info...

Edital Edital Ajustado e ajuste no bd (tinha 2 colunas com a mesma info (coordenador_id -> agora somente coordenadorId))
parent 27461b8f
......@@ -15,7 +15,7 @@ class CoordenadorComissao extends Model
}
public function trabalho(){
return $this->hasMany('App\Trabalho', 'coordenador_id');
return $this->hasMany('App\Trabalho', 'coordenadorId');
}
}
......@@ -14,7 +14,7 @@ class Evento extends Model
* @var array
*/
protected $fillable = [
'nome', 'descricao', 'tipo',
'nome', 'descricao', 'tipo', 'natureza',
'inicioSubmissao', 'fimSubmissao', 'inicioRevisao', 'fimRevisao',
'resultado_final','resultado_preliminar', 'coordenadorId',
'numMaxTrabalhos', 'numMaxCoautores', 'hasResumo', 'criador_id', 'numParticipantes',
......@@ -55,7 +55,7 @@ class Evento extends Model
'descricao' => ['required', 'string','max:1500'],
'tipo' => ['required', 'string'],
'natureza' => ['required'],
'coordenador_id' => ['required'],
'coordenadorId' => ['required'],
// 'numParticipantes' => ['required'],
'nome_docExtra' => ['required_with:check_docExtra','max:255'],
'tipoAvaliacao' => ['required'],
......@@ -82,7 +82,7 @@ class Evento extends Model
'descricao' => ['required', 'string','max:1500'],
'tipo' => ['required', 'string'],
'natureza' => ['required'],
'coordenador_id' => ['required'],
'coordenadorId' => ['required'],
// 'numParticipantes' => ['required'],
'nome_docExtra' => ['required_with:check_docExtra','max:255'],
'tipoAvaliacao' => ['required'],
......@@ -124,7 +124,7 @@ class Evento extends Model
'descricao' => ['required', 'string','max:1500'],
'tipo' => ['required', 'string'],
'natureza' => ['required'],
'coordenador_id' => ['required'],
'coordenadorId' => ['required'],
// 'numParticipantes' => ['required'],
'nome_docExtra' => ['required_with:check_docExtra','max:255'],
'tipoAvaliacao' => ['required'],
......
......@@ -78,10 +78,10 @@ class AdministradorController extends Controller
$trabalhos = $evento->trabalhos->whereNotIn('status', 'rascunho');
$coordenador_id_evento = $evento->coordenadorId;
$coordenador_id = CoordenadorComissao::find($coordenador_id_evento);
$coordenadorId = CoordenadorComissao::find($coordenador_id_evento);
$user = Auth::user();
if ((Auth::user()->id != $coordenador_id->user_id) && ($user->tipo != 'administrador')) {
if ((Auth::user()->id != $coordenadorId->user_id) && ($user->tipo != 'administrador')) {
return redirect()->back();
}
......@@ -271,10 +271,10 @@ class AdministradorController extends Controller
//dd($request);
$evento = Evento::where('id', $request->evento_id)->first();
$coordenador_id_evento = $evento->coordenadorId;
$coordenador_id = CoordenadorComissao::find($coordenador_id_evento);
$coordenadorId = CoordenadorComissao::find($coordenador_id_evento);
$user = Auth::user();
if ((Auth::user()->id != $coordenador_id->user_id) && ($user->tipo != 'administrador')) {
if ((Auth::user()->id != $coordenadorId->user_id) && ($user->tipo != 'administrador')) {
return redirect()->back();
}
......@@ -840,10 +840,10 @@ class AdministradorController extends Controller
{
$evento = Evento::where('id', $request->evento_id)->first();
$coordenador_id_evento = $evento->coordenadorId;
$coordenador_id = CoordenadorComissao::find($coordenador_id_evento);
$coordenadorId = CoordenadorComissao::find($coordenador_id_evento);
$user = Auth::user();
if ((Auth::user()->id != $coordenador_id->user_id) && ($user->tipo != 'administrador')) {
if ((Auth::user()->id != $coordenadorId->user_id) && ($user->tipo != 'administrador')) {
return redirect()->back();
}
......@@ -856,7 +856,7 @@ class AdministradorController extends Controller
$evento = Evento::where('id', $request->evento_id)->first();
$coordenador_id_evento = $evento->coordenadorId;
$coordenador_id = CoordenadorComissao::find($coordenador_id_evento);
$coordenadorId = CoordenadorComissao::find($coordenador_id_evento);
$grandeAreas = GrandeArea::orderBy('nome')->get();
$areasTematicas = AreaTematica::orderBy('nome')->get();
$avalSelecionados = $evento->avaliadors;
......@@ -891,7 +891,7 @@ class AdministradorController extends Controller
}
if ((Auth::user()->id != $coordenador_id->user_id) && ($user->tipo != 'administrador')) {
if ((Auth::user()->id != $coordenadorId->user_id) && ($user->tipo != 'administrador')) {
return redirect()->back();
}
......
......@@ -113,7 +113,7 @@ class EventoController extends Controller
'descricao' => ['required', 'string', 'max:1500'],
'tipo' => ['required', 'string'],
'natureza' => ['required'],
'coordenador_id' => ['required'],
'coordenadorId' => ['required'],
'nome_docExtra' => [Rule::requiredIf($request->check_docExtra != null), 'max:255'],
'inicioSubmissao' => ['required', 'date', 'after:yesterday'],
'fimSubmissao' => ['required', 'date', 'after_or_equal:inicioSubmissao'],
......@@ -162,7 +162,7 @@ class EventoController extends Controller
$evento->nome = $request->nome;
$evento->descricao = $request->descricao;
$evento->tipo = $request->tipo;
$evento->natureza_id = $request->natureza;
$evento->natureza = $request->natureza_id;
$evento->inicioSubmissao = $request->inicioSubmissao;
$evento->fimSubmissao = $request->fimSubmissao;
$evento->inicioRevisao = $request->inicioRevisao;
......@@ -185,7 +185,7 @@ class EventoController extends Controller
$evento->dt_fimRelatorioFinal = $request->dt_fimRelatorioFinal;
}
$evento->coordenadorId = $request->coordenador_id;
$evento->coordenadorId = $request->coordenadorId;
$evento->criador_id = $user_id;
$evento->numParticipantes = $request->numParticipantes;
$evento->consu = $request->has('consu');
......@@ -194,8 +194,8 @@ class EventoController extends Controller
$evento->tipoAvaliacao = 'campos'; // ou o valor correto conforme a implementação
$evento->save(); // Salva o evento primeiro para obter o ID
// Salvamento dos Campos de Avaliação
if ($request->has('inputField')) {
foreach ($request->inputField as $field) {
if ($request->has('inputFieldBarema')) {
foreach ($request->inputFieldBarema as $field) {
$campoAval = new CampoAvaliacao();
$campoAval->nome = $field['nome'] . '-b'; // Adiciona o sufixo '-b' para Barema
$campoAval->nota_maxima = $field['nota_maxima'];
......@@ -382,130 +382,103 @@ class EventoController extends Controller
*/
public function update(Request $request, $id)
{
$tipo_usuario = Auth()->user()->tipo;
$evento = Evento::find($id);
$yesterday = Carbon::yesterday('America/Recife');
$yesterday = $yesterday->toDateString();
$camposAvaliacao = CampoAvaliacao::where('evento_id', $id);
if (!isset($request->inicioSubmissao) || !isset($request->fimSubmissao) || !isset($request->inicioRevisao) || !isset($request->fimRevisao) || !isset($request->resultado)) {
if ($request->tipo == 'CONTINUO') {
$validatedData = $request->validate(Evento::$continuos_dates_rules);
} else {
$validatedData = $request->validate(Evento::$dates_rules);
}
}
if ($request->tipo != 'CONTINUO') {
$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.']
]);
// Validações dos campos
$request->validate([
'nome' => 'required|string|max:255',
'tipo' => 'required|string',
'natureza' => 'required|integer',
'descricao' => 'required|string',
'inicioSubmissao' => 'required|date',
'fimSubmissao' => 'required|date',
'inicioRevisao' => 'required|date',
'fimRevisao' => 'required|date',
'resultado_preliminar' => 'required|date',
'inicio_recurso' => 'required|date',
'fim_recurso' => 'required|date',
'resultado_final' => 'required|date',
'pdfEdital' => 'nullable|file|mimes:pdf|max:2048',
'modeloDocumento' => 'nullable|file|mimes:pdf|max:2048',
'pdfRecurso' => 'nullable|file|mimes:pdf|max:2048',
'pdfRelatorio' => 'nullable|file|mimes:pdf|max:2048',
'pdfFormAvalRelatorio' => 'nullable|file|mimes:pdf|max:2048',
]);
$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->tipoAvaliacao = 'campos';
}
// Busca o evento no banco de dados
$evento = Evento::findOrFail($id);
// Atualiza os campos básicos
$evento->nome = $request->nome;
$evento->descricao = $request->descricao;
$evento->tipo = $request->tipo;
$evento->natureza_id = $request->natureza;
$evento->numParticipantes = $request->numParticipantes;
if ($request->check_docExtra != null) {
$evento->nome_docExtra = $request->nome_docExtra;
} else {
$evento->nome_docExtra = null;
}
$evento->natureza_id = $request->natureza_id;
$evento->descricao = $request->descricao;
$evento->inicioSubmissao = $request->inicioSubmissao;
$evento->fimSubmissao = $request->fimSubmissao;
$evento->coordenadorId = $request->coordenador_id;
$evento->consu = $request->has('consu');
$evento->obrigatoriedade_docExtra = $request->has('obrigatoriedade_docExtra');
$evento->inicioRevisao = $request->inicioRevisao;
$evento->fimRevisao = $request->fimRevisao;
$evento->resultado_preliminar = $request->resultado_preliminar;
$evento->inicio_recurso = $request->inicio_recurso;
$evento->fim_recurso = $request->fim_recurso;
$evento->resultado_final = $request->resultado_final;
$evento->coordenadorId = $request->coordenadorId;
if ($request->pdfEdital != null) {
$pdfEdital = $request->pdfEdital;
$path = 'pdfEdital/' . $evento->id . '/';
$nome = "edital.pdf";
Storage::putFileAs($path, $pdfEdital, $nome);
// Verifica se algum arquivo foi enviado e armazena
if ($request->hasFile('pdfEdital')) {
$evento->pdfEdital = $request->file('pdfEdital')->store('pdfEdital');
}
if ($request->modeloDocumento != null) {
$count = count($request->modeloDocumento);
$zip = new ZipArchive;
$filename = "storage/app/modeloDocumento/$evento->id/modelo.zip";
if ($request->hasFile('modeloDocumento')) {
$evento->modeloDocumento = $request->file('modeloDocumento')->store('modeloDocumento');
}
// Crie o diretório se ele não existir
if (!file_exists("storage/app/modeloDocumento/$evento->id")) {
mkdir("storage/app/modeloDocumento/$evento->id", 0777, true);
}
$zip->open($filename, ZipArchive::CREATE | ZipArchive::OVERWRITE);
for ($i = 0; $i < $count; $i++) {
$zip->addFile($request->modeloDocumento[$i]->getRealPath(), $request->modeloDocumento[$i]->getClientOriginalName());
}
$zip->close();
$evento->modeloDocumento = $filename;
$evento->save();
}
if (isset($request->pdfFormAvalRelatorio)) {
$pdfFormAvalRelatorio = $request->pdfFormAvalRelatorio;
$extension = $pdfFormAvalRelatorio->extension();
$path = 'pdfFormAvalRelatorio/' . $evento->id . '/';
$nome = "formulario de avaliação do relatorio" . "." . $extension;
Storage::putFileAs($path, $pdfFormAvalRelatorio, $nome);
$evento->formAvaliacaoRelatorio = $path . $nome;
}
// Editando campos de avaliacao
if ($request->tipoAvaliacao == 'campos') {
if ($request->has('campos')) {
$camposAvaliacao->forceDelete();
foreach ($request->get('campos') as $key => $value) {
$campoAval = new CampoAvaliacao();
$campoAval->nome = $request->inputField[$value]['nome'];
$campoAval->nota_maxima = $request->inputField[$value]['nota_maxima'];
if ($request->inputField[$value]['descricao'] != null) {
$campoAval->descricao = $request->inputField[$value]['descricao'];
}
$campoAval->prioridade = $request->inputField[$value]['prioridade'];
$campoAval->evento_id = $evento->id;
$campoAval->save();
}
}
if ($request->hasFile('pdfRecurso')) {
$evento->pdfRecurso = $request->file('pdfRecurso')->store('pdfRecurso');
}
// Mudança de tipo de avaliação
if ($request->tipoAvaliacao != 'campos') {
//Apaga campos de avaliacao
$camposAvaliacao->forceDelete();
if ($request->hasFile('pdfRelatorio')) {
$evento->pdfRelatorio = $request->file('pdfRelatorio')->store('pdfRelatorio');
}
$evento->update();
if ($request->hasFile('pdfFormAvalRelatorio')) {
$evento->pdfFormAvalRelatorio = $request->file('pdfFormAvalRelatorio')->store('pdfFormAvalRelatorio');
}
$eventos = Evento::orderBy('nome')->get();
//dd('FINAL');
if ($tipo_usuario == 'coordenador') {
return redirect(route('coordenador.editais'))->with(['mensagem' => 'Edital salvo com sucesso!', 'eventos' => $eventos]);
// Atualiza as avaliações (Barema e Currículo)
if ($request->has('tipoAvaliacao')) {
$evento->tipoAvaliacao = implode(',', $request->tipoAvaliacao);
}
DB::table('campo_avaliacaos')->where('evento_id', $id)->delete();
return redirect(route('admin.editais'))->with(['mensagem' => 'Edital salvo com sucesso!', 'eventos' => $eventos]);
// Campos dinâmicos de Barema
if ($request->has('inputFieldBarema')) {
foreach ($request->inputFieldBarema as $field) {
$campoAval = new CampoAvaliacao();
$campoAval->nome = $field['nome'] . '-b'; // Adiciona o sufixo '-b' para Barema
$campoAval->nota_maxima = $field['nota_maxima'];
$campoAval->descricao = $field['descricao'] ?? null;
$campoAval->prioridade = $field['prioridade'];
$campoAval->evento_id = $evento->id;
$campoAval->save();
}
}
if ($request->has('inputFieldCurriculo')) {
foreach ($request->inputFieldCurriculo as $field) {
$campoAval = new CampoAvaliacao();
$campoAval->nome = $field['nome'] . '-c'; // Adiciona o sufixo '-c' para Currículo
$campoAval->nota_maxima = $field['nota_maxima'];
$campoAval->descricao = $field['descricao'] ?? null;
$campoAval->prioridade = $field['prioridade'];
$campoAval->evento_id = $evento->id;
$campoAval->save();
}
}
// Salva as alterações no banco de dados
$evento->save();
// Redireciona com mensagem de sucesso
return redirect()->route('admin.editais', $evento->id)->with('success', 'Evento atualizado com sucesso!');
}
/**
......
......@@ -204,7 +204,7 @@ class TrabalhoController extends Controller
$stringKeys = ['titulo','linkGrupoPesquisa', 'linkLattesEstudante','pontuacaoPlanilha','anexoProjeto',
'anexoPlanilhaPontuacao', 'anexoLattesCoordenador', 'conflitosInteresse'];
$intKeys = ['grande_area_id','area_id','sub_area_id','coordenador_id'];
$intKeys = ['grande_area_id','area_id','sub_area_id','coordenadorId'];
$trabalho->fill(
array_fill_keys($stringKeys, "") + array_fill_keys($intKeys, 1)
......@@ -973,7 +973,7 @@ class TrabalhoController extends Controller
}
$evento = Evento::find($request->editalId);
$request->merge([
'coordenador_id' => $evento->coordenadorComissao->id
'coordenadorId' => $evento->coordenadorComissao->id
]);
$trabalho = Trabalho::find($id);
$trabalho->ods()->sync($request->ods);
......@@ -1343,7 +1343,7 @@ class TrabalhoController extends Controller
$evento = Evento::find($request->editalId);
$proponente = Proponente::where('user_id', Auth::user()->id)->first();
$request->merge([
'coordenador_id' => $evento->coordenadorComissao->id
'coordenadorId' => $evento->coordenadorComissao->id
]);
DB::beginTransaction();
......@@ -1564,7 +1564,7 @@ class TrabalhoController extends Controller
$hoje = now();
$projeto->titulo = $request->nomeProjeto;
$projeto->coordenador_id = $edital->coordenadorComissao->id;
$projeto->coordenadorId = $edital->coordenadorComissao->id;
$projeto->grande_area_id = $request->grandeArea;
$projeto->area_id = $request->area;
$projeto->sub_area_id = $request->subArea;
......
......@@ -36,7 +36,7 @@ class Trabalho extends Model
'sub_area_id',
'evento_id',
'proponente_id',
'coordenador_id',
'coordenadorId',
'proponente_id',
'pivot',
'area_tematica_id',
......
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class RenameCoordenadorIdToCoordenadorIdInTrabalhosTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::table('trabalhos', function (Blueprint $table) {
$table->renameColumn('coordenador_id', 'coordenadorId');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::table('trabalhos', function (Blueprint $table) {
$table->renameColumn('coordenadorId', 'coordenador_id');
});
}
}
\ No newline at end of file
......@@ -146,8 +146,7 @@
<div class="col-sm-12">
<div class="row">
<div class="col-md-11">
<label for="coordenador_id" class="col-form-label">{{ __('Coordenador:') }}<span style="color:red; font-weight:bold;">*</span></label>
<label for="coordenadorId" class="col-form-label">{{ __('Coordenador:') }}<span style="color:red; font-weight:bold;">*</span></label>
</div>
<div class="col-md-1 text-sm-right">
<a type="button" value="Selecionar" data-toggle="modal" data-target="#modalCoord">
......@@ -156,17 +155,11 @@
</div>
</div>
<input id="coordenador_id" name="coordenador_id" class="form-control" value="{{old('coordenador_id')}}" hidden>
<input id="coordenadorId" name="coordenadorId" class="form-control" value="{{old('coordenadorId')}}" hidden>
<input style="margin-top: 5px" id="coordenador_name" name="coordenador_name" class="form-control @error('coordenador_id') is-invalid @enderror" value="{{old('coordenador_name')}}" placeholder="Nenhum Coordenador atribuido" required readonly>
<input style="margin-top: 5px" id="coordenador_name" name="coordenador_name" class="form-control @error('coordenadorId') is-invalid @enderror" value="{{old('coordenador_name')}}" placeholder="Nenhum Coordenador atribuido" required readonly>
{{-- <select class="form-control @error('coordenador_id') is-invalid @enderror" id="coordenador_id" name="coordenador_id" style="pointer-events: none">
<option value="" disabled selected hidden>-- Coordenador da Comissão Avaliadora --</option>
@foreach($coordenadors as $coordenador)
<option @if(old('coordenador_id')==$coordenador->id ) selected @endif value="{{$coordenador->id}}">{{$coordenador->user->name}}</option>
@endforeach
</select>--}}
@error('coordenador_id')
@error('coordenadorId')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
......@@ -804,7 +797,7 @@ document.addEventListener('DOMContentLoaded', function() {
}
window.defCoord = function(data, data2) {
document.getElementById('coordenador_id').value = data;
document.getElementById('coordenadorId').value = data;
document.getElementById('coordenador_name').value = data2;
$("#modalCoord").modal('hide');
}
......
......@@ -166,7 +166,7 @@
<div class="col-sm-12">
<div class="row">
<div class="col-md-11">
<label for="coordenador_id" class="col-form-label">{{ __('Coordenador:') }}<span style="color:red; font-weight:bold;">*</span></label>
<label for="coordenadorId" class="col-form-label">{{ __('Coordenador:') }}<span style="color:red; font-weight:bold;">*</span></label>
</div>
<div class="col-md-1 text-sm-right">
......@@ -176,13 +176,13 @@
</div>
</div>
<input id="coordenador_id" name="coordenador_id" class="form-control" value="{{old('coordenador_id', $evento->coordenador_id)}}" hidden>
<input id="coordenadorId" name="coordenadorId" class="form-control" value="{{old('coordenadorId', $evento->coordenadorId)}}" hidden>
<input style="margin-top: 5px" id="coordenador_name" name="coordenador_name" class="form-control @error('coordenador_id') is-invalid @enderror"
<input style="margin-top: 5px" id="coordenador_name" name="coordenador_name" class="form-control @error('coordenadorId') is-invalid @enderror"
value="{{ old('coordenador_name', $evento->coordenador && $evento->coordenador->user ? $evento->coordenador->user->name : '') }}"
placeholder="Nenhum Coordenador atribuido" required readonly>
@error('coordenador_id')
@error('coordenadorId')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
......@@ -810,7 +810,7 @@ document.addEventListener('DOMContentLoaded', function() {
}
window.defCoord = function(data, data2) {
document.getElementById('coordenador_id').value = data;
document.getElementById('coordenadorId').value = data;
document.getElementById('coordenador_name').value = data2;
$("#modalCoord").modal('hide');
}
......
......@@ -32,7 +32,7 @@
<td>
<div class="btn-group dropright dropdown-options">
<a id="options" class="dropdown-toggle " data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
<img src="{{asset('img/icons/ellipsis-v-solid.svg')}}" style="width:8px">
<img src="{{asset('img/icons/ellipsis-v-solid.svg')}}" style="width:8px">
</a>
<div class="dropdown-menu">
<a href="{{ route('coord.detalhesEvento', ['eventoId' => $evento->id]) }}" class="dropdown-item">
......
......@@ -337,7 +337,7 @@ Route::prefix('evento')->name('evento.')->group(function () {
Route::get('/listar', 'EventoController@listar')->name('listar')->middleware('auth');
Route::delete('/excluir/{id}', 'EventoController@destroy')->name('deletar')->middleware('checkRoles:coordenador,administrador');
Route::get('/editar/{id}', 'EventoController@edit')->name('editar')->middleware('checkRoles:coordenador,administrador');
Route::post('/editar/{id}', 'EventoController@update')->name('update')->middleware('checkRoles:coordenador,administrador');
Route::put('/editar/{id}', 'EventoController@update')->name('update')->middleware('checkRoles:coordenador,administrador');
Route::post('/setResumo', 'EventoController@setResumo')->name('setResumo')->middleware('checkAdministrador');
Route::post('/setFoto', 'EventoController@setFotoEvento')->name('setFotoEvento')->middleware('checkAdministrador');
});
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment