inventario de materiales - ManuelJDonoso/Proyecto_daw GitHub Wiki
Inventario de Materiales
Propósito y Alcance
Este documento detalla el sistema de Inventario de Materiales en la aplicación Crónicas de Mérida, que permite a los usuarios ver los materiales disponibles y a los administradores gestionar el catálogo de materiales. El sistema se centra en el seguimiento de artículos físicos que pueden ser prestados por los usuarios. Este documento cubre cómo se almacenan, categorizan y muestran los materiales en el sistema.
Para información sobre el proceso de préstamo y devolución de materiales, consulta Préstamos de Materiales. Para información sobre cómo agregar o eliminar materiales del inventario, consulta Administración de Materiales.
Visión General del Sistema
El sistema de Inventario de Materiales proporciona un catálogo centralizado de todos los artículos físicos (como juegos de mesa, libros, etc.) disponibles a través de la plataforma Crónicas de Mérida. Mantiene información sobre cada tipo de material, cuántas unidades están disponibles y detalles como descripciones y recomendaciones de edad.
Estructura de la Base de Datos
El sistema de Inventario de Materiales se basa en una estructura de base de datos relacional que separa las definiciones de materiales de las unidades individuales, permitiendo rastrear múltiples unidades del mismo material de forma independiente.
Tablas y Vistas Clave
Entidad de la Base de Datos | Descripción | Campos Principales |
---|---|---|
material |
Contiene definiciones de materiales (por ejemplo, "Juego de Mesa Catan") | id, nombre, descripcion, edad_recomendada, tipo_id |
tipo_material |
Contiene categorías de tipos de materiales | id, nombre |
unidad_material |
Rastrea unidades individuales de materiales con su estado actual | id, material_id, estado, comentario |
vista_material_disponible_cantidad |
Vista de base de datos que agrega materiales disponibles con sus cantidades | material, tipo, descripcion, edad_recomendada, cantidad_disponible |
Visualización de Materiales Disponibles
El sistema proporciona una interfaz de usuario para ver todos los materiales actualmente disponibles a través de una tabla.
Implementación de la Lista de Materiales
La página de lista de materiales recupera datos de la vista de base de datos vista_material_disponible_cantidad
, que agrega datos de múltiples tablas para mostrar:
- Nombre del material
- Tipo de material
- Descripción
- Edad recomendada
- Cantidad disponible (número de unidades en estado "disponible")
La vista maneja dos escenarios:
- Cuando hay materiales disponibles: los muestra en una tabla
- Cuando no hay materiales disponibles: muestra un mensaje "No hay material disponible"
Interfaz de Usuario de Visualización de Materiales
La lista de materiales se presenta como una tabla HTML con las siguientes características:
- La tabla tiene una fila de encabezado clara con nombres de columnas
- Cada material se muestra en su propia fila
- Todo el texto está debidamente escapado con
htmlspecialchars()
para prevenir ataques XSS - Se utiliza la convención de nomenclatura CSS BEM (Block Element Modifier) para el estilo (por ejemplo,
material-list__table
,material-list__cell
)
Categorización de Materiales
Los materiales se categorizan utilizando la tabla tipo_material
, que asigna cada material a una categoría o tipo específico.
Tipos de Material
El sistema permite a los administradores categorizar los materiales por tipo, lo que ayuda con la organización y el filtrado. Los tipos de materiales se almacenan en la tabla tipo_material
y son referenciados por la tabla material
a través de la clave foránea tipo_id
.
Al agregar nuevos materiales, los administradores seleccionan el tipo apropiado de una lista desplegable poblada desde la tabla tipo_material
.
Flujo de datos
El flujo de datos general para el inventario de materiales implica operaciones de lectura (visualización de materiales disponibles) y operaciones de escritura (adición de nuevos materiales).