P

Guía Operativa PINSA

Sistema de gestión · Bodega · Recetas · Cocina Central  ·  Actualizado 15/03/2026

¿Cuál es tu rol hoy?
⚡ Tus tareas principales hoy
📦 Bodega Central
🛒
Emitir Orden de Compra
Generar OC a proveedor y registrar en sistema
🕐 Cuando se necesita reponer stock
📋
Usar cuando la hoja Reposicion_BC tiene productos con cantidad confirmada (col J) y proveedor seleccionado (col L), y la columna O no dice "SI" (ya emitida).
Pasos
1
Verificar Reposicion_BC
Asegúrate que col J (Q confirmada) tenga valores > 0 y col L (proveedor) esté seleccionado. Col O debe estar vacía o en blanco.
2
Abrir el menú BCentral
En CONTROL_MAESTRO_2026, buscar el menú BCentral en la barra superior → seleccionar Emitir Órdenes de Compra.
3
Confirmar ejecución
El script pide confirmación. Acepta. Espera el mensaje de éxito. Se generará un PDF en Google Drive y un borrador de Gmail si el proveedor tiene email.
4
Verificar en OC_Log
La OC debe aparecer en hoja OC_Log con estado EMITIDA y número de formato OC-YYYYMMDD-HHmm-PROV.
▶ Script que se ejecuta
emitirOrdenesDeCompra()
Menú BCentral → "Emitir Órdenes de Compra" · CONTROL_MAESTRO_2026
⚠️
Si una fila ya tiene col O = "SI", el script la omite automáticamente. No la borres ni la modifiques.
🚫
No ejecutar si col J está vacía — el script no genera OC por $0 pero puede generar filas erróneas en OC_Log.
🚚
Enviar Entrega → BLocal
Registrar salida de Bodega Central hacia Local
📅 Uso diario / cuando se prepara despacho
📋
Usar cuando vas a enviar productos desde Bodega Central hacia un local (Candelaria u otro). Registra la salida y crea automáticamente el movimiento en el local de destino.
Pasos
1
Abrir Movimientos_BC
En CONTROL_MAESTRO_2026, ir a la hoja Movimientos_BC. Agregar una nueva fila con los datos del despacho (SKU, cantidad, local destino).
2
Completar campos obligatorios
Tipo de movimiento = Entrega BLocal · Local destino · SKU activo · Q UO Entregada (col J) mayor a cero.
3
Ejecutar el script
Menú BCentralEnviar Entrega a BLocal. El script valida todo y escribe automáticamente en Movimientos_BLocal del local destino.
4
Verificar ID Entrega
La col T (ID Entrega BCentral) debe quedar completada. Ese ID es el vínculo para la confirmación posterior.
▶ Script que se ejecuta
inviaConsegna()
Menú BCentral → "Enviar Entrega a BLocal" · CONTROL_MAESTRO_2026
⚠️
El script valida que el SKU esté activo en BD_INSUMOS (col AG = "SI"). SKUs inactivos son rechazados.
Estado en col S cambia a ENVIADO (amarillo) automáticamente. Queda esperando confirmación del local.
Confirmar Recepción en Local
El local confirma lo recibido vs lo enviado
📅 Después de recibir cada consegna
📋
El Jefe de Local recibe los productos y debe confirmar las cantidades reales. Si hay diferencia con lo enviado, el sistema lo marca automáticamente.
Pasos — Jefe Local (Candelaria)
1
Abrir Movimientos_BLocal en Candelaria
En CONTROL_CANDELARIA_2026, ir a hoja Movimientos_BLocal. Buscar las filas con estado ENVIADO (amarillo).
2
Ingresar cantidad recibida
En la columna de Q Recibida, ingresar la cantidad real que llegó. Si todo llegó completo, iguala a la Q Enviada.
3
Ejecutar confirmación
Menú BCentral en Candelaria → Confirmar Recepción. El script actualiza el estado y notifica a BCentral.
▶ Script que se ejecuta
leggiConferme()
Se ejecuta automáticamente (trigger) o desde Menú BCentral · CONTROL_MAESTRO_2026
Si Q recibida = Q enviada → estado cambia a RECIBIDO (verde).
⚠️
Si Q recibida ≠ Q enviada → estado cambia a DIFERENCIA (rojo). Se crea automáticamente un ajuste correctivo.
🔁
Reconfirmar en BCentral
BCentral revisa y cierra el ciclo de entrega
🕐 Después que el local confirme recepción
📋
Después que el local confirma la recepción, el Jefe de Bodega revisa si hay diferencias y cierra el movimiento. Si hay DIFERENCIA, se debe investigar y corregir.
Pasos
1
Revisar Movimientos_BC
Buscar filas con estado DIFERENCIA (col S en rojo). Comparar col J (enviado) con lo confirmado por el local.
2
Decidir acción
Si la diferencia es correcta → marcar como CORREGIDO. Si fue un error de digitación → corregir y re-confirmar.
3
Verificar ajuste automático
El sistema ya habrá creado un Ajuste-menos automático en Movimientos_BC para compensar la diferencia. Verificar que el stock cuadra.
ℹ️
Los estados posibles en col S son: ENVIADO (amarillo) → RECIBIDO (verde) / DIFERENCIA (rojo) → CORREGIDO (gris).
🧑‍🍳 Cocina Central
🍳
Registrar lote producido
Anotar cada preparación completada en PRODUCCION_CC
📅 Cada vez que se completa un lote
📋
Cada vez que terminas de producir una preparación — salsa, base, masa — debes registrarla en CONTROL_MAESTRO_2026 → hoja Produccion_CC. Este registro es la fuente de verdad del inventario de CC y la base del bono semanal.
Pasos
1
Abre PRODUCCION_CC
En CONTROL_MAESTRO_2026, ir a la hoja Produccion_CC. Ir a la primera fila vacía al final.
2
Selecciona la receta
Col D (Nombre_Receta) — Dropdown con todas las PREPARACIONES. Escribe las primeras letras para filtrar. El código REC-XXXX se completa automáticamente en col C.
3
Completa los campos manuales
Col A — ID_Produccion: formato PC-2026-001 (número correlativo)
Col B — Fecha: fecha de producción
Col E — Tipo de Registro: Producido / Planificado / Cancelado
Col F — Q_lotes_plan: cuántos lotes planificabas producir
Col G — Q_lotes_real: cuántos lotes produjiste realmente
Col I — Q_salida_real_gr: gramos reales obtenidos al final
4
Verifica los campos automáticos
Las columnas H (Q teórica), J (Merma gr), K (Merma %), L (Costo teórico), M (Costo total), N (Rendimiento) se calculan solos. Si Costo aparece $0 o PENDIENTE → falta costo en RECETAS_MASTER, avisar al JO.
5
Marca el estado final
Col Q (Estado): OK si todo normal · Merma Alta si perdiste más del 6% · Sin Costo si falta precio · Cancelado si no se completó.
6
Avisa al Jefe de Bodega
Cuando el lote está registrado y físicamente listo, avisa al JB para que registre la Entrada_CC en Movimientos_BC. Sin ese paso el producto no existe en el inventario de BC.
🚦
Regla de flujo CC → BC → Local
El único camino válido para que las preparaciones lleguen a los locales
🔴 Regla siempre — sin excepciones
1️⃣
CC produce y registra → fila en PRODUCCION_CC con Q_salida_real_gr
2️⃣
JB recibe y registraEntrada_CC en Movimientos_BC. Solo si existe la fila en PRODUCCION_CC.
3️⃣
BC entrega al localEntrega BLocal normal. El producto ahora está en el inventario de BLocal.
❌ LO QUE NO DEBE PASAR
• CC entrega directo a BLocal sin pasar por BC
• CC entrega directo a una sección sin registro
• JB registra Entrada_CC sin que exista la fila en PRODUCCION_CC

