# Manual de Compras e Inventario

# Inventario

# Ajustar el inventario (conteo físico)

## ¿Qué es / para qué sirve?

Un **ajuste de stock** corrige las existencias del sistema para que coincidan con
lo que realmente tienes. Se usa para el **conteo físico** o para cargar/descargar
cantidades manualmente (mermas, daños).

## Paso a paso (conteo físico)

1. Ve a **Inventario → Ajuste de Stock → Agregar**.
2. Elige la **Sucursal** y confirma la **Fecha**.
3. En **Tipo de Ajuste**, elige **Conteo Físico** (las otras opciones son
   **Carga Manual** y **Descarga Manual**).
4. Agrega los productos: el sistema muestra el **Stock Sistema** (lo que tiene
   registrado).
5. Escribe la **Cantidad** real que contaste; el sistema calcula la **Diferencia**
   (faltante o sobrante).
6. Guarda.

[CAPTURA: ajuste de stock por conteo con columnas Stock Sistema, Cantidad y Diferencia]

## Carga / descarga manual

Con **Tipo de Ajuste** = **Carga Manual** o **Descarga Manual**, simplemente
indicas la cantidad a sumar o restar, sin comparación con el stock del sistema.

## Notas y avisos

> - Una **diferencia negativa** indica faltante; **positiva**, sobrante.
> - El ajuste deja registro para auditoría; úsalo para explicar mermas o errores.

# Transferir stock entre sucursales

## ¿Qué es / para qué sirve?

Una **transferencia de stock** mueve productos de una sucursal a otra, descontando
del origen y sumando al destino.

## Paso a paso

1. Ve a **Inventario → Transferencias de Stock → Agregar**.
2. Confirma la **Fecha** y un **Nº de Referencia** (opcional).
3. Elige **Desde ubicación** (origen) y **Hasta ubicación** (destino).
4. Elige el **Estado** (Pendiente o Completada).
5. Agrega los productos con la **cantidad** a transferir.
6. Guarda.

[CAPTURA: pantalla de transferencia con origen, destino y productos]

## Notas y avisos

> - El stock se mueve según el **Estado**: una transferencia **Completada**
>   actualiza ambas sucursales.
> - Verifica bien origen y destino antes de guardar.

# Importar inventario (ajuste por archivo)

## ¿Qué es / para qué sirve?

**Importar inventario** ajusta las **cantidades de stock** de muchos productos a
la vez desde un archivo, sin registrar costos. Se usa para corregir existencias
de forma masiva (por ejemplo tras un conteo físico grande).

## Paso a paso

1. Ve a **Ajuste de Stock → Importar Inventario**.
2. Presiona **Descargar Archivo de Plantilla**.
3. Complétala en Excel con las columnas:
   - **SKU** (obligatorio).
   - **Ubicación** (obligatoria; debe coincidir exactamente con el nombre de la
     sucursal).
   - **Cantidad** (obligatoria).
4. Sube el archivo y presiona **Enviar**.

[CAPTURA: pantalla "Importar Inventario" con la plantilla y el botón Enviar]

## Diferencia con "Importar Stock Inicial"

| | Importar inventario | Importar stock inicial |
|---|---|---|
| Para qué | Ajustar cantidades (operación) | Cargar existencias de apertura |
| Registra costo | No | Sí |
| Ubicación | Obligatoria | Opcional |
| Lote/Vencimiento | No | Sí |

(El stock inicial está en Manual de Productos:
[Cargar stock inicial](../manual-productos/stock-inicial.md)).

## Notas y avisos

> - La **Ubicación** debe escribirse igual que el nombre de la sucursal, o la fila
>   dará error.
> - Esta importación **no registra precios de compra**: solo cantidades.

# Compras

# Registrar una devolución de compra

## ¿Qué es / para qué sirve?

Registra cuando **devuelves productos a un proveedor** (por defecto, daño, error).
Ajusta el inventario y tu saldo con ese proveedor.

## Paso a paso

