nuraresto· ayudanuraresto.app

Compras (proveedores y órdenes de compra)

Ruta: /inventario/compras · /inventario/compras/proveedores Quién la usa: gerente (aprueba y recibe), cocina (arma la orden) Permiso requerido: inventory.manage para ver y armar la orden; purchase.approve para aprobar, rechazar y recibir Capturas: docs/manual/screenshots/inventario/

Qué es

Compras es el documento con el que entra la mercadería: una orden de compra con proveedor, líneas (artículo, cantidad, costo unitario, descuento) y un total. La pantalla tiene dos pestañas —Órdenes y Proveedores— y, en Órdenes, tres bloques: el formulario Nueva compra, el Historial de las últimas órdenes y, en cada una, sus acciones. La firma va antes que el inventario: recibir una orden aprobada es lo que mueve el stock y recalcula el costo promedio. Una orden ya recibida es historia y no se edita.

Cuándo se usa

Cuando llega el pedido del proveedor, o antes, para dejar la orden armada y que el gerente la autorice. En frankies-sim la orden del día la creó cocina a las 06:30 y la aprobó y recibió el gerente: OC-000001 · Distribuidora Sim · recibida · Harina ×25 · Mozzarella ×10 · Reposición semanal · aprobada por Gerente Sim · $200.00.

