Skip to content

Detalle del presupuesto

Vista completa de un presupuesto: cabecera con datos del paciente, columna principal con las líneas y totales, y columna lateral con acciones, info y la tarjeta de cobros que aporta el módulo de pagos. Desde aquí se mueve el presupuesto por todo su flujo borrador → enviado → aceptado y se firma, factura o renegocia.

De un vistazo

  • Layout en dos columnas. Izquierda: líneas del presupuesto con ítem del catálogo, diente, superficies, cantidad, descuento e IVA. Derecha (de arriba abajo): tarjeta de cobros (slot budget.detail.sidebar rellenado por payments), totales (subtotal, descuento, IVA, total), info (número, versión, validez, creador, plan asociado).
  • Estado del presupuesto — chip de color en la cabecera. Las acciones disponibles dependen del estado.
  • Versionado. Cada renegociación crea una versión nueva enlazada con parent_budget_id; el historial se ve desde Historial de versiones.
  • Firma y PDF. Un presupuesto aceptado guarda la firma (BudgetSignature) y un PDF firmado con su SHA-256 como sello anti-manipulación. Hay dos descargas: PDF sin firmar y PDF firmado.
  • Crear factura. Si el presupuesto está aceptado y aún tiene ítems sin facturar, aparece el botón Crear factura que lleva a /invoices/from-budget/{id}.

Editar líneas

Requiere budget.write y que el presupuesto esté en draft.

  1. Pulsa Editar sobre la línea o Añadir ítem abajo de la tabla.
  2. Cambia ítem del catálogo, diente, superficies, cantidad, descuento o IVA. Los totales se recalculan al guardar.
  3. Al guardar se publica un budget.updated lógico interno (no evento aún), pero el invariante de totales se reescribe en el backend.

Enviar al paciente

Requiere budget.write.

  1. Pulsa Enviar al paciente. El presupuesto pasa a sent, se genera un código público y se envía el correo.
  2. Se publica budget.sent para que módulos de comunicación puedan complementar el envío.
  3. La barra lateral muestra entonces la tarjeta del enlace público con el código de verificación.

Aceptar o rechazar

Requiere budget.write para aceptar online, budget.accept_in_clinic para aceptación firmada en tablet.

  1. Aceptar (online) — usado cuando el paciente acepta por el enlace público. La aceptación crea una BudgetSignature y un PDF firmado. Publica budget.accepted.
  2. Aceptar en clínica — botón solo visible con permiso. Abre el modal de firma en tablet (firma dibujada). Mismo resultado que la aceptación online.
  3. Rechazar — registra motivo y publica budget.rejected.

Renegociar

Requiere budget.renegotiate.

  1. Pulsa Renegociar. Crea una nueva versión enlazada con la actual; la antigua queda como histórica.
  2. Edita ítems y guarda. Publica budget.renegotiated.

Reenviar (nueva versión de un presupuesto finalizado)

Requiere budget.write. Solo visible con el presupuesto en estado rechazado, caducado o cancelado.

  1. Pulsa Reenviar. Se crea un borrador nuevo (versión +1) con las mismas líneas y un enlace público nuevo, y la pantalla navega a él.
  2. El plan de tratamiento vinculado pasa automáticamente a la nueva versión (evento budget.superseded); su estado no cambia.
  3. Edita el borrador si hace falta y envíalo al paciente. Si el plan estaba cerrado por rechazo del paciente y el paciente acepta esta nueva versión, el plan se reactiva solo a En curso.

Permisos

Lo que ves / puedes hacerPermiso
Ver detalle, líneas, historial de versiones, descargar PDFbudget.read
Editar líneas, enviar, aceptar online, rechazar, cancelar, duplicar, reenviarbudget.write
Aceptar firmando en clínicabudget.accept_in_clinic
Renegociar (crear nueva versión)budget.renegotiate
Borrarbudget.admin

Resolución de problemas

  • No veo el botón Crear factura. El presupuesto no está aceptado (estado válido: accepted), o ya hay una factura no cancelada, o todos los ítems se facturaron ya (invoiced_quantity == quantity).
  • No puedo editar líneas. El presupuesto ya no está en draft. Para cambiar precios o cantidades de un presupuesto enviado/aceptado debes renegociar (requiere budget.renegotiate).
  • No aparece la tarjeta de cobros. El módulo payments no está instalado. La columna lateral muestra solo totales e info.
  • El PDF firmado da 404. El presupuesto no está aceptado todavía. El PDF firmado solo existe a partir del estado accepted.
  • Una acción ha fallado. El aviso de error muestra el motivo que devuelve el servidor, no un mensaje genérico. Los habituales son Cannot send empty budget (añade al menos una línea), Patient has no email address (rellénalo en la ficha del paciente, o desmarca Enviar por email y márcalo como entregado en mano) y Cannot send budget from status 'sent' (ya se había enviado — recarga la página).