Compras — Detalle de compra

Vista completa de una compra registrada — proveedor, comprobante recibido, items con su costo, asiento contable y movimientos de stock disparados. Permite anular si fue por error.

La pantalla Detalle de compra te muestra una compra específica con todo lo que generó: el proveedor, los datos del comprobante recibido (tipo, serie, número, fecha), los items que recibiste con su cantidad y precio de compra, el asiento contable completo (cargo/abono con cuentas reales), los movimientos de inventario que aumentaron el stock y, si era a crédito, el vínculo con la cuenta por pagar generada.

Esta pantalla es la fuente de verdad de cada compra. Aquí ves el asiento doble entrada que tu contador necesita, validas que el stock entró correctamente al kardex y, si te equivocaste, anulas la compra con motivo escrito.

El encabezado muestra el número interno (ej. C-00000045), el estado actual con badge de color (Registrada en verde o Anulada en rojo), la fecha de emisión y el usuario que la creó. Si la compra está anulada, debajo aparece una alerta roja con el motivo que escribiste al anular — queda visible para siempre como respaldo.

Las acciones disponibles dependen del estado: una compra registrada se puede anular y —si tu MYPE tiene las guías de remisión activas— también generar una guía de compra desde ella; una compra anulada es read-only (no hay forma de reactivarla, solo crear una nueva con los mismos datos).

Manual completo

Estructura de la pantalla

La pantalla usa layout de 2 columnas:

Sección (columna principal) Qué contiene
Cabecera Número interno (C-XXXXXX), badge de estado, fecha de emisión, usuario que registró, avatar + razón social + tipo/número de documento del proveedor.
Comprobante recibido Grid 2×2: Tipo (Factura/Boleta/etc.), Serie/Número, Fecha de emisión, Pago (condición + método). Si es crédito muestra también la fecha de vencimiento.
Ítems comprados Tabla con N° de línea, descripción + código, cantidad (hasta 4 decimales), precio unitario, subtotal.
Asiento contable Tabla doble entrada con cuentas (códigos), descripciones de cada movimiento, debe y haber. Solo aparece si ya se asentó.
Movimientos de inventario Tabla con producto, tipo (Compra (entrada), o Devolución (salida) si fue anulada), cantidad (con +/- según dirección), saldo de la variante después del movimiento.
Notas internas Texto libre que llenaste al registrar. Solo si tiene contenido.
Sección (columna lateral) Qué contiene
Resumen Subtotal (sin IGV) o Costo (si no aplica crédito) + IGV crédito (si aplica) + Total. Si no aplica crédito fiscal, muestra nota explicativa: «Sin crédito fiscal: el IGV está absorbido en el costo».

Las acciones por estado

Estado actual Acción disponible Qué hace
Registrada ✗ Anular compra Abre una ventana con campo de motivo obligatorio. Al confirmar: revierte el stock con movimientos de devolución (salida) + asienta movimientos contrarios en la contabilidad + marca la compra como anulada con su motivo.
Anulada (ninguna) La compra queda en modo lectura. Aparece banner rojo con el motivo. No puedes reactivarla.

Generar guía de compra (atajo)

🔒 Solo disponible si tu MYPE tiene las guías de remisión activas. Si no las usas, el botón no aparece.

Desde una compra registrada aparece el botón «Generar guía de compra» en el encabezado. Al pulsarlo te lleva al formulario de guía de remisión ya pre-llenado: el proveedor de la compra queda como punto de origen del traslado y el motivo viene puesto en «Compra» (02). Solo terminas de completar el destino, los datos del transporte y los ítems que estás recibiendo, y emites la guía.

Es el atajo para cuando el proveedor te entrega la mercadería y necesitas sustentar el traslado con una guía a tu nombre, sin volver a escribir los datos del proveedor.

El modal de anulación

Al click en «Anular compra» se abre un modal con:

  • Texto explicativo: «Esto revertirá el stock recibido y el asiento contable. La acción no es reversible.»
  • Motivo (campo de texto, obligatorio, no puede quedar vacío). Texto de ejemplo: «Ej: Devolución total al proveedor por defecto de fábrica».
  • Botones «Cancelar» (cierra modal) y «Confirmar anulación» (ejecuta).

⚠️ La anulación es irreversible: una vez anulada NO se puede reactivar. Si te equivocaste anulando, la única forma es crear una compra nueva con los mismos datos.

💡 El motivo se guarda en la contabilidad y en el registro de la compra. Recomendación: explica brevemente qué pasó («Devolución total por defecto», «Error de digitación en factura F001-123», «Comprobante duplicado», etc.). Si tu contador o SUNAT te pide justificar la reversión, este motivo es el respaldo escrito.

El asiento contable (cómo leerlo)

Cuando registras una compra el sistema asienta automáticamente movimientos contables doble entrada. Lo que ves en la tabla depende del caso:

Caso 1: Compra con factura + crédito fiscal (RER/RG/MYPE Tributario)

Cuenta Debe Haber
INV-PRODUCTOS subtotal (productos)
COMPRAS subtotal (servicios) — solo si compraste servicios
IGV-CREDITO monto del IGV
CAJA-{método} o PROVEEDORES-PAGAR total

El IGV se discrimina porque puedes usarlo como crédito fiscal en la declaración mensual.

