Skip to main content

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:
    1. Acceder a Pedidos de compra
    2. Localizar el pedido recibido
    3. Hacer clic en “Recibir”
    4. Indicar cantidades recibidas (pueden ser parciales)
    5. Confirmar recepción
    6. 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:
    1. Acceder a Buscar productos
    2. Seleccionar el producto consumido
    3. Hacer clic en “Descontar inventario”
    4. Indicar cantidad, almacén y motivo
    5. 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:
    1. Acceder a Pedidos de compra
    2. Crear nuevo pedido
    3. Seleccionar proveedor y almacén destino
    4. Añadir líneas de productos con cantidades
    5. Guardar como borrador o enviar directamente
    6. 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
\1

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
\1

Opción 3: Buscar movimientos

  • Función JavaScript: openSearchStoremoves()
  • Descripción: Historial completo de movimientos de inventario (entradas, salidas, ajustes)
  • Privilegios: STORE_VIEW
\1

Opción 4: Proveedores

  • Función JavaScript: openSearchSuppliers()
  • Descripción: Gestión del catálogo de proveedores (empresas que suministran productos)
  • Privilegios: SUPPLIER_VIEW
\1

Opción 5: Pedidos de compra

  • Función JavaScript: openSearchPurchaseorders()
  • Descripción: Gestión completa del ciclo de pedidos a proveedores
  • Privilegios: PURCHASEORDER_VIEW
\1

Opción 6: Transferencias

  • Función JavaScript: openSearchTransfers() (si está implementado)
  • Descripción: Transferencias de productos entre almacenes del mismo centro
  • Privilegios: STORE_VIEW
\1

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”
2. Formulario de búsqueda
  • 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
3. Tabla de resultados “Listado Otros facturables” Columnas:
  • 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)
4. Totalizador
  • TOTAL: Suma de cantidades y valoración total del inventario
5. Paginación
  • Selector de registros por página (10/50/200)
  • Navegación entre páginas
  • Contador de registros
6. Barra de botones de acción
  • 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”
2. Formulario de filtros
  • 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”
3. Tabla “Movimientos” Columnas:
  • 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
4. Paginación
  • Registros por página (25/50/100)
  • Navegación entre páginas
5. Botones de acción
  • 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”
2. Formulario de filtros
  • 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”
3. Tabla “Pedidos de compra” Columnas:
  • 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
4. Paginación
  • Registros por página (25/50/100)
  • Navegación
5. Botones de acció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”
2. Formulario de filtros
  • 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”
3. Tabla “Transferencias” Columnas:
  • Fecha: Fecha de la transferencia
  • Origen: Almacén origen
  • Destino: Almacén destino
  • Estado: Estado actual
  • Líneas: Número de productos transferidos
4. Botones de acción
  • 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)

CampoTipoObligatorioDescripciónValidación
Gestión de inventariocheckboxNoActivar control de stock para este producto-
Código internotextNoCódigo interno del centroÚnico
Código externotextNoCódigo de proveedor o código de barras-
Precio proveedornumberNoCoste de adquisiciónNumérico, 2 decimales
Stock mínimonumberNoCantidad mínima antes de alertarNumérico
Stock máximonumberNoCantidad máxima recomendadaNumé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

CampoTipoObligatorioDescripciónValidación
ProductoselectProducto a añadirDebe estar seleccionado
AlmacénselectAlmacén donde se añadeDebe existir
CantidadnumberUnidades a añadir≥ 0
Precio unitarionumberNoCoste por unidad (actualiza precio proveedor)≥ 0
Fecha movimientodateFecha real del movimientoNo futuro
ComentariotextareaNoMotivo o referenciaMá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

CampoTipoObligatorioDescripciónValidación
ProductoselectProducto a descontarDebe estar seleccionado
AlmacénselectAlmacén del que se descuentaDebe existir
CantidadnumberUnidades a descontar≥ 0, ≤ stock actual
Fecha movimientodateFecha real del consumoNo futuro
PacienteselectNoPaciente al que se aplicó (opcional)-
ComentariotextareaNoMotivo del consumoMá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)

