Agency Flow · Prezentare de flux
E · Variable cost — prima intrare lunară manuală
Pass-through ca la C, dar costul variază — și cineva trebuie să-l introducă în
fiecare lună. Aici debutează specialistul ca actor lunar și coloana
input_supplier_cost. Și tot aici se vede cel mai limpede
lifecycle-ul: perioada așteaptă un om.
O singură dată · la vânzarea serviciului
Setup: zero parametri de preț
Account managerE e singurul tip single-supplier fără tabel de pricing: nu există nimic de fixat la setup în afară de furnizor. Drawerul arată doar un text explicativ — „costul se introduce lunar; factura = costul (pass-through, profit 0)".
billing_type de pe părinte e suficient ca discriminator; strategia E nu are parametri de citit.1 august · automat
Perioada se naște și așteaptă
EngineSpre deosebire de C (totul cunoscut) și de A2 (se acumulează singur), perioada E așteaptă o acțiune umană: rămâne în cost_entry, cu toate sumele NULL, până când specialistul introduce costul lunii.
Când sosește cifra de la furnizor · lunar
Specialistul introduce costul
Specialist
Un singur câmp: costul lunii (1.740). La salvare, strategia rulează, linia de cost se
materializează și perioada sare direct în ready — E nu trece prin
awaiting_fee, pentru că nu există fee de așteptat.
input_supplier_cost e scriibil — orice altă coloană input_* = eroare.ready_at se golește), strategia rerulează,
linia se rescrie. După invoiced însă, nimic nu se mai atinge —
doar storno.
1 septembrie + la sosirea facturii Genezio
AR (Accounts Receivable) = AP (Accounts Payable), lună de lună
Finance modulul Billing — urmeazăFactura clientului preia 1.740 din snapshot; factura Genezio se leagă de linia de cost. Istoricul lunilor arată exact variația: 1.520 → 1.890 → 1.740 — fiecare rând înghețat la valoarea lui.
| period | input_supplier_cost | client_amount | state |
|---|---|---|---|
| 2024-06-01 | 1.520 | 1.520 | invoiced |
| 2024-07-01 | 1.890 | 1.890 | invoiced |
| 2024-08-01 | 1.740 | 1.740 | ready |
service_billing_period — ce se scrie și ce se actualizează
E se naște cost_entry gol și AȘTEAPTĂ specialistul; la introducerea costului sare DIRECT în ready (fără awaiting_fee).
cost_entry — nicio sumă până nu intervine specialistul.variable_supplier; net = 0 (pass-through), calculat de DB.cost_entry și golește ready_at; se reconfirmă.service_cost_line — linia materializată de engine
La E, linia NU apare la nașterea perioadei — abia când specialistul introduce costul lunar, engine-ul o materializează și perioada sare în ready. Pass-through: fără fee.
ready, împreună cu perioada, la momentul input-ului — nu la generarea lunii.cost_entry, în pas cu perioada; se reconfirmă.cost_entry FĂRĂ linie — spre deosebire de C/D,
care se nasc cu linia gata. Profit 0 (pass-through), iar linia rămâne ancora AP pentru factura furnizorului.
Simulare · introdu costul lunii
interactiv · doar vizual
Exact cum funcționează E în realitate: specialistul introduce costul furnizorului pe luna curentă,
iar client_invoice = supplier_cost — pass-through, profit 0. Perioada așteaptă omul în
cost_entry, sare direct în ready la confirmare (fără awaiting_fee,
n-are fee de decis) și abia apoi se poate emite factura. Nimic nu se salvează — e o schiță.
| line_type | qty | unit_cost | client | state |
|---|
| period | input_supplier_cost | client_amount | state |
|---|---|---|---|
| 2024-06-01 | 1.520 | 1.520 | invoiced |
| 2024-07-01 | 1.890 | 1.890 | invoiced |
awaiting_fee — nu există fee de decis — și trece direct în ready.
Dacă editezi costul după confirmare, perioada revine în cost_entry și se reconfirmă.