Administrar productos (catálogo general)

Formulario para gestionar el catálogo de productos que utilizan todos los módulos: almacén, ventas y compras. Permite trabajar con una estructura jerárquica de hasta 4 niveles (familia → grupo → categoría → producto), definir códigos alternos, lotes y múltiples precios. Incluye búsqueda en línea, alta/edición mediante el formulario detallado de producto y refresco rápido de la lista. Una vez exista movimiento de inventario, la configuración de niveles de producto ya no podrá cambiarse.


📘 Propósito

El formulario Administrar productos muestra en forma de lista todos los productos y categorías definidos para la empresa. Desde aquí se administran los ítems usados por:

  • Almacén: notas de entrada, salida, traspasos, inventarios.
  • Ventas: pedido de venta, nota de venta, facturación.
  • Compras: pedidos de compra, notas de entrada, costos.

Es el catálogo maestro del sistema: cualquier cambio realizado aquí impactará en todos los módulos que utilicen el producto.

🏷️ Estructura por niveles (familia–grupo–categoría–producto)

Según la configuración de la empresa, el catálogo puede manejar hasta 4 niveles jerárquicos:

  1. Familia (nivel 1).
  2. Grupo (nivel 2).
  3. Categoría (nivel 3).
  4. Producto (nivel 4 – ítem final con stock y precios).

Ejemplos de configuraciones posibles:

  • 4 niveles: Familia → Grupo → Categoría → Producto.
  • 3 niveles: Grupo → Categoría → Producto.
  • 2 niveles: Categoría → Producto.
  • 1 nivel: solo producto (sin categorías).

Los registros que representan niveles superiores (familia, grupo, categoría) suelen tener solo código y descripción (por ejemplo “SECCIÓN FARMACIA”, “LABORATORIO X”), sin precios ni stock, mientras que los productos finales tienen precios y se utilizan en movimientos de almacén y ventas.

Importante: una vez que se hayan registrado movimientos en almacén (entradas, salidas, etc.), la configuración de niveles quedará congelada y ya no podrá cambiarse. Esto evita inconsistencias entre la estructura y los historiales de stock.

🧾 Lista de productos

La grilla central productosLista muestra los registros de la tabla almitem de la empresa actual. Algunas columnas típicas:

Columna Descripción
Acciones Incluye enlaces como Cambiar y Eliminar para editar o eliminar el registro seleccionado.
Código Código principal del producto o categoría. Se usa en la mayoría de los formularios de movimientos.
Código b Código alterno: puede ser código de proveedor, código corto o código de barras. La lista ordena por este código cuando está disponible.
Lote Solo se utiliza cuando el ítem maneja lotes. En la lista se muestra el lote base (si aplica).
Descripción Nombre descriptivo del producto, familia, grupo o categoría.
Precio 1, Precio 2, … Precios configurables (minorista, mayorista, distribuidor, etc.). Los nombres o usos dependen de la parametrización de ventas.

Nota: Si la empresa maneja más campos (impuestos, unidades, códigos externos, etc.), estos se gestionan en el formulario detallado de producto (ProductosAdd), no directamente en esta vista.

🧭 Barra de comandos

  • Agregar producto:
    • Abre el formulario ProductosAdd en modo alta (acFormAdd) para crear un nuevo producto, grupo o categoría.
    • Si el servicio en la nube alcanzó su límite (testNubeLim = True), se bloquea la creación y se muestra el aviso correspondiente.
    • Al cerrar la ventana de edición, la lista se recarga automáticamente para mostrar el nuevo registro.
  • Actualizar: recarga el origen de datos de la lista y aplica nuevamente filtros o cambios de tamaño (similar a un “Refrescar todo”).
  • Cerrar: guarda automáticamente los cambios pendientes en el formulario (si los hay) y cierra la ventana de administración.
  • Ayuda: abre la ayuda en línea en el navegador (help_lista_productos.php) con una descripción detallada del uso del catálogo.

🔍 Búsqueda de productos

El cuadro Buscar: permite filtrar la lista en tiempo real mientras se escribe. Internamente se ejecuta una consulta sobre la tabla almitem:

  • Se buscan coincidencias en Código, Código b y Descripción usando comodines (LIKE '*texto*').
  • Solo se muestran los productos de la empresa actual (según ParElegirEmp.Empresa).
  • Los resultados se ordenan por código alterno (o código principal si no hay alterno) y por lote.

Para volver a ver toda la lista, borre el texto del buscador o utilice el botón Actualizar.

✏️ Edición rápida desde la lista

  • Cambiar (en la columna Acciones) abre el producto seleccionado en el formulario ProductosAdd en modo edición, permitiendo ajustar descripción, códigos, precios, impuestos, unidad, niveles, etc.
  • Eliminar intentará borrar el producto. Si el ítem ya fue usado en movimientos de inventario o documentos de ventas/compras, el sistema puede bloquear la eliminación para preservar la integridad histórica.
  • Para crear nuevas familias, grupos o categorías, use también Agregar producto y configure el nivel correspondiente en ProductosAdd.

🧱 Flujo sugerido

  1. Defina primero la configuración de niveles de la empresa (1–4 niveles: familia, grupo, categoría, producto).
  2. Desde Administrar productos, use Agregar producto para crear las familias principales (ej. “SECCIÓN FARMACIA”, “REPUESTOS”).
  3. Cree los grupos y categorías que correspondan a cada familia (marcas, líneas, sublíneas).
  4. Finalmente agregue los productos finales, definiendo códigos, descripciones, unidad de medida y precios.
  5. Utilice el buscador para localizar rápidamente productos por código, descripción o código alterno y haga clic en Cambiar para corregir datos cuando sea necesario.
  6. Una vez haya movimientos en almacén, evite cambios estructurales (pasar un producto a categoría, cambiar jerarquías, etc.) para mantener íntegros los reportes históricos.

⚠️ Reglas y consideraciones

  • La estructura de niveles (1 a 4 niveles) debe definirse con cuidado antes de empezar a usar el módulo de inventario; después de que existan movimientos, el sistema ya no permitirá cambiarla.
  • Los productos creados en este catálogo son compartidos por todos los módulos; por lo tanto, cualquier cambio afecta a ventas, compras e inventario.
  • El sistema puede tener restricciones adicionales (límite de registros en nube, permisos de usuario, etc.) que bloqueen la creación o eliminación de productos según la configuración de la empresa.