Featured

Címke rendszer – Rendszerleírás

A címke-rendszer teljes működése: adatmodell (label, label_description, label_link, label_rule, label_action), a handler (Type action) értékek, a connector-párosítás (value_norm), a jelenlegi/tervezett actionök, a továbbszámlázás integráció, jogosultságok és a dlbtlabel motor.

A címke- (label-) rendszer egy általános jelölő- és akció-keret: bármely objektumhoz (számla, tétel, cég, szerződés) címkék rendelhetők, a címke handler-e (Type action) pedig meghatározza a viselkedést. A motor a dlbtlabel rendszer-könyvtár.

1. Adatmodell (táblák és kapcsolatok)

TáblaSzerepFő mezők
doliBIT_labelcímke-fej (törzs)label_id, group_key, code, color, icon, value_type, ref_object_type, is_multi, handler, status
doliBIT_label_descriptionnyelvfüggő névlabel_id, language_id, name
doliBIT_label_linkcímke ↔ objektum kötéslink_id, label_id, object_type, object_id, value_text/int/date, value_norm, source (manual/rule/import), action_state (none/pending/done/error)
doliBIT_label_ruleautomatikus címkézési szabályrule_id, label_id, feltételek
doliBIT_label_actioncímkéhez rendelt akció-definícióaction_id, label_id, action_type (kontir/email/generate_voucher/status_set/webhook), params_json, run_mode (sync/queue)

Kapcsolat: label 1—N label_description (nyelvenként), 1—N label_link (előfordulások az objektumokon), 1—N label_rule és 1—N label_action. A label_link.value_norm a normalizált érték, ez a párosítás (connector) kulcsa.

2. Handler (Type action) értékek

A doliBIT_label.handler (a form "Type action" mezője, VARCHAR(32)) dönti el, mit tesz a rendszer a címkéből képzett/kapott linkkel:

handlerViselkedésÁllapot
'' (default) / noteegyszerű jelölőkiépítve
connectorösszekötő címke (chip + idővonal); value_norm alapján párosítkiépítve
ignorenem hoz létre linket / figyelmen kívül hagykiépítve
parse_address / parse_bank / parse_vehicle / parse_perioda NAV additional értéket strukturált adattá alakítjakiépítve
passthroughtovábbszámlázás-trigger: a connector-párosítás után a bérleti szerződés szerint kimenő számlát készítkiépítve (jelen fejlesztés)

3. Connector mechanizmus

A címke felkerülésekor a link value_norm mezőjébe a normalizált érték kerül (dlbtlabel::normalizeValue: text/int/ref/date szerint). A getConnectorLinks(label_id, value_norm) az azonos normalizált értékű linkeket adja vissza több objektum-típuson át – így egy számla és egy ingatlan "összeér", ha ugyanaz a value_norm szerepel mindkettőnél.

4. Címke felkerülése: automatikus és kézi

  • Automatikus: a NAV számla-feldolgozás az additional adatokat a dlbtlabel::ingestAdditional / classifyAdditional révén címke-linkekké alakítja (a handler szerint).
  • Kézi: a számla-lista invoice.addLabel végpontja a dlbtlabel::addLink(label_id, 'invoice', invoice_id, value, value_type, 'manual') hívással tesz fel címkét (egy vagy több számlára). Idempotens: azonos (címke, objektum, value_norm) nem duplikálódik.

5. Jelenlegi és tervezett actionök

Kiépített (a handler-lánc által): note/connector/ignore/parse_*/passthrough. A doliBIT_label_action tábla (kontir/email/generate_voucher/status_set/webhook) a gazdagabb akció-réteg sémája, amelynek közös dispatch-e (a link action_state='pending' → futtató) még nincs bekötve – a jövőben minden action egy közös futtatón haladhat, a passthrough ugyanezzel a logikával.

6. Továbbszámlázás integráció

A funkció a címkében van paraméterezve (handler=passthrough), a bérlő/felár/draft-live a szerződésen. Lánc:

ElemSzerep
Címke (handler=passthrough)a továbbszámlázás triggere
doliBIT_property.label_id + match_valueaz ingatlan connector-címkéje és azonosító értéke
doliBIT_contract.passthrough_enabled / passthrough_mode / passthrough_markup / property_ida bérlemény: bérlő, draft/éles, felár
doliBIT_contract_passthroughdedup/munkalista (egy költségszámla egyszer)
cron: contract_passthrough_scan → contract_passthroughscanner (párosít + sorba tesz) és processzor (draft kimenő számla)

A scanner csak akkor indít a connector-címke alapján, ha a címke handler='passthrough' (a lease-lekérdezés JOIN-olja a doliBIT_label-t). A processzor a catalog számla-modellel készít számlát (a cron-kontextusban az admin modell nem tölthető), és a NAV-osához hasonlóan lépésenként naplóz.

7. Jogosultságok

A címke-törzs a extension/dolibit/masterdata/label route funkciójogaihoz kötött (list/edit/delete). A számlához rendelés a számla-modul navdata funkciójogát igényli, és a tartalmi hatókört (invoiceInScope) is ellenőrzi. A rendszergazda mindent lát.

8. Motor és függőségek

A központi könyvtár a system/library/dlbtlabel (Dlbtlabel): normalizeValue, ensureLabel, addLink, ingestAdditional, classifyAdditional, getConnectorLinks, getLinksForInvoice. Függőségek: NAV számla-feldolgozás (additional → linkek), számla-modul (kézi címkézés + továbbszámlázott számla létrehozása), szerződés/ingatlan törzs (passthrough), cron-queue (aszinkron futtatás).