Commit 52ec4090 authored by alissonalbuquerque's avatar alissonalbuquerque
Browse files

add crud de EnsinoSupervisao

parent 3ab8484b
......@@ -75,6 +75,8 @@ class EnsinoSupervisaoController extends Controller
*/
public function create(Request $request)
{
$ch_semanal_temp = $request->ch_semanal;
if($request->cod_dimensao)
{
$planejamento = Planejamento::initQuery()->whereCodDimensao($request->cod_dimensao)->first();
......@@ -82,10 +84,12 @@ class EnsinoSupervisaoController extends Controller
$ch_min = $planejamento->ch_semanal;
$ch_max = $planejamento->ch_maxima;
$cargaHoraria = new CargaHorariaValidation($ch_min, $ch_max);
$cargaHoraria = new CargaHorariaValidation($ch_min, $ch_max, ['field' => 'Qtd. Participantes', 'value' => $request->numero_orientandos]);
$request->merge(['ch_semanal' => $request->ch_semanal * ($request->numero_orientandos?? 1)]);
$validator = Validator::make(
$request->all(),
$request->all(),
array_merge(EnsinoSupervisao::rules(), $cargaHoraria->rules()),
array_merge(EnsinoSupervisao::messages(), $cargaHoraria->messages())
);
......@@ -99,6 +103,7 @@ class EnsinoSupervisaoController extends Controller
if($validator->fails())
{
$request->merge(['ch_semanal' => $ch_semanal_temp]);
return redirect()
->route('ensino_supervisao_index', ['user_pad_id' => $request->user_pad_id,])
->withErrors($validator)
......@@ -106,6 +111,7 @@ class EnsinoSupervisaoController extends Controller
}
$user_pad_id = $request->user_pad_id;
$request->merge(['ch_semanal' => $ch_semanal_temp]);
$model = new EnsinoSupervisao($request->all());
$model->dimensao = Dimensao::ENSINO;
......@@ -137,7 +143,11 @@ class EnsinoSupervisaoController extends Controller
}
public function update($id, Request $request)
{
{
$model = EnsinoSupervisao::find($id);
$ch_semanal_temp = $request->ch_semanal;
if($request->cod_dimensao)
{
$planejamento = Planejamento::initQuery()->whereCodDimensao($request->cod_dimensao)->first();
......@@ -145,10 +155,12 @@ class EnsinoSupervisaoController extends Controller
$ch_min = $planejamento->ch_semanal;
$ch_max = $planejamento->ch_maxima;
$cargaHoraria = new CargaHorariaValidation($ch_min, $ch_max);
$cargaHoraria = new CargaHorariaValidation($ch_min, $ch_max, ['field' => 'Qtd. Participantes', 'value' => $request->numero_orientandos]);
$request->merge(['ch_semanal' => $request->ch_semanal * ($request->numero_orientandos?? 1)]);
$validator = Validator::make(
$request->all(),
$request->all(),
array_merge(EnsinoSupervisao::rules(), $cargaHoraria->rules()),
array_merge(EnsinoSupervisao::messages(), $cargaHoraria->messages())
);
......@@ -160,9 +172,6 @@ class EnsinoSupervisaoController extends Controller
);
}
$model = EnsinoSupervisao::find($id);
$model->fill($request->all());
$user_pad_id = $model->user_pad_id;
if($validator->fails())
......@@ -172,6 +181,9 @@ class EnsinoSupervisaoController extends Controller
->with('fail', 'Erro ao atualizar Atividade!');
}
$request->merge(['ch_semanal' => $ch_semanal_temp]);
$model->fill($request->all());
if($model->save()) {
return redirect()->route('ensino_supervisao_index', ['user_pad_id' => $user_pad_id])
->with('success', 'Atualizado com sucesso!');
......@@ -211,6 +223,8 @@ class EnsinoSupervisaoController extends Controller
public function ajaxValidation(Request $request)
{
$ch_semanal_temp = $request->ch_semanal;
if($request->cod_dimensao)
{
$planejamento = Planejamento::initQuery()->whereCodDimensao($request->cod_dimensao)->first();
......@@ -218,10 +232,12 @@ class EnsinoSupervisaoController extends Controller
$ch_min = $planejamento->ch_semanal;
$ch_max = $planejamento->ch_maxima;
$cargaHoraria = new CargaHorariaValidation($ch_min, $ch_max);
$cargaHoraria = new CargaHorariaValidation($ch_min, $ch_max, ['field' => 'Qtd. Participantes', 'value' => $request->numero_orientandos]);
$request->merge(['ch_semanal' => $request->ch_semanal * ($request->numero_orientandos?? 1)]);
$validator = Validator::make(
$request->all(),
$request->all(),
array_merge(EnsinoSupervisao::rules(), $cargaHoraria->rules()),
array_merge(EnsinoSupervisao::messages(), $cargaHoraria->messages())
);
......@@ -234,6 +250,7 @@ class EnsinoSupervisaoController extends Controller
}
if($validator->passes()) {
$request->merge(['ch_semanal' => $ch_semanal_temp]);
return Response::json(['message' => true, 'status' => 200]);
}
......
......@@ -16,7 +16,7 @@ class EnsinoSupervisao extends Model
*
* @var string
*/
protected $table = 'ensino_orientacoes';
protected $table = 'ensino_supervisao';
/**
* The attributes that are mass assignable.
......@@ -25,6 +25,24 @@ class EnsinoSupervisao extends Model
*/
protected $fillable = ['orientacao_id', 'cod_dimensao', 'user_pad_id', 'dimensao', 'cod_atividade', 'atividade', 'curso', 'nivel', 'type_supervisao', 'numero_orientandos', 'ch_semanal'];
/** @return string */
public function nivelAsString()
{
return Nivel::listNivel($this->nivel);
}
/** @return string */
public function supervisaoAsString()
{
return Supervisao::listSupervisao($this->type_supervisao);
}
/** @return string */
public function chSemanal()
{
return sprintf('%s (x%s)', $this->ch_semanal, $this->numero_orientandos);
}
/**
* @return array
*/
......@@ -35,8 +53,8 @@ class EnsinoSupervisao extends Model
'atividade' => ['required', 'string', 'max:255'],
'curso' => ['required', 'string', 'max:255'],
'nivel' => ['required', 'integer', Rule::in(array_keys(Nivel::listNivel()))],
'type_orientacao' => ['required', 'integer', Rule::in(array_keys(Supervisao::listSupervisao()))],
'numero_orientandos' => ['integer'],
'type_supervisao' => ['required', 'integer', Rule::in(array_keys(Supervisao::listSupervisao()))],
'numero_orientandos' => ['required', 'integer', 'min:1'],
'cod_dimensao' => ['required', 'string', Rule::in(array_keys(self::listPlanejamentos()))],
];
}
......@@ -67,7 +85,9 @@ class EnsinoSupervisao extends Model
'type_supervisao.integer' => 'O campo "Supervisão" deve cónter um inteiro!',
//'numero_orientandos'
'numero_orientandos' => 'O campo "Número de Orientandos" deve cónter um inteiro!',
'numero_orientandos.required' => 'O campo "Qtd. Participantes" é obrigatório!',
'numero_orientandos.integer' => 'O campo "Qtd. Participantes" deve cónter um inteiro!',
'numero_orientandos.min' => 'O valor minímo de "Qtd. Participantes" é 1 (um) participante',
//'cod_dimensao'
'cod_dimensao.required' => 'O campo "Resolução" é obrigatório',
......
{{--
@include('pad.components.templates.dimensao.ensino.orientacao.numero_orientandos', ['form_id' = ''])
@include('pad.components.templates.dimensao.ensino.orientacao.numero_orientandos', ['form_id' => ''])
--}}
@php
......
......@@ -29,7 +29,7 @@
'btn_class' => 'show_resolucao',
])
</div>
<form action="{{route('ensino_supervisao_create')}}" method="post" id="ensino_supervisao-form" class="">
<form action="{{route('ensino_supervisao_create')}}" method="post" id="ensino_supervisao-form">
@csrf
......@@ -37,11 +37,101 @@
<input type="hidden" id="user_pad_id" name="user_pad_id" value="{{$user_pad_id}}">
<div class="mb-3 col-sm-2">
<div class="mb-3 col-sm-3">
<label class="form-label" for="cod_atividade">Cód. Atividade</label>
<input class="form-control @error('cod_atividade') is-invalid @enderror ajax-errors" type="text" name="cod_atividade" id="cod_atividade" readonly>
</div>
<div class="mb-3 col-sm-9">
<label class="form-label" for="atividade">Atividade: Supervisão / Preceptoria / Tutoria" é obrigatório!</label>
<input class="form-control @error('atividade') is-invalid @enderror ajax-errors" type="text" name="atividade" id="atividade" value="{{ old('atividade') }}">
@include('components.divs.errors', [
'field' => 'atividade_create',
])
</div>
<div class="mb-3 col-sm-12">
<label class="form-label" for="curso">Curso</label>
<input class="form-control @error('curso') is-invalid @enderror ajax-errors" type="text" name="curso" id="curso" value="{{ old('curso') }}">
@include('components.divs.errors', [
'field' => 'curso_create'
])
</div>
<div class="mb-3 col-sm-4">
<label class="form-label" for="nivel">Nível</label>
<select class="form-select @error('nivel') is-invalid @enderror ajax-errors" name="nivel" id="nivel" value="{{ old('nivel') }}">
<option value="0">Selecione um Nível</option>
@foreach($niveis as $value => $nivel)
@if( $value == old('nivel') )
<option selected value="{{$value}}">{{$nivel}}</option>
@else
<option value="{{$value}}">{{$nivel}}</option>
@endif
@endforeach
</select>
@include('components.divs.errors', [
'field' => 'nivel_create'
])
</div>
<div class="mb-3 col-sm-4">
<label class="form-label" for="type_supervisao">Orientação</label>
<select class="form-select @error('type_supervisao') is-invalid @enderror ajax-errors" name="type_supervisao" id="type_supervisao" value="{{ old('type_supervisao') }}">
<option value="0">Selecione uma Modalidade</option>
@foreach($supervisoes as $value => $supervisao)
@if( $value == old('type_supervisao') )
<option selected value="{{$value}}">{{$supervisao}}</option>
@else
<option value="{{$value}}">{{$supervisao}}</option>
@endif
@endforeach
</select>
@include('components.divs.errors', [
'field' => 'type_supervisao_create'
])
</div>
<div class="mb-3 col-sm-4">
<label class="form-label" for="numero_orientandos">Qtd. Participantes</label>
<input class="form-control @error('numero_orientandos') is-invalid @enderror ajax-errors" type="number" name="numero_orientandos" id="numero_orientandos" value="{{ old('numero_orientandos') }}">
@include('components.divs.errors', [
'field' => 'numero_orientandos_create'
])
</div>
<div class="mb-3 col-sm-8">
<label class="form-label" for="cod_dimensao">Resolução</label>
<select class="form-select @error('cod_dimensao') is-invalid @enderror ajax-errors" name="cod_dimensao" id="cod_dimensao" value="{{ old('cod_dimensao') }}">
<option value="0">Selecione uma Resolução</option>
@foreach($planejamentos as $value => $cod_dimensao)
@if( $value == old('cod_dimensao') )
<option selected value="{{$value}}">{{$cod_dimensao}}</option>
@else
<option value="{{$value}}">{{$cod_dimensao}}</option>
@endif
@endforeach
</select>
@include('components.divs.errors', [
'field' => 'cod_dimensao_create'
])
</div>
<div class="mb-3 col-sm-4">
<label class="form-label" for="ch_semanal">CH. Semanal</label>
<input class="form-control @error('ch_semanal') is-invalid @enderror ajax-errors" type="number" name="ch_semanal" id="ch_semanal" value="{{ old('ch_semanal') }}">
@include('components.divs.errors', [
'field' => 'ch_semanal_create'
])
</div>
</div>
<div class="mt-1 text-end">
......@@ -59,8 +149,13 @@
<table class="table table-hover" id="ensino_supervisao-table">
<thead>
<tr>
<!-- <th scole="col">#</th> -->
<th scope="col"> Cód </th>
<th scope="col"> Atividade </th>
<th scope="col"> Curso </th>
<th scope="col"> Nível </th>
<th scope="col"> Orientação </th>
<th scope="col"> CH Semanal </th>
<th scope="col"> Opções </th>
</tr>
</thead>
......@@ -68,6 +163,11 @@
@foreach($atividades as $atividade)
<tr>
<td>{{ $atividade->cod_atividade }}</td>
<td>{{ $atividade->atividade }}</td>
<td>{{ $atividade->curso }}</td>
<td>{{ $atividade->nivelAsString() }}</td>
<td>{{ $atividade->supervisaoAsString() }}</td>
<td>{{ $atividade->chSemanal() }}</td>
<td>
@include('components.buttons.btn-edit-task', [
'btn_class' => 'btn-edit_ensino_supervisao',
......@@ -76,7 +176,7 @@
@include('components.buttons.btn-delete', [
'id' => $atividade->id,
'route' => route('ensino_supervisao_delete', ['id' => $ensinoAula->id])
'route' => route('ensino_supervisao_delete', ['id' => $atividade->id])
])
</td>
</tr>
......@@ -123,4 +223,6 @@
'route' => route('view_ensino_supervisao_resolucao'),
'btn_class' => 'show_resolucao',
])
@include('pad.components.templates.dimensao.ensino.supervisao.numero_orientandos', ['form_id' => 'ensino_supervisao-form'])
@endsection
......@@ -9,11 +9,101 @@
<div class="row">
<div class="mb-3 col-sm-2">
<div class="mb-3 col-sm-3">
<label class="form-label" for="cod_atividade">Cód. Atividade</label>
<input class="form-control @error('cod_atividade') is-invalid @enderror ajax-errors" type="text" name="cod_atividade" id="cod_atividade" value="{{$model->cod_atividade}}" readonly>
</div>
<div class="mb-3 col-sm-9">
<label class="form-label" for="atividade">Atividade: Supervisão / Preceptoria / Tutoria" é obrigatório!</label>
<input class="form-control @error('atividade') is-invalid @enderror ajax-errors" type="text" name="atividade" id="atividade" value="{{ $model->atividade }}">
@include('components.divs.errors', [
'field' => 'atividade_update',
])
</div>
<div class="mb-3 col-sm-12">
<label class="form-label" for="curso">Curso</label>
<input class="form-control @error('curso') is-invalid @enderror ajax-errors" type="text" name="curso" id="curso" value="{{ $model->curso }}">
@include('components.divs.errors', [
'field' => 'curso_update'
])
</div>
<div class="mb-3 col-sm-4">
<label class="form-label" for="nivel">Nível</label>
<select class="form-select @error('nivel') is-invalid @enderror ajax-errors" name="nivel" id="nivel">
<option value="0">Selecione um Nível</option>
@foreach($niveis as $value => $nivel)
@if( $value == $model->nivel )
<option selected value="{{$value}}">{{$nivel}}</option>
@else
<option value="{{$value}}">{{$nivel}}</option>
@endif
@endforeach
</select>
@include('components.divs.errors', [
'field' => 'nivel_update'
])
</div>
<div class="mb-3 col-sm-4">
<label class="form-label" for="type_supervisao">Orientação</label>
<select class="form-select @error('type_supervisao') is-invalid @enderror ajax-errors" name="type_supervisao" id="type_supervisao">
<option value="0">Selecione uma Modalidade</option>
@foreach($supervisoes as $value => $supervisao)
@if( $value == $model->type_supervisao )
<option selected value="{{$value}}">{{$supervisao}}</option>
@else
<option value="{{$value}}">{{$supervisao}}</option>
@endif
@endforeach
</select>
@include('components.divs.errors', [
'field' => 'type_supervisao_update'
])
</div>
<div class="mb-3 col-sm-4">
<label class="form-label" for="numero_orientandos">Qtd. Participantes</label>
<input class="form-control @error('numero_orientandos') is-invalid @enderror ajax-errors" type="number" name="numero_orientandos" id="numero_orientandos" value="{{ $model->numero_orientandos }}">
@include('components.divs.errors', [
'field' => 'numero_orientandos_update'
])
</div>
<div class="mb-3 col-sm-8">
<label class="form-label" for="cod_dimensao">Resolução</label>
<select class="form-select @error('cod_dimensao') is-invalid @enderror ajax-errors" name="cod_dimensao" id="cod_dimensao">
<option value="0">Selecione uma Resolução</option>
@foreach($planejamentos as $value => $cod_dimensao)
@if( $value == $model->cod_dimensao )
<option selected value="{{$value}}">{{$cod_dimensao}}</option>
@else
<option value="{{$value}}">{{$cod_dimensao}}</option>
@endif
@endforeach
</select>
@include('components.divs.errors', [
'field' => 'cod_dimensao_update'
])
</div>
<div class="mb-3 col-sm-4">
<label class="form-label" for="ch_semanal">CH. Semanal</label>
<input class="form-control @error('ch_semanal') is-invalid @enderror ajax-errors" type="number" name="ch_semanal" id="ch_semanal" value="{{ $model->ch_semanal }}">
@include('components.divs.errors', [
'field' => 'ch_semanal_update'
])
</div>
</div>
<div class="mt-1 text-end">
......@@ -37,4 +127,6 @@
'form_id' => 'ensino_supervisao_update-form',
'form_type' => 'update',
'route' => route('ensino_supervisao_validate'),
])
\ No newline at end of file
])
@include('pad.components.templates.dimensao.ensino.supervisao.numero_orientandos', ['form_id' => 'ensino_supervisao_update-form'])
\ No newline at end of file
{{--
@include('pad.components.templates.dimensao.ensino.supervisao.numero_orientandos', ['form_id' => ''])
--}}
@php
use App\Models\Util\Supervisao;
$supervisao_grupo = Supervisao::GRUPO;
@endphp
<script type="text/javascript">
$(document).ready(function() {
$('#{{$form_id}} #type_supervisao').on('change', function() {
if($(this).val() == {{$supervisao_grupo}}) {
$('#{{$form_id}} #numero_orientandos').show()
$("#{{$form_id}} label[for='numero_orientandos']").show()
} else {
$('#{{$form_id}} #numero_orientandos').hide()
$("#{{$form_id}} label[for='numero_orientandos']").hide()
$('#{{$form_id}} #numero_orientandos').val('1')
}
}).change()
});
</script>
\ No newline at end of file
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