77 lines
2.3 KiB
PHP
77 lines
2.3 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use App\Models\Turma;
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Support\Facades\Auth;
|
|
|
|
class TurmasController extends Controller
|
|
{
|
|
public function index()
|
|
{
|
|
|
|
$turmas = Turma::all();
|
|
|
|
return view('escolas.turmas', compact('turmas'));
|
|
}
|
|
|
|
public function createOrUpdate(Request $request)
|
|
{
|
|
$turma = Turma::where('nome', '=', $request->turma_nome)->count();
|
|
if ($turma == 0) {
|
|
try {
|
|
$turma = new Turma();
|
|
$turma->id_escola = $request->id_escola;
|
|
$turma->nome = $request->turma_nome;
|
|
$turma->descricao = $request->turma_descricao;
|
|
$turma->id_whatsapp = $request->id_whatsapp;
|
|
$turma->save();
|
|
return redirect()->route('turmas')->with('success', 'Turma Criada|Atualizada com sucesso.');
|
|
} catch (\Throwable $th) {
|
|
dd($th);
|
|
}
|
|
} else {
|
|
try {
|
|
Turma::where('nome', $request->turma_nome)->update([
|
|
'nome' => $request->turma_nome,
|
|
'descricao' => $request->turma_descricao,
|
|
'id_escola' => $request->id_escola,
|
|
'id_whatsapp' => $request->id_whatsapp,
|
|
]);
|
|
return redirect()->route('turmas')->with('success', 'Turma Criada|Atualizada com sucesso.');
|
|
} catch (\Throwable $th) {
|
|
//throw $th;
|
|
}
|
|
}
|
|
}
|
|
|
|
public function detalhes($id)
|
|
{
|
|
$turma = Turma::findOrFail($id);
|
|
return view('escolas.Turma_detalhes', compact('turma'));
|
|
}
|
|
|
|
public function byEscola(Request $request, $escolaId)
|
|
{
|
|
// Se você tem multi-tenant e o usuário NÃO é super admin,
|
|
// é boa prática garantir que ele só consulte escola permitida.
|
|
$user = auth()->user();
|
|
|
|
if (!$user->is_super_admin) {
|
|
// se você usa pivot user_escolas:
|
|
$allowed = $user->escolas()->where('escolas.id', $escolaId)->exists();
|
|
if (!$allowed) {
|
|
abort(403);
|
|
}
|
|
}
|
|
|
|
$turmas = Turma::query()
|
|
->where('id_escola', $escolaId)
|
|
->orderBy('nome')
|
|
->get(['id', 'nome']);
|
|
|
|
return response()->json($turmas);
|
|
}
|
|
}
|