Mendelova univerzita v Brně Provozně ekonomická fakulta
Informační systém pro firmu NetFirmy Diplomová práce
Vedoucí práce: Ing. Ondřej Popelka, Ph.D.
Bc. David Šupita
Brno 2012
Rád bych na tomto místě poděkoval vedoucímu mé práce panu Ing. Ondřeji Popelkovi, Ph.D. za odborné vedení, cenné rady a věcné připomínky.
Prohlašuji, že jsem tuto práci vyřešil samostatně s použitím literatury, kterou uvádím v seznamu. V Brně dne 20. května 2012
__________________
Abstract Šupita, D. The information system for company NetFirmy. Diploma thesis. Brno: Mendel University in Brno, 2012. The goal of this diploma thesis is to improve efficiency of key processes in NetFirmy. The company is providing regionally targeted catalogs. These catalogs are implemented as web applications and enable users to search companies, required services or products. In this diploma thesis, there are described inefficient processes caused by the original information system. In the new information system for NetFirmy, optimized processes are implemented and there are control mechanisms which minimize erroneous data occurrence. Increased efficiency was confirmed by management and sales representatives. Keywords Information system, web application, process optimization, database
Abstrakt Šupita, D. Informační systém pro firmu NetFirmy. Diplomová práce. Brno: Mendelova univerzita v Brně, 2012. Cílem práce je zvýšení efektivity klíčových procesů ve firmě NetFirmy. Firma je provozovatelem regionálních katalogů. Tyto katalogy jsou realizovány jako webové aplikace a umožňují uživatelům vyhledávat firmy, požadované služby, nebo výrobky. V této práci jsou popsány neefektivní procesy původního informačního systému. Do inovovaného informačního systému firmy NetFirmy jsou navrženy a implementovány optimalizované procesy a přidány kontrolní mechanizmy, které minimalizují výskyt chybných dat. Zvýšení efektivity bylo ověřeno managementem a obchodními zástupci. Klíčová slova Informační systém, webová aplikace, optimalizace procesů, databáze
Obsah
5
Obsah 1
2
Úvod a cíl práce
8
1.1
Úvod .......................................................................................................... 8
1.2
Cíl .............................................................................................................. 8
Stávající stav 2.1
Veřejná část katalogu ................................................................................ 9
2.1.1 2.2
Činnost firmy ...................................................................................10
Použité technologie a knihovny ............................................................... 11
2.2.1 2.3
9
Použité knihovny.............................................................................. 11
Popis informačního systému ................................................................... 12
2.3.1
Uživatelské rozhraní ........................................................................ 12
2.3.2
Role v systému ................................................................................. 13
2.4
Moduly založené na Datagridu ................................................................ 13
2.4.1
Správa firem ..................................................................................... 13
2.4.2
Přidělování firem ............................................................................. 14
2.4.3
Přednostní výpisy ............................................................................. 14
2.4.4
Správa oborů .................................................................................... 15
2.4.5
Tvorba faktur ................................................................................... 15
2.4.6
Správa uživatelů ............................................................................... 15
2.4.7
Statistiky........................................................................................... 16
2.5
Ostatní moduly ........................................................................................ 16
2.5.1
Bankovní modul ............................................................................... 16
2.5.2
Kontrolní moduly ............................................................................. 16
2.6
Schéma databáze ..................................................................................... 17
2.7
Diagram tříd.............................................................................................18
2.8
Nedostatky ............................................................................................... 19
2.9
Zhodnocení ............................................................................................. 20
2.10 Nové požadavky managementu .............................................................. 20 2.10.1
Funkční požadavky .......................................................................... 21
Obsah
6
2.10.2 Nefunkční požadavky ...................................................................... 22 2.10.2.1 Role v systému ................................................................................ 22 2.11 Alternativní řešení .................................................................................. 22
3
2.11.1
Freeglobes ....................................................................................... 23
2.11.2
PHP Link Directory ......................................................................... 23
2.11.3
Esyndicat ......................................................................................... 24
2.11.4
Porovnání ........................................................................................ 25
2.11.5
Výběr řešení a zhodnocení .............................................................. 25
Návrh řešení 3.1
27
Přidělovaní firem .................................................................................... 27
3.1.1
Současný postup ............................................................................. 27
3.1.1.1
Navštívené firmy ............................................................................. 28
3.1.1.2 Nové firmy ....................................................................................... 29 3.1.2
Nový postup .................................................................................... 30
3.1.2.1 Navštívené firmy .............................................................................. 31 3.1.2.2 Nové firmy ....................................................................................... 32 3.1.3
Porovnání ........................................................................................ 34
3.1.4
Změny v databázovém schématu .................................................... 34
3.2
Týdenní hlášení ....................................................................................... 35
3.2.1
Současný stav .................................................................................. 36
3.2.2
Návrh procesu ................................................................................. 36
3.2.3
Změny v databázovém schématu .................................................... 39
3.3
Provize obchodního zástupce ................................................................. 40
3.3.1
Současný stav ................................................................................... 41
3.3.2
Návrh procesu .................................................................................. 41
3.4
Přednostní výpisy a kontrolní procesy ................................................... 43
3.4.1
Současný stav .................................................................................. 43
3.4.2
Nové funkce..................................................................................... 44
3.4.3
Kontrolní mechanizmy ................................................................... 45
3.4.4
Kontrolní procesy ............................................................................ 45
3.5
Zaznamenávaní změn v informačním systému ...................................... 46
Obsah
4
5
7
3.5.1
Záznam činností uživatelů .............................................................. 46
3.5.2
Záznam změn nad daty ................................................................... 47
3.5.3
Změny v databázovém schématu .................................................... 48
Implementace
49
4.1
Použité knihovny .................................................................................... 49
4.2
Postup implementace ............................................................................. 50
4.2.1
Adresářová struktura ...................................................................... 50
4.2.2
Hromadné přidělování firem ........................................................... 51
4.2.3
Týdenní hlášení ................................................................................ 51
4.2.4
Provize obchodního zástupce ......................................................... 52
4.2.5
Přednostní výpisy a kontrolní procesy ........................................... 52
4.2.6
Zaznamenávaní změn v informačním systému .............................. 52
4.3
Nový design ............................................................................................. 53
4.4
Ostatní implementované moduly ........................................................... 54
Zhodnocení
57
5.1
Hromadné přidělovaní firem ...................................................................57
5.2
Týdenní hlášení ....................................................................................... 58
5.3
Provize obchodního zástupce ................................................................. 59
5.4
Přednostní výpisy..................................................................................... 61
5.5
Zaznamenávání změn v systému ............................................................ 62
5.6
Ostatní ..................................................................................................... 63
6
Závěr
64
7
Literatura
65
A
Schéma databáze
68
Úvod a cíl práce
8
1 Úvod a cíl práce 1.1
Úvod
Firma NetFirmy je provozovatelem regionálních databází firem www.netfirmy.cz a www.netkatalog.cz. Tyto databáze obsahují podrobné informace o firmách jak ze státního, tak ze soukromého sektoru. V databázi www.netfirmy.cz se nacházejí firmy z Královehradeckého a Pardubického kraje a na www.netkatalog.cz se nacházejí firmy z kraje Vysočina. Oba regionální katalogy jsou realizovány jako webová prezentace a obsahují detailní informace o firmách. Katalogy uživatelům umožňují najít firmu, nebo požadovanou službu či výrobek. Vyhledávaní je možné nejen podle klíčových slov a oborů, ale také umožňují filtrovat dle konkrétních okresů nebo krajů. Firma NetFirmy vznikla v roce 2005 s cílem nabízet zákazníkům jejich prezentaci v regionálních databázích, prostřednictvím sítě obchodních zástupců. Databáze se odlišují od plošných internetových databází zejména svým regionálním zaměřením. Firma do budoucna plánuje rozšíření na další regiony.
1.2 Cíl Cílem této práce je nalézt neefektivní procesy ve firmě NetFirmy a následně zvýšit jejich efektivitu. K dosažení tohoto cíle je nutné analyzovat stávající chod firmy a navrhnout vhodný postup řešení. Aby bylo možné tohoto cíle dosáhnout, je nutné implementovat změny do informačního systému firmy NetFirmy. Bude nutné upravit zejména klíčové procesy, které jsou časově náročné pro management a další zaměstnance firmy. Dalším cílem bude navrhnout a implementovat kontrolní mechanizmy, které minimalizují výskyt chybných dat v informačním systému. Minimalizací výskytu chybných dat se získá další časová úspora, protože nebude nutné tyto chybná data hledat a opravovat. Dále je nutné ověřit, zda se po úpravách informačního systému splnil cíl, tedy zvýšení efektivity klíčových procesů firmy. Zvýšení efektivity bude zhodnoceno podle hlášení managementu a obchodní zástupců.
Stávající stav
9
2 Stávající stav 2.1 Veřejná část katalogu Katalog firem umožňuje fulltextové vyhledávání, které prochází název firmy, klíčová slova, seznam přiřazených oborů, obec ve které má firma sídlo, či pobočku. Firmy se dají procházet také pomocí katalogu. Když si uživatel například vybere sekci stavebnictví, může výběr dále specifikovat na konkrétní obor spadající pod vybranou sekci. Pokud bude chtít výběr firem omezit, stačí vybrat konkrétní okres z nabídky v pravém menu.
Obr. 1
Katalog firem netfirmy.cz – úvodní strana
Výsledky vyhledávání firem se řadí dle bodů od největšího počtu po nejmenší. Stejným způsobem jsou firmy seřazeny v katalogu oborů. Body přiděluje firmě manažer dle smlouvy sepsané se zákazníkem. Seznam firem lze omezit na firmy působící pouze ve vybraném okresu (kraji). Další možností zviditelnění firmy v katalogu je přednostní výpis, který garantuje pozici ve vyhledávání na
Stávající stav
10
konkrétní slovo v určitém okrese (kraji), nebo v celém katalogu. Obdobně je možné zviditelnit firmu také v případě procházení dle oborů, pokud má firma koupený přednostní výpis do konkrétního oboru.
Obr. 2
Ukázka přednostního výpisu – zvýraznění modrým rámečkem
Oba zmíněné katalogy firem představují veřejnou prezentační část jednoho informačního systému. Největší část systému se však skrývá v části administrace. Tento systém se postupem času stále více rozrůstá a stoupají nároky na požadavky jak funkční, tak nefunkční. Původně měl systém obsahovat pouze evidenci firem, oborů a systém na tvorbu a evidenci faktur. S rozvojem firmy NetFirmy bylo potřeba co nejvíce rutinních činností automatizovat pomocí IS, protože tyto běžné činnosti začali zabírat stále více času a vedení firmy mělo méně času na rozvoj. 2.1.1
Činnost firmy
Firma NetFirmy prodává placené zápisy do katalogu prostřednictvím obchodních zástupců. Každému obchodnímu zástupci přidělí manažer firmy, které má kontaktovat s nabídkou placeného zápisu. Zástupce se přihlásí do informačního systému a zobrazí si seznam přidělených firem. Poté telefonicky kontaktuje přidělené firmy a domlouvá si osobní schůzku se zákazníkem, kterému prezentuje služby internetové databáze netfirmy.cz (netkatalog.cz). Na sjednané schůzce se také, kromě prezentace služeb, se zákazníkem potvrdí aktuálnost údajů firmy, případně se údaje aktualizují. V případě dohody na vzájemné spolupráci se sepíše smlouva se zákazníkem. Nově vzniklé údaje se vyplní do formuláře, který obsahuje původní informace o navštívené firmě a následně se vyplněný formulář předá příslušnému správci, jako předloha k aktualizaci dat v informačním systému.
Stávající stav
11
Hlavní obchodní činnost firmy zajišťují manažeři a obchodní zástupci. Manažer řídí firmu, rozděluje práci a školí obchodní zástupce. Obchodní zástupci nabízejí zákazníkům služby regionálních internetových katalogů. Nabízené služby jsou firemní prezentace, které mohou být doplněny o přednostní výpisy. Firemní prezentace (zápisy) jsou ve standardní podobě zdarma. Tento typ zápisu obsahuje pouze základní informace o firmě. Další možností jsou placené zápisy, které nabízejí něco navíc. Jedná se o doplňující informace, fotogalerie, či přednostní výpisy, klíčová slova atd. Každý obchodní zástupce dostane přiděleny firmy z okresů jeho působnosti (běžně jeden, až dva okresy). Rozdělení působnosti obchodních zástupců je převážně z logistických důvodů, aby se snížili náklady na dopravu a čas strávený na cestách. Manažer společnosti každý týden přiděluje obchodnímu zástupci dosud nenavštívené firmy (nové). Dále pak na začátku každého měsíce manažer přidělí firmy, které obchodní zástupce navštívil ve stejném měsíci před rokem (pokud takové existují).
2.2 Použité technologie a knihovny Informační systém firmy NetFirmy (z roku 2010) je webová aplikace, tento systém je postaven na běžných webových technologiích PHP, MySQL a JavaScript. PHP je skriptovací programovací jazyk, je nezávislý na platformě. Skripty se provádí na straně serveru a klientovi se odesílá pouze výstup. Výhodou je dobrá dostupnost serverů s PHP [26]. MySQL je databázový systém vyvíjený firmou Oracle, je k dispozici jak pod volnou, tak pod komerční licencí [17]. JavaScript je skriptovací jazyk, který se provádí se na straně webového klienta a slouží k ovládání interaktivních prvků systému [13]. 2.2.1
Použité knihovny
Stávající verze informačního systému využívá několik knihoven třetích stran, jedná se o knihovny napsané v PHP. Jednou z knihoven je vrstva pro přístup k databázi DB_MySQL [26], která obaluje PHP funkce určené na spolupráci s databázovým systémem MySQL do objektového pouzdra. Tato skupina objektů urychluje a zjednodušuje práci s databází, také obsahuje rozšíření vylepšené tvorby SQL dotazu a zjednodušeného procházení výsledků [26]. V informačním systému slouží ke zpracování vzniklých chyb knihovna NDebug, která je součástí Nette Framework [18] zachytává chyby a výjimky, které následně zaznamenává a také zajištuje zobrazení chybové stránky pokud dojde k fatální chybě. Další knihovna NForm slouží k tvorbě formulářů a je součástí Nette Framework [18]. Pro tvorbu PDF dokumentů používá systém knihovnu FPDF [9], která výrazně usnadňuje tvorbu dokumentů v tomto formátu. Její velkou výhodou je dobrá rychlost generování souborů PDF [21].
Stávající stav
12
Systém obsahuje dvě knihovny třetích stran sloužící k zjištění hodnoty page-ranku1 a s-ranku2 zvolené webové stránky. Knihovna pro získání page-ranku je dostupná z [19] a pro s-rank z [24]. Informační systém obsahuje interní funkci na dekódování výpisu z bankovního účtu ve formátu GPC3. Funkce zpracuje zdrojový soubor, který převede na asociativní pole. Interní systémová knihovna Datagrid se skládá ze dvou nezávislých částí. První část nazvaná výpis představuje data přehledně vypsaná do tabulky, ve které je možné vyhledávat, filtrovat a řadit. Druhá část představuje správu (vytvoření nového, editace, mazání) konkrétního záznamu. Knihovna se přizpůsobuje pro konkrétní použití pomocí konfiguračních souborů. Konfigurační soubor obsahuje metody knihovny Datagrid (např. přidej filtrovací pole podle názvu firmy). Obě části knihovny obsahují metody pro její vykreslení. Dále je možné Datagrid rozšířit o přídavné moduly (např. modul správu dat s vazbou 1:M, N:M). Přizpůsobit lze knihovnu doplněním o vlastní zdrojový kód a tak je možné ovlivnit její výchozí chování. Modul Datagridu využívá externí knihovny NForm a DB_MySQL.
2.3 Popis informačního systému Funkcionalita systému je rozdělena do modulů (banka, fakturace a další), které využívají společné uživatelské rozhraní a některé knihovny. Moduly nemají striktní podobu, jedná se téměř o samostatné části. Výjimkou jsou moduly využívající knihovny pro tvorbu Datagridu a jeho následné editace. Tyto moduly mají jasně určené rozhraní, které je dáno strukturou výše zmíněného Datagridu. 2.3.1
Uživatelské rozhraní
Uživatelské rozhraní administrační části se skládá z hlavičky a obsahové části. Obě části se přizpůsobují velikosti okna internetového prohlížeče, tak aby bylo využito maximum možného prostoru. Menu v hlavičce je stále viditelné a umožňuje přepínání mezi hlavními částmi systému. Druhá část se nachází pod hlavičkou a je v ní zobrazen veškerý obsah webu. Výchozí obrazovka je nazvaná seznam tabulek, mimo jiné zobrazuje výčet modulů používající knihovny editovatelného Datagridu.
Page-rank - Měřítko Google.cz, které udává přibližnou důležitost stránky pro vyhledání [24]. S-rank - měřítko Seznam.cz, které udává přibližnou důležitost stránky pro vyhledání [24]. 3 GPC – formát pro elektronické výpisy z bankovních účtů [28]. 1
2
Stávající stav
Obr. 3
Prostřední stávajícího informačního systému – pro roli správce
2.3.2
Role v systému
13
Ve stávajícím systému jsou role: Správce (manažer), obchodní zástupce a přidavač firem. Správce má přístup k veškerým modulům systému a má povoleny všechny akce, které systém umožňuje. Obchodní zástupce má k dispozici pouze modul správa firem a seznam oborů (pouze k nahlížení). Přidavač firem má k dispozici stejné moduly jako obchodní zástupce, rozdílná role je pouze pro odlišení uživatelů. Toto rozdělení najde využití například při tvorbě faktur, které můžou být přiřazeny pouze uživatelům s rolí obchodní zástupce.
2.4 Moduly založené na Datagridu 2.4.1
Správa firem
Ve stávajícím systému je nejdůležitější částí správa jednotlivých firem, které je možné filtrovat podle několika kritérií. Následně vybranou firmu spravovat (vytvářet, upravovat, mazat). Správa jedné firmy je rozdělena na dva moduly. V prvním modulu jsou nejdůležitější informace o firmě (název, obec, webová adresa, atd.), ve druhém modulu jsou doplňující informace (telefony, e-mail, rok založení, kontaktní osoby, atd.). Tyto dva moduly správy firem jsou propojeny odkazem, který se nachází v pravé části webu a umožňuje mezi nimi snadno přepínat. Modul pro správu firem navíc umožnuje vygenerovat profil firmy ve
Stávající stav
14
formátu PDF, který obsahuje veškeré informace o firmě a slouží jako zdroj informací pro obchodního zástupce v terénu.
Obr. 4
Správa firmy – základních údajů
2.4.2
Přidělování firem
Dalším modulem systému je přidělování firem obchodním zástupcům. Každý zástupce má přiděleny určité firmy, kterým má nabídnout obchodní spolupráci. Přidělování firem probíhá ve dvou krocích, vyhledání firmy a její přidělení konkrétnímu zástupci. Firmy obchodním zástupcům přiděluje manažer. 2.4.3
Přednostní výpisy
Vystavení přednostního výpisu by bez příslušného modulu v systému nebylo možné. Firma může mít více přednostních výpisů současně (např. do oborů plastová okna a do oboru dřevěná okna). Pomocí tohoto modulu jsou nastaveny konkrétní parametry přednostního výpisu (klíčové slovo nebo číslo oboru a region), které určují, za jakých podmínek bude výpis v katalogu zobrazen.
Stávající stav
2.4.4
15
Správa oborů
Systém obsahuje jednoduchý modul na správu oborů a podoborů. Umožňuje tvorbu, editaci a mazání oborů, je přístupný pouze správci. Uživatelé ostatních rolí si obory můžou pouze zobrazit. 2.4.5
Tvorba faktur
Tvorba a správa faktur je modul, který eviduje veškeré informace o faktuře. Evidují se údaje o odběrateli a jeho korespondenční adrese, pokud se informace o odběrateli shodují s údaji, které má firma uvedené v katalogu, lze je načíst po kliknutí příslušný ovládací prvek. Dále se eviduje obchodní zástupce, který smlouvu uzavřel a data použitá na faktuře (datum vystavení, splatnosti, sepsaní, zaplacení). Pokud existuje k faktuře bankovní transakce, tak ji modul spáruje. Dále umožňuje generování faktur ve formátu PDF a také generuje potisk obálky včetně korespondenční adresy. Fakturační modul je propojen s bankovním modulem přes variabilní symbol uvedený na faktuře. 2.4.6
Správa uživatelů
Správa uživatelů je modul, který eviduje veškeré uživatele, kteří mají přístup do systému. Modul umožňuje správci přiřadit konkrétnímu uživateli vybranou roli v systému. Roli je možné dále upřesnit pomocí individuálních nastavení. Samostatně pro každého uživatele může být nastaveno oprávnění na vytváření nových záznamů, úpravu stávajících dat a mazání.
Obr. 5
Správa uživatelů
Stávající stav
2.4.7
16
Statistiky
Informační systém obsahuje modul, který zobrazuje statistky a je přístupný pouze správci. Statistiky se dělí do dvou skupin. První jsou statistiky hledání, které zobrazují, jaké fráze byly hledány v konkrétním katalogu. Zobrazené fráze doplňuje o informaci o počtu vyhledání v konkrétním měsíci. Druhá je statistika firem, která informuje, kolikrát byl zobrazen profil firmy na konkrétním katalogu a také eviduje počet kliků na webové stránky konkrétního klienta (z odkazů na regionálních katalozích).
2.5 Ostatní moduly 2.5.1
Bankovní modul
Modul banka slouží k načtení plateb z účtu do informačního systému a následně zobrazuje přehled plateb, které páruje s fakturami v systému a tím výpis doplňuje o název společnosti, datum splatnosti atd. Modul je přístupný pouze správci. Pro nahrání nových transakcí se manažer přihlásí do bankovního účtu, stáhne soubor s transakcemi (soubor typu GPC). Dojde-li k úspěšnému spárování bankovní transakce s fakturou a částka platby odpovídá částce na faktuře, pak systém změní stav faktury na zaplacenou. 2.5.2
Kontrolní moduly
Systém obsahuje několik kontrolních mechanismů, které mají za úkol odhalit chyby v datech, převážně se jedná o údaje o firmách. Mechanizmy odhalují firmy, které mají nekompletní profil. Nekompletní profil je profil, který nemá vyplněný rok založení firmy, nemá přiřazený žádný obor, nebo má příliš krátký (dlouhý popis) atd. Vznik nekompletních profilů je umožněn neexistujícími nebo špatně navrženými kontrolními pravidly. Modul je přístupný pouze správci.
Stávající stav
17
2.6 Schéma databáze
Obr. 6
Databázové schéma původního systému
Převážná většina dat v informačním systému je uložena v databázovém systému MySQL. Schéma současného informačního na Obr. 6 není shodné s úplným databázovým schématem, protože obsahuje pouze hlavní tabulky. Oba katalogy využívají stejnou databázi a tabulky, rozlišení katalogů je u firem řešeno přes kraj, do kterého firma náleží. Faktury jsou rozlišeny přes číslo produktu, což je cizí klíč do tabulky produkt. V systému jsou dvě tabulky, které nemají žádné vazby.
Stávající stav
18
V systému jsou dvě samostatné tabulky search_stat a pages, které jsou pro každý katalog zvlášť. Například statistky pro netfirmy.cz se jmenují search_stat a pro netkatalg.cz se jmenují nk_search_stat. Statistika hledání (search_stat) obsahuje hledané slovo a kolikrát bylo hledáno. Statistika rozdělena do měsíců, pro jeden hledaný řetězec je na každý měsíc jeden záznam. Tabulka stránek (pages) obsahuje texty vybraných stránek (např. kontakty, o nás atd.). Několik tabulek je uloženo mimo databázi. V těchto případech byla databáze nahrazena pomocí proměnných typu asociativní pole v kódu aplikace. Například pole krajů, okresů, produktů (netfirmy.cz, netkatalog.cz). Dále pole, které přiřazuje ke každému modulu jednu, nebo více rolí, které mají povoleno modul používat. Toto přiřazení je řešeno, také mimo databázi a je uloženo v proměnné typu pole. Další místo kde došlo k úspoře počtu databázových tabulek je u kontaktů (mobil, telefon, email) jednotlivých firem, například pokud má firma více telefonních čísel píší se za sebe a jsou odděleny oddělovačem. Hlavní relace je firmy a obsahuje základní údaje o firmách, tyto údaje jsou dále doplněny o další údaje relací firmy_detail. Vazba mezi těmito relacemi je jedna firma má jeden detail firmy. Relace firmy muže mít nula, až libovolný počet faktur. Každá faktura může mít přiřazenu jednu nebo více bankovních transakcí, vzájemnou vazba je realizována přes variabilní symbol platby. Pod tabulkou nazvanou firmy_history, se nachází poznámky, které mají vazbu na konkrétní firmu a uživatele systému (autor poznámky). Každá firma může mít žádnou až N kontaktních osob (c_osoby). Jedna firma má vazbu na žádný, až N přednostních výpisů (top). Přednostní výpis je navázán na jednotlivé položky přednostního výpisu. Například jedna položka přednostní výpis na slovo „okna“ a druhý na slovo „dveře“. Každá firma musí být zařazena alespoň do jednoho podoboru (subobory). Každý podobor je přiřazen jednomu oboru (obory). Tabulka se statistikami firem (firmy_stat) má vazbu na tabulku firmy. V tabulce se uchovávají údaje, kolikrát byla firma nalezena ve vyhledávání, zobrazení detailu firmy a počet kliknutí na webovou stránku firmy. Statistiky jsou měsíční, na každý měsíc je pro jednu firmu jeden záznam.
2.7 Diagram tříd Systém je postaven převážně na nezávislých třídách a funkcích. Třídy často využívají volnou vazbu s třídou DB_MySQL. Obě hlavní třídy interní knihovny Datagrid obsahují vazbu typu kompozice s knihovnou NForm a agregační vazbu s knihovnou DB_MySQL.
Stávající stav
Obr. 7
19
Diagram tříd interní knihovny Datagrid
2.8 Nedostatky Stávající systém umožňuje provoz firmy NetFirmy a zajišťuje běh většiny nutných procesů. Několik modulů funguje, dle všech požadavků firmy, ale také má systém mnoho nedostatků. Ty znatelně zpomalují práci managementu firmy a odvádí pozornost od důležitých činností. Obdobně to platí i u ostatních uživatelů systému, kde by mohlo být mnoho činnost zjednodušeno a díky tomu by došlo k časové úspoře. Z pohledu managementu je časově nejnáročnější přidělování firem konkrétním obchodním zástupcům. Firmy se přidělují opakovaně každý týden (pokud obchodní zástupce přidělené firmy vyčerpá, tak i dříve). Stávající postup spočívá ve vyhledání vhodné firmy, následně se ručně kontroluje, jestli je možné firmu přidělit a poté se přidělí zvolenému obchodnímu zástupci. Ručně se kontroluje, zda firmu již nemá někdo přidělenou a také jestli v této firmě už nějaký obchodní zástupce měl schůzku (poté firma náleží jemu). Tímto vzniká další nedostatek, každý měsíc je nutné přidělit obchodním zástupcům firmy, které navštívili v daném měsíci před rokem. Tyto firmy se musí ručně dohledat a následně po jednom přidělit, což je časově náročné. Dle informací od majitele Tomáše Melouna, přidělení firem na týden pro jednoho zástupce průměrně trvá 1-2 hodiny. Firma má sedm obchodních zástupců (prosinec 2011). Obchodní zástupce dostává provizi ze zaplacených faktur, které sjednal. Jelikož nemá přístup do modulu banka, tak neví, které faktury již byly zaplaceny. Tyto informace jsou pro zástupce důležité, a proto se dotazuje na vedení společnosti, to spotřebovává čas jeho i managementu. Další nedostatky jsou uvedeny níže. Systém neobsahuje kontrolní mechanizmy, které by umožňovaly automaticky odhalit firmy, kterým již vypršel placený zápis, a přesto ho mají vystavený. Propojení faktur s bankou nezobrazuje informace o částečně zaplacené faktuře, kolik zbývá zaplatit a nedoplňuje správné datum zaplacení celé faktury.
Stávající stav
20
Pokud si zákazník zakoupí prezentaci svojí firmy v jednom z katalogů formou banneru, musí se ručně vložit banner a vést si bokem evidenci bannerů a jejich dobu platnosti (v současnosti Microsoft Excel), protože informační systém s bannery nepočítá. Informační systém neobsahuje modul, který by umožnoval manažerům zasílat úkoly ostatním zaměstnancům, zejména obchodním zástupcům a programátorům. Správa firem je rozdělena na dva moduly a je nutné mezi nimi přecházet, což způsobuje časové ztráty. Systém nezaznamenává chování uživatelů v systému a tím pádem neumožnuje manažerovi kontrolovat činnost obchodních zástupců a dalších uživatelů systému. Systém neumožnuje zjistit předchozí stav záznamu (např. firmy, faktury, přednostního výpisu). Pokud uživatel provede, změny u záznamu není možné dohledat, které atributy byly změněny.
2.9 Zhodnocení Systém ve stávajícím stavu umožňuje základní fungovaní firmy NetFirmy, ale většinu procesů neautomatizuje a ty se musí dělat zdlouhavými postupy. Některé činnosti nejdou přes informační systém vůbec (např. týdenní hlášení) a řeší se pomocí dokumentů v Microsoft Excelu. Současný informační systém umožňuje správu firem, faktur, přednostních výpisů, uživatelských účtů atd. Dále systém umožnuje generovat výstup s podrobnými informacemi o firmě, které pomáhají v přípravě obchodnímu zástupci na jednání s konkrétní firmou. Nevýhody informačního systému jsou převážně v chybějící implementaci významných procesů (týdenní hlášení, hromadné přidělovaní firem atd.), mezi další nevýhody patří nekompletní validace, která umožňuje ukládat nekompletní data, které mohou způsobovat chyby omezující chod systému. Tyto nedostatky nebrání provozu firmy NetFirmy, ale snižují efektivitu a zvyšují časové náklady všem uživatelům systému. S expanzí firmy NetFirmy se některé procesy (provize obchodních zástupců, přidělovaní firem atd.) neúměrně zvyšují svoje náklady na čas, až na neúnosnou míru.
2.10 Nové požadavky managementu Původní požadavky na systém byly vytvořeny s ohledem na jednoho, až dva obchodní zástupce. Zároveň se často měnily specifikace požadavků a docházelo k častým úpravám, které měnily chování systému. S růstem firmy NetFirmy přibývalo režijních časových nákladů na údržbu a provoz systému. Management firmy neměl prostor na rozvoj společnosti, protože většinu času strávil udržováním chodu firmy. Proto bylo nutné navrhnout nové mechanismy, které zásadně zrychlí nejčastější činnosti a tím umožní managementu firmy věnovat se rozvoji
Stávající stav
21
firmy. Nové požadavky na informační systém mají za úkol automatizovat nejčastěji prováděné operace, snížit časovou náročnost operací a integrovat procesy, které se provádějí mimo systém. 2.10.1
Funkční požadavky
Implementovat systém na „hromadné přidělování firem“, který podle zvolených kritérii vybere firmy pro zvoleného obchodního zástupce a manažer výběr jen potvrdí (případně upraví). Dále systém automaticky vybere placené firmy k přidělení. Provázat informační systém s bankou, tak aby se údaje z banky promítly na všech místech, kde mají smysl (zejména v modulu faktury). Systém musí zobrazit obchodním zástupcům přehled jejich placených zákazníků. Zde bude uvedeno, jestli zákazníci zaplatili svojí fakturu a tím vznikl nárok na vyplacení provize pro obchodního zástupce. Vytvořit kontrolní systém, který bude informovat o placených zápisech a přednostních výpisech, které již nemají být zobrazeny. Zároveň umožní k firmě přidat výjimku, takže i když bude porušovat nastavená kritéria, nebude se hlásit v kontrolním systému. Systém bude generovat výplatní pásku pro obchodní zástupce. Páska bude obsahovat zápisy, ze kterých bude provize vyplacena. Rozšířit přednostní výpisy pro konkrétní firmu o již neaktivní přednostní výpisy téže firmy. Přidat kontrolní mechanizmy, aby nebylo možné uložit nekompletní přednostní výpis. Pokud bude mít firma stejné přednostní výpisy jako předchozí rok umožnit rychlé znovu vystavení přednostního zápisu. Přepracovat uživatelské rozhraní, aby bylo více intuitivní a přehlednější. Systém bude evidovat změny provedené v záznamech (firmy, faktury, přednostní výpisy atd.), součástí evidence bude: jaké atributy se změnily, kdy se tak stalo, a jaký uživatel změnu provedl. Systém bude zaznamenávat veškeré operace všech uživatelů. Sjednotit dva moduly na správu firem a přidat kontrolní mechanizmy, aby nedocházelo k vytváření nekompletních firem. Vytvořit systém na zadávání úkolů. Musí umožnovat přidat úkol zároveň několika osobám, systém zasílá automatická upozornění o vytvoření, změně nebo splnění úkolu. Systém musí umět generovat týdenní hlášení o činnosti obchodních zástupců, které předávají manažerovy ke kontrole. Umožnit generovat přehled vybraných firem s nejdůležitějšími údaji o firmě ve formátech PDF a XLS.
Stávající stav
22
2.10.2 Nefunkční požadavky Informační systém musí být webová aplikace. Systém bude plně kompatibilní s nejnovějšími internetovými prohlížeči. Zachovat současné katalogy firem a provádět pouze minimální úpravy. Systém musí být integrovaný a veškerá funkcionalita se bude nacházet v jednom systému. Rychlý běh aplikace u běžných operací. Jednoduché a intuitivní ovládání, aby ho zvládl i obchodní zástupce se základní znalostí počítačů. 2.10.2.1 Role v systému S růstem firmy NetFirmy postupně vznikala potřeba přibrat nového zaměstnance do vedení společnosti. Úkolem nového manažera je převzít rutinní činnosti a tak umožnit řediteli věnovat se rozvoji firmy. Pro nového zaměstnance je nutné vytvořit novou roli v systému. Nová role v systému se jmenuje manažer a má přístupová práva na vybrané funkcionality správce, který má povoleny veškeré funkce. Manažer může spravovat firmy, může je přidělovat obchodním zástupcům. Vystavuje faktury a přednostní výpisy, dále má podrobný přehled o stavu zaplacení faktury. Může zadávat všem uživatelům systému úkoly, přes modul úkoly. Důležitou činností manažera je vystavovaní placených zápisů a doplňkových přednostních výpisů, a proto má přístup také do kontrolních systémů. Role obchodní zástupce má přístup k modulům přehled firem, který je přizpůsobený pro tuto roli. Mají přístup jen k firmám, které jim správce nebo manažer určí a dále mají omezené možnosti manipulace s firmami. Dále má přístup k modulům úkoly, sledování plateb a přehled výplat. Přidavač firem je nejjednodušší role má přístup pouze k přidávání firem a spravovat může pouze firmy, které sám vytvořil. Jako každý uživatel systému má i přidavač firem přístup k modulu úkoly.
2.11 Alternativní řešení Rozšířit informační systém o požadovanou funkcionalitu, aby byly dodrženy funkční a nefunkční požadavky, není jednoduché. Na trhu se nenachází kompletní řešení, které by vyhovovalo požadavkům managementu. Cílem této části je vybrat optimální řešení, které maximálně vyhoví požadavkům vedení a bude snadno rozšířitelné o případné další požadavky. Po analýze trhu byly nalezeny tři typy řešení. První řešení spočívá v kompletním přizpůsobení katalogu odkazů a doplnění požadavků managementu. Druhá možnost je v napojení katalogů firem na webový informační systém a naprogramování nových modulů. Poslední možností je upravit stávající systém, tak aby splnil všechny požadavky managementu.
Stávající stav
2.11.1
23
Freeglobes
Webový katalog odkazů Freeglobes [10], obsahuje samotný katalog odkazů a také administrační rozhraní (viz Obr. 8). Katalog je možné snadno přizpůsobit pomocí HTML šablon, v administraci je možné zpravovat veškeré odkazy, sledovat jejich statistiky a upravovat uživatelské účty. Systém neobsahuje moduly pro fakturaci, banku, hromadné přidávání firem atd. Katalog je postaven na technologiích PHP a MySQL, šířen je zdarma pod volnou licencí Creative Commons4. V patičce katalogu musí být odkaz na Freeblobes, pokud tento odkaz není žádoucí, musí se zakoupit placená licence.
Obr. 8
Pohled do administrace Freeglobes, Zdroj: http://demo.freeglobes.net
2.11.2
PHP Link Directory
Adresář odkazů PHP Link Directory [23] je webová aplikace, která obsahuje katalog odkazů a propracované administrační rozhraní (viz Obr. 9). Adresář lze ve velké míře přizpůsobit přímo z administračního rozhraní. Základní funkcionalita správa kategorií a odkazů, je doplněna o zálohu databáze, nastavení veškerých nadpisů a titulků, editaci šablon (přímo v administraci), správu uživatelů a jednoduchý redakční systém na tvorbu článků. Výhoda toho systému spočívá v rozšiřitelnosti přes moduly, dostupný je SEO5 modul, dále kontrolní systém
4 5
Creative Commons – svobodná licence [4]. SEO – optimalizace pro vyhledávače [27].
Stávající stav
24
funkčnosti odkazů. Systém neobsahuje moduly pro fakturaci, banku, hromadné přidávání firem atd. Katalog je postaven na technologiích PHP a MySQL je placený a základní licence (bez přídavných modulů) stojí 80 dolarů.
Obr. 9
Administrace PHP Link Directory, Zdroj: http://demo.phplinkdirectory.com
2.11.3
Esyndicat
Esyndicat [8] je webová aplikace obsahující katalog a administrační rozhraní (viz Obr. 10). Systém nabízí široké možnosti přizpůsobení dle požadavků zákazníka, které lze provádět přímo z uživatelského účtu správce. Systém je možné rozšířit o přídavné moduly, kterých je dostupných více než 50. Systém neobsahuje moduly pro fakturaci, banku, hromadné přidávání firem atd. Esyndicat je placený software a základní licence pro jednu doménu stojí 97 dolarů.
Stávající stav
25
Obr. 10
Náhled aplikace Esyndicat, Zdroj: http://www.esyndicat.com
2.11.4
Porovnání
Pro porovnání alternativních řešení byly použity klíčové funkce pro budoucí systém. Prvním hodnotícím kritériem bylo napojení systému na katalog bez velkých úprav (jeden s nefunkčních požadavků) na straně katalogu. Dalším kritériem je správa firem včetně všech současných položek, poté existence modulu na správu přednostních výpisy. Následují moduly na správu faktur, generování týdenních hlášení a hromadného přidělovaní firem. Tab. 1
Srovnaní alternativních řešení
Alternativní řešení Freeglobes PHP LD Esyndicat
Napojení na kat. Ne Ne Ne
Správa firem Částečně Částečně Částečně
Přednostní výpisy Ne Ne Ne
Fakturační systém Ne Ne Ne
Týdenní hlášení Ne Ne Ne
Přidělovaní firem Ne Ne Ne
Pod kritériem správa firem je uvedeno „částečně“, protože alternativní řešení evidují výrazně méně údajů, než se u firem eviduje v současném stavu a jejich doplnění by bylo nutné naprogramovat. 2.11.5
Výběr řešení a zhodnocení
Alternativní řešení, které neobsahují katalogy, nejsou brány v potaz, protože by se musely vytvářet a to je proti nefunkčnímu požadavku o zachování katalogů. Alternativní řešení nabízející katalogy nabízejí pouze zlomek funkcionality informačního systému v současném stavu a neřeší nové požadavky managementu. Proto by jejich použití bylo krokem zpět, které by přineslo více nákladů se splněním nových požadavků. Alternativní katalogy jsou primárně vytvořeny jako katalogy odkazů a obsahují pouze zlomek údajů, které se evidují v současném systému. Jednoduché položky je možné pomocí jednoduchých rozšíření doplnit
Stávající stav
26
a například seznam kontaktních osob (jméno a příjmení, pozice, telefon, email), které mají vazbu k firmě 1:N by se musela u všech katalogů doprogramovat. Alternativní řešení nejsou vyhovující, a proto bylo zvoleno rozšíření již stávajícího systému o požadovanou funkcionalitu. Výhodou stávajícího řešení (pro uživatele) je zvyk na současný systém a zachování dobrých částí současného systému, které jsou ověřeny a fungují v praxi.
Návrh řešení
27
3 Návrh řešení Cílem návrhu je navrhnout řešení, které zvýší efektivnost procesů ve firmě NetFirmy a sníží jejich chybovost. Dále navrhnout integraci a optimalizaci pravidelných procesů, které se v současné době provádějí mimo informační systém. Pro návrh řešení je podstatné rozdělení firem. Firmy evidované v informačním systému se můžou nacházet v jednom ze tří stavů: Placená – firma si objednala placený zápis Bezplatná – firma nemá zájem o placený zápis Rozpracovaná (rozdělaná) – jednání o zápisu nebylo s firmou dosud dokončeno
3.1 Přidělovaní firem Manažer pravidelně přiděluje firmy každému obchodnímu zástupci. Přidělením firem se určí firmy, které bude obchodní zástupce kontaktovat a následně bude osobně prezentovat služby internetových katalogů. Tento proces se dělí na dvě hlavní části, přidělovaní již navštívených firem a nových dosud nenavštívených firem. První část procesu se obvykle provádí jednou měsíčně. Manažer přidělí obchodnímu zástupci všechny firmy, které navštívil v aktuálním měsíci před rokem. Druhá část spočívá v přidělování nových firem. Podle majitele Tomáše Melouna je nejdelší doba mezi opakováním procesu přidělení firem jeden týden. Manažer z logistických důvodů vybírá firmy, které sídlí poblíž sebe. Další věc, kterou musí manažer kontrolovat je, zda firma nepatří jinému obchodnímu zástupci. Dále je nutné odfiltrovat nevhodné firmy (např. bankomaty, trafiky) a naopak se zaměřit na vhodné firmy (vhodnost firmy posuzuje manažer). Hlavním cílem nového návrhu přidělování firem je snížit časové nároky na přidělování firem a celý systém zpřehlednit, aby nedocházelo k chybám. 3.1.1
Současný postup
Manažer vybírá firmy, které již byli navštívené v modulu faktury, protože ve fakturách jsou evidovány jak placené zápisy (běžná faktura), tak bezplatné zápisy (nulová faktura). Tento proces se provádí jednou měsíčně a přidělují se firmy, které navštívil obchodní zástupce v minulém roce v daném měsíci. Pokud takové firmy neexistují, tento krok se přeskočí.
Návrh řešení
28
3.1.1.1 Navštívené firmy
Obr. 11
Pohled na modul faktury - výpis
1.
V modulu faktury nastaví manažer filtr výpisu na vybraného obchodního zástupce a jako datum nastaví aktuální měsíc v loňském roce.
2.
Pokud se nejedná o nulovou fakturu, musí manažer ručně zkontrolovat stav zaplacení faktury. Manažer přejde do detailu faktury, jestli je faktura zaplacená nebo nulová, pokračuje manažer na další krok. Pomocí odkazu se manažer přepne do modulu přidělování firem, přímo na konkrétní firmu. Manažer vybere obchodního zástupce. Uložením výběru obchodního zástupce dojde k samotnému přidělení firmy.
3. 4. 5.
Původní proces přidělovaní nových firem (dosud nenavštívených) prováděl manažer v modulu přidělování firem. Celý postup přidělení jedné firmy měl šest kroků.
Návrh řešení
29
3.1.1.2 Nové firmy
Obr. 12
1. 2. 3.
4.
Pohled na modul přidělovaní firem - výpis
Nastavení filtrů výpisu, tedy výběr konkrétního okresu a oboru. Manažer vybere vhodné obce a ručně kontroluje, zda firma sídlí v jedné z vybraných obcí. Ruční kontrola, zda není firma nikomu přidělena, nebo je přidělena uživateli, který není obchodní zástupce (např. přidavač firem), a proto může být přidělena obchodnímu zástupci. Pokud firma vyhovuje předchozím požadavkům, manažer přejde na zobrazení detailu přidělení.
Návrh řešení
Obr. 13
5. 6.
30
Pohled na modul přidělovaní firem - detail
Manažer vybere obchodního zástupce. Uložením výběru obchodního zástupce dojde k samotnému přidělení firmy.
První dva kroky projde manažer pouze jednou a ty zbývající musí provádět pro každou firmu. Přidělení padesáti firem (pro jednoho obchodního zástupce na týden) trvá manažerovi průměrně 40 minut. 3.1.2
Nový postup
Nový postup musí zajistit výrazné snížení časových nákladů, jak na přidělování navštívených firem, tak nových firem. Nový proces je stejně jako původní určen pouze pro uživatelskou roli manažer. Databáze firem obsahuje mnoho firem a pouze pro některé je produkt regionálních katalogů vhodný. Proto musel být navržen mechanizmus, který vybere pouze vhodné firmy. Navrženy byly dva mechanizmy, které budou fungovat zároveň a mají za úkol odfiltrovat firmy, které nejsou vhodné k přidělení obchodním zástupcům. Díky tomu, že filtrovací mechanizmy budou pracovat automaticky, dojde k ušetření manažerova času. Tyto mechanizmy se týkají pouze dosud nenavštívených firem, již navštívené firmy se považují za vhodné, protože museli být manažerem vybrány jako vhodné k oslovení obchodním zástupcem. První mechanizmus počítá pro konkrétní firmy index, který určuje bonitu firmy. Index firmy je udáván v procentech (0-100%), čím větší má hodnotu tím, je firma vhodnější k přidělení obchodnímu zástupci. Mechanizmus pracuje s podobory, do kterých je firma zařazena. Úkolem mechanizmu je vypočítat index, který vyjadřuje poměr počtu nevhodných oborů a počtu všech oborů, do kterých je firma zařazena. Nevhodné obory manažer jednorázově zvolí, seznam nevhodných oborů je možné dále modifikovat.
Návrh řešení
31
Mechanizmus stop slov, má za úkol vyřadit ze seznamu firmy, které obsahují stop slova. Například pokud v názvu firmy bude slovo „bankomat“ a zároveň toto slovo bude stop slovo, tak se nebude firma zobrazovat ve výpisu firem k přidělení. Stop slova vybere manažer, podobně jako nevhodné obory u prvního mechanizmu na výpočet indexu firmy. 3.1.2.1 Navštívené firmy
Obr. 14
1.
Návrh budoucího vzhledu hromadného přidělovaní firem – navštívené firmy
V modulu hromadné přidělování firem manažer vybere obchodního zástupce (volitelně doplní okres, případně obec). Poté vybere navštívené firmy (typ) a následně se zobrazí další nabídka (bod č. 2).
Návrh řešení
2.
3.
4.
32
V rozšířené nabídce manažer nastaví rok a měsíc, pro který bude obchodnímu zástupci přidělovat firmy. Přednastavený bude aktuální měsíc a rok a systém automaticky bude hledat firmy navštívené před rokem ve zvoleném měsíci. V běžném případě manažer u druhého kroku nic nenastavuje a pouze nechá zobrazit seznam odpovídající firem. Modul automaticky vyhledá vyhovující firmy, dále automaticky zkontroluje, jestli je faktura z minulého roku zaplacena, v opačném případě neumožní firmu přidělit (firma dosud dluží peníze). Firmy jsou automaticky označeny k následnému přidělení, pokud se manažer rozhodne vybranou firmu nepřidělit, zruší její označení. Poslední krok určuje, kterému obchodnímu zástupci budou firmy přiděleny, přednastavený je obchodní zástupce vybraný v prvním bodě. Poté manažer kliknutím potvrdí přidělení všech vybraných firem. 3.1.2.2 Nové firmy
Druhou částí přidělovaní firem jsou firmy, které dosud nebyly navštívené. Rozhraní je unifikované a od přidělování navštívených firem jej odlišuje pouze bod číslo dva, který obsahuje jiné parametry.
Návrh řešení
Obr. 15
1. 2.
3.
33
Návrh budoucího vzhledu hromadného přidělovaní firem – nové firmy
První krok je shodný s prvním krokem přidělování již navštívených firem, jedinou změnou je vybrání položky „nové firmy“. Ve druhém kroku vybere manažer obor, do kterého musí být firmy zařazeny, dále počet firem k přidělení (pokud jich tolik vyhovuje zvoleným kritériím) a posledním filtrem je bonita firmy, která musí být vyšší nebo rovna vybranému indexu. Modul automaticky vypíše firmy vyhovujícím zadaným kritériím a označí je k následnému přidělení. Nalezené firmy se budou řadit náhodně, pokud manažer klikne na ovládací prvek zobrazit, tak se stejnými kritérii zobrazí
Návrh řešení
4.
34
modul jiné firmy (pokud je vyhovujících firem více, než zvolené kritérium na počet firem). Poslední krok určuje, kterému obchodnímu zástupci budou firmy přiděleny, přednastavený je obchodní zástupce vybraný v prvním bodě. Poté manažer kliknutím potvrdí přidělení všech vybraných firem.
3.1.3
Porovnání
Hlavní rozdíl mezi stávajícím přístupem a novým hromadným přidělováním navštívených firem, je v přidělení všech firem (vybraného obchodního zástupce) zároveň. Další zásadní úspora času spočívá v automatické kontrole, která určí, zda je firma vhodná k přidělení (např. zda firma nedluží peníze). V novém modulu se provede každý krok pouze jednou, u současného systému se provede jednou pouze první krok a další čtyři kroky se opakují pro každou přidělovanou firmu znovu. Podle majitele Tomáše Melouna je průměrně každý měsíc přiděleno 40 až 80 navštívených firem každému obchodnímu zástupci. Modul v současném stavu neposkytoval manažerovi souhrnné informace o postupu přidělování, nový modul bude informovat o počtu zobrazených firem, dále o finančních ukazatelích. Podle majitele se dosud nenavštívené firmy přidělují každý týden v počtu 30 až 50 a to pro každého obchodního zástupce. Hlavní výhodou je obdobně jako u navštívených firem provádění každého kroku pouze jednou, naproti tomu u současného systému se opakují kroky tři až šest pro každou jednotlivou firmu. Nový modul automaticky odebere firmy nevhodné k přidělení, pomocí mechanizmů „stop slov“ a nevhodných oborů. Systém souhrnně informuje o stavu procesu a manažer nemusí počítat, jestli přidal dostatečné množství firem. 3.1.4
Změny v databázovém schématu
Nový modul musí evidovat „stop slova“ a nežádoucí podobory, a proto je nutné rozšířit databázové schéma aplikace o tabulku assign_filter, která tyto údaje bude evidovat. Původní informační systém evidoval uživatele, který má konkrétní firmu přiřazenou a to pomocí cizího klíče přímo v tabulce firmy. Nové požadavky na systém požadují komplexnější řešení přiřazovaní firem. Systém musí evidovat historii přiřazení pro konkrétní firmu. Bude evidovat jakému uživateli je firma přiřazena, zda je přiřazení platné a také datum přiřazení a datum odebrání firmy. Proto vznikla vazba N:M mezi tabulkami firmy a users, kterou zajištuje pomocná tabulka assign.
Návrh řešení
35
Obr. 16 Nové databázové tabulky pro hromadné přidělovaní firem – výřez, kompletní schéma je v příloze
3.2 Týdenní hlášení Dalším novým modulem je týdenní hlášení. Obchodní zástupci musí každý týden podávat hlášení o své práci. Uvádějí se zde souhrnné informace o obratu, počtu smluv a počtu navštívených firem. Dále hlášení obsahuje seznam všech navštívených firem v daném týdnu, firmy se dělí na placené a bezplatné. Placená firma měla v minulém roce placený zápis v regionálním katalogu a bezplatná nikoliv. U jednotlivých firem je evidován stav firmy, dále se eviduje cena jednotlivých zápisů, pokud byla firma placená minulý rok, tak se vypočítává nárůst či pokles vzhledem k ceně smlouvy na aktuální rok.
Návrh řešení
3.2.1
36
Současný stav
Současný informační systém týdenní hlášení nepodporuje a obchodní zástupci, tak musí ručně vyplňovat šablonu v Microsoft Excelu, kterou následně v papírové podobě odevzdávají manažerovi. Obchodní zástupci vyplní týdenní hlášení. Jako zdroj informací používají informační systém a podepsané objednávky od zákazníků. Hlášení vyplňují firmu po firmě. U každé vyplňují několik údajů (např. název firmy, cenu, stav atd.). Vyplněné hlášení odevzdávají obchodní zástupci manažerovi ke kontrole. Manažer hlášení zakládá do kartotéky, následně z hlášení vytváří obratové plány na další měsíce. 3.2.2
Návrh procesu
Nový proces tvorby týdenního hlášení kompletně implementuje celý proces do informačního systému. Vstupními daty do samotné tvorby hlášení jsou firmy, které za daný týden obchodní zástupce skutečně navštívil. Postup cesty od výběru firem, až po schválení hlášení je znázorněn v diagramu aktivit níže. Diagram aktivit se používá na zkoumání a popis pracovních postupů nebo procesů [7]. Zeleně označená aktivita „provedení operací nad firmami z hlášení“ se provádí automaticky a díky tomu odpadá práce manažera, který musel tyto operace provádět ručně (viz Obr. 17). V první části procesu obchodní zástupce vytvoří obchodní zástupce týdenní hlášení, které se po uložení zobrazí manažerovi na seznamu hlášení, které jsou určené ke schválení. Druhou část procesu provádí manažer a spočívá v kontrole celého hlášení a následném schválení. Na aktivitu schválení hlášení jsou navázány operace, které se provádějí nad firmami v hlášení. V současném stavu informačního systému musel tyto operace provádět manažer ručně a pro každou firmu jednotlivě. Nový modul bude tyto operace provádět automaticky a tak dojde k zefektivnění celého procesu a úspoře času manažera.
Návrh řešení
Obr. 17
Diagram aktivit popisující průběh tvorby týdenního hlášení
37
Návrh řešení
Obr. 18
38
Diagram aktivit popisující provedení operací nad firmami z hlášení
Provedení operací nad firmami z hlášení spočívá v provádění čtyř operací, které se spouštějí podle daných pravidel. Hlavním úkolem je obchodním zástupcům odebrat firmy, které již aktuálně nebudou ke své práci potřebovat. Dále vytvářet nulové faktury, pokud je jednání s firmou ukončené a firma nemá zájem o placenou prezentaci. Poslední dvě operace zajišťují správu seznamu rozpracovaných firem (každá firma může být rozpracovaná pouze jednou).
Návrh řešení
39
Proces postupně prochází všechny firmy z hlášení a ke každé z nich načítá vstupní data. Vstupní data se skládají s identifikátoru firmy, ceny prezentace v minulém roce (pokud firma v minulém roce neměla prezentaci, je cena rovna nule), aktuální cena prezentace vyplněná v hlášení. Dále obsahují informaci, zda byla firma v hlášení označena jako rozpracovaná a také zda se firma, již nenachází na seznamu rozdělaných firem (může se vyskytnout pouze jednou). První rozhodování závisí na ceně zápisu v minulém roce. Pokud byla cena zápisu v minulém roce větší, než nula je firma považována za placenou. Další rozhodnutí závisí na aktuální ceně zápisu. Pokud je nyní cena větší, než nula, je firma aktuálně placená. Jestliže není firma aktuálně placená, následuje rozhodování, zda se firma nachází na seznamu rozpracovaných firem. V tomto seznamu se eviduje cizí klíč rozpracované firmy, datum vytvoření záznamu a obchodní zástupce, který má firmu přidělenou. Další rozhodování závisí na tom, zda je daná firma označena v hlášení jako rozpracovaná. Pokud ano, následně bude uložena do seznamu rozpracovaných firem. V poslední fázi (než nastane odebrání firmy) je firma odebrána ze seznamu rozdělaných firem (pokud je na seznamu). 3.2.3
Změny v databázovém schématu
Modul týdenního hlášení vyžaduje rozšíření databázového schématu o tři nové tabulky. První tabulka report obsahuje informace společné pro jednotlivá týdenní hlášení. Další tabulka report_items obsahuje podrobnosti o jednotlivých položkách v hlášení. Tabulky report a reports_items jsou spojeny vazbou 1:N. Poslední tabulka report_undone eviduje rozpracované firmy.
Návrh řešení
Obr. 19
40
Výřez databázového schématu – týdenní hlášení
3.3 Provize obchodního zástupce Jednou s hlavních složek výplaty obchodního zástupce je provize s uzavřených smluv a bonus. Ostatní složky platu se řeší, dle zadání majitele firmy, mimo informační systém. Provize obchodního zástupce se vypočítává jako procentuální podíl ze sumy zaplacených faktur ve zvoleném období. Velikost bonusu určuje manažer individuálně s ohledem na plnění plánu atd. Obchodní zástupce má na každý měsíc stanoven individuální plán, který určuje, jak velkého obratu by měl dosáhnout. Bonus se stanovuje nejen podle velikosti plnění plánu, ale také podle dalších kritérií (počet schůzek za měsíc, počet obnovených smluv u stávajících zákazníků atd.). Pro obchodní zástupce je důležité mít přehled o aktuálním stavu platby u objednávek, které se zákazníky podepsal. Protože se velikost jeho provize vy-
Návrh řešení
41
počítává, až ze zaplacených objednávek. Proto obchodní zástupci tyto údaje často vyhledávají. 3.3.1
Současný stav
Současný informační systém nemá implementovaný modul, který by manažerovy usnadnilo tvorbu výplatních pásek pro obchodní zástupce. Za současného stavu dělá manažer celý proces ručně. Přihlásí se do internetového bankovnictví, kde si nastaví filtr na příchozí platby a zvolí odpovídající období. Manažer si v Microsoft Excelu eviduje u každého obchodního zástupce poslední variabilní symbol, po tento symbol danému obchodnímu zástupci již provizi vyplatil. Manažer tento variabilní symbol vyhledá v internetovém bankovnictví a pokračuje v procházení následujících příchozích plateb. Následně ručně kontroluje, zda daný variabilní symbol patří faktuře v informačním systému, a kterému obchodnímu zástupci je faktura přiřazena (který má tedy nárok na vyplacení provize s dané objednávky). Poslední kroky jsou ruční sečtení jednotlivých částek, výpočet provize a vytvoření výplatní pásky. Systém neumožňuje obchodním zástupcům zjistit, zda faktury, ze kterých jim plyne provize, jsou zaplaceny. Kvůli tomuto nedostatku nemají informace, jak velkou provizi budou mít na výplatní pásce, a proto se často dotazují manažera na stav faktur. Časté a opakované dotazování na informace týkající se stavu zaplacení faktur zdržuje manažera od práce. 3.3.2
Návrh procesu
Nový proces se skládá ze dvou modulů pro obchodního zástupce a jednoho pro manažera. Proces má za úkol automaticky vypočítat provizi na základě parametrů nastavených manažerem, vytvořit detailní rozpis, z jakých položek byla provize vypočítána a tento detailní výpis ukládat na server. Obchodní zástupce bude mít k dispozici dva nové moduly. První modul zobrazuje výpis všech faktur, které náleží danému obchodnímu zástupci. Tento výpis obsahuje základní údaje o faktuře (jméno firmy, variabilní symbol, cenu) a zejména stav zaplacení faktury, který ukazuje, zda je faktura zaplacená, částečně zaplacená, nebo nezaplacená. Dále modul umožní filtrovat faktury podle názvu firmy, variabilního symbolu a data sepsání faktury. Tyto filtry doplní nejdůležitější filtr, který umožní zobrazit jeden z těchto typů faktur: Zaplacené faktury – faktury, které zákazník v plné výši zaplatil Nezaplacené faktury – zde patří i částečně zaplacené faktury Faktury, ze kterých dosud nebyla vyplacena provize Faktury, ze kterých již byla vyplacena provize Druhý modul zobrazuje seznam všech vyplacených provizí, zároveň v tomto modulu bude možné stáhnout a následně zobrazit podrobnosti o vyplacených provizích (výčet faktur, ze kterých byla provize vyplacena, doplněný o konkrétní částky).
Návrh řešení
Obr. 20
42
Diagram aktivit popisující proces vytvoření provize
Současné databázové schéma bude nutné rozšířit pouze o jednu tabulku, která bude uchovávat záznamy o provizích. Záznam o jedné provizi obsahuje
Návrh řešení
43
vazbu do tabulky users, variabilní symbol, provizi, bonus a datum vystavení. Variabilní symbol určuje manažer a jedná se o variabilní symbol poslední vyplacené faktury, která patří danému obchodnímu zástupci.
3.4 Přednostní výpisy a kontrolní procesy Jednou z možností zviditelnění firmy, je doplnění placeného zápisu o nadstandardní službu přednostního výpisu, která garantuje pozici firmy v konkrétním regionálním katalogu. Princip spočívá v garantování konkrétní pozice na jeden rok. Pozici je možné garantovat na klíčové slovo, nebo na konkrétní obor (podobor) v katalogu firem. Přednostní výpis je dále možné specifikovat na kraj nebo okres. Poté se výpis zobrazuje pouze ve zvolené oblasti. Každá firma si může zakoupit více přednostních výpisů na různá klíčová slova a obory. Počet přednostních výpisů je pro konkrétní specifikaci (obor/klíčové slovo, oblast) běžně omezen na pět pozic. Není možné prodat vícekrát identický přednostní výpis, protože by došlo ke konfliktnímu stavu a nebylo by možné pro oba zákazníky garantovat objednanou pozici. Obchodní zástupce nemusí mít přístup k internetu, a proto informační systém umožňuje generovat seznam prodaných přednostních výpisů ve formátu PDF. Aby si zástupce nemusel tisknout každý týden kompletní seznam týdenních hlášení, tak informační systém umožňuje generování přednostních výpisů vystavených za poslední měsíc. Díky tomu si může zástupce vytisknout jednou kompletní seznam přednostních výpisů, který postupně doplňuje o měsíční aktualizace. Přednostní výpisy není vhodné automaticky deaktivovat po uplynutí doby, na kterou byly zakoupeny. Zpravidla se přednostní výpisy obnovují (deaktivují) až po obchodním jednaní mezi firmou a obchodním zástupcem. Pokud si firma objedná nové přednostní výpisy, nebo firma nemá zájem o prodloužení přednostního výpisu, manažer deaktivuje původní přednostní výpisy. 3.4.1
Současný stav
Informační systém v současném stavu umožňuje vytvořit libovolný přednostní výpis dle požadavků managementu. Modul pro přednostní výpisy je založen na interní knihovně Datagrid. Přednostní výpisy vystavuje manažer. Tento modul neobsahuje žádná kontrolní pravidla, která by bránila vzniku konfliktů u přednostních výpisů atd. Pokud manažer vytváří přednostní výpis na obor (podobor), musí zadat číslo konkrétního oboru a na objednávce je uveden název oboru. Jelikož současný modul tuto činnost neulehčuje, tak musí manažer dohledat číslo oboru podle názvu oboru. Tuto operaci musí manažer provést v jiném modulu, protože modul pro přednostní výpisy to neumožňuje.
Návrh řešení
Obr. 21
Detail přednostního výpisu pro vybranou firmu – současný stav
3.4.2
Nové funkce
44
Cílem návrhu nového procesu je vylepšit současný stav, zejména snížit chybovost v přednostních výpisech, která s rostoucím počtem zápisů rostla, protože jediný způsob kontroly byla ruční kontrola manažerem. Dalším cílem je zvýšení efektivnosti celého procesu tak, aby tvorba nových a obnovování přednostních výpisů z minulého roku zabralo méně času. K dosažení těchto cílů byly navrženy tři kroky: Nové funkce - stávající rozhraní bude doplněno o nové funkce Kontrolní mechanizmy – nové kontrolní mechanizmy při vytváření a editaci přednostního výpisu Kontrolní procesy – proces, který kontroluje všechny přednostní výpisy z dlouhodobého hlediska Nový modul bude obsahovat funkce, které zvýší efektivitu vytváření a správy přednostních výpisů. První vylepšení spočívá v automatickém dohledání čísla oboru (podoboru), tam kde musel manažer dohledávat číslo oboru (v jiném modulu). Nově bude stačit zadat pouze první písmena z názvu oboru a systém napoví vyhovující varianty, poté manažer zvolí obory podle objednávky a systém automaticky doplní číslo oboru. Díky tomuto vylepšení není nutné používat jiný modul na dohledání čísla oboru a tím sníží časové náklady. Manažer občas potřebuje zobrazit přednostní výpisy, které měla konkrétní firma v minulých obdobích. V současném stavu musí manažer vyhledat starší přednostní výpisy dané firmy, pokud takové záznamy existují, dále manažer pokračuje na detail přednostního výpisu, kde nalezne hledané podrobnosti. Nově
Návrh řešení
45
bude modul obsahovat u přednostního výpisu dané firmy obsahovat navíc historii, přednostních výpisů.
Obr. 22
Návrh zobrazení historie pro přednostní výpisy
V současném stavu měl oprávnění vytvářet přednostní výpisy pouze jediný uživatel, nyní je v systému manažerů více. Proto je dalším vylepšením evidování uživatele, který vytvořil záznam s přednostním výpisem. 3.4.3
Kontrolní mechanizmy
Současný systém má dva nedostatky, které dovolí vytvořit i nekorektní přednostní výpis. První nedostatek spočívá v nerozpoznání konfliktních přednostních výpisů. Konfliktní přednostní výpis znamená, že dvě firmy mají shodný přednostní výpis na shodnou pozici. Tedy jednomu se zákazníků není možné garantovat pozici, což je princip přednostních výpisů. Kontrolní mechanizmus se bude spouštět vždy při ukládání nového a editovaní současného záznamu, pokud mechanizmus odhalí konflikt, informuje uživatele o vzniklém problému a nedovolí záznam uložit, dokud nebude konflikt odstraněn. Druhý nedostatek se projeví, když manažer vystavuje přednostní výpis pro firmu, která již přednostní výpis měla v minulém roce a zapomene tento původní přednostní výpis deaktivovat. Poté se v systému nachází jak aktuální přednostní výpis, který má být aktivní, tak i původní záznam, který má byt deaktivován. Proto byl navržen mechanizmus, který při tvorbě nového přednostního výpisu automaticky deaktivuje původní přednostní výpisy dané firmy. Tento mechanizmu umožnuje výrazně rychleji obnovit přednostní výpis s loňského roku, pokud obsahuje stejné záznamy. Stačí pouze otevřít původní záznam, změnit datum začátku platnosti a uložit záznam jako nový. 3.4.4
Kontrolní procesy
Poslední inovace spočívá v návrhu kontrolních procesů, které kontrolují přednostní výpisy hromadně a z dlouhodobého hlediska. Účelem toho procesu je odhalit přednostní výpisy, které již měly být deaktivované a také přednostní výpi-
Návrh řešení
46
sy, které vůbec aktivní být nemají. Kontrolní proces bude vypisovat přednostní výpisy, které jsou již aktivní čtrnáct a více měsíců (platnost přednostního výpisu je jeden rok), nebo pokud je cena nejnovější faktury nižší než majitelem zvolená hodnota. Druhé kontrolní pravidlo (když je cena poslední faktury nižší než zvolená hodnota) identifikuje objednávky, které nemohou obsahovat přednostní výpis, kvůli zvolené minimální ceně. Dále řeší problém s firmami, která mají jako poslední fakturu nulovou fakturu (firma nemá zájem prodloužit prezentaci na regionálních katalozích o další rok). Tyto přednostní výpisy mají být deaktivovány. Pravidla nelze vždy striktně dodržovat, existují výjimky, které těmto pravidlům nevyhovují, a přesto je vše v pořádku. Tyto případy manažer označí jako výjimky a dále se nebudou vyskytovat v seznamu přednostních výpisů, které porušují nastavená pravidla, ale budou uvedeny v seznamu výjimek. Výjimka neplatí obecně pro firmu, ale pouze pro nejnovější fakturu. Podle nejnovější faktury se vyhledávají firmy, které nevyhovují zvoleným kritériím. Kontrolní procesy je nutné navrhnou, tak aby v nich bylo snadné provádět změny a přidávat případná rozšíření, které management v této oblasti očekává.
3.5 Zaznamenávaní změn v informačním systému Jeden z požadavků managementu byl zaznamenávání veškerých činností, které v informačním systému provádějí uživatelé. Dále evidování změny na datech tak, aby manažer věděl, jaký uživatel změnu provedl, kdy ke změně došlo a co konkrétně bylo změněno. Užitečnou vlastností bude ukládání rozdílů mezi původní a novou verzí záznamu, která umožňuje zobrazit poslední provedené změny v celém systému a také užitečnou historii konkrétního záznamu od jeho vytvoření, až po současný stav. Informační systém v současném stavu tyto činnosti nezaznamenává. Manažer si nemůže ověřit, jak často pracují obchodní zástupci s informačním systémem, zda pracují se systémem správně a jestli využívají všechny moduly, které jim ulehčují práci. Dále pokud systém obsahuje chybná data, je velmi obtížné dohledat, kdo tyto data do systému vložil. Oba tyto nedostatky vyřeší systém na zaznamenávání změn, který bude pracovat zcela automaticky. Návrh procesu se bude skládat se dvou částí. První část zaznamenává činnosti uživatelů v informačním systému a druhá zaznamenává změny v datech (faktury, firmy, přednostní výpisy atd.). 3.5.1
Záznam činností uživatelů
Záznam činností uživatelů se skládá ze samotného zaznamenávání činnosti konkrétního uživatele a výpisu záznamů činností v přehledné podobě. Zaznamenávání činnosti bude spočívat v prostém ukládání URL6, které bude doplněno
6
URL - slouží k přesné specifikaci umístění zdrojů informací na internetu [20]
Návrh řešení
47
o uživatele, datum a čas požadavku atd. Tímto způsobem bude zaznamenán každý požadavek uživatele na informační systém. Druhá část je složitější a má za úkol z velkého množství uložených záznamů vytvořit přehled činností uživatelů, který bude přínosný pro manažera. Pohled na činnosti uživatelů bude obsahovat výpis jednotlivých informací o vybraném uživateli. Výpis bude rozdělen po jednotlivých dnech a u dní, ve kterých byl uživatel v informačním systému aktivní, bude zobrazen počet provedených operací. Druhou možností souhrnného zobrazení je výpis rozdělený po přístupech. Jedením přístupem se rozumí nepřetržitá práce s informačním systém a maximální prodleva mezi jednotlivými operacemi je třicet minut (pokud je delší jedná se o další přístup).
Obr. 23
Návrh souhrnného zobrazení činností uživatele po přístupech
Dále bude možné zobrazit detail vybraného dne, který bude zobrazovat výpis veškerých operací. Tento výpis umožní seskupit podobné operace do jedné a doplní informaci o počtu výskytů. Důležitou částí detailního výpisu je převod URL do jazyka, kterému budou rozumět manažeři. Například místo URL vedoucí na konkrétní fakturu, se bude manažerovi zobrazovat slovní popis operace, kterou uživatel provedl. 3.5.2
Záznam změn nad daty
Management požaduje zaznamenávat změny v jednotlivých záznamech (jako jsou faktury, firmy, přednostní výpisy atd.). Tak, aby bylo možné dohledat kdo, kdy a jakou změnu provedl. Proces bude automaticky, při každé aktualizaci dat ukládat změny, které uživatel provedl. Například, pokud bude upraven název firmy a adresa firmy zůstane stejná, uloží se pouze nová hodnota pro název firmy. Jelikož tento proces není součástí informačního systému od začátku a současná data (data vytvořená před existencí záznamového procesu) nemají záznam
Návrh řešení
48
o vytvoření je nutné při změně tento záznam vytvořit z původních dat a zároveň uložit běžným způsobem informace o změně dat. Manažer bude mít možnost sledování historie záznamů, která bude zobrazovat historii změn od vytvoření záznamu, až po současný stav. Výpis bude zobrazovat rozdíly mezi sousedícími verzemi daného záznam. Díky tomu manažer přehledně uvidí, jaké atributy se změnili. 3.5.3
Změny v databázovém schématu
Současné databázové schéma je nutné rozšířit o tři tabulky. Do první tabulky log_user se zaznamenává pohyb uživatelů v informačním systému. Další dvě tabulky slouží k uložení dat, potřebných k evidování změn u jednotlivých záznamů. Tabulka log obsahuje obecné informace, které identifikují, který záznam se měnil, kdo a kdy změnu provedl. Také zaznamenává typ provedené operace (vytvoření, uložení, smazání). Tabulka log má vazbu na tabulku 1:N na log_item, která obsahuje konkrétní změny provedené nad daty.
Obr. 24
Výřez databázového schématu – rozšíření pro zaznamenávání změn v systému
Implementace
49
4 Implementace Při implementaci rozšíření stávajících modulů a také, při tvorbě nových modulů bylo nutné zvolit způsob, jakým bude implementace provedena. Nabízejí se dva způsoby. První spočívá v naprogramování funkcionality za použití současných knihoven a druhý v použití komplexního frameworku, který urychlí vývoj díky integrovaným knihovnám. Postavit celý systém na novém frameworku, bylo již v návrhu vyloučeno, protože původní systém obsahuje mnoho dobře fungujících modulů, které by bylo kontraproduktivní předělávat. Pokud budou odhadované náklady na vývoj nového modulu nižší za použití stávajících knihoven a použití frameworku by nepřineslo podstatné vylepšení, či zjednodušení práce, bude nový modul zapracován do stávajícího systému bez použití frameworku. Jestliže při tvorbě nového modulu nepřinesou stávající knihovny žádný užitek, bude modul implementován za použití frameworku.
4.1 Použité knihovny Nette Framework [18] je implementovaný v jazyce PHP 5 a je šířen pod volnou licencí GNU GPL7. Framework se zaměřuje na eliminaci bezpečnostních rizik, podporuje AJAX8, znuvupoužitelnost kódu, využívá událostmi řízené programování a z velké části je založen na použití komponent. Nette Framework používá návrhový vzor MVP, která se liší od MVC použitím presenteru místo controlleru [30]. Vzor MVC je jedním ze standardů při tvorbě moderních webových aplikací. Velká část aplikačního kódu patří do jedné ze tří kategorií: uživatelského rozhraní (View), řídící logiky (Controller) a datového modelu (Model). Návrhový vzor MVC rozděluje aplikaci do těchto tří nezávislých komponent. Usnadňuje údržbu a úpravu kódu, zejména v případě, kdy pracuje na jednom projektu více vývojářů [22]. Moduly postavené na Nette Frameworku používají ke spojení a práci s databází knihovnu Dibi. Jedná se o pokročilou databázovou vrstvu, která podporuje tyto relační databázové systémy: MySQL, PostgreSQL, SQLite, MS SQL a Oracle [6]. Knihovna MPDF zajišťuje převod přímo z HTML stránky do PDF. Podporuje zpracování řady formátovacích prvků v CSS, tedy není téměř nutné HTML stránku upravovat [16]. Další použitou knihovnou je JavaScriptový framework jQuery, který usnadňuje a urychluje vývoj JavaScriptového kódu [15].
7
GNU GPL licence – je licence pro svobodný software [11] AJAX - (Asynchronous Javascript and XML) – je obecné označení pro technologie interaktivních webových aplikací, jenž mění obsah svých stránek bez nutnosti jejich opětovného načtení [5]. 8
Implementace
50
Nová verze informačního systému obsahuje knihovnu Autocomplete, která rozšiřuje jQuery a využívá AJAX. Jedná se o rozšíření vyhledávacího pole. Toto rozšíření uživateli nabízí různé pravděpodobné varianty textu, který chce uživatel napsat [14]. Další knihovnou použitou v informačním systému je SimpleDiff, která porovnává dva řetězce a vyznačuje rozdíly mezi porovnávanými řetězci [1]. Informační systém využívá knihovnu PHPExcel [25], která umožňuje generování dokumentů pro Microsoft Excel (přípona XLS).
4.2 Postup implementace Postup implementace bude odvozen od návrhu daného modulu, zejména zda bude modul postaven na Nette Frameworku, nebo jako rozšíření informačního systému s využitím původních knihoven. 4.2.1
Adresářová struktura
Adresářová struktura obsahuje tři hlavní adresáře Auth, Libs a Tools. Neveřejný adresář Libs obsahuje knihovny původního systému, neveřejný adresář Tools obsahuje knihovny Nette Frameworku a aplikační část, která využívá framework. Adresář Auth je veřejný. Obsahuje aplikační část, která je založena na knihovnách původního informačního systému a také obsahuje podadresář Tools s veřejnou částí pro moduly systému založeném na frameworku. Auth – veřejná část aplikace o o o o o o
Cfg – nastavení modulu Datagrid Css – kaskádové styly Images – obrázký, loga Module – moduly současného informačního systému Service – kontrolní funkce Tools – veřejná část postavená na Nette Frameworku
Libs – knihovny původního informačního systému Tools – aplikační část postavená na Nette Frameworku o App – aplikační část Components - componenty Models - modely Presenters – presentery (controlery) Templates – šablony o Cron – automaticky spouštěné procesy o Libs – Nette knihovny, Dibi, MPDF o Temp – dočasné soubory
Implementace
4.2.2
51
Hromadné přidělování firem
Proces hromadného přidělování firem je značně odlišný od současných modulů v informačním systému. Současné knihovny systému by vývoj neurychlily a bylo by nutné velkou část programovat od začátku. Proto byly použity knihovny Nette Framework, Dibi a jQuery. Použití těchto knihoven výrazně urychlí vývoj daného modulu, protože obsahují knihovny využitelné při tvorbě tohoto modulu (např. modul na tvorbu formulářů). Modul hromadného přidělování firem využívá architekturu MVC, obsahuje všechny její části a nevyužívá komponenty. Proces výběru firem určených k přidělení obchodním zástupcům je výpočetně náročný, protože se musí projít a vyhodnotit velké množství dat. Tento proces by neměl trvat příliš dlouho, a proto bylo nutné provést optimalizace výběrových SQL dotazů. Jednou z možností optimalizace výběrových dotazů, je vytvoření indexů nad vhodnými sloupci tak, aby se nemusela tabulka procházet celá. Indexy by neměly být vytvářeny tam, kde nejsou absolutně nutné. Indexy se musí aktualizovat při operacích INSERT, UPDATE, nebo DELETE a kvůli tomu se tyto operace výrazně zpomalují [3]. 4.2.3
Týdenní hlášení
Modul na tvorbu týdenních hlášení, je značně specifický a knihovny původního systému by vývoj neurychlili. Proto byly použity knihovny Nette Framework, Dibi, jQuery a MPDF. Dále tento modul obsahuje dvě komponenty. První zajišťuje vyhledávání, filtrovaní firem a výběr firem do týdenního hlášení (využívá AJAX). Druhá komponenta zajištuje tvorbu samotného týdenního hlášení, včetně souhrnných výpočtů (počet uznaných schůzek, týdenní obrat daného zástupce) nutných potřebných pro tvorbu týdenního hlášení.
Implementace
Obr. 25
Ukázkové týdenní hlášení – tisková podoba ve formátu PDF
4.2.4
Provize obchodního zástupce
52
Tato nová část informačního systému obsahuje několik částí, které jsou podobné modulům založeným na původní knihovně DataGrid. Jedná se o modul, jenž zobrazuje stav zaplacení objednávek, které přísluší konkrétnímu obchodnímu zástupci. Dále modul zobrazující již vyplacené provize. Modul pro samotný výpočet provize je postaven na původních knihovnách, ale nepoužívá knihovnu DataGrid. Původní knihovny dále doplňuje knihovna MPDF. 4.2.5
Přednostní výpisy a kontrolní procesy
Původní verze informační systému obsahuje funkční a v praxi používaný modul na správu přednostních výpisů. Původní modul managementu vyhovoval, a proto byly do původního modulu doprogramovány požadované inovace. Kontrolní modul, který kontroluje přednostní výpisy hromadně a z dlouhodobého hlediska, v původní verzi informačního systému nebyl implementován. Použití frameworku při implementaci by nemělo požadovaný efekt, a proto byla i tento modul implementován s použitím původních knihoven. SQL dotazy použité v tomto kontrolním modulu bylo nutné důkladně optimalizovat, aby čas operace byl přijatelný a zbytečně nezatěžoval server. 4.2.6
Zaznamenávaní změn v informačním systému
Implementace zaznamenávání změn se skládá ze dvou částí, samotného zaznamenávání změn a přehledného výpisu těchto změn ve srozumitelné podobě. Na samotné zaznamenávání změn byla vytvořena interní knihovna, která byla implementována do knihovny DataGrid. Vedení firmy požadovalo zaznamenávat
Implementace
53
jen data, která se upravují v modulech založených na DataGridu, a proto není nutné zaznamenávat změny v datech v dalších částech systému. Výpis změn v datech je založen na Nette Frameworku, knihovně Dibi a na porovnávání změn slouží knihovna SimpleDiff. Záznam činností, které provádějí uživatelé informačního systému, byl implementován do všech částí systému. Modul, jenž zobrazuje zaznamenané činnosti je založen na Nette Frameworku a Dibi. Souhrnné výpisy o činnostech uživatelů jsou náročné na výkon databázového systému.
4.3 Nový design Původní design uživatelského rozhraní v informačním systému není příliš uživatelsky přívětivý, a proto managementem firmy NetFirmy požadoval inovaci.
Obr. 26
Původní design – náhled na úvodní stranu
Nový design uživatelského rozhraním je navržen tak, aby byl více intuitivní a přehledný. Nový design má proti původnímu větší písmo, zvýrazněné hlavní ovládací prvky a lépe využívá zobrazovací plochu prohlížeče. Další vylepšením uživatelského komfortu je použití intuitivních ikon9. Důležitou vlastností nového designu je informace, kde se uživatel v informačním systému nachází. Nalezení cesty směrem k cíli napomáhá dobré značení (obrázkové náhledy, vysvětlující popisky) a informace o aktuální pozici uživatele [29].
9
Ikony - dostupné z: http:// www.iconfinder.com/search/?q=iconset:gnome-desktop-icons-png
Implementace
Obr. 27
54
Nový design – náhled na úvodní stranu
Oba ukázkové náhledy designu jsou pro uživatelskou roli správce. Pro ostatní role je zobrazení podobné, ale neobsahuje všechny moduly a naopak některé má navíc.
4.4 Ostatní implementované moduly V průběhu návrhu a implementace, současných požadavků vznikaly stále nové požadavky na implementaci nových funkcionalit do informačního systému. Tyto požadavky je nutné splnit, aby firma NetFirmy mohla plnohodnotně růst. Seznam požadavků, které byly také implementovány do informačního systému: Vytvořit modul, který identifikuje přeplatky a nedoplatky u faktur (současný systém označil fakturu za zaplacenou, pokud částka byla alespoň taková jako hodnota na faktuře). Implementovat do informačního systému modul, který umožní manažerům zadávat a spravovat úkoly pro ostatní uživatele systému (převážně obchodní zástupce a programátory). Modul umožňuje k úkolům připojit přílohy a dále automaticky zasílá příslušná upozornění (uživatel dostane nový úkol, splnění úkolu atd.).
Implementace
Obr. 28
55
Přehled úkolů – pohled manažera
Výpis dat v modulu založeném na DataGridu, se značně zpomaloval s narůstajícím počtem dat. Proto byla zavedena dočasná paměť, která uloží počet záznamů a při příštím zobrazení se tento údaj nemusí znovu počítat. Díky tomuto opatření došlo k úspoře, až půl sekundy (v závislosti na počtu dat) na jeden výpis dat v modulu. Do informačního systému byly přidány procesy, které se opakovaně provádějí v předem zvolený čas. Tyto procesy automaticky spouští Cron [12]. První proces zasílá manažerům na email upozornění, které obsahuje seznam firem. Tento seznam firem je generován pomocí modulu pro hromadnou kontrolu přednostních výpisů. Druhý proces zasílá jednoduchá upozornění na činnosti, které má daný manažer v daném týdnu provést. Do původního systému bylo doplněno mnoho kontrolních pravidel, které brání vytvoření nekorektního záznamu. Například firma v katalogu musí mít vyplněnou adresu atd. Původní informační systém měl rozdělenou správu firem na základní a doplňující údaje. V současné verzi byly tyto dva moduly sloučeny do jednoho modulu. Práce s tímto module je efektivnější, protože odpadá nutnost přepínání mezi moduly a vše je přehledně na jednom místě. Další vylepšení zrychluje přidávání nových firem, uživatel vyplní IČO a po potvrzení se pomocí AJAXu získávají data z databáze ARES10, které se automaticky doplní do formuláře. Díky tomu odpadá nutnost uživatele navštívit databázi ARES pro získání a kontrolu údajů o firmě.
10
ARES - administrativní registr ekonomických subjektů [2].
Implementace
Obr. 29
56
Výřez z modulu správa firem
Systém umožňuje generovat přehled uživatelem vybraných firem s nejdůležitějšími údaji o firmách ve formátech PDF a XLS. Tento přehled používají obchodní zástupci v terénu, pokud nemají dostupný internet. Podobně jako není vhodné automaticky deaktivovat přednostní zápisy, tak není vhodné automaticky deaktivovat ani placené zápisy v katalogu firem (po uplynutí doby, na kterou jsou zakoupeny). Proto byl i na placené zápisy vytvořen hromadný kontrolní mechanizmus, který kontroluje firmy z dlouhodobého hlediska a zobrazuje firmy, které už nemají nárok na vystavený placený zápis. Služby internetových katalogu byly rozšířeny o možnost zakoupení bannerů. Bannery mají velmi podobné parametry jako přednostní výpisy. Také se dají specifikovat na obor (podobor) nebo klíčové slovo a oblast. Zásadní rozdíl je v umístění. Bannery se zobrazují v bočním pravém panelu, nebo vodorovně nad přednostními výpisy (v každé pozici nejvýše jeden banner).
Zhodnocení
57
5 Zhodnocení Tato část obsahuje porovnání původního stavu informačního systému a nového stavu. Zaměřuje se převážně na efektivitu procesů a účinnost nových funkcionalit.
5.1
Hromadné přidělovaní firem
Proces přidělování firem se pomocí nového modulu na hromadné přidělování firem podařilo značně zefektivnit a to ve dvou nejdůležitějších bodech. Za prvé dochází k velmi výrazné časové úspoře. Za druhé vzniká výrazně méně chyb (podle majitele firmy Tomáše Melouna). Před inovací systému zabralo manažerovi přidělení všech potřebných firem pro jednoho obchodního zástupce průměrně 180 minut. Přidělení dosud nenavštívených firem, které se provádí alespoň jednou týdně, trvalo 30 min a přidělení již navštívených firem, které se provádí jednou za měsíc, trvalo 60 min. Firma NetFirmy má sedm obchodních zástupců, takže časové náklady na jednoho zástupce je nutné vynásobit sedmi. Průměrně by tento proces bez provedených inovací zabral 21 hodin měsíčně. Nový modul hromadného přidělování firem tento proces zefektivnil. Přidělení dosud nenavštívených firem zabere jednu minutu a přidělování již navštívených firem přibližně dvě minuty v závislosti na počtu firem. Podle majitele Tomáše Melouna jsou měsíční časové náklady na přidělení firem jednomu zástupci, kratší než 10 minut. Celkové časové náklady na přidělení firem pro všech sedm zástupců jsou průměrně jedna hodina, což je výrazný rozdíl naproti původním 21 hodinám.
Zhodnocení
Obr. 30
58
Hromadné přidělovaní dosud nenavštívených firem
Systém automaticky kontroluje, zda firma určená k přidělení nedluží peníze a neumožňuje tuto firmu přidělit obchodnímu zástupci. U původního systému se občas stávalo, že manažer zapomněl přidělit firmu, kterou v minulém roce obchodní zástupce navštívil a měl jí tedy dostat i v následujícím roce. Nyní systém tyto firmy automaticky vybere a tím se snižuje možnost omylu. Pokud by i přesto došlo k vynechání firmy, bude se firma dále zobrazovat pod čarou. Manažerovi pak stačí tuto firmu označit a přidělit jí běžným způsobem. Další výhodou je informace, kolik firem manažer přidělil a pokud mezi nimi byly placené firmy, tak i další rozšiřující informace (například součet cen objednávek). Tyto informace dostává manažer od modulu hromadného přidělování firem.
5.2 Týdenní hlášení V původní verzi informačního systému nebyl integrován proces tvorby týdenního hlášení. Týdenní hlášení museli obchodní zástupci vytvářet tak, že ručně vyplňovali šablonu v Microsoft Excelu. Podle majitele firmy Tomáše Melouna byli časové náklady na tvorbu jednoho týdenního hlášení průměrně 30 minut. Díky
Zhodnocení
59
novému modulu na tvorbu týdenního hlášení klesly časové náklady o 25 minut na současných 5 minut. Další výhodou je automatické provádění operací nad vykázanými firmami v hlášení. Například pokud obchodní zástupce podepíše smlouvu se zákazníkem a uvede firmu v týdenním hlášení, dále se již vše provede automaticky a firma už nebude v jeho seznamu firem určených k oslovení s obchodní nabídkou.
Obr. 31
Ukázka rozhraní na tvorbu týdenního hlášení
Výhodou nového systému je seznam všech týdenních hlášení na jednom místě s možností vytvoření PDF dokumentu. Dále může manažer lépe kontrolovat obchodní zástupce díky seznamu rozdělaných firem, který zabraňuje, aby byla jedna firma vykázaná dvakrát jako rozdělaná, čímž by bylo porušeno firemní pravidlo. Tuto kontrolu v původní verzi informačního systému musel manažer provádět ručním procházením starých týdenních hlášení. Nový modul přinesl díky výše zmíněným vylepšením výrazné zvýšení efektivity celého procesu tvorby týdenního hlášení a s ním spojených operací.
5.3 Provize obchodního zástupce Proces, který zajišťuje výpočet provize pro obchodního zástupce, nebyl v původním informačním systému integrován. Pomocí nových modulů se podařilo kompletně implementovat proces do systému. V původní verzi systému musel manažer vypočítávat provizi pomocí internetového bankovnictví. Výpočet provize pro jednoho obchodního zástupce trval 30 minut a to jen tehdy pokud se provize počítaly pro všechny obchodní zástupce zároveň. Pokud nastala potřeba vypočítat provizi pouze pro některého obchodního zástupce, doba výpočtu se
Zhodnocení
60
ještě prodloužila (manažer musel procházet všechny platby v internetovém bankovnictví a v informačním systému dohledávat, zda vybraný obchodní zástupce má nárok na provizi s dané platby). Díky novému modulu zabere výpočet provize dle majitele Tomáše Meloun průměrně kolem dvou minut. Na výpočet provizí pro současných sedm zaměstnanců běžně stačí 15 minut.
Obr. 32
Přehled objednávek vybraného obchodního zástupce – provize k výplatě
Další výhodou nového modulu, je aktuální přehled zaplacených objednávek, ze kterých plyne obchodním zástupcům nárok na provizi (také přehled nezaplacených faktur, přehled již vyplacených provizí atd.). Tento modul šetří čas manažerovi, který už nemusí informovat obchodní zástupce o stavu zaplacení jednotlivých objednávek. Obchodní zástupce má pohodlný přístup k těmto informacím z kanceláře či domova a nemusí čekat, až mu manažer odpoví na jeho dotaz. Následujícím doplňkem je přehled již vyplacených provizí, který navíc umožňuje, stáhnou podrobný výpis konkrétní provize (objednávky ze kterých byla provize vypočtena, konkrétní částky atd.).
Zhodnocení
Obr. 33
61
Přehled již vyplacených provizí konkrétního zástupce
5.4 Přednostní výpisy Provedenými inovacemi v modulu přednostních výpisů, byla zvýšena efektivita celého procesu. Zejména díky funkci automatického napovídání čísla oboru, která odstraňuje nutnost dohledávání čísla oboru v jiném modulu. Druhá funkce urychluje obnovení přednostních výpisů díky tomu, že automaticky při vystavení nových přednostních výpisů deaktivuje staré přednostní výpisy dané firmy. Tento modul zobrazuje navíc historii přednostních výpisů u vybrané firmy. Tato historie umožní manažerovi rychlý přehled o minulých požadavcích zákazníka.
Obr. 34
Ukázka přednostních výpisů vybrané firmy
Dále do systému přibyly nové kontrolní mechanizmy, které brání vytvoření konfliktního nebo nekorektního přednostního výpisu. Systém nově obsahuje modul na hromadnou kontrolu přednostních výpisů, který zobrazuje pravděpo-
Zhodnocení
62
dobně chybné přednostní výpisy, manažer tyto přednostní výpisy opraví nebo vyhodnotí jako správné a označí je za výjimku. Díky použití těchto kontrolních mechanizmů, bylo podle majitele firmy Tomáše Meloun odhaleno mnoho chybných záznamů a zároveň se snížil počet nově vznikajících chybných záznamů.
5.5 Zaznamenávání změn v systému Modul zaznamenávající změny v systému dal managementu silný kontrolní nástroj, který přehledně zobrazuje změny ve všech důležitých datech v informačním systému. Modul umožňuje zjistit jaký uživatel má zodpovědnost za konkrétní změny. Například díky tomu manažer snadno dohledá, jaký uživatel způsobil chybnou úpravu dat. Další výhodou je sledování vývoje změn jednotlivých záznamů.
Obr. 35
Historie změn vybraného záznamu – firma NetFirmy
Druhý modul zaznamenává činnosti, kterou uživatelé provádějí v informačním systému. Díky tomu manažer dostává přehled o činnostech uživatelů. Nejdůležitější je přehled o činnostech obchodních zástupců. Tento přehled umožní manažerovi zjistit, zda zástupce používá informační systém podle plánu.
Zhodnocení
Obr. 36
63
Ukázka zaznamenaných činností obchodního zástupce
5.6 Ostatní V průběhu implementace nových rozšíření informačního systému vznikaly další požadavky, které bylo nutné vyřešit. Jedním s požadavků byl přechod na zálohový způsob fakturování. V původním systému byla vystavována běžná faktura. Tuto fakturu nově nahradila zálohová faktura, kterou zákazník obdrží po podepsání smlouvy. Až dojde k zaplacení zálohové faktury (tedy odpovídající částka je připsána na účet firmy NetFirmy) je nutné vystavit daňový doklad. Vystavení zálohové faktury je obdobný proces jako vystavení původní faktury. Vytváření daňových dokladů se v novém systému provádí hromadně. Manažer označí nově zaplacené faktury a automaticky vygeneruje jeden PDF soubor s daňovými doklady. Poté použije jiný ovládací prvek, pomocí kterého vygeneruje jeden PDF soubor s potisky na obálky k příslušným daňovým dokladům. Díky hromadnému systému byla zvýšena efektivita celého procesu tvorby daňových dokladů.
Závěr
64
6 Závěr V této práci byl analyzován původní stav informačního systému firmy NetFirmy a byli vytvořeny funkční a nefunkční požadavky na nový systém. Podle zvolených kritérii byly porovnány způsoby realizace nových požadavků a pomocí těchto kritérii bylo vybráno jako optimální řešení rozšíření původního informačního systému. Navržené a implementované inovace informačního systému splnily nově vytvořené požadavky a úspěšně byla zvýšena efektivita klíčový procesů firmy NetFirmy a to v mnoha případech zásadním způsobem. Zejména u nově implementovaných procesů hromadného přidělovaní firem, týdenního hlášení a výpočtu provize pro obchodního zástupce. U těchto procesů se podařilo snížit časové náklady na jednu pětinu, až jednu desetinu původních časových nákladů (u procesu hromadného přidělovaní firem ještě více). Nárůst efektivity procesů umožnil zvýšení počtu obchodních zástupců ve firmě NetFirmy, bez nutnosti navýšit počet administrativních pracovníků a management společnosti získal více času na rozvoj firmy. Dalším cílem inovací informačního systému bylo vytvoření nových možností identifikace současných chybných dat a zároveň minimalizování vzniku dalších chybných dat. Tento cíl se podařilo splnit pomocí kontrolních mechanizmů, což umožnilo firmě NetFirmy zvýšit svůj potenciál (například tím, že byly nalezeny zapomenuté firmy, které již měli být navštíveny obchodním zástupcem). Nově implementované moduly na kontrolu uživatelů a dat umožňují manažerovi kontrolovat činnosti uživatelů v informačním systému a poskytují mu také informaci, který uživatel má zodpovědnost za konkrétní změny v datech. Přepracované uživatelské rozhraní informačního systému je nyní více intuitivní a přehlednější. Inovovaný design zvyšuje uživatelský komfort a novým uživatelům umožňuje rychlejší orientaci v systému. Vývoj informačního systému firmy NetFirmy není tímto ukončen a v současné době jsou již navrhována další rozšíření - například o výpočet plánovaného obratu individuálně pro každého obchodního zástupce z výsledků za minulá období, globální statistiky obratů atd. Výsledek práce splnil plánovaný cíl, tedy zvýšení efektivity klíčových procesů a tím umožnil růst firmy NetFirmy bez navýšení nákladu na administrativu.
Literatura
65
7 Literatura [1] A simple diff algorithm in PHP. Paul Butler [online]. 2007 [cit. 201202-20]. Dostupné z: http://paulbutler.org/archives/a-simple-diffalgorithm-in-php/ [2] ARES: Administrativní registr ekonomických subjektů [online]. 2012 [cit. 2012-02-20]. Dostupné z: http://wwwinfo.mfcr.cz/ [3] CELKO, J. Joe Celko's SQL for Smarties: Advanced SQL Programming. 3. vyd. Massachusetts: Morgan Kaufmann, 2005. 840 s. ISBN 978-0123-69379-2.4. [4] Creative Commons. Licence CC 3.0 [online]. 2011 [cit. 2011-10-20]. Dostupné z: http://creativecommons.org/licenses/by/3.0/cz/ [5] DARIE, C. a kol. AJAX a PHP: tvoříme interaktivní webové aplikace profesionálně. 1. vyd. Brno: ZONER Press, 2006. 320 s. ISBN 8086815-47-1. [6] Dibi [online]. 2010 [cit. 2010-05-03]. Database Abstraction Library for PHP 5. Dostupné z: http://dibiphp.com/cs/dokumentace. [7] ERIKSSON, H. -- PENKER, M. Business Modeling with UML : Business Patterns at Work. New York: John Wiley & Sons, 2000. 19 s. ISBN 0471-29551-5.3. [8] ESyndiCat: Directory Software [online]. 2011 [cit. 2011-11-06]. Dostupné z: http://www.esyndicat.com/ [9] FPDF: a free PHP class to generate PDF files [online]. 2011 [cit. 201111-17]. Dostupné z: http://www.fpdf.org [10] FreeGlobes: annuaire PHP/MySQL gratuit [online]. 2011 [cit. 2011-1020]. Dostupné z: http://www.freeglobes.net [11] GNU General Public License. Open Source Initiative [online]. 2011 [cit. 2012-02-20]. Dostupné z: http://www.opensource.org/licenses/gpl2.0.php [12] Jak na démona Cron. Interval.cz [online]. 2002 [cit. 2012-02-20]. Dostupné z: http://interval.cz/clanky/jak-na-demona-cron/ [13] JavaScript: Wikipedia, the free encyclopedia. Wikipedia [online]. 2011 [cit. 2011-11-17]. Dostupné z: http://en.wikipedia.org/wiki/Java_script [14] JQuery plugin: Autocomplete. Bassistance.de [online]. 2010 [cit. 201202-20]. Dostupné z: http://bassistance.de/jquery-plugins/jqueryplugin-autocomplete/
Literatura
66
[15] JQuery: The Write Less, Do More, JavaScript Library [online]. 2012 [cit. 2012-02-10]. Dostupné z: http://jquery.com/ [16] MPDF: A PHP class to generate PDF files from HTML [online]. 2012 [cit. 2012-02-10]. Dostupné z: http://www.mpdf1.com/mpdf/ [17] MySQL Licensing Policy. MySQL: The world's most popular open source database [online]. 2011 [cit. 2011-11-16]. Dostupné z: http://www.mysql.com/about/legal/licensing/index.html [18] NETTE FOUNDATION, C. Dokumentace Nette Framework. [online]. 2011. URL: http://nette.org/cs/dokumentace. [19] Pagerank. Hm2k [online]. 2007 [cit. 2011-10-17]. Dostupné z: http://www.hm2k.com/projects/pagerank [20] PC.net: Definition of URL [online]. 2010 [cit. 2011-11-10]. Dostupné z: http://pc.net/glossary/definition/url [21] PDF generator in PHP. Stack Overflow [online]. 2011 [cit. 2011-11-17]. Dostupné z: http://stackoverflow.com/questions/1648715/best-pdfgenerator-in-php-mpdf-or-fpdf [22] PECINOVSKÝ, R. Návrhové vzory: 33 vzorových postupů pro objektové programování. 1. vyd. Brno: Computer Press, 2007. 527 s. ISBN 978-80-251-1582-4. [23] PHP Link Directory Script [online]. 2011 [cit. 2011-11-06]. Dostupné z: http://www.phplinkdirectory.com/ [24] PHP scripty na zjištění S-Ranku a PageRanku. XRank.cz [online]. 2007 [cit. 2011-10-17]. Dostupné z: http://xrank.cz/download [25] PHPExcel [online]. 2012 [cit. http://phpexcel.codeplex.com/
2012-02-20].
Dostupné
z:
[26] SCHLOSSNAGLE, G. Pokročilé programování v PHP 5. 1. vyd. Brno: ZONER Press, 2004. ISBN 80-86815-14-5. [27] SMIČKA, Radim. Optimalizace pro vyhledávače - SEO. Dubany: Jaroslava Smičková, 2004, 120 s. ISBN 80-239-2961-5. [28] Struktura GPC formátu. Fio banka [online]. 2010 [cit. 2011-11-23]. Dostupné z: http://www.fio.cz/docs/cz/struktura-gpc.pdf [29] TIDWELL, J. Designing interfaces. 1. vyd. Beijing: O'Reilly, 2006. 331 s. ISBN 0-596-00803-1.2. [30] Zdroják [online]. 2009 [cit. 2012-03-05]. Nette Framework: MVC & MVP. Dostupné z: http://zdrojak.root.cz/clanky/nette-framework-mvc-mvp/.
Přílohy
67
Přílohy
Přílohy
68
A Schéma databáze
Obr. 37
Databázové schéma – neobsahuje tabulky pro internetovou databázi netkatalog.cz