CampoTipoObligatorioDescripciónValidación
ProveedorselectProveedor al que se realiza el pedidoDebe existir
Almacén destinoselectAlmacén donde se recibiráDebe existir
Fecha pedidodateFecha de creaciónNo futuro
Fecha entrega previstadateNoFecha estimada de recepción≥ Fecha pedido
NotastextareaNoObservaciones del pedido-

Campos del Formulario (Líneas)

CampoTipoObligatorioDescripciónValidación
ProductoselectProducto a pedirDebe existir
CantidadnumberUnidades solicitadas≥ 0
Precio unitarionumberNoPrecio acordado con proveedor≥ 0
SubtotalnumberCalculadoCantidad × Precio unitarioAuto

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 pedido

Campos del Formulario

Para cada línea del pedido:
CampoTipoObligatorioDescripciónValidación
Productotext-Nombre del producto (solo lectura)-
Cantidad pedidanumber-Cantidad original del pedido (solo lectura)-
Cantidad recibidanumberUnidades efectivamente recibidas≥ 0, ≤ pendiente
Cantidad pendientenumber-Quedan por recibir (solo lectura)Calculado

Campos adicionales

CampoTipoObligatorioDescripciónValidación
Fecha recepcióndateFecha real de llegadaNo futuro
AlbarántextNoNúmero de albarán del proveedor-
Notas recepcióntextareaNoObservaciones-

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

1. Usuario detecta stock bajo de un producto

2. Va a Inventario → Pedidos de compra → Nuevo pedido

3. Selecciona proveedor y almacén destino

4. Añade líneas de productos con cantidades y precios

5. Guarda como "Borrador" (puede editar aún)

6. Revisa el pedido, imprime PDF si necesita

7. Hace clic en "Enviar pedido"

8. Sistema marca pedido como "Enviado" (ya no editable)

9. Proveedor envía mercancía días después

10. Usuario recibe paquete físico

11. Va a Pedidos de compra, selecciona el pedido

12. Hace clic en "Recibir"

13. Indica cantidades recibidas (pueden ser parciales)
    - Si recibe todo: indica cantidad total
    - Si recibe parte: indica solo lo recibido

14. Confirma recepción

15. Sistema:
    - Crea movimientos de inventario (entrada)
    - Actualiza stock en almacén
    - Marca pedido como "Recibido" o "Recepción parcial"

16. Usuario verifica en Buscar productos que el stock se actualizó
Variantes del flujo:
  • 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
Errores comunes:
  • 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

1. Profesional utiliza producto en tratamiento (ej: Botox en paciente)

2. Personal de almacén (o el mismo profesional) va a Buscar productos

3. Busca el producto consumido (ej: "Botox Allergan")

4. Selecciona el producto en la tabla (checkbox)

5. Hace clic en botón "Descontar inventario"

6. Sistema muestra diálogo de salida

7. Usuario completa:
    - Almacén: Selecciona de dónde sale (ej: Almacén Principal)
    - Cantidad: Unidades consumidas (ej: 1)
    - Paciente: (Opcional) Selecciona al paciente tratado
    - Comentario: "Aplicado en tratamiento facial"
    - Fecha movimiento: Fecha del tratamiento

8. Hace clic en "Aceptar"

9. Sistema valida que hay stock suficiente

10. Sistema crea movimiento de salida (Storemove)

11. Stock se reduce automáticamente

12. Movimiento queda registrado en historial (Buscar movimientos)
Variantes del flujo:
  • 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

1. Usuario necesita mover productos de un almacén a otro
   (ej: de Almacén Principal a Almacén Consulta 2)

2. Va a Inventario → Transferencias → Nueva

3. Selecciona:
    - Almacén origen: Almacén Principal
    - Almacén destino: Almacén Consulta 2
    - Fecha transferencia: Fecha actual

4. Añade líneas de productos a transferir:
    - Producto: Silhouette Soft
    - Cantidad: 5 unidades

