Agency Flow · Prezentare de flux
D · Fixed cost + fee — primul profit din familia supplier
Fluxul C, plus un singur parametru: un fee lunar fix peste costul furnizorului. Factura clientului e derivată (cost + fee, o singură sumă), profitul e exact fee-ul, iar clientul nu vede niciodată split-ul.
O singură dată · la vânzarea serviciului
Setup: cost + fee, ambele fixe
Account manager1 august · automat
Perioadă ready + linia cu fee
Engine
Totul e fix din setup → perioada se naște ready, ca la C. Linia de cost
materializată poartă de data asta și unit_fee — iar
client_amount-ul ei e suma combinată.
1 septembrie + la sosirea facturii Webify
Cele două facturi — și ce vede fiecare parte
Finance modulul Billing — urmeazăFactura clientului (AR — Accounts Receivable) arată o singură linie de 2.400 — niciodată 2.000 + 400. Factura furnizorului (AP — Accounts Payable) sosește pe 2.000 și se leagă de linia de cost. Diferența dintre ele — fee-ul — e profitul, vizibil doar intern.
| linie | amount | TVA 21% | total |
|---|---|---|---|
| Northwind Retail — Data — Analytics — Webify · aug | 2.400,00 | 504,00 | 2.904,00 |
unit_cost, unit_fee), iar factura client primește doar totalul.
service_billing_period — ce se scrie și ce se actualizează
D se naște ready — cost + fee, ambele fixe din setup. Clientul vede doar suma combinată; split-ul trăiește în snapshot-uri.
input_* rămân NULL — nu aparțin lui D (cost + fee sunt fixe din setup). Engine-ul
materializează 1 linie în service_cost_line (fixed_supplier, qty 1,
unit_cost = supplier_cost, unit_fee = fee).
supplier_cost/fee în
setup NU atinge lunile cu ready_at setat — doar lunile viitoare / reopen.
service_cost_line — linia materializată de engine
La D, engine-ul materializează o singură linie/lună care poartă atât costul cât și fee-ul; clientul vede doar suma combinată, dar split-ul unit_cost vs unit_fee trăiește pe linie. Ancoră AP.
fixed_supplier poartă tot: cost + fee. supplier_cost_amount și
fee_amount sunt derivate din cantitate × preț unitar, iar client_amount e suma lor.
client_amount) — split-ul cost/fee de pe linie e invizibil
pentru el (invariantul 5); linia rămâne ancora AP a facturii furnizorului pe partea de cost
(2.000). Editarea setup-ului pe o lună neînghețată → UPDATE unit_cost/unit_fee
+ amounts.
Simulare · cost + fee → factura derivată
interactiv · doar vizual
Totul se decide la setup: muți costul furnizorului și fee-ul, iar restul cascadează
automat. Factura clientului nu se introduce niciodată — e mereu cost + fee, o singură
sumă. Profitul e exact fee-ul (labour 0), iar linia de cost se naște direct ready.
Nimic nu se salvează — e o schiță.
| line_type | qty | unit_cost | unit_fee | client_amount | state |
|---|---|---|---|---|---|
fixed_supplier |
1 | 2.000 | 400 | 2.400 | ready |
fee e derivata reală de profit a lui D și e singurul tip supplier
„fix" cu marjă: mută fee-ul la 0 și profitul dispare, deși costul rămâne acoperit integral.