Megrendelések és rendelés-életciklus – rendszerleírás
A rendelés-táblák, az életciklus állapotai, a teljesítés (kiosztás) lépései, a lista tartalmi szűrése és a sztornó, visszaigazolás, visszatérítés végpontjai.
Áttekintés
A megrendelések listája, részletei, fizetés-visszaigazolás, visszatérítés és sztornó. A rendelés-életciklust a Dlbtorder könyvtár viszi. A táblanevek a telepítés saját előtagjával állnak az adatbázisban.
Adatmodell
| Tábla | Szerep |
|---|---|
order | rendelés-fej: kedvezményezett, számlázott, fizető client, állapot, fizetési mód, összegek |
order_item | tételek listaárral, csomagárral, kedvezményekkel, biztosított mennyiséggel |
order_document | díjbekérő és számla |
Életciklus (Dlbtorder)
Állapotok: draft → pending_payment → paid → provisioned; mellékágon cancelled, failed. Metódusok: preview(), create() (az árat a Dlbtpricing számolja újra), pay(), markPaid(), provision(), refund(), cancel(), issueProforma(), issueInvoice().
A provision(): csomagnál syncClientPlan vagy materialise(..., 'order', false); kiegészítő csomagnál Dlbtresource::grant; egyéb tételnél főkönyv, funkciónál Dlbtentitlement::grant(..., 'order'); kredit-feltöltésnél wallet.
Végpontok
order.list(list): a tartalmi jog szerinti clientekre szűrve (getAllowedCompanyIds); szűrő a cégcsoport és cég pár (order.companies→ közös cégválasztó).order.info(view):getOrder($id, $allowed); a számla-link csakfinance/invoice::listjoggal.order.cancel→Dlbtorder::cancel(id, 'admin');order.confirm→Dlbtorder::markPaid(id, 'manual'), ami a kiosztást is elindítja. Mindkettőcanceljog + tartalmi jog.order.refund(refund+ tartalmi jog):Dlbtorder::refund(id, amount, reason, actor); hibakódokerror_refund_*; a gomb csakfinance/invoice::listjoggal is.
A kulcsok (list, view, cancel, refund, debug) a seedekben nincsenek besorolva.