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

add crud de EnsinoSupervisao

parent 3ab8484b
...@@ -75,6 +75,8 @@ class EnsinoSupervisaoController extends Controller ...@@ -75,6 +75,8 @@ class EnsinoSupervisaoController extends Controller
*/ */
public function create(Request $request) public function create(Request $request)
{ {
$ch_semanal_temp = $request->ch_semanal;
if($request->cod_dimensao) if($request->cod_dimensao)
{ {
$planejamento = Planejamento::initQuery()->whereCodDimensao($request->cod_dimensao)->first(); $planejamento = Planejamento::initQuery()->whereCodDimensao($request->cod_dimensao)->first();
...@@ -82,7 +84,9 @@ class EnsinoSupervisaoController extends Controller ...@@ -82,7 +84,9 @@ class EnsinoSupervisaoController extends Controller
$ch_min = $planejamento->ch_semanal; $ch_min = $planejamento->ch_semanal;
$ch_max = $planejamento->ch_maxima; $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( $validator = Validator::make(
$request->all(), $request->all(),
...@@ -99,6 +103,7 @@ class EnsinoSupervisaoController extends Controller ...@@ -99,6 +103,7 @@ class EnsinoSupervisaoController extends Controller
if($validator->fails()) if($validator->fails())
{ {
$request->merge(['ch_semanal' => $ch_semanal_temp]);
return redirect() return redirect()
->route('ensino_supervisao_index', ['user_pad_id' => $request->user_pad_id,]) ->route('ensino_supervisao_index', ['user_pad_id' => $request->user_pad_id,])
->withErrors($validator) ->withErrors($validator)
...@@ -106,6 +111,7 @@ class EnsinoSupervisaoController extends Controller ...@@ -106,6 +111,7 @@ class EnsinoSupervisaoController extends Controller
} }
$user_pad_id = $request->user_pad_id; $user_pad_id = $request->user_pad_id;
$request->merge(['ch_semanal' => $ch_semanal_temp]);
$model = new EnsinoSupervisao($request->all()); $model = new EnsinoSupervisao($request->all());
$model->dimensao = Dimensao::ENSINO; $model->dimensao = Dimensao::ENSINO;
...@@ -138,6 +144,10 @@ class EnsinoSupervisaoController extends Controller ...@@ -138,6 +144,10 @@ class EnsinoSupervisaoController extends Controller
public function update($id, Request $request) public function update($id, Request $request)
{ {
$model = EnsinoSupervisao::find($id);
$ch_semanal_temp = $request->ch_semanal;
if($request->cod_dimensao) if($request->cod_dimensao)
{ {
$planejamento = Planejamento::initQuery()->whereCodDimensao($request->cod_dimensao)->first(); $planejamento = Planejamento::initQuery()->whereCodDimensao($request->cod_dimensao)->first();
...@@ -145,7 +155,9 @@ class EnsinoSupervisaoController extends Controller ...@@ -145,7 +155,9 @@ class EnsinoSupervisaoController extends Controller
$ch_min = $planejamento->ch_semanal; $ch_min = $planejamento->ch_semanal;
$ch_max = $planejamento->ch_maxima; $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( $validator = Validator::make(
$request->all(), $request->all(),
...@@ -160,9 +172,6 @@ class EnsinoSupervisaoController extends Controller ...@@ -160,9 +172,6 @@ class EnsinoSupervisaoController extends Controller
); );
} }
$model = EnsinoSupervisao::find($id);
$model->fill($request->all());
$user_pad_id = $model->user_pad_id; $user_pad_id = $model->user_pad_id;
if($validator->fails()) if($validator->fails())
...@@ -172,6 +181,9 @@ class EnsinoSupervisaoController extends Controller ...@@ -172,6 +181,9 @@ class EnsinoSupervisaoController extends Controller
->with('fail', 'Erro ao atualizar Atividade!'); ->with('fail', 'Erro ao atualizar Atividade!');
} }
$request->merge(['ch_semanal' => $ch_semanal_temp]);
$model->fill($request->all());
if($model->save()) { if($model->save()) {
return redirect()->route('ensino_supervisao_index', ['user_pad_id' => $user_pad_id]) return redirect()->route('ensino_supervisao_index', ['user_pad_id' => $user_pad_id])
->with('success', 'Atualizado com sucesso!'); ->with('success', 'Atualizado com sucesso!');
...@@ -211,6 +223,8 @@ class EnsinoSupervisaoController extends Controller ...@@ -211,6 +223,8 @@ class EnsinoSupervisaoController extends Controller
public function ajaxValidation(Request $request) public function ajaxValidation(Request $request)
{ {
$ch_semanal_temp = $request->ch_semanal;
if($request->cod_dimensao) if($request->cod_dimensao)
{ {
$planejamento = Planejamento::initQuery()->whereCodDimensao($request->cod_dimensao)->first(); $planejamento = Planejamento::initQuery()->whereCodDimensao($request->cod_dimensao)->first();
...@@ -218,7 +232,9 @@ class EnsinoSupervisaoController extends Controller ...@@ -218,7 +232,9 @@ class EnsinoSupervisaoController extends Controller
$ch_min = $planejamento->ch_semanal; $ch_min = $planejamento->ch_semanal;
$ch_max = $planejamento->ch_maxima; $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( $validator = Validator::make(
$request->all(), $request->all(),
...@@ -234,6 +250,7 @@ class EnsinoSupervisaoController extends Controller ...@@ -234,6 +250,7 @@ class EnsinoSupervisaoController extends Controller
} }
if($validator->passes()) { if($validator->passes()) {
$request->merge(['ch_semanal' => $ch_semanal_temp]);
return Response::json(['message' => true, 'status' => 200]); return Response::json(['message' => true, 'status' => 200]);
} }
......
...@@ -16,7 +16,7 @@ class EnsinoSupervisao extends Model ...@@ -16,7 +16,7 @@ class EnsinoSupervisao extends Model
* *
* @var string * @var string
*/ */
protected $table = 'ensino_orientacoes'; protected $table = 'ensino_supervisao';
/** /**
* The attributes that are mass assignable. * The attributes that are mass assignable.
...@@ -25,6 +25,24 @@ class EnsinoSupervisao extends Model ...@@ -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']; 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 * @return array
*/ */
...@@ -35,8 +53,8 @@ class EnsinoSupervisao extends Model ...@@ -35,8 +53,8 @@ class EnsinoSupervisao extends Model
'atividade' => ['required', 'string', 'max:255'], 'atividade' => ['required', 'string', 'max:255'],
'curso' => ['required', 'string', 'max:255'], 'curso' => ['required', 'string', 'max:255'],
'nivel' => ['required', 'integer', Rule::in(array_keys(Nivel::listNivel()))], 'nivel' => ['required', 'integer', Rule::in(array_keys(Nivel::listNivel()))],
'type_orientacao' => ['required', 'integer', Rule::in(array_keys(Supervisao::listSupervisao()))], 'type_supervisao' => ['required', 'integer', Rule::in(array_keys(Supervisao::listSupervisao()))],
'numero_orientandos' => ['integer'], 'numero_orientandos' => ['required', 'integer', 'min:1'],
'cod_dimensao' => ['required', 'string', Rule::in(array_keys(self::listPlanejamentos()))], 'cod_dimensao' => ['required', 'string', Rule::in(array_keys(self::listPlanejamentos()))],
]; ];
} }
...@@ -67,7 +85,9 @@ class EnsinoSupervisao extends Model ...@@ -67,7 +85,9 @@ class EnsinoSupervisao extends Model
'type_supervisao.integer' => 'O campo "Supervisão" deve cónter um inteiro!', 'type_supervisao.integer' => 'O campo "Supervisão" deve cónter um inteiro!',
//'numero_orientandos' //'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'
'cod_dimensao.required' => 'O campo "Resolução" é obrigatório', '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 @php
......
...@@ -29,7 +29,7 @@ ...@@ -29,7 +29,7 @@
'btn_class' => 'show_resolucao', 'btn_class' => 'show_resolucao',
]) ])
</div> </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 @csrf
...@@ -37,11 +37,101 @@ ...@@ -37,11 +37,101 @@
<input type="hidden" id="user_pad_id" name="user_pad_id" value="{{$user_pad_id}}"> <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> <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> <input class="form-control @error('cod_atividade') is-invalid @enderror ajax-errors" type="text" name="cod_atividade" id="cod_atividade" readonly>
</div> </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>
<div class="mt-1 text-end"> <div class="mt-1 text-end">
...@@ -59,8 +149,13 @@ ...@@ -59,8 +149,13 @@
<table class="table table-hover" id="ensino_supervisao-table"> <table class="table table-hover" id="ensino_supervisao-table">
<thead> <thead>
<tr> <tr>
<!-- <th scole="col">#</th> -->
<th scope="col"> Cód </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> </tr>
</thead> </thead>
...@@ -68,6 +163,11 @@ ...@@ -68,6 +163,11 @@
@foreach($atividades as $atividade) @foreach($atividades as $atividade)
<tr> <tr>
<td>{{ $atividade->cod_atividade }}</td> <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> <td>
@include('components.buttons.btn-edit-task', [ @include('components.buttons.btn-edit-task', [
'btn_class' => 'btn-edit_ensino_supervisao', 'btn_class' => 'btn-edit_ensino_supervisao',
...@@ -76,7 +176,7 @@ ...@@ -76,7 +176,7 @@
@include('components.buttons.btn-delete', [ @include('components.buttons.btn-delete', [
'id' => $atividade->id, 'id' => $atividade->id,
'route' => route('ensino_supervisao_delete', ['id' => $ensinoAula->id]) 'route' => route('ensino_supervisao_delete', ['id' => $atividade->id])
]) ])
</td> </td>
</tr> </tr>
...@@ -123,4 +223,6 @@ ...@@ -123,4 +223,6 @@
'route' => route('view_ensino_supervisao_resolucao'), 'route' => route('view_ensino_supervisao_resolucao'),
'btn_class' => 'show_resolucao', 'btn_class' => 'show_resolucao',
]) ])
@include('pad.components.templates.dimensao.ensino.supervisao.numero_orientandos', ['form_id' => 'ensino_supervisao-form'])
@endsection @endsection
...@@ -9,11 +9,101 @@ ...@@ -9,11 +9,101 @@
<div class="row"> <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> <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> <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>
<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>
<div class="mt-1 text-end"> <div class="mt-1 text-end">
...@@ -38,3 +128,5 @@ ...@@ -38,3 +128,5 @@
'form_type' => 'update', 'form_type' => 'update',
'route' => route('ensino_supervisao_validate'), 'route' => route('ensino_supervisao_validate'),
]) ])
@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