Compras — Registrar nueva compra

Form estilo POS para registrar una compra a un proveedor. Eliges proveedor (típeahead) + items del catálogo + datos del comprobante recibido + condición de pago, y todo se asienta de un solo click.

La pantalla Nueva compra es el form donde registras todo lo que un proveedor te entregó: la factura/boleta que te emitió, los items que recibiste con su precio de compra y la forma en que vas a pagar (al contado o al crédito). Tiene el mismo layout POS que el form de Ventas: a la izquierda la grilla de productos del catálogo con búsqueda, a la derecha el carrito con totales y condición de pago.

Arriba de todo hay un bloque único que junta proveedor + comprobante recibido + crédito fiscal en una sola card compacta. El proveedor lo eliges con typeahead que busca por RUC o razón social, o lo creas al instante con un botón + que abre un modal de creación rápida. Si vas a registrar una compra chica sin proveedor del directorio (un kiosco, un puesto del mercado, etc.), puedes dejar el proveedor en blanco — el sistema la guarda como compra ad-hoc.

A diferencia de Ventas, en Compras el precio unitario lo ingresas tú en cada línea — el precio del catálogo es el de venta, no el de compra. Al agregar un producto al carrito el precio arranca en 0.00 y debes editarlo con el monto real que pagaste al proveedor. El sistema calcula automáticamente el subtotal por línea, el IGV (si aplica crédito fiscal) y el total general en tiempo real.

Al hacer click en «Registrar compra» ocurren 3 cosas al mismo tiempo: (1) se registra la compra con su número correlativo, (2) se asienta el movimiento contable (cargando inventario + IGV crédito, abonando caja o cuentas por pagar), (3) se incrementa el stock del producto en el kardex por cada ítem con variante. Si la compra es a crédito, además se crea automáticamente la cuenta por pagar (CxP) con su fecha de vencimiento.

Manual completo

El bloque Proveedor + Comprobante

Esta card compacta arriba reúne todo lo que identifica la compra:

Campo Obligatorio Cómo se usa
Buscar proveedor (typeahead) Opcional Escribe nombre o RUC. Si el proveedor ya está en tu directorio, aparece en sugerencias. Click → autocompleta. Si no existe, puedes crearlo al vuelo con el botón +.
Botón + Acción Abre la ventana de creación rápida de proveedores. Al guardar, el proveedor queda auto-seleccionado en la compra actual.
Fecha emisión Default = hoy. Es la fecha del comprobante del proveedor (puede ser anterior a hoy si recién lo estás registrando).
Tipo de comprobante Factura · Boleta · Recibo Honorarios · Nota de Crédito · Nota de Débito · Sin comprobante · Otro. Determina el default de crédito fiscal.
Serie Opcional Serie del comprobante del proveedor (ej. F001). Hasta 20 caracteres.
Número Opcional Número del comprobante (ej. 123). Hasta 30 caracteres.
Genera crédito fiscal Checkbox Por defecto activado si tu régimen aplica IGV Y el tipo de doc es factura. Marca si quieres que esta compra aporte al crédito fiscal del mes.

💡 Compra ad-hoc = registrar la compra sin asignar proveedor del directorio. Es válido pero pierdes el seguimiento por proveedor. Si la compra es a crédito, te conviene SIEMPRE asignar un proveedor (sin proveedor la CxP sale con etiqueta «Proveedor sin identificar»).

⚠️ Solo las facturas con RUC válido generan crédito fiscal si tu régimen es RER, RG o MYPE Tributario. Boletas y recibos por honorarios NO aplican crédito. Si tu régimen es NRUS, el casillero queda desactivado sin importar el tipo de comprobante (NRUS no usa IGV).

La grilla POS de productos