Si el flujo se salta, el inventario miente y el bono no se puede calcular.
🏪 Candelaria
📤
Entrega BLocal → Sección
Registrar salida de bodega local hacia una sección operativa
📅 Uso diario — cada vez que se despacha a sección
📋
Cuando la Barra Café, Barra Jugos, Helados o Alimentos solicita insumos desde la bodega local, se debe registrar la salida manualmente en CONTROL_CANDELARIA_2026. Este movimiento descuenta el stock de BLocal e impacta el food cost de la sección.
Pasos
1
Abrir Movimientos_BLocal en Candelaria
En CONTROL_CANDELARIA_2026, ir a la hoja Movimientos_BLocal. Ir a la primera fila vacía al final de la tabla.
2
Completar los campos obligatorios
Col A — Fecha (hoy)
Col B — Tipo movimiento: Entrega Secc (valor exacto de PARAMETROS B27)
Col E — Sección destino: BARRA CAFE / BARRA JUGOS / HELADOS / ALIMENTOS
Col F — SKU del insumo (dropdown desde BD_INSUMOS)
Col M — Cantidad en UTM (negativo — es una salida)
3
Verificar el stock actualizado
Ir a hoja Inventario_BLocal y confirmar que el stock del SKU entregado bajó correctamente. El cálculo es automático.
⚠️
La cantidad en col M debe ir en UTM (unidad de medida base) — no en kilos ni unidades. Revisar la columna UTM en BD_INSUMOS si tienes dudas sobre la conversión.
🚫
No escribir en columnas con fórmulas. Solo editar: col A (fecha), B (tipo), E (sección), F (SKU), M (cantidad). Las demás se calculan solas.
Tipos de ajuste disponibles
Entrega Secc — salida normal a sección (negativo)
Ajuste + mas — corrección positiva de stock (ej. conteo físico)
Ajuste - menos — corrección negativa de stock
🗑️
Registrar Merma
Registrar pérdida o descarte de insumos en Bodega Local
📅 Registrar inmediatamente — no acumular
📋
Cualquier insumo descartado, vencido, derramado o dañado en la Bodega Local debe registrarse el mismo día en Movimientos_BLocal. Tipo de movimiento: Merma BLocal. El sistema mide merma semanal con umbral: ≤0.3% normal · ≤0.6% alerta · >0.6% crítico.
Pasos
1
Abrir Movimientos_BLocal
En CONTROL_CANDELARIA_2026, ir a Movimientos_BLocal. Primera fila vacía al final.
2
Completar los campos
Col A — Fecha (hoy, o fecha real del descarte)
Col B — Tipo movimiento: Merma BLocal (valor exacto de PARAMETROS B32)
Col E — Sección donde ocurrió la merma
Col F — SKU del insumo dañado / descartado
Col M — Cantidad en UTM (negativo)
Col N — Nota descriptiva: motivo de la merma (ej: "vencido", "derrame", "producto dañado")
3
Verificar en Inventario_BLocal
El stock del SKU afectado debe haber bajado. Si la merma es de Clase A (producto de alto valor), el impacto aparecerá en el KPI de merma del dashboard.
¿Cuándo aplica cada tipo?
Producto vencido — insumo fuera de fecha. Registrar y descartar físicamente.
Derrame o rotura — accidente en manipulación. Registrar inmediatamente.
Producto dañado en recepción — llega en mal estado desde BCentral. Registrar merma + avisar diferencia en confirmación.
Merma de producción — pérdida normal en preparación (ej. cáscaras, residuos). Registrar si supera lo esperado.
⚠️
Solo productos de Clase A (BD_INSUMOS col AJ = "A") generan alerta en el dashboard de merma. Los Clase B y C se registran igualmente pero no afectan el KPI de bono.
Una merma bien registrada protege al equipo: el sistema distingue entre pérdida real y error de digitación. Sin registro, el stock queda inflado y el food cost se distorsiona.
🧑‍🍳 Secciones Operativas
📝
Registrar Merma Diaria de Sección
Insumos descartados en Barra Café, Jugos, Helados o Alimentos
📅 Registrar cada vez que ocurra — no acumular
📋
Cada operador registra las mermas de su sección directamente en la hoja MERMA_DIARIA de CONTROL_CANDELARIA_2026. Este registro es independiente de Movimientos_BLocal — es el control de pérdidas a nivel de sección.
Pasos
1
Abrir MERMA_DIARIA en Candelaria
En CONTROL_CANDELARIA_2026, ir a la hoja MERMA_DIARIA. Agregar una fila al final de la tabla.
2
Completar los campos
fecha — fecha real del descarte
Local — Candelaria
SeccionBarra Cafe / Barra Jugos / Barra Alimentos / Helados
Descripcion — nombre del insumo
SKU — código numérico del insumo
Cantidad Mermada — cantidad real descartada
UTM — unidad: Gr / CC / Un
Motivo de Merma — ver tabla abajo
ResponsableOperador Seccion o Jefe de Local
Observacion — nota adicional si aplica
3
Verificar que quedó registrado
La fila debe quedar completa. Las columnas Costo por UTM y Costo Total Merma se calculan automáticamente con fórmula — no las edites.
Motivos de merma disponibles
Vencido — producto fuera de fecha. Reforzar FIFO.
Manipulación — accidente en preparación o manejo.
Calidad — producto recibido o almacenado en mal estado.
Error pedido — se pidió más de lo necesario.
Ajuste inventario — diferencia entre stock real y sistema.
Devolución — producto devuelto al cliente o rechazado.
⚠️
No editar las columnas Costo por UTM ni Costo Total Merma $ — son fórmulas automáticas. Solo completar los campos de datos.
Registrar la merma el mismo día que ocurre. Una merma no registrada infla el stock y distorsiona el food cost de la sección.
⚙️ Scripts — Cuándo y Cómo
🔧
Resumen de Scripts Activos
Qué hace cada script, cuándo ejecutarlo
📦 Bodega Central
emitirOrdenesDeCompra()
Cuándo: al confirmar reposición → genera OC + PDF + Gmail
🚚 Bodega Central
inviaConsegna()
Cuándo: al preparar despacho → escribe en BLocal del destino
✅ Automático (trigger)
leggiConferme()
Cuándo: automático al guardar en Candelaria. También ejecutable manualmente desde menú BCentral en MAESTRO
🔒 Pendiente deploy
bloquearFilasHistoricas()
Cuándo: automático cada noche a las 23:00 (cuando esté activado). Protege filas anteriores a hoy
ℹ️
Los scripts del menú BCentral son visibles para todos los colaboradores. Solo ejecutar si eres Jefe de Bodega o tienes instrucciones.
🚫
Nunca ejecutar el mismo script dos veces seguidas sin revisar el resultado. Puede generar registros duplicados.
📖 Visor de Recetas
🔍
Buscar y Ver una Receta
Consultar ingredientes, costos y procedimiento
📅 Consulta diaria
📋
El Visor de Recetas es la app web para consultar recetas activas. Se abre en el navegador, funciona en el celular y en computador. Login requerido con usuario y cargo PINSA.
Cómo usarlo
1
Abrir el Visor
Ir a la URL del Visor de Recetas (GitHub Pages). Ingresar nombre de usuario y seleccionar cargo. Los Operadores solo ven recetas en estado ACTIVA, sin columna de costos.
2
Filtrar y buscar
Usar el buscador libre o los filtros de sección: TODAS · LÍQUIDOS · SÓLIDOS. Dentro de cada sección se puede filtrar por familia (ICED_MATCHAS, SUPER_JUGOS, etc.).
3
Ver la ficha completa
Clic en la receta en la lista lateral. Verás: ingredientes con cantidades y unidades, food cost y margen (si tienes permiso de costo), tiempo de prep, dificultad, procedimiento paso a paso, foto y video si disponibles.
4
Actualizar la lista
Si se acaban de guardar recetas nuevas, usar el botón ↻ Actualizar lista en la parte superior de la barra lateral. Esperar 1–2 minutos después de guardar antes de actualizar — el sistema necesita ese tiempo para publicar los cambios.
ℹ️
Los Operadores no ven costos ni food cost — solo ingredientes y procedimiento. Los roles JL, CC, JO y AD ven la información completa.
Crear Nueva Receta
Ingresar receta nueva al sistema desde el Simulador
🕐 Cuando se desarrolla un nuevo producto
📋
Solo roles JO / AD / CC pueden crear recetas. Usar la pestaña Simulador en el Visor de Recetas. La receta se guarda directamente en Google Sheets.
Pasos para crear
1
Ir al Simulador
En el Visor de Recetas, hacer clic en la pestaña Simulador del menú superior. Asegurarse de estar en la sub-pestaña Nueva Receta.
2
Completar los campos obligatorios
Nombre — único, sin duplicados.
Tipo — SIMPLE · PREPARACION · ENSAMBLE · OFERTA.
Sección — BARRA CAFE · BARRA JUGOS · COCINA CENTRAL.
Familia — categoría dentro de la sección.
Al menos 1 ingrediente con nombre y cantidad.
Precio de venta — necesario para calcular el food cost.
3
Campos opcionales recomendados
Rendimiento — obligatorio para tipo PREPARACION.
Procedimiento — pasos del proceso de preparación.
URL Foto / Video — enlace Drive o YouTube.
Perfect Serve — instrucciones de presentación.
4
Guardar la receta
Hacer clic en Guardar receta. El sistema envía los datos a Google Sheets automáticamente. Aparecerá un mensaje de confirmación. No cerrar ni recargar la página durante el guardado.
5
Verificar que se guardó
Ir a la pestaña Recetas y esperar 1–2 minutos. Luego presionar ↻ Actualizar lista. Si la receta no aparece, esperar otro minuto y repetir — el sistema tiene un pequeño retraso de publicación.
Ciclo de vida de la receta
SIMULACION
Recién creada. Visible solo para quien la creó y roles AD/JO.
PENDIENTE
Enviada a revisión. Esperando validación del Jefe de Operaciones.
ACTIVA_SIN_DATA
Aprobada pero sin foto, video o procedimiento completo. Ya visible para el equipo.
ACTIVA
Completa y operativa. Visible para todos según cargo. Food cost dinámico activo.
ARCHIVADA
Ya no está en uso. Solo visible para AD/JO. No eliminar — el historial de costos depende de que existan los registros.
⚠️
Mac / Safari: si al guardar no aparece confirmación, verificar que el navegador no bloqueó la conexión. Usar Chrome en lo posible.
⚠️
Nunca eliminar recetas. Siempre archivar. El historial de costos depende de que los registros existan.
💡 Por qué importa — El sistema somos todos
❤️
Por qué registrar cada movimiento
El propósito detrás del sistema — en 2 minutos
LA PREGUNTA REAL
¿Por qué debería yo registrar algo en un sistema que no entiendo?
Esta es una pregunta válida. La respuesta honesta es: porque el sistema trabaja para ti — pero solo si tú le das los datos.
La cadena que conecta tu trabajo con tu bono
👩‍🍳
Tú trabajas
Produces, despachas, atiendes. Cada acción tiene un valor real — en gramos, en pesos, en tiempo.
📝
El sistema registra
Cuando tú ingresas el dato — merma, cantidad producida, movimiento — el sistema lo guarda. Sin ese dato, para el sistema ese trabajo no existió.
📊
Los números hablan
El dashboard muestra food cost, merma y cumplimiento en tiempo real. Estos números son tu trabajo visible — para ti, para el equipo, para PINSA.
💰
Tu bono se calcula
El bono no lo decide nadie a dedo. Lo calculan los datos que tú ingresaste. Sin datos = sin bono. Con datos correctos = bono justo.
❌ SIN REGISTRO
• El inventario miente
• El food cost es incalculable
• El bono no se puede calcular
• Los errores se repiten
• Nadie sabe qué pasó realmente
✓ CON REGISTRO
• El stock es real y confiable
• Sabes cuánto cuesta producir
• El bono se calcula solo
• Los problemas se detectan
• Tu trabajo queda documentado
El rol de cada persona en el sistema
🧑‍🍳
Chef Cocina Central
Registra cada lote producido en PRODUCCION_CC — cantidad real, merma, estado. Sin este dato el sistema no sabe qué hay disponible para los locales.
📦
Jefe de Bodega
Registra cada entrada y salida en Movimientos_BC. Es el guardián del inventario real — si no registra, el stock miente y los pedidos fallan.
🏪
Jefe de Local
Confirma cada entrega recibida y supervisa que las secciones registren mermas. Su confirmación cierra el ciclo — sin ella, la entrega queda como "pendiente" para siempre.
⚙️
Operador de Sección
Registra merma en su sección cuando ocurre — no acumula. Este es el dato más difícil de recuperar después. Una merma no registrada es un costo invisible que sale del bono de todos.
"Este sistema no es de PINSA. Es nuestro. Cada número que ingresamos construye una imagen real de cómo trabajamos — y esa imagen es la que decide si ganamos el bono o no. El sistema solo refleja lo que hacemos."
No hay operaciones disponibles para este rol en esta sección.
🚨 Qué hacer si algo falla
🚨
Errores frecuentes y cómo resolverlos
El script no responde · el sheet no actualiza · veo un error raro
🔴 Consultar antes de llamar
Errores de Script
❌ El script se ejecutó pero no pasó nada
1. Revisar la hoja de origen — ¿los campos obligatorios están completos?
2. Verificar que el SKU está activo en BD_INSUMOS (col AG = SI).
3. Cerrar el sheet, esperar 30 segundos, volver a abrir y reintentar.
4. Si persiste: avisar al JO con captura de pantalla del error.
❌ Ejecuté el script dos veces por error
No corrijas solo. Avisar inmediatamente al JO con el ID de la fila duplicada. El sistema puede tener registros dobles que distorsionan el inventario — se necesita borrar manualmente con permisos de admin.
⚠️ El script pide autorización / dice "no autorizado"
El deploy de la WebApp está configurado como "Anyone with Google account" en lugar de "Anyone". Solo el JO puede corregirlo desde Apps Script → Deploy → Manage deployments.
Errores de Datos
❌ El stock en el dashboard no cuadra con la realidad
1. Verificar que todos los movimientos del día están registrados en Movimientos_BC o Movimientos_BLocal.
2. Revisar si hay filas con campos vacíos (fecha, SKU, cantidad) que no están sumando.
3. Si el error persiste después de verificar, avisar al JO — no hacer ajustes manuales sin autorización.
⚠️ Una receta aparece con Costo $0 o "PENDIENTE"
Falta precio en algún insumo de RECETAS_MASTER o BD_INSUMOS. No es un error crítico operativo — la receta funciona igual. Avisar al JO para que actualice el precio. No editar RECETAS_MASTER directamente.
⚠️ Guardé una receta en el Visor pero no aparece en la lista
El sistema tiene un retraso de publicación de 1–2 minutos. Esperar y presionar ↻ Actualizar lista. Si después de 5 minutos no aparece: verificar en RECETAS_MASTER que la fila existe. En Mac/Safari, cambiar a Chrome.
Errores de Flujo CC
❌ El lote está físicamente en BC pero no aparece en Inventario_BC
El Chef CC produjo pero no se registró la Entrada_CC en Movimientos_BC. Verificar que existe la fila en PRODUCCION_CC primero. Si existe, el JB debe registrar la entrada. Si no existe, el Chef CC debe registrar primero.
⚠️ El SKU de una PREPARACION no aparece en BD_INSUMOS
El GAS V3.2 crea el SKU automáticamente al guardar una receta PREPARACION en el Visor. Si no se creó, verificar que el deploy es "Anyone" (no "Anyone with Google account"). Avisar al JO.
ℹ️
Regla de oro: ante cualquier duda — no corrijas solo. Toma captura de pantalla, anota el ID de la fila o el nombre de la receta, y avisa al JO. Una corrección incorrecta puede ser peor que el error original.