Proposals & Invoices · Article 5.6
Cadenas de múltiples enmiendas: un borrador a la vez, línea base = estado efectivo actual
Una propuesta puede tener muchas enmiendas a lo largo de su vida — pero solo una abierta en un momento dado, y cada nueva enmienda toma como base el estado firmado más reciente, no la propuesta original. Así es como la cadena se mantiene coherente.
La mayoría de las propuestas reciben cero o una enmienda. Algunas reciben más — proyectos de diseño donde el briefing evoluciona, proyectos de desarrollo donde los requisitos cambian, contratos de retención donde cada mes es un addendum nuevo. Clozo gestiona cadenas de cualquier longitud tratando cada nueva enmienda como un delta respecto al estado firmado más reciente, no respecto a la propuesta original inmutable. Esto mantiene las matemáticas intuitivas: cuando se enmienda tras una enmienda anterior firmada, se trabaja desde el contrato actual, no desde un punto en el pasado.
Step by step
Consulte la página de detalle de la propuesta.
Debajo del menú desplegable de Documentos, una sección de Enmiendas enumera todas las enmiendas de la propuesta en orden cronológico, con estado (firmada / rechazada / cancelada / expirada), número de secuencia, fecha de firma y un enlace directo al PDF del addendum.
Abra el asistente para una nueva enmienda.
Desde el panel de Acciones en
/proposals/{id},Proponer cambio de alcance. El asistente inspeccionahas_signed_amendmenty precarga el último alcance firmado como línea base.Edite, envíe y firme como de costumbre.
El flujo es idéntico al de una primera enmienda desde la perspectiva del autónomo. El cliente ve un diff respecto al último estado firmado, no respecto a la propuesta original.
Tras la firma, la cadena se extiende.
El alcance revisado de la enmienda recién firmada se convierte en la línea base para cualquier enmienda futura. El menú desplegable de Documentos recibe un nuevo PDF de addendum (AMD-NNNN-vN), una nueva Factura Final activa (con la revisión incrementada) y una nueva Stornorechnung para la factura activa anterior.
Una sección de Enmiendas limpia en la página de detalle de la propuesta que enumera la cadena. Cada fila es independiente: tiene su propio estado, sus propios documentos y su propio registro de auditoría. El «alcance efectivo actual» es siempre el estado revisado de la última enmienda firmada; las líneas de la propuesta original se conservan en proposal.line_items (inmutables según [D-086]) pero solo el estado revisado impulsa las facturas y los totales a partir de ese momento.
Why this works this way
Tres reglas gobiernan la cadena:
1. Una abierta a la vez. Una restricción de base de datos (uniq_open_amendment_per_proposal con condición status IN (sent, viewed)) lo aplica a nivel de datos. El asistente lo aplica a nivel de interfaz redirigiendo a Reanudar borrador si ya existe un borrador. Si intenta crear una segunda enmienda mientras otra está pendiente de firma del cliente, la API devuelve 409 open_amendment_exists. Para iniciar una nueva enmienda, la anterior debe pasar a un estado terminal: signed, declined, cancelled o expired.
2. Línea base = alcance efectivo actual. Cuando abre el asistente para una nueva enmienda en una propuesta que ya tiene enmiendas firmadas, el Paso 1 muestra las líneas de la última enmienda firmada como la columna «Original» bloqueada — no las líneas de la propuesta original. La API expone esto mediante proposal.has_signed_amendment y proposal.revised_line_items; el asistente del frontend los usa cuando están presentes.
3. El anticipo se ancla al original. Incluso después de múltiples enmiendas firmadas, el cálculo del anticipo utiliza el primer total (parent.total_amount), no el último total revisado. Esto es intencional según [D-086]: el anticipo se pagó contra una cifra específica; no se reescala retroactivamente. El banner de contexto del anticipo en el asistente lo refleja — el € del anticipo permanece constante a lo largo de la cadena aunque el total revisado cambie.
Troubleshooting
Keep reading
Proposals & Invoices
Creating an amendment (the 4-step wizard)
The amendment wizard at `/proposals/{id}/amend` walks you through line items, reason, preview, and email — in that order. Five minutes for a simple change, ten minutes for a complex one. The client doesn't see anything until you click Send on Step 4.
Proposals & Invoices
The 4 delta branches: Δ+, Δ−, Δ=0, Δ_REFUND
Every signed amendment falls into one of four branches based on (a) the sign of the cost change and (b) whether the proposal was already paid. Each branch fires a different document chain. This is the central conceptual map for the entire amendment system.
Proposals & Invoices
Why a signed amendment issues two new documents (Storno + new INV)
Every signed amendment that touches the financial side of the contract generates at minimum two new documents: a Stornorechnung (cancellation invoice) for the old final invoice, and a fresh active FinalInvoice with revised numbers. This is required by GoBD §147 AO and parallel EU rules — never an arbitrary Clozo choice.