Market y balones
Para qué sirve
El módulo Market y balones controla todo lo que tu estación vende que no sale de un tanque: los productos de la tienda (bebidas, snacks, aditivos), los lubricantes y los balones de gas GLP (de 10 kg, 15 kg, 45 kg…). Con él:
- Sabes cuánto stock tienes de cada producto en cada estación y cuáles están bajo el mínimo.
- Cada entrada o salida queda en el kardex (el libro de movimientos del producto) con su costo promedio.
- Registras mermas, roturas, vencimientos o robos con un motivo (ajustes auditados).
- Trasladas mercadería de una estación a otra de tu empresa.
- Haces la toma de inventario física sin detener la venta.
- Recibes las compras de market y el sistema recalcula el costo promedio (el registro de nuevas órdenes de compra de market aún no está disponible: ver Recepción de compras de market).
- Controlas los balones llenos y los envases vacíos (canje del balón vacío por uno lleno; ver Balones de gas (GLP)).
- Vendes en un POS de market táctil o desde el POS de isla.
Dónde está
/marketLa pantalla trabaja siempre sobre la estación activa (la que eliges en la cabecera del sistema). Si cambias de estación, el módulo se vuelve a cargar con el stock de la nueva estación. Sin estación activa verás el aviso "Seleccione una estación para operar el market."
El módulo solo aparece si el plan de tu empresa incluye market.
La cabecera muestra el título Market, el nombre de la estación y el texto "stock, kardex, ajustes, transferencias y tomas de inventario.". A la derecha, si hay productos bajo su stock mínimo, aparece un aviso amarillo "N producto(s) bajo el mínimo".
Quién puede
| Acción | Permiso |
|---|---|
| Entrar al módulo, ver Stock, Kardex y Transferencias | Permisomarket.ver |
| Ver la pestaña Ajustes y registrar ajustes de stock | Permisomarket.ajustar_stock |
| Enviar y anular transferencias a otra estación | Permisomarket.transferir_stock |
| Recibir una transferencia en la estación destino | Permisomarket.recibir_transferencia |
| Ver la pestaña Tomas de inventario, abrir tomas y contar | Permisomarket.tomar_inventario |
| Cerrar una toma de inventario | Permisomarket.cerrar_inventario |
| Ver costos (costo promedio, valorizado, valor de diferencias) | Permisomarket.ver_costos |
| Vender en el POS de market | Permisomarket.vender |
| Recibir una compra de market (desde Compras) | Permisocompras.recibir |
Roles que traen estos permisos por defecto:
- Administrador: todos.
- Administrador de Estación y Almacén: todo el módulo de market (incluido ver costos).
- Vendedor de Market: ver el market y vender (sin costos, sin ajustes).
- Playero: vender productos de market.
- Solo lectura: solo ver.
:::info Sin costos no hay columnas de costo
Si tu rol no tiene Permisomarket.ver_costos, el sistema oculta las columnas de costo promedio,
valorizado y valor de las diferencias en todas las pestañas. Así un vendedor ve cuánto stock hay, pero no cuánto
costó.
:::
:::warning Bajo impersonación Cuando el soporte de MDSYS entra a tu empresa "como si fuera un usuario" (impersonación), no puede vender, ajustar stock, transferir, recibir transferencias ni cerrar tomas de inventario. :::
Conceptos
Producto que controla stock. Solo los productos con el interruptor Controla stock activado en el catálogo de productos aparecen en este módulo. Los tipos de producto del market son:
| Tipo de producto | Ejemplos | Controla stock |
|---|---|---|
| Market | Gaseosa 500 ml, galletas, agua | Sí por defecto (se puede apagar) |
| Lubricante | Aceite 20W-50 1 galón | Sí por defecto |
| Balón de GLP | Balón 10 kg | Siempre (no se puede apagar) |
El combustible líquido, el GLP vehicular y el GNV no pasan por este módulo (tienen su propio inventario de tanques; ver Reportes).
Stock por estación. Cada estación tiene su propio stock de cada producto. El stock se guarda con 3 decimales
(por ejemplo 12.000 unidades o 3.500 kg).
Stock mínimo. Es la cantidad que defines en el producto (campo Stock mínimo, visible cuando Controla stock está activo). Un producto está bajo el mínimo cuando su stock es menor o igual a ese número.
Kardex. Es el libro de movimientos de cada producto en cada estación: cada compra, venta, ajuste, traslado o toma de inventario deja una línea con la cantidad (positiva = entrada, negativa = salida), el saldo que quedó y el costo. El kardex nunca se edita ni se borra: un error se corrige con otro movimiento.
Costo promedio ponderado (CPP). Cada entrada con costo (compra, traslado recibido, anulación de venta, ajuste o toma positivos) recalcula el costo promedio:
nuevo CPP = (saldo × CPP actual + cantidad que entra × costo de la entrada) ÷ (saldo + cantidad que entra)
Las salidas (ventas, mermas, traslados enviados) se valorizan al CPP vigente y no lo cambian. Si el saldo era cero o negativo, el nuevo CPP es directamente el costo de la entrada. El CPP se calcula por estación.
Ejemplo real (gaseosa 500 ml en la estación Los Olivos):
| Movimiento | Cantidad | Costo | Saldo | CPP resultante |
|---|---|---|---|---|
| Saldo inicial | 20.000 | S/ 10.0000 | ||
| Compra | +30.000 | S/ 12.5000 | 50.000 | (20 × 10 + 30 × 12.5) ÷ 50 = S/ 11.5000 |
| Venta | −5.000 | S/ 11.5000 | 45.000 | S/ 11.5000 (no cambia) |
| Compra | +15.000 | S/ 13.0000 | 60.000 | (45 × 11.5 + 15 × 13) ÷ 60 = S/ 11.8750 |
Stock negativo. Por defecto una salida que deja el stock por debajo de cero se rechaza con el mensaje "Stock insuficiente de {producto} (disponible X).". Si tu estación prefiere no frenar la venta y corregir después con una toma de inventario, puedes activar el ajuste Permitir stock negativo en el market (ver Configuración). En la pestaña Stock, un producto con stock negativo se marca en rojo con la etiqueta Negativo.
Balones llenos y envases vacíos. En un balón de GLP el stock normal son los balones llenos; aparte, el sistema lleva el saldo de envases vacíos que tienes en la estación. Ver Balones de gas (GLP), más abajo.
Las pestañas del módulo
Las pestañas se muestran según tus permisos (si no tienes ninguno verás "No tiene permisos sobre el market."):
| Pestaña | Qué haces | Permiso | Detalle |
|---|---|---|---|
| Stock | Consultas el stock, filtras, exportas y ajustas | Permisomarket.ver | Stock, kardex y ajustes |
| Kardex | Revisas los movimientos por producto, tipo y fechas | Permisomarket.ver | Stock, kardex y ajustes |
| Ajustes | Registras mermas, roturas, vencimientos… | Permisomarket.ajustar_stock | Ajustes de stock |
| Transferencias | Envías, recibes o anulas traslados entre estaciones | Permisomarket.ver | Transferencias |
| Tomas de inventario | Cuentas físicamente y cuadras contra el sistema | Permisomarket.tomar_inventario | Toma de inventario |
Fuera de esta pantalla, el market también se opera desde:
- Compras → acción Recepción market: Recepción de compras de market.
- POS de market (
/pos/market) y el POS de isla: Venta en el POS de market.
Las pestañas se cargan la primera vez que las abres y se refrescan solas: cuando registras un ajuste, recibes una transferencia o se registra una venta, las tablas de Stock y Kardex se actualizan sin recargar la página. Si una pestaña no puede cargar verás el mensaje de error con el botón Reintentar.
Flujo general
Balones de gas (GLP)
En la venta de balones de gas (10 kg, 15 kg, 45 kg) lo normal es el canje: el cliente entrega su balón vacío y se lleva uno lleno. Si el cliente no trae vacío, se le vende también el envase. MDSYS Grifos lleva por separado el stock de balones llenos y el de envases vacíos de cada estación, para que sepas cuántos vacíos debes devolver al proveedor y cuántos llenos te quedan.
No hay una pantalla aparte: los balones se ven y se mueven en las mismas pantallas del market.
- Stock: el ícono de llama identifica al balón; la columna Stock son los llenos y debajo Vacíos X.
- Kardex: los movimientos de vacíos llevan (vacíos) en la columna Movimiento.
- Venta: POS de market y POS de isla (con Permiso
market.vendero Permisopos.vender). - Compra: Recepción de compras de market (campo Vacíos entregados).
- Traslado: Transferencias (campo Vacíos).
Conceptos de balones
- Producto de tipo Balón de GLP: en el catálogo de productos elige el tipo Balón de GLP (unidad UND). Este tipo siempre controla stock.
- Llenos: el stock normal del producto; se valoriza al costo promedio.
- Vacíos: saldo aparte de envases vacíos del mismo producto. No tienen costo (el envase es un activo retornable), así que sus movimientos van en el kardex con costo cero.
- Envase como producto: un balón puede tener asociado un producto "envase" (por ejemplo Envase balón 10 kg, tipo Market, con su propio precio y stock) que se cobra cuando el cliente no trae vacío.
:::info Envase asociado La asociación balón → producto envase no se configura desde el formulario de productos en esta versión. Si tu estación cobra el envase por separado, pide a soporte de MDSYS que lo asocie. Sin envase asociado, la venta "sin canje" cobra solo el balón lleno. :::
Cómo se mueve el stock de un balón
| Operación | Llenos | Vacíos | Tipo en el kardex |
|---|---|---|---|
| Venta con canje (el cliente entrega su vacío) | −1 | +1 | Venta · Canje de envase (vacíos) |
| Venta sin canje | −1 | sin cambio | Venta (y venta del producto envase, si está asociado) |
| Compra al proveedor con vacíos entregados | +llenos recibidos | −vacíos entregados | Compra · Canje de envase (vacíos) |
| Transferencia enviada | −llenos | −vacíos enviados | Transferencia (salida) |
| Transferencia recibida | +llenos | +vacíos | Transferencia (entrada) |
| Anulación de una venta con canje | +1 | −1 | Anulación de venta · Canje de envase (vacíos) |
| Ajuste o toma de inventario | ± | sin cambio | Ajuste / Toma de inventario |
Vender un balón
- Agrega el balón a la venta
En el POS (de market o de isla), búscalo o escanéalo.
- Responde la pregunta del canje
Aparece Balón de GLP: "¿El cliente entrega un balón vacío a cambio de {balón}?". Pulsa Sí, con canje o No, sin canje.
- Revisa los ítems
El ítem se muestra como "Balón 10 kg · con canje" o "Balón 10 kg · sin canje". Si es sin canje y el balón tiene envase asociado, se agrega además el ítem del envase con su precio.
- Cobra
Al registrar la venta, el sistema descuenta el lleno y, con canje, suma un vacío.
Reglas de balones
- Solo los productos Balón de GLP manejan envases vacíos. Intentar mover vacíos de otro producto da "Solo los balones GLP manejan envases vacíos."
- Los vacíos nunca quedan en negativo: si entregas o envías más vacíos de los que hay verás "Envases vacíos insuficientes de {producto} (disponible X)."
- Los llenos siguen la regla general de stock negativo del market.
- El canje de envase no cambia el costo promedio del balón.
Ejemplo con balones
La estación Comas tiene 30 balones de 10 kg llenos y 12 vacíos. Vende 4 con canje y 1 sin canje (con envase asociado a S/ 90.00): quedan 25 llenos y 16 vacíos, y el envase vendido sale de su propio stock. Luego compra 20 balones a la distribuidora y le entrega 16 vacíos: quedan 45 llenos y 0 vacíos.
Lector de código de barras y cámara
Todas las búsquedas del market aceptan código de barras o código interno del producto:
- Lector USB (pistola): basta con disparar sobre el producto con el cursor en un campo de búsqueda marcado con el ícono de código de barras. El sistema reconoce la lectura (ráfaga rápida de al menos 6 caracteres terminada en Enter) y la procesa sola.
- Cámara (celular o tablet): el botón Cámara abre la ventana Escanear código con el texto "Apunte la cámara al código de barras…". Lee EAN-13, EAN-8, UPC-A, Code 128 y QR. Si el equipo no tiene cámara o no da permiso, verás el motivo y "Use la búsqueda manual.". Pulsa Cancelar para cerrar.
- Si el código no existe en tu empresa: "El código X no existe." (la venta o el formulario no se tocan).
:::tip Consejo Registra el código de barras de cada producto en el catálogo (campo Código de barras). Es lo que hace rápidas la venta, la recepción y la toma de inventario. :::
Alertas de stock mínimo
- Al abrir el módulo, la cabecera muestra "N producto(s) bajo el mínimo" si hay productos en esa situación en la estación activa. Para verlos, activa el filtro Solo bajo el mínimo en la pestaña Stock.
- Después de cada salida (venta, ajuste…), si el producto quedó en su mínimo o por debajo, el sistema crea una notificación con el título "Stock mínimo: {producto}" y el texto "{producto} en {estación} tiene {stock} (mínimo {mínimo}).". Se crea una sola vez por día por producto y estación, para no llenarte de avisos.
- Además, una revisión automática diaria recorre todos los productos bajo el mínimo como respaldo.
Las notificaciones se ven en la campana del sistema y pueden enviarse por correo o WhatsApp según la configuración de notificaciones (ver Notificaciones).
Ajustes relacionados
| Ajuste (nombre visible) | Qué hace | Valor por defecto |
|---|---|---|
| Permitir stock negativo en el market | Permite vender o sacar stock aunque no alcance | Desactivado |
Mensajes de error frecuentes y qué hacer
| Mensaje | Por qué pasa | Qué hacer |
|---|---|---|
| "Seleccione una estación para operar el market." | No tienes estación activa | Elige una estación en la cabecera |
| "No tiene permisos sobre el market." | Tu rol no tiene ningún permiso del market | Pide a tu administrador el permiso que necesites |
| "Stock insuficiente de {producto} (disponible X)." | La salida dejaría el stock en negativo | Revisa el stock, registra la compra pendiente o haz una toma de inventario |
| "El producto no controla stock." | El producto tiene apagado Controla stock | Actívalo en el catálogo de productos si debe llevar inventario |
| "Producto no encontrado." | El producto no existe, fue eliminado o es de otra empresa | Verifica el código o el producto elegido |
Relación con otros módulos
- Catálogo de productos: tipo de producto, código de barras, Controla stock y Stock mínimo (ver Configuración).
- Proveedores y Compras: las compras de market se reciben con la acción Recepción market; al recibirlas se genera la cuenta por pagar.
- POS de isla: cada venta de un producto con stock descuenta el stock; la anulación lo devuelve.
- Fidelización: el canje de un premio de market también descuenta stock.
- Reportes: auditoría de ajustes y notificaciones.