ElDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/amarcano568/pensionalamedida/llms.txt
Use this file to discover all available pages before exploring further.
AlumnosController centraliza toda la lógica relacionada con los estudiantes de la residencia universitaria. Gestiona la importación masiva de alumnos desde ficheros Excel, el listado paginado con DataTables, la visualización del grupo familiar vinculado, la imputación y eliminación de trabajos realizados, y la asignación o actualización de hospedajes en habitaciones de la residencia. Todas las rutas están protegidas por el middleware auth; las de gestión principal requieren adicionalmente el permiso gestion_alumnos.
subirFicheroNuevosAlumnos
POST /subir-fichero-nuevos-alumnos
Recibe un fichero Excel, lo almacena en disco local, vacía la tabla temporal alumnos_tmp y ejecuta la importación con AlumnosImport. Por cada registro importado llama a firstOrCreate sobre la tabla alumnos para evitar duplicados.
Fichero Excel (
.xlsx / .xls) que contiene el listado de nuevos alumnos a importar. El nombre original del fichero se usa como nombre de almacenamiento.Este endpoint no devuelve una respuesta JSON estructurada; la respuesta HTTP implícita es
200 OK cuando la importación finaliza sin excepciones. Los errores de validación de columnas son gestionados por la clase AlumnosImport.deleteFicheroImportarAlumno
POST /delete-fichero-importar-alumno
Elimina del disco local el fichero temporal que fue subido durante el proceso de importación. Verifica la existencia del archivo antes de intentar borrarlo.
Nombre del fichero que se desea eliminar del almacenamiento local (p. ej.
alumnos_2024.xlsx).true si el fichero existía y fue borrado correctamente; false si no se encontró o hubo un problema.Mensaje descriptivo del resultado de la operación.
Siempre cadena vacía en este endpoint.
gestionarEstudiantes
GET /gestionar-estudiantes
Renderiza la vista principal de gestión de alumnos (alumnos.gestion). Requiere el permiso gestion_alumnos. Precarga el catálogo completo de trabajos y el listado de habitaciones disponibles para usarlos en los modales de imputación y asignación de hospedaje.
Este endpoint devuelve una vista HTML, no JSON. Está protegido por
middleware: permission:gestion_alumnos.listarEstudiantes
POST /listar-estudiantes
Devuelve el listado de alumnos en formato DataTables, con columnas calculadas de detalle expandible (datos personales, hospedaje, foto) y botones de acción para imputar trabajos y gestionar residencia. Admite un filtro de estado para mostrar alumnos vigentes, de baja o todos.
Valor de filtro de estado que se pasa al scope
Status del modelo Alumnos. Los valores típicos son vigente, baja o vacío (todos los registros).Array de filas en formato DataTables. Cada fila incluye
numIdAlumno, strNombre, strApellidos, strTelefono1, strEMail, strCodigoExpediente, blnVigente, uuid_habitacion, la columna calculada detalle (HTML con tarjeta de alumno) y action (botones de acción HTML).Total de registros en la tabla sin filtrar.
Total de registros tras aplicar el filtro de búsqueda de DataTables.
detalleAlumno
(Método interno — no expuesto como ruta HTTP directa)
Construye y devuelve el fragmento HTML de la tarjeta de detalle de un alumno. La tarjeta incluye nombre completo, sexo, NIF, correo, fecha de nacimiento y edad calculada con Carbon, teléfonos, código de expediente, fecha de alta, datos de hospedaje en la residencia y dirección. Se invoca desde listarEstudiantes para rellenar la columna detalle de cada fila de la DataTable.
Fila del modelo
Alumnos con los campos numIdAlumno, strNombre, strApellidos, strTelefono1, strEMail, strCodigoExpediente, blnVigente y uuid_habitacion. Se recibe directamente del callback de Datatables dentro de listarEstudiantes.detalleAlumno no tiene una ruta registrada en web.php. Es un método auxiliar public llamado internamente mediante $this->detalleAlumno($row) dentro del callback de la columna calculada detalle de listarEstudiantes.verGrupoFamiliarAlumno
POST /ver-grupo-familiar-alumno
Localiza el grupo familiar del alumno por su UUID y delega la construcción de la tarjeta visual en GruposFamiliaresController::drawGroupFamily, devolviendo el HTML resultante en el campo data.
UUID del grupo familiar asociado al alumno (almacenado en
alumnos.uuid_grupo_familiar).true cuando el grupo familiar fue localizado y renderizado correctamente.Mensaje descriptivo del resultado.
Fragmento HTML con la tarjeta del grupo familiar (padre, madre e hijos).
listarTrabajosRealizados
POST /listar-trabajos-realizados
Devuelve en formato DataTables los trabajos imputados a un alumno concreto, haciendo join con el catálogo trabajos para obtener el nombre del trabajo. Incluye un botón de eliminación por fila.
ID del alumno (
alumnos.numIdAlumno) cuyos trabajos realizados se desean listar.Array de filas con los campos
trabajo (nombre del trabajo), fecha, observaciones e id (ID del registro en trabajos_realizados), más la columna action con el botón de eliminación.Total de trabajos imputados al alumno sin filtrar.
Total de trabajos tras aplicar el filtro de búsqueda de DataTables.
guardarTrabajoImputado
POST /guardar-trabajo-imputado
Imputa un trabajo realizado a un alumno creando un nuevo registro en la tabla trabajos_realizados.
ID del trabajo del catálogo de trabajos (
trabajos.id).Fecha en que se realizó el trabajo (formato
YYYY-MM-DD).ID del alumno al que se imputa el trabajo (
alumnos.numIdAlumno).Observaciones opcionales sobre el trabajo realizado.
true si el registro fue creado correctamente; false si no pudo ser imputado.Mensaje descriptivo del resultado de la operación.
Cadena vacía en ambos casos de respuesta.
eliminarTrabajo
POST /eliminar-trabajo
Elimina permanentemente un registro de trabajo imputado de la tabla trabajos_realizados por su ID.
ID del registro a eliminar en la tabla
trabajos_realizados.Siempre
true cuando la eliminación se ejecuta sin excepciones.Mensaje confirmando que el trabajo fue eliminado correctamente.
Cadena vacía.
verHospedajeAlumno
POST /ver-hospedaje-alumno
Busca el registro de hospedaje de un alumno por su UUID de habitación y lo devuelve completo en el campo data. Si el alumno no tiene hospedaje asignado, responde con success: false.
UUID del hospedaje almacenado en
alumnos.uuid_habitacion. Corresponde a un registro de la tabla hospedajes.true si se encontró un hospedaje activo para el UUID indicado; false en caso contrario.Mensaje descriptivo del resultado.
Objeto con los datos completos del hospedaje (
uuid, num_habitacion, desde, hasta, observaciones) cuando existe, o cadena vacía si no se encontró.actualizarHospedaje
POST /actualizar-hospedaje
Crea o actualiza el hospedaje de un alumno en una habitación de la residencia. Si el alumno no tiene aún un UUID de habitación asignado, genera uno nuevo con Uuid::generate() y lo vincula al alumno. En caso contrario, actualiza el registro existente.
UUID del hospedaje existente a actualizar. Si es
null o no se envía, se crea un nuevo registro de hospedaje.Número o identificador de la habitación a asignar (p. ej.
"101", "2B").Fecha de entrada del alumno a la habitación (formato
YYYY-MM-DD).Fecha de salida prevista del alumno (formato
YYYY-MM-DD).Observaciones opcionales sobre el estado de la habitación en la entrega.
ID del alumno (
alumnos.numIdAlumno). Requerido cuando se crea un hospedaje nuevo para vincular el UUID generado al alumno.Siempre
true cuando la operación se completa sin excepciones."La habitación fue asignada correctamente." en caso de creación, o "La habitación del alumno se actualizo correctamente." en caso de actualización.Cadena vacía.