Commit 627ba05c authored by Lucas Henrique's avatar Lucas Henrique
Browse files

Adiciona novos tipos de avaliação ao cadastrar um edital

parent 2eac966d
...@@ -16,6 +16,7 @@ use App\Trabalho; ...@@ -16,6 +16,7 @@ use App\Trabalho;
use App\AreaModalidade; use App\AreaModalidade;
use App\Natureza; use App\Natureza;
use App\CoordenadorComissao; use App\CoordenadorComissao;
use App\CampoAvaliacao;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Carbon\Carbon; use Carbon\Carbon;
use App\Rules\ExcelRule; use App\Rules\ExcelRule;
...@@ -82,7 +83,6 @@ class EventoController extends Controller ...@@ -82,7 +83,6 @@ class EventoController extends Controller
*/ */
public function store(Request $request) public function store(Request $request)
{ {
$mytime = Carbon::now('America/Recife'); $mytime = Carbon::now('America/Recife');
$yesterday = Carbon::yesterday('America/Recife'); $yesterday = Carbon::yesterday('America/Recife');
$yesterday = $yesterday->toDateString(); $yesterday = $yesterday->toDateString();
...@@ -134,7 +134,6 @@ class EventoController extends Controller ...@@ -134,7 +134,6 @@ class EventoController extends Controller
'dt_fimRelatorioParcial' => ['required', 'date'], 'dt_fimRelatorioParcial' => ['required', 'date'],
'dt_inicioRelatorioFinal' => ['required', 'date'], 'dt_inicioRelatorioFinal' => ['required', 'date'],
'dt_fimRelatorioFinal' => ['required', 'date'], 'dt_fimRelatorioFinal' => ['required', 'date'],
'pdfFormAvalExterno' => [($request->pdfFormAvalExternoPreenchido!=='sim'?'required':''), 'file','mimes:pdf,doc,docx,xlsx,xls,csv,zip', 'max:2048'],
'pdfEdital' => [($request->pdfEditalPreenchido!=='sim'?'required':''), 'file', 'mimes:pdf', 'max:2048'], 'pdfEdital' => [($request->pdfEditalPreenchido!=='sim'?'required':''), 'file', 'mimes:pdf', 'max:2048'],
'inicioProjeto' => ['required', 'date'], 'inicioProjeto' => ['required', 'date'],
'fimProjeto' => ['required', 'date'], 'fimProjeto' => ['required', 'date'],
...@@ -152,7 +151,7 @@ class EventoController extends Controller ...@@ -152,7 +151,7 @@ class EventoController extends Controller
'tipo' => ['required', 'string'], 'tipo' => ['required', 'string'],
'natureza' => ['required'], 'natureza' => ['required'],
'coordenador_id' => ['required'], 'coordenador_id' => ['required'],
'numParticipantes' => ['required'], 'numParticipantes' => ['required'],
'nome_docExtra' => [Rule::requiredIf($request->check_docExtra != null),'max:255'], 'nome_docExtra' => [Rule::requiredIf($request->check_docExtra != null),'max:255'],
#---------------------------------------------- #----------------------------------------------
'inicioSubmissao' => ['required', 'date', 'after:yesterday'], 'inicioSubmissao' => ['required', 'date', 'after:yesterday'],
...@@ -167,12 +166,31 @@ class EventoController extends Controller ...@@ -167,12 +166,31 @@ class EventoController extends Controller
'dt_fimRelatorioParcial' => ['required', 'date', 'after_or_equal:dt_inicioRelatorioParcial'], 'dt_fimRelatorioParcial' => ['required', 'date', 'after_or_equal:dt_inicioRelatorioParcial'],
'dt_inicioRelatorioFinal' => ['required', 'date', 'after:dt_fimRelatorioParcial'], 'dt_inicioRelatorioFinal' => ['required', 'date', 'after:dt_fimRelatorioParcial'],
'dt_fimRelatorioFinal' => ['required', 'date', 'after_or_equal:dt_inicioRelatorioFinal'], 'dt_fimRelatorioFinal' => ['required', 'date', 'after_or_equal:dt_inicioRelatorioFinal'],
'pdfFormAvalExterno' => [($request->pdfFormAvalExternoPreenchido!=='sim'?'required':''), 'file','mimes:pdf,doc,docx,xlsx,xls,csv,zip', 'max:2048'],
'pdfEdital' => [($request->pdfEditalPreenchido!=='sim'?'required':''), 'file', 'mimes:pdf', 'max:2048'], 'pdfEdital' => [($request->pdfEditalPreenchido!=='sim'?'required':''), 'file', 'mimes:pdf', 'max:2048'],
'inicioProjeto' => ['required', 'date', 'after:yesterday'], 'inicioProjeto' => ['required', 'date', 'after:yesterday'],
'fimProjeto' => ['required', 'date', 'after_or_equal:fimSubmissao'], 'fimProjeto' => ['required', 'date', 'after_or_equal:fimSubmissao'],
//'modeloDocumento' => ['file', 'mimes:zip,doc,docx,odt,pdf', 'max:2048'], //'modeloDocumento' => ['file', 'mimes:zip,doc,docx,odt,pdf', 'max:2048'],
]); ]);
// 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']
]);
}
} elseif ($request->tipoAvaliacao == 'link') {
$validateAvaliacao = $request->validate([
'link' => ['required', 'url'],
]);
}
//$evento = Evento::create([ //$evento = Evento::create([
$evento['nome'] = $request->nome; $evento['nome'] = $request->nome;
...@@ -203,6 +221,9 @@ class EventoController extends Controller ...@@ -203,6 +221,9 @@ class EventoController extends Controller
$evento['anexosStatus'] = 'final'; $evento['anexosStatus'] = 'final';
$evento['inicioProjeto'] = $request->inicioProjeto; $evento['inicioProjeto'] = $request->inicioProjeto;
$evento['fimProjeto'] = $request->fimProjeto; $evento['fimProjeto'] = $request->fimProjeto;
if($request->tipoAvaliacao == "link") {
$evento['formAvaliacaoExterno'] = $request->link;
}
//dd($evento); //dd($evento);
// $user = User::find($request->coordenador_id); // $user = User::find($request->coordenador_id);
...@@ -238,7 +259,7 @@ class EventoController extends Controller ...@@ -238,7 +259,7 @@ class EventoController extends Controller
} }
if(isset($request->pdfFormAvalExterno)){ if(isset($request->pdfFormAvalExterno) && ($request->tipoAvaliacao == 'form')){
$pdfFormAvalExterno = $request->pdfFormAvalExterno; $pdfFormAvalExterno = $request->pdfFormAvalExterno;
$extension = $pdfFormAvalExterno->extension(); $extension = $pdfFormAvalExterno->extension();
$path = 'pdfFormAvalExterno/' . $evento->id . '/'; $path = 'pdfFormAvalExterno/' . $evento->id . '/';
...@@ -257,7 +278,7 @@ class EventoController extends Controller ...@@ -257,7 +278,7 @@ class EventoController extends Controller
$evento->formAvaliacaoRelatorio = $path . $nome; $evento->formAvaliacaoRelatorio = $path . $nome;
} }
if(isset($request->docTutorial)){ if(isset($request->docTutorial) && ($request->tipoAvaliacao == 'form')){
$docTutorial = $request->docTutorial; $docTutorial = $request->docTutorial;
$extension = $docTutorial->extension(); $extension = $docTutorial->extension();
$path = 'docTutorial/' . $evento->id . '/'; $path = 'docTutorial/' . $evento->id . '/';
...@@ -269,6 +290,23 @@ class EventoController extends Controller ...@@ -269,6 +290,23 @@ class EventoController extends Controller
$evento->update(); $evento->update();
// Criando campos de avaliacao
if ($request->tipoAvaliacao == 'campos') {
if($request->has('campos')){
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->has('inputField['. $value. ']["descricao"]')){
$campoAval->descricao = $request->inputField[$value]['descricao'];
}
$campoAval->prioridade = $request->inputField[$value]['prioridade'];
$campoAval->evento_id = $evento->id;
$campoAval->save();
}
}
}
// $user = Auth::user(); // $user = Auth::user();
// $subject = "Evento Criado"; // $subject = "Evento Criado";
// Mail::to($user->email) // Mail::to($user->email)
...@@ -300,7 +338,7 @@ class EventoController extends Controller ...@@ -300,7 +338,7 @@ class EventoController extends Controller
$nome = "modelo" . "." . $extension; $nome = "modelo" . "." . $extension;
$eventoTemp->modeloDocumento = Storage::putFileAs($path, $request->modeloDocumento, $nome); $eventoTemp->modeloDocumento = Storage::putFileAs($path, $request->modeloDocumento, $nome);
} }
if(!(is_null($request->pdfFormAvalExterno)) ) { if(!(is_null($request->pdfFormAvalExterno)) && ($request->tipoAvaliacao == 'form')) {
$extension = $request->pdfFormAvalExterno->extension(); $extension = $request->pdfFormAvalExterno->extension();
$pasta = 'pdfFormAvalExterno/' . $eventoTemp->id; $pasta = 'pdfFormAvalExterno/' . $eventoTemp->id;
$nome = "formulario de avaliação externo" . "." . $extension; $nome = "formulario de avaliação externo" . "." . $extension;
...@@ -311,7 +349,7 @@ class EventoController extends Controller ...@@ -311,7 +349,7 @@ class EventoController extends Controller
$eventoTemp->formAvaliacaoRelatorio = Storage::putFileAs($pasta, $request->pdfFormAvalRelatorio, 'formulario de avaliação do relatorio.pdf'); $eventoTemp->formAvaliacaoRelatorio = Storage::putFileAs($pasta, $request->pdfFormAvalRelatorio, 'formulario de avaliação do relatorio.pdf');
} }
if(!(is_null($request->docTutorial)) ) { if(!(is_null($request->docTutorial)) && ($request->tipoAvaliacao == 'form')) {
$extension = $request->docTutorial->extension(); $extension = $request->docTutorial->extension();
$pasta = 'docTutorial/' . $eventoTemp->id; $pasta = 'docTutorial/' . $eventoTemp->id;
$nome = "documento tutorial" . "." . $extension; $nome = "documento tutorial" . "." . $extension;
...@@ -647,7 +685,7 @@ class EventoController extends Controller ...@@ -647,7 +685,7 @@ class EventoController extends Controller
$numeroRevisores = Revisor::where('eventoId', $evento->id)->count(); $numeroRevisores = Revisor::where('eventoId', $evento->id)->count();
$numeroComissao = ComissaoEvento::where('eventosId',$evento->id)->count(); $numeroComissao = ComissaoEvento::where('eventosId',$evento->id)->count();
// $atribuicoesProcessando // $atribuicoesProcessando;
// dd($trabalhosEnviados); // dd($trabalhosEnviados);
$revs = Revisor::where('eventoId', $evento->id)->with('user')->get(); $revs = Revisor::where('eventoId', $evento->id)->with('user')->get();
......
...@@ -407,14 +407,15 @@ ...@@ -407,14 +407,15 @@
<div class="mb-2"> <div class="mb-2">
<input type="radio" id="radioForm" name="tipoAvaliacao" onchange="displayTipoAvaliacao('form')" <input type="radio" id="radioForm" name="tipoAvaliacao" onchange="displayTipoAvaliacao('form')"
checked value="form"> @if((old('tipoAvaliacao') == 'form') || old('tipoAvaliaco') == "") checked @endif value="form">
<label for="radioForm" style="margin-right: 5px">Formulário (em pdf)</label> <label for="radioForm" style="margin-right: 5px">Formulário (em pdf)</label>
<input type="radio" id="radioCampos" name="tipoAvaliacao" onchange="displayTipoAvaliacao('campos')" <input type="radio" id="radioCampos" name="tipoAvaliacao" onchange="displayTipoAvaliacao('campos')"
value="campos"> @if(old('tipoAvaliacao') == 'campos') checked @endif value="campos">
<label for="radioCampos" style="margin-right: 5px">Barema</label> <label for="radioCampos" style="margin-right: 5px">Barema</label>
<input type="radio" id="radioLink" name="tipoAvaliacao" onchange="displayTipoAvaliacao('link')" <input type="radio" id="radioLink" name="tipoAvaliacao" onchange="displayTipoAvaliacao('link')"
value="link"> @if(old('tipoAvaliacao') == 'link') checked @endif value="link">
<label for="radioLink" style="margin-right: 5px">Link</label><br> <label for="radioLink" style="margin-right: 5px">Link</label><br>
</div> </div>
...@@ -443,7 +444,7 @@ ...@@ -443,7 +444,7 @@
@endif @endif
<input type="hidden" id="docTutorialPreenchido" name="docTutorialPreenchido" value="{{ old('docTutorialPreenchido') }}"> <input type="hidden" id="docTutorialPreenchido" name="docTutorialPreenchido" value="{{ old('docTutorialPreenchido') }}">
<input type="file" accept=".pdf,.docx,.doc,.zip" class="form-control-file pdf @error('docTutorial') is-invalid @enderror" name="docTutorial" value="{{ old('docTutorial') }}" id="docTutorial" onchange="exibirAnexoTemp(this)"> <input type="file" accept=".pdf,.docx,.doc,.zip" class="form-control-file pdf @error('docTutorial') is-invalid @enderror" name="docTutorial" value="{{ old('docTutorial') }}" id="docTutorial" onchange="exibirAnexoTemp(this)">
<small>O arquivo selecionado deve ser de até 2mb.</small> <small>O arquivo selecionado deve ser de até 2mb.</small>
@error('docTutorial') @error('docTutorial')
<span class="invalid-feedback" role="alert"> <span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong> <strong>{{ $message }}</strong>
...@@ -456,29 +457,55 @@ ...@@ -456,29 +457,55 @@
<div class="row justify-content-center" style="margin-top:10px; display: none" id="displayCampos"> <div class="row justify-content-center" style="margin-top:10px; display: none" id="displayCampos">
<table class="table table-bordered col-sm-12" id="dynamicAddRemove"> <table class="table table-bordered col-sm-12" id="dynamicAddRemove">
<tr> <tr>
<th>Nome</th> <th>Nome<span style="color:red; font-weight:bold;">*</span></th>
<th>Descrição</th> <th>Descrição</th>
<th>Nota Máxima</th> <th>Nota Máxima<span style="color:red; font-weight:bold;">*</span></th>
<th>Prioridade</th> <th>Prioridade<span style="color:red; font-weight:bold;">*</span></th>
<th>Ação</th> <th>Ação</th>
</tr> </tr>
<tr> <tr>
<td><input type="text" name="inputField[nome][0]" class="form-control nome" /> <td><input type="text" name="inputField[0][nome]" class="form-control nome @error('inputField.*.nome') is-invalid @enderror" value="{{ old('inputField[0][nome]') }}" />
@error('inputField.*.nome')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</td> </td>
<td><input type="text" name="inputField[descricao][0]" class="form-control descricao" /> <td><input type="text" name="inputField[0][descricao]" class="form-control descricao @error('inputField.*.descricao') is-invalid @enderror" value="{{ old('inputField[0][descricao]') }}" />
@error('inputField.*.descricao')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</td> </td>
<td><input type="number" min=1 step="1" name="inputField[nota_maxima][0]" class="form-control nota_maxima" /> <td><input type="number" min="1" step="1" name="inputField[0][nota_maxima]" class="form-control nota_maxima @error('inputField.*.nota_maxima') is-invalid @enderror" value="{{ old('inputField[0][nota_maxima]') }}" />
@error('inputField.*.nota_maxima')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</td> </td>
<td> <td>
<select name="addMoreInputFields[prioridade][0]" class="form-control prioridade"> <select name="inputField[0][prioridade]" class="form-control prioridade @error('inputField.*.prioridade') is-invalid @enderror">
<option value="" selected>-- ORDEM --</option> <option value="" selected>-- ORDEM --</option>
<option value="1" class="ordem_option">1</option> <option value="1" class="ordem_option">1</option>
</select> </select>
@error('inputField.*.prioridade')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</td> </td>
<td><button type="button" name="add" id="dynamic-ar" class="btn btn-outline-primary">Adicionar</button></td> <td><button type="button" name="add" id="dynamic-ar" class="btn btn-outline-primary">Adicionar</button></td>
</tr> </tr>
</table> </table>
@if($errors->has('inputField.*'))
<div class="col-sm-12 alert alert-danger" style="display: none" id="nota_maxima_invalida">
Você deve preencher os campos obrigatórios.
</div>
@endif
<div class="col-sm-12 alert alert-danger" style="display: none" id="nota_maxima_invalida"> <div class="col-sm-12 alert alert-danger" style="display: none" id="nota_maxima_invalida">
A soma das notas máximas não pode ser maior que 10. A soma das notas máximas não pode ser maior que 10.
</div> </div>
...@@ -488,9 +515,15 @@ ...@@ -488,9 +515,15 @@
<div class="col-sm-12 row" style="margin-top:10px; display: none" id="displayLink"> <div class="col-sm-12 row" style="margin-top:10px; display: none" id="displayLink">
<label for="link" class="col-form-label">{{ __('Link para o formulário:') }}<span style="color:red; font-weight:bold;">*</span></label> <label for="link" class="col-form-label">{{ __('Link para o formulário:') }}<span style="color:red; font-weight:bold;">*</span></label>
<input id="link" type="text" class="form-control @error('link') is-invalid @enderror" name="link" value="{{ old('link') }}" required autocomplete="link"> <input id="link" type="text" class="form-control @error("link") is-invalid @enderror" name="link" value="{{ old('link') }}">
@error('link')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</div> </div>
<hr> <hr>
<div class="row subtitulo"> <div class="row subtitulo">
<div class="col-sm-12"> <div class="col-sm-12">
...@@ -575,12 +608,18 @@ ...@@ -575,12 +608,18 @@
var numCampos = 1; var numCampos = 1;
var currentOptions = {'0': ''} var currentOptions = {'0': ''}
$(document).ready(function() {
displayTipoAvaliacao("{{ old('tipoAvaliacao') }}")
});
// Adiciona campo de avaliação // Adiciona campo de avaliação
$("#dynamic-ar").click(function () { $("#dynamic-ar").click(function () {
++i; ++i;
++numCampos; ++numCampos;
$("#dynamicAddRemove").append( $("#dynamicAddRemove").append(
'<tr><td><input type="text" name="inputField[nome][' + i + ']" class="form-control nome"/></td><td><input type="text" name="inputField[descricao][' + i + ']" class="form-control descricao" /></td><td><input type="number" min=1 step="1" name="inputField[nota_maxima][' + i + ']" class="form-control nota_maxima" /></td><td><select name="addMoreInputFields[prioridade][' + i + ']" class="form-control prioridade"><option value="" selected>-- ORDEM --</option><option value="1" class="ordem_option">1</option></select></td><td><button type="button" class="btn btn-outline-danger remove-input-field" name="removeButton[' + i + ']">Remover</button></td></tr>'); '<tr><td><input type="text" name="inputField[' + i + '][nome]" class="form-control nome @error("inputField.*.nome") is-invalid @enderror" /></td><td><input type="text" name="inputField[' + i + '][descricao]" class="form-control descricao @error("inputField.*.descricao") is-invalid @enderror"/></td><td><input type="number" min="1" step="1" name="inputField[' + i + '][nota_maxima]" class="form-control nota_maxima @error("inputField.*.nota_maxima") is-invalid @enderror" /></td><td><select name="inputField[' + i + '][prioridade]" class="form-control prioridade @error("inputField.*.prioridade") is-invalid @enderror"><option value="" selected>-- ORDEM --</option><option value="1" class="ordem_option">1</option></select></td><td><button type="button" class="btn btn-outline-danger remove-input-field" name="removeButton[' + i + ']">Remover</button></td></tr>'
);
$("#displayCampos").append('<input type="checkbox" id="checkB[' + i + ']" checked name="campos[]" value="' + i + '" hidden>'); $("#displayCampos").append('<input type="checkbox" id="checkB[' + i + ']" checked name="campos[]" value="' + i + '" hidden>');
...@@ -605,7 +644,6 @@ ...@@ -605,7 +644,6 @@
}) })
//console.log(currentOptions);
}); });
......
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