Caso 2: Compra sin crédito fiscal (boleta, recibo honorarios, sin doc, o régimen NRUS)

Cuenta Debe Haber
INV-PRODUCTOS total prorrateado a productos
COMPRAS total prorrateado a servicios
CAJA-{método} o PROVEEDORES-PAGAR total

El IGV NO se discrimina — todo el monto va al costo del inventario o gasto. El monto del IGV queda en 0 para que el reporte de crédito fiscal no lo contabilice.

Caso 3: Anulación

Al anular, el sistema crea un asiento contrario (no borra el anterior — los suma). Lo verás en el libro contable pero NO en esta tabla del detalle (la tabla solo muestra el asiento original de la compra). Para ver la reversión completa consulta el libro mayor o el dashboard.

💡 La cuenta de cargo (Debe) depende del tipo de cada ítem: INV-PRODUCTOS para ítems de tipo producto, COMPRAS para ítems de tipo servicio. Si una compra mezcla productos y servicios, verás dos cargos separados.

Los movimientos de inventario

Por cada ítem con variante el sistema dispara un movimiento al kardex:

Tipo Cuándo aparece Efecto en stock
Compra (entrada) Al registrar la compra Suma la cantidad al stock de la variante.
Devolución (salida) Al anular la compra Resta la cantidad (movimiento inverso).

La tabla muestra: producto, tipo (etiqueta verde), cantidad con signo (+1.5 o -1.5) y saldo de la variante después del movimiento. Si un ítem NO tiene variante (ej. servicios contratados), NO genera movimiento de stock.

💡 Si registras una compra y el stock del producto no sube, verifica que el ítem haya entrado con una variante (ya sea la variante por defecto del producto, o una específica si tiene variantes). Servicios y ad-hoc puro no aportan stock.

La cuenta por pagar (si fue a crédito)

Si la compra se registró a crédito, el sistema crea automáticamente una cuenta por pagar vinculada a esa compra (solo 1 CxP por compra). La CxP arranca con:

  • monto original = saldo pendiente = total de la compra.
  • la fecha de emisión y la fecha de vencimiento heredadas de la compra.
  • estado pendiente.

Para registrar pagos parciales o totales contra la CxP, ve a Cuentas por pagar. Al anular la compra, la CxP también queda inválida (el sistema maneja la cascada automáticamente — verifica que no haya pagos asociados).

Casos comunes

«Anulé una compra pero el stock no parece haber regresado» Verifica que la compra tenía ítems con variante. Solo esos generan movimientos de stock. Si la compra era de un servicio o ad-hoc sin variantes, no hay nada que revertir en el kardex (sí se revierte el asiento contable). Mira la tabla «Movimientos de inventario» del detalle — al anular debes ver filas de devolución (salida) con cantidad negativa.

«La compra dice "Registrada" pero el asiento contable está vacío» Esto NO debería pasar (el asiento se crea junto con la compra). Si lo ves, probablemente falten las cuentas contables base en tu negocio. Verifica que las cuentas INV-PRODUCTOS, COMPRAS, IGV-CREDITO, CAJA-EFECTIVO, PROVEEDORES-PAGAR existan, y reporta a soporte si insiste.

«Quiero modificar el precio de un item porque ingresé mal» No se puede editar. La única solución es: anula la compra (con motivo «error en precio unitario») → crea una nueva con los precios correctos. El stock y el asiento de la original se revierten, los de la nueva entran limpios.

«La compra está a crédito y ya pagué — ¿cómo lo marco?» NO se marca desde la compra. Ve a Cuentas por pagar, busca la CxP vinculada a esta compra (por número o por proveedor) y registra el pago ahí. Eso actualiza el saldo pendiente y eventualmente lo marca como pagado total.

«Necesito el PDF/imagen del comprobante físico que me dio el proveedor» Por ahora no hay adjuntos en compras Gestión — el comprobante físico (factura impresa) lo guarda el MYPE en su archivo. La pantalla solo guarda los metadatos (tipo, serie, número, fecha). Los adjuntos están en backlog para una versión futura.

«La compra fue a crédito y al anularla me queda la CxP rara» La cascada al anular maneja la CxP automáticamente. Si ves inconsistencias (CxP con saldo pero compra anulada), reporta a soporte — puede ser un caso edge donde había pagos parciales antes de anular.

Cosas que NO puedes hacer

  • Editar la compra: ni el proveedor, ni los items, ni el comprobante, ni la condición de pago. Si te equivocaste, anula y vuelve a registrar.
  • Adjuntar PDF del comprobante físico: no está implementado todavía (backlog).
  • Reactivar una compra anulada: la anulación es irreversible. Hay que crear una nueva.
  • Anular sin motivo escrito: el campo es obligatorio (no puede quedar vacío). El sistema rechaza la acción con el mensaje «Indica el motivo de la anulación.»
  • Pagar la CxP desde el detalle: el pago contra una cuenta por pagar se registra en Cuentas por pagar, no aquí.
  • Modificar el asiento contable manualmente: el ledger es inmutable. Para corregir hay que anular la compra entera (lo cual asienta los movimientos contrarios) y volver a crearla.
  • Cambiar la fecha de emisión después de registrar: queda fija. Si te equivocaste de mes, anula y vuelve a registrar con la fecha correcta (avísale a tu contador del descuadre si el mes ya estaba declarado).