Introducción
FactuDesk es el módulo principal de facturación de FactuPOS, diseñado para uso en computadoras de escritorio. Permite crear cotizaciones, facturar de contado o crédito, imprimir en POS y enviar documentos electrónicos a Hacienda.
Flujo general de trabajo
Pantalla principal
La pantalla se divide en las siguientes áreas:
Panel Cliente (izquierda)
- Datos del cliente seleccionado
- Crédito disponible y deuda
- Descuento, precio y actividad
- Agente y referido
Panel Documento (derecha)
- Número de documento
- Fecha, tipo y moneda
- Modo código de barras
- Configuración de estación
Panel Líneas (centro)
- Barra de búsqueda de artículos
- Cantidad y botón Agregar
- Tabla de líneas del documento
Panel Totales (inferior)
- Gravado, exento, exonerado
- Descuento total, IVA
- Total general en moneda
Barra de herramientas superior
| Botón | Función |
|---|---|
| Abrir | Abrir una cotización guardada o de histórico |
| Guardar | Guardar el documento actual como cotización |
| Clientes | Abrir búsqueda rápida de clientes (F3) |
| Opciones | MAG, cambio de bodega, adelantos |
| Utils | Herramientas adicionales |
Pantallas pequeñas y monitores bajos
FactuDesk acomoda su tamaño según el alto de la pantalla. En monitores de poca altura —portátiles de 1366×768, netbooks o una tablet en horizontal— las fichas de arriba y de abajo se compactan solas para dejarle más espacio a la lista de artículos, que es lo que usted necesita ver mientras factura.
No hay nada que configurar: el sistema lo detecta al abrir la pantalla y al cambiar el tamaño de la ventana.
Al marcar líneas aparece la barra de acciones
Cuando marca la casilla de una o varias líneas, aparece una barra con Eliminar, Tipo de precio, Descuento % e IVA para aplicarlos a todas las marcadas de una vez. Esa barra ocupa espacio, y en pantallas bajas antes dejaba la lista casi sin renglones visibles.
Ahora la barra también se compacta, y en las pantallas más bajas se acomoda en una sola fila que se corre de lado si no cabe, en vez de robarle alto a la lista.
Atajos de teclado
Los atajos permiten trabajar sin usar el ratón, ideal para facturación rápida:
| Tecla | Acción | Cuándo usar |
|---|---|---|
| F1 | Ayuda rápida dentro de la pantalla | En cualquier momento |
| F2 | Buscar artículo (buscador MBA-001) | Para agregar artículos al documento |
| F3 | Buscar cliente | Para cambiar el cliente |
| F4 | Abrir una cotización guardada | Para retomar o facturar una cotización |
| F5 | Sincronizar las líneas con la base de datos | Si la conexión falló un momento y algo se ve raro |
| F6 | Consulta rápida de artículo | Ver precio y existencia sin agregarlo |
| F7 | Factura de CONTADO | Cerrar la venta cobrando de una vez |
| F8 | Factura de CRÉDITO | Dejarla por cobrar en la cuenta del cliente |
| F9 | Abrir el cajón de dinero | Para dar vuelto o cuadrar sin facturar |
| F10 | Guardar como cotización Permiso 104 | Dejar la venta a medias para seguirla después |
| F11 | Opciones de líneas | Con líneas marcadas en la factura |
| * | Factura de contado rápida | Estando en el campo de búsqueda |
| Enter | Buscar / agregar el artículo | En el campo de código o de cantidad |
| Supr | Eliminar la línea seleccionada | Sobre la lista de la factura |
| ↑ ↓ | Moverse entre las líneas | En la factura y en los buscadores |
| Esc | Cerrar la ventana abierta | En cualquier ventana |
Panel Cliente
Ubicado en la parte izquierda, muestra la información completa del cliente seleccionado.
El punto de color: en qué estado está el cliente
Junto al nombre del cliente hay un punto de color y, cuando corresponde, un rótulo de texto. Es lo primero que hay que mirar antes de facturar:
| Señal | Qué significa | Qué hacer |
|---|---|---|
| Verde | Cliente activo del catálogo | Facturar normal |
| Naranja + rótulo SUSPENDIDO | El cliente está suspendido, casi siempre por mora | No venderle a crédito sin autorización de quien corresponda |
| Rojo + rótulo INACTIVO | Cliente inactivo o eliminado del catálogo | Confirmar antes de facturarle |
| Gris | Cliente genérico (venta de mostrador) | Normal para tiquetes de contado |
Campos visibles
| Campo | Descripción |
|---|---|
| Código | Identificador del cliente en el sistema |
| Cédula | Número de identificación. Muestra badge MAG si aplica |
| Nombre Factura | Nombre que aparecerá en la factura. Editable para ajustes puntuales |
| Jurídico | Razón social (solo lectura) |
| Comercial | Nombre comercial (solo lectura) |
| Teléfono / Email | Datos de contacto del cliente |
| Dirección | Dirección registrada |
Fila de configuración
| Campo | Descripción |
|---|---|
| Precio | Nivel de precio asignado al cliente (1-10). Determina qué lista de precios se usa |
| Desc | Porcentaje de descuento automático del cliente |
| Exento | Si el cliente está exento de IVA |
| Actividad | Actividad económica con la que se le factura al cliente. Clic para cambiarla |
Con cuál actividad económica se le factura CAMBIO 2026-09-01
Un cliente puede tener varias actividades económicas registradas. La que aparece en el campo Actividad es la que va a salir en la factura electrónica.
Para cambiarla sin salir de la pantalla de facturación, haga clic sobre el código de actividad (tiene un lapicito al lado). Se abre la ventana Actividad económica con todas las actividades del cliente:
- La que está marcada en verde es la que se está usando.
- Doble clic sobre otra la deja marcada. También sirve moverse con las flechas ↑ ↓ y confirmar con Enter.
- La ficha del cliente se actualiza de una y ya la factura sale con la actividad nueva.
- Esc cierra la ventana sin cambiar nada.
En empresas que no emiten factura electrónica el campo no se puede tocar, porque la actividad económica no se usa para nada.
Botones de cliente
- Nuevo — Crear un cliente nuevo sin salir de facturación
- Editar — Modificar datos del cliente actual
- Historial — Ver las últimas compras del cliente con filtros y exportación
Panel Crédito
Muestra la situación crediticia del cliente seleccionado:
| Campo | Descripción |
|---|---|
| Límite | Monto máximo de crédito autorizado |
| Plazo | Días de crédito del cliente |
| Dispone | Crédito disponible (Límite - Debe). Clic para ver menú de opciones |
| Debe | Saldo total de cuentas por cobrar |
| Tiene | Saldo a favor / adelantos del cliente. Clic para ver movimientos o imprimir el saldo. Con el cliente genérico SN siempre muestra 0: esos saldos se ven en Utils → Retiro Adelantos SN (ver) |
Panel Vendedor
Controla quién se registra como agente de ventas en la factura:
- Usuario — Código del usuario que está facturando (no editable)
- Agente — Vendedor asignado. Clic en el nombre (morado) para cambiar
- Referido — Persona que refirió al cliente
Los usuarios 09029 y 59999 son cuentas internas del sistema y nunca pueden quedar como agente de ventas. El sistema lo protege en tres momentos:
- Al cambiar el agente: si intenta elegir uno de esos usuarios, no se asigna y aparece un aviso.
- Al abrir una cotización: si la cotización tenía a uno de ellos como agente, se reemplaza automáticamente por el usuario del documento y se guarda corregido.
- Al tramitar o enviar a cajas: si el agente es uno de esos usuarios, el sistema no deja facturar ni enviar a cajas y le pide cambiar el agente.
Antes, al cambiar el cliente de la cotización, el sistema reemplazaba el agente del documento por el agente configurado en la ficha del cliente (o lo dejaba sin vendedor si el cliente no tenía uno). Ahora el comportamiento se controla con el parámetro 922:
- Parámetro 922 = 0 (default) — Al cambiar el cliente, el agente del documento NO se toca. El agente por defecto es el usuario que creó la cotización, y solo cambia si usted lo cambia manualmente.
- Parámetro 922 = 1 — Al cambiar el cliente, el documento hereda el agente configurado en la ficha del cliente. Si el cliente no tiene agente asignado, se conserva el agente actual (nunca queda sin vendedor).
Aplica igual en FactuDesk, SmartPOS, FactuMóvil y FactuDesk.
Usuario Ventas Última actualización: 2026-04-20
En la barra de búsqueda de artículos aparece el campo Usr. Ventas junto con un botón Cambiar. Este campo indica quién se registrará como el usuario del documento de venta.
¿Cómo funciona?
- Al iniciar sesión (login), el sistema asigna automáticamente su código y nombre como Usuario Ventas.
- Si otra persona necesita facturar desde su sesión, presione el botón Cambiar.
- Se abrirá un modal donde debe ingresar la clave del vendedor.
- El sistema busca al empleado por su clave y actualiza el Usuario Ventas con su código y nombre.
- El cambio se mantiene hasta que se vuelva a cambiar o se inicie sesión de nuevo.
¿Cuándo se usa en la factura?
Controla quién queda como UsuarioCodigo en VentaMadre:
- Parámetro 390 = 0 — El usuario de la factura es el mismo que creó la cotización (comportamiento tradicional).
- Parámetro 390 = 1 — El usuario de la factura es el Usuario Ventas activo en ese momento, es decir, quien realmente está vendiendo.
Controla quién queda como AgenteCodigo en VentaMadre. Requiere que el parámetro 390 también esté en 1.
- Parámetro 392 = 0 (default) — Se preserva el agente original asignado en la proforma.
- Parámetro 392 = 1 — El agente de la factura también será el Usuario Ventas activo (mismo valor que el UsuarioCodigo).
Matriz combinada de parámetros 390 + 392
| 390 | 392 | UsuarioCodigo | AgenteCodigo |
|---|---|---|---|
| 0 | — | Quien creó la proforma | Agente original de la proforma |
| 1 | 0 | Usuario Ventas activo | Agente original de la proforma (preservado) |
| 1 | 1 | Usuario Ventas activo | Usuario Ventas activo (mismo código) |
Si su empresa usa comisiones por agente (reporte VE-023), NO active el parámetro 392. De lo contrario, todas las comisiones se pagarán al cajero/usuario de ventas que factura, no al vendedor original que creó la cotización. Deje 392 = 0 y use la función "Cambiar Agente" en la proforma para asignar el vendedor correcto.
Ejemplo práctico
María (00003) inicia sesión en la computadora. Juan (00005) necesita hacer una venta desde esa misma computadora. Juan presiona Cambiar, ingresa su clave, y ahora el campo muestra 00005 Juan.
- Con 390=1, 392=0: La factura queda con UsuarioCodigo=00005 (Juan) pero el AgenteCodigo se mantiene como el agente original de la proforma (por ejemplo, SARA).
- Con 390=1, 392=1: La factura queda con UsuarioCodigo=00005 Y AgenteCodigo=00005 (ambos Juan). Recomendado solo para empresas donde el cajero es el mismo vendedor.
Panel Documento
Ubicado en la esquina superior derecha, controla las propiedades del documento:
| Campo | Descripción |
|---|---|
| Número | Número único del documento de trabajo |
| Fecha | Fecha del documento. La pone el sistema sola, pero se puede cambiar: haga clic en la fecha (o en el lapicito que tiene al lado) y escoja el día en el calendario. Sirve sobre todo cuando se abre una proforma guardada días atrás y se quiere pasar al día de hoy antes de facturarla. La hora del documento no se toca, y el cambio queda anotado en el Historial del documento. |
| Tipo | 01 = Factura Electrónica, 04 = Tiquete Electrónico |
| Moneda | CRC (colones), USD (dólares), EUR (euros), etc. |
| (piñón) | Abre configuración de estación: oficina, caja, bodega, tipo de precio. Guardar requiere el permiso 840; sin él el modal se ve completo pero el botón sale en gris. Se otorga solo a quien ya podía facturar. |
Toggles y modos
- Código de barras — Activa modo escáner. Si el artículo ya existe en la lista, suma la cantidad en vez de crear nueva línea
- Solo stock — Solo busca artículos con existencias en bodega
Botones del panel
| Botón | Qué hace |
|---|---|
| Nueva | Limpia la pantalla para empezar otro documento |
| Imprimir | Vuelve a imprimir el documento actual |
| Historial | Muestra todo lo que ha pasado con ese documento (quién lo tocó y cuándo) |
| X | Cierra el documento |
Panel Líneas
El área central donde se agregan los artículos del documento.
Barra de búsqueda
Escriba el código o nombre del artículo y presione Enter. Si encuentra coincidencia exacta por código, agrega directamente. Si hay varias coincidencias, abre el modal de búsqueda.
Campo de cantidad
A la derecha de la barra de búsqueda. Escriba la cantidad deseada antes de agregar. Presione Enter en el campo de cantidad para agregar el artículo.
Botón Agregar (verde)
Equivale a presionar Enter sobre la cantidad. Agrega el artículo con la cantidad especificada.
Vista simple y vista detallada
En el encabezado de la grilla, al lado derecho de la columna NOMBRE, hay un botón que alterna entre dos formas de ver las líneas. El botón dice a cuál vista lo lleva, no en cuál está.
| Vista | Qué columnas muestra |
|---|---|
| Detallada (la de siempre) | Todas: precio unitario, subtotal, descuentos, IVA, margen, etc. |
| Simple | Solo Cant., %Desc, %IVA, P. Neto, Total, Bod, Stock y %Marg, en ese orden. El espacio que se libera se lo queda el nombre del artículo, que se lee completo. |
La elección queda guardada en esa computadora: la próxima vez que entre a facturar desde ahí, la grilla abre como la dejó. Cada estación tiene la suya, así que una caja puede trabajar en simple y otra en detallada.
Sirve sobre todo en monitores angostos, donde la vista detallada obliga a desplazarse en horizontal para llegar al total. Nada se pierde: las columnas ocultas vuelven con un clic.
Las columnas de la grilla, una por una
| Columna | Qué muestra |
|---|---|
| CÓDIGO | Código del artículo |
| PV | Nivel de precio con el que entró la línea (1 = precio de mostrador, 2 = mayorista…). Se puede cambiar por línea. |
| NOMBRE | Descripción del artículo. Debajo aparecen los avisos de la línea: Requiere lote, PAQ / 10 unid (se está vendiendo por paquete), Exo 13 % (quedó exonerada). |
| CANT | Cantidad. Si el artículo se vende por paquete, aquí se digitan paquetes y el sistema calcula las unidades. |
| P. NETO (solo en vista simple, entre %IVA y TOTAL) | Precio de una unidad ya con descuento e IVA: el precio final al público. Es el Total dividido entre la cantidad. |
| PRECIO/UD | Precio por unidad sin impuesto. Editable con permiso. |
| SUBTOTAL | Cantidad × precio unitario, antes de descuento e impuesto. |
| %DESC y DESC $ | Porcentaje de descuento y cuánto representa en plata. %DESC se ve en las dos vistas; DESC $ solo en la detallada. |
| P.TOTAL | El subtotal ya con el descuento aplicado — es la base sobre la que se calcula el impuesto. |
| %IVA e IVA | Tarifa que le corresponde y el monto del impuesto. Si la línea se exoneró, aquí aparece Exo y el impuesto baja o queda en cero. %IVA se ve en las dos vistas; el monto del IVA solo en la detallada. |
| TOTAL | Lo que paga el cliente por esa línea. |
| BOD | Bodega de la que sale el producto. |
| STOCK | Existencia disponible en esa bodega. Un — significa que no hay dato o que el artículo no maneja existencia. |
| %MARG | Margen de utilidad de la línea, siempre calculado sobre el costo: (precio − costo) ÷ costo × 100. Se ve en las dos vistas, pero solo con permiso de costos: sin él la columna muestra —. Si este número no le coincide con el que muestra el artículo en Inventario, vea ¿Por qué el %MARG no coincide con el margen del artículo? |
| S/M | Naturaleza: M = mercadería (baja inventario) · S = servicio (no baja inventario). |
¿Por qué el %MARG no coincide con el margen del artículo?
Es la pregunta más frecuente sobre esta columna, y casi siempre las dos cifras están bien: no miden lo mismo. Un mismo artículo tiene una sola ganancia en plata, pero esa ganancia se puede expresar en porcentaje de dos maneras distintas según contra qué se divida.
| Dónde | Qué porcentaje muestra | Fórmula |
|---|---|---|
| FactuDesk — columna %MARG (y también SmartPOS, FastPOS y la factura de escritorio) |
Siempre sobre el COSTO (lo que en contabilidad se llama markup): cuánto le gana encima de lo que le costó. | (precio − costo) ÷ costo × 100 |
Inventario — Edición de Artículo IN-002 y el Catálogo |
El que tenga configurado ese nivel de precio en Margen sobre: COSTO (marca C) o VENTA (marca V). Sobre VENTA es qué tajada del precio de venta es ganancia. | Sobre COSTO: (precio − costo) ÷ costo × 100Sobre VENTA: (precio − costo) ÷ precio × 100 |
- Sobre la venta (lo que muestra Inventario si el nivel está en V): 796.10 ÷ 1.327,44 = 59,97 % → «de cada ₡100 que cobro, ₡59,97 son ganancia».
- Sobre el costo (lo que muestra FactuDesk): 796.10 ÷ 531,34 = 149,83 % → «por cada ₡100 que me costó, le gano ₡149,83».
IN-002, en la lista de abajo,
el porcentaje de Utilidad lleva a la par una letra chiquita: C = sobre costo,
V = sobre venta. Para ver o cambiar esa configuración de un nivel, haga doble clic sobre la fila
del precio y busque Margen sobre. Si quiere que todos los niveles queden en la misma base,
se puede cambiar de una sola vez desde Cambios Globales (operación Margen Sobre por nivel).
El detalle que se abre bajo cada línea
Cada línea se puede desplegar para ver su ficha completa. Esto es lo que significa cada dato:
| Dato | Qué es |
|---|---|
| UM | Unidad de medida (Unid, Kg, Lt…). Es la que se reporta a Hacienda. |
| Desc | El descuento de la línea, en plata. |
| Gravado | Cuánto de esa línea paga impuesto. |
| Exento | Cuánto está exento por naturaleza del producto (no por exoneración del cliente). |
| Exoner | Cuánto quedó exonerado por la autorización del cliente. Si esta línea tiene monto, la de Gravado baja en la misma proporción. |
| Tarifa | Código de tarifa de Hacienda (por ejemplo 08 = 13 %). Es el que viaja en el comprobante electrónico. |
| %Exo | Porcentaje que perdona la exoneración. Solo aparece en las líneas exoneradas. |
| Ubic | Ubicación física del artículo en la bodega — le sirve a quien lo va a despachar. |
| Margen | La utilidad de la línea en plata (precio menos costo). |
| CodDesc | Código del tipo de descuento que exige Hacienda (por ejemplo 07). No es el porcentaje: es el motivo. |
| Frac | Si el artículo admite fracciones (decimales) o solo unidades enteras. |
| CABYS | El código del producto ante Hacienda. Es el que decide si la línea se puede exonerar — ver Exoneración por documento. |
| Act.Eco | Actividad económica con la que se está facturando esa línea. |
Panel Totales
Muestra el desglose completo del documento en la parte inferior:
- Total Venta — Suma de todas las líneas sin descuento ni IVA
- Descuento — Total de descuentos aplicados
- Gravado / Exento / Exonerado — Desglose según tipo impositivo
- IVA — Total del impuesto al valor agregado
- TOTAL — Monto final a cobrar
Buscar artículo — Modal MBA-001
Presione F2 o haga clic en el botón Buscar para abrir el modal de búsqueda avanzada.
Barra de búsqueda del modal
- Campo de texto — Busca por código, nombre o código de barras
- Categoría — Filtro por categoría de artículos
- Solo Stock — Muestra solo artículos con existencias
- Buscar — Ejecuta la búsqueda
- Agregar — Agrega todos los artículos que tengan cantidad ingresada
Lista de resultados (panel superior)
Muestra los artículos encontrados con: código, nombre, stock, precio, IVA y precio neto. Cada fila tiene un campo de cantidad para ingresar directamente.
El precio de cada fila es el del nivel que realmente aplica según las reglas (parámetro 57 / cliente / estación), no siempre el P1. Junto al precio aparece un badge con el nivel (ej. P2) para confirmar de un vistazo cuál se está mostrando — coincide con el precio que se factura.
En cada fila, junto al nombre, hay un botón de manita (): es Pedir — solicitar abastecimiento de ese artículo. Ver Pedir abastecimiento desde el buscador.
Panel de detalle (4 fichas inferiores)
Al seleccionar un artículo, se cargan 4 fichas con información detallada:
Imagen NUEVO
- Foto del artículo seleccionado (`/img/{db}/articulos/{codigo}.png`)
- Si no hay imagen subida → placeholder gris
Stock Externo MEJORADO
- Stock en TODAS las BDs configuradas en `EmpresasExternas` (incluyendo la BD actual marcada con badge azul "ACTUAL")
- Toolbar con checkbox "Solo con stock > 0" (persiste en localStorage)
- Estados visuales: stock>0 normal · stock=0 italic gris · "(No existe)" gris claro · "(Error)" rojo
- Footer con TOTAL stock sumando todas las empresas donde existe el artículo
- Click en fila con stock → muestra bodegas de esa empresa
Precios
- 10 niveles de precio (P1 a P10)
- Precio base e IVA incluido
- Clic para seleccionar, doble clic para agregar
Bodegas
- Stock por bodega
- Clic para seleccionar bodega
Información
- Datos adicionales del artículo
- Unidad de medida, CABYS
Navegación con teclado en el modal
| Tecla | Acción |
|---|---|
| ↑ ↓ | Navegar entre filas de resultados |
| Enter | Si hay cantidad: agregar. Si no: buscar o navegar a cantidad |
| 0-9 | Ir directamente al campo de cantidad de la fila |
| Esc | Cerrar el modal |
Flujo Enter → Bodega → Cantidad (Parámetro 383)
Cuando el Parámetro 383 está activo (= 1) y el Parámetro 102 permite seleccionar bodega (= 0), la tecla Enter sigue un flujo guiado de 3 pasos para confirmar artículo + bodega + cantidad antes de agregar la línea:
- Paso 1 — En la lista de artículos: seleccione la fila con ↑/↓ y presione Enter. El modal mueve automáticamente el foco a la ficha Bodegas y resalta la primera bodega con stock disponible.
- Paso 2 — En la ficha Bodegas: use ↑/↓ para elegir otra bodega si es necesario y presione Enter. El modal se cierra, el código del artículo se coloca en el campo de búsqueda principal de la factura y el foco salta al campo cantidad principal (no agrega aún). Aparece un toast: "Bodega: X. Ingrese cantidad y Enter."
- Paso 3 — En el campo cantidad principal: digite la cantidad y presione Enter. Recién acá se agrega la línea, usando la bodega que eligió en el paso 2.
| Param 102 | Param 383 | Comportamiento del Enter |
|---|---|---|
| 0 | 1 | Flujo de 3 pasos — Artículo → Bodega → Cantidad (recomendado para multibodega) |
| 0 | 0 | Enter agrega la línea directo con la bodega default |
| 1 | cualquiera | Enter agrega directo. El Param 383 se ignora porque 102 bloquea la selección de bodega |
Sugerencia de cambio de bodega (línea sin existencia) CAMBIO 2026-08-27
Cuando el Parámetro 102 permite seleccionar bodega (= 0) y usted agrega un artículo que no tiene existencia en la bodega usada, el sistema verifica automáticamente si hay stock en otra bodega. Si lo hay, abre el modal "Sin existencia en esta bodega" con la lista de bodegas que sí tienen el artículo y su existencia.
- Cada bodega muestra su existencia; las que cubren la cantidad solicitada se resaltan en verde.
- Al hacer clic en una bodega, la línea recién agregada se mueve a esa bodega (cambia solo esa línea) y la tabla se actualiza.
- Si prefiere dejarla como está, use "Conservar bodega actual".
- Los servicios (no manejan inventario) nunca disparan esta sugerencia.
Que la tome sola cuando el artículo está en una sola bodega (Parámetro 928)
En negocios donde cada artículo vive en la bodega de su proveedor (galerías, consignación, ferias), el aviso salía en todas las líneas y siempre con una sola opción para escoger. Con el Parámetro 928 = 1 el sistema deja de preguntar en ese caso:
- Si el artículo tiene existencia en una sola bodega y esa bodega alcanza para la cantidad, la línea se pasa sola a esa bodega y aparece el aviso "Se tomó de la bodega …" con el nombre.
- Si el artículo está en dos o más bodegas, el sistema siempre pregunta: sale el modal para que usted elija de cuál sale.
- Con el Parámetro 928 = 0 (valor de fábrica) todo sigue igual que antes: siempre sale el modal.
Agregar líneas
Existen varias formas de agregar artículos al documento:
1. Búsqueda directa (barra principal)
- Escriba el código o nombre en la barra de búsqueda
- Ajuste la cantidad en el campo a la derecha
- Presione Enter o el botón Agregar
2. Modal de búsqueda (F2)
- Presione F2 para abrir el modal
- Busque el artículo por código o nombre
- Opcionalmente seleccione un precio o bodega específica
- Ingrese la cantidad y presione Enter
3. Desde historial del cliente
- Clic en Historial en el panel de cliente
- Busque la compra anterior por fecha o artículo
- Doble clic en el artículo para agregarlo al documento actual con el precio sugerido
4. Escáner de códigos de barras
Active el modo "Código de barras" y escanee directamente. El artículo se agrega automáticamente.
Si el artículo tiene empaque, al agregarlo el sistema le pregunta si está facturando paquetes o unidades sueltas. Vea Artículos por paquete o caja.
Artículos por paquete o caja Última actualización: 2026-08-05
Hay artículos que se venden de las dos formas: sueltos y por caja. Una aspirina se vende por pastilla, pero también en cajas de 12.
Para que el sistema lo sepa, la ficha del artículo tiene el campo «Uds x Med» (Inventario → Artículos). Si ahí dice 12, significa: el paquete de este artículo trae 12 unidades.
El sistema no maneja dos existencias separadas (una de cajas y otra de sueltas): hay una sola, en unidades. Facturar una caja de 12 descarga 12 unidades del stock. El paquete es una forma de digitar y de ver la cantidad, no una existencia aparte.
Por lo mismo no existe un precio de caja: el precio es por unidad, y la caja cuesta 12 veces ese precio. Si necesita venderle la caja más barata que 12 sueltas, debe crear un artículo aparte para la caja, con su propio precio.
Al agregar el artículo: ¿paquete o unidad?
Cuando agrega un artículo que tiene empaque, el sistema le pregunta antes de meterlo a la factura:
- Facturar 2 PAQUETES — debajo le dice cuántas unidades se cobran (24).
- Facturar 2 UNIDADES — sueltas, como siempre. Es la opción que queda marcada, así que si usted solo presiona Enter factura unidades, igual que antes.
- No agregar nada — cierra sin tocar la factura (también con Esc).
La pregunta sale al agregar desde la barra de búsqueda, desde el modal de búsqueda (F2) —incluso eligiendo precio o bodega—, desde el historial del cliente y también con el escáner de código de barras.
Con artículos de empaque el escaneo se detiene en la pregunta: hay que contestarla antes de leer el siguiente código. Si dispara la pistola con la pregunta abierta, esa lectura se descarta y el sistema se lo avisa — así ningún artículo entra a la factura sin que usted haya decidido si era caja o unidad.
Los artículos que no tienen empaque (o tienen «Uds x Med» en 1) se agregan igual que siempre, sin ninguna pregunta.
Cómo se ve en la lista de líneas
En la columna CANT, cuando la cantidad alcanza al menos un paquete, la casilla se muestra en paquetes y debajo aparecen las unidades reales que se están facturando:
| Lo que se factura | Casilla CANT | Debajo |
|---|---|---|
| 1 unidad | 1 UNID | — |
| 11 unidades | 11 UNID | — |
| 12 unidades | 1 PAQ | 12 unid |
| 18 unidades | 1.5 PAQ | 18 unid |
| 24 unidades | 2 PAQ | 24 unid |
Mientras no llegue a un paquete completo la casilla sigue en unidades, y el rótulo de al lado (PAQ o UNID) siempre le dice en qué está el número que ve.
Si la casilla dice PAQ, lo que escriba son paquetes: escribir
3 factura 36 unidades. Puede escribir media caja con 1.5 (usando punto,
no coma). Si la casilla dice UNID, lo que escriba son unidades sueltas.
Ese mismo campo lo usan las compras: al aceptar una factura electrónica, si el artículo tiene empaque el sistema convierte la línea de cajas a unidades (multiplica la cantidad y divide el costo). Póngalo solo si el proveedor le factura por caja. Si el proveedor le factura por unidad y usted pone 12, la compra le entrará con 12 veces más existencias y el costo dividido entre 12.
Editar líneas
Una vez agregada una línea, puede modificar:
- Cantidad — Clic en la celda de cantidad para editar. Si el artículo se vende por caja, esa celda puede estar en paquetes: vea Artículos por paquete o caja
- Precio — Clic en la celda de precio (requiere permiso 024)
- Descuento — Clic en la celda de descuento (requiere permiso 004)
- Bodega — Clic en la celda de bodega para cambiar
- Eliminar — Botón rojo en la línea (requiere permiso 059)
Modal de utilidad negativa
Cualquier cambio de precio o descuento que genere pérdida (precio sin IVA, con el descuento, < costo) dispara un modal centralizado, con dos modos según el permiso del usuario:
| Permiso | Modal | Acción |
|---|---|---|
| Con permiso 021 (Facturar a costo) | Modal rojo de confirmación | El usuario debe escribir SI para autorizar el cambio. |
| Sin permiso 021 | Modal amarillo informativo "No autorizado" | Muestra el descuento máximo permitido para el artículo. No permite continuar; solo cerrar. |
Si el usuario no tiene permiso 064 (ver utilidad), el modal oculta el costo y los valores de utilidad calculada — sólo informa el descuento máximo permitido.
Artículos con precio 0
Si un artículo tiene precio 0 en el nivel asignado al cliente, la línea se agrega al documento respetando ese precio (entra en 0). El cajero puede editar el precio inline para establecer el valor de venta. El sistema sólo dispara el modal de "bajo costo" cuando el nuevo precio queda por debajo del costo — establecer un precio inicial mayor al costo es válido sin restricciones.
Niveles de precio
El sistema soporta hasta 10 niveles de precio (P1 a P10) por artículo. La selección del precio sigue estas reglas:
Reglas de asignación de precio
| Prioridad | Condición | Precio usado |
|---|---|---|
| 1 | Parámetro 57 activo (precio fijo estación) | Precio de la estación (siempre, sin excepción) |
| 2 | Cliente es SN (genérico) | Precio de la estación |
| 3 | Precio seleccionado manualmente en modal | El precio seleccionado (P1, P2, P3, etc.) |
| 4 | Cliente tiene TipoPrecioVenta asignado | El precio del nivel del cliente |
| 5 | Ninguna de las anteriores | Precio de la estación |
Cómo seleccionar un precio diferente
- Asegúrese de tener un cliente real (no SN) y que el parámetro 57 esté inactivo
- Abra el modal de búsqueda (F2) y busque el artículo
- En la ficha Precios (panel inferior), haga clic en el nivel deseado (P1, P2, P3...)
- La fila se resaltará en azul indicando la selección
- Agregue el artículo: doble clic en la fila de precio, Enter, o ingrese cantidad y presione Agregar
Cambio de nivel sobre una línea existente
Cuando se cambia el nivel de precio de una línea ya agregada (por ejemplo P1 → P2) usando la barra de precio masiva:
- Se actualiza el precio al del nuevo nivel.
- El descuento previo se resetea a 0 (siempre, sin excepción de permisos). Esto evita que un descuento aplicado al nivel anterior arrastre al nuevo bajo reglas distintas.
- Si el nuevo nivel tiene un Descuento Fijo configurado, se aplica automáticamente — siempre que cumpla con el Descuento Máximo y la Utilidad Mínima de ese nivel. Si no cumple, queda en 0% y la razón se registra en bitácora.
Descuentos
El sistema maneja múltiples tipos de descuento con prioridades definidas:
Tipos de descuento
| Tipo | Origen | Permiso |
|---|---|---|
| Descuento del cliente | Configurado en ficha del cliente | Ninguno (se aplica automáticamente) |
| Descuento recordado | Último descuento aplicado al mismo cliente+artículo | Parámetro 277 activo |
| Precio recordado | Último precio con que se le facturó ese artículo a ese cliente (ver detalle) | Parámetro 277 activo |
| Descuento fijo del artículo | Configurado en el artículo | Ninguno |
| Descuento manual | Editado por el usuario en la línea | Permiso 004 |
| Descuento sobre el máximo | Supera el descuento máximo configurado en el artículo | Permiso 023 |
Prioridad de descuentos
- Descuento recordado (param 277) — Tiene prioridad máxima si está activo
- Descuento del cliente — Se aplica automáticamente
- Descuento fijo del artículo — Se usa si el cliente no tiene descuento
Validación en 3 etapas (descuento → utilidad mínima → costo)
Cuando se aplica un descuento o se edita el precio de una línea, el sistema valida en orden, etapa por etapa. Cada etapa tiene su propio permiso: si el usuario no lo tiene, esa etapa lo detiene (se capa el descuento o se ajusta el precio).
| # | Qué revisa (precios sin IVA) | Permiso |
|---|---|---|
| 1 | El descuento supera el descuento máximo del artículo | 023 — Hacer descuento mayor al permitido del artículo |
| 2 | El precio (con el descuento) queda bajo la utilidad mínima (parámetro 16 o por nivel de precio), pero todavía ≥ al costo | 006 — Facturar bajo la utilidad mínima |
| 3 | El precio (con el descuento) queda por debajo del costo | 021 — Facturar bajo el costo |
- Etapa 1 — 12% > 10% (máximo del artículo): necesita el permiso 023. Sin él, el descuento se capa al 10%.
- Etapa 2 — ₡114.40 < ₡120 (utilidad mínima): necesita el permiso 006. Sin él, se le quita el descuento o se sube el precio al mínimo permitido.
- Etapa 3 — ₡114.40 ≥ ₡100 (costo): no aplica; la línea pasa sin pedir el permiso 021.
- Funciona en los tres puntos donde se aplica descuento: la barra de descuentos de líneas seleccionadas, el campo %Dc de cada fila y el modal de Opciones (MV-OPC).
- La autorización cubre solo la Etapa 1 (descuento sobre el máximo). Si el descuento además queda bajo la utilidad mínima (Etapa 2) o bajo costo (Etapa 3), siguen pidiéndose los permisos 006 / 021 respectivamente; un aviso lo indica.
Cálculo de precios y totales
Esta sección explica exactamente cómo el sistema calcula cada línea y los totales del documento, con las fórmulas que se ejecutan tanto en el backend (_funciones_calculo.php) como en el frontend (calcularTotales()).
agregar línea, cambiar precio, aplicar descuento, exonerar) ejecutan la misma función de cálculo para garantizar resultados consistentes. Cualquier cambio en una línea dispara el recálculo completo.
Paso 1 — De dónde sale el precio unitario
El precio de una línea se resuelve en el momento de agregar el artículo siguiendo esta prioridad (se detiene en la primera que aplique):
| # | Condición | Precio usado |
|---|---|---|
| 1 | Parámetro 57 = 1 (precio fijo de estación) | Estaciones.PrecioVenta — siempre, sin excepción |
| 2 | Cliente SN (genérico, sin código) | Precio de la estación |
| 3 | Usuario seleccionó un nivel en el modal de búsqueda | vista_articulo.Precio{N} (N = 1-10) |
| 4 | Cliente tiene TipoPrecioVenta asignado | vista_articulo.Precio{TipoCliente} |
| 5 | Ninguna anterior | Precio de la estación |
0, el sistema usa Precio1 como fallback. Al cambiar de nivel desde el modal de utilidades con un precio 0, el cambio se omite silenciosamente y se registra en bitácora (ver cotizacion_cambia_tipo_precio.php).
Paso 2 — Cadena de cálculo de la línea
Con el precio resuelto, la línea pasa por 10 cálculos en cadena. El nombre entre paréntesis es el campo físico en ProformaHija:
| # | Cálculo | Fórmula |
|---|---|---|
| 1 | SubTotal bruto (ArticuloVentaSubTotal1) | Cantidad × Precio |
| 2 | Monto de descuento (ArticuloDescuentoMonto) | SubTotal1 × (Descuento% ÷ 100) |
| 3 | SubTotal con descuento (ArticuloVentaSubTotal2) | SubTotal1 − DescuentoMonto |
| 4 | SubTotal con otros cargos (ArticuloVentaSubTotal3) | SubTotal2 + OtrosCargos |
| 5 | Monto exonerado (ArticuloVentaExonerado) | SubTotal3 × (ExoneradoPct ÷ IvaPct) si IvaPct > 0 |
| 6 | Monto gravado (ArticuloVentaGravado) | SubTotal3 − Exonerado si IvaPct > 0 |
| 7 | Monto exento (ArticuloVentaExento) | SubTotal3 − Gravado − Exonerado (cuando IvaPct = 0 → todo es Exento) |
| 8 | IVA calculado (ArticuloIvaMonto) | SubTotal3 × ((IvaPct − ExoneradoPct) ÷ 100) |
| 9 | IVA devuelto (ArticuloIvaDevuelto) | IvaMonto si MedioPago = '02' (tarjeta) y IvaPct = 4; si no, 0 |
| 10 | Total de línea (ArticuloVentaTotal) | Gravado + Exonerado + Exento + IvaMonto − IvaDevuelto |
SubTotal3 (después de descuento + otros cargos).
Paso 3 — Redondeo (Parámetros 190 y 195)
Parámetro 195 — Decimales del IVA
Controla con cuántos decimales se redondea el campo ArticuloIvaMonto. Rango permitido: 0 a 6. Default: 2. El resto de campos (SubTotales, Gravado, Exonerado, Total) siempre se redondean a 2 decimales.
Parámetro 190 — Redondear total factura
Controla si el IVA se calcula sobre el subtotal redondeado o sobre el subtotal sin redondear. Es clave cuando el precio unitario sin IVA tiene 4 decimales y el total con IVA debe cuadrar con un precio "redondo" al cliente (ej: ₡1,700.00).
| Valor | Base del IVA | Ejemplo PU 1,504.4248 × 1 × 13% |
|---|---|---|
| 0 (default) | ROUND(SubTotal3, 2) | Subtotal 1,504.42 · IVA 195.57 · Total 1,699.99 |
| 1 | SubTotal3 sin redondear | Subtotal 1,504.42 · IVA 195.58 · Total 1,700.00 ✓ |
Ver detalles y cuándo activarlo en Parámetros → 190.
Paso 4 — Casos especiales
IVA devuelto (tarjeta con tarifa 4%)
Cuando el documento tiene MedioPagoCodigo = '02' (tarjeta) y una línea tiene IVA del 4%, ese IVA se marca como "devuelto" y se resta del total de la línea. Esto aplica principalmente a canasta básica cuando se paga con tarjeta.
Exoneración parcial o total
Si el cliente tiene exoneración sobre el artículo, el campo ArticuloIvaExonerado guarda el porcentaje exonerado (no el monto). La fórmula distribuye:
- Gravado = parte del SubTotal3 que sigue afecta al IVA
- Exonerado = parte del SubTotal3 liberada del IVA
- IVA neto =
SubTotal3 × ((IvaPct − ExoPct) ÷ 100)
Si la exoneración es total (ExoPct = IvaPct), el IVA queda en 0 y todo el SubTotal3 se reporta como Exonerado.
Artículo Exento (IvaPct = 0)
Si el artículo no grava IVA, todo el SubTotal3 se clasifica como Exento (ni gravado ni exonerado). El IVA y el IVA devuelto quedan en 0.
Otros cargos
Campo ArticuloOtrosCargos — se suma al SubTotal2 antes de calcular el IVA, por lo que sí paga IVA (si la línea es gravada).
Paso 5 — Totales del documento
Cuando una línea cambia, el sistema recalcula ProformaMadre sumando todas las líneas y agrupando por naturaleza CABYS (hacienda.dbo.VistaNaturalezaArticulo):
| Campo en ProformaMadre | Fuente |
|---|---|
TotalCosto | Σ ArticuloCosto × ArticuloCantidad |
TotalVenta | Σ ArticuloVentaSubTotal1 (sin descuento, sin IVA) |
TotalDescuento | Σ ArticuloDescuentoMonto |
TotalMercGravado / Exonerado / Exento | Σ líneas con Naturaleza CABYS = 1 (mercancía) |
TotalServGravado / Exonerado / Exento | Σ líneas con Naturaleza CABYS = 2 (servicio) |
TotalIva | Σ ArticuloIvaMonto |
TotalIvaDevuelto | Σ ArticuloIvaDevuelto |
Total | Σ ArticuloVentaTotal + TotalImpuestoServicio |
TotalImpuestoServicio es un cargo adicional (típico en restaurantes: 10% de servicio) que se suma al total final pero NO se incluye en cada línea individual. Se calcula a nivel documento.
Paso 6 — Cálculo en tiempo real (frontend)
Mientras el usuario edita líneas, el panel "Totales" se actualiza instantáneamente en JavaScript sin esperar al backend. Luego de 300ms sin cambios, se envía al servidor la actualización definitiva (debounce).
Los totales visibles en pantalla suman cada línea así:
- Gravado / Exonerado / Exento mercancía — Σ campos de línea (todos van a mercancía en frontend; el servidor los reclasifica por CABYS)
- IVA — Σ
l.ivaTotal(ojo: el campo JS se llamaivaTotal, noimpuesto) - IVA devuelto — Σ
l.ivaDevuelto - Total — Σ
l.total
Paso 7 — Margen de utilidad
El porcentaje de margen se calcula solo para productos (excluye servicios, naturaleza = 2). Se muestra en el panel de totales si el usuario tiene permiso 064.
| Cálculo | Fórmula |
|---|---|
| Venta neta de línea | Gravado + Exonerado + Exento (después de descuento, sin IVA) |
| Costo total productos | Σ Costo × Cantidad (solo naturaleza ≠ 2) |
| Venta total productos | Σ venta neta (solo naturaleza ≠ 2) |
| Margen % | ((VentaTotal − CostoTotal) ÷ CostoTotal) × 100 |
Paso 8 — Moneda extranjera
En facturas con moneda distinta a la nacional (ver parámetro 249), el cálculo de la línea se hace en la moneda del documento. La conversión a moneda nacional ocurre al momento de contabilizar:
- Pagos — siempre en la moneda del documento. Si el cliente paga con otra moneda, se convierte usando el tipo de cambio y se guarda en la moneda del documento.
- Asiento contable — cada línea de
DocumentoDetallePagose multiplica por suTipoCambiopara llevarla a la moneda nacional. - Ajuste de redondeo — si DEBE/HABER difieren por menos de
1.00(por redondeos), se agrega automáticamente una línea de ajuste en la cuenta del parámetro 83 (Caja Efectivo).
Paso 9 — Validación de límites (constraints BD)
Antes del UPDATE, la función calcularTotalesLinea() proyecta los valores y valida que no excedan los check constraints de la base:
| Campo | Límite |
|---|---|
ArticuloVentaSubTotal1 | 500,000,000 |
ArticuloVentaGravado | 100,000,000 |
ArticuloVentaTotal | 100,000,000 |
Si alguna proyección excede, el sistema auto-corrige la línea: cantidad pasa a 1 y si el precio excede 500,000 se pone a 0, evitando así un error SQL que bloquearía el documento.
Resumen visual del flujo
Ejemplo completo
Artículo con Precio = 1,000, Cantidad = 2, Descuento = 10%, IVA = 13%, sin exoneración, sin otros cargos, MedioPago = efectivo:
| Paso | Cálculo | Valor |
|---|---|---|
| SubTotal1 | 2 × 1,000 | 2,000.00 |
| DescuentoMonto | 2,000 × 0.10 | 200.00 |
| SubTotal2 | 2,000 − 200 | 1,800.00 |
| SubTotal3 | 1,800 + 0 | 1,800.00 |
| Exonerado | 1,800 × (0 ÷ 13) | 0.00 |
| Gravado | 1,800 − 0 | 1,800.00 |
| Exento | 1,800 − 1,800 − 0 | 0.00 |
| IvaMonto | 1,800 × ((13 − 0) ÷ 100) | 234.00 |
| IvaDevuelto | (efectivo, no aplica) | 0.00 |
| Total línea | 1,800 + 0 + 0 + 234 − 0 | 2,034.00 |
- Backend —
/functions/shared/cotizacion.php— funcionescotline_calcular_totales_linea()ycotline_actualizar_totales_proforma() - Frontend —
/modules/facturacion/factudesk/js/factudesk.js— los totales se repintan al recargar el documento - Selección de precio —
/apis/shared/cotizacion/cotizacion_tipoprecio_cambiar.php - Agregar línea —
/apis/shared/cotizacion/cotizacion_linea_agregar.php
¿Sale Factura o Tiquete? Última actualización: 2026-09-03
El tipo de documento no se escoge: lo decide el sistema según la ficha del cliente, en el momento de procesar. Da igual desde cuál pantalla se facture (FactuDesk, SmartPos, FastPOS, Facturación Móvil): la regla es la misma para todas.
| Cómo está el cliente | Qué documento sale |
|---|---|
| Cédula válida y tipo de identificación 01 Física, 02 Jurídica, 03 DIMEX o 04 NITE | Factura Electrónica (01) |
| Tipo de identificación 05 Extranjero no domiciliado | Factura de Exportación (09) |
| Cliente genérico SN, sin cédula, cédula incompleta, o tipo de identificación 00 «Sin identificación» o 06 «No contribuyente» | Tiquete Electrónico (04) |
Cómo hacer que salga Factura
- Vaya a Clientes → Catálogo de Clientes (CL-001) y abra el cliente.
- En Tipo de identificación ponga el que corresponde: 01 Física (9 dígitos), 02 Jurídica (10 dígitos — también las instituciones públicas, que empiezan con 4), 03 DIMEX (11 o 12 dígitos) o 04 NITE (10 dígitos).
- Verifique que la cédula esté completa y sin guiones, y guarde.
- Vuelva a facturar. Ahora sale Factura Electrónica (01).
- Sí — deja facturar y el documento sale como Tiquete (es lo que causa la sorpresa).
- No — no deja emitir y avisa «El cliente tiene tipo de cédula 00 (no válido para facturación electrónica)», para que se corrija la ficha antes de facturar.
Factura de contado
Genera una factura con pago inmediato. Acceso: el botón PROCESAR → Fact. Contado o F7 directo.
Para que un documento salga como Crédito se tienen que dar las dos condiciones a la vez:
- que la factura se haya procesado con Fact. Crédito (F8), y
- que el cliente tenga un plazo mayor que cero en su ficha.
Si falta cualquiera de las dos, el documento es de Contado:
| Se procesó con… | Plazo en la ficha del cliente | Sale impreso |
|---|---|---|
| F7 Fact. Contado | cualquiera (aunque tenga 30 días) | Contado |
| F8 Fact. Crédito | 0 días | Contado |
| F8 Fact. Crédito | 30 días | Crédito — Plazo: 30 días · Vence: … |
Es la misma regla con la que el sistema arma el comprobante electrónico que se le manda a Hacienda, y por eso el papel, el tiquete POS, el correo y lo que Hacienda tiene registrado dicen siempre lo mismo. Un cliente sin plazo es, para el sistema, un cliente de contado.
Una factura de contado que ya se envió a Hacienda no se puede pasar a crédito: hay que anularla con una Nota de Crédito y volver a facturarla con F8, después de ponerle el plazo al cliente en su ficha.
Flujo de factura contado
- Se valida el documento (precio > 0, artículos válidos, agente si es obligatorio)
- Se abre el modal de pago con el total a cobrar
- Seleccione el medio de pago: efectivo, tarjeta, transferencia, etc.
- Para efectivo: ingrese el monto recibido. El sistema calcula el vuelto
- Para tarjeta/transferencia: ingrese la referencia
- Confirme el pago. La factura se genera y se envía a Hacienda
- Se imprime automáticamente (según configuración)
Denominaciones de efectivo
El modal de pago muestra botones con las denominaciones de la moneda activa. Haga clic para sumar al monto recibido. Por ejemplo, para CRC: 1.000, 2.000, 5.000, 10.000, 20.000.
Pago con varios medios (mixto)
Una misma factura puede cobrarse con varios medios de pago a la vez: por ejemplo ₡20.000 en efectivo y el resto con tarjeta. Se van agregando líneas de pago hasta completar el total; el modal muestra siempre cuánto falta y, si se paga de más en efectivo, cuánto es el vuelto.
Número de comprobante en pagos que no son efectivo
El sistema puede pedir el número de comprobante (el de SINPE, la transferencia, el depósito o el voucher de la tarjeta) cada vez que se agrega un pago que no sea efectivo. Sirve para que después, a la hora de conciliar contra el banco, cada pago de la factura tenga su número al lado.
Con el parámetro encendido, al agregar el pago se abre una ventanita «Comprobante de …» donde se escribe el número (hasta 20 caracteres) y se presiona Agregar pago. El número queda guardado con ese pago y se muestra en la lista de pagos del mismo modal, para poder revisarlo antes de confirmar.
| Medio de pago | ¿Pide comprobante? |
|---|---|
| Efectivo | No — nunca lo pide (tampoco para el vuelto) |
| SINPE Móvil | Sí |
| Tarjeta | Sí, salvo que la caja cobre con datáfono: ahí el número de autorización lo pone el datáfono solo |
| Transferencia, depósito y cualquier otro medio | Sí |
Con el parámetro apagado, no pregunta nada y el pago se agrega directo, como siempre.
Cobro con datáfono
Si la caja tiene datáfono conectado (bridge instalado y configurado), al escoger tarjeta el monto se manda solo al datáfono y la pantalla queda esperando la respuesta. Cuando el cliente pasa la tarjeta y el banco aprueba, la factura se cierra guardando el número de autorización.
- Si el datáfono rechaza, la venta no se cierra: se puede reintentar o cambiar de medio de pago.
- Si el datáfono aprueba pero la factura no salió (se cayó la red justo ahí), no vuelva a pasar la tarjeta: revise primero en Consulta de Facturas y en el cierre de datáfono, porque el cobro puede estar hecho.
- Las anulaciones (VOID) y los cierres de lote se manejan desde la configuración del datáfono, no desde la factura. Ver el manual del Datáfono.
Si el cobro no avanza al confirmar Última actualización: 2026-09-11
Antes de emitir la factura, el sistema revisa que el asiento contable cuadre y que haya existencia. Mientras lo hace, el botón verde dice «Validando asiento…» y después «Validando stock…»; normalmente tarda uno o dos segundos.
Si algo impide esa revisión, el sistema ya no se queda esperando: suelta el botón y muestra un aviso con lo que pasó. El aviso puede salir al presionar Fact. Contado (antes de que se abra el cobro) o al confirmar. En todos estos casos la factura NO se emitió, así que se puede volver a intentar sin riesgo de que salga repetida.
| El aviso dice… | Qué hacer |
|---|---|
| No se cargó el validador de facturas | La pantalla quedó a medio cargar en ese equipo. Recárguela con Ctrl+F5 (así baja todo de nuevo) y vuelva a cobrar. Si después de recargar sigue saliendo, llame a soporte: es algo de ese equipo, como el navegador o un programa que bloquea páginas. |
| No se pudo validar (el servidor no respondió) | Revise la conexión a internet y vuelva a confirmar. |
| El asiento no cuadra | Hay una diferencia entre lo cobrado y el total, o falta una cuenta contable. El aviso trae el detalle. |
| Stock insuficiente | Alguna línea no tiene existencia suficiente. El aviso dice cuál. |
Factura de crédito MV-005
Genera una factura con pago a plazo. Acceso: el botón PROCESAR → Fact. Crédito o F8 directo.
Requisitos
- Cliente con código diferente a SN (debe estar registrado)
- El cliente debe tener un plazo mayor que cero en su ficha. Con plazo 0 el documento sale y se declara a Hacienda como Contado, aunque se haya procesado con F8 — ver el cuadro de la sección Factura de contado
- El cliente debe tener crédito disponible suficiente
- Se calcula automáticamente la fecha de vencimiento según los días de crédito del cliente
Flujo
- Se valida el documento y el crédito disponible
- Se confirma la fecha de vencimiento
- La factura se genera con condición "Crédito" (si el cliente tiene plazo; con plazo 0 queda como "Contado")
- Se crea automáticamente la cuenta por cobrar (CxC)
- Se envía a Hacienda y se imprime
- Si se ingresó un adelanto, se aplica automáticamente un recibo CxC sobre la factura recién creada (ver sección abajo)
Adelanto al convertir (2026-05-11)
Cuando el cliente entrega un pago parcial al momento de generar la factura a crédito, se puede registrar el adelanto dentro del mismo modal. Tras crear la factura, el sistema aplica automáticamente un recibo CxC contra ese documento.
| Campo | Descripción |
|---|---|
| Monto adelanto | Importe del pago inmediato. Se capea al total de la factura. Dejar en 0 si no hay adelanto. |
| Medio de pago | Cuenta contable activa (caja, banco, etc) que recibe el adelanto. Lista cargada desde vista_catalogo_contable filtrando cuentas que inician con 1 (activos). |
| Comprobante | N° de transferencia, voucher, depósito, etc. Obligatorio si el monto es mayor a 0. |
| Detalle | Descripción del pago. Obligatorio si el monto es mayor a 0. |
Impresión automática del recibo (2026-05-15)
Cuando el adelanto se aplica con éxito, el recibo CxC se imprime automáticamente en la misma impresora que la factura, justo después de la factura, para que ambos comprobantes salgan uno seguido del otro y se puedan entregar juntos al cliente.
- La impresión usa la misma impresora configurada en la estación para facturas crédito.
- Si la opción de imprimir está desmarcada en el modal, tampoco se imprime el recibo.
- Si la impresión del recibo falla, queda registrado en el log del modal pero la factura y el recibo ya están guardados en BD — se puede re-imprimir el recibo desde el módulo CxC.
Validaciones previas
Si el monto del adelanto es mayor a 0 y falta cualquiera de los tres campos obligatorios (medio de pago, comprobante o detalle), el sistema muestra un aviso y enfoca el campo faltante antes de iniciar la transacción — no se crea la factura hasta que estén completos.
Archivar cotización
Guarda la cotización en el histórico sin generar factura. Útil para cotizaciones que se concretan sin pasar por Hacienda.
Flujo
- Pulse el botón PROCESAR y elija Archivar Cot.
- Se valida que los artículos tengan stock (si aplica la restricción)
- Se agrega automáticamente un pago en efectivo
- El documento se copia a CotizaMadre/CotizaHija
- Se elimina de ProformaMadre (documento de trabajo)
- Opcionalmente se imprime en POS
Enviar a Cajas
Transfiere la cotización al módulo de Cajas para que sea facturada desde ahí. Útil cuando un vendedor prepara la cotización y otro usuario la cobra.
- Requiere permiso 123
- El documento queda disponible en el módulo de Cajas
- Se limpia el documento de trabajo actual
Enviar Pedido
Manda la proforma a la bandeja de pedidos para que en oficina la revisen y la facturen. Es el camino del vendedor que toma el pedido pero no emite la factura. Se llega por el botón PROCESAR → Enviar Pedido.
- Requiere el permiso 536. Sin él el botón se ve, pero en gris.
- Si el documento todavía es un borrador, el sistema lo guarda primero y le pone su número real.
- El documento se mueve a pedidos con un consecutivo propio de pedido y queda congelado tal como lo digitó el vendedor.
- En oficina se abre desde FactuDesk (botón ABRIR) y se copia a una proforma nueva para facturarla.
- Al terminar, la pantalla queda limpia y lista para el siguiente cliente.
Imprimir
Múltiples formatos disponibles desde el botón PROCESAR → Imprimir:
Formatos de impresión
| Formato | Descripción |
|---|---|
| POS Completo | Tiquete para impresora térmica con precios, descuentos e IVA por línea |
| POS Simple | Tiquete simplificado: solo cantidad, código y nombre (sin precios por línea) |
| Documento en formato PDF para descargar o enviar | |
| Pantalla Completa | Vista del documento en pantalla, estilo factura, con opción de imprimir desde el navegador |
«Cotización Completa» sale en el formato que tenga configurado su estación CORRECCIÓN 2026-09-07
El botón Cotización Completa (sección Impresora POS del modal MC-010) no imprime siempre igual: usa el formato que su estación tiene definido para cotización. Es el mismo campo que se ve en Configuración → Estaciones → Cot. Formato, o en el modal Configurar Estación de su propia pantalla.
| Formato de la estación | Cómo sale la cotización |
|---|---|
| FIPVIVI002 (el más usado) | Tiquete de impresora térmica, en el ancho de papel de la estación (32, 40 o 48) |
| FIPVIVI003 / FIPVIVI004 | Hoja carta en texto, para matricial o láser (ancho fijo del formato, no el del papel térmico) |
| FIPVIVI005 | Hoja carta con diseño (logo, tablas, cuadro de firma y el SON: en letras). La arma el programa de impresión de su computadora y sale por la impresora de cotización de la estación. |
El número de impresora también sale de la estación (Cot. Número); si se pide más de una copia, cada hoja se manda como un trabajo aparte y la primera va marcada ORIGINAL y las siguientes COPIA (esa marca la controla el parámetro 394).
@·a·!··E·. Ya está corregido y la cotización vuelve a salir con el diseño de hoja carta de siempre. No hubo que cambiar nada en la configuración de las estaciones.
Sirve para mandarle al cliente el detalle de lo que lleva —cantidad, código y descripción— sin mostrarle los precios artículo por artículo.
El Detalle / Serie de la línea también sale en el tiquete de la cotización CAMBIO 2026-09-04
Cuando usted da doble clic sobre una línea y le escribe algo en Detalle / Serie (por ejemplo «2 bonificaciones», un número de serie o un lote), ese texto ya venía saliendo en el tiquete de la factura, en el PDF de la cotización y en el correo que se le manda al cliente. Lo que faltaba era justamente el tiquete POS de la cotización: ahí el detalle se perdía y el cliente recibía la cotización sin esa aclaración. Ya sale, en POS Completo y en POS Simple.
Cómo se acomoda en el papel lo deciden los mismos dos parámetros que ya mandaban en la factura, así que la cotización y la factura salen iguales:
| Parámetros | Cómo se imprime |
|---|---|
| 343 = 0 y 391 = 0 | Todo en la misma fila: COCA 6 - 2 bonificaciones |
| 343 = 0 y 391 = 1 | El nombre arriba y el detalle en su propio renglón debajo. Si usted escribió varios renglones (con Enter), cada uno sale en su renglón. |
| 343 = 1 | Se imprime solo el detalle, en lugar del nombre del artículo. |
Las notas del documento ya salen al pie del tiquete de la cotización CAMBIO 2026-09-04
Lo que usted escribe en el panel DETALLE FACTURA —las condiciones que negocia con el cliente en el momento: «cancela por SINPE», «entregar en la soda al frente del EBAIS», a quién se le entrega— ya venía saliendo en la vista en pantalla, en el PDF y en el correo de la cotización. El que las perdía era el tiquete POS, y por eso había que escribirlas a mano sobre el papel. Ya salen, en POS Completo y en POS Simple.
Se imprimen al pie, justo debajo del total y arriba del agente y la caja. Solo aparece lo que tenga algo escrito:
| Sale como | De dónde viene |
|---|---|
DETALLE: | La cajita grande de notas del panel DETALLE FACTURA. Si usted escribió varios renglones con Enter, cada uno sale en su renglón; los renglones largos se parten por palabra, nunca a media palabra. |
OC: | La orden de compra del cliente. |
PEDIDO POR: | El campo PEDIDO (número de pedido o quién lo pidió). |
ENTREGA: | El modo de entrega (Local, Xpress, Llevar). |
Y de último, centrada, sale la condición fija de sus cotizaciones —el parámetro 7, por ejemplo «Válida por 3 días»—, la misma leyenda que ya salía en el PDF y en la vista en pantalla.
Cómo se lee el desglose del documento impreso CAMBIO 2026-08-26
Tanto el tiquete térmico como los formatos de hoja carta (matricial, láser e inyección) imprimen el resumen en el mismo orden que el panel Totales de la pantalla, para que el cliente pueda seguir la cuenta de arriba hacia abajo:
| Renglón | Qué es |
|---|---|
| V. BRUTA | Lo que valen los artículos antes del descuento y sin IVA. Solo aparece si la factura lleva descuento. |
| DESCUENTO | La rebaja que se aplicó. Solo aparece si hay descuento. |
| SUB TOTAL | V. BRUTA menos el DESCUENTO. Es la venta ya rebajada, todavía sin IVA. |
| MERC GRAVADA / SERV GRAVADO / MERC EXONERADA / MERC EXENTA / SERV EXENTO | Cómo se reparte ese SUB TOTAL según pague o no IVA. Van agrupados por condición: primero lo gravado, después lo exonerado y de último lo exento, igual que el panel SUBTOTALES de la pantalla. Sumados dan el SUB TOTAL. Cada renglón sale solo si tiene monto. |
| IVA | El impuesto que se le suma al SUB TOTAL. |
| IVA DEVUELTO | El IVA que se le devuelve al cliente (compras con tarjeta de ayuda social). Solo aparece si aplica. |
| TOTAL | SUB TOTAL + IVA. Es lo que el cliente paga. |
V. BRUTA − DESCUENTO = SUB TOTAL y SUB TOTAL + IVA = TOTAL.
V.Bruta: 146,113.86, Desc: 34,022.71, SubTotal: 112,091.15, Merc.Grav: 87,586.15, Merc.Exen: 24,505.00, IVA: 10,076.88. Si no cabe en el ancho del papel, sigue en el renglón de abajo sin partir ningún monto por la mitad.
Las marcas de cada línea: (B…) bodega, (G…) IVA y (D…%) descuento CAMBIO 2026-08-27
En el tiquete térmico, debajo del nombre de cada artículo va un renglón con la cantidad y unas marcas entre paréntesis. Así se leen:
| Marca | Qué dice |
|---|---|
| (B1) | La bodega de donde salió el artículo. |
| (G13) | El porcentaje de IVA con que se cobró esa línea. |
| (D2.5%) | El porcentaje de descuento que se le aplicó a esa línea. Solo sale si la línea lleva descuento. |
(D3%) y el cliente reclamaba que le estaban cobrando distinto de lo pactado. El monto rebajado siempre estuvo bien; lo que mentía era el rótulo. Ahora se imprime el porcentaje tal cual es —(D2.5%), (D7.25%)— y si el descuento es un número redondo se sigue viendo corto: (D10%).
Vale igual para la vista en pantalla, el PDF, la proforma que se comparte y las pantallas del celular.
Modal "Imprimir cotización" — Texto vs Con Imágenes NUEVO
El botón Imprimir en la ficha Documento del panel principal abre un modal (código MV-PRT) con dos opciones para visualizar la cotización en pantalla:
| Opción | Descripción | Archivo |
|---|---|---|
| TEXTO | Vista clásica sin imágenes — más compacta, ideal para impresión rápida o envío por email | ver_cotizacion_desktop.php |
| CON IMÁGENES | Incluye una columna "Foto" al inicio de cada artículo. Útil cuando el cliente necesita identificar visualmente los productos cotizados | ver_cotizacion_desktop_imagenes.php |
/img/{empresa}/articulos/{codigo}.png. Subirlas desde Inventarios → Editar artículo. Si un artículo no tiene imagen subida, aparece un placeholder gris en su lugar.
Cálculo de totales en reportes FIX 2026-04-28
Los reportes ahora calculan VENTA BRUTA y SUB TOTAL desde las líneas individuales (no desde campos cabecera) para mayor precisión:
| Total | Fórmula |
|---|---|
| VENTA BRUTA | Σ (ArticuloVenta × ArticuloCantidad) — precio unitario × cantidad, ANTES de descuento |
| DESCUENTO | Σ ArticuloDescuentoMonto |
| SUB TOTAL | Σ (Gravado + Exonerado + Exento) — DESPUÉS de descuento, sin IVA |
| TOTAL IVA | Suma de IVA por línea |
| TOTAL | SUB TOTAL + TOTAL IVA − IVA DEVUELTO |
Aplicado en: ver_cotizacion_desktop.php, ver_cotizacion_desktop_imagenes.php, ver_factura_desktop.php, correos de cotización (HTML + PDF) y correos de factura (HTML + PDF).
Enviar correo
Envía la cotización por correo electrónico al cliente. Desde el botón PROCESAR → Enviar Correo.
- Se adjunta el PDF de la cotización
- Se envía al email registrado del cliente
- Opcionalmente copia al emisor (parámetro 74)
- Opcionalmente copia al agente de ventas (parámetro 318)
Envío automático de la factura al cliente
Cuando convertís una cotización en factura, el envío del PDF al cliente depende de si la empresa usa factura electrónica o no:
- Empresas con factura electrónica: el correo con la factura (PDF + XML firmado + XML de respuesta) se envía automáticamente después, cuando Hacienda acepta o rechaza el documento. No hay que hacer nada manual.
- Empresas sin factura electrónica (régimen tradicional/simplificado, sin envío a Hacienda): el PDF de la factura se envía al cliente de una vez, en el momento de facturar. Antes esto solo pasaba con envío manual; ahora es automático.
En ambos casos el correo va al EmailFactura del cliente; si está marcado, se agrega copia al agente de ventas (parámetro 318) y al email de respaldo (parámetro 149). A los clientes genéricos (SN) no se les envía. Si el cliente no tiene email registrado, no se envía nada.
Compartir y exportar
Opciones disponibles en el botón PROCESAR:
| Opción | Descripción |
|---|---|
| Compartir | Usa Web Share API del navegador o descarga PDF |
| WhatsApp Cliente | Abre WhatsApp Web con el detalle de la cotización |
| WhatsApp Agente | Envía al agente de ventas por WhatsApp |
| Exportar Excel | Descarga archivo Excel con el detalle |
| Exportar XML | Descarga archivo XML con la estructura del documento |
Hacer una proforma y entregársela al cliente
Paso a paso
- Entre a Facturas (FactuDesk, FD-001).
- Escoja el cliente.
- Agregue las líneas (los artículos con su cantidad y precio), igual que para una factura.
- Presione PROCESAR (MP-001).
- En el cuadro Imprimir y Correo elija cómo se la entrega:
- Imprimir — abre los formatos (MC-010): Cotización Completa o Simple para la impresora, y Pantalla Completa o Simple para verla en pantalla e imprimirla desde el navegador.
- Correo — se la manda al correo del cliente.
En el cuadro Compartir y Exportar del mismo PROCESAR también están WhatsApp Cliente, Compartir, Excel y XML.
Después de entregarla
- Para retomarla — botón Abrir, pestaña Cotizaciones (ver Abrir cotización).
- Para convertirla en factura — se abre y se procesa como Factura Contado o Factura Crédito. No hay que digitarla de nuevo.
- Si le pidieron cambios — ábrala, corrija las líneas y vuelva a imprimir o enviar. Es el mismo documento.
Guardar cotización
El documento se guarda automáticamente conforme agrega líneas. Sin embargo, puede usar el botón Guardar de la barra de herramientas para:
- Asegurar que todos los cambios estén persistidos
- Generar un número de cotización definitivo
- Permitir que otros usuarios puedan abrir el documento
Abrir cotización
Presione el botón Abrir de la barra de herramientas para recuperar una cotización guardada.
Las tres pestañas
Arriba del listado hay tres pestañas, con la cantidad de documentos de cada una:
- Cotizaciones — las que están vivas, para retomar o facturar.
- Pedidos — los que enviaron los vendedores, separados en pendientes, procesados y anulados.
- Histórico — las ya facturadas. Son de consulta: al elegir una, el sistema le ofrece clonarla, no la reabre.
Filtros disponibles
- Desde / Hasta — rango de fechas.
- Código — número de documento o código de cliente.
- Cliente — nombre, nombre comercial, teléfono o dirección.
- Monto >, Agente, Usuario y Orden.
Buscar por cualquiera de los números del recorrido NUEVO
Cuando un documento viene de un pedido de vendedor, el número que el cliente tiene en la mano casi nunca es el que hay que facturar: se le entregó una proforma, esa pasó a pedido, y de ahí salió otra proforma.
La casilla Código busca en todo ese recorrido. Escriba el número que tenga —la proforma que recibió el cliente, el número de pedido o el de la proforma nueva— y el documento aparece igual. No hace falta saber cuál de los tres es.
Columna «Viene de» NUEVO
Al lado de cada documento se lee de dónde salió: por ejemplo «Pedido 35 · Prof. 1015». Así quien factura sabe qué tiene en la mano sin abrir nada.
La columna aparece sola cuando hay algo que mostrar: si ningún documento de la lista viene de un pedido, no ocupa lugar. El color distingue las dos formas de llegar: la proforma creada al abrir el pedido completo, y la creada con los pendientes que habían quedado faltando.
Columnas ACTUALIZADO
El listado muestra dos columnas para identificar al cliente:
- N. Comercial (italic gris) — nombre comercial registrado en el catálogo de clientes (
Clientes.ClienteNombreComercial) - Nombre Cot. (bold) — nombre manual escrito en la cotización (
ProformaMadre.ClienteNombre) — es el dato editable e identificativo
Para clientes genéricos (SN, 0) que no tienen registro en el catálogo, la columna N. Comercial muestra el mismo nombre manual de la cotización para evitar quedar vacía.
Ordenamiento
Haga clic en las columnas (Número, Fecha, N. Comercial, Nombre Cot., Total, Usuario) para ordenar. La fecha ordena por defecto de más reciente a más antigua.
Exportar e imprimir listado
Al lado del botón Buscar aparecen dos botones adicionales:
- Excel — Descarga un archivo
.xlsxcon los resultados filtrados. Columnas: Número, Fecha, Cliente ID, Cliente Nombre, Total, Moneda, Usuario, Agente, Estado, Líneas. - Imprimir — Abre una vista imprimible con los filtros aplicados, totales y tabla de cotizaciones.
De las cotizaciones a una orden de compra NUEVO
Cuando varias cotizaciones o pedidos llevan artículos que hay que conseguir, no hace falta abrirlos uno por uno ni sumar a mano. Desde esta misma ventana se juntan y se convierten en una orden de compra para el proveedor.
- En la pestaña Cotizaciones o Pedidos, marque con la casilla de la izquierda los documentos que quiere juntar. Se puede marcar también una cotización que está en Cajas.
- Presione el botón morado Compra, que muestra entre paréntesis cuántos documentos marcó. Se abre la ventana Pedir a proveedor (
MV-022). - Ahí aparece un renglón por artículo, con lo que suman todos los documentos marcados:
- Cotizado — la cantidad total de ese artículo en los documentos.
- Stock — lo que hay hoy en las bodegas de las que se cotizó.
- Faltante — lo cotizado menos el stock. Si el stock alcanza, sale un 0 con un visto verde.
- Pedir — lo que se le va a pedir al proveedor. Viene con el faltante y usted lo puede cambiar. Con Enter pasa a la línea siguiente. En 0 no se pide.
- Costo y Subtotal — con el costo del catálogo, sin IVA. Abajo se va sumando el total.
- Últ. proveedor — a quién se le compró la última vez (o el proveedor de la ficha). Haga clic en el nombre para usarlo en la orden.
- Documentos — en cuáles cotizaciones o pedidos está.
- Arriba, en Proveedor, escriba el código o el nombre y elíjalo de la lista. El sistema lo propone solo con el proveedor al que más artículos le compró la última vez.
- Presione Generar orden de compra. La orden se crea en borrador y el sistema le ofrece abrirla en otra pestaña, en Compras → Órdenes de Compra, para revisarla, ajustar costos y enviarla al proveedor.
La lista también sale en Imprimir y Excel, con las cantidades tal como las dejó en «Pedir». Sirve como reporte para pasárselo a quien compra.
- Los servicios no aparecen: un servicio no se le compra a un proveedor.
- Un artículo que está en la lista de exclusiones de compra aparece marcado en amarillo y con «Pedir» en 0. Si de verdad lo necesita, escriba la cantidad: antes de crear la orden el sistema le vuelve a avisar.
- Si marca un pedido y también la cotización que salió de ese pedido, no se cuenta dos veces: el sistema suma solo la cotización y se lo dice.
- Se trabaja con los documentos marcados en una pestaña a la vez. El Histórico no se usa, porque eso ya se facturó.
- Cada orden es para un solo proveedor. Si los artículos van a proveedores distintos, ponga en 0 lo que no es de ese proveedor, genere la orden y repita con el siguiente.
Eliminar una cotización (y qué queda de ella)
En la ventana de Abrir, al marcar la casilla de una o varias cotizaciones aparece el botón Eliminar. Requiere el permiso 060 y solo funciona con cotizaciones en estado Borrador o Guardada: una que ya se facturó no se puede eliminar.
Lo que sí queda: el registro en la Bitácora
Cada eliminación deja un renglón en Seguridad → Bitácora (permiso 911) que dice
«Eliminó cotización #…», con el número de la cotización, quién la eliminó y
la fecha y hora exactas. Busque ahí escribiendo Eliminó cotización, o el número si lo tiene.
Ese registro sirve para saber qué pasó con un número que ya no aparece en el listado, pero no guarda el contenido: no trae el cliente, ni los artículos, ni el total de la cotización borrada.
Cómo evitar tener que recuperarla
- Si la duda es si se va a usar, no la elimine. Una cotización guardada no estorba: se filtra por fecha, cliente o monto y no afecta inventario ni contabilidad.
- Imprima o exporte antes de eliminar. Desde la misma ventana de Abrir están los botones Excel e Imprimir del listado.
- Controle quién puede eliminar. El permiso 060 se asigna por usuario en Seguridad → Permisos; quitándolo, ese usuario ve las cotizaciones pero no puede borrarlas.
Pedidos en línea y comprobante de pago NUEVO
Los pedidos que sus clientes hacen desde la tienda en línea (ecommerce) llegan al sistema como pedidos y se ven en el módulo Facturación → Pedidos en línea (requiere el permiso 115). Desde ahí, con doble clic en un pedido se abre en FactuDesk para revisarlo y convertirlo en factura.
Comprobante de pago (SINPE / transferencia)
Si el cliente pagó por SINPE Móvil o transferencia, al hacer el pedido puede adjuntar el número de comprobante y una imagen del pago. Ese comprobante se ve en dos momentos:
- En la lista de “Pedidos en línea” — una columna Comprobante muestra el número de SINPE y un enlace para abrir la imagen del pago.
- Al abrir el pedido en Facturación — aparece un banner verde en la parte superior con el texto “Comprobante de pago (SINPE/transferencia): N° …” y un botón Ver comprobante que abre la imagen en una pestaña nueva.
ProformaComprobantePago y la imagen en /img/{empresa}/comprobantes/. Si su empresa aún no tiene activada esta función, el sistema sigue funcionando igual: el pedido se ve normal, solo sin la columna de comprobante.
De dónde viene este documento NUEVO
Cuando el documento que abre salió de un pedido de vendedor, arriba de las líneas aparece una franja azul que dice el recorrido completo:
Proforma 1035 ← Pedido 35 ← Proforma 1015
Se lee de izquierda a derecha, del documento que tiene en pantalla hacia atrás: la proforma 1035 salió del pedido 35, que a su vez salió de la proforma 1015. La 1015 es la que el cliente recibió y por la que va a preguntar; la 1035 es la que usted tiene que facturar.
Los dos tipos de escala
- Pedido 35 (azul) — el pedido se abrió completo y de ahí salió esta proforma.
- Pedido 35 (pendientes) (ámbar) — esta proforma se armó con lo que había quedado faltando de ese pedido, desde Ventas › Pedido vs Facturado.
Pase el puntero por encima de cada escala para ver la explicación.
Historial del cliente
Desde el panel de cliente > botón Historial, puede consultar las últimas compras del cliente seleccionado.
- Muestra las últimas 1,000 líneas de compra
- Filtros por fecha, categoría y monto
- Agrupamiento por categoría (toggle)
- Doble clic para agregar un artículo al documento actual con el precio sugerido
- Exportación a Excel y PDF
Modo código de barras
El checkbox "Código de barras" en el panel de documento controla el comportamiento al agregar artículos repetidos:
| Modo | Artículo repetido |
|---|---|
| Activado | Suma la cantidad a la línea existente del mismo artículo |
| Desactivado | Crea una nueva línea independiente (permite mismo código varias veces) |
Compuestos manuales
Permite agregar artículos compuestos (kits o paquetes) que contienen múltiples componentes. Requiere permiso 119.
Cómo usar
- Agregue el artículo principal al documento
- Abra la pestaña "Compuestos" en el panel lateral
- Busque y agregue los artículos componentes
- Ajuste las cantidades de cada componente
Exoneraciones: los tres caminos
Exonerar es facturarle a un cliente con menos impuesto (o sin impuesto) porque la ley se lo permite. En FactuDesk hay tres caminos distintos, y conviene no confundirlos porque se configuran y se aplican diferente:
Por documento de exoneración
El cliente tiene una autorización (DGT, zona franca, misión diplomática, institución). Se le baja el impuesto a los productos que esa autorización cubre, y se decide por CABYS.
MAG (agropecuaria)
Productores inscritos ante el Ministerio de Agricultura: el impuesto del 13 % baja al 1 %. Depende de la condición del comprador, no del producto.
Pesca / INCOPESCA
Registro de pescadores. En FactuDesk se consulta la vigencia del cliente ante Hacienda.
| Por documento | MAG | |
|---|---|---|
| De qué depende | De una autorización con lista de productos | De que el cliente sea productor inscrito |
| ¿Mira el CABYS? | Sí, línea por línea | No |
| Qué le hace al impuesto | Lo rebaja según el porcentaje autorizado | Lo baja de 13 % a 1 % |
| Dónde se configura | Ficha del cliente → pestaña Exonerar | No se configura: se consulta a Hacienda |
Exoneración MAG (agropecuaria)
Los productores agropecuarios inscritos ante el MAG tienen derecho a comprar sus insumos con un impuesto del 1 % en lugar del 13 %. No es un descuento sobre el precio: es una tarifa de impuesto distinta, autorizada por ley.
Cómo funciona por dentro
Conviene entenderlo porque explica todo lo demás:
| Paso | Qué hace el sistema |
|---|---|
| 1. Pregunta a Hacienda | Con la cédula del cliente, FactuPOS consulta en línea el registro agropecuario de Hacienda. No es un dato que se digite ni que dependa de la memoria de nadie: lo responde Hacienda en el momento. |
| 2. Guarda la respuesta | El resultado (activo o no, con su fecha) queda guardado en la ficha del cliente. Por eso, la próxima vez el distintivo MAG aparece de una en el panel del cliente, sin volver a consultar. |
| 3. Cambia la tarifa de las líneas | Al aplicarlo, cada línea que tenga 13 % pasa a la tarifa del 1 %. El precio del artículo no cambia: lo que cambia es el impuesto que se le cobra encima. |
| 4. Va así a la factura electrónica | La línea se reporta a Hacienda con esa tarifa reducida. Es decir, queda documentado que esa venta se hizo al 1 % — de ahí que el registro del productor tenga que estar realmente vigente. |
Cómo aplicarla, paso a paso
- Cargue el cliente (tiene que ser un cliente del catálogo con cédula, no el genérico) y agregue las líneas.
- Abra Opciones → pestaña MAG. Arriba se ve el nombre y la cédula con la que se va a consultar.
- Pulse Consultar. El sistema le pregunta a Hacienda y muestra el estado del productor y la fecha.
- Si está vigente, se habilita el botón Exonerar con MAG.
- Al pulsarlo, las líneas al 13 % pasan a 1 %, una por una, mostrando el avance.
- Revise la grilla: las líneas cambiadas quedan con %IVA 1. Ya puede cobrar.
Qué toca y qué no toca
| Línea | Qué le pasa |
|---|---|
| Con 13 % | Pasa a 1 % |
| Exenta, al 1 %, al 2 % o al 4 % | Queda igual — ya tiene un trato especial |
| Agregada después de aplicar el MAG | Entra con su tarifa normal: hay que volver a aplicar el MAG |
Si el documento no tiene ninguna línea al 13 %, el sistema avisa y no cambia nada.
Pesca / INCOPESCA
En Opciones → pestaña Pesca se consulta ante Hacienda si el cliente está en el registro de pesca. La pantalla muestra el estado (Vigente o no), el nombre, la fuente, la fecha de alta y la de vencimiento, y la fecha de la última consulta.
En el panel del cliente aparece el distintivo PESCA cuando el cliente tiene registro: azul si está vigente, rojo si venció.
Exoneración por documento del cliente
Es el caso más común: el cliente tiene una autorización de exoneración (orden de compra autorizada de la DGT, zona franca, misión diplomática, institución del Estado…) y puede comprar ciertos productos con el impuesto rebajado o en cero.
Antes de facturar: configurarlo en el cliente
La autorización no se digita en la factura: vive en la ficha del cliente, pestaña Exonerar. Ahí se registra, por cada autorización:
| Dato | Qué es |
|---|---|
| Tipo de documento | Qué clase de exoneración es (compras autorizadas DGT, zona franca, diplomáticos, etc.) |
| Número de documento | El número de la autorización — es el que sale en la factura electrónica |
| Institución que la emitió | Quién autorizó |
| Fecha de emisión y de vencimiento | La vigencia de la autorización |
| Porcentaje de exoneración | Cuánto del impuesto se perdona |
| Artículo e inciso | La base legal, cuando aplica |
| Lista de CABYS | Qué productos cubre esa autorización (uno o muchos códigos CABYS) |
Cómo aplicarla, paso a paso
- Cargue el cliente y agregue todas las líneas.
- Abra Opciones → pestaña Exonerar.
- Se abre la lista de las líneas del documento, y cada una viene marcada:
- ✓ verde — el CABYS del artículo está cubierto. En la columna Cód. Exo se ve con cuál autorización va a quedar.
- ✗ rojo — ese producto no está en ninguna autorización del cliente: queda gravado (se factura con su impuesto normal).
- Confirme. El sistema procesa línea por línea, cada una con su autorización, y recalcula los totales.
La ventana «Aplicar Exoneración», columna por columna
Arriba muestra el número del documento y un contador del tipo «1 de 7 línea(s)»: cuántas se van a exonerar de cuántas hay. Entre paréntesis, en rojo, cuántas no están cubiertas por la exoneración del cliente.
| Columna | Qué muestra |
|---|---|
| # · Código · Artículo | La línea del documento |
| CABYS | El código del artículo. Es el que se compara contra la lista de la autorización |
| Exo? | ✓ verde = cubierta, se va a exonerar · ✗ rojo = no cubierta, se factura con impuesto |
| Cód. Exo | Con cuál autorización va a quedar esa línea (por ejemplo AL-00003053-25). Un guion significa que no le tocó ninguna |
| IVA% | La tarifa que tiene hoy la línea |
| Ya exonerado | Si la línea ya venía exonerada de antes |
| Estado | Cómo va el proceso al confirmar: pendiente, procesando, listo u omitido |
AL-…. Antes de mover el artículo, revise la pestaña Exonerar del cliente: es ahí donde se agrega el CABYS que falta.
La validación no es igual para todos los tipos
| Tipo de exoneración | Cómo la trata el sistema |
|---|---|
| Compras autorizadas por la DGT (tipo 01) | Valida estrictamente por CABYS: solo exonera los productos que estén en la lista de la autorización |
| Los demás tipos (zona franca, diplomáticos, instituciones…) | No se valida el CABYS: se aplica según lo configurado en la autorización |
Ver cómo quedó
El botón Ver Exoneración muestra, línea por línea, con cuál autorización quedó cada artículo y cuánto impuesto se rebajó. Conviene revisarlo antes de cobrar, sobre todo en facturas grandes.
Quitar la exoneración
Opciones → Quitar Exo. Muestra las líneas que quedaron exoneradas y, al confirmar, las devuelve a su impuesto normal.
Avisos frecuentes
| Lo que pasa | Qué significa |
|---|---|
| Todas las líneas salen en rojo | El cliente no tiene autorizaciones registradas, o ninguna cubre esos productos. Revise la pestaña Exonerar de su ficha. |
| Unas líneas sí y otras no | Es lo normal: la autorización cubre ciertos productos. Las demás se facturan con impuesto. |
| La autorización está vencida | Hay que actualizar el documento en la ficha del cliente; no se puede exonerar con una autorización vencida. |
| Se exoneró pero el total no cambió | Puede que el porcentaje de exoneración configurado sea 0 o que las líneas ya estuvieran exentas. |
Moneda extranjera
FactuPOS permite facturar en moneda distinta a la nacional (USD, EUR, etc.) con conversión automática a moneda local para el asiento contable.
Cambiar la moneda del documento
- En el Panel Documento, haga clic en el campo Moneda
- Seleccione la moneda deseada (USD, EUR, etc.)
- El sistema usa el tipo de cambio del día (configurado en Contabilidad > Tipos de cambio)
- Agregue los artículos normalmente — los precios se convierten a la moneda elegida
Pagos en moneda mixta
En el modal de pago de contado puede recibir efectivo en cualquier moneda configurada. El sistema siempre guarda el pago en la moneda del documento, convirtiendo el monto recibido si es necesario:
| Factura en | Usuario paga | Se registra |
|---|---|---|
| CRC (faltante 500) | 500 CRC | 500 CRC |
| CRC (faltante 500) | 50 USD (TC=498) | 500 CRC + vuelto 24.400 CRC |
| USD (faltante $10) | $10 USD | 10 USD |
| USD (faltante $10) | 6.000 CRC (TC=500) | 10 USD + vuelto $2 |
Asiento contable
El asiento contable se registra siempre en moneda nacional. El sistema convierte usando el tipo de cambio del documento. Si aparece una diferencia de centavos por redondeo, agrega automáticamente una línea de ajuste con la cuenta del parámetro 83 (Caja efectivo).
Saldo a favor del cliente
Los adelantos y saldos a favor del cliente se muestran en el Panel Crédito, línea Tiene:. Cuando es mayor a 0, el monto titila suavemente para llamar la atención del cajero.
Menú del saldo a favor
Haga clic sobre el monto de Tiene: para abrir el menú con estas opciones. Desde acá el saldo solo se consulta: para usarlo como pago, emita la factura a crédito (F8) y aplíquelo desde CxC → Cuenta Detalle → Aplicar pago.
| Opción | Qué hace |
|---|---|
| Ver movimientos | Abre el modal de movimientos de la cuenta de adelantos (últimos 5 años) |
| Imprimir saldo | Emite un comprobante del saldo actual por impresora POS |
Generar adelanto
Desde el botón Utils:
- Adelanto Cliente — Registra un adelanto a favor. Requiere cliente con código.
- Retirar Adelanto — Devuelve al cliente parte o todo su saldo a favor.
- Retiro Adelantos SN — Caso especial para clientes sin código, abre el modal Saldos Notas de Crédito MV-040.
Modal Saldos Notas de Crédito MV-040
Ruta: Utils → Retiro Adelantos SN. Lista las facturas que generaron NC con saldo a favor disponible para clientes sin código (cuenta 2104SN, tabla SaldosAFavor).
- Columnas: Factura (con el número de la nota de crédito debajo) · Cliente · Fecha · Movimientos · Caja · Saldo
- Buscador por número de factura, número de nota de crédito o nombre de cliente
- Tipo de devolución: Efectivo (param 83) o Tarjeta (param 84 — requiere número de comprobante de anulación del datáfono)
- Saldo Requerido: monto a retirar. Se calcula automáticamente el Saldo a Retirar (mín. entre requerido y disponible)
Botones de acción
| Botón | Acción |
|---|---|
| Exportar Excel | CSV con todas las filas visibles (Nota Crédito, Caja, Usuario, Saldo, Moneda) |
| Imprimir Saldo | Imprime comprobante POS del saldo de la factura seleccionada, con detalle de movimientos (fecha + monto con signo) y saldo final |
| Aceptar | Procesa el retiro. Genera asiento contable (UDE), registra en SaldosAFavor, imprime comprobante contable y a continuación imprime el comprobante del saldo restante (incluso si queda en 0) |
Cuenta contable del saldo a favor
La cuenta contable donde se registra el saldo a favor se construye concatenando la cuenta base (parámetro 89, por defecto 2104) con el código del cliente:
| Cliente | Cuenta generada | Nombre |
|---|---|---|
108 | 2104108 | Adelanto - {Nombre del cliente} |
312025 | 2104312025 | Adelanto - {Nombre del cliente} |
SN (genérico) | 2104SN | Saldo a Favor - Sin Cliente (SN) |
2104SN como un pasivo real. Esto permite hacer el Retiro Adelantos SN correctamente, cancelando el pasivo contra caja.
Envío Express y Boletillas BO-001
Desde el botón PROCESAR → Envío Express, puede abrir el módulo de boletillas para gestionar envíos a domicilio / guías de transporte del día.
- Pasa automáticamente el código y nombre del cliente actual (auto-abre el modal "Nueva Boletilla")
- Funciona con cualquier cliente, incluyendo SN
- Abre el módulo de boletillas en una nueva pestaña
Filtros del listado
Todos los filtros aplican auto-submit: al cambiar un valor la lista se recarga sola (los inputs de texto usan un debounce de 500ms, Enter también envía).
| Filtro | Descripción |
|---|---|
| Desde / Hasta | Rango de fechas. Formato visible DD/MM/YYYY vía Flatpickr (independiente del idioma del navegador). Por defecto: mes actual. |
| Estado | Pendiente (default) · Calle · Entregado · Todos. Nota: si no ve resultados al aplicar un filtro, revise que Estado no esté restringido a "Pendiente". |
| Usuario | Filtra por el cajero/usuario que creó la boletilla. Coincidencia exacta (aplica RTRIM para tolerar espacios). |
| Agente | Filtra por agente asignado. Incluye opción (sin agente) para ver boletillas sin asignar. |
| Cliente | Busca por código o nombre de cliente (LIKE). |
| Orden | Fecha descendente (default) / ascendente. Se recuerda en localStorage. |
Estados
| Estado | Significado |
|---|---|
| Pendiente (0) | Boletilla creada, aún sin salir a ruta. |
| Calle (1) | El agente tiene la boletilla en ruta (con fecha/hora de Salida). |
| Entregado (2) | Boletilla devuelta / entregada (con fecha/hora de Entrada). |
Acciones masivas
Al marcar boletillas con los checkboxes aparece una barra azul con acciones:
- Asignar Agente (MB-002) — asigna un agente a todas las seleccionadas y las pasa a estado Calle.
- Marcar Entrada — registra hora de entrada y pasa a Entregado. Solo aplica a boletillas en estado "Calle".
- Reset — limpia Agente a 59999, Estado a Pendiente y vacía Salida/Entrada. Útil para corregir errores.
Códigos del módulo
| Código | Elemento |
|---|---|
| BO-001 | Listado principal de boletillas |
| MB-001 | Modal Crear / Editar Boletilla |
| MB-002 | Modal Asignar Agente (masivo) |
| MB-003 | Modal Buscar Cliente |
Validación de monto alto
Cuando una línea supera los 5 millones de colones (cantidad x precio), el sistema muestra un modal de confirmación de seguridad.
Comportamiento
- Al agregar o editar una línea que supera el umbral, aparece un modal rojo
- Debe escribir la palabra "SI" (en mayúsculas) para confirmar
- Si cancela, la línea se elimina automáticamente
- Se envía una alerta por correo al email del parámetro 194
Configuración de estación
La estación define los valores predeterminados para facturar. Acceda con el botón (piñón) en el panel Documento.
| Campo | Descripción |
|---|---|
| Oficina | Sucursal o punto de venta |
| Caja | Número de caja/terminal |
| Bodega | Bodega predeterminada para las líneas |
| Tipo de precio | Nivel de precio predeterminado (1-10) |
Modal Buscar Artículo MBA-001
Modal principal de búsqueda y selección de artículos durante la facturación. Se abre con F2 o el botón de búsqueda. Permite filtrar por categoría, por stock y muestra precios y existencias en tiempo real.
Barra de búsqueda
- Texto — busca por código, código de barras, nombre, descripción o serie.
- Todas las categorías — combo para limitar a una categoría específica.
- Solo stock — checkbox que filtra a artículos con existencia positiva.
- Buscar / Agregar — ejecuta búsqueda o agrega el primer resultado al documento.
Cuando el buscador no muestra artículos
La pantalla del buscador dice por qué está vacía. Son cuatro mensajes distintos y no significan lo mismo:
| Lo que dice la pantalla | Qué pasó | Qué hacer |
|---|---|---|
| Escribí el nombre o el código del artículo | El campo de búsqueda está vacío. | Escribir al menos una letra o un número. |
| Sin resultados | Se consultó el catálogo y no hay ningún artículo que coincida con lo escrito. | Probar con menos letras (el buscador encuentra por pedacitos de código, nombre, descripción interna y código de barras). Si aun así no sale, revisar en Inventario → Artículos que el artículo exista y esté activo: los artículos inactivos y eliminados no se pueden facturar y por eso no aparecen acá (los descontinuados sí aparecen, para terminar de vender lo que queda). |
| Sin resultados con existencias | Hay artículos que coinciden, pero están en existencia cero y el check Solo con stock los esconde. Es lo que pasa con los artículos recién creados, que todavía no tienen entrada de inventario. No quiere decir que el artículo no exista. | Tocar el botón Buscar sin ese filtro que sale debajo del mensaje: apaga el check y repite la búsqueda. El check se recuerda en esa computadora, así que si quedó prendido de otro día, sigue prendido. |
| No se pudo consultar el catálogo | La consulta falló o tardó demasiado (conexión, servidor ocupado). No quiere decir que el artículo no exista. | Intentar de nuevo. Si sigue igual, avisar a soporte y mandar la foto de la pantalla: debajo del mensaje sale el motivo en letra chiquita, que es justo lo que soporte necesita. |
Lista de resultados (con imagen lateral)
A la izquierda de la lista aparece la ficha de imagen del artículo seleccionado (130px de ancho, ocupa todo el alto del panel superior). Si el artículo tiene varias imágenes en su carrusel, se muestran apiladas verticalmente con scroll. Click sobre cualquier imagen la abre en grande (lightbox) sobre toda la pantalla; cierra con Esc, click fuera o el botón ✕.
Tabla con las columnas: Código, Nombre, Stock, Precio (sin IVA), IVA %, Neto (con IVA) y Cant (cantidad a agregar). Al pasar el mouse, se muestra además la categoría y subcategoría del artículo.
- Enter sobre una fila → agrega el artículo al documento.
- Clic sobre una fila → marca la fila como seleccionada y carga los paneles laterales de detalle.
Pedir abastecimiento desde el buscador MFD-SOL
En cada fila de resultados, pegado al nombre del artículo, aparece el botón de la manita (). Es el atajo para pedir que se abastezca ese artículo sin salir de la factura. Sirve para dos cosas:
- El encargo puntual de un cliente: pide algo que no se tiene y se le va a conseguir.
- La reposición de lo que se está agotando: el vendedor, que es quien lo ve primero, avisa en el momento.
Se abre una ventanita que pregunta cuánto hay que pedir (el foco entra directo ahí: digitar el número y Enter alcanza) y, si se despliega Para quién es, deja ajustar el cliente, para cuándo se necesita y marcarlo como encargo urgente. El cliente viene tomado de la factura que está abierta. También se abre con Shift + F2.
Paneles de detalle (parte inferior)
| Panel | Contenido |
|---|---|
| Stock Externo | Existencias en otras empresas del grupo (según configuración). La BD del usuario actual aparece resaltada en azul fuerte (sin badge). Filas en gris itálico indican que el artículo no existe en esa empresa; rojo claro = error de conexión a la BD. |
| Precios | Los niveles de precio (P1..Pn dinámicos) con columna Base y Base+IVA. Cada fila muestra badges de qué nivel corresponde a Estación (E) y Cliente (C). El nivel default aplicado se resalta con fondo azul. |
| Bodegas | Existencia por bodega con ubicación física. Total al encabezado. |
Reglas de selección de precio (versión 2026-05-11)
El cajero puede elegir un nivel de precio diferente clickeando sobre la fila correspondiente en el panel Precios — esto se respeta al agregar la línea. Hay UNA regla que bloquea esa selección manual:
| Escenario | Default aplicado | Permite cambiar |
|---|---|---|
| Parámetro 57 = 1 (precio fijo de estación) | P{ESTACION.tipoPrecio} forzado | ❌ NO. Las filas salen grises con cursor 'no permitido' y aviso amarillo "P{n} fijo". |
| Param 57 = 0 + Cliente SN (genérico) | P{ESTACION.tipoPrecio} | ✅ SÍ. El cajero puede elegir cualquier otro nivel y se respeta. |
| Param 57 = 0 + Cliente real con TipoPrecioVenta | P{TipoPrecioVenta del cliente} | ✅ SÍ. |
| Param 57 = 0 + Cliente real sin TipoPrecio | P{ESTACION.tipoPrecio} | ✅ SÍ. |
Flujo Enter — selección de precio + bodega + cantidad (bidireccional)
El Enter funciona en cualquier orden. Pasos:
- Buscás el artículo y se selecciona (fila marcada azul).
- Tipeás la cantidad en el input de la fila (default 1).
- Click en un nivel de precio (ej: P3) y click en una bodega (ej: Bodega A) — en cualquier orden.
- Enter con el foco en cualquier lado del modal → agrega con cantidad + P3 + Bodega A automáticamente.
Lo mismo aplica con doble clic en cualquier fila de precio o bodega (atajo equivalente al Enter). Tras agregar, el modal se cierra y las selecciones globales se limpian.
Cantidad por monto (Precio→Cant en barra de búsqueda)
Junto al input "Cantidad" hay un campo "Precio→Cant" que solo se activa para artículos fraccionados (azúcar, harina, líquidos a granel...). Tipeás el monto que el cliente quiere gastar (con IVA) y al hacer Enter / Tab el sistema calcula la cantidad fraccionada y la pone en Cantidad.
Fórmula: cantidad = (monto ÷ (1 + IVA/100)) ÷ precio redondeada a 3 decimales. Misma función disponible también dentro del modal Editar Artículo (MV-ART) usando el precio virtual (con descuento aplicado).
Modal Editar Artículo MV-ART
Al hacer doble clic (o usar la opción Editar) sobre una línea del documento se abre este modal para ajustar cantidad, precio, descuento, IVA, compuestos, lotes y vencimientos.
Campos principales
| Campo | Descripción |
|---|---|
| Cantidad | Controlada con − / +. Respeta la configuración de decimales (parámetro 25). |
| Precio Real / Precio Real c/IVA | Precio unitario original del artículo, sin y con IVA. |
| Precio Deseado / Precio c/IVA Deseado | Precio virtual al que querés que quede el artículo. Al escribirlo, el sistema calcula solo el % de descuento necesario — NO cambia el precio base. Por eso requiere permiso 004 (descuentos), no el 024. |
| Desc. % / Desc. Monto | Descuento manual sobre la línea. Requiere permiso 004. |
| Precio deseado (sin / con IVA) | Campo de la ficha “Descuento desde precio virtual”: escribís el precio al que querés que quede el artículo y el sistema calcula solo el % de descuento necesario. Es un precio virtual — NO cambia el precio base. Solo requiere permiso 004 (descuentos), igual que escribir el descuento directamente. |
| Tarifa IVA | Combo con las tarifas de Hacienda que tenga cargadas la empresa: 02 Reducida 1 %, 03 Reducida 2 %, 04 Reducida 4 %, 08 General 13 % y 10 Tarifa exenta (0 %). CORREGIDO 2026-09-03 Ojo: el exento es el 10 — el código 01 no existe en el catálogo. |
| IVA % | Porcentaje calculado a partir de la tarifa (solo lectura). Manda la tarifa: el porcentaje siempre sale de la tarifa elegida, nunca al revés. |
| Detalle / Serie | Texto libre adicional que se imprime y viaja al XML. Ideal para número de serie, lote o nota. |
Totales del modal
En la parte inferior del modal se muestran Subtotal, IVA y Total calculados en tiempo real al cambiar cualquier campo.
Pestañas especiales
| Pestaña | Función |
|---|---|
| Compuestos Manual | Permite agregar sub-artículos (kit) que se descuentan de bodega al aplicar. Requiere permiso 119. Tabla: Id, Código, Nombre, Uds, Bodega, Costo/Ud, Total. |
| LOTES | Selección de lotes específicos cuando el artículo maneja control de lotes. Se distribuye la cantidad por lote. |
| VENCIMIENTOS | Selección de lote por fecha de vencimiento. Útil para FIFO / FEFO. |
Utilidades VE-UTL
Menú de funciones adicionales accesible durante la facturación. Cada utilidad abre un modal o ejecuta una acción sobre el documento actual o sobre la caja.
Inventario y artículos
| Utilidad | Qué hace |
|---|---|
| Stock de lotes | Consulta existencia por lote para el artículo seleccionado. |
| Kardex Lotes | Historial de movimientos por lote (entradas, salidas, saldo). |
| Facturar a Costo | Aplica el costo promedio como precio de venta. Requiere permiso 021. |
| Sincronizar líneas con BD | Refresca precios, stock y costos desde la base de datos sin perder el detalle capturado. |
Cliente y saldos
| Utilidad | Qué hace |
|---|---|
| Ingreso de adelanto de cliente | Registra un adelanto a favor del cliente (genera documento de abono). |
| Retiro de saldo a favor | Devuelve parte o todo el saldo a favor del cliente. |
| Retiro Adelantos SN | Retiro de adelantos del cliente genérico (Sin Nombre). |
Documentos
| Utilidad | Qué hace |
|---|---|
| Clonar Cotización | Duplica la cotización que tiene abierta en pantalla en una cotización nueva, con consecutivo nuevo. No pide número: trabaja siempre sobre el documento actual, así que primero abra la cotización que quiere copiar y después entre a esta opción. |
| Clonar Factura | Crea una cotización nueva a partir de una venta ya emitida. Al abrirlo le muestra de una vez sus últimas 5 ventas: haga clic en una y queda clonada. Si necesita otra, búsquela por número de documento o por nombre de cliente. Solo lista facturas (01), tiquetes (04) y FEC (09). |
| Reimprimir Venta | Abre el modal MV-018 para volver a imprimir una venta con la configuración actual de la estación. Al abrirlo muestra de una vez las últimas 5 ventas emitidas por su usuario, y además puede buscar por número o nombre de cliente. Requiere permiso 142; sin él pide clave de un supervisor. |
| Nota de Crédito | Genera una nota de crédito sobre una factura ya emitida. Al abrirlo le muestra sus últimas 5 ventas para que elija una con un clic, sin digitar los 20 dígitos. También puede escribir el número de la factura y confirmar cliente, fecha y total con la lupa antes de continuar. |
| Boletillas | Envío Express / guías de transporte. |
Caja y efectivo
| Utilidad | Qué hace |
|---|---|
| Contador Monedas | Herramienta para contar billetes y monedas (arqueo de caja). |
| Contabilizar Cierre | Envía el cierre de caja actual a Contabilidad. |
| Mov. Contable | Registra un movimiento contable manual asociado a la caja. Es la via para un gasto pagado con dinero de la caja: tipo de documento GAS, la cuenta del gasto del lado AUMENTA y la cuenta de caja/efectivo del lado RESTA. Paso a paso en Cobro en Caja · Movimiento Contable. |
| Ingreso Fondo Caja | Registra una inyección de efectivo a la caja. |
| Retiro Fondo Caja | Registra un retiro de efectivo de la caja. |
| Abrir Cajón | Envía el comando ESC/POS para abrir la gaveta de dinero. |
Import / Export de cotizaciones
| Utilidad | Formato |
|---|---|
| Exportar Cotización a Excel | .xlsx con líneas y totales. |
| Exportar Cotización a XML | XML estructurado (útil para traspaso a otros sistemas). |
| Exportar Cotización a CSV | Separado por coma. |
| Importar Cotización (CSV/XML) | Carga líneas desde archivo externo al documento actual. |
Configuración
| Utilidad | Qué hace |
|---|---|
| Romana / Balanza | Abre el modal MCF-ROM para configurar la lectura de códigos de balanzas (peso o precio embebido). Ver MCF-ROM. |
Configuración Romana / Balanza MCF-ROM
Permite que el lector de barras interprete los códigos que imprimen las balanzas (romanas) cuando un código no se encuentra ni como Cod_Articulo ni como CodigoBarra. Se accede desde Utilidades VE-UTL → Configuración → Romana / Balanza.
Cómo funciona
Cuando escaneás un código en el campo de búsqueda de artículos, el sistema lo busca en este orden:
- Busca por
Cod_Articuloexacto. - Si no existe, busca en
CodigoBarra. - Si no existe y la romana está activa, intenta interpretarlo como código de balanza extrayendo el código del artículo y el valor (peso o precio).
El código de la balanza siempre arranca en la posición 1 y el valor sigue inmediatamente después. Solo hay que indicar 2 longitudes.
Campos del modal
| Campo | Descripción |
|---|---|
| Activa para toda la empresa | Si está apagado, el sistema ignora la romana y los códigos no encontrados marcan error normalmente. La configuración es por empresa (compartida entre todas las estaciones). |
| Tipo: Cantidad / Precio | Cantidad = el valor representa el peso en gramos, se divide por 1000 para obtener kg. Precio = el valor es el precio final con IVA, se calcula la cantidad como precio ÷ precio_unitario_artículo. |
| Largo del código del artículo | Cantidad de dígitos que ocupa el código del artículo desde la posición 1. |
| Largo del valor (peso o precio) | Cantidad de dígitos del valor, arrancando justo después del código. |
| Probar parseo (no guarda) | Pegá un código de prueba y mostrá qué extrae el sistema con la configuración actual. Útil para validar antes de guardar. |
Ejemplo: EAN-13 estándar de balanza
Para un código como 2600101056111 (13 dígitos):
| Configuración | Valor |
|---|---|
| Tipo | Precio (con IVA) |
| Largo del código del artículo | 7 → extrae 2600101 |
| Largo del valor | 5 → extrae 05611 = ¢5,611 |
| Dígito 13 | Check digit del EAN-13, se ignora. |
El artículo en la base de datos debe llamarse exactamente 2600101. Al escanear, el sistema agrega 1 unidad (en modo precio se usa la cantidad precio_balanza ÷ precio_artículo).
Configuraciones típicas
| Formato | Largo cód. | Largo val. | Total dígitos |
|---|---|---|---|
| EAN-13 (con check digit) | 7 | 5 | 13 (12 + check) |
| EAN-13 alterno | 6 | 6 | 13 (12 + check) |
| Código corto | 6 | 5 | 11 |
Importante: el último dígito de un EAN-13 es el check digit y NO debe entrar al cálculo. Por eso para 13 dígitos totales se configura código + valor = 12.
Almacenamiento
La configuración vive en la tabla dbo.RomanaConfig (singleton, 1 fila por empresa). La migración 20260511104634 la crea con valores default desactivados.
Opciones de línea MV-OPC
Modal que aplica acciones masivas sobre las líneas seleccionadas del documento. Se accede desde el menú Opciones o con el botón correspondiente de la barra de acciones.
Acciones disponibles
| Acción | Efecto sobre las líneas seleccionadas | Permiso |
|---|---|---|
| Descuento | Aplica un % de descuento con tipo de descuento seleccionable. | 004 |
| IVA | Cambia la tarifa de IVA de las líneas. | — |
| Precio | Asigna un precio manual específico. | 024 |
| Tipo Precio | Cambia el nivel de precio (P1..P10) de las líneas. | — |
| Exonerar | Aplica la exoneración del cliente a las líneas. | — |
| Quitar Exo. | Revierte la exoneración aplicada. | — |
| Exon. MAG | Aplica exoneración MAG (sector agropecuario) si el cliente la tiene vigente. | — |
| Pesca | Marca las líneas como actividad pesquera (exoneración especial). | — |
| Bodega | Cambia la bodega de origen de las líneas seleccionadas. | — |
| Saldo a favor | Aplica saldo a favor del cliente como forma de pago. | — |
Aplicar descuento (modal detallado)
Al elegir "Descuento" se abre el panel con:
- Tipo de Descuento — combo con las 10 clases Hacienda (01 Descuento general, 02 Bonificación, 07 Descuento comercial, etc.).
- Porcentaje (%) — campo numérico con botones rápidos: 0, 5, 10, 15, 20, 25, 40, 50.
- Descuento Máximo — checkbox que aplica el descuento máximo permitido por artículo.
- Aplicar Descuento — botón primario que efectúa la acción sobre todas las líneas seleccionadas.
Otros Datos, costos y margen
Tres funciones que se usan a diario y que conviene conocer: los datos extra que se le pueden poner a una factura, la actualización de costos al abrir una cotización y la columna de margen.
Otros Datos (MV-042)
Permite agregarle campos adicionales a una factura o proforma (número de orden de compra del cliente, placa del vehículo, número de contrato… lo que el negocio necesite).
- Desde FactuDesk: Botón Utils → Opción "Otros Datos"
- Desde Detalle Factura (VE-030): Botón "Otros Datos" en la barra de acciones
Flujo de uso
- Abra el modal "Otros Datos" desde cualquiera de los dos lugares
- Panel izquierdo: CRUD de favoritos (agregar / renombrar / quitar nombres de campos reutilizables)
- Panel derecho: formulario Nombre + Valor → click en un favorito lo pre-llena
- "Aceptar" guarda en
FacturaVentaOtrosDatosy auto-registra el nombre en favoritos - Lista inferior muestra los datos actuales — clic en fila para editar, 🗑️ para eliminar
Integración con Hacienda
Los campos guardados se emiten automáticamente en el nodo <Otros> del XML enviado a Hacienda como <OtroTexto codigo="NombreCampo">valor</OtroTexto>.
Transfer proforma → factura
Al convertir una proforma a factura, los datos extras se migran automáticamente del número de proforma al nuevo consecutivo de factura (sin intervención del usuario).
Auto-refresh de costos al abrir cotización
Cada vez que se abre o recupera una cotización/proforma, el sistema ahora sincroniza automáticamente los costos de las líneas con el costo actual del catálogo de artículos.
Preview del último artículo encontrado
En la barra de búsqueda, después del input de código ahora aparece un preview visual del artículo buscado:
| Estado | Apariencia |
|---|---|
| Sin buscar | Gris claro con — |
| Artículo encontrado | Verde con código + nombre completo |
| No existe | Rojo con mensaje "No encontrado" |
Margen de utilidad — validaciones
La columna %Marg de la tabla tiene 4 estados según la calidad del dato:
| Condición | Se muestra |
|---|---|
| Costo ≤ 0.01 (sin costo o residual) | — (em dash gris) |
| Margen calculado entre 0% y 1000% | XX.XX% verde, 2 decimales |
| Margen negativo (precio menor al costo) | −X.XX% parpadeando rojo ↔ amarillo |
| Margen > 1000% (costo mal configurado) | ERROR parpadeando rojo ↔ amarillo |
- El descuento aplicado no sea excesivo
- El precio editado manualmente no esté por debajo del costo
- El costo del artículo sea correcto (si está inflado artificialmente)
Filas sin stock — formato visible
Cuando una línea de artículo tiene cantidad mayor al stock disponible (faltante en bodega), toda la fila se marca en rojo:
- Fondo: rojo claro (
#fef2f2) - Texto: rojo oscuro (
#dc2626) en peso 600 y tamaño completo (no se ve más pequeño) - Todos los campos de la fila (código, nombre, cantidad, precio, totales) mantienen el mismo tamaño que filas normales
Esto permite detectar visualmente artículos que provocarían sobregiro antes de procesar la factura.
Doble clic inteligente en tabla artículos
Se intercambió la acción del doble clic para mejor UX:
- Doble clic en el CÓDIGO del artículo → abre el Kardex (consulta histórica de movimientos)
- Doble clic en el NOMBRE del artículo → abre Editar Línea (MV-ART)
Indicador de conexión en el Total
El header de la ficha Total ahora muestra:
- Moneda activa del documento (CRC, USD, EUR) como chip amarillo
- Botón 💱 Cambiar que abre un popup para cambiar la moneda del documento
- Puntito • de conexión al extremo derecho:
- ● Verde pulsando → servidor en línea
- ● Rojo pulsando → sin conexión
El sistema hace un ping automático al servidor cada 30 segundos, y también escucha los eventos online/offline del navegador.
Número de documento — últimos 10 dígitos
El número del documento mostrado en la ficha Documento se recorta a los últimos 10 dígitos cuando es un consecutivo electrónico (20 caracteres). Para proformas cortas se mantiene completo. El número completo sigue enviándose correctamente a todas las APIs.
Botón "Nueva" reubicado
El botón Nueva (abrir nueva venta en pestaña aparte) se movió del panel de Herramientas a la ficha Documento, junto al botón Imprimir. Solo es visible cuando la proforma tiene consecutivo real (no en documento de trabajo).
Parámetro 380 — control completo del teléfono
El parámetro 380 (Imprimir teléfono del cliente) ahora aplica en todos los formatos de salida:
- ✅ POS térmica (FIPVIVI002)
- ✅ Hoja carta centrado (FIPVIVI003)
- ✅ Hoja carta 2 columnas (FIPVIVI004)
- ✅ PDF DataReport (FIPVIVI005)
- ✅ Matricial GDI (FIPVIVI006)
- ✅ Vista HTML web
- ✅ PDF del correo electrónico
- ✅ Cuerpo HTML del correo
- ✅ Bluetooth
Si 380 = 0, el teléfono del cliente no se imprime y la etiqueta cambia de "Tel/Email:" a "Email:" automáticamente.
Parámetros clave
El comportamiento del módulo se controla mediante parámetros de empresa:
El sistema maneja dos parámetros distintos para moneda:
| Parámetro | Concepto | Editable | Uso |
|---|---|---|---|
| 49 | Moneda predeterminada | ✅ Sí | La que se asigna a documentos nuevos al abrir Facturación. Cambiala desde Configuración para que las cotizaciones por default arranquen en USD, EUR, etc. |
| 249 | Código moneda nacional | ❌ No (fija) | La moneda del país. Es la base de los tipos de cambio (TC = 1). No se cambia. |
Comportamiento al abrir Facturación
- Si el documento de trabajo (
u#####u) no existe → se crea con la moneda predeterminada (param 49) - Si existe pero está vacío → se sincroniza con la predeterminada actual al recargar
- Si tiene líneas → respeta la moneda original (no rompe precios convertidos)
- Si el cliente seleccionado tiene una moneda específica configurada en su ficha → esa gana sobre la predeterminada
Cada artículo del catálogo tiene una moneda asignada (campo Cod_TipoMoneda). Al agregar el artículo a una cotización, el sistema decide:
| Moneda Artículo | Moneda Documento | Acción |
|---|---|---|
| USD | USD | No convierte — inserta el precio tal cual del catálogo |
| CRC | CRC | No convierte |
| CRC (nacional) | USD | Divide entre el TC del USD → precio en USD |
| USD | CRC (nacional) | Multiplica por el TC del USD → precio en CRC |
| USD | EUR | Conversión cruzada vía la moneda nacional (factor TC_USD / TC_EUR) |
El TC siempre se busca actualizado en la tabla TipoCambio al agregar la línea (no se confía en valores guardados que pudieran estar desactualizados).
Cuando una cotización está en moneda extranjera (USD, EUR, etc.), aparece una fila adicional en la columna Impuestos del panel de totales:
💱 T.C. USD 500.00
- Solo se muestra si la moneda del documento difiere de la moneda nacional (param 249).
- El valor es el TC guardado en la cotización al crearla o cambiar la moneda — se "congela" para que cotizaciones viejas mantengan su histórico.
- Si se modifica el TC en el catálogo de Tipos de Cambio, las cotizaciones existentes no se actualizan; solo las nuevas tomarán el TC nuevo.
- Para forzar refresco del TC en el doc de trabajo: borrar todas las líneas y recargar el módulo.
Controla cómo se ordenan los artículos al abrir/recargar una cotización. Aplicado en cotizacion_carga_desktop.php.
| Valor | Orden aplicado | SQL |
|---|---|---|
| 1 | Por nombre del artículo (alfabético) | ORDER BY a.ArticuloNombre, h.NumeroLinea |
| 2 | Por código del artículo | ORDER BY h.ArticuloCodigo, h.NumeroLinea |
| 3 (default) | Por línea (cronológico de inserción) | ORDER BY h.NumeroLinea |
El segundo criterio (NumeroLinea) es desempate por si hay nombres/códigos repetidos. El frontend NO re-ordena después de agregar líneas — para ver el orden correcto hay que recargar.
En el panel Documento, hacer click sobre la fecha (icono ✏️ a la derecha) abre un selector Flatpickr para cambiar la fecha de la cotización.
- Conserva la hora original de la cotización — solo cambia la parte fecha
- Funciona sin importar el estado del documento (borrador, guardada, pedido, en cajas, histórica)
- API:
POST /api/proformas/cotizacion_actualiza_fecha.php— body{ numero, fecha: "YYYY-MM-DD" }
Con este parámetro activo, cuando le agrega a un cliente un artículo que ya le vendió antes, la línea sale con el mismo precio y descuento de la última vez — aunque la lista de precios haya cambiado desde entonces.
Para qué sirve: los precios pactados con un cliente suelen no estar en ninguna lista. Si el vendedor no se los sabe de memoria, factura al precio de lista y la empresa cobra de menos (o de más) sin darse cuenta.
Funciona desde el primer día: no hay que esperar a facturarle de nuevo. Si el sistema no tiene el precio a mano, lo busca en el historial de ventas de ese cliente y lo usa. Aplica en la facturación de computadora, celular y punto de venta.
| Situación | Qué precio sale |
|---|---|
| El cliente ya compró ese artículo (aunque haya sido hace años) | El último precio y descuento que se le facturó |
| Nunca le ha comprado ese artículo | El precio normal de su lista |
| Cliente genérico / contado sin nombre | El precio normal de su lista |
| El usuario escribe el precio a mano | El que escribió el usuario (manda sobre todo) |
Tener en cuenta
- El precio recordado se aplica aunque sea menor que el de la lista: se respeta lo pactado con el cliente. Si queda por debajo del costo, siguen actuando las autorizaciones de siempre (permisos 006 y 021).
- Se recuerda el precio de facturas, tiquetes y exportaciones. Las notas de crédito y débito no cambian el precio recordado, porque corrigen un documento y no fijan un precio nuevo. Las facturas anuladas tampoco cuentan.
- Este parámetro antes recordaba solo el descuento. Si su empresa ya lo tenía activo, ahora también recordará el precio.
- Para cambiarle el precio pactado a un cliente, basta con facturarle al precio nuevo: la próxima vez saldrá ese.
Controla cómo se calcula el IVA de cada línea cuando el precio unitario sin IVA tiene decimales que, al sumarse con el IVA, deben cuadrar con un precio objetivo "redondo" con IVA incluido.
Caso típico: un artículo "vale" ₡1,700.00 con IVA al público. Para que eso cuadre con IVA 13%, el precio unitario sin IVA se guarda como 1,504.4248 (4 decimales). Sin este parámetro, el sistema redondea el subtotal antes de calcular el IVA y el total queda en ₡1,699.99 (pierde 1 céntimo).
| Valor | Cálculo del IVA | Ejemplo PU 1,504.4248 × 1 × 13% |
|---|---|---|
| 0 (default) | IVA = Subtotal redondeado × tarifa | Subtotal 1,504.42 · IVA 195.57 · Total 1,699.99 |
| 1 | IVA = Subtotal sin redondear × tarifa | Subtotal 1,504.42 · IVA 195.58 · Total 1,700.00 ✓ |
¿Cuándo activarlo?
- El catálogo tiene precios "con IVA redondos" (₡500, ₡1,000, ₡1,700, etc.) y el cliente espera ver ese mismo total en la factura.
- El usuario edita el campo Total con IVA en la línea y quiere que el valor digitado se respete tal cual al facturar.
- Facturas POS / tiquetes donde el subtotal + IVA deben sumar exactamente el precio mostrado al cliente.
Nota Hacienda v4.4
Con el parámetro activo (190=1) puede haber una diferencia de ±0.01 entre Gravado × Tarifa e IvaMonto declarado en el XML. Esta diferencia está dentro de la tolerancia oficial de Hacienda (±0.05 por línea) y es el patrón estándar en sistemas de facturación electrónica que respetan el precio "con IVA objetivo".
Cómo activarlo
Desde Configuración → Parámetros de Empresa (CF-004), editar el parámetro 190 y poner valor 1. Toma efecto inmediato en la próxima línea agregada o modificada.
| Param | Descripción | Valores |
|---|---|---|
| 3 | Agente obligatorio diferente al usuario | 0 = No, 1 = Sí |
| 19 | Facturación solo por Cajas | 0 = Normal, 1 = Solo Cajas |
| 25 | Decimales en cantidades | 0-3 decimales |
| 50 | Permitir sobregiro global | 0 = No, 1 = Sí |
| 57 | Precio fijo por estación | 0 = Libre, 1 = Fijo |
| 65 | Relleno de código de artículo a 15 caracteres (pad con ceros a la derecha al buscar) | 0 = No, 1 = Sí |
| 83 | Cuenta contable de Caja Efectivo (usada para ajuste de redondeo en moneda extranjera) | Cuenta contable |
| 102 | Bloquear selección de bodega | 0 = Libre, 1 = Fija |
| 110 | Mostrar equivalente en USD debajo del total | 0 = No, 1 = Sí |
| 125 | Generar factura electrónica | 0 = No, 1 = Sí |
| 153-158 | Bloquear descuento por nivel de precio | 0 = Permitir, 1 = Bloquear |
| 190 | Redondear total factura — cuadra el total de línea con el precio objetivo con IVA (ver detalle) | 0 = Tradicional, 1 = Total cuadra exacto |
| 194 | Email alerta montos altos | Dirección email |
| 249 | Código de moneda nacional (configurable por país) | CRC / USD / PAB / etc. |
| 277 | Recordar último precio y descuento cliente+artículo (ver detalle) | 0 = No, 1 = Sí |
| 343 | Mostrar serie como nombre artículo | 0 = Normal, 1 = Solo serie |
| 344 | Mostrar % descuento por línea en factura física, pantalla y PDF. El monto del descuento por línea y el total DESCUENTO al pie siempre se imprimen (no se ocultan). | 1 = Mostrar, 0 = Ocultar |
| 385 | Mostrar artículos con precio 0 en el modal de búsqueda | 0 = Ocultar, 1 = Mostrar |
| 390 | Usuario de la factura: 0 = creador de la cotización, 1 = Usuario Ventas activo | 0 / 1 |
| 392 | Agente de la factura = Usuario Ventas (requiere 390=1). Con 1 sobreescribe el agente original de la proforma. No activar si usa comisiones por agente. | 0 / 1 |
Permisos
Los permisos controlan qué acciones puede realizar cada usuario en el módulo de facturación. Se configuran desde Configuración > Usuarios asignando los códigos correspondientes.
Acceso al módulo
| Código | Permiso | Efecto si NO tiene |
|---|---|---|
| 653 | Acceso a FactuDesk | No puede abrir el módulo |
Edición de líneas
| Código | Permiso | Efecto si NO tiene |
|---|---|---|
| 024 | Editar precio de venta | El campo de precio aparece como solo lectura, no puede cambiar el precio unitario ni el total con IVA en las líneas |
| 004 | Aplicar descuentos manuales | El campo de descuento aparece como texto, no puede modificar el % de descuento en líneas |
| 023 | Hacer descuento mayor al permitido del artículo | El descuento queda limitado al máximo configurado por artículo (no puede superarlo) |
| 006 | Facturar bajo la utilidad mínima | Si el precio sin IVA (con el descuento) queda bajo la utilidad mínima (parámetro 16 o por nivel) aunque siga ≥ al costo, no puede aplicarlo: el descuento se quita o el precio se ajusta al mínimo |
| 021 | Facturar bajo el costo | Si el precio sin IVA (con el descuento) queda por debajo del costo, no puede continuar (modal "No autorizado"). También controla la opción "Facturar a Costo" del menú de acciones |
| 059 | Eliminar líneas | No puede borrar artículos individuales ni seleccionados del documento |
Visualización
| Código | Permiso | Efecto si NO tiene |
|---|---|---|
| 064 | Ver margen de utilidad | No ve la columna "Util %" en la tabla de artículos ni el monto total de margen en el pie del documento |
| 656 | Ver stock de inventario | No ve la columna "Stock" con la existencia disponible por bodega en la tabla de artículos |
Acciones del documento
| Código | Permiso | Efecto si NO tiene |
|---|---|---|
| 104 | Guardar cotizaciones | Botón "Guardar" deshabilitado, no puede guardar proformas/cotizaciones |
| 060 | Eliminar cotizaciones | No puede eliminar cotizaciones completas desde el modal de recuperar |
| 069 | Ver cotizaciones de otros usuarios | Solo ve sus propias cotizaciones al recuperar; con el permiso ve las de todos |
| 119 | Compuestos manuales | No ve la pestaña de artículos compuestos (kits) |
| 123 | Enviar a Cajas | Botón "Enviar a Cajas" deshabilitado |
| 536 | Enviar proforma como pedido | Dentro de PROCESAR, el botón Enviar Pedido aparece en gris. Este permiso es independiente del 078: se puede tener uno sin el otro |
| 078 | Emitir facturas | Los botones de cobro EFECTIVO, TARJETA y SINPE aparecen en gris, y dentro de PROCESAR también quedan grises Factura Contado y Factura Crédito. El botón PROCESAR sí abre: desde ahí se puede enviar pedido, enviar a Cajas, imprimir, mandar por correo o WhatsApp, archivar y exportar. La factura la tiene que emitir un usuario autorizado |