Proposals & Invoices · Article 5.6
Łańcuchy wielu aneksów: jeden szkic na raz, punkt bazowy = bieżący stan obowiązujący
Oferta może mieć wiele aneksów przez cały swój cykl życia — ale tylko jeden otwarty w danym momencie, a każdy nowy aneks bazuje na najnowszym podpisanym stanie, nie na oryginalnej ofercie. Oto jak łańcuch się trzyma.
Większość ofert ma zero lub jeden aneks. Kilka ma więcej — projekty designerskie, gdzie brief ewoluuje, projekty deweloperskie, gdzie specyfikacja dryfuje, kontrakty retainerowe, gdzie każdy miesiąc to nowy addendum. Clozo obsługuje łańcuchy dowolnej długości, traktując każdy nowy aneks jako deltę wobec najnowszego podpisanego stanu, nie wobec niezmiennego oryginału. Dzięki temu matematyka jest intuicyjna: gdy aneksujesz po podpisaniu poprzedniego aneksu, pracujesz z bieżącą umową, nie z punktem z przeszłości.
Step by step
Zajrzyj na stronę szczegółów oferty.
Poniżej listy rozwijanej Dokumentów sekcja Aneksy wymienia każdy aneks do oferty w kolejności chronologicznej, ze statusem (podpisany / odrzucony / anulowany / wygasły), numerem sekwencyjnym, datą podpisania i bezpośrednim linkiem do PDF addendum.
Otwórz kreator dla nowego aneksu.
Z panelu Akcje
/proposals/{id},Zaproponuj zmianę zakresu. Kreator sprawdzahas_signed_amendmenti wstępnie ładuje najnowszy podpisany zakres jako punkt bazowy.Edytuj, wyślij, podpisz jak zwykle.
Przepływ jest identyczny jak przy aneksie po raz pierwszy z perspektywy freelancera. Klient widzi różnicę wobec najnowszego podpisanego stanu, nie wobec oryginalnej oferty.
Po podpisaniu łańcuch się wydłuża.
Zmieniony zakres nowo podpisanego aneksu staje się punktem bazowym dla dowolnego przyszłego aneksu. Lista rozwijana Dokumentów dostaje nowy PDF addendum (AMD-NNNN-vN), nową aktywną FakturaKońcową (z inkrementowaną wersją) i nową Stornorechnungową dla poprzedniej aktywnej faktury.
Przejrzysta sekcja Aneksy na stronie szczegółów oferty enumerująca łańcuch. Każdy wiersz jest niezależny: własny status, własne dokumenty, własna ścieżka audytu. „Bieżący obowiązujący zakres" to zawsze zmieniony stan najnowszego podpisanego aneksu; pozycje oryginalnej oferty są zachowane w proposal.line_items (niezmienne zgodnie z [D-086]), ale tylko zmieniony stan napędza faktury i łączne w przyszłości.
Why this works this way
Trzy zasady rządzą łańcuchem:
1. Jeden otwarty na raz. Ograniczenie DB (uniq_open_amendment_per_proposal z warunkiem status IN (sent, viewed)) egzekwuje to na warstwie danych. Kreator egzekwuje to na warstwie UI, kierując Cię do Wznów szkic, jeśli szkic już istnieje. Jeśli próbujesz sporządzić drugi aneks, gdy inny oczekuje na podpis klienta, API zwraca 409 open_amendment_exists. Żeby rozpocząć nowy aneks, poprzedni musi przejść do stanu terminalnego: signed, declined, cancelled lub expired.
2. Punkt bazowy = bieżący obowiązujący zakres. Gdy otwierasz kreator dla nowego aneksu do oferty, która ma już podpisane aneksy, Krok 1 pokazuje pozycje z najnowszego podpisanego aneksu jako zablokowaną kolumnę „Oryginał" — nie pozycje z oryginalnej oferty. API udostępnia to przez proposal.has_signed_amendment i proposal.revised_line_items; kreator frontendowy przełącza się na nie, gdy są obecne.
3. Zaliczka kotwi do oryginału. Nawet po wielu podpisanych aneksach, obliczenie zaliczki używa pierwszego łącznego (parent.total_amount), nie najnowszego zmienionego łącznego. Jest to celowe zgodnie z [D-086]: zaliczka była opłacona wobec konkretnej kwoty; nie zmienia skali wstecz. Banner kontekstu zaliczki kreatora to odzwierciedla — € zaliczki pozostaje stała w całym łańcuchu, nawet gdy zmieniony łączny się przesuwa.
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.