Skip to content
368 changes: 327 additions & 41 deletions app/Http/Controllers/AproveitamentoController.php

Large diffs are not rendered by default.

2 changes: 2 additions & 0 deletions app/Models/Equivalencia.php
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ class Equivalencia extends Model
'tipo',
'codcur',
'codhab',
'submission_id',
'criado_por_id',
'alterado_por_id',
];
Expand All @@ -34,6 +35,7 @@ class Equivalencia extends Model
'cursada_id' => 'integer',
'codcur' => 'integer',
'codhab' => 'integer',
'submission_id' => 'integer',
];

public function requerida()
Expand Down
2 changes: 1 addition & 1 deletion config/laravel-usp-theme.php
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@
],
[
'text' => 'Meus requerimentos',
'url' => 'showuserobjects',
'url' => 'equivalencias/index',
'can' => 'user',
],
[
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,12 +46,19 @@ public function up(): void
->constrained('users')
->cascadeOnDelete();

$table->foreignId('submission_id')
->constrained('form_submissions')
->cascadeOnDelete();

// Para evitar que tenhamos mais de uma equivalência com a mesma disciplina cursada no mesmo grupo.
// Esse unique não impede que tenhamos a mesma disciplina cursada em grupos diferentes,
// o que é permitido (ex: 2 equivalências diferentes, ambas com a mesma disciplina cursada, mas em grupos diferentes).
// Ele só impede que tenhamos 2 equivalências iguais (mesmo grupo, mesma disciplina cursada).
$table->unique(['grupo', 'cursada_id']);

$table->unique(['cursada_id','submission_id']);


$table->timestamps();
});
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,9 @@
<div class="card-body">
<strong style="font-size: 24px;">Nova Requisição - Aproveitamento de estudos</strong>
<hr>
<div class="card-header border">{!! $formHtml !!}</div>

<div class="card">
<div class="card-header card-header-sticky ">{!! $formHtml !!}</div>
</div>
</div>
@endsection
13 changes: 13 additions & 0 deletions resources/views/aproveitamentos/edit.blade.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
@extends('layouts.app')

@section('content')

<div class="card-body">
<strong style="font-size: 24px;">Requisição - {{ $submission->data['disciplina4'] }}</strong>
<hr>

<div class="card">
<div class="card-header card-header-sticky ">{!! $formHtml !!}</div>
</div>
</div>
@endsection
44 changes: 44 additions & 0 deletions resources/views/aproveitamentos/index.blade.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
@extends('layouts.app')

@section('content')

<div class="card">
<div class="card-header card-header-sticky">
<strong class ="text-info" style="font-size: 24px;">Minhas requisições</strong>
</div>
<div class="card-body">
<div class="card">
<table class="table mb-0">
<thead>
<tr>
<th class="text-center">Disciplina requerida</th>
<th class="text-center">Estado atual</th>
<th class="text-center">Grupo</th>
<th class="text-center">Ações</th>
</tr>
</thead>
<tbody>
@foreach ($requisicoes as $reqinfo)
<tr>
<td class="text-center">
<a href="{{ route('equivalencias.req-show', ['group' => $reqinfo['grupo']]) }}">
{{ $reqinfo['nomdis'] }}
</a>
</td>
<td class="text-center">
<span class="badge badge-warning">{{ $reqinfo['estado'] ?? 'PLACEHOLDERS_NULO' }}</span>
</td>
<td class="text-center">{{ $reqinfo['grupo'] }}</td>
<td class="text-center">
<a href="{{ route('equivalencias.req-destroy', ['group' => $reqinfo['grupo']]) }}" class="btn btn-sm btn-danger">Remover</a>
<a href="{{ route('equivalencias.req-edit', ['group' => $reqinfo['grupo']]) }}" class="btn btn-sm btn-warning">Editar</a>
</td>
</tr>
@endforeach
</tbody>
</table>
</div>
</div>
</div>

@endsection
60 changes: 60 additions & 0 deletions resources/views/aproveitamentos/show.blade.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
@extends('layouts.app')

@section('content')
<div class="card">
<div class="card-header-sticky card-header">
<h3 class="">
Requisição de equivalência &rarr;
<span class="text-primary">
<strong>{{$show_data['requerida']['coddis'] .' - ' . $show_data['requerida']['nomdis'] }}</strong>
</span>
</h3>
</div>
<div class="card-body card-body-sticky">
<div class="card card-header card-header-sticky mb-0">
<div style="overflow-x: auto;">
<table class="table mb-0 mt-0 text-center">
<thead>
<tr>
<th class="text-info"><strong>Código</strong></th>
<th class="text-warning"><strong>Nome</strong></th>
<th class="text-secondary "><strong>Semestre</strong></th>
<th class="text-danger "><strong>Ano</strong></th>
<th class=""><strong>Frequência</strong></th>
<th class=""><strong>Nota</strong></th>
<th class=""><strong>Créditos</strong></th>
<th class=""><span class="text-nowrap"><strong>Carga horária</strong></span></th>
<th class=""><strong>IES</strong></th>
</tr>
</thead>
<tbody>
@foreach ($show_data['cursadas'] as $cursada)
<tr>
<td class="text-info ">{{ $cursada['coddis'] }}</td>
<td class="text-warning ">{{ $cursada['nomdis'] }}</td>
<td class="text-secondary ">{{ $cursada['semestre'] }}°</td>
<td class="text-danger ">{{ $cursada['ano'] }}</td>
<td class="">{{ $cursada['freq'] }}%</td>
<td class="">{{ $cursada['nota'] }}</td>
<td class="">{{ $cursada['creditos'] }}</td>
<td class="">{{ $cursada['carga_hr'] }}</td>
<td class="">{{ $cursada['ies'] }}</td>
{{-- <div class="col">
<span title="Ementa">
<a href="{{ route('form-submissions.download-file', ['formDefinition' => $submission->form_definition_id, 'formSubmission' => $submission->id,'fi eldName' => $field['name']]) }}" target="_blank">
{{ Illuminate\Support\Str::limit($filename, 30) }}
</a>
</span>
</div> --}}
</tr>
@if (!$loop->last)
<br>
@endif
@endforeach
</tbody>
</table>
</div>
</div>
</div>
</div>
@endsection
31 changes: 18 additions & 13 deletions routes/web.php
Original file line number Diff line number Diff line change
Expand Up @@ -18,31 +18,36 @@

