Számla törlése — csoportosítás, tiltó okok, jogok

A végleges és a státusz alapú törlés végpontjai, a bizonylat-csoportok, a tiltó okok, az árva dokumentumok kezelése és a jogkulcsok.

A számla modul kétféle törlést ad: fizikai törlést (delete) és kukába helyezést (status = 9). Mindkettő ugyanazzal a csoportosító és tiltó logikával dolgozik.

Bizonylat-csoportok

A kijelölt számlák csoportokba rendeződnek: a számla és a ráépülő kamat- és költségátalány-bizonylatai (getDependentInvoiceIds). Ha a csoport bármely tagja nem törölhető, a csoport egyik tagja sem törlődik.

Végleges törlés (finance/invoice.delete)

  1. Jog: 1 elemnél canAction(delete), több elemnél canBulkAction(delete) (→ bulkdelete); csak hatókörön belüli számla (invoiceInScope).
  2. Tiltó okok (invoiceDeleteBlocker): pénzügyi teljesítés (transaction::getSettledInvoiceIds), sorszámozott számla, könyvelési tétel (entry), státusz > 2.
  3. deleteInvoice(): fej, tételek, NAV-vezérlő sor, dokumentum-linkek, könyvelési dátum, napló; az OTP-kelfo import-fájl státusza 0-ra áll.
  4. Árva dokumentumok a invoice_doc_delete beállítás szerint: ask (a válasz orphan_docs listát ad), delete (Dlbtdocstore::purgeDocument()), keep; csak document/document::delete joggal.
  5. Válasz: sikeres és sikertelen darabszám, okokkal.

Kukába helyezés (statusdisable) és visszaállítás (statusenable)

A csoportosítás ugyanaz; tiltó ok a pénzügyi teljesítés és a sorszámozott számla. Ha nincs tiltó ok: updateInvoiceStatus(id, 9). Visszaállításkor a státusz 2-re áll.

A statusdisable az edit jogot kéri és canBulk(statusdelete, db)-t; ez egy elemnél mindig igaz, ezért egyetlen számla kukázásához a kódban elég az edit jog, a statusdelete nem kell. A statusenable csak edit jogot és hatókört néz.

Érintett táblák

A táblanevek a telepítés saját előtagjával állnak az adatbázisban: invoice, invoice_item, invoice_ctrl, doc, doc_link; modellek: finance/transaction, finance/entry, files/otpkelfo, document/document.

Jogkulcsok

KulcsBesorolásHatás
deleteBASEvégleges törlés egy elemre (sor-menü, radír ikon)
bulkdeleteBASEvégleges törlés 2+ elemre (fejléc kuka)
statusdeleteBASEkukába helyezés (gyakorlatban több elemnél kérdezi)
bulkstatusdeleteBASEcsoportos kukába helyezés

A törölt sorokat a lista csak canSeeDeleted() (super admin vagy delete jog) mellett adja vissza.

Kapcsolódó témák: számla kuka jogosultság