Jednoduché účtovníctvo a podporné agendy
Aplikácia Peňažný denník (obrazovky) vznikla v roku 1994, ktorá bola postupne upravovaná a rozširovaná. Okrem vedenia peňažného denníka obsahuje moduly:
- pohľadávky a záväzky
- DPH
- Drobný a Investičný majetok
- Kniha jázd, cestovné príkazy
- Skladová evidencia
- Fakturácia
- Mzdy
Užívateľské rozhranie
Takéto programové rozhranie (obrazovky) som štandardne používal vo FoxPro programoch.
Spôsob programovania / RAD návrh
Z prostredia FoxPro som rutinne využíval generátory obrazoviek, reportov a menu. Množstvo funkcií ktoré si vyžadovala aplikácia však neexistovali alebo nevyhovovali používateľom.
Počas programovania aplikácií v prostredí FoxPro som si vytvoril systém knižníc a postupov ktoré som popísal v diplomovej práci.
Štatistiky
DBF súbory | | 36 tabuliek pre aplikačné dáta, 7 systémových tabuliek |
súbory s kódom | | 427 spolu (z toho 120 obrazoviek) |
reporty | | 70+ |
Keďže sa jedná o NOSql databázu - (postavená na zdieľanom súborovom systéme a DBF/CDX súboroch), pozornosť bola venovaná "robustnosti" aplikácie.
Niekoľko poznámok k architektúre aplikácie "Denník podnikateľa"
Relácie (referenčná integrita) medzi tabuľkami sú zabezpečené využitím primárneho a cudzieho kľúča (PK/FK). V niektorých prípadoch je použitý kompozitný kľúč. (pohyb peňazí sa robí proti "entite" ktorá má PK Typ+Poradie, napr. P02 je jednoznačný identifikátor pre pokladňu 2).
V systéme FoxPro je nutné zabezpečiť celú funkcionalitu programovo. viac DB detailov ▼
- V prípade relácie 1:N je programovo zabezpečené že v prípade vymazania "master" záznamu sú príslušné "detail" záznamy vymazané ako prvé.(FoxPro - ukážka kódu). Vzhľadom k tomu že nie sú podporované transakcie, nie je na 100% garantovaná atomicita tejto operácie. Návrh aplikácie umožňuje zopakovanie operácie mazania kaskádových záznamov v zriedkavom prípade neukončenia transakcie.
- K primárnemu kľúču je vytváraný zodpovedajúci index (z výnimkou "malých" tabuliek).
Riešenie konzistentnosti/'duplicty' dát
- Návrh aplikácie v niektorých prípadoch umožňuje uchovávanie dát v Prvej normálnej forme (1NF) pre atribúty ktoré sú informatívneho charakteru (napr. telefónne čísla, kontaktné osoby, poznámka).
- S pohľadu návrhu aplikácie sa ukázalo užitočné uchovávať niektoré relácie v Druhej normálnej forme (2NF). Napríklad v prípade faktúr je adresa odberateľa (nekľúčové atribúty) kopírovaná zo zoznamu odberateľov do tabuľky "hlavička faktúry" ("duplicitná" relácia typu N:1 je stále zachovaná). Tento spôsob sa ukázal jednoduchší a praktickejší pre návrh aplikácie.
- Výhoda uchovávania údajov v 2NF sa prejaví v prípade, ak budú údaje (napr. adresa) v tabuľke odberateľov zmenené alebo bude záznam vymazaný. V tomto prípade zostáva pôvodný doklad faktúry konzistentný.
- Ďalší scenár keď je potrebné previesť zdrojové dáta do 2NF je vytvorenie zostavy ktorá obsahuje sekciu SubTotal.
Treba dodať že je v aplikácií je prísne kontrolovaný smer prenosu údajov (batch procesy-generovanie údajov z doplnkových agiend a zápis do DPH/Pohľadávok/Denníka). Spôsob návrhu zabezpečuje, že užívateľ si neprepíše raz vygenerované údaje. Tu sa tiež ukázalo praktickejšie uchovávať niektoré atribúty v 2NF.
Relácie ktoré sú kľúčové pre korektnosť dát spĺňajú požiadavky Tretej normálnej formy (3NF).
Samostatnou kapitolou je spôsob prenosu dát (FoxPro - ukážka kódu ) z doplnkových evidencií do peňažného denníka. V tomto prípade sa striktne rozlišuje zmena údajov od pridania/zmazania dokladu.
Je možné, že si užívateľ vytvorí duplicitný záznam v denníku ak využije automatické generovanie dokladov a následne si manuálne vloží údaje toho istého dokladu do denníka. Aj na tento prípad program pamätá a umožňuje spustiť
kontrolu duplicitných dokladov (FoxPro - ukážka kódu) ktorá identifikuje potenciálne duplicitné doklady na základe zhody kľúčových údajov (napr. duplicitný kľúč dátum+suma bude označený ako potenciálne duplicitný doklad).
DB systém FoxPro nerieši problematiku kontroly prístupu k údajom (bezpečnosť dát). V aplikácií je možné požadovať zadanie mena/hesla (autentifikácia) pri otvorení aplikácie. Následne je kontrolovaný prístup k jednotlivým funkciám a operáciám nad dátami (autorizácia).
- heslá sú ukladané ako výstup dvoch rôznych "hashovacích" funkcií, takže nie je možné spätne uhádnuť heslo z údajov v DBF súbore
- súčasťou kódu je kontrola či má používateľ oprávnenie vykonať požadovanú operáciu
- Na úrovni používateľa (presnejšie spustenej aplikácie) je zaznamenávané či bola aplikácia ukončená korektne. Ak nie, bude pri novom štarte vynútená aktualizácia indexových (CDX) súborov.
Zabezpečenie je implementované na programovej úrovni a používateľ má jednoduchý prístup k DBF súborom. Reálna bezpečnosť dát musí byť zabezpečená na úrovni operačného systému.
Prevádzka systému v sieti a viacužívateľský prístup
Na prevádkovanie systému v sieti je potrebné zabezpečiť prístup k zdieľanému diskovému priestoru. Súbory DBF a CDX sú opakovane aktualizové z klientskych aplikácií.
- prostredie FoxPro podporuje optimistické a pesimistické zamkínanie záznamov pre štandardské operácie (pridanie a editácia záznamov)
- v prípade administátorských operácií sa využíva výhradný prístup jedného používateľa