DEBRECENI EGYETEM INFORMATIKAI KAR
Házipénztár-kezelés implementálása vállalatirányítási rendszerben
Témavezetı:
Készítette:
Dr. Bölcskei András
Virág László
egyetemi docens
Nappali tagozat Programozó matematikus
Debrecen, 2008
Köszönetnyilvánítás
Ezúton
szeretném
megköszönni
mindazoknak,
akik
önzetlenül
segítettek
szakdolgozatom elkészítésében Medveczki Marianna ügyvezetınek és Salga Péter projektigazgatónak, mint külsı konzulenseknek, akik nagyon sok tanáccsal, ötlettettel, szakirodalommal láttak el, valamint folyamatosan ellenırizték munkámat. Bölcskei András tanár úrnak, aki vállalta a belsı konzulens szerepét és alapos odafigyeléssel ellenırizte munkámat.
2
Tartalomjegyzék I. Bevezetés.................................................................................................................................4 II. Házipénztár ............................................................................................................................7 III. Törvényi szabályozások .......................................................................................................8 Pénztári nyilvántartás vezetése...............................................................................................8 A bevételi és a kiadási pénztárbizonylat tartalma ..................................................................9 A bankszámlán történı pénzforgalommal kapcsolatos feladatok ........................................10 Pénzintézeti fizetési módok ..................................................................................................10 IV. Pénzkezelési folyamatok házipénztárban...........................................................................11 Környezet..............................................................................................................................11 Számlatükör......................................................................................................................11 Jogcímek...........................................................................................................................11 Pénztár ..............................................................................................................................12 Pénztárbizonylat rögzítés......................................................................................................12 Pénztárbizonylat javítása ......................................................................................................12 Kimutatások..........................................................................................................................13 V. Adatbáziskezelık aktív tulajdonságai..................................................................................14 1.Triggerek ...........................................................................................................................14 2. Tárolt eljárások .................................................................................................................16 VI. Fejlesztési folyamat............................................................................................................17 Vízesés modell......................................................................................................................17 1. Követelmények meghatározása ........................................................................................18 2. Rendszer és szoftvertervezés ............................................................................................18 A tervezés irányai .............................................................................................................18 Use-case diagram..............................................................................................................19 A táblák részletes bemutatása...........................................................................................21 Aktivitás-diagram .............................................................................................................24 3. Implementáció és egységteszt ..........................................................................................27 4. Integráció és rendszerteszt................................................................................................30 5. Mőködtetés és karbantartás ..............................................................................................31 Törzsadatok ......................................................................................................................32 Pénztárbizonylat mőveletek..............................................................................................34 Kimutatások......................................................................................................................42 Karbantartás......................................................................................................................48 VII. Összefoglalás ....................................................................................................................49 Jegyzetek ..................................................................................................................................50 Irodalomjegyzék .......................................................................................................................51
3
I. Bevezetés
Az elmúlt évtizedekben a számítástechnika rendkívül gyors elterjedésének lehettünk tanúi. Ez egyrészt a nagy ütemő technikai, mőszaki fejlıdésnek volt köszönhetı, másrészt pedig annak a következménye, hogy a felerısödött, felgyorsult piaci és mőszaki változások miatt az információfeldolgozási igények is gyorsan növekedtek a vállalatoknál. Jól mutatja az információ, mint erıforrás jelentıségét az a tény, hogy a vállalatok árbevételüknek átlagosan 2%-át, piacvezetı vállalatok esetében akár 10%-át költik információs rendszerükre évenként. A hatékony és gyors ügyvitel feltétele, hogy a különbözı gazdasági folyamatokhoz tartozó szoftverek kommunikálni tudjanak egymással, képesek legyenek biztosítani a cégen belüli információáramlást, mellyel egyrészt csökkenhetnek az adminisztrációra fordított erıforrások, másrészt a döntési pozícióban levı személyek bármikor reális lépet kaphatnak a vállalkozás állapotáról, mely segíti ıket a hatékony döntéshozatalban. Tehát az ügyvitelben részvevı szoftverek közötti kommunikáció a vállalat mőködésének hatékonyságát nagyban befolyásolja. A vállalati szoftvereket nagyságuk szerint két csoportba sorolhatjuk: az úgynevezett hagyományos ügyviteli szoftverekre és az integrált vállalatirányítási rendszerekre. Jelenleg hagyományos ügyviteli szoftvereket alkalmaznak a kisvállalatok és a középvállalatok többségénél. Ezek a szoftverek a hagyományos ügyviteli feladatok ellátására születtek, elkülönítve az egyes részegységek munkáját. Ezek a szoftverek jellemzıen a következık: könyvelı
szoftverek,
pénzügyi,
bér-munkaügyi,
készletgazdálkodási,
tárgyieszköz
nyilvántartási, kereskedelmi szoftverek. A vállalati méret növekedésével egyidejőleg megnı a vállalatok információs igénye, a feldolgozandó adatok mennyisége, ekkor kerül elıtérbe az integrált vállalatirányítási rendszer. Az integrált vállalatirányítási rendszer legfontosabb tulajdonsága maga az integráltság, vagyis egy gazdasági esemény rögzítésekor elegendı az adatokat egyszer bevinni és ezt az adatot fel tudja használni a rendszer a vállalat bármelyik területén. Felépítésére jellemzı a modularitás, azaz egyes részterületeket lefedı szoftvercsomagok elkülöníthetık modulokra (pl. könyvelés, értékesítés), melyek önállóan is képesek mőködni, így lehetıség nyílik a rendszer fokozatos bevezetésére, melyet segít a szervezési és információtechnológiai
4
tanácsadás, a projekttervezés és megvalósítás, a betanítás. A rendszerek programjait egységes menüfelépítés és áttekinthetı képernyı-kialakítás jellemzi, ami egy felhasználóbarát kezelési módot jelent megkönnyítve a rendszer használatát. Szintén elınyt jelent a rugalmasság, aminek
köszönhetıen
az
egyedi
felhasználói
igényeket
és
a
szakmaspecifikus
követelményeket a rendszer paramétereinek megfelelı beállításával lehet kielégíteni. A hazai piacon harmincnál több hazai fejlesztéső, illetve külföldi rendszer képviselteti magát, ezek közül kell a vállalat vagy intézmény számára a legmegfelelıbbet kiválasztani. A hazai fejlesztéső rendszerek elınye, hogy kimondottan a magyar piac számára dolgozták ki ıket. Nyilvánvalóan nem áll mögöttük olyan know-how és tapasztalat, mint egy nemzetközi cég mögött, de ezt a hátrányt legyızi a piacismeretbıl származó elıny. Ezt az elınyt igyekszik kihasználni a Pannon Szoftver Stúdió, mely több hagyományos ügyviteli szoftver kifejlesztése után egy integrált vállalat irányítási rendszer fejlesztésébe kezdett. A vállalat célja, hogy a rendszer képes legyen minden kereskedelmi, szolgáltatási és termelési folyamatot lefedni, az ügyfelek egyedi ügyviteléhez alkalmazkodva, gyorsítva és követhetıvé téve a napi ügymeneteket. A rendszer moduláris felépítése miatt alkalmas arra, hogy a vállalat fejlıdése esetén folyamatosan bıvítse a rendszerét is, és így egyre több tevékenységi területet fedjen le a szoftverrel. Napjainkban már a cégek pénzforgalmának zöme átutalással, bankokon keresztül zajlik. A kiskereskedelemmel is foglalkozó cégeknél azonban jelentıs a készpénzmozgás. A készpénz kezelésének pedig megvannak a szabályai. A rendes háztartásokban is komoly csoportosítások és nyilvántartások követik nyomon a család készpénzbevételének alakulását. Külön borítékba kerül a rezsire, az élelmiszerekre, a ruhára és az egyéb kiadásokra szánt pénz, a gondos háziasszony pedig kis füzetben vezeti, hogy hol tartanak az adott hónap kiadásai és bevételei. Nincs ez másként a vállalkozások életében sem, hiszen a készpénz kiadása, bevételezése és nyilvántartása törvényileg szigorúan szabályozott. A házipénztár kezelése így minden cégnek kiemelten fontos feladat. Természetes tehát az igény a vállalkozások részérıl, hogy készpénzforgalmuk dokumentálása a hatályos szabályozásnak megfelelıen, és lehetıleg elektronikus formában történjen minden más gazdasági folyamat nyilvántartásával egyetemben.
5
A fenti információk tudatában kezdte meg a Pannon Szoftver Stúdió integrált vállalatirányítási rendszerének fejlesztését, melyben a házipénztár kezelését megvalósító pénztár modul önálló modulként való megvalósítása és integrálása önálló projektként az én feladatom.
6
II. Házipénztár
A pénzkezelés legfıbb pénzügyi feladatai közzé tartozik a forintos házipénztár mőködtetése, valamint szükség esetén devizás házipénztár mőködtetése. A házipénztár a társaság mindenkori forintban meglévı készpénzállományt és az elektronikai pénzeszközök állományát tartalmazza. A házipénztár biztosítja a társaság készpénzforgalmát, bizonylatolja a bevételeket és a kiadásokat. Azokról a gazdasági eseményekrıl, amelyekhez nincs külsı vagy belsı személy által kiállított bizonylat, a pénzkezelınek kell saját szigorú számadás alá vont bevételi, illetve kiadási pénztárbizonylatot kiállítania. A pénzkezeléssel megbízott dolgozó(k) minden pénzmozgáshoz kiállítanak egy pénztári bizonylatot, felmerülésük sorrendjében és a felmerüléssel megegyezı napon. A házipénztár elsısorban a munkavállalókkal szembeni pénzforgalomra használatos, de a vállalkozók egymás közti tartozásokat is rendezhetik pénztáron keresztül. Készpénzes fizetési mód esetén a pénzmozgás irányától függıen, kiadás esetén kiadási, bevétel esetén bevételi pénztárbizonylatot kell képezni. A folyamat hasonló átutalásos fizetési módnál is, ekkor a bankszámlára történı befizetés esetén a banki igazolás képzi a bevételi, illetve kiadási pénztárbizonylat alapját. A házipénztárat hetente vagy kisebb forgalom esetén havonta le kell zárni, eleget téve a számviteli törvény elıírásainak. A pénztári nyilvántartásokat, illetve a pénz meglétét az ügyvezetı bármikor ellenırizheti. Az ellenırzés lehet rendszeres, esetenkénti, szúrópróbaszerő. Az ellenırzés feladata a bizonylatok alaki és tartalmi ellenırzése, valamint a pénztárjelentés helyességének és a kimutatott pénzkészlet meglétének ellenırzése, vagyis a rovancs.
7
III. Törvényi szabályozások
Magyarországon a számviteli, az eredénykimutatás- és mérlegkészítési szabályokat 2001-ig a számvitelrıl szóló, többször módosított 1991. évi XVIII. törvény tartalmazta. 2001tıl azonban teljesen új törvény lépett hatályba: a számvitelrıl szóló 2000. évi C törvény, melyet késıbb módosított az egyes pénzügyi tárgyú törvények módosításáról szóló 2006. évi CXXXI. törvény.
Pénztári nyilvántartás vezetése A pénzkezeléssel megbízott személynek minden pénztári befizetést és kifizetést a felmerülésük sorrendjében pénztári nyilvántartásba kell feljegyeznie. A pénztári nyilvántartás alapbizonylatai bevételezés esetén:
Banki készpénzfelvételt igazoló átvételi elismervény.
Egyéb pénzátvételi elismervény.
Vevıszámla készpénzes kiegyenlítése esetén az arról a vevınek adott nyugta második példánya.
Egyéb bizonylat.
A pénztári nyilvántartás alapbizonylatai a kiadások esetén:
Készpénzfizetési számlák.
Készpénzkiadást igazoló egyéb bizonylatok pl.: kapott nyugták.
Bankszámlára történı befizetés esetén a banki igazolás.
Egyéb bizonylat.
Azon gazdasági eseményekrıl, amelyekhez nincs külsı személy által kiállított bizonylat, a pénzkezelınek kell saját szigorú számadás alá vont bevételi, illetve kiadási pénztárbizonylatot kiállítania. A pénztári bevételeket és kiadásokat a számviteli törvény elıírásainak megfelelıen a pénzkezelı a felmerülésük sorrendjében és a felmerüléssel megegyezı napon a pénztári nyilvántartásba köteles feljegyezni. A pénztári nyilvántartás szigorú számadás alá vont bizonylat, amely formáját tekintve lehet:
Elıre nyomtatott idıszaki pénztárjelentés.
8
Számítógéppel vezetett táblázat.
Egyéb kézzel készített nyomtatvány. Havonta a pénztári nyilvántartást le kell zárni. A pénztárzárlat nyomtatott vagy másolt
formáját a pénzkezelınek alá kell írnia.
A bevételi és a kiadási pénztárbizonylat tartalma A pénztári befizetések és kifizetések csak bizonylatok alapján számolhatók el. A pénztárbizonylatokat
alapbizonylat
(beérkezı
számla,
készpénzjegyzék,
bérjegyzék,
útiköltség elszámolás, szerzıdés, határozat stb.) alapján lehet kiállítani. A pénztárba készpénzt csak a pénzkezelési szabályzatban meghatározott, szabályszerően kiállított bevételi pénztárbizonylat alapján vételezhetnek be. A manuális házipénztár esetén a bizonylattömbök szigorú számadás alá vont nyomtatványok, amelyekrıl olyan nyilvántartást kell vezetni, hogy abból megállapítható legyen, hogy kinél, milyen sorszámú bizonylattömbök vannak használatban, és azokkal mikor számoltak el. Ebben az esetben bevételi pénztárbizonylatot három példányban kell kiállítani. Az eredeti példányt a pénztárjelentéshez vagy a számlához kell csatolni, a második példányt elismervényként a befizetınek át kell adni, a harmadik példányt a tömbben kell hagyni. A bevételi pénztárbizonylatnak az alábbi adatokat kell tartalmaznia:
a bevétel kelte,
a sorszámot és bizonylatszámot,
a befizetett összeget számmal és betővel,
a befizetés jogcímét,
a befizetı nevét,
a számfejtı aláírását, ha van a cégnél ilyen státusz,
az összeg átvételét igazoló pénztárosi aláírást,
a pénztár közelebbi megjelölését, telephelyét (ha több pénztár létezik).
A pénztári kiadási bizonylatot két példányban kell kiállítani. Az eredeti példányt a pénztárjelentéshez vagy a számlához kell csatolni, míg a másolati példány a tömbben marad. A kiadási pénztárbizonylatnak az alábbi adatokat kell tartalmaznia:
a kifizetés kelte,
9
a sorszámot és bizonylatszámot ,
a kedvezményezett nevét, meghatalmazott részére történı kifizetés esetén a meghatalmazott nevét,
a kifizetendı összeget számmal és betővel,
a kifizetés jogcímének rövid megjelölését,
a kiállító aláírását,
az utalványozó aláírását,
a felvevı aláírását és személyi azonosító adatát,
a pénztár közelebbi megjelölését.
A házipénztárat hetente vagy kisebb forgalom esetén havonta le kell zárni, mivel csak így lehet eleget tenni a számviteli törvény elıírásainak. A pénztári zárlatot, pénztárkönyvet le kell zárni, és a könyv szerinti záró készpénzkészletet meg kell állapítani. Amennyiben a gazdálkodó szervnek több pénztára mőködik, értelemszerően minden pénztárba meghatározott idıközönként pénztári zárlatot kell készíteni.
A bankszámlán történı pénzforgalommal kapcsolatos feladatok A számvitelrıl szóló törvény 165 § (3) bekezdésének megfelelıen a pénzügyeket vezetı személynek a pénzmozgással járó gazdasági eseményeket – így a banki mőveleteket – a társaság analitikus nyilvántartásaiban rögzítenie kell. Ennek módja, hogy a banki mőveletekrıl érkezı kivonatot aláírásával igazolja. Mivel a kivonatok belsı tartalma és szerkezete biztosítja a folyamatos áttekinthetıségét, ez megfelel a gazdasági esemény rögzítésével kapcsolatos törvényi és tulajdonosi elvárásoknak.
Pénzintézeti fizetési módok Ha jogszabály a pénztartozás kiegyenlítésének módját kötelezıen nem írja elı, a felek a fizetési módban szabadon állapodhatnak meg.
10
IV. Pénzkezelési folyamatok házipénztárban
A házipénztárban minden folyamathoz, pénzügyi tranzakcióhoz keletkezik egy pénztárbizonylat. Minden pénztárbizonylatnak az a célja, hogy dokumentálja a házipénztár készpénzállományának változásait. Elkészítésük módjában, vagy a mögöttes pénzügyi folyamatban, nagyban különbözhetnek egymástól.
Környezet Ahhoz, hogy a házipénztárba bizonylatot lehessen rögzíteni, szükség van megfelelı környezetre, ez a környezet a számlakeret. „A számviteli törvény (2000. évi C. törvény) 160§-ában található az egységes számlakeret leírása. Ennek figyelembevételével alakítják ki a vállalkozások a saját számlakeretüket, valamint a saját számlarendjüket, amelynek tartalmaznia kell:
minden alkalmazott könyvviteli számla számát és megnevezését;
a számla tartalmát akkor, ha az a számla nevébıl nem következik egyértelmően; továbbá a számla értéke növekedésének, csökkenésének jogcímeit, a számlát érintı gazdasági eseményeket, illetve más számlákkal való kapcsolatát;
a fıkönyvi számlák és az analitikus nyilvántartások összefüggéseit.
A számlarendben foglaltakat alátámasztandó bizonylati rendet.”[1]
Számlatükör „A számlakeretben a számlaosztályokat egy számjeggyel, a számlacsoportokat két számjeggyel, a számlákat három számjeggyel és az alszámlákat négy számjeggyel jelöljük. A számlaosztályok, számlacsoportok, számlák és alszámlák számát és megnevezését tartalmazó felsorolás a számlatükör”[1]
Jogcímek A
számlakeretben
rendelkezni
kell
minden
számla
értéke
növekedésének,
csökkenésének jogcímeirıl.
11
Pénztár A II. fejezetben leírtak szerint „a házipénztár mindenkori forintban meglévı készpénzállományát és az elektronikai pénzeszközök állományát tartalmazza.” A pénztár tartalmát a 381 számlán kell kimutatni. Amennyiben a belföldi pénztárban külföldi fizetıeszközöket is elhelyeznek, azokat elkülönítetten, devizanemenként bontott 382 valutapénztár számlán kell kimutatni.
Pénztárbizonylat rögzítés „Szigorú számadási kötelezettség alá kell vonni a készpénzkezeléshez, más jogszabály elıírása alapján meghatározott gazdasági eseményekhez kapcsolódó bizonylatokat. (…) A szigorú számadása azt jelenti, hogy elszámolási kötelezettség terheli ezen nyomtatványok felhasználóit. Ezért minden készpénz- és pénzforgalommal összefüggı bizonylatot szigorú számadású bizonylatnak kell minısíteni. (…) A szigorú számadású nyomtatványok készleteirıl és felhasználásáról olyan nyilvántartást kell vezetni, amibıl a felhasználó egyértelmően azonosítható, és a felhasznált mennyiség sorszám szerint is kitőnik. A szigorú számadású nyomtatvány felhasználójának a rontott példányokkal is el kell számolnia.” [1] A pénztárbizonylatoknak meg kell felelni a hatályos törvényi szabályozásoknak, mind formailag mind tartalmilag. Figyelembe véve a szigorú számadási kötelezettséget, a bizonylatok kiállítását dokumentálni kell, és minden bizonylatot a törvényben elıírt idei meg kell ırizni.
Pénztárbizonylat javítása Miután egy pénzügyi tranzakciót lekönyveltünk, az már nem törölhetı. Viszont a tétel stornózható a bizonylat számára való hivatkozással, és így az összes bizonylaton szereplı tétel stornózásra kerül. Így a nyomonkövetéshetıség biztosított.
12
Kimutatások A pénzkezeléssel kapcsolatos kimutatásoknak tartalmaznia kell a pénztárat érintı valamennyi gazdasági eseményt a bevételi és a kiadási bizonylat szerint. A kimutatásokat a pénztáros készíti ellenırzési céllal: pénztárban lévı tényleges pénzkészlet a kimutatásokban szereplı összeggel. A kimutatások készülhetnek naponta, hetente, 10 naponként, havonta.
13
V. Adatbáziskezelık aktív tulajdonságai
1.Triggerek „Azokat az adatbázis-kezelıket, amelyek tartalmaznak triggereket, aktív adatbázist kezelı adatbázis-kezelıknek nevezzük. A triggerek adatbázis-objektumok, egy meghatározott tevékenységet definiálnak, amelyek valamilyen eseményhez kapcsolódva automatikusan futnak le. A tevékenység megadható PL/SQL, C, Java nyelvekben. A triggerek segítségével üzleti szabályok építhetıek be, integritási megszorítások realizálhatók. A triggerek mőködését kiváltó események:
egy táblán vagy nézeten végrehajtott INSERT, DELETE vagy UPDATE utasítás;
egyes DDL-utasítások;
szerverhibák;
felhasználói be- és kijelentkezés;
adatbázis elindítása és leállítása.
A triggerek használata:
származtatott oszlopértékek generálása;
érvénytelen tranzakciók megelızése;
védelem;
hivatkozási integritási megszorítások definiálása;
komplex üzleti szabályok kezelése;
eseménynaplózás; követés; táblastatisztikák győjtése; adattöbbszörözés.
14
A triggerek osztályozása:
Sorszintő trigger: annyiszor fut le, ahányszor a tábla adatai módosulnak. Ha egyetlen sor sem módosul, a trigger egyszer sem fut le.
Utasítás szintő trigger: egyszer fut le, függetlenül a kezelt sorok számától. Ez a trigger akkor is lefut, ha egyetlen sort sem kezelünk.
BEFORE és AFTER triggerek: egyaránt lehetnek sor és utasítás szintőek. Csak táblához kapcsoltan hozhatóak létre, nézetre nem, ám egy alaptáblához kapcsolt trigger lefut a nézeten végrehajtott DML-utasítás esetén is. DDL-utasításokhoz csak adatbázison és sémán alapuló triggerek hozhatóak létre, táblán alapuló nem. A BEFORE trigger a hozzákapcsolt utasítás elıtt, az AFTER trigger a hozzá kapcsolt utasítás után fut le. Ugyanahhoz a táblához ugyanazon típusból akárhány trigger megadható.
INSTEAD OF trigger: ez a trigger-fajta a hozzá kapcsolt utasítás helyett fut le. Az INSTEAD OF trigger csak sorszintő lehet és csak nézeten definiálható. Akkor használjuk, ha egy nézetet módosítani akarunk, de azt nem tehetjük meg közvetlenül DML-utasításokkal.
Rendszertriggerek: a triggerek felhasználhatóak arra is, hogy adatbázis-eseményekrıl információkat adjunk az „elıfizetıknek”. Az alkalmazások feliratkozhatnak az adatbázis-események, illetve más alkalmazások üzeneteinek listájára, és akkor ezeket automatikusan megkapják. Az adatbázis események a következık lehetnek: o Rendszeresemények: •
adatbázis elindítása és leállítása,
•
szerverhiba.
o Felhasználói események: •
bejelentkezés és kijelentkezés,
•
DDL-utasítás (CREATE, ALTER, DROP) kiadása,
•
DML-utasítás (INSERT, DELETE, UPDATE) kiadása.
A rendszereseményekhez és a felhasználói be- és kijelentkezésekhez, illetve a DDLutasításokhoz kapcsolt triggerek séma vagy adatbázis szinten hozhatóak létre. A DMLutasításokhoz kapcsolt triggerek táblákon és nézeteken definiálhatók. ”[2]
15
Triggerek elınyei:
Gyors, mivel közvetlenül az adatbázis-kezelın belül helyezkednek el
Többfelhasználós környezetben jól alkalmazhatók
Biztonságos. Az adatbázisban lévı megszorítások, felhasználók, jogosultságok, szerepkörök és egyéb biztonsági funkciók segítségével a szabályokat lehetetlen kijátszani.
2. Tárolt eljárások A tárolt eljárás egy önálló programegység, amely az adatbázis metaadatainak részeként van tárolva. A létrehozott tárolt eljárást közvetlenül meghívhatjuk egy alkalmazásból, vagy pótolhatunk vele egy táblát vagy nézetet a SELECT utasításban. A tárolt eljárások input paraméterekbıl adnak vissza értéket az alkalmazásoknak. A FireBird tárolt eljárásainak és triggereinek nyelve az SQL-DML utasításait tartalmazza számos bıvítménnyel, melyek lehetnek utasítások, kivételek, kivételkezelık.
A tárolt eljárások használatának elınyei
Moduláris programozást tesz lehetıvé: azok az alkalmazások, amelyek ugyanahhoz az adatbázishoz férnek hozzá, szétbonthatóak tárolt eljárásokra, amelyek kiküszöbölik a kód duplikációt, ezzel csökkentve az alkalmazás kódjának hosszát, és ezzel az elıforduló hibák számát.
Folyamatos karbantarthatóság: az eljárás módosítása során a változások automatikusan életbe lépnek minden olyan alkalmazásban, újrafordítás és újralinkelés nélkül, amely használja az eljárást.
Továbbfejlesztett teljesítmény: az eljárások minden kliensnél csak egyszer fordítódnak és optimalizálódnak. Azokat szerver futtatja, nem a kliens.
A tárolt eljárások és a triggerek teszik lehetıvé a komplex üzleti szabályok adatbázis szinten való elhelyezését, ami sokkal elınyösebb, hatékonyabb, mintha ugyanez a program kódjában történne.
16
VI. Fejlesztési folyamat
Vízesés modell A feladat megoldására a vízesés modellt választottam, amely a következıképpen néz ki.
Az elıállítási folyamat fázisokból áll, ezeket téglalapok jelzik. Minden fázis csak akkor kezdıdhet el, ha az elızı fázis lezárult. Szigorúan lineárisan folyik a fejlesztés. A fázis lezárása azt jelenti, hogy elkészül egy dokumentum, melyet mindkét fél (felhasználó, megrendelı) elfogad. A modell használatának hátránya a rugalmatlanság, ha bármelyik késıbbi fázisban kiderül, hogy baj van, akkor vissza kell menni az elejére és meg kell ismételni az egészet. Ez a modell olyan problémák megoldásánál jól használható, ahol a követelmények tiszták, világosak, jól specifikálhatóak. A házipénztár megvalósítása egy ilyen probléma,
17
egyrészt törvényileg szigorúan szabályozott, másrészt adott az interfész, melyen keresztül a modulnak kommunikálnia kell a vállalatirányítási rendszer többi moduljával.
1. Követelmények meghatározása A célok a felhasználóval közös tárgyalás útján határozhatóak meg. A felhasználói követelmények leírására a természetes nyelvet választottam, mert így könnyebb a kommunikáció a felhasználókkal, arra azonban figyelni kell e módszer esetében, hogy ne álljon elı inkonzisztencia probléma. (Két módszer létezik még: formanyomtatványok, diagramok és rajzok használata.) A követelményeket a vállalat irányítási rendszer fejlesztés projektigazgatójának és a cégkönyvelıjének jóváhagyásával rögzítettem. Ez jelenti a követelménydokumentumot, amely lerögzíti a megvalósíthatóságot, a követelmények feltárását, elemzését, specifikálását dokumentálását és validálását.
2. Rendszer és szoftvertervezés A szoftvertervezés a mérnöki értelmő tervezésbıl nıtt ki, melybıl nagyon sok mozzanatot át vett.
A tervezés irányai A tervezés két irányát különböztetjük meg:
Alrendszer tervezés: önálló létjogosultsággal rendelkezı rendszerösszetevı, melynek mőködése az adatcserétıl eltekintve független más alrendszerektıl. Két alrendszernek interface-e van, amin keresztül kommunikálnak egymással.
Modultervezés: alrendszeren belül értelmezzük. Egy olyan rendszerösszetevı, melynek nincs önálló létjogosultsága. Szolgáltatást nyújt más moduloknak és másokét használja. A modulok között a szolgáltatás a legfontosabb kapcsolat.
A szemcsézettség egy olyan rendszerjellemzı, melynek segítségével két kategóriába sorolhatjuk a rendszereket: finom-szemcsézettségü és durva-szemcsézettségü. A finom esetben sok kis mérető modul van, melyek egy szolgáltatást nyújtanak. Durva esetben nagy modulok vannak sok szolgáltatással.
18
A tervezési folyamatnál a jövıre is gondolni kell, ezért a megoldandó problémát úgy kell megtervezni, hogy az adott problémaosztály minden problémáját meg lehessen vele oldani, és a késıbbiekben hasonló problémák esetén újrafelhasználható legyen. A rendszertervezési szakasz a leendı modulra (rendszerre) vonatkozó elıírást állít elı általában elektronikus formában.
A szoftverelemek három féle módon használhatóak fel újra:
Alkalmazási rendszerek újrafelhasználása (dobozos szoftverek).
Komponens újrafelhasználása.
Alprogram szintő újrahasználás.
Gyakran a tervezési szakasz eredményeként megjelenı tervezési termék független a rendszer létrehozása során használandó eszközöktıl. Azonban többnyire már ekkor lehet tudni, hogy melyek lesznek a készítés során használt eszközök, és ezek tulajdonságait figyelembe kell venni, különösen a teljesítménytervezési szempontból.
Use-case diagram A feladat megoldásának tervezését azzal kezdem, hogy a környezetet és a határait megállapítom. A feladatot a határok megállapítása után belehelyezem a környezetbe. Ezt szemlélteti a következı use-case diagram.
(1. ábra: Pénztár modul use-case diagramja)
19
Mivel a feladat jellege olyan, hogy egy már mőködı rendszerbe új szolgáltatásokat kell bevinni, ezzel elısegítve a rendszer fejlesztését, a tervezést szabványosan kell elvégezni. A rendszer ezen része finom-szemcsézettségő lesz.
A már meglévı rendszer elemekhez kell illeszkednie az új modulnak, ezért a modulhoz szükséges adatbázis bıvítéseket a már meglévı adatbázis struktúráját szem elıtt tartva készítem el. Szintén szem elıtt tartva a Pannon Szoftver Stúdió azon célkitőzését, hogy a hatékonyság növelésének érdekében, az üzleti logikát adatbázis szintre kell levinni, kihasználva az adatbázis aktív tulajdonságait. A modulhoz szükséges adatbázis bıvítéseket a következı ábra mutatja.
(2. ábra: Pénztár modulhoz tartozó táblák és azok kapcsolata)
20
Az ábrán nem szerepel minden felhasznált tábla, csupán a pénztármodulhoz tartozó táblák. Mivel a modulok megosztják adataikat, ezért a pénztármodul felhasznál más modulokhoz tartozó táblákat is. Ilyen tábla a DEVIZA, mely a pénznemekre vonatkozó információkat tartalmaz. A USER táblában a rendszer felhasználóinak adatai találhatóak. Ezen táblák felépítését nem részletezem.
A táblák részletes bemutatása Minden táblában szerepel három mezı (ID_SYNC, ID_SYNC_DOMICILE, ID_ORIG_DOMICILE), ezek az adatbázis szinkronizáló modul számára szükségesek, ugyanis több telephely kezelés esetén e mezık segítségével szinkronizálja a táblák tartalmát a rendszer a telephelyek között. LEDGER: számlatükör
ID: Elsıdleges kulcs
ACCOUNTNO: Fıkönyvi szám
ACCOUNTNAME: Megnevezés
COMMENT: Megjegyzés
ID_PARENT: A számlatükör a programban fa-struktúrába szervezve jelenik meg, ez a mezı egy technikai mezı, mely szülı elsıdleges kulcsát tartalmazza.
ID_SYNC
ID_SYNC_DOMICILE
ID_ORIG_DOMICILE
CASH_OFFICE: pénztár
ID: Elsıdleges kulcs
NAME. Pénztár megnevezése
ID_LEDGER:A pénztárhoz tartozó fıkönyvi számlát/alszámlát tartalmazó számlatükör rekord azonosítója
ID_DEVIZA: A pénztár pénznemét tartalmazó rekord azonosítója a DEVIZA táblában
COMMENT: Megjegyzés
CASH_PREFIX: Pénztár elıtag, a pénztárban képzıdött pénztárbizonylatok elıtagja
APPOINT: Pénztár készpénzállománya a pénztárhoz tartozó pénznemben megadva
ID_SYNC
21
ID_SYNC_DOMICILE
ID_ORIG_DOMICILE
PAYMENT_TITLE: Jogcím
ID: Elsıdleges kulcs
NAME: Jogcím megnevezése
COMMENT: Megjegyzés
ID_LEDGER: A számlatükör azon rekordjának azonosítója, melyben az a számla/alszámla található, melyhez a jogcím tartozik.
EXPENDITURE: Jogcím kifelé irányuló pénzmozgáshoz. 1 = igen; 0 = nem
REVENUE: Jogcím befelé irányuló pénzmozgáshoz. 1 = igen; 0 = nem
ID_SYNC
ID_SYNC_DOMICILE
ID_ORIG_DOMICILE
CASH_VOUCHER: pénztárbizonylat fej
ID: Elsıdleges kulcs
DIRECTION: A pénztárbizonylat iránya. -1 = kiadási, 1 = bevételi pénztárbizonylat
VOUCHER_DATE: A bizonylat elkészítésének idıpontja
VOUCHER_NUMBER: A pénztári bizonylat száma
ID_PAYMENT_TITLE: A pénzmozgás jogcíme
AMOUNT: A pénztárbizonylaton szereplı összeg
COMMENT: Megjegyzés
REFERENCE_TYPE: Hivatkozás típusa, a pénztárbizonylatnak hivatkoznia kell dolgozóra, cégre vagy bizonylatra. Kivételt képeznek a technikai jellegő bizonylatok, pl. pénztárkorrekció, ekkor ugyanis nincs sem dolgozó, sem cég, sem bizonylat, amire a pénztárbizonylat hivatkozhatna. (23 = dolgozó, 24 = cég, 25 = bizonylat, NULL = nincs hivatkozás)
ID_CASH_OFFICE: A bizonylatot kibocsájtó pénztár
STATUS: Késıbbi használatra fenntartott mezı
ID_DEVIZA: A pénztárbizonylat pénzneme
STORNO: Sztornó, 0 =nincs sztornózva, 1 = sztornózva, 2 = sztornó bizonylat
22
ID_BASE: Sztornó bizonylatnál a sztornózott pénztárbizonylat azonosítója.
ID_USER: A bizonylatot rögzítı felhasználó azonosítója
CREATED_TIME: Szinkronizációhoz szükséges mezı
MODIFIED_TIME: Szinkronizációhoz szükséges mezı
PDA_IDENTIFIER: PDA kezelés esetén annak a PDA-nak az azonosítója a PDAOPTIONS táblából, amelyiken a bizonylatot rögzítették
ID_SYNC
ID_SYNC_DOMICILE
ID_ORIG_DOMICILE
BANK_MOVEMENT_IDENTIFIER: Bevételi pénztárbizonylat esetén megadható a banki készpénzfelvételt igazoló átvételi elismervény bizonylatszáma. Kiadási pénztárbizonylat esetén megadható bankszámlára történı befizetés esetén a banki igazolás bizonylatszáma.
CASH_VOUCHER_REFERENCE: Pénztárbizonylat tétel
ID: Elsıdleges kulcs
ID_CASH_VOUCHER: A pénztárbizonylat fej azonosítója
ID_REFERENCE: A hivatkozás típusától függıen a dolgozó, a cég, vagy a bizonylat azonosítója
AMOUNT: A hivatkozáshoz tartozó pénzösszeg a pénztárbizonylat pénznemében megadva
COMMENT: Megjegyzés
COMMISSION_IS_PAYOFF: Ezt a mezıt a jutalékelszámoló modul használja
ID_SYNC
ID_SYNC_DOMICILE
ID_ORIG_DOMICILE
23
Aktivitás-diagram A tervezésre kerülı pénzkezelési folyamatok terveit a következı aktivitás-diagramok szemléltetik.
Pénztárbizonylat rögzítés folyamatábrája
(3. ábra: Pénztárbizonylat rögzítés folyamatábrája)
24
Pénztárbizonylat sztornózás folyamatábrája
(4. ábra: Pénztárbizonylat sztornózás folyamatábrája)
A pénztárközi pénzmozgás folyamatábrája
(5. ábra: pénztárközi pénzmozgás folyamatábrája)
25
A pénztárkorrekció folyamatábrája
(6. ábra: pénztárkorrekció folyamatábrája)
26
A kimutatások általános folyamatábrája
(7. ábra: Kimutatások általános folyamatábrája)
3. Implementáció és egységteszt A házipénztár implementálásához Delphi 2006 integrált fejlesztıi környezetet és FireBird relációs adatbázis-kezelıt használok. „A Delphi a Borland Software Corporation cég Windows grafikus felületen futó Object Pascal alapú negyedik generációs (4GL) programozási nyelve. A hatékonyabb programfejlesztéshez vizuális fejlesztıkörnyezetet is tartalmaz, mely a VCL, a vizuális komponensek könyvtára segítségével kifejezetten magas szintő és hatékony fejlesztést tesz lehetıvé.” [3] „A FireBird egy nyílt forrású relációs adatbázis-kezelı (RDBMS) sok SQL92 jellemzıvel. Fut Linuxon, Windowson, több Unix platformon. A FireBird kiváló konkurenciatőréső, nagy teljesítményő, erıteljes támogatással rendelkezik a tárolt eljárások és triggerek területén. Számos rendszerben használják profitorientált cégek 1981 óta.” [4]
27
Egységteszt
Az egységeket tesztelem a specifikációval szemben. Ezt mindig a fejlesztı végzi. Egy egység alatt értünk egy vagy több eljárást, függvényt. Két módszer létezik: a fehér-doboz módszer és a fekete-doboz módszer. Mindkettı egyformán jelentıs. Az egységteszt deríti ki a legtöbb hibát. A tesztelés folyamán a fekete-doboz módszert alkalmaztam.
Tesztesetek tervezése
Elsı lépésben a bizonylatoláshoz szükséges környezetet kell megteremteni. Létre kell hozni a szükséges számlatükröt, a szükséges jogcímeket és legalább két pénztárat.
Számlatükör:
3. Követelések, pénzügyi eszközök és aktív idıbeli elhatárolások
3.38 Pénzeszközök
3.38.381 Pénztár
3.38.382 Valutapénztár
3.38.389 Átvezetési számla
3.31.311 Belföldi követelések (forintban)
5 Költségnemek
5.54 Bérköltség
5.54.541 Bérköltség
5.51 Anyagköltség
5.51.511 Vásárolt anyagok költségei
Jogcímek:
Pénztárközi pénzmozgás (3.38.389)
Pénztár korrekció (3.38.389)
Bérkifizetés (5.54.541)
Készpénzes kimenı számla kiegyenlítés (3.31.311)
Készpénzes bejövı számla kiegyenlítés (5.51.511)
Készpénzfelvétel bankszámláról (3.38.389)
28
Pénztárak:
Pénztár #1 (forintos)
Pénztár #2 (forintos)
1. Mindkét pénztár egyenlege 0 Forint. Pénztár korrekcióval mindkettıét megemelem 100 000 Forintra.
Pénztárkorrekció – Pénztár #1, Jogcím: pénztár korrekció, Összeg: 100 000 Forint Pénztárkorrekció – Pénztár #2, Jogcím: pénztár korrekció, Összeg: 100 000 Forint
2. Most mindkét pénztár egyenlege 100 000 Forint. Kiállításra kerül egy kimenı készpénzes számla 5 000 Forint fizetendı összeggel. A vevı kifizeti a számlát készpénzben a Pénztár #1-ben. Képezni kell egy bevételi pénztárbizonylatot.
Bevételi pénztárbizonylat – Pénztár #1, Jogcím: Készpénzes kimenı számla kiegyenlítés, Összeg: 5 000 Forint, Hivatkozás: bevétel alapját épezı kimenı számla.
3. Most a Pénztár #1-ben lévı készpénzállomány 105 000 Forint, ebbıl a pénztárból az egyik dolgozónak kifizetem a bérét, 85 000 Forintot.
Kiadási pénztárbizonylat – Pénztár #1, Jogcím: Bérkifizetés, Összeg: 85 000 Forint, Hivatkozás a dolgozó.
4. A Pénztár #1 egyenlege most 20 000 Forint, beteszem a pénztárba a bankszámláról felvett 50 000 Forintot
Bevételi pénztárbizonylat – Pénztár #1, Jogcím: Készpénz felvétel bankszámláról Összeg: 50 000 Forint, Hivatkozás: Nincs, Banki mozgásszám: Banki készpénzfelvételt igazoló átvételi elismervény sorszáma.
29
5. A Pénztár #1-be befizetett 50 000 Forintot, átteszem a Pénztár #2-be.
Pénztárközi pénzmozgás – Kiadó pénztár. Pénztár #1, Fogadó pénztár: Pénztár #2, Jogcím: Pénztárközi pénzmozgás, Összeg: 50 000 Forint
6. Mindezen mőveletek elvégzése után a Pénztár #1 egyenlege 20 000 Forint. A Pénztár #2 egyenlege 150 000 Forint.
A tesztesetek elvégzése után a pénztáregyenlegek a várttal megegyezı értékeket mutatnak. A pénztárjelentés és a pénztárforgalom kimutatások tartalma hően tükrözi a pénzmozgásokat
4. Integráció és rendszerteszt Integráció
Az integráció két fı részbıl áll. Az elsı rész az adatbázis integráció. A modulhoz tartozó táblákat, az azokhoz tartozó triggereket, a tárolt eljárásokat integrálni kell a vállalatirányítási rendszer adatbázisába. A rendszer beállításait tartalmazó OPTIONS táblába be kell szúrnia modulhoz tartozó beállításokat tartalmazó mezıket. Meg kell teremteni a modulok közötti kapcsolatot adatbázis szinten, össze kell kapcsolni a pénztár modult a kereskedelmi modullal. El kell helyezni a fent említett OPTIONS táblába a modulok kapcsolatát meghatározó beállításokat tartalmazó mezıket. A beállításoktól függıen a kereskedelmi modulnak fizetéssel járó bizonylatokhoz tudnia kell pénztárbizonylatot rögzíteni. Ehhez a pénztár modul interfészként biztosít egy tárolt eljárást, ami a paraméterül kapott bizonylathoz létrehoz egy (az OPTIONS táblában meghatározott tulajdonságokkal rendelkezı) pénztárbizonylatot. Az másik fı feladat a modul integrálása a keretrendszerbe.
El kell helyezni a
modulhoz tartozó szolgáltatásokat a menürendszerben. A beállításokat tartalmazó formon szerepelnie kell a modul mőködéséhez szükséges és a modulok közötti kapcsolatot biztosító paraméterek beállítását lehetıvé tévı kontrollokat.
30
Rendszerteszt
A teljes rendszer tesztelése történik ebben a szakaszban. Ez funkcionális teszt. Meghatározásra kerülnek az adott felhasználói környezet számára a kritikus funkciók, azaz teljesülnek-e a szoftverrel kapcsolatos általános felhasználói elvárások. Erre külön tesztelıcsapatok léteznek. A rendszer legvégsı tesztelését a felhasználó vagy megbízója végzi.
5. Mőködtetés és karbantartás A programban külön almenüböl érhetıek el a pénztármodulhoz tartozó funkciók. A felhasználói felület tartalmaz egy navigációs panelt is, amire szintén felkerültek a pénztármodul funkciói (8. ábra). A kimutatások külön almenübe kerültek.
(8. ábra: A pénztármodulhoz tartozó szolgáltatások elhelyezkedése a menürendszerben)
A programban minden form, kivéve a dialógus ablakokat, master-detail felépítéső. A form tetején lokális menü található, aminek a segítségével a formon elérhetı szolgáltatásokat lehet igénybe venni. A form bal oldalán található a táblázatos vagy fa nézet, valamint egy kontroll csoport, ami a táblázatos vagy fa nézetet szőri. A képernyı jobb oldalát foglalja el a
31
rekord nézet, ami a táblázatos nézetben kiválasztott rekordot tartalmazza kibontva. A formok elrendezését a felhasználó igény szerint módosíthatja. Minden formnak három állapota van: böngészés, szerkesztés, új felvitel. A kötelezıen megadandó adatokhoz tartozó kontrollok szerkesztés és új felvitel állapotban piros háttérrel rendelkeznek, mintegy figyelemfelhívásképpen.
Törzsadatok Számlatükör A számlatükörbe rögzítjük a számlakeret azon részét, melyekre a házipénztár üzemeltetése során szükségünk lesz. Fıkönyvi számoknál a következı adatokat kell megadnunk (9. ábra):
Fıkönyvi szám: Fıkönyvi száma, megadása kötelezı.
Megnevezést: Fıkönyvi számla neve, megadása kötelezı.
(9. ábra: A fıkönyvi szám adatai)
A számlatükör form fa nézete áttekinthetıvé teszi a rögzített adatokat. (10. ábra)
(10. ábra: Számlatükör szerkezete)
32
Pénztárak
A pénztárak rögzítéséhez a következı adatokat szükséges megadnunk (11. ábra):
Elıtag: A pénztárból kibocsájtott pénztárbizonylatok sorszámának elıtagja. Megadása kötelezı, egyediségét a rendszer ellenırzi.
Megnevezés: A pénztár neve. Megadása kötelezı.
Fıkönyvi szám: A pénztárhoz rendelt fıkönyvi szám. Megadása kötelezı, a korábban rögzített fıkönyvi számok közül kell választani. (12. ábra)
Pénznem: A pénztár valutaneme. Megadása kötelezı, a rendszerben lévı pénznemek közül kell választani (13. ábra)
(11. ábra: Pénztár adatai)
(12. ábra: Jogcím választó legördülı lista)
(13. ábra: Pénznemválasztó legördülı lista)
33
Jogcímek
Jogcímek rögzítéséhez az alábbi adatokat kell megadnunk (14. ábra):
Megnevezés: A jogcím rövid szöveges leírása, megadása kötelezı.
Bevételi: A jogcím felhasználható-e bejövı pénzmozgás esetén.
Kiadási: A jogcím felhasználható-e kimenı pénzmozgás esetén.
Fıkönyvi szám: A fıkönyvi számla, amihez a jogcím tartozik, megadása kötelezı. Kiválasztását legördülı lista segíti (12. ábra)
A jogcím irányát kötelezı megadni, ezért legalább az egyik irányt ki kell választanunk.
(14. ábra: Jogcím adatai)
Pénztárbizonylat mőveletek
Pénztári bizonylatok form A pénztári bizonylat formon történnek a bizonylat mőveletek, ezen a formon lehet bizonylatot rögzíteni, és stornózni a hibás pénztárbizonylatokat. Ezen a formon a szőrık között találunk egy kiemelt fontosságút, a „bizonylat fajtája” szőrıt. A formon egyidıben csak egy irányhoz tartozó pénztárbizonylatok jeleníthetıek meg, ezt a célt szolgálja a szőrı. Szintén fontos a fent említett szőrıvel kapcsolatban, hogy új pénztárbizonylat rögzítése esetén az új bizonylat irányát ez a szőrı határozza meg, vagyis olyan irányú bizonylat képzıdik, amilyen ebben a szőrıben be van állítva. (15. ábra)
34
(15. ábra: Szőrési lehetısége a Pénztári bizonylatok formon)
Négy pénztárbizonylatot rögzítünk, a rögzített pénztárbizonylatok különbözni fognak irányokban és hivatkozásukban. Pénztárbizonylat rögzítése hivatkozás nélkül A hivatkozás nélkül rögzített pénztárbizonylat rögzítéséhez a következı adatokat kell megadnunk (16. ábra):
Bizonylat kelte: A bizonylat kiállításának idıpontja. Megadása kötelezı.
Pénztár: A pénztár, amelyik a pénztárbizonylatot kibocsájtja. Megadása kötelezı, a korábban rögzített pénztárak közül választhatunk legördülı lista segítségével.
Összeg: a pénztárbizonylaton szereplı összeg a pénztár pénznemében megadva. Megadása kötelezı, ha nincs hivatkozás.
Hivatkozás típus: A hivatkozás típus lehet dolgozó, cég vagy bizonylat. Megadása nem kötelezı.
Jogcím: A pénzmozgás jogcíme. Megadása kötelezı.
Banki mozgásszám: Bankszámlára történı befizetés esetén a banki igazolás sorszámát vagy banki készpénzfelvételt igazoló átvételi elismervény sorszámát adhatjuk itt meg. Megadása nem kötelezı.
(16. ábra Pénztárbizonylat-fej adatok)
35
Pénztárbizonylat rögzítése bizonylat-hivatkozással Hivatkozás megadásával alapbizonylatot adhatunk meg. Ha a hivatkozás típusa bizonylat,
akkor
a
kereskedelmi
modulban
rögzített
bizonylatok
adhatóak
meg
hivatkozásként. Hivatkozás típus megadása maga után vonja, hogy kötelezıen meg kell adni legalább egy hivatkozást, és hogy a pénztárbizonylat fejben szereplı összeg mezı értéke nem szerkeszthetı, annak értékét a program automatikusan kitölti a pénztárbizonylat tételek adataiból.
(17. ábra Bizonylat fej adatai bizonylat hivatkozás esetén)
(18. ábra Alapbizonylat választás)
36
(19. ábra: Alapbizonylatok)
Pénztárbizonylat rögzítése dolgozó-hivatkozással
Dolgozó hivatkozás típust választva, a vállalat dolgozóihoz lehet kapcsolni a pénztárbizonylatot.
Pl.
bérkifizetés.
Rögzítése
annyiban
különbözik
a
bizonylat
hivatkozástípus használatától, hogy ebben az esetben a vállalat dolgozói közül kerülnek ki a bizonylat tételek. (20. ábra)
(20. ábra: Dolgozó választás)
37
(21. ábra: Hivatkozásként megadott dolgozók)
Pénztárbizonylat rögzítése cég-hivatkozással
Használatának többek között akkor van létjogosultsága, ha egy cég elıleget kíván befizetni a pénztárba egy még ki nem adott számlára, akkor megadható a cég hivatkozásként.
(22. ábra. Cég kiválasztás)
38
(23. ábra. Hivatkozásként megadott cég)
Pénztárbizonylat stornózása Pénztárbizonylat stornózásra a pénztári bizonylatok formon van lehetıség. A pénztárbizonylat nem stornózható, ha:
korábban már stornózva lett,
vagy önmaga már stornó bizonylat.
A stornózás a form lokális menüjében végezhetı el (24. ábra). A stornózás hatására visszavonódik a bizonylat minden tétele. A táblázatos nézetben láthatóak a stornózással kapcsolatos információk. (25. ábra)
(24. ábra. Pénztári bizonylatok form, lokális menüje)
(25. ábra: Pénztári bizonylatok, táblázatos nézet)
39
Pénztárkorrekció Pénztárkorrekció végezhetı a Pénztári bizonylatok formról az elıbbiek szerint, vagy végezhetı egy erre a célra készített dialógus ablakon. A dialógus ablakon a következıket kell megadnunk (18. ábra):
Pénztár: Az itt kiválasztott pénztár egyenlegét módosítjuk. Megadása kötelezı, legördülı listából választható. Pénztárválasztást követıen a rendszer megadja a pénztár jelenlegi egyenlegét, egyszerősítve ezzel a korrekciós összeg meghatározását.
Jogcím: Pénztárkorrekcióhoz használt jogcím. Megadása kötelezı.
Korrekciós összeg. Elıjeles összeg a pénztár pénznemében megadva, ezzel az összeggel növeljük elıjelesen a pénztár egyenlegét. Megadása kötelezı.
Új egyenleg: A korrekció utáni pénztáregyenleget a korrekciós összeg megadása utána a program kiszámolja.
(26. ábra. Pénztárkorrekció)
Pénztárközi pénzmozgás
Elıfordulhatnak olyan esetek, amikor szükséges készpénzállományt mozgatni egyik pénztárból a másikba. Ez a gyakorlatban két pénztárbizonylatot jelent, egy kiadásit a kiadó pénztárban és egy bevételit a befogadó pénztárban. A mővelet biztonságos elvégzéséhez készült egy dialógus ablak, aminek használata garantálja, hogy rendben elkészül mindkét bizonylat, kizárva az emberi mulasztást. (27. ábra)
40
(27. ábra: Pénztárközi pénzmozgás)
Pénztárközi pénzmozgásnál (a Pénztárközi pénzmozgás formon) a következı adatokat kell megadnunk:
Kiadó pénztár: Az a pénztár ahonnan átvesszük a készpénzt. Megadása kötelezı, megadását legördülı lista segíti.
Fogadó pénztár: Az a pénztár ahová betesszük a készpénzt. Megadása kötelezı, megadását legördülı lista segíti, amiben csak azok a pénztárak látszanak, amelyek pénzneme megegyezik a kiadó pénztár pénznemével. Különbözı pénznemő pénztárak között a pénzmozgatás nem megengedett.
Jogcím: A pénzmozgáshoz használt jogcím. Megadása kötelezı, kiválasztását legördülı lista segíti. Csak olyan jogcím adható meg, ami használható kiadási és bevételi pénztárbizonylatoknál egyaránt.
Idıpont: A készpénzmozgás idıpontja.
Összeg: A pénztárak között mozgatott készpénz összege a pénztár pénznemében megadva.
Pénztáregyenlegek
Vannak esetek, amikor meg kell tudni mondani, hogy a pénztárakban mennyi készpénz található. Ilyen eset lehet például a rovancs, vagy más ellenırzés. Ennek az egyszerő
41
mőveletnek az elvégzésére készült egy dialógus ablak. Funkciója annyi, hogy meg tudja mondani a jelenlegi, vagy a szőrıben beállított idıpontbeli pénztár egyenlegeket. (28. ábra)
(28. ábra: Pénztáregyenlegek)
Kimutatások A kimutatások tartalmaznak a pénztárat érintı valamennyi gazdasági eseményt a bevételi és a kiadási bizonylatok szerint. Pénztárforgalom Tetszıleges idıszakra lekérhetı a pénztárforgalom. A feltételeknek megfelelıen a kimutatás megjelenít minden bizonylatot. Megadható feltételek:
Idıszak. Az az idıszak, amelyre a pénztárforgalmat szeretnénk lekérdezni (29. ábra)
Részletek megjelenítése: Ha a kapcsoló be van jelölve, a kimutatás megjeleníti a pénztárbizonylatok tételeit is. (29. ábra)
Pénztárak: Csak a listában kiválasztott pénztárakhoz tartozó pénztárforgalmat jeleníti meg a kimutatás. (30. ábra)
42
Jogcímek. Csak a listában kiválasztott jogcímekkel rendelkezı pénztárbizonylatokat jeleníti meg a kimutatás.
Nyomtatási beállítások: Itt adható meg a kimutatás kimenete, ami lehet elınézet, lehet papíron nyomtatva, lehet különbözı formátumokba (pl. xls, jpg, pdf, html) exportálva, vagy megjeleníthetı egy táblázatban is a képernyın. (31. ábra)
(29. ábra: Pénztárforgalom dialógus ablak, beállítások)
(30. ábra: Pénztárforgalom dialógus ablak, szőrık)
43
(31. ábra: Pénztárforgalom dialógus ablak, nyomtatási beállítások)
44
(32. ábra: Pénztárforgalom kimutatás)
45
Pénztárjelentés
Tetszıleges idıszakra lekérhetı a pénztárjelentés. A feltételeknek megfelelıen a kimutatás megjelenít minden bizonylatot. A feltételek és a form mőködése megegyezik a pénztárforgalom dialógus ablak mőködésével és feltételeivel. A fentieken kívül itt még egy új, plusz feltétel adható meg (33. ábra):
Csak az érvényes bizonylatok kigyőjtése: A kapcsoló hatására a kimutatás nem jeleníti meg a stornó és a stornózott pénztárbizonylatokat.
(33. ábra: Pénztárjelentés dialógusablak)
46
(34. ábra: Pénztárjelentés kimutatás)
47
Karbantartás A szoftver karbantartása során a felhasználó felmerülı igényeit valósítom meg. A számviteli törvényben bekövetkezı változásokhoz rugalmasan alakítom a szoftvert. Az adatbázis biztonságos üzemeltetésének felügyeletét, karbantartását végzem esetleges nem a szoftver hibájából bekövetkezı eseményeknél.
48
VII. Összefoglalás
Összefoglalva
tehát,
a
Pannon
Szoftver
Stúdiónál
alkalmazott
integrált
vállalatirányítási rendszerben a házipénztár kezelésével kapcsolatban fellépı felhasználói igények kielégítésére szolgáló pénztár kifejlesztése a következıképp történt. A házipénztár használatát segítı pénztármodul kifejlesztése volt a cél. A modul megtervezése során elıször a követelményeket határoztam meg. Ebben segítségemre voltak a kulcsfigurák és az eljárásokat tartalmazó leírások. A konkrét, világos, érthetı követelmények meghatározásának eredményeként elkészítettem a követelmények dokumentálását, ezért a tervezést vízesésmodell szemléletében készítettem el. A tervezési fázisban a feladat megvalósításához szükséges adatbázis táblákat a megfelelı kapcsolatokkal együtt, az eljárásokat, valamint a hozzájuk kapcsolódó felhasználói felület szabványszerő leírását, grafikus megjelenítését vázoltam fel. A tervezést a modul implementálása követte. A modul, mint egység helyes mőködését teszteléssel ellenıriztem. A tesztelés folyamán teszteseteket terveztem meg, a modult lefuttattam a tesztesetekre, az eredményeket rögzítettem, s azok helyesek voltak. Az egységtesztet követıen az önállóan mőködı modult integráltam a rendszerbe. Az integráció utáni rendszer helyes mőködését rendszerteszt segítségével ellenıriztem. A modul beépítése nem változtatta meg más rendszerösszetevık együttes mőködését, sıt az új modul más modulokkal együtt is helyesen mőködött. Az új funkciók a Pannon Szoftver Stúdió minden ügyfele számára elérhetıek. Mindent összevetve az új modul kifejlesztése eredményesnek tekinthetı.
49
Jegyzetek [1]
Szakács Imre: Számvitel A-tól Z-ig, KJK-KERSZÖV Jogi és Üzleti Kiadó Kft, Budapest, 2001. p. 16., p. 19, p. 20
[2]
Gábor András – Juhász István: PL/SQL programozás, Panem Könyvkiadó Kft, Budapest, 2007. p. 202-204
[3]
Delphi (programozási nyelv) http://hu.wikipedia.org/wiki/Delphi_programoz%C3%A1si_nyelv . (Letöltés: 2008. április 29.)
[4]
FireBird http://wiki.hup.hu/index.php/Firebird . (Letöltés: 2008. április 29.)
Pénzkezelési szabályzat http://www.apeh.hu/regiok/kozepmagyarorszag/aktualis/penzkez_szabalyzat.html . (Letöltés: 2008. április 29.)
Szoftverfolyamat http://www.szt.vein.hu/~bolecz/szf/8.doc . (Letöltés: 2008. április 29.)
SAP AG: SAP SME Részletes funkcióleírás, 2000 https://www.hostlogic.hu/docs/Termekleirasok/Penzugy.pdf . (Letöltés: 2008. április 29.)
50
Irodalomjegyzék 1. Szakács Imre. Számvitel A-tól Z-ig, KJK-KERSZÖV Jogi és Üzleti Kiadó Kft, Budapest, 2001.
2. 2000. évi C törvény a számvitelrıl, Budapest, 2000
3. 2006. évi CXXXI. törvény egyes pénzügyi tárgyú törvények módosításáról, Budapest, 2006
4. Loós-Némethné-Sutus-Vörös: Pénzügyi számviteli példatár, Saldo Rt., Budapest, 2001.
5. Vég Csaba: Alkalmazásfejlesztés a Unified Modeling Language szabványos jelöléseivel, Logos 2000 Bt., Debrecen, 1999.
6. Szabó János: Az InterBase * FIREBIRD, Computerbooks Könyvkiadó Kft. Budapest, 2005.
51