> ## Documentation Index
> Fetch the complete documentation index at: https://muveya.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Reposición y alertas de existencias

> Define un mínimo para cada insumo en cada bodega, revisa qué falta reponer y sigue las alertas de mínimo y de vencimiento

muveya compara las existencias utilizables de cada insumo en cada bodega con el **mínimo** que tu equipo define ahí. La pantalla **Reposición** lista lo que falta y sugiere cuánto pedir; la pantalla **Alertas de existencias** lista los insumos bajo su mínimo y las cajas por vencer o ya vencidas.

No se compara nada hasta que existe un mínimo: un insumo sin mínimo en una bodega nunca aparece en Reposición y nunca genera ahí una alerta de mínimo.

## Quién puede hacerlo

| Acción | Permiso (etiqueta en la consola) |
| - | - |
| Ver **Reposición** y **Alertas de existencias** | `inventory.read` (**Ver inventario**) |
| Definir o editar un mínimo; usar las acciones **Contar** y **Editar mínimo** | `inventory.adjust` (**Ajustar y contar stock**) |

Ambas pantallas solo muestran las bodegas a las que tienes acceso. Definir mínimos no forma parte de los permisos del día a día, porque el mínimo también define qué tan grande puede ser una corrección antes de que una segunda persona deba aprobarla. Consulta [Roles y permisos](/docs/es/account/roles-and-permissions).

## Qué define un mínimo

Un mínimo (política de existencias) corresponde a **un insumo en una bodega**. Todas las cantidades están en la unidad base del insumo, que queda fijada en el mínimo al guardarlo.

| Campo (etiqueta en la consola) | Reglas | Efecto |
| - | - | - |
| **Mínimo** seguido de la unidad, por ejemplo **Mínimo (Unidad)** | Obligatorio. Número entero de 0 a 1.000.000. | Por debajo, el insumo necesita reposición y se abre una alerta de mínimo. `0` significa "no alertar nunca". |
| **Pedido habitual** seguido de la unidad | Opcional. Número entero de 1 a 1.000.000. "Se sugiere cuando el insumo baja del mínimo." | Se usa como pedido sugerido cuando es mayor que lo que falta. |
| **Avisar antes del vencimiento (días)** | Opcional. De 1 a 365. "Sin un valor, avisa 30 días antes." Solo aparece para insumos con **Controlar vencimientos** activado en el catálogo. | Cuántos días antes de su fecha de vencimiento una caja de este insumo en esta bodega genera una alerta de vencimiento. |
| **Umbral de aprobación** seguido de la unidad | Opcional. De 0 a 100. "Las correcciones por encima de esta cantidad necesitan que otra persona las apruebe. Máximo 100." | La corrección o diferencia de conteo más grande que se aplica sin una segunda persona. Sin valor, el umbral es 100. Consulta [Correcciones de existencias](/docs/es/inventory/corrections). |

Para un insumo marcado como **Insumo de alto valor** en el catálogo, el campo del umbral se reemplaza por "Es un insumo de alto valor: toda corrección necesita que otra persona la apruebe."

<Note>
  No hay nivel máximo ni punto de reorden aparte: el mínimo es el único disparador, y el pedido habitual es la única referencia de tamaño.
</Note>

### Definir o editar un mínimo

<Steps>
  <Step title="Abre el formulario">
    En **Reposición**, selecciona **Definir un mínimo**, o **Editar mínimo** en una fila. La página es `console.muveya.com/inventory/replenishment/policy`, titulada **Mínimo por bodega**.
  </Step>

  <Step title="Elige el insumo y la bodega">
    Elige un insumo activo en **Insumo** (**Elige un insumo**) y una bodega activa a la que tengas acceso en **Bodega** (**Elige una bodega**). **Editar mínimo** completa ambos por ti.
  </Step>

  <Step title="Revisa lo que hay ahora">
    El formulario muestra **Utilizable ahora:** con la cantidad y la unidad actuales, y carga los valores ya guardados para esa ubicación (campos vacíos cuando todavía no hay mínimo).
  </Step>

  <Step title="Completa los valores">
    Escribe el **Mínimo** y, si quieres, los demás campos. Los errores aparecen solo después de intentar guardar.
  </Step>

  <Step title="Guarda">
    Selecciona **Guardar mínimo**. El formulario dice **Mínimo guardado.**
  </Step>
</Steps>

Reglas que conviene recordar:

