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
- Végösszeg a tételekből (ezres tagolás normalizálása), devizás oldalon is.
- 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élCONFLICT, nincs mentés:error_import_row_balance,error_items_sum). - 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. - Naplószám (
generateJournalNo),addTransaction(), visszaolvasás (error_save_not_created). - Import-sorhoz kötés (
attachManualTransaction), kiegyenlítések (applySettlements). - 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égpont | Működés | Jog |
|---|---|---|
cashinstallment | pénztári részletfizetés egy számlára addTransaction()-nel (összeg legfeljebb a nyitott), utána kintlévőség-újraszámolás | core modify + edit + hatókör (számla clientje és a pénztár cége) |
settlerate, fxrate | a 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, removelabel | címke a bizonylaton | edit |
openingbalance, openingrate | nyitó egyenleg bizonylat adott bankszámlára árfolyammal (addTransaction); a záró nap MNB-árfolyama | core jog; hatókör a clientre |
| form-segédek | invoiceautocomplete, cashregisters, companyaccounts, clientaccounts, journalpreview, companygroup, getDueDate, getTaxData | core 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.