Paso a paso

  1. Desde Inventario, presione 🧾 Compras. Se abre la pestaña Órdenes.
  2. En Nueva compra, elija el Proveedor en el desplegable (en la simulación: Distribuidora Sim u Otro (texto libre)). Con Otro aparece un campo de texto libre al lado.
  3. Escriba la Nota (ej. factura #123) si quiere dejar el número de factura.
  4. En la línea, elija el Artículo. El campo $ unit. se llena solo con el costo del artículo (elegir Harina (kg) pone 2.8); puede sobrescribirlo con el costo real de la factura. Escriba la Cant.
  5. Si el proveedor dio descuento, escriba el monto en Desc. y use el botón $ al lado para alternar entre monto y porcentaje. Con 10 en modo % sobre una línea de $28.00, el Total pasa a $25.20 y el bruto $28.00 queda tachado a su izquierda.
  6. Agregue más líneas con + Agregar línea; quite una con ✕. Si hay un descuento sobre toda la compra, escríbalo en Descuento de la compra: con su propio botón $ / %.
  7. Cierre la orden con uno de los dos botones: Guardar orden la deja registrada pendiente de aprobación; Registrar y recibir la aprueba y la recibe en un solo paso, y sólo aparece si usted tiene purchase.approve.
  8. Revise el Historial. Cada orden muestra su número OC-000001, el proveedor, el estado en chip (pendiente · aprobada · recibida · rechazada · cancelada), la fecha, sus líneas, la nota, quién la decidió y el total. Orden de compra recibida en el historial
  9. Sobre una orden aprobada o recibida están Copiar (deja el texto de la orden en el portapapeles), WhatsApp (abre el chat con el teléfono del proveedor y el texto ya escrito) y PDF (abre el documento imprimible).
  10. Para el efecto en existencias, vuelva a ← Inventario: tras la recepción del día, Harina quedó en 95 kg con costo promedio $2.80/kg y Mozzarella en 26.648 kg a $13.00/kg (el costo promedio se recalcula ponderando el costo nuevo con el que ya había).
  11. Para el catálogo del proveedor, abra la pestaña Proveedores. Ficha del proveedor con su catálogo
  12. Cree uno con Nuevo proveedor (ej. Distribuidora XYZ) + WhatsApp (ej. +507 6…) y Crear proveedor. Despliegue una ficha con ▸ para editar Nombre, Contacto (ej. Ana), WhatsApp, Email y Nota, y guarde con Guardar datos.
  13. Bajo CATÁLOGO, elija Artículo…, escriba el $ unit. que le cobra ese proveedor y su Código, y presione + Agregar. La lista de artículos del proveedor aparece encima de esa fila, cada uno con su costo, su unidad y una ✕ para quitarlo.

Campos y botones

Campo/BotónQué haceNotas
Órdenes / ProveedoresCambian de pestañaAmbas exigen inventory.manage
← InventarioVuelve a /inventario—
ProveedorElige a quién se le compraOtro (texto libre) abre un campo para escribir el nombre
Nota (ej. factura #123)Texto libre de la ordenSale en el historial junto a las líneas
ArtículoElige el insumo de la líneaAl elegirlo se autocompleta el costo unitario
Cant.Cantidad compradaLas líneas sin artículo o con cantidad 0 se descartan al guardar
$ unit.Costo unitario de la líneaAdmite hasta 4 decimales de centavo
Desc. + botón $Descuento de la líneaEl botón alterna entre monto y porcentaje; el descuento nunca supera el bruto de la línea
✕Quita la líneaNo se puede quitar la última línea
+ Agregar líneaAgrega una línea vacía—
Descuento de la compra: + botón $Descuento sobre el total ya neto de líneasMismo alternador monto/porcentaje
TotalSuma de líneas menos descuentosSi hay descuento, el bruto aparece tachado a la izquierda
Guardar ordenRegistra la ordenCon purchase.approve responde «Orden creada y aprobada.»; sin él, «Orden creada — pendiente de aprobación.»
Registrar y recibirAprueba y recibe en un pasoSólo con purchase.approve. Responde «Compra registrada y recibida — inventario y costos actualizados.»
Aprobar / RechazarDeciden una orden pendienteSólo con purchase.approve. Rechazar pide antes «Motivo del rechazo (opcional):»
CancelarAnula una orden pendiente o aprobadaUna orden recibida ya no se puede cancelar
RecibirMueve el stock de una orden aprobadaSólo con purchase.approve
Copiar / WhatsApp / PDFComparten la ordenSólo en órdenes aprobadas o recibidas
Nuevo proveedor + WhatsAppAlta rápida de proveedorCrear proveedor queda deshabilitado mientras el nombre esté vacío
Guardar datos / DesactivarGuardan o desactivan el proveedorNo hay borrado: las órdenes lo siguen referenciando para siempre. En un proveedor inactivo el botón dice Reactivar
CATÁLOGO: Artículo… · $ unit. · Código · + AgregarPrecio del proveedor por artículo+ Agregar queda deshabilitado sin artículo elegido; la ✕ de cada fila lo quita del catálogo

Lo que esta pantalla no hace: no envía la orden al proveedor por sí sola —Copiar y WhatsApp son manuales—, no permite editar una orden ya guardada (se cancela y se rehace) y no lleva cuenta por pagar del proveedor.

En la simulación, Distribuidora Sim tiene 0 producto(s) en su catálogo: por eso el costo que se autocompleta en la línea es el costo promedio del artículo, no un precio del proveedor. La única orden del día está en estado recibida, así que en el historial sólo se ven Copiar, WhatsApp y PDF; Aprobar, Rechazar, Cancelar y Recibir son las acciones que la misma fila muestra mientras la orden sigue pendiente o aprobada.

Con inventory.manage pero sin purchase.approve —el caso de la persona de cocina— la pantalla se abre igual, pero el único botón bajo el total es Guardar orden: Registrar y recibir no se dibuja, y las órdenes pendientes no muestran Aprobar ni Rechazar. Un cajero sin inventory.manage ve sólo el texto «Sin permiso para compras.» tanto en /inventario/compras como en /inventario/compras/proveedores.

Mensajes y errores

"Esta compra ya fue decidida." NG_PO_NOT_PENDING

"Esta compra necesita aprobación antes de recibirse." NG_PO_NOT_APPROVED

"Esta compra ya no se puede cancelar." NG_PO_IMMUTABLE

"Agrega al menos una línea." NG_LINES_REQUIRED

"Artículo no válido." NG_ITEM_INVALID

"Proveedor no válido." NG_SUPPLIER_INVALID

"Ya existe un proveedor con ese nombre." NG_SUPPLIER_DUPLICATE

"Escribe un nombre." NG_NAME_REQUIRED

"El costo no es válido." NG_COST_INVALID

"No tienes permiso para esta acción." NG_FORBIDDEN

"Algo salió mal. Intenta de nuevo." NG_UNKNOWN — es lo que se ve cuando la cantidad (NG_QTY_INVALID) o el descuento (NG_DISCOUNT_INVALID) no son válidos: esos códigos no tienen texto propio en español.

El formulario tiene además una validación propia, antes de llamar al servidor: si ninguna línea tiene artículo y cantidad, responde «Agrega al menos una línea con artículo y cantidad.»

Relacionado