Cotizaciones — Detalle de cotización

Vista completa de una cotización — cliente, items, vigencia, totales y acciones (aceptar, rechazar, compartir por WhatsApp). Esta pantalla es donde gestionas el ciclo de vida de una propuesta comercial.

La pantalla Detalle de cotización te muestra una cotización específica con todos sus datos: el cliente, los items con sus precios, las notas internas, los totales y las acciones disponibles según el estado. Esta pantalla es donde sigues el ciclo de vida completo de una propuesta comercial: la compartes por WhatsApp con el cliente, esperas su respuesta, y la aceptas (genera venta) o rechazas (con motivo).

El header sticky arriba tiene el breadcrumb («Cotizaciones › Cotización C-00000001») y los botones de acción: WhatsApp, Descargar PDF (siempre visibles) y, si está pendiente, «Rechazar» y «Aceptar → Crear venta».

El cuerpo está en 2 columnas: a la izquierda ves la cabecera con número + estado + cliente, la tabla de items y las notas internas (si las hay). A la derecha un sidebar con el resumen: subtotal, IGV y total grande.

Cuando aceptas la cotización eligiendo emitir comprobante, el sistema la convierte y emite la boleta/factura/nota de venta en el mismo acto — te lleva directo al comprobante emitido, no a una pantalla de «venta». La cotización queda como aceptada. Si prefieres no emitir todavía, «Guardar sin emitir» deja la cotización aceptada con una venta en borrador (ver más abajo). Si la cotización está vencida (fecha pasada) pero todavía pendiente, ves un banner amarillo de aviso y el botón «Aceptar» se rechaza con error — primero tiene que expirarse o crearse una nueva.

Manual completo

Estructura de la pantalla

Sección Qué contiene
Header sticky Breadcrumb «Cotizaciones › Cotización C-00000001» + botones de acción según estado.
Banner de aceptación Solo si está aceptada y generó una venta. Mensaje verde con link a la venta generada (ej. «Esta cotización generó la venta V-001234»).
Banner de vencimiento Solo si está pendiente y su fecha de vigencia ya pasó. Banner amarillo avisando que se marcará como expirada en la próxima ejecución del proceso diario.
Banner de rechazo Solo si está rechazada y tiene un motivo escrito. Banner rojo con el motivo.
Cabecera Número (C-00000001), badge de estado con color, fecha de creación + usuario, fecha de vencimiento, avatar + razón social del cliente con tipo y número de documento.
Tabla de items Cada línea: número, descripción (nombre + variante + nota concatenados), cantidad, precio unitario, subtotal.
Notas internas Solo si la cotización tiene notas. Texto libre que se llenó al crearla. NO se comparte automáticamente con el cliente.
Sidebar (resumen) Subtotal, IGV (si aplica), total grande en soles.

Acciones por estado

Estado actual Acción disponible Qué hace
Pendiente ✓ Aceptar → Crear venta Abre el modal para elegir el tipo de comprobante y emitirlo (ver abajo).
Pendiente ✗ Rechazar Abre modal con un campo para el motivo (opcional, máx 500 caracteres). Al confirmar, marca la cotización como rechazada con el motivo guardado.
Cualquier estado ⬇️ Descargar PDF Genera y descarga un PDF de la cotización — útil para enviarla por correo o imprimirla. Se genera al momento con los datos de la cotización. Incluye los datos de quién cotiza (nombre, correo, teléfono) y, si lo llenaste al crearla, el recuadro «Condiciones Comerciales».
Cualquier estado 💬 Compartir por WhatsApp Abre WhatsApp en nueva pestaña con mensaje pre-armado (número + total + vigencia + items). Si el cliente no tiene WhatsApp guardado, abre WhatsApp sin destinatario (eliges al abrir la app).
Aceptada (link a venta) Si aceptaste con «Guardar sin emitir», el banner verde del top tiene el link a la venta en borrador. Si aceptaste emitiendo comprobante, aterrizas directo en él (no hay banner con link, ya estás ahí).

El modal «Aceptar → Crear venta»

Cuando haces click en «Aceptar» se abre un modal donde eliges qué comprobante emitir:

  • Tipo de comprobante: Boleta, Factura o Nota de venta (interna) — si tu plan es gratuito, el tipo queda fijo en Nota de venta.
  • Serie: se pre-selecciona la serie disponible para el tipo elegido.
  • Mostrar IGV desglosado (solo si el tipo es Nota de venta): opcional.
  • Método de pago (obligatorio, default «Efectivo»): Efectivo, Yape, Plin, Transferencia bancaria o Tarjeta POS.
  • Dos botones de acción: «Emitir comprobante» (primario — confirma la venta y emite el comprobante en un solo paso, te lleva directo a él) y «Guardar sin emitir» (secundario — deja la cotización aceptada con una venta en borrador, sin emitir nada todavía; útil si necesitas revisar algo antes de facturar).

💡 El flujo normal es «Emitir comprobante»: no verás una pantalla intermedia de «venta» — la venta existe por debajo, pero tú solo ves la cotización y, al aceptar, el comprobante. Si eliges «Guardar sin emitir», sí queda una venta en borrador visible en Ventas, donde luego la confirmas y emites su comprobante desde el detalle de la venta.

⚠️ Si el cliente de la cotización no tiene los datos requeridos para el comprobante elegido (por ejemplo, Factura exige RUC; Boleta sobre S/ 700 exige DNI/RUC), el sistema avisa con un mensaje y no emite — corrige el documento del cliente o elige otro tipo de comprobante.

⚠️ Si la cotización está vencida (su fecha de vigencia ya pasó) y todavía pendiente, al hacer click en «Aceptar» el sistema rechaza con error: «La cotización está vencida. Crea una nueva.» Esto es por integridad — un precio de hace 30 días puede ya no ser válido. Solución: crea una cotización nueva con los mismos items.