1. Ve a **Compras → Devoluciones → Agregar Devolución**.
2. Elige el **Proveedor** y la **Sucursal**.
3. Confirma la **Fecha** y un **Nº de Referencia** (opcional).
4. Busca y agrega los productos a devolver, indicando la **cantidad**.
5. Guarda.

[CAPTURA: pantalla de devolución de compra con productos y cantidades]

## Notas y avisos

> - La devolución **descuenta del inventario** las cantidades devueltas.
> - El monto devuelto ajusta lo que debes (o te deben) con el proveedor.

# Crear una orden de compra

## ¿Qué es / para qué sirve?

Una **orden de compra (OC)** es la solicitud formal de productos a un proveedor,
antes de recibir la mercancía. Sirve para pedir y luego convertir esa OC en una
compra cuando llega lo pedido.

## Paso a paso

1. Ve a **Compras → Órdenes de Compra → Agregar**.
2. Elige el **Proveedor** y la **Sucursal**.
3. Confirma la **Fecha de Orden** y un **Nº de Referencia** (opcional).
4. Agrega los productos con sus cantidades.
5. Guarda.

[CAPTURA: pantalla de orden de compra con proveedor y productos]

## Notas y avisos

> - La OC **no mueve inventario** por sí sola: es un documento de solicitud al
>   proveedor.
> - Cuando recibas la mercancía, registra la **compra** correspondiente (ver
>   [Registrar una compra](registrar-compra.md)). La OC sirve como referencia del
>   pedido.

# Registrar una compra

## ¿Qué es / para qué sirve?

Registrar una compra ingresa al inventario los productos que recibes de un
proveedor y deja constancia del costo y el pago.

## Paso a paso

1. Ve a **Compras → Agregar**.
2. Elige el **Proveedor** (créalo con **+** si no existe).
3. Confirma la **Fecha de Compra** y la **Sucursal** que recibe.
4. (Opcional) Escribe un **Nº de Referencia**; si lo dejas vacío se genera solo.
5. Agrega los productos: búscalos por nombre/SKU e indica **cantidad** y **costo**.
6. Revisa los totales; aplica **descuento** o **impuesto de compra** si corresponde.
7. (Opcional) Agrega **cargos de envío** o **gastos adicionales**.
8. Registra el **pago** (método y monto) y presiona **Guardar**.

[CAPTURA: pantalla de compra con proveedor, productos y totales]

## Notas y avisos

> - El **Estado de Compra** (Recibida/Pendiente) determina si el stock entra ya
>   o queda en espera.
> - Si no terminas de pagar, queda un **saldo pendiente** con el proveedor (ver
>   Manual de Clientes: *Cuentas por cobrar y pagar*).
> - Si tu negocio tiene configurado un **Impuesto de Compra por defecto** (ver
>   Manual de Configuración: *Impuestos*), el campo de impuesto de la compra
>   aparece precargado; igual puedes cambiarlo o quitarlo para esa compra.

# Recepción de Órdenes de Compra

# Recepción de Orden de Compra - unidades y cantidades que se muestran

## ¿Qué es / para qué sirve?

Cuando una sucursal ordena productos a la planta de producción y la planta ya emitió su
factura, la sucursal usa la pantalla **Recepción de Orden de Compra**
(`Producciones > Órdenes de Compra > Recepción`) para confirmar cuánto llegó realmente y
que ese inventario quede reflejado en la sucursal.

## Paso a paso

1. En **Órdenes de Compra**, ubique la orden que ya tiene factura de la planta y todavía no
   ha sido recepcionada, y entre a su opción **Recepción**.
2. Revise, por cada producto, la columna **Unidad** junto con **Cant. Solicitada** y
   **Cant. Facturada**: las tres cantidades se muestran en la misma unidad con la que la
   sucursal compra ese producto (la misma unidad en que la planta lo vendió/facturó) —
   por ejemplo "paquete", "bolsa", o el nombre de la bolsa/caja que use ese producto —
   no en la unidad de inventario interna de la planta.
3. En **Cant. Recibida**, confirme o ajuste la cantidad realmente recibida en esa misma
   unidad. Por defecto viene precargada con la cantidad facturada.
