administracion de materiales - ManuelJDonoso/Proyecto_daw GitHub Wiki

Administración de Materiales

Propósito y Alcance

Este documento detalla las funciones de administración para agregar nuevos materiales al inventario y eliminar materiales existentes del sistema. La administración de materiales es accesible para usuarios con privilegios de administrador y proporciona un proceso simplificado para mantener el catálogo de materiales.

Para información sobre el proceso de préstamo de materiales, consulta Préstamos de Materiales. Para detalles sobre cómo se categorizan y muestran los materiales, consulta Inventario de Materiales.

Visión General de la Administración de Materiales

El sistema de Administración de Materiales consta de dos funciones principales:

  1. Agregar nuevos materiales: Crear nuevas entradas de materiales y unidades en el inventario.
  2. Eliminar materiales: Marcar unidades de materiales existentes como no disponibles.

imagen

Estructura de la Base de Datos

imagen

La administración de materiales interactúa con varias tablas clave en la base de datos:

  • material: Contiene definiciones de materiales (por ejemplo, "Juego de Mesa Catan").
  • tipo_material: Contiene categorías de tipos de materiales.
  • unidad_material: Rastrea unidades individuales de materiales con su estado actual.

Agregar Nuevos Materiales

Los administradores pueden agregar nuevos materiales a través de una interfaz de formulario. El sistema primero verifica si el material ya existe en el catálogo y, si no es así, crea una nueva entrada. Luego, crea una nueva unidad para ese material con un estado de "disponible".

Flujo del Proceso

  1. Verificación de existencia: El sistema comprueba si el material ya existe.
  2. Creación de entrada: Si no existe, se crea una nueva entrada en la tabla material.
  3. Creación de unidad: Se añade una nueva unidad en la tabla unidad_material con estado "disponible".

imagen

Componentes de la Interfaz de Usuario

La interfaz para agregar materiales consta de un formulario y una tabla de materiales existentes:

  1. Formulario de Entrada de Material:

    • Campo de nombre: Obligatorio, identifica el material.
    • Selección de tipo: Menú desplegable de la tabla tipo_material.
    • Descripción: Área de texto para una descripción detallada.
    • Comentarios: Notas adicionales sobre la unidad específica.
    • Edad recomendada: Clasificación de edad para el material.
    • Botón de envío: Procesa el formulario.
  2. Tabla de Materiales:

    • Muestra materiales existentes para referencia.
    • Al hacer clic en una fila, se completa el formulario con los datos de ese material.
    • La tabla se muestra solo cuando se está completando el campo de nombre y existen coincidencias.

Eliminar Materiales del Inventario

El sistema de eliminación de materiales no elimina permanentemente los materiales de la base de datos. En su lugar, marca las unidades como "No disponible" y registra la fecha de eliminación.

Flujo del Proceso

  1. Selección de unidad: El administrador selecciona la unidad de material a eliminar.
  2. Confirmación: Se muestra un diálogo de confirmación antes de proceder.
  3. Actualización de estado: El estado de la unidad se cambia a "No disponible" y se registra la fecha de eliminación.

imagen

Componentes de la Interfaz de Usuario

La interfaz para eliminar materiales incluye opciones de filtrado y una tabla de materiales disponibles:

  1. Sección de Filtro:

    • Filtro por ID: Buscar material por ID.
    • Filtro por nombre: Buscar material por nombre.
    • Filtro por tipo: Filtrar por tipo de material.
  2. Tabla de Materiales:

    • Muestra todos los materiales disponibles con sus detalles.
    • Cada fila incluye:
      • ID
      • Nombre
      • Estado
      • Tipo de material
      • Comentarios
      • Fecha de creación
      • Botón "Baja" (Eliminar)
  3. Diálogo de Confirmación:

    • Aparece cuando se hace clic en el botón de eliminación.
    • Requiere confirmación antes de proceder con la eliminación.

Implementación del Código

Estructura del Controlador

Ambos controladores de administración siguen un patrón similar:

  1. Manejar envíos de formularios (solicitudes POST).
  2. Realizar operaciones en la base de datos.
  3. Obtener los datos necesarios para la vista.
  4. Incluir JavaScript para mejorar la funcionalidad del frontend.