Odvěký problém, který nebyl nikdy elegantně vyřešen.
Všechny bankovní balíčky, se kterými jsem pracoval, ukládají zůstatek u účetní jednotky. Počítat to za běhu z historie pohybu je nemyslitelné.
Správný způsob je:
- Tabulka pohybu obsahuje pro každý účet transakci „otevřený zůstatek“. Budete to potřebovat za několik let, až budete potřebovat přesunout staré pohyby z aktivní tabulky pohybu do tabulky historie.
- Účet má pole zůstatku
- Na tabulce pohybu je spouštěč, který aktualizuje zůstatky na účtech připsaných a odepsaných. Je zřejmé, že má kontrolu závazků. Pokud nemůžete mít spouštěč, pak musí existovat jedinečný modul, který zapisuje pohyby pod kontrolou závazku
- Máte program „bezpečnostní sítě“, který můžete spustit offline, který přepočítává všechny zůstatky a zobrazuje (a případně opravuje) chybné zůstatky. To je velmi užitečné fortestování.
Některé systémy ukládají všechny pohyby jako kladná čísla a vyjadřují kredit/debet invertováním polí z/do nebo pomocí příznaku. Osobně preferuji kreditní pole, debetní pole a podepsanou částku, díky tomu je mnohem snazší sledovat změny.
Všimněte si, že tyto metody platí jak pro hotovost, tak pro cenné papíry.
Transakce s cennými papíry mohou být mnohem složitější, zejména pro podnikové akce, budete muset přizpůsobit jedinou transakci, která aktualizuje hotovostní zůstatky jednoho nebo více kupujících a prodávajících, zůstatky jejich cenných papírů a případně makléře/depozitáře.