* **Se guarda toda la política a la vez.** Un campo opcional que dejes vacío se borra, aunque antes tuviera un valor.
* **El insumo debe estar activo y con su unidad fija.** Si no, muveya lo rechaza con "Este insumo aún no tiene una unidad confirmada, así que no se puede comparar un mínimo. Confirma su unidad en el catálogo primero." Consulta [Insumos del catálogo](/docs/es/catalog/items).
* **Otra persona pudo guardar antes.** Si alguien cambió el mínimo después de que lo abriste, el formulario recarga sus valores y dice "Alguien cambió este mínimo después de que lo abriste. Ahora muestra sus valores; revísalos y guarda de nuevo."
* Los miembros sin `inventory.adjust` ven "Solo un miembro que puede corregir existencias puede definir mínimos."

**Qué registra muveya:** el mínimo con su unidad fijada y un número de versión, y el registro de auditoría `inventory.policy.set` con los valores guardados y quién los guardó. Justo después de guardar, muveya vuelve a evaluar las alertas de ese insumo en esa bodega, así las existencias que ya estaban cortas generan su alerta sin esperar un movimiento.

### Errores de los campos

| Mensaje | Campo |
| - | - |
| **Ingresa un número entero desde 0.** | **Mínimo** |
| **Ingresa un número entero desde 1 o déjalo vacío.** | **Pedido habitual** |
| **Ingresa de 1 a 365 días o déjalo vacío.** | **Avisar antes del vencimiento (días)** |
| **Ingresa de 0 a 100 o déjalo vacío.** | **Umbral de aprobación** |

## La pantalla Reposición

Selecciona **Reposición** en la navegación principal, o el enlace **Reposición** en la pantalla **Existencias**. La página es `console.muveya.com/inventory/replenishment`, con la descripción "Insumos bajo el mínimo que definiste para cada bodega, contados en su unidad base."

### Filtros

| Control | Qué hace |
| - | - |
| **Bodega** | **Todas las bodegas** (la opción predeterminada) o una bodega activa a la que tengas acceso. |
| **Solo lo que requiere atención** | Marcado por defecto: muestra solo las filas bajo su mínimo o con una caja cuya unidad necesita revisión. Desmárcalo para ver todas las ubicaciones con mínimo. |
| **Definir un mínimo** | Enlace al formulario de mínimo. Solo aparece con `inventory.adjust`. |

### Columnas

| Columna | Qué muestra |
| - | - |
| **Insumo** | El nombre y el SKU del insumo, por ejemplo `Guantes de nitrilo M · GLV-NIT-M`. |
| **Bodega** | La bodega. Cuando guarda las existencias de un box que cuenta sus propias existencias, una segunda línea dice **Punto de stock de** y el box (consulta [Boxes y áreas](/docs/es/locations/destinations)). |
| **Unidad** | La unidad de todas las cantidades de la fila. |
| **Utilizable ahora** | El total utilizable (ver abajo). |
| **Mínimo** | El mínimo definido. |
| **Faltan** | Mínimo menos utilizable, cuando es positivo; si no, vacío. |
| **Pedido sugerido** | La cantidad sugerida, solo cuando la fila está bajo su mínimo. |
| **Estado** | **Bajo el mínimo**, **Suficiente** o **Sin mínimo**. Cuando corresponde, aparece una segunda línea: "Una caja de este insumo está en otra unidad y no se cuenta. Revisa su unidad." |
| **Acciones** | Solo con `inventory.adjust`: **Contar** (abre el conteo rápido; consulta [Conteos físicos](/docs/es/inventory/counts)) y **Editar mínimo**. |

Las filas se ordenan con **Bajo el mínimo** primero, luego las filas con una unidad por revisar, y luego por lo que falta, de mayor a menor.

### Cómo se calculan las cifras

* **Utilizable ahora** suma, para cada caja del insumo en esa bodega que está **Activa** y no pasó su fecha de vencimiento, la cantidad en mano de la caja menos lo que tiene apartado para pedidos. Cada caja cuenta como mínimo 0, así una caja con déficit (más reservado que en mano) nunca resta a las demás. Las cajas en cuarentena, vencidas, dadas de baja, agotadas o en tránsito no cuentan.
* Solo cuentan las cajas en la unidad fijada en el mínimo. Una caja en otra unidad, o con su unidad sin verificar, queda fuera y se señala; nunca se convierte.
* **Faltan** es el mínimo menos lo utilizable ahora, cuando es mayor que cero.
* **Pedido sugerido** es el mayor entre **Faltan** y **Pedido habitual**.
* **Estado** es **Bajo el mínimo** cuando falta algo y **Suficiente** en caso contrario. **Sin mínimo** describe una ubicación sin mínimo; esas ubicaciones no aparecen en esta pantalla.
* Una caja cuenta como utilizable durante todo el día de su fecha de vencimiento.

