Feladat
Amikor egy munkáltató távolabbi helyszínre küldi ki valamely munkavállalóját munkavégzés céljából,
aki az utazáshoz a saját autóját használja, akkor jogszabályban rögzített módon a munkáltató
útiköltségtérítésben részesítheti a munkavállalót egyrészt az elhasznált üzemanyag mennyisége
után, másrészt az autó amortizációja (értékcsökkenése) miatt. Az elszámolható összeg függ az
autó típusától (annak üzemanyagfajtájától, és motortérfogatától), illetve értelemszerűen a
teljesített út hosszától.
Fenti összeg meghatározása érdekében készítsen webes felületet, mely egy konkrét út után kiszámolja
az adható költségtérítés mértékét, és az így kiszámolt összeget az adatokkal együtt kinyomtathatóvá
és aláírhatóvá teszi. Kiindulásként használja az alábbi mintát:
A megvalósítás során a következőkre legyen tekintettel:
1.
Az
Üzemanyag fajtája mezőben a
Benzin és a
Gázolaj opciók közül lehessen választani.
2.
Benzinüzemű autók esetén (a vonatkozó jogszabályoknak megfelelően) a motortérfogat függvényében
a következő fogyasztási normákat kell felkínálnia az űrlapnak:
- 1000 cm3-ig 7,6 l/100km
- 1001-1500 cm3 között 8,6 l/100km
- 1501-2000 cm3 között 9,5 l/100km
- 2001-3000 cm3 között 11,4 l/100km
- 3001 cm3 fölött 13,3 l/100km
Dízelautók esetén a választható fogyasztási normák az alábbiak:
- 1500 cm3-ig 5,7 l/100km
- 1501-2000 cm3 között 6,7 l/100km
- 2001-3000 cm3 között 7,6 l/100km
- 3001 cm3 fölött 9,5 l/100km
3.
Az üzemanyag egységárát (a tényleges üzemanyagártól függetlenül) a Nemzeti Adó- és Vámhivatal (NAV)
teszi közzé minden hónapra. Elszámoláskor ezeket az árakat kötelező alkalmazni. A közzététel helye:
A fenti linket tüntesse fel a szerkesztendő weblapon, hogy annak majdani használói közvetlenül
juthassanak el a NAV felületére.
4.
Az
Ellenőrzés és számítás nyomógomb elsőként ellenőrizze le, hogy minden szükséges adat ki lett-e
töltve az űrlapon - hiány esetén jelezzen hibát. Teljesen kitöltött űrlap esetén végezze el, és irassa ki
a számítás eredményeit.
5.
Fentiekből az útiköltséget az alábbiak szerint kell kiszámoltatnia a programmal:
- útiköltség = fogyasztási_norma * üzemanyagegységár * megtett_kilométer / 100
Az eredményt egész számra kerekítve jelenítse meg!
6.
Az autó értékcsökkenése miatt kilométerenként további 15 Ft költség számolható el.
7.
Az
Nyomtatás nyomógomb mindaddig ne legyen aktív (megnyomható), amíg a számolás eredményei nem jelentek
meg a felületen - vagyis e nyomógomb aktiválását az előző nyomógomb végezze el a számítások után.
8.
Az
Nyomtatás gomb megnyomásának eredményeként jelenjen meg a böngészőben a nyomtatási kép, mely az
űrlap eredeti tartalmán kívül a lap alján tartalmazza a mai dátumot, és egy aláíráshelyet is - ám ne
szerepeljen már rajta a NAV-os link, valamint a nyomógombok sem.
Segítség a megvalósításhoz
Tipp a 2. ponthoz
A fogyasztási normákat tartalmazó legördülő elem kialakítása úgy elegáns és felhasználóbarát, ha a
benne szereplő választható értékek dinamikusan hozzáigazodnak a felette szereplő párbeszédelemből
választott üzemanyag fajtájához. Egy ilyen konstrukció megvalósításához ad támpontot a
Szovjet és jugoszláv utódállamok című oldalon kialakított
mintapélda forráskódja.
Tipp a 7. ponthoz
Egy nyomógombot alapból letiltott állapotban létrehozni a disabled paraméterrel lehetséges:
<input type='button' ... disabled>
ezt követően a gombot JavaScriptből engedélyezni pedig az alábbi formációval:
document.urlap.gomb.disabled = false
Tippek a 8. ponthoz
A nyomtatási képernyő megjelenítése és/vagy a nyomtatás kezdeményezése JavaScriptben a
window.print()
függvénnyel lehetséges.
Annak beállítása, hogy a HTML dokumentum egyes részei a nyomtatott változatban ne jelenjenek
meg (vagy éppen hogy bizonyos részei csak ott jelenjenek meg), egyebek mellett a CSS-beli
@media
kulcsszó használatával oldható meg.
Ennek alapján pl. egy bekezdés, amit csak nyomtatásban szeretnénk látni, de a képernyőn nem, az alábbi
beállítással formázható:
@media screen
{
p.nyomtatni
{
display : none ;
}
}
Ugyanennek mintájára pl. a nyomtatott változatban elrejteni kívánt nyomógombokhoz az alábbi
stílusbeállítást érdemes társítani:
@media print
{
input[type=button]
{
display : none ;
}
}