Novedades v3.0 — Mayo 2026
Refactor mayor del editor de artículos
- Ajuste rápido de stock desde el listado: cuando filtrás una bodega en la búsqueda, la columna Stock de cada artículo se vuelve editable con un control
[ − ] cantidad [ + ]. El botón − (rojo) resta y el + (verde) suma esa cantidad al stock actual; si en cambio escribís el total y presionás Enter, fija esa cantidad (ajusta por la diferencia) y salta a la siguiente fila. Cada cambio queda registrado en el kardex como ajuste (AJU) en la bodega filtrada. Requiere el permiso "Suma o resta existencia a una bodega" (405). - Botón "Buscar" resaltado: el botón de búsqueda del panel de filtros ahora tiene un fondo amarillo suave para ubicarlo más rápido.
- Lista de precios única: el panel ArticuloPrecios reemplaza la grilla legacy P1..P10. Toda la administración de precios va por los modales Editar Precio (MAP-001) y Agregar Precio (MAP-002).
- Modal Agregar Precio (MAP-002): permite definir N° de precio, alcance (este artículo o TODOS los activos), moneda, modo Auto/Manual, margen sobre Costo o Venta, % margen, redondeo y descuentos. Incluye barra de progreso para operaciones masivas.
- Modal Editar Precio (MAP-001) renovado: apariencia moderna con gradiente azul en la cabecera, esquinas redondeadas, animación de entrada y secciones tipo card. La sección Descuentos y Utilidad Mínima se reorganizó en mini-cards con icono semántico (🏷 Desc. Fijo, ↗ Desc. Máximo, 📈 Util. Mínima), texto de ayuda corto bajo cada campo y sufijo % visual dentro del input.
- Wizard "Nuevo Rápido" (W-001): botón verde en la barra de título que abre un asistente guiado de 4 pasos (Nombre → Categoría → Tributación → Precios+Imagen). La IA sugiere Categoría, SubCategoría, Naturaleza (Producto/Servicio) y CABYS desde el catálogo oficial de Hacienda. Pre-selecciona la tarifa IVA más usada y la actividad económica si solo hay una. En el paso final el usuario digita el precio NETO (con IVA) por cada nivel existente, y elige una imagen del producto desde sugerencias web.
- Eliminación de niveles de precio con selector de alcance: el botón Eliminar del modal MAP-001 ahora pregunta primero el alcance — "Solo este artículo" (default, sin captcha) o "Todos los artículos de la empresa" (captcha matemático obligatorio). Antes forzaba siempre alcance global. Si no hay artículo cargado, se fuerza el modo "Todos".
- Banner de niveles redundantes: en el card "Costos y Precios", cuando dos o más niveles tienen exactamente el mismo Precio + Moneda, aparece un banner amarillo con la leyenda "P4, P5, P6 son idénticos a P3 (CRC 500.00)" y un botón Eliminar redundantes que los borra solo en este artículo. Útil para limpiar catálogos legacy donde se repetían valores por defecto en los 10 niveles.
- Búsqueda de imágenes mejorada: el modal "Buscar imágenes" ahora usa DuckDuckGo Images con SafeSearch estricto, limpia automáticamente la descripción (quita códigos internos, símbolos placeholder, letras huérfanas) y enriquece la búsqueda con la Categoría y la Marca del artículo como hints contextuales. Lista negra defensiva de dominios. Resultados mucho más relevantes que antes (ej. "Fanta 350 ml" devuelve fotos reales de la gaseosa, no resultados aleatorios).
- Margen sobre Costo o Venta automático: el catálogo de artículos calcula y muestra el % de margen según el campo MargenSobre de cada nivel de precio. Indicador C (Costo / markup) o V (Venta / margen real) al lado del %.
- Configuración de campos visibles ampliada: Comisión % y Unidad de Medida también se pueden ocultar desde el botón ⚙ Config.
- Aplicar a TODOS los artículos: al agregar un nivel de precio se aplica automáticamente a TODOS los artículos activos (los niveles son globales). Sincronización automática a empresas externas en una sola operación.
- Origen del costo default = Promedio: al crear un artículo y aplicar una compra, el sistema usa el costo promedio sin necesidad de configurar manualmente.
- Stock por Bodega + Ajuste unificados: una sola card con botones
+/−por fila para sumar/restar stock con la cantidad y el motivo que se escoge (o escribe) debajo. Lista TODAS las bodegas aunque el artículo no tenga stock todavía. - Botón Config en la barra de título: permite mostrar/ocultar 17 campos opcionales (Marca, Clase, Forma Farmacéutica, Cuenta Inventario, Partida Arancelaria, etc.) y el panel de Imágenes — la configuración es por empresa.
- Banda de auditoría compacta (Ventas, Creado, Modificado por, fechas) movida al pie en la barra de paginación, centrada.
- Categoría / Subcategoría reubicadas debajo del Nombre del artículo.
- Look modernizado: esquinas redondeadas, focus halos azules, hover sutil, botones tipo pill, badges Auto verde / Manual ámbar.
- Performance: operaciones masivas (12k+ artículos) ahora corren en segundos vía bulk INSERT y MERGE optimizados.
- Clonar conserva los precios: al clonar un artículo —o al cargar uno, cambiar el código por uno nuevo y Guardar— el artículo nuevo se crea con la misma lista de precios completa (margen, moneda, descuentos y redondeo de cada nivel) y los demás datos del original, sin tener que volver a cargarlos. Disponible en escritorio y móvil.
Vista general
El módulo Crear y Editar Artículos (IN-002) es la herramienta principal para administrar el catálogo de productos y servicios de la empresa. Desde aquí puede:
- Crear nuevos artículos con código automático o manual.
- Editar todos los datos de un artículo existente.
- Gestionar listas de precios multi-nivel y multi-moneda (cantidad de niveles definida por la empresa) con cálculo automático de margen y redondeo.
- Administrar múltiples imágenes por artículo (subir, pegar, reordenar, eliminar).
- Consultar y ajustar el stock por bodega.
- Buscar y filtrar artículos con más de 15 criterios combinables.
- Exportar resultados a Excel o PDF.
Flujo de trabajo recomendado
Estructura de pantalla
La pantalla se divide en dos áreas principales:
- Formulario (arriba) — Editor con 3 columnas: Datos + Costos/Precios, Otros Datos, e Imágenes + Inventario. En móvil se apilan verticalmente con acordeones colapsables.
- Buscador (abajo) — Tabla con filtros para localizar artículos. Al hacer clic en un artículo se carga en el formulario para editarlo.
- Eliminar el artículo: botón de papelera en el encabezado (solo si la existencia está en cero, igual que en escritorio).
- Ajustar stock por bodega: toque una bodega en la tarjeta Stock por Bodega y sume o reste unidades escogiendo el motivo de la lista (o escribiéndolo); el movimiento queda en el kardex como ajuste (AJU).
Casos de uso por rol
- Consultar precio y stock desde facturación
- Ver imágenes para confirmar producto
- No modifica datos (solo lectura)
- Crear y editar artículos (permiso 411)
- Ajustar stock por bodega
- Administrar imágenes y categorías
- Buscar duplicados y hacer cambios globales
- Ver costos y utilidades (permiso 013)
- Validar CABYS y tarifa IVA
- Exportar catálogo a Excel para análisis
- Ajustar márgenes por subcategoría
Acceso y permisos
El módulo requiere los siguientes permisos:
| Permiso | Descripción | Funcionalidad |
|---|---|---|
| 411 | Crear y editar artículos | Guardar, eliminar, ajustar stock, subir imágenes |
| 055 | Ver existencias | Ver la tabla de Stock por Bodega y el ojito de existencias en las sucursales (sin este permiso el ojito sale gris) |
| 013 | Ver costos y utilidades | Ver columnas de costo en la tabla de búsqueda |
Datos del artículo
La sección Datos contiene la información básica obligatoria del artículo:
| Campo | Tipo | Oblig. | Validación | Ejemplo |
|---|---|---|---|---|
| Código | VARCHAR(15) | Sí* | Máx 15 caracteres. Auto si se deja vacío (CCSS####), o con el botón Lineal. Ver abajo. | 99010003 |
| Cód. Barra | VARCHAR(45) | No | EAN-13 / UPC. Sin validación de dígito verificador. | 7441003500150 |
| Nombre | VARCHAR(255) | Sí | Si la empresa tiene encendido el parámetro 37, el nombre se guarda siempre en MAYÚSCULA (ver abajo). Ya no existe el check MAYUSC del editor anterior. |
Coca-Cola 600ml |
| Detalle Interno | VARCHAR(500) | No | Notas internas, buscables. No se muestran al cliente. | Lote julio 2026 |
| Categoría | CHAR(2) | Sí | Se puede escribir a mano. Para ver la lista: el botón de al lado, o doble clic en el campo. | 99 |
| SubCategoría | CHAR(2) | Sí | Igual que la categoría: se escribe a mano, y el botón o el doble clic muestran la lista, ya acotada a la categoría elegida. | 01 |
| Naturaleza | TINYINT | Sí | 1=Producto, 2=Servicio, 3=Receta. | 1 |
| Tarifa IVA | CHAR(2) | Sí | Código Hacienda: 01=exento, 08=13%, 02=1%, 03=2%, 04=4%. | 08 |
| Actividad | VARCHAR(6) | Cond. | Obligatorio si ParametrosEmpresa[125]=1. |
471100 |
| CABYS | CHAR(13) | Cond. | 13 dígitos. Validación contra catálogo Hacienda. Obligatorio si ParametrosEmpresa[125]=1. |
1122202100000 |
125 para que ambos campos sean obligatorios en el catálogo. El CABYS determina la tarifa de IVA por defecto; verifique que el cabys_tarifa coincida con el campo Tarifa IVA del artículo.
Código automático
Si deja el campo Código vacío al crear un artículo nuevo, el sistema genera uno automático con el formato:
99010001, 99010002, etc.
Botón Lineal — el siguiente código libre
Al lado del campo Código hay un botón . Al tocarlo, el sistema busca el siguiente número consecutivo que no esté usado y lo pone en el campo. Es el mismo comportamiento del botón Lineal de Compras.
Sirve cuando quiere códigos corridos (1, 2, 3…) en vez del código automático, que se arma con la categoría y la subcategoría.
| Cómo llena el código | Qué obtiene |
|---|---|
| Dejar el campo vacío y guardar | Código armado con categoría + subcategoría (ej. 99010003) |
| Botón Lineal | El siguiente número corrido que esté libre |
| Escribirlo a mano | El que usted digite (máx. 15 caracteres) |
Tipo de consumo (restaurantes)
Solo aplica si usa SacTáctil. Este campo decide a cuál impresora del salón se manda la comanda cuando alguien pide ese artículo.
| Opción | La comanda sale por |
|---|---|
| Nada | No se imprime comanda |
| Comida | Impresora de cocina |
| Cócteles | Impresora de bar / cócteles |
| Caliente | Impresora de cocina caliente |
| Fría | Impresora de cocina fría |
Buscador CABYS
Al hacer clic en el botón de lupa () junto al campo CABYS, se abre un modal donde puede buscar por código o por descripción. Al seleccionar un resultado, se rellena automáticamente el código y el nombre CABYS: el código queda dentro del campo y la descripción se muestra justo debajo, en una sola línea. Si la descripción es larga se corta con puntos suspensivos; para leerla completa, pase el puntero por encima.
El campo CABYS también se puede escribir a mano: al salir del campo se verifica contra el catálogo. Si el código no existe, se avisa y se limpia, para que no quede guardado un CABYS que después rebote en Hacienda.
La descripción también se ve en los artículos ya guardados. Al abrir un artículo del catálogo, bajo el código CABYS aparece la descripción que le corresponde, sin tener que copiar el código ni volver a abrir la lupa. Tiene tres formas de leerla completa:
- Pasando el puntero sobre el propio código CABYS (o sobre la descripción): sale la descripción entera en un globito.
- Haciendo clic en la descripción: se abre en varias líneas. Otro clic la vuelve a dejar en una sola línea.
- En el celular la descripción aparece igual, debajo del campo.
-- Crear artículo nuevo (los 7 campos obligatorios) INSERT INTO Articulos ( Cod_Articulo, Descripcion, Cod_Tipo_Articulo, Cod_SubTipo, Cod_Naturaleza, CodTarifaImpuesto, CodigoCabys, CodigoActividad ) VALUES ( '99010003', 'COCA-COLA 600ML', '99', '01', 1, '08', -- Producto, IVA 13% '1122202100000', '471100' );
Costos y precios
Esta sección administra el costo del artículo y la lista de precios multi-nivel (cantidad de niveles definida por la empresa) con cálculo automático de margen, redondeo y soporte multi-moneda.
Origen del costo
El primer renglón permite elegir qué costo se usa como referencia para los cálculos de margen y utilidad:
| Opción | Descripción |
|---|---|
| Manual | El costo se ingresa manualmente. Es el valor predeterminado. |
| Promedio | Usa el costo promedio calculado por el sistema basado en las compras. |
| Último | Usa el costo de la última compra registrada. |
| Bruto | Usa el costo bruto de compra (antes de impuestos). |
Opciones adicionales (checkboxes)
En la misma fila del origen del costo se encuentran opciones adicionales:
- P.Manual — Permite modificar el precio de venta manualmente durante la facturación. Si está desactivado, el precio está bloqueado.
- Sobregira — Permite vender el artículo aunque no haya stock disponible en la bodega.
- Fracción — Permite vender cantidades fraccionarias (ej: 0.5 kg, 1.25 metros).
- Serie — Requiere que se ingrese un número de serie al facturar este artículo.
- Web — Marca el artículo para mostrarse en la tienda en línea.
La tienda en línea no publica todo el inventario: publica únicamente los artículos que tengan marcada la casilla Web (Mostrar en web). Un artículo sin esa marca existe en el sistema y se factura normalmente, pero no aparece en la tienda.
Para dejar la tienda en blanco (por ejemplo, mientras se depura el catálogo) y luego ir publicando solo lo aprobado:
- En el buscador de artículos, presione Buscar sin filtros para traer todo el catálogo.
- Marque la casilla del encabezado de la tabla y, cuando aparezca, presione «Seleccionar los N del filtro» — así la operación cubre todos los artículos y no solo la página visible.
- Presione Cambios globales → pestaña Estado & Visibilidad → tarjeta Visibilidad en web → Ocultar.
Para volver a publicar, el camino es el mismo con el botón Mostrar, o marcando la casilla Web artículo por artículo desde su ficha. Ver Cambios globales.
Para ver solo lo que está publicado y darle mantenimiento: en el buscador abra Más filtros, marque Mostrar en web y presione Buscar. La lista trae únicamente los artículos que salen en la tienda; se puede combinar con los demás filtros y exportar a Excel.
El enlace de la tienda no se apaga: si no hay artículos publicados, la tienda abre vacía. Cada cambio de visibilidad queda registrado en la bitácora con el valor anterior y el nuevo.
Tabla de costos
Debajo del origen se muestran 4 campos de costo alineados en columnas:
- Manual — Costo ingresado por el usuario (editable).
- Promedio — Costo promedio ponderado (se actualiza al registrar compras).
- Último — Costo de la última compra (se actualiza automáticamente).
- Bruto — Costo bruto de la última compra.
Cambiar la moneda del artículo (2026-07-18)
El artículo tiene una moneda propia, que se cambia desde la etiqueta de moneda en el encabezado de Datos básicos. Los costos guardados están expresados en esa moneda.
Al cambiarla y guardar, el sistema pregunta si desea convertir también los costos usando el tipo de cambio vigente:
- Aceptar — Se convierten los cuatro costos (Propio, Promedio, Último y Bruto). El costo resultante se traslada a los precios del artículo y se recalculan los que están en modo automático.
- Cancelar — Solo cambia la moneda; los costos quedan con el mismo número.
Ejemplo: un artículo en dólares con costo 1.50, al pasarlo a colones con un tipo de cambio de 455.14, queda con costo 682.71.
Tenga presente que cada nivel de precio tiene además su propia moneda, independiente de la del artículo. Cambiar la del artículo no modifica la de los niveles de precio.
Precios P1 a P10
Cada artículo puede tener hasta 10 precios de venta (P1 a P10). Cada precio tiene 4 columnas interrelacionadas:
| Columna | Descripción | Editable |
|---|---|---|
| Precio | Precio base de venta (sin IVA) | Solo en M (Manual) |
| Margen % | Porcentaje de ganancia fijado por usted. La base depende del campo Margen sobre de ese nivel: COSTO (indicador C) o VENTA (indicador V) — ver el recuadro de abajo. | Sí |
| (Margen real) | El que da hoy el precio contra el costo actual. Va entre paréntesis al lado del margen y se calcula solo | No |
| Utilidad | Ganancia absoluta (Precio - Costo) | No |
| Venta+IVA (Precio Neto) | Precio final con impuesto incluido | Solo en M (Manual) |
- En A (Automático) se escribe el margen, y el precio y el Venta+IVA se calculan desde el costo del origen seleccionado. Aquí el precio no se escribe.
- En M (Manual) también se puede escribir el precio o el Venta+IVA: el sistema saca el precio sin IVA y calcula el margen que corresponde.
- Sobre COSTO (markup):
(Precio − Costo) ÷ Costo × 100— «por cada ₡100 que me costó, le gano X». - Sobre VENTA:
(Precio − Costo) ÷ Precio × 100— «de cada ₡100 que cobro, X son ganancia». Nunca pasa de 100 %.
Auto / Manual y el precio de un artículo que todavía no existe
Cada nivel de precio tiene un interruptor A / M en la columna Auto:
| Modo | Qué manda | El campo Precio |
|---|---|---|
| A — Automático | El margen: el precio se calcula sobre el costo y se vuelve a calcular cada vez que el costo cambia (por ejemplo, al aplicar una compra). | Solo se muestra — no se escribe |
| M — Manual | El precio: usted lo fija y ahí queda. El margen pasa a ser el resultado, no la orden. | Se escribe |
Para fijar un precio a mano, primero pase la fila a M con el interruptor; ahí el campo Precio se habilita.
Copiar un precio a los demás niveles
Si maneja varios niveles de precio con el mismo valor, no hace falta escribirlos uno por uno. Escriba el precio en un nivel y presione Enter: el sistema le pregunta si quiere copiarlo a los demás.
Funciona en las dos casillas de precio, la de con impuesto y la de sin impuesto.
A cuáles niveles copia:
| Nivel | ¿Recibe el precio? | Por qué |
|---|---|---|
| Misma moneda, en Manual | Sí | Es el caso normal |
| Otra moneda | No | Un precio en colones no significa lo mismo en un nivel en dólares |
| En Automático (A) | No | Ahí el precio lo calcula el margen sobre el costo. Escribírselo duraría hasta el próximo cambio de costo. Si lo quiere incluir, páselo antes a Manual con el interruptor A/M de la fila |
| Que ya tiene ese mismo precio | No hace falta | Si no queda ninguno por cambiar, no pregunta nada |
El mensaje le nombra uno por uno los niveles que se salta y por qué, antes de que usted acepte.
También puede ver céntimos de diferencia entre niveles: cada nivel aplica su propio redondeo.
Funciona igual en el celular.
Kardex. Todos los movimientos pasan por InventarioMovimiento + actualización de Articulos.UltimoMovimiento. Si su integración consultaba Kardex, debe migrar a vista_movimientos.
Otros datos
La sección de Otros Datos contiene campos opcionales para información complementaria del artículo:
Generales
| Campo | Descripción |
|---|---|
| Estado | 1 = Activo, 2 = Inactivo, 3 = Eliminado, 4 = Descontinuado. Solo los activos aparecen en facturación. |
| Moneda | Moneda del artículo (CRC, USD, EUR). Si la empresa opera en colones, seleccione CRC. |
| Mínimo Stock | Cantidad mínima que debe existir en inventario. Se usa para alertas de reabastecimiento. |
| Máximo Stock | Cantidad máxima recomendada en inventario. |
| Desc. Máximo % | Porcentaje máximo de descuento que se puede aplicar al facturar este artículo. |
| Comisión % | Porcentaje de comisión para el agente de ventas al vender este artículo. |
| Ventas | Cantidad total de unidades vendidas (solo lectura, se actualiza automáticamente). |
| Descuento | Monto fijo de descuento aplicado al artículo. |
| Precio Sugerido | Precio sugerido por el fabricante o proveedor. |
Identificación
| Campo | Descripción |
|---|---|
| Cód. Universal | Código universal del producto (si aplica). |
| Proveedor | Proveedor principal asociado al artículo. No se actualiza solo con cada compra: si el artículo se crea desde una compra ya queda con ese proveedor, y para poner al día el último proveedor de los artículos que ya existen se usa Compras → Sync Art. Proveedor (CO-033), sección Último proveedor de cada artículo, botón Actualizar el proveedor. El historial de compras de cada proveedor se ve en el botón de Compras / Ventas de la lista (MX-009). |
| Marca | Marca comercial del producto. |
| Clase | Clasificación adicional libre. |
| Unidad Medida | Unidad de medida (ej: UND, KG, LT, MT). |
| Uds. x Medida | Cantidad de unidades por medida (ej: 6 latas por paquete). Valor predeterminado: 1. |
| Orden Compra | Número de orden de compra asociado. |
Farmacéutico
Para artículos farmacéuticos, se incluyen campos adicionales:
| Campo | Descripción |
|---|---|
| Forma Farmac. | Forma farmacéutica del medicamento (ej: tabletas, cápsulas, jarabe). Se selecciona de un catálogo con más de 200 formas. |
| Reg. Sanitario | Número de registro sanitario del producto (ej: 2101-YK-5279). |
Auditoría
Al final de la sección se muestran campos de solo lectura con información de auditoría:
- Creado — Fecha y hora de creación del artículo.
- Creado por — Usuario que creó el artículo.
- Modificado — Fecha y hora de la última modificación.
- Modifica por — Usuario que realizó la última modificación.
- Ventas — Cantidad total que se ha vendido del artículo en esta empresa (facturas y tiquetes, con las notas de crédito ya rebajadas). Para verlo mes a mes use el gráfico de ventas por mes.
Cuenta Contable de Inventario (2026-05-01)
Cada artículo puede tener su propia cuenta contable de inventario. Se usa al registrar compras: cuando se aplica una compra, el monto del artículo aumenta esta cuenta en el asiento contable. Si el artículo no tiene cuenta asignada, el sistema usa la cuenta default global (Parámetro 92 en Configuración → Parámetros).
- Cta. Inventario — Doble clic en el campo abre un buscador del catálogo contable. Seleccione la cuenta y el código se rellena automáticamente.
- Si lo deja en blanco, se aplicará la cuenta default del Parámetro 92.
- Para casos especiales por proveedor (mismo artículo, distinta cuenta según proveedor), se usa la tabla
ProveedorArticuloCuentaque tiene prioridad sobre la cuenta del artículo.
La depreciación NO se configura por artículo. Si el artículo es un activo fijo, la cuenta de depreciación se asigna en el módulo Activos Fijos al registrar el activo individual (un mismo artículo puede dar origen a varios activos fijos con distintas cuentas de depreciación según uso, ubicación, etc.).
Imágenes
Cada artículo puede tener múltiples imágenes organizadas en un carrusel. La primera imagen se usa como imagen principal en otros módulos.
Agregar imágenes
Existen 3 formas de agregar imágenes:
- Botón + — Haga clic en el botón del encabezado "Imágenes" para abrir el selector de archivos. Soporta formatos JPG, PNG, GIF, WebP.
- Pegar (Ctrl+V) — Copie una imagen del portapapeles y péquela directamente en el área de la imagen. Ideal para capturas de pantalla.
- Arrastrar y soltar — Arrastre un archivo de imagen desde su explorador de archivos al área de la imagen.
Con cualquiera de esas formas, si entra una sola imagen el sistema abre antes la pantalla de recorte, para que suba solo la parte que le sirve.
Navegar entre imágenes
Use las flechas o las teclas de flecha izquierda/derecha del teclado para navegar entre las imágenes. El contador en el encabezado muestra la posición actual (ej: 2/5).
Eliminar imágenes
Haga clic en el botón del encabezado para eliminar la imagen actual. Se le pedirá confirmación antes de eliminar.
Buscar la forma farmacéutica
El campo Forma farmacéutica (farmacias) tiene 229 opciones, así que en vez de una lista para bajar a ojo es un cuadro donde se escribe: a medida que escribe, la lista se reduce a lo que coincide, sin importar por dónde empiece la palabra.
- Se elige con el mouse o con el teclado: flechas para moverse, Enter para escoger.
- Esc cierra la lista y deja lo que estaba.
- Si nada coincide, lo dice en vez de mostrar una lista vacía.
Funciona igual en la computadora y en el celular. El dato se guarda exactamente igual que antes: lo único que cambia es cómo se encuentra.
Ponerle la foto desde el teléfono
En la versión de celular, dentro de la ficha del artículo, toque el bloque Imágenes y luego el cuadro + Agregar. Puede tomar la foto en el momento o escoger una de la galería.
- La foto se le pone al artículo después de guardarlo. Si está creando uno nuevo, guárdelo primero y ahí sí le agrega la imagen.
- Antes de enviarla, el sistema la reduce y la aliviana sola: sube más rápido y gasta menos datos del teléfono. Usted no tiene que hacer nada.
- Si la foto es demasiado pesada, el sistema se lo dice con el peso exacto y el máximo, para que mande otra más liviana.
Recortar la foto antes de subirla
Apenas toma la foto (o escoge una de la galería), el sistema le muestra la pantalla Recortá la foto para que deje solo el producto y se vaya lo que sobra: la mesa, la mano, el piso.
- Mueva el recuadro — arrástrelo con el dedo para ubicarlo sobre el producto.
- Ajuste el tamaño — jale cualquiera de las cuatro esquinas. Lo que queda por fuera se ve oscurecido: eso es lo que no se guarda.
- Atajos — Toda la foto devuelve el recuadro al tamaño completo; Cuadrado lo deja cuadrado y centrado, que es como se ven las fotos en el catálogo.
- Usar la foto sube el recorte. Cancelar no sube nada y lo deja en la ficha.
- El recuadro nace abarcando la foto completa: si no quiere recortar nada, toque Usar la foto y sube igual que siempre.
- Funciona igual en la computadora: al elegir o pegar una imagen aparece la misma pantalla. Si selecciona varias fotos de una vez, no se pide recorte y suben tal cual.
- Lo que se recorta se descarta al subir. Si después quiere la foto completa, vuelva a agregarla y toque Toda la foto.
99010001.png). Las adicionales llevan un sufijo numérico.
Asignar imágenes desde mis archivos IN-014
¿Tiene una carpeta con muchas fotos de sus productos en la computadora y no quiere asignarlas una por una? Esta pantalla le permite cargar todas a la vez: el sistema lee la carpeta, reconoce a qué producto corresponde cada foto por el nombre del archivo y se las asigna en lote.
Paso a paso
- Abrir carpeta — Elija la carpeta de su equipo donde están las fotos. El sistema lista todas las imágenes que encuentre, con su miniatura.
- Elegir el método de coincidencia:
- IA (recomendado) — Reconoce el producto aunque el nombre del archivo esté abreviado o con las palabras en otro orden (ej:
coca 600.jpg→ COCA COLA 600 ML). Requiere saldo de IA. - Sin IA — aproximado por nombre — Compara por palabras en común. Funciona siempre, sin costo. Si el nombre del archivo se parece a la descripción, lo encuentra igual.
- IA (recomendado) — Reconoce el producto aunque el nombre del archivo esté abreviado o con las palabras en otro orden (ej:
- Analizar — El sistema arma una tabla: cada foto con el producto sugerido y un nivel de confianza (alta / media / baja).
- Revisar y corregir — Puede cambiar el producto de cualquier fila con la lista desplegable, o destildar las que no quiera asignar.
- Asignar seleccionadas — Sube y asigna las fotos marcadas. Cada una reemplaza la imagen principal del producto.
foto_2026-06-01.jpg, imagen1.png) probablemente queden sin coincidencia: eso es normal, asígnelas manualmente o renómbrelas.
Inventario
La sección de inventario muestra y permite gestionar el stock del artículo por bodega.
Stock por Bodega
La tabla muestra el stock actual del artículo en cada bodega donde tiene existencia:
| Columna | Descripción |
|---|---|
| Bod | Código de la bodega. |
| Nombre | Nombre de la bodega. |
| Stock | Cantidad actual en inventario. |
| Ubicación | Ubicación física dentro de la bodega (editable). Haga clic para cambiar la ubicación. Los cambios se guardan automáticamente al salir del campo o al presionar Enter. |
Ver las existencias en las demás sucursales MX-011
Si su empresa tiene sucursales, puede ver cuánto hay de un artículo en cada una sin salir de esta pantalla — ya no hace falta ir a FactuDesk para eso. En el listado de artículos (la parte de abajo), cada fila tiene un ojito al lado del botón de Ventas: tóquelo y se abre la ventana Existencias por sucursal.
| Columna | Qué muestra |
|---|---|
| Empresa | Cada sucursal. La que dice acá es la empresa en la que usted está trabajando. |
| Stock | Existencia total del artículo en esa sucursal. |
| Precio | El precio de la primera lista (P1) en esa sucursal, sin impuesto. |
- La casilla solo con stock > 0 viene marcada, para ver directo dónde hay. Desmárquela para ver todas las sucursales.
- Si una sucursal dice no está, el artículo no existe en el catálogo de esa sucursal: no es que se acabó, es que nunca lo han tenido.
- Toque una sucursal para ver en cuáles de sus bodegas está el artículo.
- Abajo aparece una recomendación: si hay en alguna sucursal, se puede pedir un traslado; si no hay en ninguna, toca comprarlo.
Ventas por mes: este año contra el anterior MX-012
Para ver de un vistazo si un artículo se está vendiendo más o menos que el año pasado. En el listado de artículos (la parte de abajo), cada fila tiene un ícono de barras a la izquierda del ojito: tóquelo y se abre la ventana Ventas por mes.
- El gráfico tiene dos líneas: en azul el año anterior completo y en naranja el año actual, de enero a diciembre.
- Cuenta la cantidad vendida (unidades en la medida del artículo), no el monto. Las notas de crédito se rebajan. Es solo lo vendido en esta empresa.
- Arriba salen tres datos: el total del año anterior, lo que va del año actual y la comparación de los meses ya cerrados (por ejemplo, enero a agosto de este año contra enero a agosto del anterior).
- Abajo hay una tabla con los números de cada mes y la diferencia entre los dos años.
Ajuste de Stock
Permite realizar ajustes rápidos de inventario sin necesidad de crear una nota de entrada/salida:
- Toque la fila de la bodega donde desea ajustar el stock — queda marcada (resaltada). Si no toca ninguna, queda seleccionada la primera de la lista por defecto.
- Ingrese la cantidad a ajustar (en la barra inferior).
- Escoja el motivo en la lista, o déjela en "-- Escribir el motivo --" y escríbalo a mano. El motivo es obligatorio: es lo que después explica el movimiento en el kardex.
- Haga clic en + (sumar / entrada) o − (restar / salida).
Tras el ajuste la lista se actualiza con el nuevo stock y la bodega seleccionada se mantiene marcada (con un destello verde), así puede seguir aplicando + / − sobre la misma bodega sin tener que volver a tocarla.
Modal Kardex — movimientos del artículo MIN-003
El Kardex es un modal reutilizable que muestra el historial cronológico de movimientos (entradas, salidas, ajustes) del artículo cargado, con saldo corrido. Se abre desde el botón "Kardex" () en la barra de título del formulario.
Filtros del header
| Filtro | Tipo | Default | Descripción |
|---|---|---|---|
| Bodega | select | Todas | Filtrar movimientos por bodega. Si el kardex se abre desde un módulo con bodega preseleccionada (ej: Traslados), viene precargada. |
| Desde | date | Hoy − 3 meses | Fecha inicial (YYYY-MM-DD). El rango por defecto son los últimos 90 días. |
| Hasta | date | Hoy | Fecha final. Ambas fechas inclusive. |
Tipos de movimiento
- FAC — Factura de venta (salida, cantidad negativa)
- COM — Compra (entrada)
- DEV — Devolución (NC venta = entrada; NC compra = salida)
- REQ / RIN — Requisición / traslado interno
- TCI — Traslado entre empresas
- AJU — Ajuste manual desde la card "Ajuste Stock"
- TOM — Toma física aplicada
- NEI / NSI — Nota de entrada / salida manual
Acciones disponibles
- Buscar — aplica los filtros actuales y refresca la tabla.
- Excel — exporta los movimientos filtrados a XLSX con cabecera, totales y columnas tabulares.
- Doble clic en fila — abre el documento de origen (factura, traslado, toma física) en una nueva pestaña.
- Cerrar — ícono ✕ arriba a la derecha o tecla Esc.
RunningStock). Útil para auditar desfases de inventario punto a punto.
/componentes/modal_kardex/ y se invoca desde JS así:
// Preseleccionar bodega y abrir kardex.bodega = '2'; kardex.abrir('02010021', 'Coca 11');Además de IN-002, lo usan Traslados (IN-007), Toma Física (IN-TF-001) y Notas E/S (IN-009).
Crear un artículo nuevo
Para crear un artículo nuevo, siga estos pasos:
- Haga clic en el botón "Nuevo" () en la barra de título, o presione Ctrl+N. Esto limpia todos los campos del formulario.
- Ingrese el Código del artículo (opcional: déjelo vacío para código automático).
- Llene el Nombre del artículo. Ya no hay un botón de mayúsculas junto al rótulo: si su empresa tiene activado el parámetro 37, los nombres se guardan siempre en MAYÚSCULA de forma automática y el campo se lo muestra así mientras escribe. Si no lo tiene activado, el nombre se guarda tal cual lo escriba; pídalo a soporte si lo quiere encendido.
- Ponga la Categoría y la Subcategoría. Puede escribirlas a mano —al hacer clic ya no se le despliega nada encima— o abrir la lista completa con el botón que está a la par del campo, o con doble clic sobre el campo. La lista de subcategorías sale ya acotada a la categoría que haya puesto.
- Seleccione la Naturaleza (Producto, Servicio o Receta).
- Seleccione la Tarifa IVA.
- Ingrese el Costo y al menos el Precio 1.
- Haga clic en "Guardar" () o presione Ctrl+S.
Editar un artículo existente
Para editar un artículo:
- Busque el artículo en la sección de Búsqueda usando cualquier criterio (código, nombre, código de barra, etc.).
- Haga clic en la fila del artículo. Los datos se cargan automáticamente en el formulario superior.
- Modifique los campos que necesite cambiar.
- Haga clic en "Guardar" o presione Ctrl+S.
Clonar un artículo
La función de clonación crea una copia del artículo actual con un código nuevo, conservando los precios y todos los datos para que no tenga que volver a cargarlos.
- Cargue el artículo que desea clonar (búsquelo y haga clic en él).
- Haga clic en "Clonar" ().
- El formulario queda con todos los datos del artículo original y en modo "crear".
- Escriba el código nuevo (o déjelo vacío para uno automático) y cambie lo que necesite — los precios incluidos: puede pasar niveles de Auto a Manual, fijarles el precio y cambiarles el margen o el redondeo antes de guardar (ver Auto / Manual al crear).
- Haga clic en "Guardar". El artículo nuevo se crea con la lista de precios tal como quedó en pantalla (todos los niveles, con su modo Auto/Manual, precio, margen, moneda, descuentos y redondeo), el costo y los demás datos del original.
Eliminar artículos
Puede eliminar artículos de dos formas:
Eliminación individual
Cargue el artículo en el formulario, luego use la opción de eliminación. El artículo cambia a estado Eliminado (3) pero permanece en la base de datos para auditoría.
Desde el celular: al editar un artículo aparece un botón de papelera en el encabezado. El borrado solo procede si la existencia está en cero; si tiene stock, el sistema lo bloquea.
Eliminación múltiple
- En la tabla de búsqueda, active los checkboxes de los artículos que desea eliminar.
- Haga clic en el botón "Eliminar" () que aparece en la barra de título.
- Confirme la operación. Los artículos seleccionados cambiarán a estado Eliminado.
Buscador
El buscador trae todos los artículos que contengan lo que usted escribió, sin importar en cuál de estos cuatro campos aparezca:
- Código del artículo.
- Código de barra.
- Nombre.
- Detalle interno.
Si escribe varias palabras, tienen que aparecer todas (en cualquier orden y en cualquiera de esos cuatro campos). Por ejemplo "pocky chocolate" trae los artículos que lleven las dos palabras. No hace falta escribir el código completo: con un pedazo basta.
Columnas de la tabla
| Columna | Descripción |
|---|---|
| Código | Código del artículo (enlace al formulario). |
| Nombre | Nombre del artículo. |
| Categoría | Categoría y subcategoría. |
| Costo | Costo del artículo (solo con permiso 013). |
| Precio | Precio de venta según la lista seleccionada en filtros. |
| Vta+IVA | Precio final con IVA incluido. |
| IVA | Porcentaje de IVA aplicado. |
| Utilidad | Porcentaje de utilidad del precio seleccionado. Se calcula según cómo esté configurado ese nivel de precio: sobre el costo (marca C) o sobre la venta (marca V). En verde si hay ganancia, en rojo si el precio queda bajo el costo. Al pasar el mouse muestra la ganancia en colones. Se puede ordenar: haga clic en el encabezado Utilidad para ordenar de menor a mayor y otra vez para invertirlo. El orden se aplica a todo el inventario filtrado, no solo a la página visible, así que la primera página le trae realmente los artículos de mayor (o menor) utilidad. Ordenando de mayor a menor salen de primero los artículos con el costo en cero, cuyo porcentaje se dispara: es la forma más rápida de detectarlos y corregirles el costo. |
| Stock | Existencia total o por bodega filtrada. |
| Estado | Estado actual del artículo. |
| Acciones | ventas por mes, este año contra el anterior (ver cómo se usa) · existencias en las sucursales (ver cómo se usa) · historial de compras y ventas · eliminar el artículo. |
Filtros avanzados
El buscador ofrece múltiples filtros combinables para refinar la búsqueda:
| Filtro | Tipo | Descripción |
|---|---|---|
| Buscar | Texto | Código, código de barra, nombre o detalle interno. |
| Categoría | Select | Filtra por categoría principal. |
| SubCat | Select | Filtra por subcategoría. |
| Estado | Select | Activo, Inactivo, Eliminado, Descontinuado. Por defecto: Activo. |
| Bodega | Select | Filtra stock por una bodega específica. |
| IVA | Select | Filtra por tarifa de IVA. |
| Naturaleza | Select | Producto, Servicio o Receta. |
| Precio | Select | Lista de precios a mostrar (P1 a P10). |
| Stock | Operador + Valor | Filtra por cantidad de stock (ej: >= 10, = 0, < 5). |
| Utilidad % | Operador + Valor | Filtra por el porcentaje de utilidad del precio seleccionado (ej: < 5 = artículos con menos del 5% de utilidad; >= 30, = 0). Respeta si el margen está configurado sobre costo o sobre venta. Ideal para detectar artículos vendiéndose con poca o nula ganancia. El filtro también aplica a la exportación a Excel. |
El botón «Limpiar» avisa cuando la lista está filtrada. Si hay cualquier filtro puesto —uno de la fila de arriba o uno de Más filtros— el botón Limpiar se ve amarillo. Sin filtros, se ve blanco, como los demás. Así sabe de un vistazo por qué la lista trae menos artículos de los que esperaba. Tocarlo quita todos los filtros de una vez.
- Lo que viene puesto de fábrica no cuenta como filtro: Estado = Activo y Precio = P1. Si cambia el Estado a Inactivo o el Precio a P2, sí se enciende.
- Se enciende con lo que ya se aplicó, es decir, lo que muestra la lista. Si cambia un filtro y todavía no presiona Buscar, el color no cambia hasta que busque.
Filtros de checkbox
Debajo de los filtros principales hay checkboxes adicionales:
- Sin Actividad — Muestra solo artículos que no tienen actividad económica asignada.
- Sin CABYS — Muestra solo artículos sin código CABYS.
- Fraccionados — Muestra solo artículos que permiten venta fraccionaria.
- Con Descuento — Muestra solo artículos que tienen descuento máximo configurado.
- Mostrar en web — Muestra solo los artículos que tienen encendida la casilla Mostrar en web, es decir, los que salen en la tienda en línea. Sirve para revisar y darle mantenimiento a lo que tiene publicado (fotos, precios, nombres) sin buscarlo uno por uno. Se combina con los demás filtros (por ejemplo, Mostrar en web + Stock = 0 le dice qué está publicado sin existencia) y también aplica a la exportación a Excel y a Seleccionar todos los del filtro.
- Mostrar Ventas — Al marcarse aparecen los inputs Ventas Desde / Hasta y se agrega la columna Vendido en la tabla con la cantidad de unidades vendidas en ese rango (las Notas de Crédito restan automáticamente). Se consideran solo documentos en Estado 1, 2 o 4 (procesados).
Filtros por fecha de creación
Independiente del check "Mostrar Ventas", el buscador tiene dos campos opcionales:
- Creado Desde — Solo muestra artículos cuyo
FechaCreadosea igual o posterior a la fecha indicada. - Creado Hasta — Solo muestra artículos cuyo
FechaCreadosea igual o anterior a la fecha indicada (límite inclusivo, fin de día).
Si dejás ambos vacíos no se aplica filtro de fecha de creación. Útil para ver qué artículos se crearon en un período específico (auditoría, alta de inventario, etc.).
Exportar
Excel
El botón "Excel" () está en la fila de filtros del buscador, al lado de Buscar y Limpiar. Descarga un archivo con todos los artículos que coincidan con los filtros puestos (no solo los de la página que está viendo).
Trae los diez precios (P1 a P10) de cada artículo. La columna «Precio Manual (P1)» dice Sí o No según si ese precio está marcado como manual (la casilla M de la lista de precios), y se refiere al nivel elegido en el filtro Precio del buscador: si filtró con P2, la columna se llama «Precio Manual (P2)» y habla del precio 2. Si el artículo no tiene ese nivel de precio, la celda queda vacía.
Si el botón Excel se ve apagado, vea El botón Excel se ve gris.
El botón Excel se ve gris
Si el botón Excel aparece apagado y no responde al hacer clic, no es una falla: la exportación está protegida y se habilita reporte por reporte.
La razón es simple: un Excel se lleva la información fuera del sistema. En esta pantalla salen costos, precios, márgenes de utilidad y todo el catálogo en un archivo que después se puede copiar o reenviar sin dejar rastro. Por eso la exportación arrancó apagada y se va habilitando a solicitud.
Son dos llaves, y hacen falta las dos
| Nivel | Qué decide | Quién lo activa |
|---|---|---|
| 1 · Parámetro del reporte | Si la empresa puede exportar ese reporte. | Soporte Real, uno por uno. |
| 2 · Permiso del usuario | Si esa persona puede exportarlo. | El administrador de la empresa, desde Seguridad → Usuarios. |
Si falta cualquiera de las dos, el botón queda apagado. Que el parámetro esté encendido no alcanza si la persona no tiene además su permiso.
Si le falta el permiso del usuario
Eso lo resuelve la propia empresa, sin pasar por soporte. El administrador entra a Seguridad → Usuarios SE-001, elige a la persona en la lista de la izquierda, escribe Excel en el buscador de permisos y marca el que corresponda. Para esta pantalla el permiso se llama «Inventarios: exportar a Excel Crear/Editar (IN-002)» 926. El del catálogo es «Inventarios: exportar a Excel Catálogo artículos (IN-001)» 927: son dos permisos distintos, uno por pantalla.
El cambio toma efecto recargando la pantalla; no hace falta cerrar sesión.
Si le falta el parámetro de la empresa
La solicitud debe venir de la gerencia o el dueño, indicando cuáles reportes, para qué y quiénes deben poder exportarlos. Se pide así porque desde soporte no hay forma de saber si quien lo solicita es un usuario del sistema o el dueño, y lo que sale es el catálogo completo con costos y márgenes.
La solicitud se envía por correo a info@soportereal.com, desde el dueño o la gerencia. Ese es el canal: no hay que llamar ni esperar en el teléfono, y el correo deja constancia de quién lo pidió y para qué.
Mientras tanto
La lista se ve completa en pantalla con todos los filtros. Y para llevarla a papel o a PDF está Inventario → Catálogo de artículos IN-001 → Imprimir Web, que respeta los filtros y trae las mismas columnas (código, código de barra, nombre, categoría, subcategoría, costo, precio, margen, IVA, neto, stock y unidad de medida). Ese botón no está protegido.
Cambios globales
El modal Cambios Globales de Artículos permite aplicar una modificación masiva sobre varios artículos a la vez: cambiar familia, IVA, CABYS, marca, precios, costos, visibilidad web, sobregiro, fraccionamiento, estado (activar/eliminar), descargar fotos, etc.
Flujo de selección
- Aplique los filtros del buscador (por categoría, marca, IVA, stock, etc.).
- Marque los artículos a modificar:
- Checkbox individual en cada fila — selecciona solo ese artículo.
- Checkbox del encabezado (☑ "Seleccionar todos") — selecciona TODOS los artículos del filtro completo, no solo los de la página actual. Si hay varias páginas, muestra un indicador "Cargando..." mientras recupera la lista completa.
- Cuando hay más de una página de resultados, aparece una barra informativa amarilla bajo el encabezado que indica cuántos artículos están seleccionados (ej: "Seleccionados los 11,681 artículos del filtro (todas las páginas)"). Desde esta barra puede reducir el alcance a "Seleccionar solo esta página".
- Haga clic en el botón "Globales" () en la barra superior. Se abre el modal MIN-004 con un contador de artículos seleccionados.
- Complete los campos de la acción deseada y presione el botón correspondiente. Confirme la operación.
- El resultado aparece en el panel "Resultados" al pie del modal, con timestamp y número de artículos actualizados. El API procesa internamente en lotes de 500 registros.
Acciones disponibles (organizadas en 5 pestañas — v2.0.0 · 2026-05-05)
El modal MIN-004 ahora se presenta en pestañas de navegación para encontrar rápidamente la operación buscada. Cada pestaña agrupa cards con una operación cada una.
| Pestaña | Acción | Efecto |
|---|---|---|
| 📋 Identificación | Mover a Categoría | Cambia Categoría + Subcategoría. Ahora 2 inputs de texto libre con autocompletado desde la base de datos. Al elegir una categoría existente, las subcategorías se filtran automáticamente; también se puede crear una categoría nueva escribiéndola directamente. |
| Cambiar Naturaleza | Producto / Servicio / Receta. | |
| Cambiar Tipo IVA | Tarifa fiscal (01–08). | |
| Cambiar CABYS | Código Hacienda 13 dígitos. | |
| Fijar Marca | Asigna marca textual. | |
| Actividad Económica | Asocia código de actividad económica. | |
| Agregar / Quitar Texto | Append o remove del DetalleInterno. | |
| 📦 Stock | Establecer Mínimo | Define punto de reorden mínimo. |
| Establecer Máximo | Define stock máximo. | |
| Permitir / Quitar Sobregirar | Sobregira = 1/0. | |
| Permitir / Quitar Fraccionar | Fraccionamiento = 1/0. | |
| 💰 Precios por nivel (ArticuloPrecios) | Desc. Fijo por nivel | UPDATE ArticuloPrecios.DescuentoFijo en el nivel P1..Pn elegido. |
| Desc. Máximo por nivel | UPDATE ArticuloPrecios.DescuentoMaximo en el nivel elegido. Tope efectivo del descuento que cualquier cajero podrá aplicar. | |
| Util. Mínima por nivel | UPDATE ArticuloPrecios.UtilidadMinima en el nivel elegido. Se respeta SIEMPRE en facturación, incluso para usuarios con permiso 023 (descuento ilimitado). | |
| Margen Sobre por nivel | Cambia ArticuloPrecios.MargenSobre a COSTO o VENTA. Ahora dispara recálculo del precio desde el margen ancla con la nueva fórmula (antes solo cambiaba el flag y dejaba precios viejos). | |
| Modo de venta por nivel | Cambia ArticuloPrecios.PrecioAuto a 1 (Auto: recalcula con costo) o 0 (Manual: precio fijo). Ahora pasa por la función central: si cambia a Auto recalcula el Precio desde el Margen; si cambia a Manual recalcula el Margen desde el Precio. | |
| Redondeo de precio por nivel | Fija el paso de redondeo del Precio + IVA del nivel elegido y re-redondea el precio actual. Desplegable con grupos ↑ Hacia arriba (0.1, Entero, ×5, ×10, ×25, ×50, ×100, ×500, ×1000) y ↓ Hacia abajo (los mismos en negativo), más "2 decimales (sin redondeo)". Ej.: Precio+IVA 84.08 con ↓ ×5 queda en 80.00. | |
| 🏷️ Costo & Precio masivo | Ajustar Precio Venta % NUEVO | Card unificada con selector Aumentar / Quitar. Aumentar: Precio × (1 + pct/100). Quitar: Precio ÷ (1 + pct/100) — operación inversa. Útil para revertir un aumento masivo (subiste 5% ayer y hoy le das "Quitar 5%" → vuelve al precio original) o para extraer IVA cuando el precio ya lo incluye (quitar 13% = ÷ 1.13). Actualiza dbo.ArticuloPrecios. |
| Establecer Precio | Fija el nivel de precio (P1..Pn) a un monto específico en ArticuloPrecios. | |
| Actualizar Margen | Fija el margen % del nivel y recalcula el precio desde el costo, según el modo Costo/Venta del artículo. Escribe en ArticuloPrecios. | |
| Aumentar Costo % | Incrementa el costo actual por porcentaje y propaga a todos los niveles de ArticuloPrecios. | |
| Establecer Costo | Fija el costo a un monto específico y propaga a todos los niveles de ArticuloPrecios. | |
⚙ Sincronización automática con empresas externas: todos los cambios masivos sobre precios/costos/márgenes ahora replican automáticamente a las empresas configuradas en EmpresasSincronizadas (parámetro 239 = 1). Para cambios por nivel se hace un MERGE bulk por destino (un solo statement, rapidísimo). Para cambios de costo se sincroniza artículo por artículo porque afecta todos los niveles. | ||
| 👁️ Estado & Visibilidad | Activar / Eliminar Artículos | Cod_Estado = 1 o 3. Los artículos con existencia en inventario no se eliminan (quedan como estaban y el resultado lo avisa). |
| Mostrar / Ocultar en Web | MostrarEnWeb = 1/0. | |
| Descargar Fotos | Genera ZIP con imágenes existentes. | |
| Buscar y Asignar Fotos | Busca imágenes usando el endpoint web (DuckDuckGo + SafeSearch estricto) usando el nombre del artículo + Categoría + Marca como hints, y permite asignar la imagen correcta desde una galería de 4 sugerencias. | |
SELECT DISTINCT NumeroPrecio FROM dbo.ArticuloPrecios. Si la empresa solo tiene precios P1, P2 y P5, solo verás esos tres niveles. Esto vale para todas las operaciones de precio (pestañas Precios por nivel y Costo & Precio masivo).
DBVenta1..10; ahora actualizan directamente la tabla unificada dbo.ArticuloPrecios a través del mismo motor que usa el editor de artículos (con recálculo de margen, redondeo del Neto y soporte multi-moneda). Si algún artículo no tiene definido el nivel elegido, se reporta como aviso y no se interrumpe el resto.
Articulos.Categoria y Articulos.SubCategoria (no más códigos en tablas separadas). El input es un campo de texto libre con autocompletado desde lo ya existente en la BD.
Estilo de botones
Los botones están homologados en estilo Banking Bold (mismo tamaño, tipografía y padding) con dos tonos de azul según la acción:
- Azul primario
#0047AB— Acciones de asignación/activación (Mover, Establecer, Permitir, Activar, Mostrar, Descargar, Agregar). - Azul oscuro navy
#0a2540— Acciones de remoción (Quitar Sobregirar, Quitar Fraccionar, Ocultar en Web, Eliminar Artículos, Quita Texto).
/api/inventarios/cambios_globales_api.php valida el permiso 050 (Artículos, Editar) antes de ejecutar cualquier cambio.
Atajos de teclado
| Atajo | Acción |
|---|---|
| Ctrl+S | Guardar artículo |
| Ctrl+N | Nuevo artículo (limpiar formulario) |
| Ctrl+V | Pegar imagen del portapapeles (cuando el foco está en el área de imagen) |
| ↑ ↓ | Navegar entre filas de la tabla de búsqueda |
| Enter | Seleccionar fila resaltada en la tabla |
| Esc | Cerrar modales abiertos |
Errores comunes
Preguntas frecuentes
1. ¿Cómo cambio el precio de venta con IVA incluido?
Primero ponga ese nivel en M (Manual) con el interruptor A / M de la fila. Luego escriba el precio final en la columna Precio Neto (Venta+IVA) y presione Enter. El sistema calcula el precio sin IVA, el margen y la utilidad.
En A (Automático) esa casilla no se escribe, porque el precio lo manda el margen. Ahí se cambia el margen y el precio se recalcula. Ver Auto / Manual.
2. ¿Puedo tener precios diferentes por cliente?
Sí. Cada cliente puede tener asignada una lista de precios (P1 a P10). Al facturar, el sistema usa automáticamente la lista asignada al cliente.
3. ¿Qué pasa si dejo el costo en 0?
El artículo se guardará con costo cero, pero los cálculos de margen y utilidad no funcionarán correctamente. Se recomienda siempre ingresar un costo, aunque sea estimado.
4. ¿Puedo vender un artículo sin stock?
Solo si el artículo tiene activado el checkbox Sobregira. Si está desactivado, el sistema impedirá facturar cantidades mayores al stock disponible.
5. ¿Cómo veo los movimientos de un artículo?
Al cargar un artículo en el formulario, aparece el botón "Kardex" () en la barra de título. Al hacer clic, se abre el modal MIN-003 filtrado por ese artículo.
6. ¿Qué diferencia hay entre Producto, Servicio y Receta?
- Producto (1) — Mercancía física que afecta el inventario al vender.
- Servicio (2) — No afecta inventario. Ideal para mano de obra, fletes, servicios profesionales.
- Receta (3) — Artículo compuesto. Al vender, se rebaja el stock de sus ingredientes individuales.
7. ¿Cómo sé si un artículo requiere CABYS?
Si los campos Actividad y CABYS tienen un asterisco (*) en su etiqueta, significa que el parámetro 125 de la empresa está activado y son obligatorios. Sin el asterisco, son opcionales.
8. ¿Puedo editar la ubicación del artículo en la bodega?
Sí. En la tabla de Stock por Bodega, el campo Ubicación es editable. Haga clic en él, escriba la ubicación y presione Enter o haga clic fuera del campo para guardar.
9. Antes había un botón para poner el nombre en MAYÚSCULA y ya no lo veo
Dejó de ser un botón: ahora es una configuración de la empresa, el parámetro 37 ("Artículos: guardar el nombre siempre en MAYÚSCULA"), en Configuración → Parámetros, grupo INVENTARIOS (permiso 017). Con el parámetro encendido no hay que acordarse de nada: uno escribe como quiera y el nombre se guarda en mayúscula solo, y el cuadro del Nombre se ve en mayúscula mientras se escribe para que quede claro.
Dos aclaraciones:
- Actúa al guardar, así que los artículos que ya estaban en minúscula siguen igual hasta que se vuelvan a guardar.
- Es solo para el nombre. El código se guarda tal como se digita — y no hace falta emparejarlo, porque el sistema busca artículos sin fijarse en mayúsculas ni minúsculas: ab-125 y AB-125 son el mismo artículo en el buscador, en la facturación y al importar listas en Toma Física o en Notas de Entrada/Salida.
Permisos
Los permisos controlan qué acciones puede realizar cada usuario en el catálogo de artículos. Se asignan al grupo de usuarios desde el módulo de Seguridad (SE-001).
| Permiso | Descripción | Afecta |
|---|---|---|
053 | Ver catálogo de artículos (IN-001) | Acceso a la lista de artículos; sin este permiso redirige al menú |
411 | Crear y editar artículos (IN-002) | Botón Nuevo, formulario de creación y edición completa de artículos |
050 | Actualizar artículos en lote | Guardar cambios masivos desde la edición en línea del catálogo |
055 | Ver existencias en inventario | Columna stock y tabla de stock por bodega en el formulario |
013 | Ver costos y utilidades | Columnas de costo, margen y utilidad en el catálogo |
Parámetros de empresa
Los parámetros configuran el comportamiento del formulario de artículos y los campos obligatorios.
| Parámetro | Descripción | Uso en artículos |
|---|---|---|
125 | CABYS obligatorio (1=sí, 0=no) | Si está activo, los campos Actividad y CABYS se vuelven obligatorios al guardar el artículo |
249 | Moneda nacional de la empresa (ej: CRC, USD) | Determina el símbolo de moneda mostrado en los precios y costos |
62 | Nombre de la empresa | Encabezado del Excel y PDF al exportar el catálogo |
42 | Al dar Enter en un precio, preguntar si copiarlo a los demás niveles (1=sí, 0=no) | Viene apagado. Ver Copiar un precio a los demás niveles |
201 | Modo de rebajo de artículos compuestos | Habilita la barra Armar en artículos de naturaleza Compuesto |
Versión móvil
Tanto el Catálogo (IN-001) como el Crear/Editar (IN-002) tienen una versión optimizada para celular. La detección es automática tanto por User-Agent como por ancho de pantalla, y el switch es transparente.
Cómo se decide qué versión cargar
- User-Agent móvil (iPhone/Android/iPad/etc.) → siempre carga el archivo
_movil.phpautomáticamente. - Ancho < 768 px en cualquier UA → JS detecta al primer paint y redirige a la versión móvil.
- Ancho ≥ 768 px sobre la versión móvil → JS detecta y redirige a la versión desktop.
Flags de override (consumibles)
Si querés forzar una versión específica, agregá a la URL:
?desktop=1— fuerza desktop esa carga (útil si tenés ventana angosta y querés ver el layout completo).?mobile=1— fuerza móvil esa carga (útil para previsualizar desde un desktop).
Importante: el flag se consume al cargar (se elimina del URL automáticamente). Si recargás (F5), la página vuelve a evaluar el ancho real. Esto evita que el flag quede pegado y bloquee la respuesta natural al redimensionar.
Catálogo móvil (IN-001 mobile)
- Cards con miniatura de imagen (60 px), código (mono azul), badge de estado, nombre 2 líneas, categoría/subcategoría, precio P# y stock con indicador visual (rojo si < 5, gris si 0).
- 3 filtros siempre visibles: Nombre (busca en nombre/código/barra), Estado (default Activo), Tipo Precio (selector dinámico según niveles configurados en la empresa).
- Filtros agregables con botón + Agregar filtro: Código, Barra, Categoría, SubCategoría, Naturaleza, Tarifa IVA, Paquetes, Stock (operador + valor).
- Auto-submit: cambios en selects disparan búsqueda inmediata; inputs de texto con debounce de 600 ms.
- FAB flotante "+" para crear nuevo artículo (si tenés permiso 411).
- Tap en card abre el editor móvil (
articulos_crear_movil.php?codigo=X). - Footer fijo: cantidad de artículos filtrados, stock total sumado, página actual.
Crear/Editar móvil (IN-002 mobile) — v2.0
Versión solo edición (no incluye buscador — para búsqueda usá el catálogo móvil). Desde mayo 2026 maneja la lista de precios multinivel completa (la misma tabla ArticuloPrecios del escritorio), no solo P1. Las cards se pueden colapsar tocando el header.
- Datos Básicos (abierta por defecto): Código, Cód. Barra, Nombre, Detalle Interno, Categoría / SubCategoría como texto libre con autocompletado (la subcategoría se filtra por la categoría escrita), Naturaleza, Tarifa IVA, CABYS, Actividad, Partida Arancelaria. La moneda del artículo y el estado se cambian con sus badges en el header.
- Costos y Precios:
- Los 4 costos (Propio / Promedio / Último / Bruto) con el selector de origen del costo. En edición hay un botón "Guardar costo (recalcula precios)" que actualiza el costo y recalcula automáticamente los precios y redondeos de toda la lista.
- Lista de precios (solo en edición): una tarjeta por nivel P1, P2, P3… con Costo (solo lectura), Precio sin IVA, Margen % (muestra entre paréntesis el margen real calculado), Sobre (COSTO / VENTA), Precio + IVA y un selector de Redondeo (↑ hacia arriba / ↓ hacia abajo, o "2 dec" sin redondeo). Hay un toggle AUTO / MAN por nivel: en AUTO el precio se recalcula al cambiar el costo; en MAN el precio queda fijo. Al editar Precio / Margen / Precio+IVA los demás se recalculan en vivo y al salir del campo se guarda. Botón "+ Agregar precio" para crear un nivel nuevo y un botón eliminar (🗑) por nivel. Al cambiar la Tarifa IVA se vuelve a buscar el porcentaje.
- En modo nuevo, primero hay que guardar el artículo: al recargarlo aparece la lista de precios para definir los niveles (mismo flujo que el escritorio).
- Cuenta Contable (si la empresa tiene la columna habilitada): input de la cuenta de inventario + botón lupa que abre un modal con buscador del catálogo contable.
- Imagen: tap en el cuadro abre cámara o galería (
capture="environment"). En modo edición sube automáticamente; en modo nuevo queda pendiente y se sube tras guardar con el código final. - Stock por Bodega (solo en edición + permiso 055): tabla read-only con Bodega, Stock y Ubicación. Para ajustar stock usá la versión desktop.
- Otros Datos (colapsada): Proveedor, Cód. Universal, Marca, Clase, Unidad, Uds×Med, Mín/Máx, Comisión, P. Sugerido, Orden Compra, Forma Farm., Reg. Sanit., y los 4 checks (Sobregira/Fracción/Serie/Web). Auditoría al final.
- Estado: badge clickeable en el header abre un modal selector con Activo/Inactivo/Eliminado/Descontinuado.
- Header: badge de Moneda, badge de Estado, botón Clonar (solo en edición), ir al Catálogo móvil, y Volver (regresa a la pestaña anterior).
- No incluye (para eso usá el escritorio): wizard de "Nuevo rápido", el modal avanzado de precio (Desc. Fijo / Máx / Util. Mínima), herramientas de IA, detección de duplicados, Kardex y el ajuste de stock.
Auto-generación de código en móvil
Igual que en desktop: si dejás el campo Código vacío al crear, el sistema lo arma con la fórmula Categoría + SubCategoría + consecutivo (4 dígitos) — por eso es obligatorio elegir SubCategoría cuando el código está en blanco. La etiqueta del campo dice "Código (vacío = auto)" para recordártelo.
Clonar artículo (móvil)
El botón del header (solo visible en edición) duplica el artículo actual en un nuevo registro:
- Mantiene todos los datos: precios, costos, categoría, IVA, naturaleza, proveedor, márgenes, etc.
- Limpia solo Código, Nombre y Cód. Barra para que ingreses los nuevos.
- Resetea la imagen (la imagen está atada al código del archivo PNG en disco).
- Oculta la card de Stock por Bodega (no aplica al artículo nuevo).
- Aparece un banner amarillo avisando que estás clonando, con botón Cancelar para volver al original.
Forzar desktop con ancho angosto
Si abrís el desktop con ?desktop=1 y la ventana mide menos de 768 px, el body recibe la clase force-desktop que anula los @media queries de mobile: la tabla sigue siendo tabla, los acordeones quedan abiertos, los botones muestran sus labels y el grid de 3 columnas se mantiene. Esto es solo para esa carga; al recargar se re-evalúa el ancho real.
Historial de cambios
Últimas actualizaciones al módulo Crear / Editar Artículo:
Además, el historial de ventas (botón ) y el total de Ventas del pie de la ficha ahora cuentan todos los tiquetes: antes se les escapaban muchos, así que es normal ver números más altos.
- Pantalla dividida ajustable: la zona de Datos del artículo (arriba) y la zona de Búsqueda (abajo) ahora ocupan exactamente la mitad de la pantalla cada una. Entre las dos hay una barra fina arrastrable con el mouse — la podés mover hacia arriba o abajo para darle más espacio a la que más uses (por ejemplo 60% Datos / 40% Búsqueda). El sistema recuerda tu preferencia en este navegador. Si querés volver al 50/50, hacé doble-clic sobre la barra divisoria.
- Letra más grande (16 px) en toda la columna derecha — Stock por Bodega, cantidades, Ubicación, barra "Ajuste de Inventario" (cantidad, justificación, botones + y −). Se ve cómodo sin esforzar la vista.
- Tabla de precios reescrita en una sola línea por nivel: cada precio se ve como
(margen virtual) (ganancia) [margen real]en la columna Margen, y Precio Sin Impuesto / Precio Neto en columnas separadas a la derecha. Toggle AUTO/MAN al inicio (slider con etiqueta). Letra 16 px pareja. Para editar campos avanzados (Desc. Fijo, Desc. Máximo, Utilidad Mínima, Redondeo, Sobre Costo/Venta), hacé doble-clic sobre la fila → se abre el modal "Modificar Precio". - Click en una fila de la lista de búsqueda → carga el artículo arriba. Antes a veces había un pequeño "brinco" al recargar la página o al cambiar de artículo — eso se eliminó (era un ajuste automático de zoom que ahora se aplica antes de pintar la pantalla).
- La lista de búsqueda se ordena al hacer click en el encabezado de cualquier columna (Código, Nombre, Stock, Cantidad, Costo, Precio, Neto, etc.). Aparece una flechita amarilla ▲/▼ en el header. Click otra vez en la misma columna invierte el orden.
- Nombre del artículo con ancho completo — ya no se trunca con "…", se ve entero. Si toda la fila no entra en la tabla, aparece scroll horizontal dentro de la lista (no afecta al resto de la pantalla).
- Stock por Bodega con scroll interno — si tu empresa tiene 10+ bodegas, la lista hace scroll adentro del panel; ya no empuja el card de Búsqueda hacia abajo.
- Cards con borde sutil y separación visible — los dos bloques principales (Datos del artículo y Búsqueda) tienen un marco fino para que se distinga la división.
- Lista de precios multinivel: una tarjeta por nivel P1, P2, P3… con Precio sin IVA, Margen % (más el margen real entre paréntesis), Sobre (COSTO/VENTA), Precio + IVA, selector de Redondeo (↑/↓) y toggle AUTO/MAN. Editar / agregar / eliminar niveles, igual que el escritorio. Recálculo en vivo al escribir.
- "Guardar costo (recalcula precios)": botón que actualiza el costo y recalcula los precios y redondeos de toda la lista en un toque.
- Categoría / SubCategoría como texto libre con autocompletado (la subcategoría se filtra por la categoría escrita).
- Cuenta contable de inventario con buscador del catálogo contable.
- Selector de moneda del artículo en el header.
Lote 12/103: 500/500 actualizado(s)…) y un resumen al final. No hay que cerrar la pestaña hasta que termine. Si un lote falla, se reporta y el resto continúa.
- Corrección: las operaciones de la pestaña Costo & Precio masivo (Aumentar % de Venta, Establecer Precio, Actualizar Margen, Aumentar Costo %, Establecer Costo) daban error
Invalid column name 'DBVenta1' / 'DBVenta3'en las empresas ya migradas a la lista de precios unificada (dbo.ArticuloPrecios), porque seguían escribiendo en las columnas viejasDBVenta1..10. Ahora pasan por el mismo motor central que el editor de artículos: recalculan margen, aplican el redondeo del Neto y soportan multi-moneda. Si un artículo no tiene definido el nivel elegido se reporta como aviso y el resto sigue. En empresas todavía sin migrar se mantiene el comportamiento anterior. - Nueva operación "Redondeo de precio por nivel" (pestaña Precios por nivel): fija el paso al cual se redondea el Precio + IVA de un nivel para los artículos seleccionados y re-redondea el precio. Desplegable con grupos ↑ Hacia arriba y ↓ Hacia abajo (0.1, Entero, ×5, ×10, ×25, ×50, ×100, ×500, ×1000), más "2 decimales (sin redondeo)".
- Redondeo hacia abajo en todo el sistema: el paso de redondeo (
RedondeoPrecio) ahora puede ser negativo para redondear el Neto hacia abajo al múltiplo (positivo = hacia arriba, como siempre;0.01= sin redondeo). Disponible también en el modal Editar Precio (MAP-001), Agregar Precio (MAP-002) y el selector de redondeo por fila de la tabla de precios del artículo, todos con opciones agrupadas ↑/↓. Ej.: Precio+IVA 84.08 con ↓ ×5 queda en 80.00; con ↓ Entero queda en 84.00.
- Categoría / Subcategoría: ahora son 2 inputs de texto libre con autocompletado desde la base de datos. Al elegir una categoría existente, las subcategorías se filtran automáticamente. También permite escribir una categoría/subcategoría nueva.
- 5 operaciones nuevas para ArticuloPrecios por nivel (tab Precios por nivel): Desc. Fijo, Desc. Máximo, Util. Mínima, Margen Sobre (COSTO/VENTA) y Modo de venta (Auto/Manual). Cada una con selector de nivel P1..Pn dinámico desde
SELECT DISTINCT NumeroPrecio FROM ArticuloPrecios. - Selectores P1..Pn dinámicos en TODAS las operaciones de precio del modal (también en las legacy: Aumentar % Venta, Establecer Precio, Actualizar Margen). Solo aparecen los niveles que la empresa realmente tiene definidos.
- Cards Banking Bold con borde gris y header gris claro. Las cards del tab "Precios por nivel" tienen header con gradiente violeta para distinguirlas como ArticuloPrecios.
- Eliminadas del UI las operaciones legacy duplicadas (Articulos.DescuentoFijo / Descuento_Admitido / DbArticuloOrigenCosto / PrecioVentaManual). Las cases en la API quedan vivas por compatibilidad.
- Bitácora resumen por lote para cada operación AP:
"ArticuloPrecios MargenSobre P3=COSTO en 437 artículo(s)". Procesa en lotes de 500.
- Etiquetas a la izquierda, inputs a la derecha — toda la ficha pasa de label-arriba a label-en-fila.
min-width:90pxpara alineación vertical entre filas. - Capitalización solo de la primera letra en las etiquetas del card (CSS
text-transform:lowercase+::first-letter:uppercase). Antes todo era MAYÚSCULA. - Nombre y Det. Interno cada uno en su propia fila (full width), con grow para ocupar el ancho disponible. Etiqueta DETALLE INTERNO renombrada a Det. interno.
- Inputs auto-ajustables al contenido: Código
size=15, Cód. Barrasize=15, CABYSsize=13, Partida Arancel.size=12. Selects de Actividad, Naturaleza y Tarifa IVA con atributodata-auto→width:auto(se miden por el option más largo). - Stock y Descuentos (Mín. Stock, Máx. Stock, Desc. Máx %, Descuento, Comisión %) reducidos a
7chcon texto alineado a la derecha — más en línea con su rango típico de valores. - Flex-wrap activo en
.datos-fila: si los campos no caben, bajan a la siguiente fila sin quebrar la maquetación. Categoría, Nombre y Detalle interno usancampo-grow(flex: 1 1 260px). - Check MAYUSC reposicionado al final del input Nombre (antes estaba al lado de la etiqueta).
- Mostrar Ventas: nuevo checkbox que al activarse despliega rangos de fecha (default: mes actual) y agrega la columna Vendido a la tabla con la cantidad de unidades vendidas en ese período. NC se restan automáticamente; solo cuenta documentos procesados (Estado 1/2/4).
- Fecha de Creación: dos inputs Creado Desde / Creado Hasta independientes para filtrar artículos por su
FechaCreado. Útil para auditar altas en períodos específicos. Funcionan también al exportar a Excel. - Toggle dinámico: al marcar/desmarcar el check de Ventas, los inputs de fecha aparecen/desaparecen sin recargar.
- Subquery con
WITH (NOLOCK)sobrevista_venta_hija+vista_venta_madre; placeholders SQL ordenados correctamente para no romper otros filtros existentes.
- El PASO 3 de la cascada (búsqueda multi-palabra) ahora incluye DetalleInterno además de código + barra + nombre. Esto permite encontrar artículos por sus notas internas.
- Si la búsqueda devuelve una sola coincidencia (en cualquier paso de la cascada — código exacto, barra exacta o multi-palabra), el cursor se posiciona automáticamente en el campo Cantidad sin abrir el modal MBA-002. Antes solo el match exacto disparaba esto; ahora cualquier resultado único lo hace.
- Solo se abre el modal de búsqueda reutilizable cuando hay 0 o más de 1 coincidencia.
articulos_lista_movil.php y articulos_crear_movil.php en estilo Banking Bold optimizado para celular.
- Catálogo móvil: cards con miniatura, 3 filtros base (Nombre/Estado/Precio) + filtros agregables, auto-submit con debounce, FAB para crear.
- Editor móvil: formulario en 5 cards colapsables (Datos Básicos / Costos y Precios / Imagen / Stock por Bodega / Otros Datos), recálculo reactivo de precios, cámara directa, modal selector de estado, sin buscador.
- Botón Clonar móvil: duplica el artículo, limpia código/nombre/barra y muestra banner amarillo con opción cancelar.
- Auto-generación de código: dejar el campo vacío ejecuta la lógica del API (Categoría + SubCategoría + consecutivo), ahora también disponible en móvil.
- Detección automática: redirige por User-Agent (móvil) o por ancho < 768 px (JS). Flags
?desktop=1y?mobile=1consumibles para forzar una vista solo esa carga (se eliminan del URL automáticamente, así el reload re-evalúa). - Force desktop: body class
force-desktopanula los@mediade mobile cuando se fuerza desktop con ancho angosto. - Subcategoría dependiente: en móvil se construye el mapa desde la tabla canónica
SubTipo_Articulo(no la vista) y se trimean los códigos para evitar mismatches al editar.
1fr 70px 120px), corrigiendo el desfase que provocaba el input de ubicación.#0a2540 (azul oscuro navy) en lugar de rojo; los demás usan el azul primario #0047AB.?get_codes=1). Banner amarillo indica el total seleccionado con opción "Seleccionar solo esta página" para reducir el alcance. El botón Globales ahora lee del Set completo window.codigosSeleccionados — antes solo leía los checkboxes visibles de la página actual (máx 500).localStorage por computadora.dbcontrol.dbnegocio para encontrar el servidor correcto.SubTipo_Articulo ahora exige Porcentaje1..10 y Redondeo (valor inicial 30%). Evita subcategorías sin margen configurado.Exportar a Excel: permiso 926
Si el botón Excel aparece gris, no es una falla: exportar este reporte se habilita persona por persona con su propio permiso:
- Permiso 926 — Inventarios · Crear/Editar
IN-002
SE-001: elegir a la persona, escribir el número del permiso (o la palabra Excel) en el buscador de permisos y marcar la casilla. Toma efecto recargando la pantalla, sin cerrar sesión.
Al pasar el mouse sobre el botón gris, el sistema dice qué le falta. Que a un compañero sí le funcione no significa que esté habilitado para todos: el permiso es por persona (por ejemplo, el usuario del contador suele ser uno aparte y necesita el suyo). Si el mensaje dice en cambio que la exportación está apagada para la empresa, esa no se abre desde el sistema: la solicita el dueño o la gerencia a Soporte Real. Ver el reporte en pantalla no pide este permiso; solo la descarga a Excel. Más detalles en El Excel de los reportes.