Skip to main content

Proposals & Invoices · Article 5.3

Eine Änderung erstellen (der 4-Schritte-Assistent)

Der Änderungs-Assistent unter `/proposals/{id}/amend` führt Sie durch Positionen, Begründung, Vorschau und E-Mail – in dieser Reihenfolge. Fünf Minuten für eine einfache Änderung, zehn Minuten für eine komplexe. Der Kunde sieht nichts, bis Sie in Schritt 4 auf „Senden" klicken.

Der Assistent öffnet sich mit dem aktuellen effektiven Umfang als Ausgangspunkt – das sind die ursprünglichen Positionen, wenn vorher keine Änderung unterzeichnet wurde, oder die Positionen aus der zuletzt unterzeichneten Änderung, wenn Sie eine Kette bilden (Artikel 7.6). Sie bearbeiten, formen, fügen hinzu oder entfernen Positionen in Schritt 1; erklären das Warum in Schritt 2; überprüfen den gerenderten Nachtrag in Schritt 3; und gestalten die E-Mail in Schritt 4. Alles vor der Schaltfläche „Senden" in Schritt 4 ist privat für Sie.

Quick visual tour

  1. creating-an-amendment step 1: Eine Klausel entdeckt, die in einem unterzeichneten Angebot geändert werden muss?

    Step 1: Eine Klausel entdeckt, die in einem unterzeichneten Angebot geändert werden muss?

  2. creating-an-amendment step 2: Klicken Sie auf „Ändern" beim Angebot – der Änderungs-Assistent öffnet sich.

    Step 2: Klicken Sie auf „Ändern" beim Angebot – der Änderungs-Assistent öffnet sich.

  3. creating-an-amendment step 3: Bearbeiten Sie die geänderten Positionen. Drei hervorgehobene Balken zeigen das Delta.

    Step 3: Bearbeiten Sie die geänderten Positionen. Drei hervorgehobene Balken zeigen das Delta.

  4. creating-an-amendment step 4: Senden Sie die Änderung. Der Kunde erhält eine neue Unterzeichnungsanfrage per E-Mail.

    Step 4: Senden Sie die Änderung. Der Kunde erhält eine neue Unterzeichnungsanfrage per E-Mail.

  5. creating-an-amendment step 5: Der Kunde unterzeichnet die Änderung – Sie sind beide wieder auf dem gleichen Stand.

    Step 5: Der Kunde unterzeichnet die Änderung – Sie sind beide wieder auf dem gleichen Stand.

Step by step

  1. Schritt 1: Positionen.

    Originalpositionen erscheinen in der oberen Hälfte, gesperrt und abgedimmt. Ihre editierbare überarbeitete Liste erscheint unten. Jede Zeile erhält ein farbiges Symbol – grün + hinzugefügt, gelb ~ geändert, rot − entfernt, grau gleich – damit Sie (und der Kunde in der Diff-Ansicht) auf einen Blick sehen, was sich geändert hat. Das Anzahlungskontext-Banner auf der rechten Seite zeigt: Anzahlungs-% aus dem ursprünglichen Vertrag, eingezogene Anzahlung in Geld und den neuen amount_due (oder Rückerstattung, bei Δ_REFUND). Der Assistent berechnet nach jedem Tastendruck neu.

  2. Schritt 2: Begründung.

    Ein kurzes Textfeld. Mindestens 10 Zeichen für Δ+ / Δ=0, 30 Zeichen bei Umfangsreduzierung (Δ− / Δ_REFUND) – das längere Minimum ermutigt Sie, die Begründung für jede Reduzierung aufzuzeichnen, da dies der Fall ist, der am ehesten später hinterfragt wird. Die Begründung erscheint wortgetreu auf dem Nachtrag-PDF und in der Diff-Ansicht des Kunden.

  3. Schritt 3: Vorschau.

    Der Assistent rendert das Nachtrag-PDF spontan über einen /preview-pdf-Endpunkt und bettet es in einen iFrame ein. Lesen Sie es. Überprüfen Sie, ob Positionen, Summen, Umsatzsteueraufschlüsselung und Begründung korrekt aussehen. Bestätigen Sie das Zustimmungs-Kästchen ("Ich habe das gerenderte PDF geprüft und bestätige, dass es die Änderung korrekt wiedergibt") – Senden ist deaktiviert, bis Sie dies getan haben. Jede von Ihnen vorgenommene Bearbeitung sendet Sie zurück zu Schritt 1 und macht die Zustimmung ungültig (Sie kreuzen sie erneut an).

  4. Schritt 4: E-Mail-Verfasser.

    Vorausgefüllter Betreff und Text in der Sprache des Angebots; beide bearbeitbar. Der Empfänger ist standardmäßig die hinterlegte E-Mail des Kunden, kann aber überschrieben werden (z. B. für einen alternativen Unterzeichner). Klicken Sie auf Änderung an Kunden senden, um die E-Mail auszulösen und die Änderung vor weiteren Bearbeitungen zu sperren.