| Mínimo | Pedido habitual | Utilizable ahora | Faltan | Pedido sugerido | Estado |
| - | - | - | - | - | - |
| 20 | 50 | 12 | 8 | 50 | **Bajo el mínimo** |
| 20 | 5 | 12 | 8 | 8 | **Bajo el mínimo** |
| 20 | (ninguno) | 12 | 8 | 8 | **Bajo el mínimo** |
| 20 | 50 | 25 | (vacío) | (vacío) | **Suficiente** |
| 0 | (ninguno) | 0 | (vacío) | (vacío) | **Suficiente** |

### Listas vacías o parciales

| Mensaje | Significado |
| - | - |
| **Cargando lo que falta reponer…** | La lista está cargando. |
| **Nada está bajo su mínimo.** | Con **Solo lo que requiere atención** marcado, no falta nada. |
| **Ninguna bodega tiene todavía un mínimo para estos insumos. Define uno para comparar las existencias con lo que la clínica necesita.** | Con el filtro desmarcado, ninguna ubicación tiene mínimo. |
| **No tienes bodegas asignadas. Pide a un administrador que te dé acceso.** | Tu acceso en el equipo no incluye ninguna bodega. |
| **Esta lista llegó a su límite y puede estar incompleta. Elige una bodega para verla completa.** | La pantalla muestra como máximo 200 filas y lee una cantidad acotada de mínimos y cajas. Filtra por bodega. |

Si la lista no carga, se muestra el error con el botón **Reintentar**.

### De una sugerencia a un pedido

La pantalla Reposición no crea pedidos: no hay un botón que convierta una sugerencia en pedido. Para solicitar las existencias a otra bodega de tu clínica dental, crea un pedido con la cantidad sugerida (consulta [Crear y seguir pedidos](/docs/es/orders/create-and-track)). Las compras a proveedores se hacen fuera de muveya; cuando llegue la entrega, regístrala con [Recibir existencias](/docs/es/inventory/receive).

## Alertas de existencias

Selecciona **Alertas de existencias** en la pantalla **Existencias**, o ve a `console.muveya.com/inventory/alerts`. En **Inicio**, la tarjeta **Alertas de existencias abiertas** muestra cuántas alertas están abiertas (cuenta hasta 200; al llegar a 200 muestra **200+**) y abre esta pantalla.

### Vistas y columnas

Usa **Mostrar** para elegir **Alertas abiertas** (la opción predeterminada), **Resueltas** o **Todas**. Las alertas se listan de la más reciente a la más antigua, hasta 200.

| Columna | Qué muestra |
| - | - |
| **Alerta** | El tipo de alerta (ver abajo). Las alertas abiertas se destacan. |
| **Insumo** | El nombre y el SKU del insumo. |
| **Bodega** | Dónde está el riesgo. |
| **Detalle** | Para el mínimo, por ejemplo "12 utilizables de un mínimo de 20", con las cifras del momento en que se detectó. Para el vencimiento, "Vence el" o "Venció el" y la fecha. |
| **Detectada** | Cuándo se detectó la alerta; en una alerta resuelta, una segunda línea **Resuelta el** y la fecha. |
| **Caja** | **Abrir la caja** cuando la alerta se refiere a una caja (consulta [Cajas y etiquetas](/docs/es/inventory/boxes)). |

Si la vista está vacía: **No hay alertas en esta vista.**

### Tipos de alerta

| Etiqueta | Tipo | Se abre cuando | Se resuelve cuando |
| - | - | - | - |
| **Bajo el mínimo** | `low_stock` | El total utilizable de un insumo en una bodega está por debajo de un mínimo mayor que 0. | El total utilizable vuelve a alcanzar el mínimo, o el mínimo se define en 0. |
| **Por vencer** | `expiry_approaching` | La fecha de vencimiento de una caja activa entra en la ventana de aviso de su bodega (los días de la política, o 30). | La caja deja de estar activa (agotada, en cuarentena, vencida o dada de baja) o ya no está dentro de la ventana. |
| **Vencido** | `expiry_approaching` | La misma alerta cuando termina el último día de la caja, o una caja que se encuentra ya vencida. | La caja se saca de uso, por ejemplo marcándola como vencida desde su página. |