Route::get('/', [WorkflowController::class, 'home'])->name('workflows.index');

Route::middleware(['auth'])->group(function () {
Route::middleware(['auth'])->prefix('equivalencias')->group(function () {
Route::middleware('can:equivalencias')->group(function () {
Route::get('/equivalencias', [EquivalenciaController::class, 'index'])
Route::get('/', [EquivalenciaController::class, 'index'])
->name('equivalencias.index');
Route::get('/equivalencias/{codcur}/{codhab}', [EquivalenciaController::class, 'show'])
Route::get('/{codcur}/{codhab}', [EquivalenciaController::class, 'show'])
->name('equivalencias.show');
Route::post('/equivalencia/estado-edicao', [EquivalenciaController::class, 'saveEditModeState'])
->name('equivalencias.save-edit-mode-state');
Route::post('/equivalencias/{codcur}/{codhab}', [EquivalenciaController::class, 'store'])
Route::post('/{codcur}/{codhab}', [EquivalenciaController::class, 'store'])
->name('equivalencias.store');
Route::put('/equivalencias/{codcur}/{codhab}/{equivalencia}', [EquivalenciaController::class, 'update'])
->name('equivalencias.update');
Route::delete('/equivalencias/{codcur}/{codhab}/{equivalencia}', [EquivalenciaController::class, 'destroy'])
Route::put('/{codcur}/{codhab}/{equivalencia}', [EquivalenciaController::class, 'update'])
->name('equivalencias.update')->whereNumber('codcur')->whereNumber('codhab');
Route::delete('/{codcur}/{codhab}/{equivalencia}', [EquivalenciaController::class, 'destroy'])
->name('equivalencias.destroy');
Route::post('/equivalencias/{codcur}/{codhab}/{equivalencia}/equivalencias', [EquivalenciaController::class, 'addEquivalencia'])
Route::post('/{codcur}/{codhab}/{equivalencia}/equivalencias', [EquivalenciaController::class, 'addEquivalencia'])
->name('equivalencias.add-equivalencia');
Route::put('/equivalencias/{codcur}/{codhab}/{equivalencia}/equivalencias/{equivalenciaFilha}', [EquivalenciaController::class, 'updateEquivalencia'])
Route::put('/{codcur}/{codhab}/{equivalencia}/equivalencias/{equivalenciaFilha}', [EquivalenciaController::class, 'updateEquivalencia'])
->name('equivalencias.update-equivalencia');
Route::delete('/equivalencias/{codcur}/{codhab}/{equivalencia}/equivalencias/{equivalenciaFilha}', [EquivalenciaController::class, 'destroyEquivalencia'])
Route::delete('/{codcur}/{codhab}/{equivalencia}/equivalencias/{equivalenciaFilha}', [EquivalenciaController::class, 'destroyEquivalencia'])
->name('equivalencias.destroy-equivalencia');
Route::delete('/equivalencias/{codcur}/{codhab}/{equivalencia}/equivalencias/{equivalenciaFilha}/grupo', [EquivalenciaController::class, 'destroyEquivalenciaGrupo'])
Route::delete('/{codcur}/{codhab}/{equivalencia}/equivalencias/{equivalenciaFilha}/grupo', [EquivalenciaController::class, 'destroyEquivalenciaGrupo'])
->name('equivalencias.destroy-equivalencia-grupo');

Route::get('/equivalencias/newreq', [AproveitamentoController::class, 'create'])->name('equivalencias.newreq-create');
Route::post('/equivalencias/newreq', [AproveitamentoController::class, 'store'])->name('equivalencias.newreq-store');
Route::get('/newreq', [AproveitamentoController::class, 'create'])->name('equivalencias.newreq-create');
Route::post('/newreq', [AproveitamentoController::class, 'store'])->name('equivalencias.newreq-store');
Route::get('/index',[AproveitamentoController::class, 'index'])->name('equivalencias.req-index');
Route::get('/req/show/{group}',[AproveitamentoController::class, 'show'])->name('equivalencias.req-show');
Route::get('/req/destroy/{group}',[AproveitamentoController::class, 'destroy'])->name('equivalencias.req-destroy');
Route::get('/req/edit/{group}',[AproveitamentoController::class, 'edit'])->name('equivalencias.req-edit');
Route::put('/req/edit/{group}',[AproveitamentoController::class, 'update'])->name('equivalencias.req-update');
});

Route::get('/createdefinition', [WorkflowController::class, 'createDefinition'])->name('workflows.create-definition');
Expand Down