Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/LVHJ-8/Proyecto_mecanica/llms.txt

Use this file to discover all available pages before exploring further.

El módulo de trabajadores permite registrar y administrar todo el personal del taller: mecánicos, electricistas, técnicos especializados y personal de servicio al cliente. Cada trabajador queda vinculado a un cargo que define su rol técnico dentro de la organización. Los cargos se gestionan desde el mismo panel a través de un modal, lo que evita tener que navegar a una sección separada. Este módulo es el punto de partida para organizar al equipo antes de asignar responsabilidades o turnos de atención.

Acceso y protección

La página se encuentra en ADMIN/trabajadores/CRUDTrabajadores.php. El acceso está restringido por sesión: cualquier usuario cuyo $_SESSION['rol'] sea distinto de admin es redirigido antes de que se renderice cualquier contenido.

Interfaz principal

La página se organiza en dos pestañas y un modal de gestión:
  • Lista de Trabajadores — tabla con todos los registros actuales.
  • Nuevo Trabajador — formulario de alta de personal.
  • Gestionar Cargos — botón en la esquina superior derecha de las pestañas que abre un modal sin recargar la página.

Lista de trabajadores

La tabla muestra el personal registrado en orden descendente por ID, junto con su cargo resuelto mediante un LEFT JOIN con la tabla cargos.
SELECT t.*, c.nombre_cargo
FROM trabajadores t
LEFT JOIN cargos c ON t.cargo_id = c.id
ORDER BY t.id DESC;
ColumnaFuenteDescripción
IDtrabajadores.idIdentificador único autoincremental
DNItrabajadores.dniDocumento de identidad (máx. 15 caracteres)
Nombre Completonombre + apellidoNombre y apellido concatenados
Cargo / Especialidadcargos.nombre_cargoRol técnico asignado
Teléfonotrabajadores.telefonoNúmero de contacto directo
AccionesBotones para editar o eliminar

Acciones disponibles

  • Editar → redirige a editar_trabajador.php?id=X para modificar los datos del trabajador.
  • Eliminar → redirige a eliminar_trabajador.php?id=X con confirmación en JavaScript antes de ejecutar la eliminación permanente.

Registrar un nuevo trabajador

El formulario de alta usa POST con action = 'guardar_trabajador'. Todos los campos son obligatorios. El campo activo se establece en 1 automáticamente al crear el registro.
nombre
string
required
Nombre de pila del trabajador.
apellido
string
required
Apellido del trabajador.
dni
string
required
Documento de identidad. Acepta hasta 15 caracteres para admitir distintos formatos nacionales.
telefono
string
required
Número de teléfono de contacto directo del trabajador.
cargo_id
integer
required
Clave foránea hacia la tabla cargos. Se presenta como un selector desplegable poblado con los cargos existentes. Debe existir al menos un cargo antes de poder registrar trabajadores.
Al confirmar el formulario, el sistema ejecuta la siguiente inserción en la base de datos:
INSERT INTO trabajadores (cargo_id, nombre, apellido, telefono, dni, activo)
VALUES (?, ?, ?, ?, ?, ?);
El valor de activo se envía siempre como 1 desde el código; no existe un campo visible para ese parámetro en el formulario.
El campo activo en la tabla trabajadores se fija en 1 al crear cualquier registro. Para desactivar temporalmente a un trabajador sin eliminar su historial, puedes actualizar ese valor a 0 directamente en la base de datos. El registro se conserva pero puede filtrarse en consultas que solo traigan personal activo.

Gestionar cargos

Los cargos (o especialidades) definen el rol técnico de cada trabajador. Se administran desde el modal Gestionar Cargos, que se abre en la misma página sin recarga. Los cargos disponibles aparecen también en el selector del formulario de nuevo trabajador. Ejemplos de cargos típicos en un taller mecánico:
  • Mecánico General
  • Electricista Automotriz
  • Técnico de Frenos
  • Asesor de Servicio

Crear un cargo

El formulario usa POST con action = 'guardar_cargo' e inserta el registro en la tabla cargos:
nombre_cargo
string
required
Nombre del cargo o especialidad, por ejemplo Mecánico General o Electricista Automotriz.
descripcion
string
Descripción opcional del cargo: responsabilidades, alcance técnico o cualquier observación relevante.
-- Create a new cargo
INSERT INTO cargos (nombre_cargo, descripcion) VALUES (?, ?);

Eliminar un cargo

El formulario de eliminación usa POST con action = 'eliminar_cargo' e intenta borrar el registro por ID:
-- Delete cargo (fails if workers assigned)
DELETE FROM cargos WHERE id = ?;
Intentar eliminar un cargo que todavía tiene trabajadores asignados producirá un error de clave foránea en la base de datos. Antes de eliminar un cargo, reasigna a los trabajadores que lo tengan asignado a otro cargo, o bien elimina sus registros si ya no forman parte del equipo.

Estructura de tablas

La relación entre trabajadores y cargos se resuelve con una clave foránea directa: cargos
CampoTipoDescripción
idint, PKIdentificador del cargo
nombre_cargovarcharNombre del cargo o especialidad
descripcionvarcharDescripción del cargo
trabajadores
CampoTipoDescripción
idint, PKIdentificador del trabajador
cargo_idint, FK → cargos.idCargo asignado
nombrevarcharNombre de pila
apellidovarcharApellido
dnivarchar(15)Documento de identidad
telefonovarcharTeléfono de contacto
activotinyint1 activo, 0 inactivo

Build docs developers (and LLMs) love