LA PARRILLAGestiona productos, precios, packs y stock por sede.
Pedidos Web — enviados por clientes finales a través de la tienda virtual (últimos 30 días), incluidos los que piden factura con su RUC en el checkout. No confundir con Pedidos HORECA (venta mayorista), que se gestionan aparte. Un pedido nace Pendiente (el stock queda reservado, no descontado, mientras se confirma el pago) — recién al marcarlo Atendido se descuenta el stock de verdad. Modificar permite quitar o agregar productos mientras esté Pendiente. Anular libera la reserva (o revierte el stock si ya estaba Atendido) y lo excluye de "Los más pedidos".
Cargando...
{{ pedidosError }}
{{ pedidosVacioMsg }}
No se encontró ningún pedido con ese código.
{{ ped.itemsSummary }}
{{ ped.modalidadLabel }}
Comprobante solicitado: {{ ped.comprobanteSolicitadoLabel }}
Forma de pago: {{ ped.metodoPagoLabel }}
🎉 {{ ped.descuentoLabel }}
No hay piezas disponibles de este producto en la sede del pedido.
{{ pedidoModError }}
Clientes que pidieron que les avisen cuando un producto vuelva a tener stock — se generan desde el botón "Avísame cuando vuelva" de la tienda web, cuando un producto sale sin stock. No son pedidos ni ventas: no reservan stock ni emiten boleta/factura, solo quedan aquí hasta que el personal los contacte y marque la solicitud como Contactado.
Cargando...
No hay solicitudes de aviso por ahora.
{{ av.productoLabel }}
{{ av.clienteLabel }}
Pedidos HORECA — venta mayorista a hoteles/restaurantes/catería, despachada desde almacén o planta. Exclusivo para clientes empresariales (RUC); no tiene relación con los pedidos de clientes finales de la tienda virtual (esos viven en la pestaña "Pedidos Web").
Datos del cliente
{{ horecaClienteFormError }}
Peso total aproximado del pedido — la pieza real se pesa al despachar.
Productos en este pedido
{{ horecaError }}
No hay pedidos HORECA todavía.
Cotizaciones para clientes HORECA con el formato de la propuesta: cliente y contacto, productos del catálogo (con el precio de la lista HORECA), secciones con subtotal, condiciones comerciales y PDF listo para enviar. El logo y los colores salen de Configuración → Empresa.
{{ cotError }}
Cargando...
{{ cotListaVaciaMsg }}
Cargando...
{{ cotAvisoSoloLectura }}
{{ cotFormError }}
✓ {{ cotMsg }}
¿Anular esta cotización? No se borra: queda registrada como anulada y ya no se edita.
Valores por defecto de las cotizaciones (Ventas → Cotizaciones): numeración, validez, condiciones comerciales y el logo con que se imprimen.
{{ cotAjError }}
✓ {{ cotAjMsg }}
{{ cotLogoTexto }}
Los logos y los colores (principal: líneas y total; secundario: bandas) se cargan en Configuración → Empresa; ahí también se elige el logo de factura, boleta, guía y ticket. Colores actuales: principal {{ cotColorP }} · secundario {{ cotColorS }} (si están vacíos se usa un azul oscuro).
Primero registra los datos de la empresa en la pestaña Empresa.
El número es prefijo + año + correlativo de 5 dígitos (ej. {{ cotCorrEjemplo }}) y se reinicia cada año. Si vienes de otro sistema, indica el último número usado para continuar desde el siguiente; solo puede avanzar.
✓ {{ cotCorrMsg }}
Número de WhatsApp al que le debe llegar un pedido con delivery, según la provincia del cliente — uno por provincia. No confundir con la pestaña "Delivery" de Sucursales (esa define en qué distritos hay entrega y su costo); esta solo enruta a quién le llega el mensaje.
{{ deliveryContactoError }}
Clientes registrados en el checkout, con sus direcciones guardadas.
Cargando...
{{ clientesError }}
Sin clientes todavía.
{{ c.emailLabel }}
{{ c.direccionesSummary }}
Registro de personal de la empresa. El correo de empresa se usa solo para recuperar contraseña, no es el correo de acceso al panel.
{{ personalActionError }}
{{ personalFormError }}
Cargando...
{{ personalError }}
Sin personal registrado todavía.
{{ productActionError }}
Unid. x paquete: si la presentación es un paquete armado con unidades sueltas (por ejemplo "Paquete x4" de una hamburguesa que se produce suelta), escribe cuántas unidades trae; así se puede empaquetar desde Producción y el precio unitario se prorratea. Déjalo vacío para una presentación de una sola unidad.
Desmarca "Visible en la web" para una presentación de uso interno (ej. unidades sueltas para armar packs) — deja de mostrarse en la tienda pública, pero Almacén y Armar Pack la siguen viendo igual.
Tamaño recomendado: 700×700px (cuadrada) o 700×560px, fondo neutro. Arrastra o haz clic para subir.
Este pack se registra sin precio ni contenido propio (solo nombre, descripción y foto referencial) — cada unidad se arma con su propio contenido y precio real en Almacén → Stock → Armar pack.
Proveedores y costo
{{ nuevoProveedorEnProductoRucLookupError }}
{{ nuevoProveedorEnProductoError }}
Este producto ya tiene su único proveedor — los productos de marca propia admiten solo uno.
Precios
Precio para clientes finales: {{ adminFormPrecioClienteFinalLabel }}
Precio para clientes finales: ver cada presentación arriba.
Precio para sector HORECA
Agrega antes un proveedor con su costo (arriba) para poder calcular por porcentaje, o desmarca la casilla y escribe el precio directo.
Se calculó solo a partir del porcentaje — puedes ajustarlo a mano si quieres un precio distinto.
Interno — nunca se muestra en la tienda virtual. Sirve para prellenar el precio al armar un pedido HORECA (siempre editable ahí). El precio de venta de arriba (clientes finales) es exclusivo para punto de venta, web y delivery — no cambia con esto.
Cada vez que se graba un ingreso queda aquí como una transacción: puedes ver todo lo que entró, marcar líneas para volver a generar sus etiquetas (con el precio actual), corregir un peso o una cantidad, o anular el ingreso completo. Los ingresos hechos antes de esta función solo están en Historial y en «Reimprimir etiquetas».
Cargando ingresos…
{{ irError }}
No hay ingresos registrados en este período. Los ingresos grabados antes de activar esta función no aparecen: un administrador puede agruparlos con «Recuperar ingresos anteriores» (usa las fechas elegidas).
Busca en todos los lotes creados (mínimo 2 caracteres). Si ya existe el lote del proveedor, úsalo para no duplicarlo.
Producto: {{ state.loteBuscarProductoNombre }} — lotes con los que ingresó, del más reciente al más antiguo.
Buscando…
{{ state.loteBuscarError }}
{{ loteBuscarSinResultadosMsg }}
{{ state.loteFormError }}
Lote seleccionado: {{ loteSeleccionadoLabel }}
Los packs no aparecen en esta lista — solo se pueden armar en un local tipo Planta o Almacén.
Error: {{ stockActionError }}
Piezas de este producto
Un pack se arma con productos que ya están en stock, guiado por número de personas. Las cantidades son solo sugerencias — tú eliges qué usar.
Este pack no tiene "¿Para cuántas personas?" definido — ve a Catálogo → Productos y edítalo antes de armarlo.
Recomendado: entre {{ armarPackPesoMinKg }} kg y {{ armarPackPesoMaxKg }} kg de cortes.
Seleccionado ahora: {{ armarPackPesoSeleccionadoKg }} kg
Piqueo sugerido: {{ armarPackChorizoPaquetesSugeridos }} paquete(s) de Chorimix, o {{ armarPackHamburguesaCajasSugeridas }} caja(s) de hamburguesa — puedes combinar según el cliente.
Cortes
No hay piezas disponibles de ningún corte compatible en esta sede.
{{ comp.nombreComponente }}
Piqueo (opcional)
{{ comp.nombreComponente }}
{{ armarPackError }}
Por grabar — aún no se guardó nada (último agregado arriba)
Carga varias piezas de una vez para {{ stockLocationLabel }} con un archivo CSV. Solo para productos que se venden por peso (cortes de carne). Descarga la plantilla: cada columna es un producto (ya viene con el nombre correcto en la cabecera). Debajo de la columna del corte que quieras cargar, escribe un peso por fila — una fila por pieza. Si solo vas a cargar 1 o 2 cortes, deja las demás columnas vacías: las celdas vacías no se consideran, así que no hace falta llenar toda la plantilla ni revisar columna por columna.
{{ masivaError }}
{{ masivaValidCount }} filas listas para cargar.
Stock — solo lectura. Para cargar o ajustar stock, ve a la pestaña Ingresos.
Vuelve a generar el Excel de etiquetas (mismo formato que al ingresar stock) para piezas de cortes ya registradas — por ejemplo si una etiqueta se dañó o se perdió.
Elige una sucursal para buscar piezas.
Sigue escribiendo… se buscan resultados desde la tercera letra.
Cargando piezas...
{{ reimprimirError }}
Sin piezas disponibles de este corte en esta sede.
{{ stockDocError }}
Elige cómo quieres consultar el stock.
Cargando...
{{ stockReporteError }}
Elige una sucursal para ver su stock.
Valorizado a precio de catálogo. No incluye packs armados (su precio se define al armarlos).
Sin stock registrado.
Sigue escribiendo… se buscan resultados desde la tercera letra.
Este producto no tiene stock registrado en ninguna sucursal.
Cortes de este producto por sede
Elige una sucursal para ver sus cortes.
No hay cortes disponibles de este producto en esa sede.
Sigue escribiendo… el filtro se aplica desde la tercera letra.
En productos por peso se cuentan las piezas disponibles de cada lote; en productos por unidad se muestran las unidades ingresadas con ese lote (no descuenta lo ya vendido).
Sin lotes con existencias para mostrar.
Ingresos (incluye cortes por peso) y salidas (ventas de mostrador, consignaciones, ajustes, mermas, producción) de cualquier sede, con quién y cuándo los registró. No incluye pedidos de la tienda virtual — esos están en Ventas → Pedidos Web.
Sin fechas elegidas, muestra los últimos 30 días.
Cargando...
{{ stockHistoryError }}
Sin movimientos que coincidan con estos filtros.
Hay más de 300 resultados — se muestran los 300 más recientes. Afina los filtros (producto, sede o fechas) para ver el resto.
Categorías del catálogo — controla la descripción y la foto que se muestra en "Nuestras categorías" del home.
{{ categoryActionError }}
{{ categoryFormError }}
{{ cat.desc }}
Color en el POS: {{ cat.colorLabel }}
{{ categoryFormError }}
¿Eliminar "{{ cat.name }}" definitivamente? Esta acción no se puede deshacer.
Estos locales alimentan la sección "Dónde encontrarnos" y las tarjetas de Ica/Lima en la página Nosotros. La dirección solo se muestra ahí cuando el local no es "Tienda Delivery (solo delivery)".
Uso interno — no aparece en la web pública, solo disponible para Stock y Transferencias.
La tienda web muestra el stock de este local y recibe pedidos para él. {{ loc.webResumen }}.
Los pedidos llegan al WhatsApp de este local (campo de abajo) y se atienden desde el POS. Mantén al día su stock: ingresos, transferencias y ventas.
Cambios sin guardar: pulsa Guardar en este local.
Falta ejecutar locales-web-schema.sql en Supabase para guardar estos ajustes.
⚠ Falta ubicación (Departamento/Provincia/Distrito) — no se puede guardar sin completarla.
Define en qué distritos hay delivery real para cada local, y el costo de envío de cada uno. En el checkout, el cliente solo puede elegir un distrito de la lista activa de su sede.
{{ deliveryZonaError }}
Sugerencias enviadas de forma anónima por clientes desde la web, para mejorar la página.
Cargando...
{{ sugerenciasClientesError }}
Sin sugerencias todavía.
{{ row.mensaje }}
Reseñas generales enviadas por clientes. Solo las aprobadas se muestran en el Home de la web pública.
Cargando...
{{ resenasAdminError }}
Sin reseñas todavía.
{{ row.comentario }}
¿Eliminar la reseña de "{{ resenaDeleteConfirmNombre }}" definitivamente? Esta acción no se puede deshacer.
Este es tu asistente interno — qué puedes preguntarle depende de tu perfil: administrador y supervisor pueden pedirle ventas, pedidos de clientes, reposición e inventario; cualquier perfil de staff puede consultarle el stock de su sede y de las sedes cercanas (Planta/Almacén) para pedir una transferencia. Por seguridad, la primera vez de cada sesión debe confirmarle su nombre antes de darte información.
Escríbele algo como "¿cómo van las ventas de Ica este mes?" 👋
Iniciaste sesión en modo de emergencia (sin conexión real a Supabase) — el asistente necesita una sesión real para verificar que eres administrador. Vuelve a iniciar sesión cuando tengas conexión.
Sesión cerrada por seguridad.
{{ agenteChatVozError }}
{{ state.agenteChatAdjuntoError }}
Base de conocimiento del agente de atención al cliente: cada entrada que agregues aquí el agente la usa para responder consultas — así "aprende" con lo que le vayas cargando (horarios, políticas, preguntas frecuentes, etc.).
{{ conocimientoFormError }}
Cargando...
{{ conocimientoError }}
Sin entradas todavía — el agente solo usará lo que sabe del catálogo, stock y locales.
{{ row.tema }}
{{ row.contenido }}
Preguntas que el asistente no pudo responder con certeza (a clientes o al equipo) — quedan registradas automáticamente para que las revises y, si corresponde, las agregues a la base de conocimiento.
Pregunta original: {{ state.aprendizajeResolviendoPregunta }}
{{ aprendizajeFormError }}
Cargando...
{{ aprendizajeError }}
Sin preguntas pendientes por ahora — cuando el asistente no sepa algo, aparecerá aquí.
{{ row.origenLabel }} · {{ row.fecha }}
{{ row.pregunta }}
{{ row.contexto }}
Reposiciones propuestas por el asistente o solicitadas manualmente. Carnes se piden en kilos aproximados; marca propia, por paquete/caja/unidad.
Proveedor: {{ reposicionCrearProveedorFijoLabel }}
Este producto todavía no tiene ningún proveedor configurado (Almacén → Proveedores) — se puede agregar igual, sin costo.
{{ reposicionFormError }}
Cargando...
{{ reposicionesError }}
Sin reposiciones acá todavía.
{{ rep.sede }} — {{ rep.estadoLabel }} {{ rep.origenLabel }}
{{ rep.creadaLabel }}{{ rep.fechaSugeridaLabel }}
Proveedor: {{ it.proveedorLabel }}
Este producto no tiene ningún proveedor configurado todavía (Almacén → Proveedores).
Cuando el stock de un producto cae por debajo de lo configurado acá, la revisión diaria automática avisa por correo y deja lista una reposición en "Pedidos pendientes" para confirmar.
{{ stockMinimoFormError }}
Cargando...
{{ stockMinimosError }}
Todavía no hay ningún mínimo configurado.
Datos legales de la empresa, direcciones, logos y colores. Se usan en comprobantes, cotizaciones y guías; el punto de venta solo los lee (no se configura nada allá).
Cargando...
{{ cfgError }}
Aún no se registró la empresa. Completa el RUC y la razón social para empezar; después podrás configurar locales, series, cuentas y SUNAT.
{{ cfgRucAviso }}
Si aplica, la resolución se imprime como leyenda en el PDF.
Hasta 2 logos (PNG o JPG, máx. 500 KB) y 2 colores para los PDF A4 (facturas, boletas, notas, guías y cotizaciones). Los tickets del POS son en blanco y negro. Los logos se suben apenas los eliges; los colores y el uso de cada logo se guardan con el botón de abajo.
{{ cfgLogoMsg }}
{{ cfgEmpresaFormError }}
Cada local del ERP es un establecimiento anexo de SUNAT (código de 4 dígitos; el domicilio fiscal es 0000) y cada uno lleva sus series de numeración (los datos del local —dirección, horario, WhatsApp— y si vende por la web se editan en Sucursales → Locales): abre la pestaña Asignar series de un local, elige el ambiente (pruebas o producción) y agrega sus series de notas de venta, boletas, facturas, guías de remisión y notas de crédito/débito. El POS usa las series del local donde está la caja. Los locales se crean en Sucursales → Locales. Los distribuidores (como Paracas) no son establecimientos de la empresa y no aparecen aquí.
Cargando...
{{ cfgError }}
Primero registra los datos de la empresa en la pestaña Empresa.
{{ cfgSucFormError }}
Sin series en este ambiente.
Si la serie ya se usó en otro sistema (p. ej. Softdatos), pon aquí el último número emitido: la numeración continúa desde el siguiente.
{{ cfgSerieFormError }}
Cuentas de la empresa que se imprimen al pie de los comprobantes y cotizaciones. La cuenta de detracciones (Banco de la Nación) habilita las facturas con detracción.
{{ cfgError }}
Primero registra los datos de la empresa en la pestaña Empresa.
{{ cfgCuentaFormError }}
Todavía no hay cuentas registradas.
Credenciales para emitir comprobantes electrónicos directo a SUNAT. Todo se guarda cifrado y nunca se vuelve a mostrar. Hay dos ambientes: Pruebas (beta), sin validez tributaria, y Producción.
{{ cfgError }}
Primero registra los datos de la empresa en la pestaña Empresa.
Ahora se emite en: {{ cfgAmbienteActivoLabel }}. Los comprobantes de pruebas no tienen validez tributaria y usan series propias.
{{ cfgSunatMsg }}
{{ cfgSunatErr }}
Consultando el estado…
{{ cfgCertEstadoLabel }}
Se comprueba que la clave abra el archivo, que traiga la llave privada, que esté vigente y que su RUC sea el de la empresa. Un certificado en token USB no sirve.
{{ cfgSolEstadoLabel }}
Se crea en SUNAT Operaciones en Línea → Mi RUC y otros registros → Administración de usuarios secundarios, con permiso para factura electrónica. Es el usuario con el que se envían facturas, notas, resúmenes y bajas.
{{ cfgApiEstadoLabel }}
Se generan en SUNAT Operaciones en Línea → Empresas → Guía de remisión electrónica → Gestión de credenciales de API. En pruebas (beta) SUNAT no las exige.
Un evento es una venta temporal (feria, activación…) que normalmente vende comida ya preparada. Se crea aquí; el punto de venta solo lo opera: el cajero asignado lo ve mientras esté vigente, abre su caja y vende. Los comprobantes del evento llevan siempre la dirección fiscal (establecimiento principal 0000), los productos son los de la categoría Eventos del catálogo y no controlan stock.
Cargando...
{{ cfgError }}
Primero registra los datos de la empresa en la pestaña Empresa.
No hay usuarios cajeros activos. Créalos en RRHH → Usuarios.
Con internet se pueden emitir los comprobantes marcados. Sin internet el POS solo permite la nota de venta (se convierte en boleta después, una por una).
Pantalla de botones grandes: se toca el producto, se elige la forma de pago y se imprime el ticket al instante. Apagada, el evento usa el POS convencional.
{{ cfgEventoFormError }}
Todavía no hay eventos.
Los eventos tienen sus propias series, separadas de las de los locales: un solo juego que comparten todos los eventos, siempre bajo el establecimiento principal (dirección fiscal). Se configura una vez y sirve para cualquier evento. Sin guías de remisión.
Primero configura el establecimiento principal (código 0000) en Locales y series.
Sin series en este ambiente.
Si la serie ya se usó en otro sistema (p. ej. Softdatos), pon aquí el último número emitido: la numeración continúa desde el siguiente.
{{ cfgSerieFormError }}
Directorio de proveedores — el costo de cada producto según proveedor se carga desde Catálogo de producto, en la tarjeta de cada producto.
{{ proveedorRucLookupError }}
{{ proveedorFormError }}
Cargando...
{{ proveedoresError }}
Todavía no hay ningún proveedor registrado.
Arma productos combinando el stock de sus componentes — hoy, Chorimix a partir de sus 4 variedades de chorizo. Solo disponible en un local tipo Planta o Almacén.
Esta función solo está disponible en un local tipo Planta o Almacén.
Busca en todos los lotes creados (mínimo 2 caracteres). Si ya existe el lote del proveedor, úsalo para no duplicarlo.
Producto: {{ state.loteBuscarProductoNombre }} — lotes con los que ingresó, del más reciente al más antiguo.
Buscando…
{{ state.loteBuscarError }}
{{ loteBuscarSinResultadosMsg }}
{{ state.loteFormError }}
{{ c.mermaTexto }}
Si la cantidad no es múltiplo exacto de la receta, cada componente se redondea hacia arriba al paquete completo — nunca deja stock negativo, pero puede consumir algo más de lo estrictamente proporcional.
{{ produccionError }}
{{ produccionResultadoMensaje }}
Define de qué componentes (y en qué proporción) se arma cada producto en Producción — por ejemplo, de qué chorizos y cuántos paquetes de cada uno sale un paquete de Chorimix.
{{ recetasError }}
Un producto puede tener más de una combinación válida (ej. Chorimix A y B) — cada una es una receta completa aparte.
Cargando...
Este producto todavía no tiene componentes en su receta.
"Cantidad" es paquetes del componente por cada paquete producido (ej. 0.25 = 1 paquete de este componente cada 4 paquetes producidos).
Catálogo de materias primas, empaques y mano de obra usados en Fórmulas — sirve para calcular el costo real de cada producción.
{{ insumosError }}
{{ comprarInsumoError }}
Define el lote estándar y qué insumos (y en qué cantidad) consume fabricar un producto — es lo que precarga una orden en Fabricación.
{{ formulasError }}
Cargando...
Este producto todavía no tiene insumos en su fórmula.
Programa una producción, registra los insumos realmente usados, y ciérrala para calcular su costo real.
{{ fabricacionProgramarError }}
Sin órdenes todavía.
{{ fabricacionUsarError }}
Indica cuánto sobró de cada insumo (vuelve al stock del insumo) y cuántas unidades se produjeron en total.
{{ fabricacionCerrarError }}
Convierte unidades (UND) ya producidas en paquetes listos para vender. Eliges de qué presentación en UND salen las unidades (por ejemplo "Unidad 100gr") y qué paquete armar. El paquete se crea en Catálogo de producto → Editar → Agregar presentación, con su número en "Unid. x paquete".
Unidades (UND) disponibles: {{ empaquetadoStockSueltoLabel }}
Este producto todavía no tiene una presentación de paquete. Créala en Catálogo de producto → Editar → "+ Agregar presentación" y escribe cuántas unidades trae en "Unid. x paquete".
{{ empaquetadoResumen }}
{{ empaquetadoError }}
{{ empaquetadoResultadoMensaje }}
No hay piezas disponibles de este producto en esta sede.
Productos en esta salida
{{ salidasError }}
No hay consignaciones pendientes de resolver.
Todavía no hay salidas registradas.
🧾 {{ sa.comprobanteLabel }}
No hay pedidos HORECA pendientes de despacho.
Obs: {{ it.observaciones }}
No hay piezas disponibles de este producto en esta sede.
Todas las cantidades físicas quedaron confirmadas — registra el comprobante de esta salida
Cargando...
{{ transferenciasError }}
No hay transferencias pendientes por validar.
{{ t.codigo }} — {{ t.origenLabel }} → {{ t.destinoLabel }}
{{ t.creadaLabel }} · {{ t.itemsCount }} producto(s) · {{ t.estadoLabel }}
No hay transferencias con discrepancias pendientes.
{{ t.codigo }} — {{ t.origenLabel }} → {{ t.destinoLabel }}
{{ t.creadaLabel }} · {{ t.estadoLabel }}
Sin transferencias completadas todavía.
{{ t.codigo }} — {{ t.origenLabel }} → {{ t.destinoLabel }}
{{ t.creadaLabel }} · {{ t.estadoLabel }}
{{ transferDetalleCodigo }} — {{ transferDetalleOrigenDestino }}
{{ transferRecibirError }}
Las piezas ya vienen marcadas como recibidas y las cantidades con lo enviado — solo cámbialas si algo es distinto.
{{ transferResolverError }}
Esa localidad no tiene otro local distinto al de origen.
No hay piezas disponibles de este producto en la sede origen.
Productos en esta transferencia
{{ transferCrearError }}
El conteo es a ciegas: no vas a ver el stock que el sistema tiene registrado en ningún momento — solo registras lo que cuentas físicamente.
{{ invError }}
Inventariando: {{ invLocationLabel }}
Buscar producto a contar
Sin resultados para esa búsqueda.
— o escanea / escribe el código de barra —
{{ invCodigoScanError }}
{{ invSeleccionadoNombre }}
Agrega un peso por cada pieza que vayas pesando de este producto — puedes seguir agregando varias antes de cambiar de producto.
Productos contados
{{ invError }}
Revisión — {{ invLocationLabel }}
Revisa que todo lo contado sea correcto antes de grabar. Una vez grabado, no podrás editar este inventario.
Productos contados
{{ invError }}
Cargando...
{{ inventariosError }}
Sin inventarios registrados todavía.
{{ inv.sede }} — {{ inv.codigo }}
{{ inv.fechaLabel }}
{{ inv.conteoLabel }}
Valorizado: {{ inv.valorFisicoLabel }}
Sobrante: {{ inv.valorSobranteLabel }}
Faltante: {{ inv.valorFaltanteLabel }}
{{ invDetalleCodigo }} — {{ invDetalleSede }}
Cargando...
{{ invDetalleError }}
Faltantes
Sobrantes
Conciliados
Es el correo de la cuenta: a él llega el código si la persona recupera su contraseña. Se aplica de inmediato, aparte del botón Guardar, y no se envía correo de confirmación.
{{ userEmailMsg }}
{{ userEmailError }}
No pide la contraseña anterior. Escribe la nueva y avísale a la persona — se aplica de inmediato, aparte del botón Guardar.
{{ userPasswordMsg }}
{{ userPasswordError }}
{{ userFormError }}
Cargando...
{{ usuariosError }}
Sin usuarios todavía.
{{ userActionError }}
Ingresa tus credenciales para gestionar productos y stock.
{{ state.loginError }}
Ingresa tu correo de empresa, correo personal o usuario registrado.
{{ state.recoveryError }}
Enviamos un código de 6 dígitos a {{ state.recoveryMaskedEmail }}. Revisa también spam.
{{ state.recoveryError }}