4. Si la cantidad recibida es menor a la facturada, el sistema marca la recepción con una
   advertencia de discrepancia, pero permite confirmarla igual.
5. Dé clic en **Confirmar Recepción**. Esta acción solo puede hacerse **una vez** por
   orden de compra — después de confirmada, la orden queda marcada como recibida y el
   inventario de la sucursal se actualiza con lo recibido.

[CAPTURA: pantalla de Recepción de Orden de Compra con las columnas Unidad, Cant.
Solicitada, Cant. Facturada y Cant. Recibida]

## Notas y avisos
> Antes, esta pantalla mostraba las cantidades en la unidad base de inventario del
> producto, sin importar qué unidad decía la columna "Unidad" — lo que podía hacer ver
> cantidades muy distintas a como la sucursal realmente compra ese producto. Esto ya fue
> corregido: las cantidades siempre corresponden a la unidad indicada en esa misma fila.

# Ventas de Planta

# Ventas de Planta - filtros de búsqueda

## ¿Qué es / para qué sirve?

La pantalla **Producciones > Ventas** (`Producciones > Ventas`) muestra las facturas de
venta directa que la planta le emite a las sucursales. Ahora se puede filtrar ese listado
en vez de tener que buscar factura por factura entre todas las páginas.

## Paso a paso

1. Entre a **Producciones > Ventas**.
2. Arriba de la tabla, abra el panel **Filtros** (si está cerrado, dé clic en el título
   para desplegarlo).
3. Use cualquiera de los 4 filtros, solos o combinados:
   - **Fecha**: seleccione un rango de fechas para ver solo las facturas emitidas en ese
     período.
   - **Cliente**: seleccione una sucursal/cliente para ver solo sus facturas. El listado
     solo incluye clientes que ya tienen al menos una venta de planta registrada.
   - **Número de Factura**: escriba parte o todo el número de factura.
   - **Orden de Compra**: escriba parte o todo el número de la Orden de Compra a la que
     está vinculada la venta.
4. La tabla se actualiza automáticamente al elegir un filtro (no hace falta dar clic en
   "Buscar").

[CAPTURA: pantalla de Ventas de Planta con el panel de filtros abierto (Fecha, Cliente,
Número de Factura, Orden de Compra) sobre la tabla de facturas]

## Notas y avisos
> Una venta directa que no viene de ninguna Orden de Compra (por ejemplo, una venta
> creada manualmente sin partir de una OC) muestra "—" en la columna Orden de Compra y
> sigue apareciendo en el listado mientras ese filtro esté vacío.

# Compras con Porcionado

# Comprar materia prima y registrar el porcionado

## ¿Qué es / para qué sirve?

Sirve para los negocios que **compran materia prima, la preparan y la guardan en porciones**.
Por ejemplo: se compran 5 libras de camarón, se limpian y se separan en 15 bolsitas. Lo que
se guarda en el inventario y lo que después se gasta al vender son **las bolsitas**, no las
libras.

Antes había que sacar el costo de la bolsita con una calculadora y escribirlo a mano. Con
esta pantalla usted anota lo que le costó la materia prima y, cuando cocina termina de
porcionar, anota cuántas bolsitas salieron: **el sistema saca solo el costo de cada
porción**.

Son **dos pasos, y pueden hacerse en momentos distintos** — normalmente quien compra no es
quien porciona:

1. **Comprar la materia prima.** Se anota qué se compró y cuánto costó. *El inventario no
   cambia todavía.*
2. **Registrar el porcionado.** Se anota cuántas porciones salieron. *Aquí sí entra el
   inventario.*

> **Ojo:** las libras que usted anota son solo información de la compra. **Nunca entran al
> inventario.** Lo que entra al inventario son las porciones del paso 2.

## Antes de empezar

- Esta función debe estar activada para su negocio. Si no la ve, pídalo a soporte.
- Su usuario necesita los permisos correspondientes. Los da el administrador desde
  **Administrar Roles**. Comprar y porcionar son permisos **independientes**: es normal que
  quien compra no pueda porcionar, y al revés — así funciona en la mayoría de los negocios.
