Bizonylat mentése — validáció, kiegyenlítés, import-egyezés

A bizonylat mentésének lépései: összeg-normalizálás, import-sor egyezés, kiegyenlítési korlát, naplószám, közös beszúró út, visszaolvasás, valamint a részletfizetés és a nyitó egyenleg.

A bizonylat mentése (finance/transaction.save) a tételekből számolja a végösszeget, és a közös addTransaction() úton rögzít. A siker csak a visszaolvasott bizonylatra megy ki.

Mentés folyamata

  1. Végösszeg a tételekből (ezres tagolás normalizálása), devizás oldalon is.
  2. Ha banki import-sorból indul: a sor létezik és még nincs könyvelve (error_import_row_missing, error_import_row_booked), és a tételek összege fillérre egyezik a kivonat-sorral (rowAmountParts, importRowBalance; eltérésnél CONFLICT, nincs mentés: error_import_row_balance, error_items_sum).
  3. A kiegyenlített számlák nyitott egyenlege (HUF és deviza) nem léphető túl (getInvoiceSettleRoom; csak hatókörön belüli számla): error_settle_over_open, error_settle_over_open_dev, error_settle_over_total.
  4. Naplószám (generateJournalNo), addTransaction(), visszaolvasás (error_save_not_created).
  5. Import-sorhoz kötés (attachManualTransaction), kiegyenlítések (applySettlements).
  6. Készpénzes HUF pénztárnál 5 Ft-os kerekítési tétel (LABEL_CASH_ROUNDING).

Szerkesztésnél editTransaction() + applySettlements().

Kapcsolódó végpontok

VégpontMűködésJog
cashinstallmentpénztári részletfizetés egy számlára addTransaction()-nel (összeg legfeljebb a nyitott), utána kintlévőség-újraszámoláscore modify + edit + hatókör (számla clientje és a pénztár cége)
settlerate, fxratea fizetés napjára a client árfolyam-forrása szerinti árfolyam és a kiegyenlítés árfolyam-különbözet előnézete (fxSettlementPreview)add vagy edit + hatókör
addlabel, removelabelcímke a bizonylatonedit
openingbalance, openingratenyitó egyenleg bizonylat adott bankszámlára árfolyammal (addTransaction); a záró nap MNB-árfolyamacore jog; hatókör a clientre
form-segédekinvoiceautocomplete, cashregisters, companyaccounts, clientaccounts, journalpreview, companygroup, getDueDate, getTaxDatacore access vagy super admin; hatókör a cégre, ahol van

Adatmodell

A táblanevek a telepítés saját előtagjával állnak az adatbázisban: transaction, transaction_item, transaction_settlement, invoice (kintlévőség), transaction_import_row (a bank/bankimport modellen), label_link, cashregister.

Ismert korlátok

A save csak core modify jogot néz, sem add, sem edit funkciójogot. Az add és az edit kulcs nincs a seedekben, ezért nem super admin usernél a canAction(add) hamis, és az új bizonylat gombja nem jelenik meg.