La columna izquierda muestra los productos del catálogo del MYPE marcados como visibles. Hasta 60 productos por carga; usa la búsqueda para filtrar más.

  • Búsqueda: filtra por nombre, código (SKU) o código de barras del producto. Debounce de 300ms.
  • Click en una tarjeta: agrega 1 unidad al carrito con el precio en 0.00 (debes ingresarlo después).
  • Indicador de stock: la card muestra un chip con el stock actual del producto (Sin stock rojo si es 0, X stk ámbar si es < 5, X stk verde si tiene). Útil para verificar antes de comprar más.
  • Productos con variantes: si el producto tiene variantes (talla/color/etc.), al click se abre un modal para elegir cuál variante recibiste. La grilla muestra debajo «X opciones».
  • Productos tipo servicio: aparecen con badge Servicio (icono de calendario). Funciona igual: agregan al carrito sin variantes ni stock, útil para registrar un servicio contratado.

💡 El precio en la grilla NO es el precio de compra — los precios del catálogo son los de VENTA. En Compras el precio arranca en 0.00 y debes ingresarlo manualmente con el monto del comprobante del proveedor.

El carrito (columna derecha)

Por cada item agregado se crea una fila con:

Campo Origen Editable
Nombre del producto + variante Del catálogo, no editable No
Cantidad Default 1, botones +/- o input directo
Precio unitario (de compra) Arranca en 0.00 Sí, debes ingresarlo
Subtotal cantidad × precio calculado en vivo Auto
Quitar Botón papelera Acción

El precio unitario tiene debounce de 500ms y se interpreta según el checkbox de crédito fiscal: con crédito = precio SIN IGV (el IGV se calcula sobre el subtotal); sin crédito = precio CON IGV embebido (el costo absorbe el IGV).

Condición de pago y método

Debajo de los totales del carrito eliges cómo pagaste:

Condición Cómo funciona
Contado Pago inmediato. Debes elegir el método (Efectivo / Yape / Plin / Transferencia / Tarjeta POS). En la contabilidad se registra C CAJA-<método> por el total. No crea CxP.
Crédito Pago diferido. Aparece un campo de días para pagar (default 30, o los días de crédito que tenga configurado el proveedor). En la contabilidad se registra C PROVEEDORES-PAGAR. Crea automáticamente una CxP con fecha de vencimiento = fecha de emisión + los días de crédito.

💡 Si tu proveedor del directorio tiene configurados 15 días de crédito, al cambiar a Crédito el campo de días se pre-llena con 15. Puedes sobrescribirlo si la negociación fue distinta para esta compra puntual.

Notas internas (opcional)

Al final del carrito hay una sección colapsable «+ Notas internas» para anotaciones del equipo. NO se imprime en ningún comprobante (las compras Gestión no emiten doc — el doc lo emitió el proveedor). Útil para dejar contexto: «Pago parcial 50% adelantado en efectivo el 18/04», «Faltó 1 caja, llegará mañana», etc.

El botón «Registrar compra»

Al hacer click, el sistema registra la compra en una sola operación (todo o nada) que coordina:

  1. Validaciones: items no vacío, cantidad > 0, precio ≥ 0, fecha válida, condición/método válidos.
  2. Reserva del número correlativo con lock atómico.
  3. Guarda la compra con cada uno de sus ítems por línea.
  4. Calcula totales: subtotal + IGV (si aplica crédito) + total.
  5. Registra el asiento contable: doble entrada con cargo a INV-PRODUCTOS / COMPRAS / IGV-CREDITO y abono a CAJA-<método> o PROVEEDORES-PAGAR.
  6. Registra el stock: por cada ítem con variante, un movimiento de compra (entrada) que incrementa el stock.
  7. Crea la CxP (cuenta por pagar) si la compra es a crédito (solo una por compra, sin duplicados).

Al terminar, te lleva al detalle de la compra con un aviso de éxito.

Flujos completos

Compra al contado con factura (caso típico mercadería)

  1. Buscas el proveedor por RUC → seleccionas → autocompleta.
  2. Tipo = Factura, Serie = F001, Número = 123, Fecha = hoy.
  3. Dejas marcado «Genera crédito fiscal» (default en régimen RER/RG/MYPE).
  4. Click en 3-4 productos del catálogo, ajustas cantidades, ingresas precios de compra reales.
  5. Condición = Contado, Método = Transferencia.
  6. Click «Registrar compra» → se asienta + sube stock + redirige al detalle.