- El producto porcionado (por ejemplo *Camarones porción*) ya debe existir en el catálogo,
  con su unidad (bolsita, porción) y con inventario habilitado.

## Dónde encontrarlo

Los dos pasos viven dentro del menú **Compras** de siempre, junto a "Agregar Compra" y
"Lista de Compras":

- **Compras → Comprar materia prima** (paso 1)
- **Compras → Compras de materia prima** (paso 2, y para ver el estado de cada compra)

El reporte de rendimiento está en **Reportes → Rendimiento por Proveedor**.

## Paso a paso — Paso 1: comprar la materia prima

1. Vaya a **Compras → Comprar materia prima**.
2. Escoja el **proveedor**, la **fecha** y la **sucursal** donde va a quedar el inventario
   cuando se porcione.
3. En el buscador, escriba el nombre del **producto porcionado**, o sea el que se guarda y
   se vende: *Camarones porción*, no *Camarones*. Escójalo de la lista.

   [CAPTURA: buscador de producto con la lista desplegada mostrando "Camarones porción"]

4. En la fila que aparece, llene:
   - **Materia prima comprada** y su **unidad**: por ejemplo `5` y `Libra`.
   - **Costo por unidad** o **Costo total**: escriba el que traiga la factura del
     proveedor. Al escribir uno, **el otro se calcula solo**.
   - **Porciones esperadas** (opcional): sirve después para comparar contra lo que
     realmente salió.
5. Repita si compró varias materias primas al mismo proveedor. Abajo se va sumando el
   **total de la compra**.
6. Presione **Guardar**.

   [CAPTURA: tabla de la compra con una fila llena y el total abajo]

Al guardar, queda en **Compras de materia prima** marcada como **Pendiente de porcionar**,
con un aviso confirmando que se registró. Si usted mismo tiene permiso para porcionar, ese
aviso trae un botón para ir directo a hacerlo; si no, solo le avisa que quedó pendiente y que
la persona encargada la porcionará cuando le corresponda.

   [CAPTURA: aviso de "Compra registrada correctamente" con el botón "Registrar porcionado"]

## Paso a paso — Paso 2: registrar el porcionado

1. Vaya a **Compras → Compras de materia prima**.
2. Busque la compra y en **Acciones** escoja **Registrar porcionado**.
3. En **Porciones obtenidas**, escriba cuántas salieron de verdad: por ejemplo `15`.
   Mientras escribe, a la derecha aparecen el **costo por porción** y el **rendimiento**
   para que revise si le cuadra.

   [CAPTURA: fila de porcionado mostrando 15 porciones, costo por porción y rendimiento]

4. Si compró varias materias primas y hoy solo porcionó una, **deje las otras en blanco**.
   Puede volver otro día y completarlas.
5. **Actualizar el costo del producto**: déjelo marcado si quiere que el costo del producto
   quede al día con lo que acaba de costar la porción. Ese es el costo que usan los
   reportes de utilidad.
6. Presione **Guardar**.

Al guardar, las porciones **entran al inventario** de la sucursal de la compra y el costo
por porción queda calculado así:

> Costo de la materia prima ÷ porciones obtenidas
> **$45.36 ÷ 15 = $3.024 por bolsita**

## Notas y avisos

> **Una línea ya porcionada no se vuelve a sumar.** Si presiona Guardar dos veces, o
> regresa con el botón *atrás* del navegador, el inventario **no** se duplica.

> **La deuda con el proveedor existe desde el paso 1.** La compra aparece en Cuentas por
> Pagar con el costo de la materia prima apenas la guarda, aunque no la haya porcionado. El
> pago se registra desde el listado de **Compras** de siempre.

> **Si el porcionado rindió menos de lo esperado**, la porción sale más cara: es la misma
> plata repartida entre menos bolsitas. Eso es correcto, y es justamente lo que mide el
> reporte de [Rendimiento por Proveedor](rendimiento-por-proveedor.md).

