ES Bank

A következő feladatban bankszámlákat kezelő objektumot kell előállítania. Az egyes műveletekhez készítsen függvényt, valamit oldja meg, hogy a minta alapján több objektum is előállítható legyen.

Kiegészítő és segéd függvények külön és az adott objektumokhoz írhatóak.

Feladatok

Bankszámla

  1. A következő feladatban egy bankszámlát kell létrehoznia az ügyfél adataiból, melyet paraméterként kap. A bankszámla számát önnek kell generálnia. A hazai számlaszámok háromszor 8 számjegyből állnak. Melyek kezül az első csoport első három jegye adott: 111 Példa számlaszám: 11126453-57832575-23468325 A következőképpen néz ki egy bankszámla:
    {
        acc_id: , 
        transactions: []
    }
    
  2. A számla transactions tömbjéhez adjuk hozzá a a betétet tanusító "bizonylatot" Egy bizonylat egy olyan objektun, amely tartalmazza a betett összeget, a dátumot, valamint, hogy a tranzakció "deposit" volt. példa tranzakció:
    {
        type: "withdraw", 
        amount: 3200, 
        date: "2021-11-16T10:00:00"
    }
    
  3. Az előző feladat mintájára pénzt kivenni szeretnénk. Figyeljen, hogy a kivétel tényét a "withdraw" típus jelzi és nem a negatív összeg!
  4. Kérdezze le a bankszámla egyenlegét. Ezt a tranzakciók megfelelő előjeles összegzésével tudja megtenni.
  5. Végezzen átutalást a két számla között. Figyeljen, hogy az egyik számlán ez pénz kivételt, a másikon pedig elhelyezést jelent.
  6. Bővítsük számla adatait létrehozás dátumával open_date néven és a létrehozás pillanatának időpontját tárolja, valamint az open_balance-al, amely a kezdő egyenleget tárolja. Amennyiben a függvény nem kap kezdő egyenleget akkor ezt vegyük 0-nak. Továbbá legyen egy pénznemet jelölő mező és egy hitelkeretet jelző mezőnk, szintén megadás hiányában 0-nak veendő.
  7. Amennyiben korábban különálló függvényként hoztad létre a tranzakciót, akkor oldd meg, hogy ez a függvény legyen a bankszámla része és bővítsd megjegyzés mezővel. A függvénynek egyen visszatérési értéke amely a sikerességet jelzi. Akkor sikeres egy tranzakció, ha két azonos pnznemű számla között történik az utálás, valamint a levonással még nem éri el a keretet az adott számla.
  8. Legyen egy olyan objektumunk TRANSACTION_TYPE néven, amely két értéket tárol: A WITHDRAW értéke legyen withdraw, valamint ezen minta alapján a deposit.
  9. Hozz létre egy NATIONALITY nevű objektumot, amely a következő mintában tárolja az adatokat: HUN kulcs értéke magyar. Tartalmazza az objektum, francia, német, olasz és spanyol állampolgárságot.
  10. Hozz létre egy CURRENCY nevű objektumot amely a következő mintában tárolja az adatokat: HUF: magyar forint, ez alapján legyenek felvéve a következő pénznemek: euró, amerikai és ausztrál dollár, valamint svájci frank.
  11. Készítsünk egy függvényt, amely egy olyan objektumot hoz létre, amely egy nevet tud tárolni részletekben (firstName, middleName és lastName)
  12. Készíts függvényt amely egy string paraméter alapján előállít egy olyan objektumot amely egy címet tárol.
    • A cím tartalmazza az irányítószámot, várost, utca nevét, jellegét, valamit egy házszámot.
    • Jelenleg nem foglalkozunk a több szóból álló utca névvel valamint az emelet/ajtó számokkal.
    • példa string: "1144 Budapest, Kerepesi út 124."
  13. Készíts olyan factory-t amely előállítja azt az obejktumot, ami a lakcímet és a levelezési címet tartalmazza. Ezeket paraméterként kapja, amennyiben csak a lakcímhez tartozó paraméter van megadva gondoskodj róla, hogy a levelezési cím is ugyanazt kapja.
  14. Hozz létre egy objectumot IDENTITY_TYPE néven amely az idazolványok típusait tárolja.
    • ID értéke: Személyazonosító igazolvány
    • DL értéke: Vezetői engedély
    • PP értéke: Útlevél
  15. Készíts függvényt amely létrehoz egy objektumot, amely tárolja egy igazolvány adatait: típusát, számát és lejárati dátumát.
  16. Hozzunk létre egy függvényt amely egy személyt hoz létre a következő adatokkal, amelyek az előző feladatok függvényiből, objektumaiból állnak elő:
    • name
    • addresses
    • identity
    • nationality
    • accounts: Üres tömbként inicializáld
  17. Készítsd el a következő függvényeket a személyt tartalmazó objektumhoz:
    • findAccount(), számlaszám alapján keresse meg a számlát és adja vissza. Ha nincs a feltételnek megfelelő számla akkor null értékkel térjen vissza.
    • addAccount()
    • closeAccount(), számlaszám alapján töröl egy számlát. Csak akkor törölhető, ha az egyenlege legalább 0.
    • addIdentity(), csak olyan igazolványt fogadj el ami még nem járt le.
    • removeIdentity()
  18. Hozz létre egy bankot objektumot létrehozó függvényt, amely a követekző mezőkkel és tagfüggvényekkel:
    • name
    • address
    • clients, tömbként tartalmazza az összes ügyfelet
    • nationality
    • findAccount(), keresse meg és adja vissza számlaszám alapján a számlát
    • addClient()
    • removeClient(), csak olyan ügyfelet lehet eltávolítani akinek nincs tartozása.
    • getAccounts(), egy olyan függgvény amely lapozással adja vissza a bankban található összes számlát. Az első paraméter tartalmazza a lapon található elemek számát, második paraméter pedig az oldalszámot.
    • numberOfClient()
    • numberOfAccounts()
    • totalOfTransactions()
  19. Hozd létre a következő két bankot:
    1. Kelekótyaföldi Kereskedelmi Bank (KKB)
      • 1111 Budapest, Bástya utca 9.
      • magyar nemzetiségű
    2. Nemzeti Beruházási és Hitel Bank (NBHB)
      • 2000 Szentendre, Tölgy utca 136.
      • magyar nemzetiségű
  20. Mindkét bank rendelkezzen 4-4 ügyféllel, melyk közül legalább 1-1 magyar legyen. Valamint legalább 2 ügyfél aki legalább 2db számlával rendelkezik, amelyek különböző pénzneműek.
  21. Végezzen átutalást a két bank ügyfele között. Legyen olyan utalás is amely sikertelen.
\pagebreak