5. Guarda la transferencia

6. Sistema crea dos movimientos automáticamente:
    - Salida (-5) en Almacén Principal
    - Entrada (+5) en Almacén Consulta 2

7. Transferencia queda completada

8. Stocks se actualizan en ambos almacenes
Variantes del flujo:
  • 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)

1. Usuario realiza recuento físico y detecta diferencias
   (ej: Sistema dice 37 unidades, físicamente hay 35)

2. Va a Buscar productos

3. Localiza el producto con diferencia

4. Opción A - Si sobra en sistema (sistema > real):
    - Clic en "Descontar inventario"
    - Cantidad: 2 (la diferencia)
    - Comentario: "Ajuste por recuento físico"

5. Opción B - Si falta en sistema (sistema < real):
    - Clic en "Añadir inventario"
    - Cantidad: 2 (la diferencia)
    - Comentario: "Ajuste por recuento físico"

6. Sistema registra movimiento de ajuste

7. Stock queda corregido

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
Con Módulo Administración:
  • 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
Con Módulo Pacientes:
  • 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
Con Módulo Listados:
  • 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
Es requerido por:
  • 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

CampoTipoOperadorDescripción
NombretextLIKEBusca en nombre del producto (parcial)
DescripcióntextLIKEBusca en descripción (parcial)
CódigotextEQUALSBusca por código interno exacto
Código externotextEQUALSBusca por código de proveedor/barras exacto

Búsqueda en Movimientos

CampoTipoOperadorDescripción
Fecha iniciodateMovimientos desde esta fecha
Fecha findateMovimientos hasta esta fecha
ProductoselectEQUALSMovimientos de un producto específico
AlmacénselectEQUALSMovimientos en un almacén específico

Búsqueda en Pedidos de Compra

CampoTipoOperadorDescripción
Nº PedidotextLIKEBusca por número de pedido
ProveedorselectEQUALSPedidos de un proveedor específico
EstadoselectEQUALSFiltra por estado del pedido
Desde/Hastadate≥ / ≤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

PrivilegioPermite
STORE_VIEWVer inventario, productos, movimientos, transferencias
STORE_MANAGEAñadir/descontar inventario, crear transferencias, ajustes
SUPPLIER_VIEWVer proveedores
SUPPLIER_MANAGECrear, modificar, eliminar proveedores
PURCHASEORDER_VIEWVer pedidos de compra
PURCHASEORDER_MANAGECrear, enviar, recibir, cancelar pedidos

Restricciones

  • Solo usuarios con STORE_VIEW pueden 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:
  1. Ir a Administración → Servicios y Productos
    • Clic en menú “Administración”
    • Seleccionar “Servicios y Productos”
  2. 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%)
  3. 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
  4. 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
  1. Ir a Inventario → Pedidos de compra
    • Clic en botón “Nuevo pedido”
  2. 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
  3. 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 €)
  4. 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-00001 y estado “Enviado”
Parte 2: Recibir el pedido (días después)
  1. Cuando llega la mercancía
    • Ir a Inventario → Pedidos de compra
    • Localizar el pedido PO-2025-00001
    • Verificar estado: “Enviado”
  2. Registrar recepción
    • Seleccionar el pedido (checkbox)
    • Clic en botón “Recibir”
    • Sistema muestra diálogo con líneas del pedido
  3. 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)
  4. 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”
  5. 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:
  1. Tras realizar el tratamiento
    • El médico ha aplicado 1 vial de Botox al paciente Juan Pérez
  2. Acceder al inventario
    • Ir a Inventario → Buscar productos
  3. Localizar el producto
    • Buscar: “Botox Allergan”
    • Seleccionar en la tabla (checkbox)
  4. Descontar inventario
    • Clic en botón “Descontar inventario”
    • Sistema muestra diálogo
  5. 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
  6. Confirmar
    • Clic en “Aceptar”
    • Sistema valida que hay stock (10 unidades disponibles)
    • Crea movimiento de salida: -1
    • Stock actualizado a 9 unidades
  7. 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