Descripción
El módulo de Inventario permite a los centros médicos gestionar el stock de productos médicos, materiales, medicamentos y consumibles. Es una herramienta completa para el control de almacenes que incluye la gestión de productos, movimientos de inventario, proveedores y pedidos de compra. El sistema permite registrar entradas y salidas de productos, realizar ajustes de inventario, gestionar múltiples almacenes, realizar pedidos a proveedores, y llevar un control exacto de las existencias y su valoración económica. Es especialmente útil para clínicas que utilizan productos costosos como Botox, implantes, material quirúrgico, o cualquier centro que necesite un control riguroso de su stock.Usuarios Objetivo
- Administradores del centro: Supervisión general del inventario y análisis económico
- Personal de almacén: Registro de entradas, salidas y movimientos diarios
- Personal de compras: Gestión de proveedores y pedidos
- Profesionales médicos: Consulta de disponibilidad de productos
- Dirección: Análisis de valoración de inventario y costes
1. Registrar entrada de material (recepción de pedido)
- Actor: Personal de almacén
- Objetivo: Registrar la llegada de productos pedidos a un proveedor
- Precondiciones: Existe un pedido de compra en estado “Enviado”
- Pasos:
- Acceder a Pedidos de compra
- Localizar el pedido recibido
- Hacer clic en “Recibir”
- Indicar cantidades recibidas (pueden ser parciales)
- Confirmar recepción
- Sistema actualiza existencias automáticamente
- Resultado: Stock actualizado con las unidades recibidas, pedido marcado como “Recibido” o “Recepción parcial”
2. Registrar salida de productos (consumo)
- Actor: Personal médico o de almacén
- Objetivo: Descontar del inventario los productos utilizados en tratamientos
- Precondiciones: Productos dados de alta en el sistema con stock disponible
- Pasos:
- Acceder a Buscar productos
- Seleccionar el producto consumido
- Hacer clic en “Descontar inventario”
- Indicar cantidad, almacén y motivo
- Guardar movimiento
- Resultado: Stock reducido, movimiento registrado en historial
3. Crear pedido de compra a proveedor
- Actor: Personal de compras
- Objetivo: Solicitar reposición de productos con stock bajo
- Precondiciones: Proveedor dado de alta en el sistema
- Pasos:
- Acceder a Pedidos de compra
- Crear nuevo pedido
- Seleccionar proveedor y almacén destino
- Añadir líneas de productos con cantidades
- Guardar como borrador o enviar directamente
- Opcionalmente: Imprimir y enviar al proveedor
- Resultado: Pedido registrado, pendiente de recepción
Opciones del Menú
Opción 1: Resumen
- Función JavaScript:
openInventory() - Descripción: Dashboard con resumen visual del inventario (en desarrollo/vacío en versión actual)
- Privilegios:
STORE_VIEW
Opción 2: Buscar productos
- Función JavaScript:
openSearchInventory() - Descripción: Búsqueda y gestión de productos facturables (Serviceoffer) con control de stock
- Privilegios:
STORE_VIEW
Opción 3: Buscar movimientos
- Función JavaScript:
openSearchStoremoves() - Descripción: Historial completo de movimientos de inventario (entradas, salidas, ajustes)
- Privilegios:
STORE_VIEW
Opción 4: Proveedores
- Función JavaScript:
openSearchSuppliers() - Descripción: Gestión del catálogo de proveedores (empresas que suministran productos)
- Privilegios:
SUPPLIER_VIEW
Opción 5: Pedidos de compra
- Función JavaScript:
openSearchPurchaseorders() - Descripción: Gestión completa del ciclo de pedidos a proveedores
- Privilegios:
PURCHASEORDER_VIEW
Opción 6: Transferencias
- Función JavaScript:
openSearchTransfers()(si está implementado) - Descripción: Transferencias de productos entre almacenes del mismo centro
- Privilegios:
STORE_VIEW
Pantalla 1: Buscar Productos
Función de acceso:openSearchInventory()
Descripción
Interfaz principal para buscar y gestionar productos con control de inventario. Muestra una tabla con todos los productos facturables que tienen gestión de stock habilitada.Secciones de la Pantalla
1. Encabezado- Título: “BUSCAR FACTURABLES”
- Nombre: Buscar por nombre del producto
- Descripción: Buscar por descripción
- Código: Código interno del producto
- Código externo: Código de proveedor o código de barras
- Botones: Buscar, Limpiar filtros
- Nombre: Nombre comercial del producto
- Descripción: Descripción detallada
- Tipo de IVA: Categoría fiscal (General 21%, Reducido 10%, Exento, etc.)
- Centro(s): Centro médico al que pertenece
- activa: Si el producto está activo (Sí/No)
- código: Código interno
- código ext.: Código externo
- cantidad: Stock actual desglosado por almacén (ej: “37 en Almacén Principal, -1 en Almacén Secundario”)
- precio prov: Precio de coste del proveedor
- total: Valoración total del stock (cantidad × precio proveedor)
- TOTAL: Suma de cantidades y valoración total del inventario
- Selector de registros por página (10/50/200)
- Navegación entre páginas
- Contador de registros
- Nuevo: Crear nuevo producto
- Modificar: Editar producto seleccionado
- Borrar: Eliminar producto
- Importar: Importación masiva de productos
- Añadir inventario: Registrar entrada de stock manualmente
- Añadir inventario CB (icono código de barras): Entrada usando lector de código de barras
- Descontar inventario: Registrar salida/consumo de stock
- Descontar inventario CB (icono código de barras): Salida usando lector de código de barras
Acciones disponibles
- Buscar productos: Filtrar por criterios
- Gestionar entradas/salidas: Añadir o descontar inventario
- Ver stock por almacén: Consultar existencias detalladas
- Importación masiva: Cargar productos desde archivo
Pantalla 2: Buscar Movimientos
Función de acceso:openSearchStoremoves()
Descripción
Historial completo de todos los movimientos de inventario, permitiendo auditar y rastrear todas las operaciones realizadas.Secciones de la Pantalla
1. Encabezado- Título: “BUSCAR MOVIMIENTOS”
- Entre Fecha: Fecha inicio del rango de búsqueda (por defecto primer día del mes actual)
- y fecha: Fecha fin del rango
- Productos: Selector de producto específico (opcional)
- Almacenes: Selector de almacén específico (opcional)
- Botón “Buscar”
- Fecha: Fecha de creación del movimiento en sistema
- Fecha Movimiento: Fecha real del movimiento físico
- Almacén: Almacén afectado
- Producto: Producto movido
- Comentario: Descripción del motivo (ej: “Recepción de pedido PO-2025-00001”)
- Código: Código del producto
- Orden Compra: Número de pedido asociado (si aplica)
- Exis. antes: Stock antes del movimiento
- Cantidad: Cantidad movida (+ entrada, - salida)
- Exis. después: Stock resultante tras el movimiento
- Registros por página (25/50/100)
- Navegación entre páginas
- Ver detalle: Ver información completa del movimiento
- Deshacer: Revertir un movimiento (si está permitido)
Acciones disponibles
- Consultar historial: Ver todos los movimientos en un período
- Auditar stock: Verificar por qué cambió el stock de un producto
- Deshacer movimientos: Corregir errores (con restricciones)
Pantalla 3: Proveedores
Función de acceso:openSearchSuppliers()
Descripción
Gestión del catálogo de proveedores y empresas suministradoras de productos médicos.Nota: En el entorno de pruebas esta pantalla aparece vacía, pero en producción mostraría una tabla similar a otras pantallas de búsqueda con datos de proveedores (nombre, CIF, dirección, teléfono, email, etc.).
Funcionalidad esperada
- Búsqueda de proveedores por nombre, CIF, etc.
- Creación y edición de fichas de proveedor
- Gestión de datos de contacto y condiciones comerciales
- Asociación de productos a proveedores
Pantalla 4: Pedidos de Compra
Función de acceso:openSearchPurchaseorders()
Descripción
Gestión completa del ciclo de pedidos a proveedores, desde la creación hasta la recepción.Secciones de la Pantalla
1. Encabezado- Título: “BUSCAR PEDIDOS DE COMPRA”
- Nº Pedido: Número de pedido (formato PO-YYYY-NNNNN)
- Proveedor: Selector de proveedor
- Estado: Selector de estado (Todos/Borrador/Enviado/Recepción parcial/Recibido/Cancelado)
- Desde / Hasta: Rango de fechas
- Botón “Buscar”
- Nº Pedido: Identificador único (ej: PO-2025-00001)
- Fecha: Fecha de creación del pedido
- Proveedor: Nombre del proveedor
- Almacén: Almacén destino de la recepción
- Estado: Estado actual (Borrador, Enviado, Recepción parcial, Recibido, Cancelado)
- Total: Importe total del pedido
- Líneas: Número de productos diferentes en el pedido
- Registros por página (25/50/100)
- Navegación
- Nuevo pedido: Crear nuevo pedido de compra
- Ver/Editar: Consultar o modificar pedido (solo borradores)
- Enviar pedido: Marcar pedido como enviado al proveedor
- Recibir: Registrar recepción total o parcial
- Imprimir: Generar PDF del pedido
- Cancelar: Cancelar pedido no recibido
Estados del pedido
- Borrador: Pedido en proceso de creación, editable
- Enviado: Pedido confirmado y comunicado al proveedor
- Recepción parcial: Recibida solo parte de la mercancía
- Recibido: Pedido completamente recibido, stock actualizado
- Cancelado: Pedido anulado, no se recibirá
Pantalla 5: Transferencias
Función de acceso:openSearchTransfers()
Descripción
Gestión de transferencias de productos entre diferentes almacenes del mismo centro médico.Secciones de la Pantalla
1. Encabezado- Título: “BUSCAR TRANSFERENCIAS”
- Almacén origen: Selector de almacén de origen
- Almacén destino: Selector de almacén de destino
- Estado: Estado de la transferencia (Todos/Completada/Pendiente/Cancelada)
- Desde / Hasta: Rango de fechas
- Botón “Buscar”
- Fecha: Fecha de la transferencia
- Origen: Almacén origen
- Destino: Almacén destino
- Estado: Estado actual
- Líneas: Número de productos transferidos
- Ver detalle: Ver información completa de la transferencia
- Nueva: Crear nueva transferencia entre almacenes
Funcionalidad
Las transferencias permiten mover stock de un almacén a otro dentro del mismo centro, manteniendo la trazabilidad completa del movimiento.Formulario: Nuevo Producto / Editar Producto
Propósito: Crear o modificar un producto con control de inventario Ubicación: Diálogo modal al hacer clic en “Nuevo” o “Modificar”Nota: Este formulario es el mismo que el de Serviceoffer (productos facturables) pero con campos adicionales de inventario.
Campos del Formulario (específicos de inventario)
| Campo | Tipo | Obligatorio | Descripción | Validación |
|---|---|---|---|---|
| Gestión de inventario | checkbox | No | Activar control de stock para este producto | - |
| Código interno | text | No | Código interno del centro | Único |
| Código externo | text | No | Código de proveedor o código de barras | - |
| Precio proveedor | number | No | Coste de adquisición | Numérico, 2 decimales |
| Stock mínimo | number | No | Cantidad mínima antes de alertar | Numérico |
| Stock máximo | number | No | Cantidad máxima recomendada | Numérico |
Formulario: Añadir Inventario (Entrada de Stock)
Propósito: Registrar entrada manual de productos al inventario Ubicación: Diálogo modal al hacer clic en “Añadir inventario”Campos del Formulario
| Campo | Tipo | Obligatorio | Descripción | Validación |
|---|---|---|---|---|
| Producto | select | Sí | Producto a añadir | Debe estar seleccionado |
| Almacén | select | Sí | Almacén donde se añade | Debe existir |
| Cantidad | number | Sí | Unidades a añadir | ≥ 0 |
| Precio unitario | number | No | Coste por unidad (actualiza precio proveedor) | ≥ 0 |
| Fecha movimiento | date | Sí | Fecha real del movimiento | No futuro |
| Comentario | textarea | No | Motivo o referencia | Máx. 500 caracteres |
Botones y Acciones
-
Aceptar
- Función: Registra el movimiento de entrada
- Acción: Crea Storemove tipo entrada (+), actualiza stock
- Validaciones: Cantidad ≥ 0, almacén y producto seleccionados
-
Cancelar
- Función: Cierra sin guardar
- Acción: Descarta cambios
Formulario: Descontar Inventario (Salida de Stock)
Propósito: Registrar salida/consumo de productos del inventario Ubicación: Diálogo modal al hacer clic en “Descontar inventario”Campos del Formulario
| Campo | Tipo | Obligatorio | Descripción | Validación |
|---|---|---|---|---|
| Producto | select | Sí | Producto a descontar | Debe estar seleccionado |
| Almacén | select | Sí | Almacén del que se descuenta | Debe existir |
| Cantidad | number | Sí | Unidades a descontar | ≥ 0, ≤ stock actual |
| Fecha movimiento | date | Sí | Fecha real del consumo | No futuro |
| Paciente | select | No | Paciente al que se aplicó (opcional) | - |
| Comentario | textarea | No | Motivo del consumo | Máx. 500 caracteres |
Botones y Acciones
-
Aceptar
- Función: Registra el movimiento de salida
- Acción: Crea Storemove tipo salida (-), reduce stock
- Validaciones:
- Cantidad ≥ 0
- Cantidad ≤ stock disponible
- Almacén y producto seleccionados
-
Cancelar
- Función: Cierra sin guardar
- Acción: Descarta cambios
Formulario: Nuevo Pedido de Compra
Propósito: Crear un pedido de productos a un proveedor Ubicación: Diálogo/pantalla al hacer clic en “Nuevo pedido”Campos del Formulario (Cabecera)
| Campo | Tipo | Obligatorio | Descripción | Validación |
|---|---|---|---|---|
| Proveedor | select | Sí | Proveedor al que se realiza el pedido | Debe existir |
| Almacén destino | select | Sí | Almacén donde se recibirá | Debe existir |
| Fecha pedido | date | Sí | Fecha de creación | No futuro |
| Fecha entrega prevista | date | No | Fecha estimada de recepción | ≥ Fecha pedido |
| Notas | textarea | No | Observaciones del pedido | - |
Campos del Formulario (Líneas)
| Campo | Tipo | Obligatorio | Descripción | Validación |
|---|---|---|---|---|
| Producto | select | Sí | Producto a pedir | Debe existir |
| Cantidad | number | Sí | Unidades solicitadas | ≥ 0 |
| Precio unitario | number | No | Precio acordado con proveedor | ≥ 0 |
| Subtotal | number | Calculado | Cantidad × Precio unitario | Auto |
Botones y Acciones
- Añadir línea: Añade un producto al pedido
- Eliminar línea: Quita un producto
- Guardar como borrador: Guarda sin enviar
- Enviar pedido: Guarda y marca como “Enviado”
- Cancelar: Cierra sin guardar
Formulario: Recibir Pedido
Propósito: Registrar la recepción total o parcial de un pedido Ubicación: Diálogo al hacer clic en “Recibir” sobre un pedidoCampos del Formulario
Para cada línea del pedido:| Campo | Tipo | Obligatorio | Descripción | Validación |
|---|---|---|---|---|
| Producto | text | - | Nombre del producto (solo lectura) | - |
| Cantidad pedida | number | - | Cantidad original del pedido (solo lectura) | - |
| Cantidad recibida | number | Sí | Unidades efectivamente recibidas | ≥ 0, ≤ pendiente |
| Cantidad pendiente | number | - | Quedan por recibir (solo lectura) | Calculado |
Campos adicionales
| Campo | Tipo | Obligatorio | Descripción | Validación |
|---|---|---|---|---|
| Fecha recepción | date | Sí | Fecha real de llegada | No futuro |
| Albarán | text | No | Número de albarán del proveedor | - |
| Notas recepción | textarea | No | Observaciones | - |
Botones y Acciones
-
Confirmar recepción
- Función: Registra la recepción
- Acción:
- Crea Purchaseorderreception
- Genera Storemove de entrada por cada producto
- Actualiza stock de almacén
- Cambia estado del pedido a “Recibido” o “Recepción parcial”
- Validaciones: Al menos un producto con cantidad ≥ 0
-
Cancelar
- Función: Cierra sin registrar
- Acción: No modifica el pedido
Workflow 1: Ciclo Completo de Pedido de Compra
- Si recepción es parcial: Se puede recibir el resto en otra fecha
- Si hay diferencias: Se pueden anotar en comentarios de recepción
- Si pedido no llega: Se puede cancelar el pedido
- Error: “No se puede recibir más cantidad de la pedida”
- Causa: Cantidad recibida > cantidad pendiente
- Solución: Ajustar cantidad o crear nueva línea si viene producto extra
Workflow 2: Registro de Consumo de Material
- Si se usa lector de código de barras: Clic en botón CB y escanear código
- Si stock es insuficiente: Sistema alerta y no permite descontar
Workflow 3: Transferencia entre Almacenes
- Transferencias pendientes: Se puede crear como pendiente y completar después
- Cancelación: Se puede cancelar antes de completar
Workflow 4: Ajuste Manual de Inventario (Corrección)
Integraciones
Con Módulo Facturación:- Los productos con inventario pueden facturarse a pacientes
- Al facturar un producto con gestión de stock, se puede descontar automáticamente
- Datos compartidos: Precio de venta, IVA, descripción del producto
- Los productos se crean en Administración → Servicios y Productos
- La configuración de almacenes se realiza en Administración → Almacenes
- Los permisos de inventario se configuran en Administración → Usuarios
- Los movimientos de inventario pueden asociarse a pacientes
- Permite rastrear qué productos se usaron con cada paciente
- Datos compartidos: Información del paciente para trazabilidad
- Se pueden generar informes de valoración de inventario
- Reportes de movimientos por período
- Análisis de productos más consumidos
Dependencias
Requiere:- Serviceoffer (Productos) - Deben existir productos dados de alta
- Store (Almacenes) - Debe haber al menos un almacén configurado
- Configuración de permisos - Usuario debe tener privilegios STORE_VIEW
- Facturación con control de stock
- Gestión de costes de tratamientos
Regla 1: Stock No Puede Ser Negativo (salvo configuración)
- Descripción: Por defecto, no se permite que el stock de un producto sea negativo
- Cuándo aplica: Al intentar descontar más unidades de las disponibles
- Efecto: Sistema bloquea la operación y muestra error
- Excepción: Puede configurarse para permitir stock negativo en ciertos almacenes
Regla 2: Movimientos Inmutables
- Descripción: Una vez creado, un movimiento de inventario no puede editarse
- Cuándo aplica: Siempre
- Efecto: Solo se permite deshacer (crear movimiento contrario) si está permitido
- Motivo: Garantizar trazabilidad y auditoría del inventario
Regla 3: Pedidos Enviados No Son Editables
- Descripción: Un pedido en estado “Enviado” o posterior no puede modificarse
- Cuándo aplica: Tras hacer clic en “Enviar pedido”
- Efecto: Solo se permiten acciones de recepción o cancelación
- Motivo: Mantener coherencia con lo comunicado al proveedor
Regla 4: Actualización Automática de Precio Proveedor
- Descripción: Al registrar una entrada con precio, se actualiza el precio de coste del producto
- Cuándo aplica: Al añadir inventario con precio unitario informado
- Efecto: El campo “precio proveedor” del producto se actualiza
- Motivo: Mantener precios actualizados para valoración de inventario
Regla 5: Aislamiento Multi-tenant de Inventario
- Descripción: Cada centro médico tiene su inventario completamente aislado
- Cuándo aplica: En todas las operaciones
- Efecto: No se puede ver ni mover stock entre diferentes clientes
- Motivo: Seguridad y privacidad de datos
Regla 6: Recepción Parcial Permitida
- Descripción: Se puede recibir un pedido en múltiples entregas
- Cuándo aplica: Al registrar recepción de pedido
- Efecto: El pedido queda en estado “Recepción parcial” hasta recibir todo
- Beneficio: Flexibilidad ante entregas escalonadas del proveedor
Mensajes de Éxito
- “Movimiento registrado correctamente”: Entrada o salida guardada
- “Pedido creado correctamente”: Nuevo pedido guardado
- “Recepción registrada con éxito”: Stock actualizado tras recibir pedido
- “Transferencia completada”: Productos movidos entre almacenes
Mensajes de Error
- “Stock insuficiente en almacén [nombre]”: Intento de descontar más de lo disponible
- “La cantidad recibida no puede superar la cantidad pendiente”: Error en recepción
- “Debe seleccionar un producto”: Campo obligatorio vacío
- “Debe seleccionar un almacén”: Campo obligatorio vacío
- “La cantidad debe ser mayor que cero”: Validación de cantidad
- “No se puede modificar un pedido en estado [estado]”: Pedido ya enviado/recibido
- “El producto no tiene gestión de inventario activada”: Intento de añadir stock a producto sin control
Mensajes de Advertencia
- “El stock quedará en [X] unidades, por debajo del mínimo configurado”: Alerta de stock bajo
- “Esta acción generará un movimiento que no se puede editar”: Confirmación antes de guardar
- “¿Desea marcar el pedido como enviado? No podrá editarlo después”: Confirmación de envío
Preguntas Frecuentes
Q: ¿Puedo tener varios almacenes en el mismo centro? A: Sí, el sistema permite crear múltiples almacenes (ej: Almacén Principal, Almacén Consulta 1, Almacén Quirófano). Cada producto puede tener stock diferente en cada almacén. Q: ¿Qué pasa si descontamos inventario y luego nos damos cuenta del error? A: Debes usar el botón “Deshacer” en la pantalla de Buscar movimientos, si está habilitado. Si no, puedes realizar un movimiento contrario manual (añadir la cantidad que restaste por error) y documentar el motivo en comentarios. Q: ¿Cómo importo productos masivamente? A: Usa el botón “Importar” en Buscar productos. El sistema te pedirá un archivo con formato específico (generalmente Excel o CSV) con las columnas necesarias: nombre, código, precio, etc. Q: ¿El sistema me avisa cuando un producto está bajo de stock? A: Sí, si has configurado el “Stock mínimo” en la ficha del producto. El sistema puede mostrar alertas visuales o enviarte notificaciones (según configuración). Q: ¿Puedo hacer un pedido sin tener el proveedor dado de alta? A: No, primero debes crear el proveedor en la opción “Proveedores” del menú Inventario. Q: ¿El precio de venta al paciente y el precio proveedor son diferentes? A: Sí. El precio proveedor es tu coste de compra. El precio de venta se configura en la ficha del producto como Serviceoffer (módulo Administración) y es lo que facturas al paciente. Q: ¿Puedo ver el valor total de mi inventario? A: Sí, en la pantalla “Buscar productos” hay un totalizador que suma la valoración de todo el stock (cantidad × precio proveedor). Q: ¿Cómo funcionan los códigos de barras? A: Si tienes un lector de código de barras configurado, puedes usar los botones con icono CB para escanear productos rápidamente al añadir o descontar inventario. Q: ¿Se puede cancelar un pedido ya recibido? A: No. Una vez recibido total o parcialmente, el pedido no se puede cancelar porque ya afectó al stock. Deberías hacer una devolución manual si es necesario. Q: ¿Las transferencias entre almacenes afectan a la valoración total? A: No. Las transferencias solo mueven productos de un sitio a otro dentro del mismo centro. La cantidad total y valoración global no cambian. Q: ¿Puedo facturar productos sin descont descont de inventario? A: Sí. Al crear una factura, puedes elegir si descontar automáticamente del stock o no. Es útil cuando el descuento ya se hizo previamente.Búsqueda en Productos
| Campo | Tipo | Operador | Descripción |
|---|---|---|---|
| Nombre | text | LIKE | Busca en nombre del producto (parcial) |
| Descripción | text | LIKE | Busca en descripción (parcial) |
| Código | text | EQUALS | Busca por código interno exacto |
| Código externo | text | EQUALS | Busca por código de proveedor/barras exacto |
Búsqueda en Movimientos
| Campo | Tipo | Operador | Descripción |
|---|---|---|---|
| Fecha inicio | date | ≥ | Movimientos desde esta fecha |
| Fecha fin | date | ≤ | Movimientos hasta esta fecha |
| Producto | select | EQUALS | Movimientos de un producto específico |
| Almacén | select | EQUALS | Movimientos en un almacén específico |
Búsqueda en Pedidos de Compra
| Campo | Tipo | Operador | Descripción |
|---|---|---|---|
| Nº Pedido | text | LIKE | Busca por número de pedido |
| Proveedor | select | EQUALS | Pedidos de un proveedor específico |
| Estado | select | EQUALS | Filtra por estado del pedido |
| Desde/Hasta | date | ≥ / ≤ | Rango de fechas de creación |
Estados de Pedido (código de colores típico)
- Borrador 🟡: Pedido en edición, aún no enviado
- Enviado 🔵: Pedido confirmado al proveedor
- Recepción parcial 🟠: Recibida parte de la mercancía
- Recibido 🟢: Pedido completamente recibido
- Cancelado 🔴: Pedido anulado
Estados de Transferencia
- Pendiente 🟡: Transferencia creada pero no completada
- Completada 🟢: Transferencia realizada, stock movido
- Cancelada 🔴: Transferencia anulada
Indicadores de Stock
- Stock positivo: Texto negro normal
- Stock bajo (< mínimo): Texto naranja/amarillo con icono de alerta ⚠️
- Sin stock (0): Texto rojo con icono ❌
- Stock negativo: Texto rojo con signo menos destacado
Iconos Principales
- 📦 Cubes - Módulo Inventario
- 📊 Book - Resumen
- 🔍 Search - Buscar productos/movimientos
- 🚚 Truck - Proveedores
- 📄 File-text - Pedidos de compra
- 🔄 Exchange - Transferencias
- ➕ Plus - Añadir inventario
- ➖ Minus - Descontar inventario
- 📱 Barcode - Lector código de barras
- ✏️ Edit - Modificar
- 🗑️ Trash - Eliminar
- 📥 Download - Importar
- 🖨️ Print - Imprimir
Niveles de Acceso
| Privilegio | Permite |
|---|---|
STORE_VIEW | Ver inventario, productos, movimientos, transferencias |
STORE_MANAGE | Añadir/descontar inventario, crear transferencias, ajustes |
SUPPLIER_VIEW | Ver proveedores |
SUPPLIER_MANAGE | Crear, modificar, eliminar proveedores |
PURCHASEORDER_VIEW | Ver pedidos de compra |
PURCHASEORDER_MANAGE | Crear, enviar, recibir, cancelar pedidos |
Restricciones
- Solo usuarios con
STORE_VIEWpueden acceder al módulo - No se puede editar stock directamente (solo vía movimientos)
- Movimientos de recepción de pedidos solo los puede crear el sistema
- Los almacenes están aislados por centro médico (multi-tenant)
- No se pueden eliminar movimientos, solo deshacer (si está habilitado)
Exportaciones Disponibles
- Exportar productos a Excel: Lista completa de productos con stock actual
- Exportar movimientos: Historial de movimientos en período seleccionado
- Imprimir pedido de compra: PDF del pedido para enviar a proveedor
- Valoración de inventario: Informe del valor total del stock
Informes Típicos (vía módulo Listados)
- Stock actual por almacén: Existencias de cada producto por ubicación
- Productos con stock bajo: Alerta de productos bajo mínimo
- Movimientos por producto: Historial de un producto específico
- Consumo por período: Productos más utilizados en un rango de fechas
- Pedidos pendientes de recibir: Seguimiento de pedidos en tránsito
- Valoración de inventario: Valor económico del stock actual
Configuración de Almacenes
Ubicación: Administración → Almacenes Cada almacén puede configurar:- Nombre y descripción
- Ubicación física (dirección, planta, sala)
- Permitir stock negativo: Si activado, permite descuentos aunque no haya existencias
- Almacén predeterminado: Marcar cuál es el almacén principal
Configuración de Productos con Inventario
Ubicación: Administración → Servicios y Productos → Editar producto Campos específicos de inventario:- Gestionar inventario: Checkbox para activar control de stock
- Código interno: Código del centro
- Código externo: Código de proveedor o código de barras
- Precio proveedor: Coste de adquisición
- Stock mínimo/máximo: Umbrales de alerta
Numeración de Pedidos
Los pedidos se numeran automáticamente con el formato:PO-YYYY-NNNNN- Ejemplo:
PO-2025-00001 - YYYY = año actual
- NNNNN = secuencial por año
Tutorial 1: Dar de Alta un Producto con Inventario
Objetivo: Crear un producto médico con control de stock Tiempo estimado: 5 minutos Pasos:-
Ir a Administración → Servicios y Productos
- Clic en menú “Administración”
- Seleccionar “Servicios y Productos”
-
Crear nuevo producto
- Clic en botón “Nuevo”
- Completar datos básicos:
- Nombre:
Botox Allergan 100U - Descripción:
Toxina botulínica tipo A - Precio venta:
450.00€ - IVA:
General (21%)
- Nombre:
-
Activar gestión de inventario
- Marcar checkbox “Gestionar inventario”
- Código interno:
BOT-ALL-100 - Código externo:
5012345678901(código de barras) - Precio proveedor:
100.00€ - Stock mínimo:
5 - Stock máximo:
20
-
Guardar producto
- Clic en “Aceptar”
- El producto ya está listo para gestión de stock
Tutorial 2: Realizar un Pedido y Recepción Completa
Objetivo: Pedir productos a proveedor y registrar su llegada Tiempo estimado: 10 minutos Pasos: Parte 1: Crear el pedido-
Ir a Inventario → Pedidos de compra
- Clic en botón “Nuevo pedido”
-
Completar cabecera del pedido
- Proveedor: Seleccionar
Allergan España - Almacén destino:
Almacén Principal - Fecha pedido: (automática, hoy)
- Fecha entrega prevista:
+7 días
- Proveedor: Seleccionar
-
Añadir productos
- Clic en “Añadir línea”
- Producto:
Botox Allergan 100U - Cantidad:
10 - Precio unitario:
100.00€ - (Subtotal se calcula automáticamente: 1,000.00 €)
-
Guardar y enviar
- Opción A: “Guardar como borrador” (si necesitas revisar después)
- Opción B: “Enviar pedido” (si ya está listo)
- El pedido queda con número
PO-2025-00001y estado “Enviado”
-
Cuando llega la mercancía
- Ir a Inventario → Pedidos de compra
- Localizar el pedido
PO-2025-00001 - Verificar estado: “Enviado”
-
Registrar recepción
- Seleccionar el pedido (checkbox)
- Clic en botón “Recibir”
- Sistema muestra diálogo con líneas del pedido
-
Indicar cantidades recibidas
- Botox Allergan 100U:
- Cantidad pedida: 10 (solo lectura)
- Cantidad recibida:
10(todo recibido)
- Fecha recepción: (automática, hoy)
- Albarán:
ALB-2025-123(número del proveedor)
- Botox Allergan 100U:
-
Confirmar recepción
- Clic en “Confirmar recepción”
- Sistema:
- Crea movimiento de entrada: +10 en Almacén Principal
- Actualiza stock de Botox a 10 unidades
- Marca pedido como “Recibido”
-
Verificar
- Ir a Buscar productos
- Buscar “Botox Allergan”
- Verificar columna “cantidad”: debe mostrar “10 en Almacén Principal”
Tutorial 3: Registrar Consumo de Productos en Tratamiento
Objetivo: Descontar del stock un producto usado con un paciente Tiempo estimado: 3 minutos Pasos:-
Tras realizar el tratamiento
- El médico ha aplicado 1 vial de Botox al paciente Juan Pérez
-
Acceder al inventario
- Ir a Inventario → Buscar productos
-
Localizar el producto
- Buscar: “Botox Allergan”
- Seleccionar en la tabla (checkbox)
-
Descontar inventario
- Clic en botón “Descontar inventario”
- Sistema muestra diálogo
-
Completar formulario
- Producto:
Botox Allergan 100U(ya seleccionado) - Almacén:
Almacén Principal - Cantidad:
1 - Paciente: Buscar y seleccionar
Juan Pérez - Fecha movimiento: (hoy)
- Comentario:
Aplicado en tratamiento facial - arrugas frontales
- Producto:
-
Confirmar
- Clic en “Aceptar”
- Sistema valida que hay stock (10 unidades disponibles)
- Crea movimiento de salida: -1
- Stock actualizado a 9 unidades
-
Verificar en historial (opcional)
- Ir a Buscar movimientos
- Ver el último movimiento:
- Producto: Botox Allergan 100U
- Exis. antes: 10
- Cantidad: -1
- Exis. después: 9
- Paciente: Juan Pérez

