Commit 230703eb authored by alissonalbuquerque's avatar alissonalbuquerque
Browse files

feat(task-time): add implementação de 'Horário Semana' para PDAs

parent 46aae30d
<?php
namespace App\Http\Controllers;
use App\Models\Util\MenuItemsAvaliador;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
class AvaliadorTaskTimeController extends Controller
{
public function index()
{
$menu = MenuItemsAvaliador::TASK_TIME;
$user = Auth::user();
// $userPads =
// AvaliadorPad::where('user_id', '=', $user->id)
// ->join('pad', 'avaliador_pad.pad_id', '=', 'pad.id')
// ->get();
return view('avaliador-task-time.index', ['index_menu' => $menu]);
}
}
......@@ -316,4 +316,9 @@ class TaskController extends Controller
return Response::json($results);
}
public function searchById(Request $request) {
dd($request->all());
}
}
......@@ -5,6 +5,8 @@ namespace App\Http\Controllers;
use App\Models\TaskTime;
use App\Models\Util\Menu;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Response;
use Illuminate\Support\Facades\Validator;
class TaskTimeController extends Controller
{
......@@ -12,8 +14,6 @@ class TaskTimeController extends Controller
{
$menu = Menu::PADS;
$taskTimes = TaskTime::whereUserPadId($user_pad_id)->get();
return view('task-time.index', [
'menu' => $menu,
'user_pad_id' => $user_pad_id
......@@ -28,20 +28,92 @@ class TaskTimeController extends Controller
public function save(Request $request) {
$array = TaskTime::splitTarefaAndType($request->get('tarefa_id'));
$model = new TaskTime($request->all());
dd($request->get('tarefa_id'), $array);
if($model->save()) {
return redirect()
->route('TaskTimeIndex', ['user_pad_id' => $model->user_pad_id])
->with('success', 'Cadastro realizado com sucesso!');
}
}
public function updateView() {
public function edit($id) {
$model = TaskTime::find($id);
return view('task-time.update', [
'model' => $model
]);
}
public function update() {
public function update($id, Request $request) {
$request->merge(['start_time' => TaskTime::traitHour($request->get('start_time'))]);
$request->merge(['end_time' => TaskTime::traitHour($request->get('end_time'))]);
$model = TaskTime::find($id);
$model->fill($request->all());
if($model->save()) {
return redirect()
->route('TaskTimeIndex', ['user_pad_id' => $model->user_pad_id])
->with('success', 'Atualizado com sucesso!');
}
return redirect()
->route('TaskTimeIndex', ['user_pad_id' => $model->user_pad_id])
->with('fail', 'Erro ao Atualizar!');
}
public function delete() {
public function delete($id) {
$model = TaskTime::find($id);
if($model->delete()) {
return redirect()
->route('TaskTimeIndex', ['user_pad_id' => $model->user_pad_id])
->with('success', 'Deletado com sucesso!');
}
return redirect()
->route('TaskTimeIndex', ['user_pad_id' => $model->user_pad_id])
->with('fail', 'Erro ao Deletar!');
}
public function searchTask(Request $request) {
$type = $request->get('type');
$tarefa_id = $request->get('tarefa_id');
$model = new TaskTime();
$model->tarefa_id = $tarefa_id;
$model->type = $type;
$attributes = $model->tarefa->getAttributes();
return Response::json(['task' => $attributes]);
}
public function ajaxValidation(Request $request)
{
$request->merge(['start_time' => TaskTime::traitHour($request->get('start_time'))]);
$request->merge(['end_time' => TaskTime::traitHour($request->get('end_time'))]);
$attributes = [
'id' => $request->get('id'),
'user_pad_id' => $request->get('user_pad_id'),
'tarefa_id' => $request->get('tarefa_id'),
'type' => $request->get('type'),
'start_time' => $request->get('start_time'),
'end_time' => $request->get('end_time'),
];
$validator = Validator::make($request->all(), TaskTime::rules($attributes), TaskTime::messages());
if($validator->passes()) {
return Response::json(['message' => true, 'status' => 200]);
}
return Response::json(['errors' => $validator->errors(), 'status' => 400]);
}
}
This diff is collapsed.
......@@ -8,4 +8,5 @@ class MenuItemsAvaliador
const HOME = 0;
const PADs = 1;
const REPORT = 2;
const TASK_TIME = 3;
}
<?php
namespace App\Rules;
use App\Models\TaskTime;
use DateTime;
use Illuminate\Contracts\Validation\Rule;
use Illuminate\Database\Eloquent\Collection;
class ValidationLimitTime implements Rule
{
/** @var string|integer */
protected $id;
/** @var string|integer */
protected $user_pad_id;
/** @var string|integer */
protected $tarefa_id;
/** @var string|integer */
protected $type;
/** @var string|date */
protected $start_time;
/** @var string|date */
protected $end_time;
/** @var string */
protected $limit_hours;
/** @var DateInterval */
protected $outLineTime;
/** @var mixed */
protected $task;
/** @var TaskTime */
protected $taskTime;
/** @var Collection */
protected $taskTimes;
/**
* Create a new rule instance.
*
* @param array $attributes
* @return void
*
* Example
* $attributes = ['user_pad_id' => $user_pad_id, 'tarefa_id' => $tarefa_id, 'type' => $type, 'start_time' => $start_time, 'end_time' => $end_time]
*/
public function __construct($attributes = [])
{
$this->id = $attributes['id'];
$this->user_pad_id = $attributes['user_pad_id'];
$this->tarefa_id = $attributes['tarefa_id'];
$this->type = $attributes['type'];
$this->start_time = $attributes['start_time'];
$this->end_time = $attributes['end_time'];
$this->task = TaskTime::tarefaByStatic($this->type, $this->tarefa_id);
$this->limit_hours = TaskTime::convertFloatToHour($this->task->ch_semanal);
$this->taskTimes = $this->getTaskTimes();
$this->taskTime = $this->createTaskTime();
}
/**
* Determine if the validation rule passes.
*
* @param string $attribute
* @param mixed $value
* @return bool
*/
public function passes($attribute, $value)
{
$limitDateTime = new DateTime($this->limit_hours);
$sumDateTime = TaskTime::sumIntervalTimes($this->taskTimes);
$newDateTime = new DateTime($this->taskTime->intervalTime());
$totalDateTime = TaskTime::sumDateTimes($sumDateTime, $newDateTime);
$this->outLineTime = $totalDateTime->diff($limitDateTime);
// dd([
// 'limite' => $limitDateTime,
// 'total' => $totalDateTime,
// 'interval' => $this->outLineTime
// ]);
return $limitDateTime >= $totalDateTime;
}
/**
* Get the validation error message.
*
* @return string
*/
public function message()
{
$limitDateTime = new DateTime($this->limit_hours);
$sumDateTime = TaskTime::sumIntervalTimes($this->taskTimes);
$diffInterval = $sumDateTime->diff($limitDateTime);
$dateTime = new DateTime('00:00:00');
$dateTime->add($diffInterval);
$diff_time = $dateTime->format('H:i');
$taskTime = $this->createTaskTime();
$interval_time = $taskTime->intervalTime('H:i');
$msgError = "Carga horária disponível restante: {$diff_time} hora(s)!";
$msgError .= $diff_time == "00:00"? " Atividade Indisponível!" : " Intervalo entre inicio e fim : {$interval_time} hora(s)!";
return $msgError;
}
/**
* @return App\Models\TaskTime[]
*/
public function getTaskTimes()
{
$id = $this->id;
return (
TaskTime::where('user_pad_id', '=', $this->user_pad_id)
->where('tarefa_id', '=', $this->tarefa_id)
->where('type', '=', $this->type)
->get()
->reject(function(TaskTime $model, int $key) use ($id) {
return $model->id == $id;
})
);
}
/**
* @return App\Models\TaskTime
*/
public function createTaskTime()
{
$model = new TaskTime();
$model->user_pad_id = $this->user_pad_id;
$model->tarefa_id = $this->tarefa_id;
$model->type = $this->type;
$model->start_time = $this->start_time;
$model->end_time = $this->end_time;
$model->start_time = "{$model->start_time}:00";
$model->end_time = "{$model->end_time}:00";
return $model;
}
}
<div class="card mx-2" style="width: 12rem;">
<div class="card-body">
<h3 class="text-center"> <i class="bi bi-clock-fill"></i> </h3>
<h5 class="text-center"> PAD: {{ $userPad->pad->nome }} </h4>
<h5 class="text-center"> Status: {{ $userPad->pad->statusAsString() }} </h4>
<a class="stretched-link" href="{{ route('pad_relatório', ['id' => $userPad->id]) }}"></a>
</div>
</div>
@extends('layouts.main')
@section('header')
@include('layouts.header', [
'user' => Auth::user(),
])
@endsection
@section('nav')
@include('layouts.navigation', ['menu' => $index_menu])
@endsection
@section('title', 'Horários')
@section('body')
<div class="tab-content">
<div class="tab-pane active" id="home" role="tabpanel" aria-labelledby="home-tab">
<div class="d-flex justify-content-between flex-wrap flex-md-nowrap align-items-center pt-3 pb-2 mb-3 border-bottom">
<h1 class="h2">Horários</h1>
</div>
<div class="d-flex justify-content-between flex-wrap flex-md-nowrap align-items-center pt-3 pb-2 mb-3">
<h3> <i class="bi bi-clock-fill"></i> Horários Disponíveis </h3>
</div>
<div class="d-flex">
{{-- @foreach($userPads as $userPad)
@include('avaliador-task-time.card_horario', ['userPad' => $userPad])
@endforeach --}}
</div>
</div>
</div>
@endsection
\ No newline at end of file
{{--
@include('components.buttons.btn-delete-by-alert', [
'_id' => '',
'_class' => '',
'_route' => route('')
])
--}}
<!-- Button trigger alert -->
<button type="button" id="{{ $_id }}" class="btn btn-danger {{$_class}}">
<i class="bi bi-trash"></i>
</button>
<script>
$('.{{$_class}}').click(function(e)
{
const _id = $(this).attr('id')
const is_delete = confirm('Você tem certeza que deseja excluir esse item?')
if(is_delete) {
$('#form-delete-'+_id).submit()
}
})
</script>
\ No newline at end of file
<div class="card mx-2" style="width: 12rem;">
<div class="card-body">
<h3 class="text-center"> <i class="bi bi-file-bar-graph-fill"></i> </h3>
<h3 class="text-center"> <i class="bi bi-file-earmark-word-fill"></i> </h3>
<h5 class="text-center"> PAD: {{ $userPad->pad->nome }} </h4>
<h5 class="text-center"> Status: {{ $userPad->pad->statusAsString() }} </h4>
<a class="stretched-link" href="{{ route('pad_relatório', ['id' => $userPad->id]) }}"></a>
......
......@@ -7,6 +7,7 @@
$home_active = $index_menu === MenuItemsAvaliador::HOME ? 'active' : '';
$report_active = $index_menu === MenuItemsAvaliador::REPORT ? 'active' : '';
$task_time_active = $index_menu === MenuItemsAvaliador::TASK_TIME ? 'active' : '';
@endphp
<!-- SidebarMenu : Vertical Options -->
......@@ -19,10 +20,12 @@
</li>
<li class="nav-item">
<a href="{{ route('avaliador_relatorio') }}" class="custom-nav-link {{ $report_active }}">
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-file-bar-graph-fill" viewBox="0 0 16 16">
<path d="M12 0H4a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2zm-2 11.5v-6a.5.5 0 0 1 .5-.5h1a.5.5 0 0 1 .5.5v6a.5.5 0 0 1-.5.5h-1a.5.5 0 0 1-.5-.5zm-2.5.5a.5.5 0 0 1-.5-.5v-4a.5.5 0 0 1 .5-.5h1a.5.5 0 0 1 .5.5v4a.5.5 0 0 1-.5.5h-1zm-3 0a.5.5 0 0 1-.5-.5v-2a.5.5 0 0 1 .5-.5h1a.5.5 0 0 1 .5.5v2a.5.5 0 0 1-.5.5h-1z"/>
</svg>
Relatórios
<i class="bi bi-file-earmark-word-fill"></i> Relatórios
</a>
</li>
{{-- <li class="nav-item">
<a href="{{ route('avaliador_task_time_index') }}" class="custom-nav-link {{ $task_time_active }}">
<i class="bi bi-clock-fill"></i> Horários
</a>
</li> --}}
</ul>
\ No newline at end of file
......@@ -2,30 +2,80 @@
use App\Models\TaskTime;
@endphp
<form id="form-user_pad" action="{{ route('TaskTimeSave') }}" method="post">
<form id="task-time-form" action="{{ route('TaskTimeSave') }}" method="post">
@csrf
@method('POST')
<div class="col-sm-12">
<div class="mb-3">
<label for="weekday">Atividade</label>
<select name="tarefa_id" id="tarefa_id" class="form-select">
<!-- @foreach(TaskTime::listWeekDays() as $id => $text)
<option value="{{$id}}">{{$text}}</option>
@endforeach -->
</select>
<div class="row">
<input type="hidden" id="user_pad_id" name="user_pad_id" value="{{ $user_pad_id }}">
<input type="hidden" id="tarefa_id" name="tarefa_id" value="">
<input type="hidden" id="type" name="type" value="">
<input type="hidden" id="id" name="id" value="">
<div class="mb-4 col-sm-2">
<div class="">
<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>
@include('components.divs.errors', [
'field' => 'cod_atividade_create'
])
</div>
<div class="col-sm-10">
<div class="mt-3">
<label for="weekday">Dia da Semana</label>
<select name="weekday" id="weekday" class="form-select @error('weekday') is-invalid @enderror ajax-errors">
@foreach(TaskTime::listWeekDays() as $id => $text)
<option value="{{$id}}">{{$text}}</option>
@endforeach
</select>
@include('components.divs.errors', [
'field' => 'weekday_create'
])
</div>
</div>
<div class="col-sm-12">
<div class="">
<label for="slct_tarefa_id">Atividade</label>
<select name="slct_tarefa_id" id="slct_tarefa_id" class="form-select @error('slct_tarefa_id') is-invalid @enderror ajax-errors">
</select>
</div>
@include('components.divs.errors', [
'field' => 'slct_tarefa_id_create'
])
</div>
</div>
<div class="col-sm-12">
<div class="mb-3">
<label for="weekday">Dia da Semana</label>
<select name="weekday" id="weekday" class="form-select">
@foreach(TaskTime::listWeekDays() as $id => $text)
<option value="{{$id}}">{{$text}}</option>
@endforeach
</select>
<div class="col-sm-6">
<div class="mt-3">
<label class="form-label" for="start_time">Horário Inicial</label>
<input type="time" min="07:30" max="21:15" name="start_time" id="start_time" class="form-control @error('start_time') is-invalid @enderror ajax-errors" >
@include('components.divs.errors', [
'field' => 'start_time_create',
])
</div>
</div>
<div class="col-sm-6">
<div class="mt-3">
<label class="form-label" for="end_time">Horário Final</label>
<input type="time" min="07:30" max="21:15" name="end_time" id="end_time" class="form-control @error('end_time') is-invalid @enderror ajax-errors" >
@include('components.divs.errors', [
'field' => 'end_time_create',
])
</div>
</div>
</div>
<div class="mt-1 text-end">
......@@ -41,6 +91,13 @@
</form>
@include('pad.components.scripts.ajaxValidation', [
'btn_submit_id' => 'btn_submit',
'form_id' => 'task-time-form',
'route' => route('TaskTimeValidation'),
'form_type' => 'create',
])
<script type="text/javascript">
$('#weekday').select2(
......@@ -50,10 +107,15 @@
dropdownParent: $('#modal')
})
$('#tarefa_id').select2(
{
$('#slct_tarefa_id').select2(
{
allowClear: true,
placeholder: 'Tarefa',
language: {
noResults: function() {
return "Resultados não Encontrados";
}
},
ajax: {
url: '{{ route("TaskSearch") }}',
data: function(params) {
......@@ -67,4 +129,43 @@
dropdownParent: $('#modal')
})
</script>
\ No newline at end of file
$('#slct_tarefa_id').on('change', function(e)
{
const type = $('#type')
const tarefa_id = $('#tarefa_id')
$('#cod_atividade').val('')
if($(this).val()) {
const value = $(this).val()
const split_data = value.split('|')
const split_tarefa_id = split_data[0].split('_')
const split_type = split_data[1].split('_')
const _tarefa_id = split_tarefa_id[1]
const _type = split_type[1]
type.val(_type)
tarefa_id.val(_tarefa_id)
$.ajax({
url: '{{ route("TaskTimeSearchTask") }}',
type: 'GET',
data: {
tarefa_id: _tarefa_id,
type: _type
},
dataType: 'json',
success: (response) => {
const cod_atividade = response.task.cod_atividade
$('#cod_atividade').val(cod_atividade)
},
error: (xhr, status, error) => {
console.error('Erro na requisição!');
}
});
}
})
</script>
......@@ -19,12 +19,96 @@
@include('components.alerts')
@include('components.buttons.btn-show-modal', [
// '_id' => 'btn-task-time-create',
'_class' => 'btn-success',
'_content' => 'Cadastrar',
'_target_class' => 'task-time-create',
])
@php
use App\Models\TaskTime;
// $hours = ['07:30', '08:20', '09:10', '10:00', '10:50', '11:40', '12:30', '13:30', '14:30', '15:30', '16:30', '17:30', '19:00', '19:45', '20:30', '21:15'];
$rangeHours = [
['07:30', '08:20'],
['08:20', '09:10'],
['09:10', '10:00'],
['10:00', '10:50'],
['10:50', '11:40'],
['11:40', '12:30'],
['12:30', '13:30'],
['13:30', '14:30'],
['14:30', '15:30'],
['15:30', '16:30'],
['16:30', '17:30'],
['17:30', '19:00'],
['19:00', '19:45'],
['19:45', '20:30'],
['20:30', '21:15'],
['21:15', '21:15'],
];
$calendar = [];
$row = [];
foreach ($rangeHours as $rangeHour)
{
$start_time = $rangeHour[0];
$end_time = $rangeHour[1];
$row[0] = $start_time;
foreach (array_keys(TaskTime::listWeekDays()) as $weekday)
{
$row[$weekday] =
TaskTime::where('user_pad_id', '=', $user_pad_id)
->where('weekday', '=', $weekday)
->where(function($query) use ($rangeHour) {
$query->orWhereBetween('start_time', $rangeHour)->orWhereBetween('end_time', $rangeHour);
})->first();
$row[$weekday] = $row[$weekday] ? $row[$weekday] : '';
}
$calendar[] = $row;
}
@endphp
<div class="my-4">
<table class="table table-hover">
<thead>
<tr>
@foreach(TaskTime::listWeekDaysTable() as $key => $weekday)
<th scope="col">{{$weekday}}</th>
@endforeach
</tr>
</thead>
<tbody>
@foreach($calendar as $rowHour)
<tr>
@foreach ($rowHour as $model)
@if(gettype($model) == 'string')
<th scope="col">{{ $model }}</th>
@endif
@if(gettype($model) == 'object')
<td>
<a href="#modal" class="btn btn-edit_task" id="{{ $model->id }}">
{{ "{$model->getCode()} : {$model->getName()}" }}
</a>
</td>
@endif
@endforeach
</tr>
@endforeach
</tbody>
</table>
</div>
@include('components.modal', ['size' => 'modal-lg', 'header' => ''])
</div>
......@@ -39,4 +123,35 @@
'btn_class' => 'task-time-create',
])
@endsection
\ No newline at end of file
@include('pad.components.scripts.dimensao.ensino.show_modal', [
'modal_id' => 'modal',
'route' => route('TaskTimeEdit'),
'btn_class' => 'btn-edit_task',
])
@endsection
{{-- @include('components.buttons.btn-edit', [
'route' => route('TaskTimeEdit', ['id' => $model->id])
])
@include('components.buttons.btn-delete', [
'id' => $model->id,
'route' => route('TaskTimeDelete', ['id' => $model->id])
]) --}}
{{-- @foreach($listTaskTime as $key => $taskTimes)
<tr>
@foreach($taskTimes as $model)
@if(gettype($model) == 'string')
<th>{{ $model }}</th>
@endif
@if(gettype($model) == 'object')
@endif
@endforeach
</tr>
@endforeach --}}
\ No newline at end of file
@php
use App\Models\TaskTime;
/**
* @var App\Models\TaskTime $model
*/
@endphp
<form id="form-delete-{{$model->id}}" action="{{ route('TaskTimeDelete', ['id' => $model->id]) }}" method="post">
@method('DELETE')
@csrf
</form>
<form id="task-time-update-form" action="{{ route('TaskTimeUpdate', ['id' => $model->id]) }}" method="post">
@csrf
@method('POST')
<div class="row">
<input type="hidden" id="user_pad_id" name="user_pad_id" value="{{ $model->user_pad_id }}">
<input type="hidden" id="tarefa_id" name="tarefa_id" value="{{ $model->tarefa_id }}">
<input type="hidden" id="type" name="type" value="{{ $model->type }}">´
<input type="hidden" id="id" name="id" value="{{ $model->id }}">
<div class="mb-4 col-sm-2">
<div class="">
<label class="form-label" for="cod_atividade">Cód. Atividade</label>
<input type="text" id="cod_atividade" name="cod_atividade" value="{{ $model->tarefa->cod_atividade }}" readonly class="form-control @error('cod_atividade') is-invalid @enderror ajax-errors">
</div>
@include('components.divs.errors', [
'field' => 'cod_atividade_update'
])
</div>
<div class="col-sm-10">
<div class="mt-3">
<label for="weekday">Dia da Semana</label>
<select name="weekday" id="weekday" class="form-select @error('weekday') is-invalid @enderror ajax-errors">
@foreach(TaskTime::listWeekDays() as $id => $text)
@if( $model->weekday == $id)
<option selected value="{{$id}}">{{$text}}</option>
@else
<option value="{{$id}}">{{$text}}</option>
@endif
@endforeach
</select>
@include('components.divs.errors', [
'field' => 'weekday_update'
])
</div>
</div>
<div class="col-sm-12">
<div class="">
<label for="slct_tarefa_id">Atividade</label>
<select name="slct_tarefa_id" id="slct_tarefa_id" class="form-select @error('slct_tarefa_id') is-invalid @enderror ajax-errors">
<option selected value="{{$model->tarefa_id}}">{{$model->getName()}}</option>
</select>
</div>
@include('components.divs.errors', [
'field' => 'slct_tarefa_id'
])
</div>
<div class="col-sm-6">
<div class="mt-3">
<label class="form-label" for="start_time">Horário Inicial</label>
<input type="time" name="start_time" id="start_time" value="{{$model->start_time}}" class="form-control @error('start_time') is-invalid @enderror ajax-errors" >
@include('components.divs.errors', [
'field' => 'start_time_update',
])
</div>
</div>
<div class="col-sm-6">
<div class="mt-3">
<label class="form-label" for="end_time">Horário Final</label>
<input type="time" name="end_time" id="end_time" value="{{$model->end_time}}" class="form-control @error('end_time') is-invalid @enderror ajax-errors" >
@include('components.divs.errors', [
'field' => 'end_time_update',
])
</div>
</div>
</div>
<div class="mt-4">
<div class="modal-footer">
<div class="text-start">
@include('components.buttons.btn-delete-by-alert', [
'_id' => $model->id,
'_class' => "delete_task_time",
])
</div>
<div class="text-end">
@include('components.buttons.btn-save', [
'id' => 'btn_submit',
'content' => 'Atualizar',
])
@include('components.buttons.btn-close_modal')
</div>
</div>
</div>
</form>
@include('pad.components.scripts.ajaxValidation', [
'btn_submit_id' => 'btn_submit',
'form_id' => 'task-time-update-form',
'route' => route('TaskTimeValidation'),
'form_type' => 'update',
])
<script type="text/javascript">
$('#weekday').select2(
{
allowClear: true,
placeholder: 'Dia da Semana',
dropdownParent: $('#modal')
})
$('#slct_tarefa_id').select2(
{
allowClear: true,
placeholder: 'Tarefa',
language: {
noResults: function() {
return "Resultados não Encontrados";
}
},
ajax: {
url: '{{ route("TaskSearch") }}',
data: function(params) {
return {
q: params.term,
user_pad_id : {{$model->user_pad_id}}
}
},
dataType: 'json'
},
dropdownParent: $('#modal')
})
$('#slct_tarefa_id').on('change', function(e)
{
const type = $('#type')
const tarefa_id = $('#tarefa_id')
$('#cod_atividade').val('')
if($(this).val()) {
const value = $(this).val()
const split_data = value.split('|')
const split_tarefa_id = split_data[0].split('_')
const split_type = split_data[1].split('_')
const _tarefa_id = split_tarefa_id[1]
const _type = split_type[1]
type.val(_type)
tarefa_id.val(_tarefa_id)
$.ajax({
url: '{{ route("TaskTimeSearchTask") }}',
type: 'GET',
data: {
tarefa_id: _tarefa_id,
type: _type
},
dataType: 'json',
success: (response) => {
const cod_atividade = response.task.cod_atividade
$('#cod_atividade').val(cod_atividade)
},
error: (xhr, status, error) => {
console.error('Erro na requisição!');
}
});
}
})
</script>
......@@ -5,4 +5,5 @@ use Illuminate\Support\Facades\Route;
Route::prefix('/tarefa/geral')->group(function () {
Route::get('/search', [TaskController::class, 'search'])->name('TaskSearch');
Route::get('/search-by-id', [TaskController::class, 'searchById'])->name('TaskSearchById');
});
\ No newline at end of file
......@@ -7,9 +7,9 @@ Route::prefix('/tarefa/horario')->group(function () {
Route::get('/index/{user_pad_id}', [TaskTimeController::class, 'index'])->name('TaskTimeIndex');
Route::get('/create/{user_pad_id}', [TaskTimeController::class, 'create'])->name('TaskTimeCreate');
Route::post('/save', [TaskTimeController::class, 'save'])->name('TaskTimeSave');
//edit
//update
//delete
//move
});
\ No newline at end of file
Route::get('/edit/{id?}', [TaskTimeController::class, 'edit'])->name('TaskTimeEdit');
Route::post('/update/{id}', [TaskTimeController::class, 'update'])->name('TaskTimeUpdate');
Route::delete('/delete/{id}', [TaskTimeController::class, 'delete'])->name('TaskTimeDelete');
Route::get('/search-task', [TaskTimeController::class, 'searchTask'])->name('TaskTimeSearchTask');
Route::post('/validation', [TaskTimeController::class, 'ajaxValidation'])->name('TaskTimeValidation');
});
<?php
use App\Http\Controllers\AvaliadorController;
use App\Http\Controllers\AvaliadorTaskTimeController;
use App\Http\Controllers\PadController;
use Illuminate\Support\Facades\Route;
Route::prefix('/avaliador')->group(function () {
Route::get('/index', [AvaliadorController::class, 'index'])->name('avaliador_index');
Route::put('/avaliar', [AvaliadorController::class, 'avaliar'])->name('avaliador_avaliar');
Route::get('/create', [AvaliadorController::class, 'create'])->name('avaliador_create');
Route::post('/store', [AvaliadorController::class, 'store'])->name('avaliador_store');
Route::get('/edit/{id}', [AvaliadorController::class, 'edit'])->name('avaliador_edit');
Route::post('/update/{id}', [AvaliadorController::class, 'update'])->name('avaliador_update');
Route::delete('/delete/{id}', [AvaliadorController::class, 'destroy'])->name('avaliador_delete');
Route::get('/relatorio', [AvaliadorController::class, 'relatorio'])->name('avaliador_relatorio');
Route::get('/relatorio/{id}', [PadController::class, 'relatorio'])->name('pad_relatório');
Route::get('/relatorio/{id}/pdf', [PadController::class, 'generatePDF'])->name('pad_relatório_pdf');
Route::get('/horario/index', [AvaliadorTaskTimeController::class, 'index'])->name('avaliador_task_time_index');
});
......@@ -29,7 +29,11 @@ require __DIR__ . '/auth.php';
require __DIR__ . '/profile.php';
require __DIR__ . '/pad.php';
require __DIR__ . '/avaliador.php';
require __DIR__ . '/avaliador_pad.php';
require __DIR__ . '/professor_pad.php';
require __DIR__ . '/unidade.php';
......@@ -97,19 +101,6 @@ Route::prefix('/professor')->group(function () {
Route::delete('/delete/{id}', [ProfessorController::class, 'destroy'])->name('professor_delete');
});
Route::prefix('/avaliador')->group(function () {
Route::get('/index', [AvaliadorController::class, 'index'])->name('avaliador_index');
Route::put('/avaliar', [AvaliadorController::class, 'avaliar'])->name('avaliador_avaliar');
Route::get('/create', [AvaliadorController::class, 'create'])->name('avaliador_create');
Route::post('/store', [AvaliadorController::class, 'store'])->name('avaliador_store');
Route::get('/edit/{id}', [AvaliadorController::class, 'edit'])->name('avaliador_edit');
Route::post('/update/{id}', [AvaliadorController::class, 'update'])->name('avaliador_update');
Route::delete('/delete/{id}', [AvaliadorController::class, 'destroy'])->name('avaliador_delete');
Route::get('/relatorio', [AvaliadorController::class, 'relatorio'])->name('avaliador_relatorio');
Route::get('/relatorio/{id}', [PadController::class, 'relatorio'])->name('pad_relatório');
Route::get('/relatorio/{id}/pdf', [PadController::class, 'generatePDF'])->name('pad_relatório_pdf');
});
Route::prefix('/user')->group(function () {
Route::get('/edit/perfil/{tab?}', [UserController::class, 'editPerfil'])->name('edit_perfil');
Route::post('/update/perfil', [UserController::class, 'updatePerfil'])->name('update_perfil');
......
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