💡 Si el cliente tiene RUC o DNI válido, al aceptar queda registrado automáticamente en Contactos › Clientes (si aún no lo estaba).

El modal «Rechazar»

  • Campo de motivo (opcional, máx 500 caracteres, texto de ayuda «¿Por qué se rechazó?»).
  • Botones «Cancelar» y «Rechazar».

💡 El motivo se guarda y se muestra como banner rojo en el detalle. Útil para análisis posterior: «Cliente eligió competencia», «Precio fuera de presupuesto», «Pidió otros productos», etc.

El botón «Compartir por WhatsApp»

El sistema construye automáticamente un mensaje con este formato:

Hola! Te paso la cotización C-00000123.
Total: S/ 450.00
Vigencia: hasta 28/05/2026
• Cemento Sol 42.5kg × 10 → S/ 280.00
• Bolsas de yeso × 5 → S/ 170.00

El enlace abre WhatsApp con el mensaje ya escrito. Si el cliente tiene WhatsApp guardado en la cotización, abre el chat directo. Si no, abre WhatsApp Web sin destinatario y tú eliges al cliente desde tu agenda.

💡 El mensaje incluye TODOS los items (uno por línea). Si la cotización tiene 30 items, el mensaje va a ser largo. WhatsApp acepta mensajes de hasta ~4000 caracteres, así que normalmente no hay problema.

Banner de vencimiento (cotización pendiente con fecha pasada)

Cuando una cotización está pendiente pero su fecha de vigencia ya pasó, el detalle muestra un banner amarillo:

«Esta cotización tiene fecha de vencimiento ya pasada. Se marcará como expirada en la próxima ejecución del proceso diario, o crea una nueva.»

El sistema corre este proceso diario a las 03:00 en producción (configurable). Mientras tanto, la cotización sigue visualmente pendiente pero el botón «Aceptar» fallará con error. Si necesitas concretarla, crea una cotización nueva con los items copiados (puedes verlos en el detalle de la vieja).

Dos formas de aceptar: emitir de una vez o dejarlo en borrador

Al hacer click en «Aceptar» tienes dos caminos, según el botón que uses en el modal:

  • «Emitir comprobante» (el camino normal): en un solo paso, la cotización se convierte en venta, se confirma (asienta caja, descuenta stock) y se emite el comprobante elegido. Aterrizas directo en el comprobante — no necesitas ningún paso adicional.
  • «Guardar sin emitir»: crea la venta en estado borrador, sin confirmar ni emitir nada. Útil si necesitas revisar algo (por ejemplo, corregir un item) antes de cerrar contablemente. Desde el detalle de la venta luego la confirmas y emites su comprobante cuando estés listo.

Si algo sale mal en la venta generada (ej. items duplicados, cliente incorrecto), puedes anularla y crear una nueva cotización con los datos corregidos sin afectar el historial.

Casos comunes

«El cliente aceptó pero no aparece la venta vinculada» Probablemente algo falló en la transacción. Verifica en el detalle si el estado dice «Aceptada» y si aparece el banner verde con link a venta. Si no, intenta de nuevo desde el botón «Aceptar» — si la cotización seguía en pendiente, no hubo cambio. Si quedó en aceptada pero sin venta vinculada (caso extremo), contacta soporte.

«Quiero rechazar pero ya pasaron 5 minutos del límite» No hay límite de tiempo para rechazar — siempre que la cotización esté en pendiente, puedes rechazarla. Si ya está aceptada (creó venta), tienes que ir a la venta y anularla allí (lo que reversa caja/stock si ya la confirmaste).

«Acepté con «Guardar sin emitir» y la venta queda en borrador, ¿cómo confirmo?» El banner del detalle de la cotización tiene un link a la venta. Click → te lleva al detalle de la venta. Allí hay un botón para emitir el comprobante (que confirma la venta y lo emite en un paso).

«El cliente quiere cambiar 1 item de la cotización antes de aceptar» La cotización pendiente NO se edita después de creada. Tienes que rechazar (motivo: «Cliente solicitó cambios») y crear una cotización nueva con los items corregidos.

«Aceptamos la cotización pero el cliente devolvió 1 producto al día siguiente» La cotización ya está aceptada y bloqueada — no se reabre. La devolución se procesa desde la venta: anula la venta o emite nota de crédito por el item devuelto. Las cotizaciones son inmutables después del flujo terminal.

«Quiero ver todas las cotizaciones rechazadas para entender por qué pierdo ventas» Vuelve al listado de cotizaciones, click en la pestaña Rechazadas. Click en cada una para ver el motivo guardado. No hay reporte agregado todavía, pero puedes navegar 1 a 1.

Cosas que NO puedes hacer

  • Editar el cliente, los items o los precios de una cotización ya creada (ni siquiera pendiente).
  • Aceptar una cotización vencida (fecha de vigencia ya pasada): el sistema rechaza con error. Crea una nueva.
  • Aceptar una cotización ya aceptada, rechazada o expirada: las transiciones son uni-direccionales. Solo se permite pasar de pendiente a aceptada, rechazada o expirada.
  • Eliminar una cotización: las cotizaciones no se borran físicamente. Quedan en BD para trazabilidad.
  • Reabrir una cotización rechazada o expirada: el flujo es crear una nueva. Tip: copia los items mirando el detalle viejo.
  • Cambiar el método de pago después de aceptar: ese dato va a la venta generada. Edita la venta (técnicamente la venta tampoco edita método después de confirmar — anula y crea nueva).
  • Saltar la creación de venta al aceptar: el flujo «aceptar» siempre genera una venta en borrador, no hay forma de aceptarla sin venta vinculada.