No existe una alerta aparte de "sin existencias". Un insumo sin nada utilizable en una bodega que tiene mínimo muestra **Bajo el mínimo** con un detalle como "0 utilizables de un mínimo de 20". Una bodega sin mínimo no genera ninguna alerta de mínimo.

Como máximo hay una alerta abierta por insumo en cada bodega (mínimo) y por caja (vencimiento). Una alerta de vencimiento sigue a su caja cuando la caja se traslada a otra bodega. Una alerta de mínimo nombra una caja (y muestra **Abrir la caja**) solo cuando la detectó un movimiento de esa caja.

### Cuándo se calculan las alertas

muveya evalúa las alertas en tres momentos, siempre con las mismas reglas:

1. **Poco después de cada movimiento de existencias**, para cada bodega que tocó el movimiento (en un traslado, el origen y el destino). Una cuarentena o una caja que se agota también reducen las existencias utilizables, así que también disparan la revisión.
2. **Justo después de guardar un mínimo**, para ese insumo en esa bodega.
3. **En una revisión periódica cada 15 minutos aproximadamente**, que detecta lo que cambia solo con el tiempo: cajas que entran en su ventana de aviso, cajas cuya fecha pasa y dejan de contar como utilizables, y alertas que quedaron abiertas por una revisión fallida.

Por eso una alerta no es instantánea: puede tardar un poco después de un movimiento, y hasta la siguiente revisión periódica para los cambios que dependen solo de la fecha.

### Quién ve las alertas

Los miembros con `inventory.read`, para las bodegas a las que tienen acceso. Las alertas solo se muestran en la consola: muveya no las envía por correo ni por WhatsApp. Los responsables de gestión también pueden leer la cantidad de alertas abiertas como las métricas operativas `LOW_STOCK` y `EXPIRING_STOCK` (consulta [Analítica de gestión](/docs/es/reports/management-analytics)).

## Qué puede salir mal

| Mensaje | Código | Qué hacer |
| - | - | - |
| **Alguien cambió este mínimo después de que lo abriste. Ahora muestra sus valores; revísalos y guarda de nuevo.** | `inventory.stock_policy_conflict` | Revisa los valores que se muestran y guarda de nuevo. |
| **Este insumo aún no tiene una unidad confirmada, así que no se puede comparar un mínimo. Confirma su unidad en el catálogo primero.** | `inventory.measurement_unverified` | Activa el insumo en el catálogo (consulta [Insumos del catálogo](/docs/es/catalog/items)) y luego guarda el mínimo. |
| **Solo un miembro que puede corregir existencias puede definir mínimos.** | Ninguno | Pide a un administrador **Ajustar y contar stock**. |
| **Una caja de este insumo está en otra unidad y no se cuenta. Revisa su unidad.** | Ninguno | Abre las cajas del insumo y pide que revisen su unidad; mientras tanto quedan fuera del total. |
| **Este registro no está disponible en la cuenta de clínica dental activa.** | `inventory.warehouse_not_found`, `inventory.item_not_found` | La bodega está inactiva o fuera de tu acceso, o el insumo no existe. |
| **Revisa los datos ingresados antes de volver a intentar.** | `inventory.stock_policy_invalid` | Un valor está fuera de su rango. |
| **Tu cuenta no tiene permiso para esta acción.** | `common.forbidden` | Te falta `inventory.read` o `inventory.adjust`. |
| **No pudimos completar la solicitud. Intenta nuevamente.** | Cualquier otra falla | Vuelve a intentar. Si persiste, escribe a [team@muveya.com](mailto:team@muveya.com). |

## Páginas relacionadas

<CardGroup cols={2}>
  <Card title="Resumen del inventario" icon="boxes-stacked" href="/docs/es/inventory/overview">
    Cantidades en mano, reservadas y disponibles.
  </Card>

  <Card title="Conteos físicos" icon="clipboard-list" href="/docs/es/inventory/counts">
    Revisa un insumo corto antes de pedir.
  </Card>

  <Card title="Correcciones de existencias" icon="scale-balanced" href="/docs/es/inventory/corrections">
    Qué controla el umbral de aprobación.
  </Card>

  <Card title="Crear y seguir pedidos" icon="cart-shopping" href="/docs/es/orders/create-and-track">
    Solicita las existencias que faltan.
  </Card>

  <Card title="Analítica de gestión" icon="chart-line" href="/docs/es/reports/management-analytics">
    Las alertas abiertas como métricas operativas.
  </Card>

  <Card title="Roles y permisos" icon="user-shield" href="/docs/es/account/roles-and-permissions">
    Quién puede definir mínimos.
  </Card>
</CardGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.