El módulo de Grupos Familiares permite modelar la unidad familiar de los alumnos residentes en Pensión a la Medida. Cada grupo vincula a dos alumnos del padrón como padre y madre, y acumula un número variable de hijos menores registrados en la tablaDocumentation 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.
hijos. Todo grupo queda identificado de forma única mediante un UUID, que también se propaga a los registros de los alumnos padres para permitir la consulta rápida desde otras partes del sistema.
Acceso al módulo
El acceso a la vista principal requiere que el usuario autenticado tenga el permisogestion_grupos_familiares.
| Método | Ruta | Controlador → Método |
|---|---|---|
GET | /gestionar-grupos-familiares | GruposFamiliaresController@gestionarGrupoFamiliar |
blnVigente = 1) separadas por sexo:
padres— alumnos constrSexo = 'H'madres— alumnos constrSexo = 'M'
Listar grupos familiares
grupos_familiares. La respuesta no utiliza DataTables; en su lugar el servidor genera directamente las tarjetas HTML mediante GruposFamiliaresController::drawGroupFamily(), agrupadas dentro de un <div class="row">.
Cada tarjeta muestra una tabla con el nombre completo del padre y la madre (resueltos desde alumnos), y una fila por cada hijo del grupo (nombre, fecha de nacimiento y edad calculada con Carbon). Cada tarjeta incluye iconos para editar y eliminar el grupo, con el data-uuid del grupo en el atributo correspondiente.
Respuesta exitosa:
Estructura de un grupo familiar
Cada registro de la tablagrupos_familiares tiene la siguiente estructura lógica:
| Campo | Tipo | Descripción |
|---|---|---|
uuid | string | Identificador único universal del grupo. Generado con Webpatser\Uuid\Uuid::generate() al crear. |
padre | integer | FK hacia alumnos.numIdAlumno. El alumno referenciado debe tener strSexo = 'H'. |
madre | integer | FK hacia alumnos.numIdAlumno. El alumno referenciado debe tener strSexo = 'M'. |
hijos | string | Lista de IDs de registros hijos separados por el carácter | (p. ej. 1|3|7). Vacío si no hay hijos. |
hijos y se referencian a través del campo hijos con IDs separados por |. El método hijos() del controlador expande esta cadena, resuelve cada ID y construye la representación visual del hijo (nombre completo, fecha de nacimiento y edad calculada con Carbon).
Crear un grupo familiar
uuid.
numIdAlumno del alumno que actuará como padre del grupo (strSexo = 'H').numIdAlumno del alumno que actuará como madre del grupo (strSexo = 'M').Enviar
null para crear un grupo nuevo. Enviar el UUID de un grupo existente para actualizarlo.uuid = null):
- Se instancia un nuevo
GruposFamiliaresy se genera un UUID conUuid::generate(). - Se asignan
padreymadre, y el grupo se persiste en base de datos. - Se recuperan los registros
Alumnoscorrespondientes al padre y a la madre y se actualiza el campouuid_grupo_familiarde ambos con el UUID recién generado.
uuid presente):
- Se recupera el grupo existente por UUID.
- Se reemplazan los valores de
padreymadrey se guarda. - Los campos
uuid_grupo_familiarde los alumnos no se modifican en la actualización.
Editar un grupo familiar
UUID del grupo familiar a editar.
table contiene el HTML de las filas <tr> de la tabla de hijos, donde cada fila muestra id, nombres, apellidos, dni, fecha_nacimiento, sexo y un icono de eliminación con el data-id del hijo.
Gestionar hijos
Añadir un hijo
hijos y lo anexa al campo hijos del grupo familiar mediante $grupo->hijos = $grupo->hijos.'|'.$hijo->id.
Nombre(s) del hijo. Se almacena en
hijos.nombres.Apellidos del hijo. Se almacena en
hijos.apellidos.Documento nacional de identidad del hijo. Se almacena en
hijos.dni.Fecha de nacimiento del hijo en formato
YYYY-MM-DD. Se almacena en hijos.fecha_nacimiento.Sexo del hijo. Valores esperados:
H (Hombre) o M (Mujer). Se almacena en hijos.sexo.UUID del grupo familiar al que se añade el hijo. Se usa para localizar el grupo y actualizar su campo
hijos.Eliminar un hijo
hijos y retira su ID de la cadena hijos del grupo usando str_replace('|'.$idHijo, '', $hijos).
ID del registro en la tabla
hijos que se desea eliminar.UUID del grupo familiar del que se desvincula al hijo.
Eliminar un grupo familiar
UUID del grupo familiar a eliminar.
grupos_familiares que coincide con el UUID proporcionado mediante GruposFamiliares::where('uuid', $request->uuid)->delete().
Respuesta exitosa: