MASARYKOVA UNIVERZITA FAKULTA INFORMATIKY
Tvorba a využití křivek zůstatkových hodnot při leasingu
BAKALÁŘSKÁ PRÁCE
Jan Staněk
Brno, 2010
Prohlášení Prohlašuji, že tato práce je mým původním autorským dílem, které jsem vypracoval samostatně. Všechny zdroje, prameny a literaturu, které jsem při vypracování používal nebo z nich čerpal, v práci řádně cituji s uvedením úplného odkazu na příslušný zdroj.
Vedoucí práce: RNDr. Pavel Hajn
ii
Shrnutí Obsahem této práce je seznámení s problematikou tvorby a správy křivek zůstatkových hodnot v leasingových společnostech a následný návrh a vytvoření modulu do webové aplikace FisPro, který bude tuto správu zajišťovat. V první části je čtenář seznámen s problematikou operativního leasingu, zůstatkové hodnoty vozidla a s aplikací FisPro, do které bude modul implementován. Druhá část se věnuje návrhu cílového modulu. Podle návrhu je modul vytvořen a následně implementován do aplikace FisPro.
iii
Klíčová slova operativní leasing, zůstatková hodnota, křivka zůstatkových hodnot, editační matice, členění vozidel, přiřazení vozidla.
iv
1. Úvod ……………………………………………………………………………………………… 2
2. Seznámení ………………………………………………………………………………………… 3 2.1. Operativní leasing …………………………………………………………………………… 3 2.2. Aplikace FisPro ……………………………………………………………………………… 4
3. Návrh a implementace modulu pro aplikaci FisPro ……………………………………………… 7 3.1. Databázová struktura ………………………………………………………………………… 7 3.2. Editační matice ……………………………………………………………………………… 8 3.3. Správa křivek zůstatkových hodnot ……………………………………………………….. 11 3.3.1.
Přehled křivek zůstatkových hodnot ……………………………………………….. 11
3.3.2.
Nová křivka ………………………………………………………………………… 11
3.3.2.1. Zadání hodnot …………………………………………………………………. 11 3.3.2.2. Kopie existující křivky ………………………………………………………… 13 3.3.2.3. Grafické zobrazení křivky …………………………………………………….. 14 3.3.2.4. Srovnání s další křivkou ………………………………………………………. 15 3.3.2.5. Přiřazená vozidla ……………………………………………………………… 15 3.3.3.
Srovnání dvou křivek ……………………………………………………………… 15
3.3.4.
Seznam přiřazených vozidel ………………………………………………………. 16
3.3.4.1. Přiřazení vozidla ………………………………………………………………. 17 3.3.4.2. Hromadné přiřazení křivky vozidlům ………………………………………… 18 3.4. Použití křivky zůstatkových hodnot ………………………………………………………. 18
4. Závěr ……………………………………………………………………………………………. 21
Použitá literatura ……………………………………………………………………………………. 22
1. Úvod Zůstatková hodnota je nedílnou součástí smlouvy o nájmu vozidla. Určuje hodnotu předmětu smlouvy (nejčastěji vozidla) po skončení smlouvy. Pokles zůstatkové hodnoty přímo úměrně odpovídá opotřebení vozidla, které vzniká v závislosti na délce pronájmu a počtu najetých kilometrů. Jak správně určit zůstatkovou hodnotu nemusí být vždy jednoduché. Nejčastěji se leasingové společnosti řídí nabídkou autobazarů. Zjistí si, za kolik se dá koupit automobil daného modelu, stáří, s určitou výbavou a podobně. Ne vždy se jim ale podaří najít přesně stejné vozidlo, nehledě na to, že tato procedura vyžaduje čas. Na základě požadavku leasingových společností, klientů firmy Twinsoft, s.r.o., která tuto práci zadala, by měla vzniknout nějaká pomůcka, která toto určování zůstatkové hodnoty zjednoduší. V ideálním případě by se jim pro dané vozidlo, trvání smlouvy a smluvní nájezd měla automaticky nabídnout zůstatková hodnota. Práce je rozdělena do dvou částí. V první části bude čtenář seznámen s problematikou operativního leasingu a významu zůstatkové hodnoty a s aplikací FisPro, do které má být modul implementován. V druhé části bude navrhnut a implementován modul křivek zůstatkových hodnot tak, aby odpovídal požadavkům leasingových společností, které aplikaci FisPro používají, aby funkčností a vzhledem zapadala do celkového konceptu aplikace a aby poskytovala uživatelskou přívětivost, na kterou jsou klienti zvyklí. Leasingové společnosti si od tohoto projektu slibují především ušetření času svých zaměstnanců při určování zůstatkové hodnoty a navíc přesnější zůstatkovou hodnotu na svých smlouvách. Díky možnosti neustále křivky upravovat, mohou její hodnoty udržovat neustále aktuální a reagovat tím na změny na trhu s ojetými automobily. Častou aktualizací hodnot navíc dosáhnou větší přesnosti a zabrání chybám zaměstnanců, kteří by mohli zůstatkovou hodnotu určit vyšší nebo nižší. Kromě modulu křivek zůstatkových hodnot požadují leasingové společnosti také implementaci modulu křivek servisních nákladů. Jelikož by tento modul měl být obsahově téměř totožný a měl by sloužit pouze k určování paušálu za službu servis, nebude tento modul součástí této práce.
2
2. Seznámení 2.1 Operativní leasing Operativní leasing představuje přirozenou alternativu ostatních způsobů pořizování firemních vozidel – finančního leasingu, úvěru či koupi za hotové. Na rozdíl od všech ostatních forem pořizování vozidel není cílem operativního leasingu přechod automobilu do majetku nájemce. Jinými slovy, vozidlo zůstává v majetku leasingové společnosti nejen po celou dobu pronájmu, ale také po jeho skončení. Z tohoto důvodu využívají operativní leasing převážně právnické osoby a podnikatelé. Zákazník si v rámci operativního leasingu vůz pronajímá na předem sjednanou dobu, která se zpravidla pohybuje v rozmezí několika měsíců až roků. V průběhu pronájmu může nájemce využívat dalších doprovodných služeb leasingové společnosti. V takovém případě říkáme operativnímu leasingu „full-service“ leasing. Jde tedy o službu, která by měla zákazníkovi poskytnout maximální servis v oblasti firemních vozidel. Klient si v rámci pravidelných měsíčních splátek platí služby, které ho zbaví prakticky všech nepříjemných povinností, které jsou s pořízením a provozem vozidel spojeny. Tuto výhodu klienti ocení zejména u velkého počtu vozidel (tzv. flotil), kdy full-service leasing zcela odbourá nutnost zaměstnávání nemalého počtu osob, které by normálně byly pověřeny správou tohoto vozového parku. Leasingová společnost by tak za zákazníka měla provádět zejména tyto činnosti: • Přihlásit vůz, který předtím objedná u prověřených partnerů • Vyzvednout registrační značky • Uzavřít havarijní pojištění i zákonné pojištění (tzv. povinné ručení) • Uhradit všechny poplatky a daně (silniční daň, poplatek za rádio, dálniční známku) • Vystavit kartu na pohonné hmoty • Dohlédnout na pravidelný servis • Zajistit sezónní výměnu pneumatik a jejich uskladnění • Vyřídit pojistné události • Nabídnout další nadstandardní služby Právě rozsah služeb spojených s produktem operativní leasing nabízených leasingovou společností je určující pro kvalitu celého produktu. Proč by zákazník měl zvolit operativní leasing: • Firma optimalizuje své cash-flow – hradí pravidelné splátky, které nejsou ovlivněné jednorázovými výkyvy za servis, pojištění, dálniční známky apod. • Není nutné platit počáteční akontaci (první mimořádnou splátku) – volné prostředky tak firma může použít na vlastní podnikatelskou činnost. • Firma profituje na slevách od prodejců automobilů, pojišťoven, servisů, pneuservisů apod. poskytnutých leasingovou společností. • Administrativní jednoduchost pro firmu – veškeré služby jsou společnosti fakturovány najednou. • Úspory personálu – firma zpravidla nepotřebuje vlastní zaměstnance, kteří by se starali o vozový park. Veškerou činnost přebírá leasingová společnost. Co určuje cenu u služby operativní leasing: • V první řadě je to samozřejmě pořizovací cena vozidla, s veškerým objednaným příslušenstvím.
3
• • • • • •
Rozsah služeb poskytovaných leasingovou společností. Rozsah pojištění vozidla. Slevy od dodavatelů leasingové společnosti – prodejců aut, pojišťoven, servisů, pneuservisů, dodavatelů pohonných hmot a podobně. Úvěrová politika leasingové společnosti. Odměna leasingové společnosti. Předpokládaná cena vozidla po ukončení nájmu na trhu ojetých automobilů v závislosti na kalkulovaných, respektive najetých kilometrech a době pronájmu (operativního leasingu) – tzv. zůstatková hodnota.
Zůstatková hodnota tedy závisí na těchto základních parametrech: • Době trvání leasingu • Ujetých kilometrech • Konkrétním vozidle (značce, typu a modelu vozidla) • V menší míře také druh výbavy (některé prvky výbavy zůstatkovou cenu téměř neovlivňují) nebo např. i barva vozidla či velikost objednávané flotily (několik set vozidel stejného typu a barvy může být obtížné naráz umístit po ukončení pronájmu na trhu s ojetými vozidly). Pro leasingovou společnost i pro nájemce je důležité, aby zůstatková hodnota odpovídala skutečné ceně vozidla po skončení leasingu. V opačném případě na tom tratí buď leasingová společnost (pokud je skutečná cena nižší než zůstatková hodnota), nebo nájemce (pokud je skutečná cena vyšší než zůstatková hodnota). Odhadnout ale skutečnou cenu vozidla po uplynutí doby nájmu je složité a vyžaduje to čas, zkušenosti a dobrou znalost trhu, proto by měla vzniknout pomůcka – křivka zůstatkových hodnot. Podle této křivky by se potom měla stanovovat zůstatková hodnota při uzavírání nové smlouvy, resp. při rekalkulaci, nebo změně již stávající smlouvy, a to zcela automaticky.
2.2 Aplikace FisPro - Základní popis Aplikace se interně skládá ze dvou bloků:
Leasing
Kompletní leasingová agenda. Pokrývá v podstatě všechny potřeby leasingové společnosti libovolné velikosti, která se zabývá finančním nebo operativním leasingem, splátkovým prodejem, poskytováním spotřebních úvěrů, apod. Obsahuje velké množství přídavných modulů (úvěry, pojistné smlouvy, zprostředkovatelé, ručení, apod.). Jako velmi perspektivní a žádaný se jeví modul „fullservice“ leasing, který se vyznačuje těmito charakteristickými rysy: o
o
základem modulu je smlouva operativního leasingu s libovolným množstvím předmětů leasingu. Smlouva je založena na produktu, který ji určitým způsobem kategorizuje, navíc výrazně zjednodušuje její pořízení. Aplikace disponuje výkonnou leasingovou kalkulačkou. do modulu lze napojit jakoukoliv externí databázi vozidel, která je používána na českém či slovenském trhu, např. Eurotax, JATO, AAD. Leasingové společnosti, které si modul objednaly, používají databázi JATO, proto se dále v textu budeme odkazovat na tuto databázi.
4
o
o
o o
o o
o
ke smlouvě je možné definovat cca 20 služeb včetně pojištění, každá ze služeb má svůj splátkový kalendář (jednotlivé kalendáře se pak sbíhají v centrálním kalendáři leasingové smlouvy). Kalkulace může být otevřená nebo uzavřená. Otevřená kalkulace je používána v případě, kdy není předem známo, kolik daná služba stojí (např. tankování pohonných hmot). V takovém případě si nájemce určitou část financí předplácí ve splátce nájemného, skutečná hodnota služby je mu pak pravidelně zúčtovávána. U uzavřené kalkulace naopak nájemce do služby „nevidí“, platí ve splátce stále stejnou hodnotu. Zisk nebo i případná ztráta jsou rizikem leasingové společnosti. Služba může být poskytována zdarma, zpravidla jako součást určité marketingové akce (např. pojištění rok zdarma, apod.). modul je otevřen pro integraci dat jiných systémů – automaticky jsou importovány náklady PHM všech velkých poskytovatelů (Shell, Aral, OMV, CCS, apod.). Je také možné importovat došlé faktury od velkých dodavatelů. modul je také připraven na integraci dalších nadstaveb podle přání uživatelů, jde např. o systém dohledání ceny služby nebo vyhodnocení výnosnosti dané služby či celé smlouvy. každého partnera (nájemce) je možné individualizovat – je možné pro něj definovat speciální tiskové formuláře, formát elektronické faktury pro zúčtování nákladů, postup upomínání/penalizace, apod. pro definici tiskových výstupů je využíván profesionální uživatelský nástroj firmy Oracle (Oracle Reports Builder), jehož možnosti jsou téměř neomezené (grafika, logo společnosti, lib. typy písma, apod.). Účetnictví
Disponuje všemi běžně dostupnými moduly (účetnictví, fakturace, banka, pokladna, majetek, neobsahuje mzdy). S ohledem na zpracovávanou velikost dat je maximum procesů zautomatizováno (párování, účtování, import bankovních výpisů, výpočet a účtování kursových rozdílů, apod.). Program FisPro 3.0. je implementován jako moderní vícevrstvá aplikace, ke které uživatel přistupuje přes internetový prohlížeč. Je přitom zcela jedno, odkud se uživatel k aplikaci hlásí (vnitřní síť, vzdálený přístup přes Internet). V celém systému je kladen maximální důraz na zautomatizování procesů a odstínění uživatele od hromadného zpracování dat při zachování možností řešit specifické požadavky. Celý systém je koncipován jako vícejazyčný, každý uživatel si může zvolit svůj komunikační jazyk. - Struktura Aplikace je složena z těchto vrstev: databáze. Je použita databáze firmy Oracle, v současnosti verze 10g. V aplikaci je využita pro základní uložení dat včetně primárních validací. V některých případech je využita pro rychlostní optimalizaci, dále pak pro podporu tvorby výstupů. •
aplikační vrstva. Zde je implementována business logika aplikace. Ke komunikaci s databází využíváme knihovny Oracle BC4J. Celá vrstva je vytvořena v jazyce Java, vývojové prostředí Oracle9i JDeveloper.
•
prezentační vrstva. Na straně serveru implementována v jazyce Java. Pomocí knihovny je generován HTML kód pro klienta. Použitou technologií je JSP. Obě vrstvy běží za pomocí aplikačního serveru od firmy Oracle.
5
•
klient. Je použito prostředí internetového prohlížeče. Obsah stránek je dodán ze serveru v komprimované formě, komfort je zvýšen za použití Java skriptů a technologie AJAX. V plánu firmy je implementace klienta pro přístup k aplikaci z mobilního telefonu či jiných externích zařízení.
- Výstupy Pro standardní tvorbu výstupů je použit nástroj Oracle Reports Builder, který umožňuje komfortní uživatelskou tvorbu libovolných sestav či tiskových formulářů. Standardní výstupy jsou součástí dodávky. Díky oddělení tvorby výstupů od aplikace je jejich vytváření naprosto nezávislé na práci s aplikací, uživatel nemusí čekat, až sestava doběhne a může pokračovat ve své práci. Dokončení operace je indikováno. Pro uživatelskou analýzu dat lze využít obecný a velmi komfortní nástroj Oracle Discoverer, součástí dodávky programu je podpora pro nasazení tohoto nástroje. - Asynchronní zpracování dat na pozadí Aplikace je určena pro střední a velké společnosti s velkým objemem dat, která se pravidelně zpracovávají pomocí desítek hromadných akcí. Proto - podobně jako sestavy - běží na pozadí. Pro zpracování je použito asynchronního přístupu, použitá technologie je Oracle Advance Queing. Výhodou je odstínění koncových uživatelů od časové náročných procesů, eliminace zahlcování serveru a výborná škálovatelnost (různé typy i počet posluchačů, stanovení priorit jednotlivým hromadným akcím, apod.). Jednotlivé akce lze plánovat v čase a spouštět bez účasti uživatele. - WEB Dealer Pro potřeby pořizování smluv mimo aplikaci byla vyvinuta samostatná aplikace. Pomocí ní lze velmi jednoduše pořídit smlouvu s minimem nejnutnějších údajů. Smlouva je on-line odeslána do centrální aplikace, z bezpečnostních důvodů s odstíněním dealera od centrální databáze. Zde je buď automaticky, nebo manuálně zpracována (schválena, resp. odmítnuta). Při schválení odcházejí dealerovi e-mailem příslušné tiskové podklady. - Komunikace s okolním prostředím Kromě standardních prostředků jako je tiskový výstup v různých formátech (včetně XML) či souborový export je možno zasílat dokumenty jako přílohy elektronické pošty. Generované dokumenty lze automaticky začleňovat do digitálního archivu. Po implementaci bezdrátových technologií bude k dispozici zasílání SMS jako standardní prostředek upozornění či informování zákazníků. V určitých případech se aplikace napojuje na produkty třetích stran. Je možno využít dodaného rozhraní aplikace nebo standardní internetové komunikace. Tímto způsobem lze přímo zapisovat data do externí aplikace (např. digitální archiv) nebo naopak data importovat do přímo do aplikace (např. import katalogů, databází vozidel, faktur, kurzovních lístků, apod.). V těchto případech je ovšem nutná přímá programová podpora aplikace, jde většinou o řešení na míru podle požadavků zákazníka. Samostatnou věcí je podpora mateřských společností uživatelů pro sběr dat z poboček a jejich komplexního zpracování v centrále. Jedná se o projekty typu Basel II nebo export dat do datového skladu mateřské společnosti či pro účely webových stránek uživatele. Tyto záležitosti bývají často programovány přímo v databázi, kvůli zajištění max. rychlosti.
6
3. Návrh a implementace modulu pro aplikaci FisPro 3.1 Databázová struktura Samotná křivka je tvořena svou identifikací (číslo, název, platnost, …) a svými hodnotami. Současný požadavek leasingových společností je 85 hodnot (5 hodnot doby leasingu a 17 hodnot nájezdu). Nebyla ale vyloučena možnost, že se v budoucnu tyto rozsahy doby leasingu, nebo nájezdu změní a tím i počet hodnot. Proto asi nejlepším řešením bude křivku rozdělit do dvou tabulek: hlavičky a řádku.
Hlavička křivky by měla obsahovat tyto položky: Interní kód Číslo křivky Název křivky Platnost od Platnost do Interní kód je unikátní hodnota typu number (10), která v databázi jednoznačně identifikuje záznam, je primárním klíčem a je zároveň použita jako případný cizí klíč. Každá tabulka (kromě vazebních tabulek), použitá v aplikaci FisPro má takový primární klíč. Číslo křivky a název křivky jsou povinné textové údaje, které slouží k identifikaci křivky, případně k jejímu hledání, řazení křivek, či filtrování. Poslední dvě položky jsou datumové položky určující platnost záznamu. Řádek křivky (s ohledem na způsob editace křivky, který bude popsán dále, by byl pravděpodobně výstižnější název „prvek křivky“ či „hodnota křivky“, pro sjednocení terminologie však ponechme std. označení) by měl reprezentovat jednu hodnotu křivky a měl by tedy obsahovat položky: Interní kód Interní kód hlavičky Doba nájmu Nájezd Hodnota Význam položky interní kód byl vysvětlen výše. Interní kód hlavičky je cizí klíč určující, ke které křivce daný řádek patří. Doba nájmu a nájezd identifikují řádek v rámci křivky. Trojice hodnot interní kód hlavičky, doba nájmu a nájezd by měla být unikátní. Neměly by tedy existovat 2 hodnoty pro danou hlavičku, dobu nájmu a nájezd. Poslední položka je hodnota, která by měla vyjadřovat hodnotu křivky v procentech (procento zůstatkové hodnoty, které je při výpočtu aplikováno na pořizovací cenu). Tím jsme vytvořili databázovou podporu pro křivky a její hodnoty. Dalším krokem bude upravit databázi pro možnost přiřazení křivky ke konkrétnímu vozidlu. Abychom mohli toto provést, bylo by dobré si nejprve projít strukturu členění vozidel v aplikaci FisPro.
7
Pro členění vozidel existuje v programu FisPro třívrstvá struktura. Nejprve se vozidla člení podle značek, potom podle typu a nakonec podle konkrétního modelu. Značka vozidla je například Audi, BMW, Škoda, typ vozidla může být A4, Octavia, Roomster, model vozidla potom obsahuje údaje o konkrétním autě, tedy objem motoru, případně rozdělení podle výbavy, například 1.9 Tdi Elegance, nebo 1.6 TSI Combi. Původní požadavek leasingových společností byl přiřadit k danému modelu vozidla právě jednu křivku. Jelikož hlavička křivky obsahuje údaje o platnosti křivky, mělo by být možné k modelu přiřadit více křivek, ale vždy by měla být právě jedna z nich platná. Pokud by se k modelu ukládala pouze jedna křivka, nemohli bychom zpětně zjistit, ke kterým (již neplatným) křivkám byl model dříve přiřazen. Zavrhli jsme tedy možnost mít v tabulce modelu vozidla uložený interní kód hlavičky křivky, protože bychom nemohli sledovat historii. Využijeme zde tedy vazební tabulky mezi modelem a hlavičkou křivky.
Vazební tabulka by měla obsahovat sloupce:
Interní kód modelu vozidla Interní kód hlavičky křivky Korekce
Primární klíč tabulky tvoří dva cizí klíče interní kód modelu vozidla a interní kód hlavičky křivky. Dále tabulka obsahuje položku Korekce. Údaj slouží pro možnost říct, že pro daný model budou hodnoty křivky posunuté o danou hodnotu. Dále by mělo být možné křivku přiřadit k celému typu vozidla, nebo ke značce vozidla. V těchto případech bude využita obdobná vazební tabulka, které kromě interního kódu modelu vozidla, bude obsahovat interní kód typu vozidla, resp. značky vozidla. Význam přiřazení by měl být takový, že pokud daný model není přímo přiřazený k nějaké platné křivce, podíváme se, zda není přiřazený k nějaké platné křivce typ vozidla odpovídající danému modelu. Pokud tam nenalezneme platnou přiřazenou křivkou, zkusíme ještě vazební tabulku pro značku vozidla. Když ani tam nenajdeme přiřazenou platnou křivku, zůstatková hodnota pro dané vozidlo nebude dohledána.
3.2 Editační matice Jedná se o nový editační prvek. Editační matice je dvojrozměrný objekt, který obsahuje n*m hodnot. Pokusme se vytvořit nejprve jakési jádro, kterému na vyšší úrovni přidáme další funkcionalitu. - Jádro Vždy bychom chtěli, aby matice měla tyto vlastnosti, které bude možné zvenku nastavit. Pro tento účel implementujeme nové parametry, a to u každého modulu, ve kterém bude matice použita:
8
řádky – u řádků bychom chtěli mít možnost ovlivnit tyto hodnoty (implementujeme tyto parametry: 1. Řádek - název – označení významu řádků, bude zobrazeno na svislé ose matice – VarChar2 (100). 2. Řádek - počáteční hodnota – hodnota prvního řádku – Number (3). 3. Řádek - navýšení – hodnota kroku – Number (2). Vycházíme z toho, že hodnoty řádků jsou vždy zvyšovány lineárně. 4. Řádek – počet – počet řádků – Number (2). Při editaci omezme maximální počet hodnotou 10 řádků.
sloupce – sledované hodnoty u sloupců jsou v podstatě stejné jako u řádků, pouze max. počet sloupců bude možné zadat hodnotou 30 sloupců.
hodnoty – jedná se o ovlivnění vlastností zadávaných hodnot (budou to vždy čísla). Bude možné zadat tyto parametry: 1. Hodnota (základní režim)- délka – počet cifer zadaného čísla (Number (2)).
2. Hodnota (základní režim) - desetinná místa – počet desetinných míst zadaného čísla (Number (1)). - Interpolace Matice se rozšíří o tyto možnosti:
každý řádek bude zleva uveden check-boxem. Jeho zatržení bude signalizovat, že daný řádek bude možné zpracovat doplňkovými funkcemi (viz dále). Check-box bude možné libovolně editovat, v určitých případech bude zatržen programem automaticky.
výpočtové hodnoty – jedná se o právě dvě uživatelem zadané hodnoty v daném řádku. Tyto budou sloužit pro interpolační výpočet (viz dále) – ze zadaných hodnot budou dopočteny zbývající hodnoty řádku. Výpočtové hodnoty budou po interpolaci zvýrazněny. Program by měl po vyplnění první hodnoty v řádku zatrhnout check-box pro následné zpracování řádku výpočtem.
Editační formulář matice bude doplněn o dvě funkční tlačítka:
Dopočíst – po stisku tlačítka program provede interpolaci (dopočet) hodnot v těch řádcích, u kterých je zatržen check-box. Chování při výpočtu je následující: 1. interpolace může být provedena pouze tehdy, pokud jsou v takovém řádku vyplněny právě dvě hodnoty. Pokud by tomu tak nebylo (hodnot bude více nebo méně), neprovede se nic (check-box zůstane zatržen). 2. vypočtené hodnoty budou zaokrouhleny na počet desetinných míst, uvedený v parametrech „Hodnoty“, matematicky. 3. jak již bylo řečeno, po výpočtu budou barevně zvýrazněny výpočtové hodnoty, tzn. dvojice hodnot, ze kterých byl výpočet proveden. 4. po výpočtu bude check-box u zpracovaného řádku odstraněn. 5. po výpočtu budou všechny hodnoty daného řádku (vč. výpočtových) zamknuty.
9
Vyčistit – po stisku tlačítka budou vyprázdněny hodnoty ve všech řádcích, u kterých je zatržen check-box. Check-box bude přitom u vyprázdněných řádků odstraněn. Současně budou všechny hodnoty daného řádku odemknuty (pokud byly předtím zamknuty).
- Posun Jde o doplňkovou funkci, která upraví všechny hodnoty o zadanou hodnotu. Funkci bude možné použít pouze tehdy, pokud budou v matici vyplněny všechny hodnoty (ručně nebo dopočtem). Po stisku tlačítka proto program zkontroluje, zda je celá matice vyplněna, v opačném případě vypíše zprávu do stavového řádku a akci ukončí. Program dále nabídne k editaci formulář pro zadání posunu. V něm bude pouze jedna editační položka s názvem „Hodnota posunu“. Formát položky bude dán parametrem hodnoty (Délka a Desetinná místa). Hodnota posunu může být kladná i záporná. Po potvrzení editace program upraví všechny hodnoty v matici dle zadaného údaje. Tato funkce je velmi užitečná v případě, kdy obsluha nemá k dispozici statistické údaje přímo k danému vozidlu, avšak je schopna využít údaje o jiném vozidlu, které o určitou hodnotu posune. - Alternativní režim editace Předem je potřeba říci, že do databáze bude ukládána pouze jedna matice – základní. Pro potřeby komfortu uživatele při editaci matice bude nutné implementovat (pouze v paměti) ještě jednu matici a současně výpočtový vztah mezi základní a alternativní maticí. Přepínání mezi maticemi bude na samostatné tlačítko. Postup bude následující:
pod maticí implementujeme tlačítko s názvem, který popisuje jeho význam (např. Ceny- % pro práci se zůstatkovou hodnotou).
nad matici doplníme identifikaci režimu, ve kterém se nacházíme – ve jmenovaném případě to bude „Režim – ceny“, resp. „Režim - %“).
pro potřeby práce s alternativní maticí implementujme další dvojici parametrů, obdobnou jako pro dvojici parametrů „Hodnoty“ (viz. kap. 1). Parametry se budou jmenovat „Hodnota (alt. režim) – délka“, resp. Hodnota (alt. režim) – des. místa“.
po stisku tlačítka program provede tyto kroky: 1. změní identifikaci režimu (viz předchozí odrážka). 2. každou vyplněnou hodnotu přepočte dle jasně daného výrazu, který bude implementován přímo v kódu. Pro zaokrouhlení se použijí parametry pro formát hodnoty, zaokrouhlujeme matematicky, na zadaný počet desetinných míst.
je dobré myslet na to, že v některém případě bude možné i v alternativním režimu hodnoty editovat, v jiném případě budou pouze pro zobrazení (zmizí check-boxy u jednotlivých řádků a současně zamkneme tlačítka „Dopočíst“, „Vyčistit“ a „Posun“.
10
3.3 Správa křivek zůstatkových hodnot 3.3.1 Přehled křivek zůstatkových hodnot Vzhled obrazovky se seznamem existujících křivek je uveden na následujícím obrázku.
K dispozici je standardní Browser záznamů, který je možné ovládat pomocí funkčních tlačítek - funkce pro práci se seznamem křivek jsou standardní jako v ostatních částech aplikace FisPro. Je také možné měnit rozložení sloupců Browseru (tlačítko „Výběr sloupců“), vyhledávat konkrétní záznam (tlačítko „Hledat“) či filtrovat Browser podle pevně daných či uživatelských kritérií (tlačítka „Pevná filtrace“ a „Filtrace“).
3.3.2 Nová křivka Novou křivku lze vytvořit dvěma způsoby: První způsob spočívá ve vyplnění hodnot do prázdného zadávacího formuláře křivky, popř. s výše zmíněnými možnostmi interpolace. Druhý způsob spočívá v označení podobné křivky v seznamu křivek a vytvoření kopie. Ve zkopírované křivce se následně provedou potřebné změny a křivka se uloží. Pro oba způsoby vytváření nové křivky existují funkce k usnadnění vytváření nového průběhu křivky. Grafické zobrazení průběhu křivky a srovnání s jinou existující křivkou.
3.3.2.1 Zadání hodnot Volba je dostupná přes tlačítko Přidat v přehledu křivek. Vzhled zadávací obrazovky je uveden na následujícím obrázku:
11
1,2 1 Řada1 0,8
Řada2
0,6
Řada3 Řada4
0,4
Řada5 0,2 0 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
V horní části obrazovky je nutné zadat identifikační údaje křivky: Číslo křivky (povinný údaj), Název křivky (povinný údaj), Datum platnosti od, Datum platnosti do. Obě datumové položky budou mít standardní význam platnosti záznamu jako v ostatních částech aplikace FisPro. Položku Nákupní cena je třeba vyplnit, pokud zadání probíhá v módu cen a následně pro uložení je třeba vypočítat hodnoty průběhu křivky v procentech. Zadání klíčových hodnot průběhu křivky: Zadávat klíčové hodnoty průběhu křivky lze buď v módu cen, nebo v módu procent poklesu křivky. Ukládají se pouze procenta poklesu křivky, proto pokud je zadání provedeno v módu cen, je třeba pro výpočet procent zadat ještě nákupní cenu. Klíčové hodnoty křivky zadá uživatel do polí editační matice. V každém řádku je nutné pro následné dopočítání zbývajících hodnot zadat právě dvě libovolné hodnoty, doporučuje se zadat hodnoty s co možná největší vzdáleností od sebe. Před uložením křivky se provede kontrola na vyplnění povinných údajů: číslo křivky, název křivky, všechny hodnoty křivky v procentech.
12
V současné době se používají nájezdy od 40 do 200 tisíc km a doby leasingu 12 až 60 měsíců. Je nutné počítat s možností případného rozšíření těchto rozsahů. Dopočítání zbývajících hodnot: Po zadání klíčových hodnot bude zpřístupněná volba Dopočet. Zadané klíčové hodnoty budou vždy graficky odlišené od dopočítaných. Dopočet bude proveden výpočtem lineární rovnice y = ax + b, kde y = cena nebo procento, x = nájezd. Protože jsou vždy známy dvě hodnoty křivky, dopočítají se konstanty a=(y2–y1)/(x2–x1), b=y1-x1x*a. Po dopočtu jsou hodnoty dále editovatelné. Volba Dopočet již nebude přístupná, pouze pokud by byla opět naplněna podmínka naplnění právě dvou hodnot v řádku. Volbou Potvrdit se uloží naposledy zadané hodnoty (ať už dopočítané nebo manuálně přepsané). Posun křivky: Pokud uživatel provede volbu Posun, zpřístupněnou po kompletním vyplnění tabulky, zobrazí se zadávací formulář pro vyplnění posunu:
Všechny procentní hodnoty se posunou o zadanou hodnotu. Hodnota posunu může být kladná i záporná. Přepínání mezi módem cen a procent: Možnost přepínat mezi módy je v okamžiku, kdy je tabulka prázdná nebo kompletně vyplněná (dopočítaná) a zároveň je zadaná pořizovací cena.
3.3.2.2 Kopie existující křivky Volba je dostupná přes tlačítko Kopie v přehledu křivek. Vytvoření kopie existující křivky probíhá standardním způsobem v aplikaci FisPro. Otevření zkopírovaného záznamu zobrazí následující okno:
13
1,2 1 Řada1 0,8
Řada2
0,6
Řada3 Řada4
0,4
Řada5 0,2 0 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Křivku lze změnit: ruční editací volbou Posun volbou Vyčistit řádek a Dopočet Před uložením kopie je nutné změnit Číslo křivky a Název křivky – standardní chování FisPro v případě kopie záznamu.
3.3.2.3 Grafické zobrazení křivky Grafické zobrazení křivek slouží především pro vizuální kontrolu případných odchylek, které nejsou v číselném zobrazení transparentní. Zobrazení grafu se provede volbou Nové zobrazení. Tato volba vykreslí graf ze zadaných hodnot, kde osa x je nájezd, osa y je cena nebo procento. Grafické zobrazení je přístupné pouze, pokud je tabulka kompletně vyplněna. Osa y (cena nebo procenta) se zobrazuje podle aktuálního zobrazení tabulky. Pokud se zobrazení tabulky přepne, přepne se i zobrazení grafu.
14
3.3.2.4 Srovnání s další křivkou Srovnání zadávané a jiné zvolené křivky je přístupné na záložce Srovnání:
Srovnávaná křivka (dolní) se bude přepínat do zobrazení % nebo cena podle aktuálně zapnutého zobrazení horní křivky.
3.3.2.5 Přiřazená vozidla Záložka Přiřazená vozidla bude obsahovat seznam vozidel přiřazených k dané křivce. Označením konkrétního záznamu a volbou Zobrazit se otevře detail přiřazeného vozidla. Jiné než zobrazovací funkce nebude uvedená záložka mít.
3.3.3 Srovnání dvou křivek V seznamu křivek na označené křivce pravým klikem lze vyvolat volbu „Srovnání s..“. Okno pro porovnání dvou křivek se otevře s vyplněnou horní křivkou (označená v seznamu). Dále lze první i druhou křivku vybírat libovolně.
15
V okně porovnání křivek lze zobrazit mód absolutních hodnot procent nebo pouze odchylky.
3.3.4 Seznam přiřazených vozidel Vzhled obrazovky se seznamem vozidel a jejich křivek je uveden na následujícím obrázku:
Pevná filtrace bude umožněna podle sloupců: Značka Typ Karoserie
16
Model Objem motoru Cena Datum zadání do databáze Číslo křivky Název křivky
Je dále nutné mít možnost vyfiltrovat všechny záznamy o vozidlech, které nemají přiřazenu žádnou křivku. Volba Výběr sloupců bude umožňovat zobrazení dalších sloupců nad rámec základního seznamu. Další sloupce jsou určeny z databáze JATO.
3.3.4.1 Přiřazení vozidla Pro přiřazení vozidla k příslušné křivce se otevře okno s údaji o vybraném vozidle: Vozidlo - Oprava Značka
Ford
Karoserie
Sedan
Typ
Focus
Model
1.6 Duratec Trend (85) (4)
Orientační cena
500 000
Objem
1596 Korekce
Křivka
Nájezd 40
50
60
70
80
90
100
110
120
130
150
140
160
170
180
190
200
12 24 36 48 60 Ceny - %
Diagram
Srovnání
Nové zobrazení
1,2 1 Řada1 0,8
Řada2
0,6
Řada3 Řada4
0,4
Řada5 0,2 0 1
Potvrdit
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Zpět
Uživatel vyplní povinný údaj Křivka, případně doplní korekci. Korekce upravuje všechny tabulkové hodnoty. U zvolené křivky se zobrazí tabulkové hodnoty, u nichž lze přepínat mód zobrazení Ceny - %. Ceny se dopočítávají z orientační ceny z databáze JATO, kterou lze ale pro výpočet editovat. Změna ceny se následně neukládá. K vozidlu se bude ukládat typ křivky a korekce.
17
3.3.4.2 Hromadné přiřazení křivky vozidlům Pro hromadné přiřazení křivky vozidlům bude sloužit funkce multi-výběru, tzn. že nad vyfiltrovaným seznamem bude možné spustit tlačítkem Hromadný výběr seznam vozidel pro hromadný výběr. Před zobrazením seznamu se provede kontrola na maximum vyfiltrovaných záznamů. Pokud počet vyfiltrovaných údajů přesáhne maximum, je uživatel vyzván ke zmenšení množiny záznam úpravou filtru. Obrazovka seznamu pro hromadný výběr: Vozidlo - hromadný výběr Značka
Typ
Karoserie
Model
Objem motoru
Filtrace:
Pevná filtrace
Třídění:
Výběr sloupců
Přiřadit
Zobrazit
Orient.Cena
Datum zadání do db
Číslo křivky
Název křivky
Korekce
Hledat
Zpět
Tlačítkem Přiřadit se zobrazí formulář pro vyplnění křivky a korekce:
3.4 Použití křivky zůstatkových hodnot Jak jsme již řekli, křivky zůstatkových hodnot se používá v situacích, kde je potřeba určit zůstatkovou hodnotu předmětu smlouvy. Toto se děje v aplikaci FisPro na dvou místech.
18
Prvním z nich je pořízení nové smlouvy, nebo oprava již běžící smlouvy. Nejprve je nutné na předmětu určit specifikaci vozidla, konečný stav tachometru a trvání smlouvy (pokud není určeno ještě před přidáváním předmětu na smlouvu).
Poté se při potvrzení dohledá procento zůstatkové hodnoty z křivky zůstatkových hodnot a při zadání pořizovací ceny vozidla dopočítá i zůstatková hodnota vozidla.
19
Druhou možností, kde se křivka zůstatkových hodnot využívá, je tzv. rekalkulace smlouvy. K rekalkulaci smlouvy dochází obvykle, pokud nájemce najíždí s vozidlem více, nebo méně kilometrů, než bylo původně ve smlouvě sjednáno. Pokud například ve smlouvě o nájmu vozidla na 24 měsíců byl sjednán očekávaný konečný stav tachometru 150000 kilometrů a po dvanácti měsících má najeto jen 40000 kilometrů, dá se předpokládat, že daných 150000 kilometrů nestihne najet. Nebo v opačném případě, pokud po dvanácti měsících má najeto už 120000 kilometrů, pravděpodobně nakonec najede mnohem více než 150000 kilometrů. V takovém případě dochází po dohodě s nájemcem k rekalkulaci smlouvy. Rekalkulace smlouvy spočívá ve změně trvání smlouvy, nebo očekávaného koncového stavu tachometru, případně ve změně obou hodnot. Jelikož zůstatková hodnota na těchto dvou hodnotách závisí, je nutné ji při rekalkulaci změnit a v tomto případě se tedy zůstatková hodnota dohledává z křivky zůstatkových hodnot pro dané vozidlo.
20
4. Závěr Hlavním cílem této práce bylo navrhnout a implementovat modul pro správu křivek zůstatkových hodnot do aplikace FisPro. Modul i aplikace FisPro je vlastnictvím firmy Twin Soft s.r.o. Modul byl tvořen na základě požadavků leasingových společností, klientů firmy Twin Soft s.r.o., kterým měl ulehčit práci při zadávání zůstatkové hodnoty na nových smlouvách o nájmu vozidla, nebo na již rozběhnutých smlouvách. V první části práce jsme čtenáře seznámili s problematikou operativního leasingu. Byly představeny jednotlivé výhody a nevýhody operativního leasingu a proč a kdy je dobré operativní leasing využít a proč nikoliv. Čtenář byl seznámen s pojmem zůstatková hodnota a jeho významu ve smlouvě o nájmu vozidla. Dále byla čtenáři představena aplikace FisPro. Nejprve k čemu aplikace slouží a pro koho je vhodná, dále potom jaké programy a vývojová prostředí se využívají k jejímu vývoji. Ve druhé části byl navrhnut modul pro správu křivek zůstatkových hodnot na všech aplikačních vrstvách (databáze, aplikační logika, uživatelské rozhraní) a následně byl modul implementován do aplikace FisPro. Aplikace byla obohacena o možnost editace pomocí editační matice a následné zobrazení pomocí grafu, která do té doby v aplikaci nikde použita nebyla a která musela být za tímto účelem do aplikace implementována. V době odevzdání práce je modul kompletní a byl předán v nové verzi aplikace zákazníkům, kteří s ním pracují. Modul byl navrhnut tak, aby bylo později možné ho rozšiřovat na základě připomínek uživatelů, například přiřazení křivky nejen ke konkrétnímu modelu vozidla, ale třeba i k celé značce osobních automobilů.
21
Použitá literatura [1] Sun Microsystems, Inc., 2008. The Java EE 5 Tutorial[online]. Part No: 819-3669-11. Dostupný z URL:
[2] Oracle Corporation. Oracle Java Roadmap: Business Components for Java (BC4J)[online]. Dostupný z URL: [3] Oracle Corporation. Oracle JDeveloper Documentation[online]. Dostupný z URL: [4] Eckel, Bruce. Myslíme v jazyku Java – knihovna programátora. 1. vyd. Praha: Grada Publishing, spol. s r.o., 2001. 432 s. ISBN 80-247-9010-6 [5] Eckel, Bruce. Myslíme v jazyku Java – knihovna programátora. 1. vyd. Praha: Grada Publishing, spol. s r.o., 2001. 432 s. ISBN 80-247-9010-6 [6] Bloch, Joshua. Java efektivně – 57 zásad softwarového experta. Grada Publishing spol. s r.o., 2002. ISBN 80-247-0416-1 [7] Sun Microsystems, Inc. Java 2 Platform Standard Edition 5.0 API Specification[online] Dostupný z URL:
22