Der Assistent nimmt den gesamten Bildschirm ein, mit einer vierstufigen Fortschrittsleiste oben. Das Anzahlungskontext-Banner bleibt in Schritt 1 fixiert. Fehler (z. B. „Begründung muss ≥ 30 Zeichen haben" bei Δ−) erscheinen direkt oben im betreffenden Schritt. Nach dem Senden werden Sie zu /proposals/{id} weitergeleitet, wo die Änderung in einem „Ausstehende Änderung"-Panel mit Countdown, Link-Kopieren-Schaltfläche und einer Schaltfläche „Stornieren" erscheint.

Why this works this way

Der Assistent erstellt (oder setzt fort) automatisch eine ProposalAmendment-Entwurfszeile, wenn Sie zum ersten Mal über Schritt 1 hinausgehen. Von da an patcht jede Navigation zwischen Schritten den Entwurf auf dem Server mit den aktuellen Positionen und der Begründung. Das bedeutet, dass das Schließen des Browsers mitten im Assistenten niemals Arbeit verliert – öffnen Sie /proposals/{id}/amend erneut und Sie landen wieder dort, wo Sie aufgehört haben.

Ein subtileres Implementierungsdetail: Der Assistent erstellt eine „Vorschau"-Schlussrechnung, die mit dem Änderungsentwurf verknüpft ist, mit status=cancelled (nicht aktiv). Der Status wechselt nur in dem Moment zu active, wenn der Kunde unterzeichnet, was dann upsert_pending_invoice_for_amendment zu process_amendment_signed macht. Zwei Konsequenzen: 1. Ihr INV-2026-NNNN-Zähler wird beim Erstellen des Entwurfs erhöht (die Nummer ist reserviert). Wenn Sie den Entwurf stornieren, bleibt die Nummer in Ihren Büchern als stornierte Zeile – das ist normal und entspricht dem, wie deutsche Steuerberater nummerierte Stornierungen im Prüfprotokoll erwarten. 2. Die Vorschau-iFrame in Schritt 3 rendert gegen diese Vorschaurechnung – es ist das exakte PDF, das der Kunde erhält, also entspricht das, was Sie sehen, dem, was der Kunde erhält.

Wenn sich das übergeordnete Angebot im Status in_work befindet (Anzahlung geleistet, Projekt läuft), zeigt Schritt 1 zusätzlich zum Positionseditor eine rote Schaltfläche „Alles erstatten" an – durch Anklicken wird jede Positionsmenge auf 0 gesetzt, revised_total auf 0 getrieben, und bei Kundenunterzeichnung gibt die Kaskade in process_amendment_signed Storno + Berichtigung der Anzahlungsrechnung + Gutschrift aus und löst die Stripe-Rückerstattung aus. Dies ist der einzig legitime Weg, eine in_work-Anzahlung zu erstatten; direktes DELETE auf dem Angebot wird mit HTTP 409 in_work_requires_amendment abgelehnt (gemäß [D-125]).

Troubleshooting

Keep reading