diff --git a/app/Http/Controllers/Dimensao/Tabelas/Gestao/GestaoMembroComissaoController.php b/app/Http/Controllers/Dimensao/Tabelas/Gestao/GestaoMembroComissaoController.php index 943886f0cb499ddb2b03f06a01f1919c9d57efed..395f577d1b575c8171221ca3c5657a9f5fdd8337 100644 --- a/app/Http/Controllers/Dimensao/Tabelas/Gestao/GestaoMembroComissaoController.php +++ b/app/Http/Controllers/Dimensao/Tabelas/Gestao/GestaoMembroComissaoController.php @@ -3,7 +3,14 @@ namespace App\Http\Controllers\Dimensao\Tabelas\Gestao; use App\Http\Controllers\Controller; +use App\Models\Avaliacao; use App\Models\Tabelas\Constants; +use App\Models\Tabelas\Gestao\GestaoMembroComissao; +use App\Models\Util\Avaliacao as UtilAvaliacao; +use App\Models\Util\Dimensao; +use App\Models\Util\MenuItemsTeacher; +use App\Models\Util\PadTables; +use App\Models\Util\Status; use Illuminate\Http\Request; use Illuminate\Support\Facades\Response; use Illuminate\Support\Facades\Validator; @@ -12,31 +19,143 @@ class GestaoMembroComissaoController extends Controller { public function index($user_pad_id) { - return $user_pad_id; + $membroComissoes = + GestaoMembroComissao::initQuery() + ->whereUserPad($user_pad_id) + ->orderBy('cod_atividade') + ->get(); + + $divs = PadTables::tablesGestao($user_pad_id); + + return view('pad.components.templates.dimensao.gestao.membro_comissao.form_create', [ + 'membroComissoes' => $membroComissoes, + + 'divs' => $divs, + 'user_pad_id' => $user_pad_id, + 'index_menu' => MenuItemsTeacher::PAD, + ]); } public function create(Request $request) - { + { + $validator = Validator::make($request->all(), GestaoMembroComissao::rules(), GestaoMembroComissao::messages()); + + if($validator->fails()) + { + return redirect() + ->route('gestao_membro_comissao_index', ['user_pad_id' => $request->user_pad_id,]) + ->withErrors($validator) + ->withInput(); + } + + $user_pad_id = $request->user_pad_id; + + $model = new GestaoMembroComissao($request->all()); + $model->dimensao = Dimensao::GESTAO; + + if($model->save()) + { + $avaliacao = new Avaliacao([ + 'tarefa_id' => $model->id, + 'type' => UtilAvaliacao::ENSINO_AULA, + 'status' => Status::PENDENTE, + ]); + + if(!$avaliacao->save()) + { + return redirect() + ->route('gestao_membro_comissao_index', ['user_pad_id' => $user_pad_id]) + ->with('fail', 'Erro ao cadastrar Atividade!'); + } + + return redirect() + ->route('gestao_membro_comissao_index', ['user_pad_id' => $user_pad_id]) + ->with('success', 'Cadastro realizado com sucesso!'); + } else { + return redirect() + ->route('gestao_membro_comissao_index', ['user_pad_id' => $user_pad_id]) + ->with('fail', 'Erro ao cadastrar Atividade!'); + } } public function update($id, Request $request) { + $validator = Validator::make($request->all(), GestaoMembroComissao::rules(), GestaoMembroComissao::messages()); + + $model = GestaoMembroComissao::find($id); + $model->fill($request->all()); + + $user_pad_id = $model->user_pad_id; + + if($validator->fails()) + { + return redirect() + ->route('gestao_membro_comissao_index', ['user_pad_id' => $user_pad_id]) + ->with('fail', 'Erro ao atualizar Atividade!'); + } + + if($model->save()) { + return redirect()->route('gestao_membro_comissao_index', ['user_pad_id' => $user_pad_id]) + ->with('success', 'Atualizado com sucesso!'); + } else { + return redirect()->route('gestao_membro_comissao_index', ['user_pad_id' => $user_pad_id]) + ->with('fail', 'Erro ao atualizar a Atividade!'); + } } - - - public function ajaxValidation(Request $request) + + public function edit($id) { + $model = GestaoMembroComissao::find($id); + + return view('pad.components.templates.dimensao.gestao.membro_comissao.form_update', [ + 'model' => $model, + ]); } - + + public function viewResolucao() + { + $resolucoes = GestaoMembroComissao::getPlanejamentos(); + return view('pad.components.templates.dimensao.gestao.membro_comissao.resolucao', [ + 'resolucoes' => $resolucoes + ]); + } + public function delete($id) { + $model = GestaoMembroComissao::find($id); + + $user_pad_id = $model->user_pad_id; + + if($model->delete()) { + return redirect() + ->route('gestao_membro_comissao_index', ['user_pad_id' => $user_pad_id]) + ->with('success', 'Atividade removida com Sucesso!'); + } else { + return redirect() + ->route('gestao_membro_comissao_index', ['user_pad_id' => $user_pad_id]) + ->with('fail', 'Erro ao remover atividade!'); + } } public function search($user_pad_id = null) { + $query = GestaoMembroComissao::initQuery(); + + if($user_pad_id) { + $query->whereUserPad($user_pad_id)->orderBy('cod_atividade'); + } + + return Response::json($query->get()); } - - public function edit($id) - { + + public function ajaxValidation(Request $request) + { + $validator = Validator::make($request->all(), GestaoMembroComissao::rules(), GestaoMembroComissao::messages()); + + if($validator->passes()) { + return Response::json(['message' => true, 'status' => 200]); + } + + return Response::json(['errors' => $validator->errors(), 'status' => 400]); } } \ No newline at end of file diff --git a/app/Models/Planejamento.php b/app/Models/Planejamento.php index 0a07ebffc6297df21c948e0aed21e67f575eecf6..f863cafc40de48cfb01ddba6b0d282097f4a94b7 100644 --- a/app/Models/Planejamento.php +++ b/app/Models/Planejamento.php @@ -2,6 +2,7 @@ namespace App\Models; +use App\Models\Util\Dimensao; use App\Queries\PlanejamentoQuery; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; @@ -46,8 +47,8 @@ class Planejamento extends Model /** * @return string */ - public function dimensaoAsText() { - return $this->listDimensao($this->dimensao); + public function dimensaoAsString() { + return Dimensao::listDimensao($this->dimensao); } public static function initQuery() { diff --git a/app/Models/Tabelas/Gestao/GestaoMembroComissao.php b/app/Models/Tabelas/Gestao/GestaoMembroComissao.php new file mode 100644 index 0000000000000000000000000000000000000000..53d89a642613f77f25373d3c558c615c71060e18 --- /dev/null +++ b/app/Models/Tabelas/Gestao/GestaoMembroComissao.php @@ -0,0 +1,45 @@ +whereInCodDimensao($codes)->get(); + } + + public static function rules() + { + return [ + 'cod_atividade' => ['required', 'string', 'max:255'], + 'nome' => ['required', 'string', 'max:255'], + 'documento' => ['required', 'string', 'max:255'], + 'ch_semanal' => ['required', 'integer', 'min:1', 'max:2'], + ]; + } + + public static function messages() + { + return [ + 'required' => 'O campo ":attribute" é obrigatório!', + 'integer' => 'O campo ":attribute" deve cónter um inteiro!', + 'ch_semanal.min' => 'Carga horária semanal miníma é de 1 Hora!', + 'ch_semanal.max' => 'Carga horária semanal máxima é de 2 Horas!', + ]; + } + + public static function initQuery() + { + return new GestaoMembroComissaoQuery(get_called_class()); + } +} diff --git a/app/Queries/Tabelas/Gestao/GestaoMembroComissaoQuery.php b/app/Queries/Tabelas/Gestao/GestaoMembroComissaoQuery.php new file mode 100644 index 0000000000000000000000000000000000000000..087c57047a93e10fbc60ff37c821fcb5005eaedd --- /dev/null +++ b/app/Queries/Tabelas/Gestao/GestaoMembroComissaoQuery.php @@ -0,0 +1,25 @@ +query = GestaoMembroComissao::where([]); + + self::$instance = $this; + } + + public function whereUserPad($user_pad_id, $operator = '=') + { + $this->query = $this->query->where('user_pad_id', $operator, $user_pad_id); + return self::$instance; + } + +} \ No newline at end of file diff --git a/resources/views/components/buttons/btn-show-resolucao.blade.php b/resources/views/components/buttons/btn-show-resolucao.blade.php new file mode 100644 index 0000000000000000000000000000000000000000..7f4488c8c4b0d64ffef710e90fe15637730f7ca3 --- /dev/null +++ b/resources/views/components/buttons/btn-show-resolucao.blade.php @@ -0,0 +1,16 @@ +{{-- + @include('components.buttons.btn-show-resolucao', [ + 'content' => '', + 'btn_class' => '', + ]) + + @include('components.buttons.btn-show-resolucao', [ + 'content' => 'Resolução', + 'btn_class' => 'show_resolucao', + ]) +--}} + + \ No newline at end of file diff --git a/resources/views/pad/components/scripts/dimensao/ensino/show_modal.blade.php b/resources/views/pad/components/scripts/dimensao/ensino/show_modal.blade.php index 79c4e3fe8fb4a852125c0ba9e50f957b9eb4527f..c38a38bafaaf5059ba8983b28bddfc5d3cc1265e 100644 --- a/resources/views/pad/components/scripts/dimensao/ensino/show_modal.blade.php +++ b/resources/views/pad/components/scripts/dimensao/ensino/show_modal.blade.php @@ -2,24 +2,25 @@ @include('pad.components.scripts.dimensao.ensino.show_modal', [ 'modal_id' => '', 'route' => '', - 'btn_edit_class' => '', + 'btn_class' => '', ]) --}}