6. Módulo Carnicería (butcher-pos)
El módulo Carnicería convierte el punto de venta en un POS cárnico: lee tiquetes de básculas comerciales y códigos de barras por peso, controla las mermas de lo pesado y no facturado, registra transformaciones de inventario (por ejemplo, despostar canal en cortes) y contabiliza las liquidaciones que envía la planta.
Requiere el módulo activo para la empresa (capítulo 5). Grupo de menú: Carnicería.
6.1 Permisos del módulo
| Permiso | Habilita |
|---|---|
bpos-manage-stations | Pantalla Básculas (crear/editar estaciones). |
bpos-view-unbilled | Tiquetes sin facturar y su reporte imprimible. |
bpos-view-transformations | Ver Transformaciones y su reporte. |
bpos-manage-transformations | Crear y anular transformaciones. |
bpos-view-settlements | Ver Liquidaciones PV e imprimirlas. |
bpos-manage-settlements | Descargar y contabilizar liquidaciones PV. |
El escáner del POS no exige permiso propio: usa el permiso normal de ventas.
6.2 Básculas (estaciones)
Ruta: Carnicería → Básculas.
Cada báscula física es una fila con puesto (código corto), marca, nombre y, solo para Marques, host/IP. No puede repetirse el mismo puesto para la misma marca. Desactivar una báscula la saca de servicio sin borrarla.
Cómo lee el sistema cada marca:
| Marca | Cómo se lee | Qué necesita |
|---|---|---|
| Dibal | Archivo diario .TOT que la báscula exporta a una carpeta compartida. | Ruta de archivos configurada para la empresa. |
| Epelsa | Archivo diario tqgen en carpeta compartida. Las filas anuladas por la báscula se ignoran solas. | Ruta de archivos configurada. |
| Marques | Consulta directa por red local (HTTP) a la IP de la estación. | Host/IP en la fila de la báscula y visibilidad de red desde el servidor. |
La configuración fina de la empresa (modo de escáner por defecto, rutas de las carpetas de archivos, prefijo del código de peso, "usar el precio del tiquete") se ajusta en Carnicería → Configuración (ver 6.7).
6.3 Vender con báscula en el POS
Con el módulo activo, la pantalla de venta reemplaza el buscador de líneas por el campo "⚖ Escanear tiquete o código de peso (Enter)". Si hay más de una báscula registrada aparece un selector de estación (Automático deja que el código decida).
Flujo del cajero:
- Escanee (o digite) el código y presione Enter.
- Las líneas del tiquete entran a la factura con producto, cantidad y precio.
- Repita con los demás tiquetes y cierre la venta como cualquier POS.
Reglas que aplica el sistema:
- Código de peso (13 dígitos que comienzan por el prefijo de la empresa,
normalmente
24): funciona siempre, aunque no haya báscula en red. Trae producto y gramos; el precio sale de la lista de precios. - Tiquete de báscula: el sistema identifica puesto y número según la marca, lee la báscula/archivo e importa las líneas. Cantidades que llegan en gramos se convierten a kilos automáticamente (y la venta muestra la advertencia).
- Si la empresa activó usar el precio del tiquete, el precio impreso por la báscula manda sobre la lista; si no, decide la lista de precios.
- Los tiquetes Dibal pueden sugerir el vendedor de la venta.
- El mismo tiquete no puede entrar dos veces en la misma factura (el campo lo rechaza al instante) ni facturarse dos veces: al guardar la venta sus líneas quedan marcadas y un re-escaneo posterior responde "El tiquete ya fue facturado". Mientras no se facture, re-escanear es libre.
- Anular la factura libera los tiquetes, que pueden facturarse de nuevo.
Mensajes frecuentes del escáner:
| Mensaje | Causa y acción |
|---|---|
| El código del tiquete debe ser numérico / debe tener 13 dígitos | Código mal digitado o etiqueta ilegible. |
| El código X no está creado | El producto no existe en el catálogo: créelo y reintente. |
| Error al leer el tiquete… verifique la conexión a las básculas | Archivo del día ausente o báscula Marques inalcanzable; revise red/carpeta. |
| Báscula N no configurada / sin básculas configuradas | Falta la fila de la estación o el modo de escáner de la empresa. |
| El tiquete ya fue facturado | Duplicado real: busque la venta original. |
6.4 Tiquetes sin facturar (control de mermas)
Ruta: Carnicería → Tiquetes sin facturar.
Lista, por fecha, todas las líneas pesadas en báscula que nunca llegaron a una factura: producto pesado y etiquetado que se vendió sin registrar o se quedó en vitrina. Revísela al cierre del día.
La versión imprimible está en Reportes → Carnicería → Tiquetes sin facturar (PDF o Excel), con el nombre del producto y los totales del día.
6.5 Transformaciones de inventario
Ruta: Carnicería → Transformaciones. Ver §6.1 para permisos.
Una transformación convierte existencias de un producto en otro en una sola operación: sacar X kilos del producto origen y entrar Y kilos del producto destino (por ejemplo, 10 kg de canal → 8 kg de cortes; los 2 kg de diferencia son la merma del proceso).
Crear
- Seleccione producto que sale y la cantidad a sacar.
- Seleccione producto que entra y la cantidad que entra.
- Agregue notas si las necesita. La pantalla muestra la merma implícita.
- Transformar y confirme. El saldo y el costo se mueven de inmediato.
Reglas:
- Cantidades positivas, hasta 3 decimales; origen y destino no pueden ser el mismo producto ni compartir el mismo inventario (productos hijos del mismo padre se rechazan, porque el saldo vive en el padre).
- El origen debe tener saldo suficiente. (La guarda se puede desactivar en Carnicería → Configuración si la operación tolera saldos negativos.)
- El costo viaja con el producto: el valor consumido (kilos × costo promedio del origen) se reparte entre los kilos producidos. En el ejemplo: 10 kg a $10.000 = $100.000, que en 8 kg dejan el destino a $12.500/kg — la merma queda costeada automáticamente. Si el origen tiene costo $0, el sistema lo advierte.
- Cada transformación queda numerada, con usuario y fecha, y genera sus propios movimientos de kardex («Transformación (salida)» y «Transformación (entrada)»), visibles en Inventario → Stock → producto.
Anular
En la fila, Anular y confirmar. Los movimientos se reversan con asientos nuevos (el kardex nunca se borra) y los saldos vuelven a su estado. No puede anularse dos veces, y si el producto destino ya no tiene el saldo (se vendió), el sistema lo impide e indica cuánto hay.
Reporte
Reportes → Carnicería → Transformaciones: todas las del rango de fechas, con cantidades, costo trasladado, estado (activa/anulada) y totales.
6.6 Liquidaciones PV (mercancía enviada por la planta)
Ruta: Carnicería → Liquidaciones PV. Disponible con el módulo activo; solo requiere la URL de descarga configurada en Carnicería → Configuración (6.7) para poder descargar de la nube.
La planta liquida un desposte y publica el resultado en la nube; el punto de venta lo descarga y lo contabiliza como compra, que es su entrada de mercancía. Si la planta no publica en la nube (por ejemplo, entrega el documento en papel), use Registrar manual: digite el número de la liquidación, el proveedor y los productos con cantidad y costo — la liquidación queda igual de contabilizable que una descargada, y con la misma protección contra duplicados (número + proveedor).
- Descargar: escriba el número de liquidación y el proveedor. El sistema trae las líneas y resuelve cada código contra el catálogo local.
- Si alguna línea queda sin resolver (producto inexistente), créelo en el catálogo y descargue de nuevo — la descarga es repetible y se refresca.
- Contabilizar: indique tipo de documento y sucursal del proveedor. Se crea una compra normal del núcleo: entra stock, se actualiza el costo promedio y queda la cuenta por pagar. La liquidación pasa a Contabilizada con el número de compra enlazado.
- Imprimir genera el comprobante PDF.
Protecciones: una liquidación no puede contabilizarse dos veces; anular la compra resultante la libera para contabilizarla de nuevo; una liquidación con líneas sin resolver no se puede contabilizar.
6.7 Configuración del módulo
Ruta: Carnicería → Configuración (permiso bpos-manage-stations).
Activar el módulo enciende Carnicería completa (incluidas las liquidaciones PV); aquí se afina cómo trabaja para esta empresa:
| Ajuste | Qué controla |
|---|---|
| Modo de escáner | Qué resolutor usa el POS por defecto: Dibal, Epelsa, Marques o solo código de peso. |
| Ruta de archivos Dibal / Epelsa | Carpeta compartida donde la báscula exporta su archivo diario. |
| Prefijo del código de peso | Con qué dígitos empieza un código de barras de peso (normalmente 24). |
| Dígitos del código de producto | Cuántos dígitos del código de barras identifican el producto (normalmente 5). |
| Usar el precio del tiquete | Si el precio que pesó la báscula manda sobre la lista de precios. |
| URL de descarga de liquidaciones | Dirección de la nube donde la planta publica sus liquidaciones; sin ella no hay de dónde descargarlas. |
| Exigir existencias al transformar | Si una transformación puede dejar el producto origen en saldo negativo (apagado = se permite, hábito del sistema anterior). |
Los cambios rigen de inmediato; no hace falta cerrar sesión.