> **Para eliminar una compra ya porcionada**, el sistema devuelve las porciones al
> inventario. Pero si ya se vendió parte de esas porciones, **no deja eliminarla** y se lo
> avisa.

> Estas compras también se ven en el listado de **Compras** normal, porque son compras de
> verdad — ahí puede, por ejemplo, agregar un pago. Si desde allá corrige la cantidad de
> porciones de una compra ya porcionada (por ejemplo, cocina contó mal y avisa después), el
> costo por porción y el reporte de rendimiento se **actualizan solos**: no hace falta volver
> a Compras con Porcionado a corregir nada aparte.

# Rendimiento por Proveedor

## ¿Qué es / para qué sirve?

Responde una pregunta que hasta ahora no se podía contestar con números:

> *"A Juan le compro la libra de camarón más barata que a Federico, pero como el camarón de
> Juan viene más pequeño, me salen menos bolsitas. ¿Cuál me conviene de verdad?"*

El reporte toma todas las compras que ya se porcionaron y calcula, por proveedor y por
producto, **cuántas porciones rinde cada unidad de materia prima** y **cuánto termina
costando cada porción**.

Se alimenta solo de lo registrado en **Compras con Porcionado**. Las compras que todavía
están *Pendientes de porcionar* no aparecen: mientras no se sepa cuántas porciones
salieron, no hay rendimiento que medir.

## Paso a paso

1. Vaya a **Reportes → Rendimiento por Proveedor**.
2. Escoja el **rango de fechas**. Se filtra por la fecha en que se **porcionó**, que es
   cuando se supo el rendimiento — no por la fecha de la compra.
3. Opcionalmente filtre por **proveedor** o por **sucursal**.

   [CAPTURA: filtros del reporte con un rango de fechas seleccionado]

4. Arriba, cuando un mismo producto se le compra a **dos o más proveedores**, aparece un
   recuadro que dice en una frase quién rinde más y por cuánto.

   [CAPTURA: recuadro de comparación diciendo que Federico rinde 21.6% más que Juan Perez]

5. Abajo, la tabla muestra una fila por proveedor y producto.

## Qué significa cada columna

| Columna | Qué le dice |
|---|---|
| **Compras** | Cuántos porcionados entraron en el período |
| **Materia prima** | Cuánto le compró en total (por ejemplo, 15 libras) |
| **Porciones obtenidas** | Cuántas porciones salieron en total |
| **Rendimiento promedio** | Porciones por unidad de materia prima. **Este es el número que importa** |
| **Peor compra / Mejor compra** | El rendimiento más bajo y más alto de ese período. Si están muy separados, el proveedor es irregular |
| **Costo total** | Lo que le pagó por la materia prima |
| **Costo promedio por porción** | Lo que de verdad le cuesta cada bolsita |

## Un ejemplo con números

Suponga que en el mes:

- **Juan Pérez**: dos compras — 5 libras que dieron 12 bolsitas, y 10 libras que dieron 25.
- **Federico**: una compra — 5 libras que dieron 15 bolsitas.

El reporte muestra:

| Proveedor | Materia prima | Porciones | Rendimiento | Costo por porción |
|---|---|---|---|---|
| Juan Pérez | 15 lb | 37 | **2.47** por lb | **$3.66** |
| Federico | 5 lb | 15 | **3.00** por lb | **$3.20** |

Conclusión: aunque la libra de Federico se vea más cara en la factura, **cada bolsita le
sale 46 centavos más barata**, porque rinde 21.6 % más.

## Notas y avisos

> **El rendimiento se calcula sobre los totales del período**, no como promedio de las
> compras. En el ejemplo, las dos compras de Juan rindieron 2.40 y 2.50, pero su rendimiento
> del mes es **2.47** y no 2.45: la segunda compra fue del doble de tamaño y por eso pesa
> más. Es la forma correcta de medirlo.

> **Solo se comparan proveedores del mismo producto y la misma unidad de compra.** No tiene
> sentido comparar libras contra cajas.

> Para que el reporte tenga datos, hay que registrar el porcionado de las compras. Vea
> [Comprar materia prima y registrar el porcionado](compra-con-porcionado.md).