Modificacion de prospecto a alumno y asignacion de grupos, coordinacion académica

This commit is contained in:
2026-03-23 15:48:23 -06:00
parent 58e27fc5fc
commit 1bcebeb8a1
43 changed files with 1551 additions and 96 deletions
+92
View File
@@ -0,0 +1,92 @@
<?php
namespace App\Livewire;
use App\Models\Alumno;
use Illuminate\Support\Facades\Auth;
use Livewire\Attributes\On;
use Livewire\Component;
class GrupoAlumno extends Component
{
public $grupo = null;
public $selectedAlumnos = [];
public $carrera;
#[On('create-grupo')]
public function creategrupo()
{
$this->dispatch('open-grupo-modal');
}
public function mount($grupo)
{
$this->grupo = $grupo;
}
public function guardar()
{
if (empty($this->selectedAlumnos)) {
session()->flash('error', 'Selecciona al menos un alumno');
return;
}
$this->grupo->alumnos()->syncWithoutDetaching($this->selectedAlumnos);
$this->reset('selectedAlumnos');
$this->dispatch('swal',
icon: 'success',
title: 'Anexado!',
text: 'Se agrego el alumno correctamente',
timer: 2000,
confirm: false,
closeModal: true,
reload: 2000
);
$this->dispatch('close-modal');
}
public function render()
{
$user = Auth::user();
$grupo = $this->grupo;
$plantelesUsuario = $user->plantelUsuarios->pluck('id');
$alumnos = Alumno::query()
->with(['alumnos.plantelUsuarios', 'statusAlumno', 'plan.carreraRel','nivelRel'])
->where('status', 2)
->where('nivel', $grupo->nivel)
->whereDoesntHave('grupos')
->whereHas('alumnos.plantelUsuarios', function ($q) use ($plantelesUsuario) {
$q->whereIn('plantels.id', $plantelesUsuario);
})
->orderByRaw("
CASE
WHEN plan_id = {$grupo->plan_id} THEN 0
ELSE 1
END
")
->orderByRaw("
CASE
WHEN nivel = {$grupo->nivel} THEN 0
ELSE 1
END"
)
->get();
return view('livewire.grupo-alumno', [
'alumnos' => $alumnos,
]);
}
}