Compra a crédito con factura (proveedor habitual)

  1. Seleccionas proveedor del directorio con condicion_credito_dias = 30.
  2. Tipo = Factura, llenas serie+número.
  3. Agregas items + precios.
  4. Condición = Crédito → campo de días auto-llena con 30. Puedes editarlo.
  5. Click «Registrar compra» → además del asiento y el stock, crea la CxP con vencimiento dentro de 30 días.

Compra ad-hoc sin comprobante (mercado, gasolina, suministros chicos)

  1. NO seleccionas proveedor.
  2. Tipo = Sin comprobante. Dejas serie+número vacíos.
  3. DESMARCAS «Genera crédito fiscal» (sin doc no genera crédito).
  4. Agregas items con precios CON IGV embebido (el costo absorbe el IGV).
  5. Contado + Efectivo.
  6. Click «Registrar compra» → asiento sin discriminar IGV (el total va a INV/COMPRAS).

Compra de servicio contratado (ej. mantenimiento, software)

  1. Asignas proveedor.
  2. Tipo = Factura o Recibo Honorarios según corresponda.
  3. Agregas un ítem de tipo servicio del catálogo (con el ícono de calendario).
  4. Ingresas cantidad e importe.
  5. Contado o crédito según el acuerdo.
  6. → el asiento carga la cuenta COMPRAS (no INV-PRODUCTOS) porque es servicio. NO afecta stock (no hay variante).

Casos comunes

«El producto que necesito comprar no aparece en la grilla» Verifica que esté en el catálogo (menú Catálogo › Productos) y marcado como visible en el catálogo. Si solo lo recibes para un proveedor pero no lo vendes, igual debe existir en el catálogo (puedes marcarlo como visible y luego ocultarlo). Otra opción: agregar el ítem como compra ad-hoc todavía no está disponible — el sistema exige un producto del catálogo por línea.

«Olvidé desmarcar crédito fiscal en una compra sin factura» La compra se asentó con IGV crédito que SUNAT no te va a aceptar. Anula la compra desde el detalle y vuelve a registrarla con el checkbox correcto. El motivo de anulación queda en BD para auditoría.

«El precio del catálogo es el de venta y se me agregó como 0» Es correcto — el comportamiento es intencional. En Compras siempre debes ingresar el precio que pagaste, no el de venta. Si lo dejas en 0.00 y confirmas, la compra se asienta con subtotal 0 (lo cual probablemente no quieres). El formulario valida que el precio no sea negativo pero no exige que sea mayor a 0, así que ten cuidado.

«Quiero registrar una compra con fecha de hace 2 meses» Sí se puede — el campo de fecha de emisión acepta cualquier fecha. Sin embargo, el asiento contable y el movimiento de stock se registran con esa fecha de emisión retroactiva, lo cual puede descuadrar reportes de meses ya cerrados. Si tu contador ya declaró ese periodo, agrega una nota interna explicando el caso.

«El proveedor no está en el directorio y la quiero crear ahora» Click en el botón + junto al typeahead → se abre el modal de creación rápida con campos básicos (RUC/razón social/dirección/email/whatsapp/días de crédito). Al guardar, el proveedor queda creado en tu directorio Y auto-seleccionado en la compra actual.

Cosas que NO puedes hacer

  • Editar la compra después de registrarla: ni los items, ni el proveedor, ni el comprobante. Si te equivocaste, anula y vuelve a crear.
  • Registrar una compra sin ítems: el sistema exige al menos 1 ítem, con el mensaje «Agrega al menos 1 ítem a la compra.»
  • Mezclar productos de distintos negocios: cada compra pertenece al negocio actual. El sistema valida que el proveedor también sea del mismo negocio.
  • Marcar «Genera crédito fiscal» si tu régimen es NRUS: NRUS no usa IGV. El checkbox aparece pero el cálculo de IGV queda en 0 por la regla del régimen tributario (ver Régimen tributario).
  • Editar el número interno: lo asigna el sistema con lock atómico. Es inmutable.
  • Registrar la compra como «borrador» (a diferencia de Ventas): toda compra se registra ya activa. La única transición posterior posible es anular.