PŘÍRODOVĚDECKÁ FAKULTA UNIVERZITY PALACKÉHO KATEDRA INFORMATIKY BAKALÁŘSKÁ PRÁCE. Vytváření a evidence smluv Petr Čulík

Rozměr: px
Začít zobrazení ze stránky:

Download "PŘÍRODOVĚDECKÁ FAKULTA UNIVERZITY PALACKÉHO KATEDRA INFORMATIKY BAKALÁŘSKÁ PRÁCE. Vytváření a evidence smluv. 2012 Petr Čulík"

Transkript

1 PŘÍRODOVĚDECKÁ FAKULTA UNIVERZITY PALACKÉHO KATEDRA INFORMATIKY BAKALÁŘSKÁ PRÁCE Vytváření a evidence smluv 2012 Petr Čulík

2 Anotace Aplikace slouží uživateli jako nástroj pro vytváření a evidenci jednorázových, průběžných nebo cyklických smluv na poskytování služeb nebo dodávku zboží. Umožňuje také odesílání podkladů pro fakturaci do ekonomického systému a import požadavků rozsahu poskytovaných služeb vyplněných odběratelem.

3 Děkuji vedoucímu své bakalářské práce Ing. Jiřímu Hronkovi za cenné rady a připomínky. Děkuji Ing. Pavlu Gnipovi za zadání. Děkuji své manželce a dětem za trpělivost, pochopení a zvláště za neutuchající podporu.

4 Obsah 1. Zadání bakalářské práce Údaje evidované u všech typů smluv Specifické údaje pro základní typy smluv Smlouva Protofarm Smlouva Evidence honů Smlouva Dobrý hospodář Smlouva Aplikační mapy Další požadavky Popis problému Čemu se práce věnuje Řešení Použité technologie a nástroje Struktura programu Uživatelská příručka Systémové požadavky Instalace Úvod Složení smlouvy Upřesnění významu částí smlouvy Vlastnosti, jejichž evidenci lze umožnit u typů smluv, oddílů, cyklů a položek smlouvy Stanovení výchozího termínu Typ termínu zdanitelného plnění Datový zdroj Typ služby Typ závislosti jednotkové ceny Dokument smlouvy Stav smlouvy Spuštění aplikace a hlavní menu Obecné principy platné pro všechny formuláře v aplikaci Formuláře pro editaci údajů Formuláře se seznamy Majitel licence, odběratelé, osoby, adresy, kontakty Majitel licence Odběratelé Osoby Adresy Kontakty

5 4.7. Služby, ceník Služby Ceník Typy smluv, oddílů a cyklů Typy smluv Typy oddílů Typy cyklů Smlouvy Šablona smlouvy Programátorská dokumentace Struktura smlouvy Diagram tříd ER diagram Případy užití Uplatnění použitých technologií WSDL ARES XML Objektový model Office Návrhové vzory Regulární výrazy Aplikace Zákaznické požadavky Závěr 47 Reference 48 A. Popis obsahu přiloženého CD 49 5

6 Seznam obrázků 1. Třívrstvá architektura aplikace Formulář Editace údajů majitele licence Formulář Editace odběratelů Formulář Editace osoby Formulář Editace adresy Formulář Výběr adresy Formulář Editace kontaktu Formulář Editace služby nebo zboží Formulář Editace ceníku služby Formulář Editace typu smlouvy Formulář Editace struktury termínu Formulář Editace typu oddílu Formulář Editace typu cyklu Formulář Editace smlouvy - záložka předmět smlouvy Model struktury smlouvy Diagram tříd hlavních částí smlouvy ER-diagram částí smlouvy Celkový diagram případů užití Okno aplikace Zákaznické požadavky

7 1. Zadání bakalářské práce Aplikace řeší vytváření a evidenci čtyř základních typů smluv mezi dodavatelem a odběratelem služeb a zboží (dále jen služeb) a odesílání podkladů pro fakturaci do ekonomického systému. Dále umožňuje doplňovat další typy smluv podobné struktury. Aplikace bude používána jedním uživatelem s přístupem k databázi přes definované uživatelské DSN Údaje evidované u všech typů smluv typ a číslo smlouvy údaje o dodavateli a odběrateli: plné jméno právnické nebo fyzické osoby adresa sídla IČ, případně DIČ osoba zákonného zástupce bankovní účet údaj o zápisu v příslušné evidenci firem a podnikatelů místo a datum podpisu smlouvy osoby podepisující smlouvu za obě smluvní strany 1.2. Specifické údaje pro základní typy smluv Smlouva Protofarm Smlouva na dobu určitou, ošetřuje buď jednorázové a/nebo cyklické (1 nebo více cyklů) poskytnutí vybraných služeb, které jsou rozděleny do dvou oddílů. U smlouvy se stanovuje datum účinnosti od - do (typicky tříletá účinnost od do příslušných roků). v prvním oddílu jsou uvedeny služby, které mohou být poskytnuty jednorázově a služby které mohou být poskytnuty buď jednorázově nebo cyklicky stanovuje se počet cyklů, datum účinnosti od - do jednotlivých cyklů (jsou roční, navazují na sebe a jsou v rozsahu účinnosti celé smlouvy) stanovuje se nejzazší termín plnění (typicky příslušného roku) stanovuje se, které služby z nabídky budou poskytovány 7

8 stanovuje se datový zdroj, ze kterého se budou vytvářet podklady pro určení rozsahu poskytovaných služeb počet jednotek se podle nastavení služby zadává ručně nebo se získává z dodaných požadavků vyplněných odběratelem stanovuje se jednotková cena pro vybrané služby s případným rozlišením jejich variant, která bude přednastavena z ceníku. Jednotková cena není závislá na množství eviduje se informace o splnění požadovaných služeb pro každý cyklus stanovuje se datum zdanitelného plnění a doba splatnosti pro každý cyklus po splnění požadovaných služeb v daném cyklu je umožněno vytvořit podklady k fakturaci ve druhém oddílu jsou uvedeny jednorázové služby. Po splnění všech požadovaných služeb v oddílu je umožněno vytvořit podklady k fakturaci. U každé služby se stanovuje: zda bude poskytována termín nejzazšího plnění množství a jednotková cena nezávislá na množství eviduje se splnění služby Smlouva Evidence honů Jednorázová smlouva na udělení licence k software, bez omezení doby použití. Jednotková cena se odvíjí od množství (např. za 1. licenci 4500,- a za každou další 1500,-). Po splnění je umožněno vytvořit podklady k fakturaci. U smlouvy se stanovuje: termín a místo plnění počet licencí celkem, který bude pro účely fakturace přepočítán na jednotlivé cenové hladiny jednotková cena pro každou cenovou hladinu, která bude přednastavena z ceníku termín zdanitelného plnění a doba splatnosti eviduje se splnění za smlouvu 8

9 Smlouva Dobrý hospodář Jednorázový prodej zboží nebo poskytnutí licence k software. Jednotková cena se odvíjí od dodaného množství (např.: 1-4 ks 2000,-/ks, 5-10 ks 1500,-/ks, od 11 ks 1200,-/ks). Smlouva je členěna do několika oddílů a v každém z nich je seznam nabízeného zboží nebo licencí software (dále jen zboží). U každého zboží se stanovuje: zda bude poskytováno množství jednotková cena pro každou cenovou hladinu, která bude přednastavena z ceníku Po splnění je umožněno vytvořit podklady k fakturaci. U smlouvy se stanovuje: termín a místo plnění termín zdanitelného plnění a doba splatnosti eviduje se splnění za smlouvu Smlouva Aplikační mapy Jednorázové poskytnutí služby ve stanoveném termínu. Jednotková cena není závislá na množství. Smlouva obsahuje jeden oddíl, ve kterém je seznam nabízených služeb. U vybrané služby se stanovuje: zda bude poskytována množství jednotková cena, která bude přednastavena z ceníku Po splnění je umožněno vytvořit podklady k fakturaci. U smlouvy se stanovuje: datum účinnosti smlouvy od - do termín plnění termín zdanitelného plnění a doba splatnosti eviduje se splnění za smlouvu 9

10 1.3. Další požadavky možnost úpravy vygenerovaných dokumentů smluv smlouvy označené jako podepsané ukládat ve formátu PDF možnost přidávat a upravovat stávající typy smluv umístění dat na PostgreSQL snadná jazyková lokalizace 10

11 2. Popis problému 2.1. Čemu se práce věnuje Tato aplikace byla vytvořena pro potřeby organizace, zabývající se dodávkou služeb pro zemědělské podniky. Jedná se převážně o služby pro optimální využití chemických hnojiv. Aby tyto služby byly účinné, je nutné je vzájemně vhodně kombinovat a část z nich provádět opakovaně. Smlouvy na tyto ucelené balíky služeb byly dosud vytvářeny a evidovány ručně, pomocí běžných kancelářských aplikací z balíku MS Office, protože se nepodařilo nalézt vhodný nástroj pro jejich automatizaci. Na trhu jsou k dispozici různé aplikace pro evidenci smluv, ty ale převážně řeší až evidenci vytvořených smluv v listinné podobě, jejich převod do elektronické formy, opatření nezbytnými údaji (účastníci smlouvy, předmět smlouvy, účinnost, atd.) a uložení. Dostupné jsou i takové, které smlouvy vytvářejí, např. Advice.cz, obsahují množství funkcí (umožňují používat splátkový kalendář, pracují s dodatky, uchovávají přílohy), ale neumí kombinovat v jedné smlouvě opakující se a jednorázové služby, neevidují termíny plnění a neevidují splnění požadovaných služeb. Další nevýhodou je, že neumožňují importovat údaje s požadavky na poskytovaný rozsah služeb od odběratelů, což je jeden z významných požadavků zadavatele. 11

12 3. Řešení 3.1. Použité technologie a nástroje Tato práce byla vytvořena v jazyce C# 2010 pomocí nástroje Microsoft Visual Studio 2010 Professional edition s knihovnou.net 4.0. Jako datový zdroj je použit PostgreSQL v Databáze PostgreSQL byla zvolena hlavně z toho důvodu, že zadavatel práce již na ní provozuje několik aplikací, z nichž se využívají některé tabulky v tomto programu. Výhodou je podpora geografických datových typů, které jsou pomocí rozšíření PostGIS (implementace OpenGIS pro PostgreSQL) obaleny do specifického datového modelu. Geografické datové typy jsou použity v podkladových datech některých služeb. Další výhodou databáze PostgreSQL je také to, že je distribuována pod BSD licencí, která umožňuje neomezené bezplatné používání, modifikaci a distribuci i pro komerční využití. Připojení k databázi je realizováno přes ODBC driver. Pro import ShapeFile souborů do databáze se používá PostGIS Shapefile and DBF Loader Pro vytvoření dokumentu smlouvy je využita spolupráce s aplikací Microsoft Word Dokument je vytvořen ze šablony přiřazené k příslušnému typu smlouvy vyplněním předdefinovaných záložek a uložen ve formátu DOC, který je dále možné editovat. Stejně tak požadované ukládání konečné verze dokumentu do PDF se provádí s využitím přístupu k objektovému modelu Microsoft Word V aplikaci jsou použity veřejně dostupné webové služby pro zjištění základních údajů o firmách a pro ověření platnosti adresy ARES aresbasic a aresadresa, které spravuje Ministerstvo financí ČR Program byl vyvíjen v prostředí operačního systému Windows 7, 64-bit a byl testován ve verzích OS Windows XP a Windows 7 32-bit a 64-bit. UML diagramy byly vytvořeny v programu Enterprise Architect verze firmy Sparx Systems Dokumentace byla vytvořena v programu TeXnicCenter verze 1.0 Nápověda byla vytvořena v programu HelpNDoc verze Struktura programu Program je navržen jako třívrstvá aplikace, kdy první vrstvu tvoří databáze PostgreSQL, druhou vrstvu knihovna Business obsahující specializované třídy komunikující s příslušným datovým zdrojem a třídy business-logiky včetně dalších pomocných knihoven, třetí vrstvu pak prezentační třídy zprostředkovávající komunikaci s uživatelem umístěné v knihovně PreWinForm. 12

13 Obrázek 1. Třívrstvá architektura aplikace Jako primární datový zdroj byla zvolena databáze PostgreSQL z výše uvedených důvodů. V případě, že tato databáze nevyhovuje, může být použita libovolná jiná databáze, XML soubory nebo jiné datové soubory. Pro snadnou lokalizaci do jiného jazyka jsou veškeré texty zpráv a popisy tlačítek vyčleněny do Resources File souborů, což jsou XML soubory a lze je upravovat i mimo vývojové prostředí Visual Studia běžným textovým nebo XML editorem. Jen texty na formulářích je vhodnější upravit přímo na nich z důvodu možné změny rozmístění ovládacích prvků. 13

14 4. Uživatelská příručka 4.1. Systémové požadavky Operační systém Windows XP nebo Windows 7 Rozhraní Microsoft.NET Framework 4 Microsoft Office zobrazení a případné úpravy dokumentu smlouvy v době návrhu Adobe Reader - zobrazení výsledného dokumentu smlouvy 4.2. Instalace Pokud jsou splněny systémové požadavky, pak instalace aplikace probíhá prostým rozbalením souboru Install.zip do zvoleného adresáře. Pro správnou komunikaci s SQL serverem je nutno zajistit, aby byla v systému jako desetinný oddělovač nastavena tečka. To lze provést následovně: - v systému Windows 7 se otevře složka Ovládací panely, v ní Oblast a jazyk a tam na záložce Formáty se volbou Další nastavení otevře nové okno Vlastní formát. V tomto okně se již nastaví na záložce Čísla požadovaný Desetinný oddělovač - v systému Windows XP se podobně otevře složka Ovládací panely, v ní Místní a jazykové nastavení a tam na záložce Místní nastavení se volbou Vlastní nastavení otevře nové okno Vlastní místní nastavení. V tomto okně se již nastaví na záložce Čísla požadovaný Desetinný oddělovač U SQL serveru PostgreSQL je nutné zvolit 32-bitovou verzi, neboť PostGIS není v 64-bitové podporován. Popis průběhu instalace SQL serveru PostgreSQL, ovladače ODBC, a vytvoření uživatelského DSN je popsán v samostatném dokumentu Instalace SQL serveru PostgreSQL 4.3. Úvod Složení smlouvy Aby bylo možné vykonávat základní požadovanou funkci programu, což je vytváření smluv, je nutné pro ni připravit určité podklady. Přestože je každá smlouva jiná, lze je rozdělit do několika typů se stejnou strukturou. U každého typu smlouvy jsou definovány části z nichž je složena. Tyto části tvoří hierarchii v posloupnosti oddíl smlouvy, cyklus smlouvy a položka smlouvy, každá z nich je také určitého typu, kde je předepsaný její obsah. Nastavení parametrů těchto 14

15 částí se provádí v pomocných formulářích, kde se definuje které vlastnosti bude evidovat a které a případně kolik podřízených částí bude obsahovat. Při vytváření vlastní smlouvy se pak jen určí její typ a program zobrazí formulář, kde lze vyplnit právě ty údaje, které jsou u tohoto typu smlouvy požadovány Upřesnění významu částí smlouvy Smlouva - smlouva jako taková, je na nejvyšší úrovni a obsahuje jeden, nebo více oddílů smlouvy Oddíl smlouvy - část smlouvy seskupující služby s podobným významem a průběhem, obsahuje položky smlouvy. Pokud je u oddílu definován cyklus pak obsahuje i jejich stanovený počet, přičemž položky smlouvy s cyklickou službou jsou umístěny ve všech cyklech, ostatní jen v prvním cyklu Cyklus smlouvy - část oddílu smlouvy seskupující cyklické služby Položka smlouvy - poskytovaná služba nebo dodávané zboží vyjadřující předmět smlouvy Vlastnosti, jejichž evidenci lze umožnit u typů smluv, oddílů, cyklů a položek smlouvy U typů smluv, oddílů a cyklů lze umožnit evidenci vlastnostem: Účinnost od - datum počátku účinnosti smlouvy nebo její části Účinnost do - datum konce účinnosti Termín plnění - datum, kdy nejpozději mají být všechny předměty obsažené ve smlouvě, nebo její části splněny Místo plnění - místo, kde se provádí plnění předmětů smlouvy Zpracoval - osoba, která plnění provedla Zdanitelné plnění - datum které bude uvedeno na vystavené faktuře jako datum zdanitelného plnění Splatnost - počet dnů splatnosti od data zdanitelného plnění faktury Datový zdroj - popsáno dále Cykly - jen u oddílu smlouvy, určuje že může obsahovat jeden typ cyklu (případný jiný typ cyklu musí být umístěn v jiném oddíle) v zadaném počtu 15

16 Výchozí hodnoty lze určit u vlastností účinnost od, účinnost do, termín plnění, typ zdanitelného plnění a termín zdanitelného plnění (nastavuje se v případě, kdy typ termínu zdanitelného plnění má hodnotu K datu ) U položek smlouvy lze umožnit evidenci vlastnostem: Termín plnění - datum, kdy nejpozději má být předmět této položky smlouvy splněn Místo plnění - místo, kde má být předmět této položky smlouvy plněn Zpracoval - osoba, která plnění provedla Výchozí hodnoty lze určit u vlastnosti termín plnění a je také možné nastavit označení bodu smlouvy, které se bude na vytvořeném dokumentu smlouvy zobrazovat. Dále se u položek smlouvy nastavuje způsob jakým se bude zadávat požadované množství, to lze volit mezi: Ruční - množství se zadává přímo na formuláři smlouvy a je uvedeno na dokumentu smlouvy Datový zdroj - množství je určeno až v průběhu účinnosti smlouvy nebo její části - viz. Datový zdroj Pole pro editaci hodnot těchto vlastností jsou pak zobrazeny na formuláři smlouvy. Aby nedocházelo ke vzájemným konfliktům mezi stejnými vlastnostmi na různých úrovních je stanoveno, že je-li požadována stejná vlastnost u části na vyšší úrovni, pak má přednost a pole pro její editaci je zobrazeno jen tam. To se týká vlastností termín plnění, místo plnění, zpracoval, zdanitelné plnění, splatnost a datový zdroj Stanovení výchozího termínu Výchozí hodnoty datumových údajů jsou tvořeny vzorem, podle kterého bude při založení nové smlouvy vytvořeno dotyčné výchozí datum. Určuje základní datum, ze kterého se bude vytvářet a buď časový posun nebo pevný údaj v letech, měsících a dnech. Základní datum může být aktuální datum, datum ze zvoleného údaje nadřízené části nebo zvoleného údaje sebe sama, u cyklů také zvolený údaj z předcházejícího cyklu. Možné hodnoty složek použité ve vzoru: Část smlouvy / aktuální datum - aktuální datum (D), smlouva (S), oddíl (O), cyklus (C), předcházející cyklus - jen u cyklů (Y) Údaj části smlouvy - účinnost od (UO), účinnost do (UD), termín plnění (TP), termín zdanitelného plnění (TZ). Toto nemá význam u aktuálního data. 16

17 Označení časového posunu - po základním datu (+), před základním datem (-), pevně stanovený je bez označení, posledního v měsíci (M) - má význam jen u dne - pokud není pevně zadaný měsíc, pak není možné pevně stanovit poslední den v měsíci, tato volba to umožní. Pokud je číselná hodnota 0, pak se označení časového posunu nezobrazuje. Číselná hodnota - pro časový posun lze u roku a měsíce volit 0-99, u dne 0-999, pro pevnou hodnotu u měsíce 0-12, u dne 0-31, u roku nelze pevnou hodnotu nastavit (0 - vyjadřuje, že se použije aktuální hodnota časové části) Složky se oddělují tečkou. a zadávají se v pořadí aktuální datum nebo část smlouvy a údaj části smlouvy. označení časového posunu roku a hodnota posunu. označení časového posunu měsíce a hodnota posunu nebo pevná hodnota. označení časového posunu dne a hodnota posunu nebo pevná hodnota. Pokud je určen časový posun u vyšší časové složky (rok - nejvyšší, měsíc, den), pak u nižších lze stanovit jen pevný termín. Příklady: D.0.12.M - posledního prosince aktuálního roku (aktuální datum, stejný rok, pevně stanovený měsíc, poslední den v měsíci); OUO.+2, den v měsíci, měsíc stejný jako u data počátku účinnosti oddílu o dva roky později (datum počátku účinnosti smlouvy, dva roky po, stejný měsíc, prvního v měsíci) Typ termínu zdanitelného plnění Typ termínu zdanitelného plnění označuje jakým způsobem bude termín zdanitelného plnění určen, lze volit z následujících hodnot: Ke dni předání - použije aktuální datum při vytvoření podkladu pro fakturaci, která je umožněna až po označení o splnění příslušné části K datu - použije zadané datum, fakturace je umožněna bez ohledu na splnění příslušné části Datový zdroj V této aplikaci je datovým zdrojem myšlena tabulka, uložená v databázi s geografickými daty (PostGIS), která nese informace o pozemcích. Vybraná tabulka může být přiřazena k části smlouvy, která to umožňuje. Z jejích dat je pak vygenerován podkladový soubor obsahující na řádcích seznam pozemků a pro každou položku této části smlouvy, která má typ zadání množství nastaven na Datový zdroj, je doplněn jeden sloupec. Do podkladového souboru je přidána informace o tom jaké hodnoty mohou být v jednotlivých sloupcích zadány. Omezení hodnot je určeno typem závislosti jednotkové ceny služby přiřazené k 17

18 položce smlouvy takto: nezávislá, množstevní a základová - hodnoty 0 a 1, výčtová - 0 a všechny hodnoty výčtu (0 znamená, že služba pro daný pozemek není požadována, jiná hodnota pak to, že požadována je případně v jakém rozsahu). Podkladový soubor je pak odeslán odběrateli, který v něm pomocí dodaného programu vyplní své požadavky a zašle zpět dodavateli. Dodavatel jej použije jednak pro samotné poskytnutí požadovaných služeb a také ho naimportuje zpátky do příslušné smlouvy, kde budou vyplněny v příslušných položkách smlouvy údaje o požadovaném množství. Na základě toho je pak možné vytvořit podklady k fakturaci Typ služby U služby se nastavuje její typ, který vyjadřuje časový průběh poskytování služby: Jednorázová - služba je vykonána v jeden okamžik (v krátkém časovém rozmezí) a neopakuje se Cyklická - služba je vykonána v jeden okamžik (v krátkém časovém rozmezí) a v zadaných intervalech se opakuje Průběžná - služba je vykonávána po celou dobu účinnosti Typ závislosti jednotkové ceny U služby se také nastavuje typ závislosti jednotkové ceny, který určuje zda jsou u služby evidovány cenové hladiny, případně různé varianty: Nezávislá - cena není závislá na odebraném množství. V ceníku je uvedena jedna cena Množstevní - cena je závislá na odebraném množství. V poli seznam hodnot se uvedou všechny hodnoty (numerické hodnoty), pro které má být stanovena cena. Cena platí pro stanovené množství a vyšší. Například je stanovena jednotková cena pro 1, 3 a 15 ks, při odběru 8ks se použije jednotková cena pro 3 ks - ta je platná pro odběr 3-14 ks. Celková cena za 8 ks tedy činí 8 * jednotková cena pro 3 ks Výčtová - cena je stanovena pro každou hodnotu ve výčtu. V poli seznam hodnot se uvede jejich výčet - jsou přípustné alfanumerické hodnoty včetně mezer. Například služba Odběr vzorků se provádí tak, že se odebere jeden vzorek buď na každé 3 ha, nebo jeden vzorek na každých 5 ha (na poli o výměře 100 ha to odpovídá 33, nebo 20 vzorkům), každý způsob odběru je zapsán do výčtu (3 ha, 5 ha), je pro něj stanovena jedna cena v ceníku a do textu hranice ceny je zapsán rastr 18

19 Základová - cena je stanovena za základní množství a za každé další započaté množství. V poli seznam hodnot se uvedou dvě alfanumerické hodnoty. Například je poskytována služba u které je stanovena cena za prvních 1000 ha, a cena za každých dalších započatých 500 ha. Pro výměru 2300 ha je pak celková cena součet základní ceny za prvních 1000 ha a za zbývajících 1300 ha jako součin 3 * cena za dalších započatých 500 ha Dokument smlouvy Dokumentem smlouvy se má na mysli vygenerovaný dokument ve formátu.doc nebo.pdf Stav smlouvy Význam jednotlivých stavů smlouvy: Návrh - v tomto stavu je od vytvoření nové smlouvy až do označení, že je podepsaná, nebo zrušená. V tomto stavu lze editovat veškerá nastavení smlouvy a jejích částí. Rozsah účinnosti, termíny plnění, termíny zdanitelného plnění, dobu splatnosti, vybírat požadované služby k plnění, zadávat požadované množství (pokud je nastaven způsob zadávání množství na Ruční), upravovat ceny za poskytnuté služby, zadat kde a kdy byla (nebo spíš bude) smlouva podepsaná, generovat dokument smlouvy a otevírat ho pro úpravy Podepsaná - do tohoto stavu může smlouva přejít ze stavu návrh označením jako podepsaná, tento krok je nevratný. Podpisem smlouvy je vygenerován dokument smlouvy ve formátu PDF a již jej nelze otevírat pro úpravy. V tomto stavu lze pracovat pracovat pouze s datovými zdroji Aktivní - v tomto stavu se smlouva nachází, je-li podepsaná. Zároveň musí splňovat podmínku buď eviduje-li rozsah účinnosti smlouvy od - do a aktuální systémové datum je v tomto rozsahu, nebo eviduje termín plnění a aktuální systémové datum je menší než určený termín plnění. V tomto stavu lze pracovat s datovými zdroji, označovat části smlouvy za splněné, nastavovat osoby které provedly plnění, provádět fakturaci a zobrazovat dokument smlouvy Ukončená - v tomto stavu je smlouva pokud vypršela účinnost smlouvy, nebo uplynula lhůta pro termín plnění. V tomto stavu lze provádět stejné činnosti jako u smlouvy aktivní s výjimkou práce s datovými zdroji Zrušená - označuje, že smlouva byla zrušena. Smlouvu lze zrušit v jakémkoliv okamžiku její existence, ale jedná se o nevratný krok. Zrušenou smlouvu a případně vytvořený dokument smlouvy lze pouze prohlížet. Jiné operace s ní nejsou umožněny 19

20 4.4. Spuštění aplikace a hlavní menu Po spuštění souboru EvidenceSmluv.exe aplikace nejdříve zkontroluje požadovanou strukturu adresářů, které jsou umístěny v pracovním adresáři, ze kterého je aplikace spuštena. Struktura je následující: \Dokumenty \Šablony - zde jsou umístěny šablony všech definovaných typů smluv \Smlouvy - v tomto adresáři aplikace vytváří pro každou smlouvu nový podadresář s názvem, který je tvořen číslem smlouvy, v němž jsou nahrazeny znaky / za znaky -. V nich se pak ukládají generované dokumenty smlouvy. Pokud požaduje daná smlouva datové podklady, pak je tam vytvořen podadresář \PrenosDatSeZakaznikem - do kterého se ukládají vytvořené podklady pro vyplnění požadavků odběratelem a odkud se načítají zpětně zaslané vyplněné požadavky od odběratele Jestliže tyto podadresáře chybí, aplikace je vytvoří. Po této kontrole se zobrazí základní obrazovka s možností výběru požadované akce z hlavního menu, které obsahuje následující volby: Smlouva Nová smlouva - spustí formulář pro vytvoření nové smlouvy Seznam smluv - zobrazí seznam vytvořených smluv s možností filtrování a editace vytvořené nebo vytvoření nové smlouvy Odběratelé Číselníky Odběratelé - zobrazí seznam evidovaných odběratelů s možností editace evidovaných nebo přidání nových Osoby - zobrazí seznam evidovaných kontaktních osob nebo oprávněných zástupců odběratelů s možností jejich editace Služby - zobrazí seznam poskytovaných služeb s možností editace již zavedených nebo přidání nových a editace ceníku služeb Typy smluv - zobrazí seznam vytvořených typů smluv s možností jejich editace nebo přidání nových typů 20

21 Typy oddílů - zobrazí seznam vytvořených typů oddílů s možností jejich editace nebo přidání nových typů Nastavení Typy cyklů - zobrazí seznam vytvořených typů cyklů smluv s možností jejich editace nebo přidání nových typů Majitel licence - spustí formulář pro editaci údajů majitele licence Pomoc - zobrazí nápovědu k aplikaci Konec - ukončí aplikaci Při prvním spuštění jsou datové soubory prázdné a je třeba je naplnit Obecné principy platné pro všechny formuláře v aplikaci Formuláře pro editaci údajů Formuláře, které slouží pro editaci údajů obsahují tlačítka Zavři, Ulož a Obnov. Ty mají následující význam: Zavři - je dostupné vždy, slouží k opuštění formuláře bez uložení dat. Pokud došlo ke změně dat, bude zobrazen dotaz, zda si uživatel opravdu přeje data neuložit Ulož - je dostupné, pokud na formuláři došlo ke změně dat. Po jeho stisknutí je zobrazen dotaz, zda se mají změny opravdu uložit a po potvrzení data uloží a formulář zavře Obnov - je dostupné, pokud na formuláři došlo ke změně dat. Slouží k obnově údajů ke stavu před započetím jejich editace (stejný efekt by mělo zavření formuláře a jeho opětovné spuštění). Pole s jednoduchými údaji (jméno, název firmy, bankovní účet) se vyplňují přímo. U polí se složenými údaji (adresa, osoba, kontakt) je dvojklikem na pole otevřen příslušný formulář, ve kterém pak lze jednotlivé údaje vyplnit. 21

22 Formuláře se seznamy Formuláře se seznamy objektů obsahují tlačítka Zavři a Nový záznam s následujícím významem: Zavři - zavře formulář. Dotaz nezobrazuje, protože zde nedochází ke ztrátě dat. Nový záznam - spustí formulář pro editaci nového objektu, stejného typu jako jsou objekty v seznamu Pokud je na začátku řádku v seznamu zobrazena ikona přeškrtnutého kroužku, lze kliknutím na ni objekt na tomtéž řádku zrušit. Je-li však dotyčný objekt vázán k nějakému jinému objektu (například osoba je vedena jako kontaktní osoba u odběratele nebo typ oddílu je součástí některého typu smlouvy), pak jej aplikace zrušit nepovolí. Dvojklikem na řádek v seznamu se otevře formulář pro editaci objektu, který k řádku přísluší Majitel licence, odběratelé, osoby, adresy, kontakty Majitel licence Údaje zadáme na formuláři Evidence údajů majitele licence, který otevřeme volbou menu Nastavení/Majitel licence. Ty lze buď všechny zadat ručně, nebo vyplnit pouze IČ a kliknutím na ikonu zeměkoule s otazníkem se s využitím webové služby ARES, kterou poskytuje Ministerstvo financí ČR, ověří zadané IČ a doplní následující údaje: DIČ - pokud je plátcem DPH Název firmy Právní forma Zápis v příslušné evidenci firem a podnikatelů Adresa sídla firmy Ostatní je již potřeba vyplnit ručně: Bankovní účet Osoba oprávněného zástupce - zde aktuálně uvedená osoba bude zaznamenána jako osoba podepisující smlouvu za dodavatele a uvedena na dokumentu smlouvy při jeho vytvoření 22

23 Obrázek 2. Formulář Editace údajů majitele licence Údaje fakturační adresa a kontaktní osoba lze ponechat volné, zde nemají význam (stejný formulář se používá i pro editaci odběratele a tam mají své opodstatnění). Editace jednotlivých polí se provádí tak jak je uvedeno výše. Údaj ze složených polí jako adresy a informace o osobách, lze odstranit kliknutím na ikonu křížku, umístěného po pravé straně textového pole. Popis editačních formulářů Editace osoby a Editace adresy je uveden dále. U majitele licence je důležité vyplnit ovou adresu - bude vkládána do souborů s podklady pro vyplnění požadavků na rozsah plnění, kde slouží jako návratová adresa po vyplnění odběratelem. Kontaktní údaje, jako například právě ová adresa, lze zadávat jak u firem (odběratelé, majitel licence), tak osob a to jednoduše stiskem tlačítka Přidej kontakt. Tím se zobrazí formulář Editace kontaktu - popis formuláře je uveden dále. Stávající kontakty lze upravovat buď stiskem tlačítka s typem kontaktu, nebo dvojklikem na textové pole. V obou případech se opět zobrazí formulář Editace kontaktu. Odstranění kontaktu se provede kliknutím na ikonu křížku umístěného na pravé straně textového pole kontaktu. 23

24 Odběratelé Volbou hlavního menu Odběratelé/Odběratelé se otevře formulář Editace odběratelů se seznamem již evidovaných odběratelů, ze kterého buď požadovaného odběratele vybereme nebo kliknutím na tlačítko Nový záznam vytvoříme nového. Obrázek 3. Formulář Editace odběratelů Pro vyplnění nebo změnu údajů o odběratelích se používá formulář Editace odběratele. Má stejný vzhled a ovládání jako předcházející formulář. Zde však mohou mít význam dva údaje, které byly u majitele licence bezpředmětné a to: Fakturační adresa - pokud je vyplněna, bude použita při fakturaci Kontaktní osoba - pokud je vyplněna, budou zástupci dodavatele projednávat okolnosti smlouvy s ní Osoby Formulář Editace osoby slouží k editaci údajů o zvolené osobě a je dostupný buď tak, že se přes hlavní menu Odběratelé/Osoby otevře formulář Editace osob se seznamem evidovaných osob, ze kterého se požadovaná osoba vybere, nebo z formulářů pro editaci údajů firem (majitel licence, odběratelé) Na něm můžeme upravovat údaje: Titul před jménem 24

25 Obrázek 4. Formulář Editace osoby Titul za jménem Jméno Příjmení Státní příslušnost Kontakty Státní příslušnost osoby není nutné evidovat, může však sloužit jako informativní údaj. Edituje se výběrem ze seznamu, který se rozevře při kliknutí na tlačítko. Kontakty se vztahují k této osobě a jsou odlišné od kontaktů uvedených u odběratele. Tam by měly být evidovány obecné kontakty na firmu. Editace kontaktů osob se provádí stejně jako u kontaktů firem, která byla popsána výše Adresy Editace adres se provádí ve formuláři Editace adresy. Je dostupný pouze z formuláře pro editaci údajů odběratele, nebo majitele licence. Dostupné údaje jsou: Místo - město nebo obec Ulice Číslo popisné PSČ - v jiných zemích např. ZIP code, nebo PLZ (Německo) Stát 25

26 Obrázek 5. Formulář Editace adresy Formát PSČ je kontrolován podle údaje obsaženého v tabulce států, pokud neodpovídá, zobrazí se chybová zpráva u textu PSČ. Má však pouze informativní charakter - uložit lze i údaj s chybně zadaným formátem. Obrázek 6. Formulář Výběr adresy Platnost zadané adresy lze pro sídla v České republice ověřit kliknutím na ikonu zeměkoule s otazníkem. Opět je využita webová služba ARES. Pokud adresa není zadána správně nebo úplně a byly nalezeny podobné platné adresy, pak jsou poskytnuty k výběru na formuláři Výběr adresy. Tam je zobrazena původně zadaná adresa a seznam platných adres. Zvolená adresa se potvrdí kliknutím na tlačítko Ulož Kontakty Kontakty se upravují ve formuláři Editace kontaktu, který je dostupný z formulářů firem a osob. Zde jsou dostupné údaje: Typ kontaktu Kontakt Poznámka 26

27 Obrázek 7. Formulář Editace kontaktu V tabulce typů kontaktů je také uveden požadovaný formát kontaktu, který je při jeho vyplňování kontrolován. Pokud neodpovídá, zobrazí se chybová zpráva. Ta má stejně jako u kontroly formátu pouze informativní charakter - kontakt lze uložit i v chybném formátu. Do poznámky lze zapsat krátký popis kontaktu, je zobrazována v závorce za kontaktem 4.7. Služby, ceník Služby Volbou hlavního menu Číselníky/Služby se otevře formulář se seznamem evidovaných služeb, ze kterého lze vybrat požadovanou službu nebo vytvořit novou. Tím se zobrazí formulář pro editaci služby Editace služby nebo zboží Na tomto formuláři jsou dostupné následující údaje: Název Text - pokud není text v názvu služby dostatečně popisný, může se srozumitelnější text zapsat sem. Je-li tento údaj vyplněn, bude zobrazován ve všech výstupech místo názvu Typ služby - popis výše Sazba DPH Jednotka - určuje měrnou jednotku ve které je služba poskytována Typ závislosti jednotkové ceny - popis výše 27

28 Obrázek 8. Formulář Editace služby nebo zboží Text hranice ceny - vyplňuje se u služeb, které mají typ závislosti jednotkové ceny Výčtový. Tento text je uváděn v záhlaví sloupce s výčtem hranic cen tabulky zobrazované ve formuláři Editace smlouvy Seznam hodnot (hodnoty hranic ceny) - požadovaný obsah se mění podle typu závislosti jednotkové ceny, hodnoty se oddělují čárkou Počet cyklů - dostupné u typu služby Cyklická. Stanovuje počet cyklů pro které se určuje cena. Umožnit jednorázovou platbu - dostupné u typu služby Cyklická. Stanovuje zda lze provádět jednorázovou platbu za všechny stanovené cykly. V ceníku bude umožněno zadat souhrnnou cenu Ceník Formulář pro stanovení cen služby Editace ceníku služby se zobrazí kliknutím na tlačítko Ceník umístěné na formuláři Editace služby nebo zboží Obsahuje tabulku vytvořenou aplikací na základě údajů vyplněných na formuláři Editace služby, nebo zboží. Počet řádků v tabulce je ovlivněn hodnotami služby uvedenými v polích typ služby, typ závislosti jednotkové ceny, seznam hodnot, počet cyklů a umožnit jednorázovou platbu. Nejjednodušší tabulka s jedním řádkem je pro typ služby jiný než Cyklická a když má typ závislosti jednotkové ceny Nezávislá V ostatních případech se jedná o kombinaci počtu cyklů + pokud je umožněno hradit částku za všechny cykly jednorázově (ta se zapisuje do řádku s cyklem 0) ještě o jeden cyklus více a každou hodnotou uvedenou v seznamu hodnot (hranic ceny) 28

29 Obrázek 9. Formulář Editace ceníku služby 4.8. Typy smluv, oddílů a cyklů Typy smluv Formulář Editace typu smlouvy. Je dostupný z hlavního menu volbou Číselníky/Typy smluv. Na něm lze nastavit následující údaje: Název Číslo typu smlouvy - používá se jako jedna z částí čísla smlouvy Text - pokud je název málo popisný, pak zde lze srozumitelnější text zapsat sem a ten je pak použit například v hlavičce dokumentu smlouvy, na formuláři smlouvy, atd. Popis - stručný popis toho, jakou problematiku řeší tento typ smlouvy Šablona smlouvy - dokument ve formátu.doc obsahující předlohu pro budoucí dokument smlouvy. V této šabloně jsou definovány záložky, které budou naplněny požadovanými údaji při vytváření dokumentu smlouvy Výběr šablony - slouží k přiřazení existujícího souboru šablony Editace šablony - otevře soubor šablony v aplikaci MS Word pro editaci Dostupné oddíly - zde se určuje, které typy oddílů bude tento typ smlouvy obsahovat, kliknutím na zvolený typ oddílu se buď přiřadí, nebo odebere 29

30 Obrázek 10. Formulář Editace typu smlouvy Vybrané oddíly - seznam vybraných typů oddílů, zde lze typy oddílů řadit dle požadavků pomocí vlevo umístěných tlačítek se šipkami nahoru a dolů, a dvojklikem na zvolený typ oddílu se otevře formulář Editace typu oddílu Na formuláři je také možné určit, které údaje budou na smlouvě evidované, jak bylo uvedeno výše. Při výběru požadovaných datumových údajů se zobrazí pole pro definici vzoru, podle kterého bude při založení nové smlouvy vytvořeno výchozího datum. Pole není editovatelné přímo, ale dvojklikem na ně se zobrazí formulář Editace struktury pro výchozí nastavení termínu pomocí něhož lze vzor s výše definovanou strukturou sestavit Typy oddílů Podobný jako u typu smlouvy je formulář Editace typu oddílu, dostupný z 30

31 Obrázek 11. Formulář Editace struktury termínu hlavního menu volbou Číselníky/Typy oddílů, nebo z formuláře typu smlouvy výše popsaným způsobem. Obrázek 12. Formulář Editace typu oddílu Nastavují se na něm podobné údaje platné ovšem pro typ oddílu. Namísto dostupných oddílů na předcházejícím formuláři zde lze vybrat dostupné služby, které budou nabízeny na formuláři smlouvy jako její položky. V seznamu vybraných služeb lze pak určit, které údaje budou tyto položky evidovat. Jedná se o termín plnění, místo plnění a zpracoval. Je-li povolena evidence termínu plnění, pak lze dvojklikem na poli ve sloupci Termín plnění 31

32 otevřít formulář pro nastavení vzoru Editace struktury pro výchozí nastavení termínu podle kterého bude na smlouvě vytvořeno jeho výchozí datum. Dále tady lze nastavit označení bodu smlouvy a typ plnění množství. Dvojklikem na sloupec s názvem služby se otevře formulář pro její editaci Editace služby nebo zboží. Na tomto formuláři se také povoluje použití cyklů, s výběrem jejich typu a počtu. Pokud je u zvoleného typu cyklu požadována evidence datumových údajů je zde možno nastavit jejich vzory odděleně pro první a další cykly. Úpravu vlastností typu cyklu nelze z tohoto formuláře provádět Typy cyklů Poslední a nejjednodušší formulář pro nastavení typů je formulář Editace typu cyklu, dostupný z hlavního menu volbou Číselníky/Typy cyklů Obrázek 13. Formulář Editace typu cyklu Nastavuje se na něm opět které údaje má cyklus evidovat. Vzory pro požadované datumové údaje se nenastavují zde, ale až po výběru typu cyklu na formuláři typu oddílu. 32

33 4.9. Smlouvy Konečně k editaci vlastní smlouvy slouží formulář Editace smlouvy. Pro vytvoření nové smlouvy lze použít buď volbu hlavního menu Smlouvy/Nová smlouva, kdy se přímo zobrazí formulář pro zadání parametrů smlouvy Vytvoření nové smlouvy. Tam je nutno nastavit údaje typ smlouvy, obchodník, odběratel a rok počátku platnosti nové smlouvy, tyto údaje jsou u již vytvořené smlouvy neměnné a slouží mimo jiné i pro stanovení čísla smlouvy. Kliknutím na tlačítko Vytvořit bude nová smlouva vytvořena a zobrazí se její formulář. Druhou možností je vybrat volbu hlavního menu Smlouvy/Seznam smluv a na zobrazeném formuláři Editace smluv se seznamem vytvořených smluv výběrem tlačítka nový záznam lze opět spustit formulář pro vytvoření nové smlouvy. Editaci již vytvořené smlouvy lze provést zobrazením seznamu evidovaných smluv opět volbou hlavního menu Smlouvy/Seznam smluv a dvojklikem na řádku vybrané smlouvy. Na tomto formuláři pro usnadnění vyhledávání lze filtrovat zobrazovaný seznam smluv podle typu smlouvy, odběratele a stavu smlouvy a jejich libovolnou kombinací. Obrázek 14. Formulář Editace smlouvy - záložka předmět smlouvy V levém horním rohu formuláře pro editaci smlouvy jsou umístěny údaje o 33

34 odběrateli, v pravém pak typ a číslo smlouvy, stav smlouvy a jméno obchodníka - žádný z nich nelze editovat. Nahoře uprostřed se nacházejí údaje vztahující se ke smlouvě jako celku - účinnost od - do, termín a místo plnění, splněno a zpracoval, splatnost, typ a termín zdanitelného plnění a prvky pro práci s datovým zdrojem. Význam těchto ovládacích prvků je zřejmý z přecházejícího textu. Vlevo pod údaji o odběrateli jsou zobrazeny tlačítka Vytvořit dokument a Otevřít dokument. Slouží pro vytvoření dokumentu smlouvy z přiřazené šablony podle aktuálně nastavených údajů, případně k otevření již vytvořeného dokumentu smlouvy. Na pravé straně pod údaji o smlouvě a obchodníkovi lze editovat místo a datum podpisu smlouvy. Je vhodné tyto údaje zadat před vytvořením konečné verze dokumentu, aby na něm byly uvedeny. Nicméně nejsou povinné a označit smlouvu jako podepsanou lze i bez nich. Níže jsou umístěna tlačítka Podepsat smlouvu, Zrušit smlouvu a Fakturovat. Jejich význam je jistě také zřejmý a důsledky činností vyvolaných jejich stisknutím jsou uvedeny v předcházejícím textu. Po stisku prvních dvou tlačítek (jejich účinky jsou nevratné), bude zobrazen dotaz, zda si uživatel opravdu přeje vykonat zvolenou činnost. Celou spodní část formuláře vyplňují přepínatelné záložky obsahující údaje o zbývajících částech smlouvy. Na první záložce Předmět smlouvy se vybírají požadované služby, nastavuje se u nich požadované množství a určují termíny plnění, pracuje se s datovými zdroji, označuje se splnění a osoby, které plnění provedly. Na další záložce Cena a platební podmínky se zadávají ceny za vybrané služby, nastavují se typy a termíny zdanitelného plnění, doby splatnosti a provádí se tvorba podkladů pro fakturaci. Typ smlouvy určuje, které ovládací prvky formuláře a editační pole budou viditelné, stav smlouvy zase to, které budou v daný okamžik dostupné Šablona smlouvy Šablona pro generování dokumentu smlouvy se vytváří programem MS Word. Pro určení, kde budou požadované údaje umístěny je použit jednoduchý systém záložek (bookmarků). Systém je založen na vzájemném vnoření a dohodnutém pojmenování jednotlivých záložek. Název záložky vyjadřuje část smlouvy, údaj této části smlouvy, případně pořadí údaje. Součásti názvu záložky jsou následující: Objekt - označuje část smlouvy, ke které přísluší dále uvedená vlastnost. Zde jsou přípustné hodnoty Oddil, Cyklus, Sluzba, pokud není uvedeno je myšleným objektem smlouva Pořadí objektu - pořadí části smlouvy v nadřízené části. Pokud je zadána 0, 34

35 pak se provede pro všechna opakování objektu, pro objekt smlouvy se neudává (ten je vždy jeden) Vlastnost objektu - název vlastnosti zvoleného objektu. Seznam podporovaných vlastností pro každý typ objektu je uveden v samostatném dokumentu Rozlišení - dokument ve formátu.doc požaduje jedinečnost názvu záložek, proto tato část slouží pro jejich rozlišení. Nemá jiný význam a může obsahovat libovolné alfanumerické znaky Název záložky je z těchto součástí složen takto: Objekt, Pořadí objektu nebo Vlastnost objektu, případně Rozlišení. Mezi tyto části se vkládá podtržítko. Takto pojmenované záložky mohou být v šabloně do sebe vzájemně vnořeny, čímž vytvoří jakousi hierarchii, kdy záložka s větším rozsahem je nadřazená záložce s menším rozsahem. Údaje do dokumentu se zapisují jen u záložek, které mají uvedenu vlastnost objektu, záložky s pořadím objektu slouží pro navigaci, případně opakování. Příklady: Cislo - číslo smlouvy, Oddil 1 - první oddíl smlouvy, Sluzba 0 všechny položky smlouvy v objektu nadřazené záložky, tzn. pokud je nadřazenou záložkou Oddil 1, pak se jedná o všechny položky smlouvy z prvního oddílu, Sluzba Text - vyplní text služby Tento systém umožňuje měnit strukturu dokumentu smlouvy bez nutnosti zásahu do kódu programu. 35

36 5. Programátorská dokumentace 5.1. Struktura smlouvy Požadované typy smluv jsou velmi nesourodé, ale v souvislosti s potřebou umožnit jejich rozšíření, bylo zamítnuto (na první pohled snadnější) řešení programovat jednotlivé typy smluv samostatně, protože pro každý z nich by bylo nutné vytvořit novou strukturu tříd a založit novou strukturu tabulek v databázi. To by diagram tříd i datový model a následně celou aplikaci značně zkomplikovalo a znepřehlednilo. Proto byl vytvořen hierarchický model struktury smlouvy, který je zobrazen na obrázku níže. Obrázek 15. Model struktury smlouvy 5.2. Diagram tříd Na základě modelu struktury smlouvy byl v projektu Business, který zprostředkovává komunikaci s databází a vytváří logiku aplikace, vytvořen diagram tříd. Ten pak téměř kopíruje diagram tříd v projektu PreWinForm, poskytující grafické uživatelské prostředí. Instance tříd projektu PreWinForm obsahují příslušné instance tříd projektu Business a využívají jejich metod a udržují si v nich potřebné údaje. Nejdůležitější třídy v obou projektech jsou Smlouva, respektive uccsmlouva, z nichž vytvořené objekty v sobě sdružují objekty z podřízených tříd jako OddilSmlouvy, respektive uccoddilsmlouvy. 36

37 Obrázek 16. Diagram tříd hlavních částí smlouvy 37

38 5.3. ER diagram Struktura databázových tabulek v podstatě opět kopíruje diagram tříd projektu Business a navíc obsahuje vazební tabulky. Zde je uveden zjednodušený ER-diagram obsahující jen hlavní tabulky. Celkem se databáze skládá z 26 tabulek, které mimo jiné udržují informace o odběratelích, osobách, adresách a kontaktech. Obrázek 17. ER-diagram částí smlouvy 38

39 5.4. Případy užití Níže uvedený diagram obsahuje všechny hlavní případy užití v aplikaci, nejdůležitější z nich je Editace smlouvy, jehož slovní scénář následuje: Obrázek 18. Celkový diagram případů užití Stručný popis Tento případ užití umožní uživateli, editovat údaje smlouvy s odběratelem. Vstupní podmínky Uživatel musí mít spuštěn program 39

40 Tok událostí Případ užití začíná, když uživatel vybere nabídku Smlouvy / Seznam smluv. Základní tok Editace smlouvy 1. Systém zobrazí formulář Seznam smluv se seznamem smluv s údaji: číslo smlouvy typ smlouvy název odběratele stav smlouvy a přístupnými volbami umožňujícími filtrovat seznam smluv zvolenou kombinací: typ smlouvy název odběratele stav smlouvy 2. Uživatel na vybrané existující smlouvě v seznamu smluv provede dvojklik myší. 3. Systém zobrazí formulář Editace smlouvy pro editaci smlouvy s údaji vybrané smlouvy neměnné údaje: číslo smlouvy odběratel typ smlouvy obchodník editovatelné údaje: účinnost od účinnost do místo podpisu datum podpisu přístupné volby: vytvořit dokument otevřít dokument podepsat smlouvu 40

41 zrušit smlouvu ulož zavři V záložce Předmět smlouvy seznam dostupných oddílů smlouvy. V oddílu smlouvy Základní nabídka seznam dostupných cyklů smlouvy. V cyklu smlouvy Cyklus 1 editovatelné údaje: účinnost od účinnost do termín plnění neměnné údaje: splněno datový zdroj nepřístupné volby: vybrat vytvoření podkladů import požadavků Seznam dostupných služeb editovatelné údaje: vybrat neměnné údaje: bod smlouvy předmět smlouvy množství jednotka pokud je typ služby výčtový, pak pro každou hodnotu výčtu zopakuje na novém řádku údaje množství, jednotka a hodnota výčtu U dalších cyklů smlouvy zobrazí stejné údaje pro cyklické služby V oddílu smlouvy Rozšířená nabídka seznam dostupných služeb. U každé služby stejné údaje jako u služeb v oddílu Základní nabídka a navíc editovatelné údaje 41

42 termín plnění neměnné údaje splněno V záložce Cena a platební podmínky seznam dostupných oddílů smlouvy. V oddílu smlouvy Základní nabídka seznam dostupných cyklů smlouvy. V cyklu smlouvy Cyklus 1 editovatelné údaje: typ termínu zdanitelného plnění pokud je typ termínu zdanitelného plnění K určenému datu pak termín zdanitelného plnění splatnost nepřístupné volby: fakturovat Seznam dostupných služeb editovatelné údaje: jednotková cena neměnné údaje: bod smlouvy předmět smlouvy množství jednotka pokud je typ služby výčtový, pak pro každou hodnotu výčtu zopakuje na novém řádku údaje množství, jednotka a hodnota výčtu U dalších cyklů smlouvy zobrazí stejné údaje pro cyklické služby V oddílu smlouvy Rozšířená nabídka editovatelné údaje: typ termínu zdanitelného plnění pokud je typ termínu zdanitelného plnění K určenému datu pak termín zdanitelného plnění splatnost 42

43 nepřístupné volby: fakturovat Seznam dostupných služeb u každé služby stejné údaje jako u služeb v oddílu Základní nabídka 4. Uživatel vyplní nebo změní libovolné editovatelné údaje. 5. Uživatel vybere volbu Uložit. 6. Systém zobrazí formulář s dotazem Opravdu uložit provedené změny do databáze?. 7. Uživatel vybere volbu Ano. 8. Systém uloží provedené změny a zavře formulář. 9. Systém zobrazí formulář Seznam smluv. Alternativní toky Zavření formuláře Editace smlouvy bez uložení provedených změn 1. Kroky proběhnou stejně jako při základním toku událostí. 2. V kroku 5. základního toku uživatel vybere volbu Zavřít. 3. Systém zjistí, že byly během editace smlouvy provedené změny a zobrazí formulář s dotazem Opravdu chcete zavřít formulář bez uložení změn? a volbami Ano a Ne. 4. Uživatel vybere volbu Ano. 5. Systém neuloží provedené změny, zavře formulář Editace smlouvy. 6. Systém zobrazí formulář Seznam smluv. Výstupní podmínky Nejsou žádné výstupní podmínky svázané s tímto případem užití. Body rozšíření Vytvoření smlouvy 1. V kroku 2. základního toku uživatel vybere volbu Nový záznam. 2. Použije se rozšiřující případ užití Vytvoření smlouvy. 3. Po ukončení rozšiřujícího případu užití systém zobrazí formulář Seznam smluv s vybranou nově vytvořenou smlouvou. Podpis smlouvy 1. V kroku 4. základního toku uživatel vybere volbu Podepsat smlouvu (smlouva musí být ve stavu Návrh, jinak je volba nepřístupná). 2. Použije se rozšiřující případ užití Podpis smlouvy. 3. Po ukončení rozšiřujícího případu užití bude zobrazen formulář Editace smlouvy. Zrušení smlouvy 1. V kroku 4. základního toku uživatel vybere volbu Zrušit smlouvu (smlouva nesmí být ve stavu Zrušená, pak je volba nepřístupná). 43

44 2. Použije se rozšiřující případ užití Zrušení smlouvy. 3. Po ukončení rozšiřujícího případu užití bude zobrazen formulář Editace smlouvy. Vytvoření dokumentu smlouvy 1. V kroku 4. základního toku uživatel vybere volbu Vytvořit dokument (smlouva musí být ve stavu Návrh, jinak je volba nepřístupná). 2. Použije se rozšiřující případ užití Vytvoření dokumentu. 3. Po ukončení rozšiřujícího případu užití bude zobrazen formulář Editace smlouvy. Otevření dokumentu smlouvy 1. V kroku 4. základního toku uživatel vybere volbu Otevřít dokument. 2. Použije se rozšiřující případ užití Zrušení smlouvy. 3. Po ukončení rozšiřujícího případu užití bude zobrazen formulář Editace smlouvy. Přiřazení datového zdroje 1. V kroku 4. základního toku uživatel vybere volbu Vybrat (smlouva musí být ve stavu Podepsaná nebo Aktivní jinak je volba nepřístupná). 2. Použije se rozšiřující případ užití Přiřazení datového zdroje. 3. Po ukončení rozšiřujícího případu užití bude zobrazen formulář Editace smlouvy. Generování podkladů k požadavkům odběratele 1. V kroku 4. základního toku uživatel vybere volbu Vytvoření podkladů (smlouva musí být ve stavu Podepsaná nebo Aktivní a musí být přiřazen datový zdroj jinak je volba nepřístupná). 2. Použije se rozšiřující případ užití Vytvoření podkladů k požadavkům odběratele. 3. Po ukončení rozšiřujícího případu užití bude zobrazen formulář Editace smlouvy. Vložení požadavků odběratele 1. V kroku 4. základního toku uživatel vybere volbu Import požadavků (smlouva musí být ve stavu Podepsaná nebo Aktivní a musí být přiřazen datový zdroj jinak je volba nepřístupná). 2. Použije se rozšiřující případ užití Vytvoření podkladů k požadavkům odběratele. 3. Po ukončení rozšiřujícího případu užití bude zobrazen formulář Editace smlouvy. Vytvoření podkladů k fakturaci 1. V kroku 4. základního toku uživatel vybere volbu Fakturovat (smlouva musí být ve stavu Aktivní nebo Ukončená ). 2. Použije se rozšiřující případ užití Vytvoření podkladů k fakturaci. 44

45 3. Po ukončení rozšiřujícího případu užití bude zobrazen formulář Editace smlouvy Uplatnění použitých technologií WSDL ARES Administrativní registr ekonomických subjektů je IS, který zpřístupňuje veřejné údaje o ekonomických subjektech z informačních systémů (zdrojů) veřejné správy. Obsahuje údaje ze základních (majoritních) zdrojů, které jsou formou odkazů doplněny údaji z dalších zdrojů. Při zpracování se používají též kontrolní zdroje. Data získávaná z tohoto systému prostřednictvím webové služby jsou využity u ověřování zadávaných adres, případně pro jejich doplnění nebo upřesnění a pro vyplnění údajů o odběratelích. U odběratele pak stačí zadat jeho IČ a všechny údaje, u kterých je zvláště při vytváření obchodních smluv důležité aby byly vyplněny bezchybně, jsou naplněny z důvěryhodných zdrojů. Tato technologie je použita v metodě NaplnUdajeFirmyZICO třídy Firma, která je uložena v souboru Firmy.cs a v metodě OverPlatnostAdresy třídy Adresa uložené v souboru Osoby.cs, obě v projektu Business XML Technologie XML je použita pro přenos dat mezi dodavatelem a odběratelem (několik metod ve třídě SmlouvaDatovyZdroj), export podkladů pro fakturaci do ekonomického systému (metody třídy SmlouvaEkonom nacházející se spolu s předcházející v projektu Business ) a pro přehledné ukládání určených událostí a případně vzniklých chyb (ZapisUdalostDoXML a ZapisChybuDoXML ve třídě vccaplikace v podpůrném projektu General) Objektový model Office Aby bylo vyhověno požadavkům na operace s dokumenty smlouvy a umožněno jejich formátování podle představ uživatele jsou tyto dokumenty upravovány v aplikaci MS Word. Z tohoto programu se k nim přistupuje za použití objektového modelu MS Office. Metody, které využívají objektový model MS Office jsou ve třídě Smlouva- ObsluhaDokumentu v projektu Business a ve třídě vccproword v podpůrném projektu General Návrhové vzory Návrhové vzory (Design patterns) formalizují obecná řešení, zapouzdřují 45

46 osvědčené způsoby pro využívání funkcí jazyka. Umožňují programovat na vyšší úrovni a propagují dobré programátorské praktiky. Zde je použit jeden ze základních návrhových vzorů a to Singleton, který zajišťuje existenci pouze jedné instance dané třídy. Tento vzor implementuje třída Aplikace uložená v souboru Aplikace.cs v projektu PreWinForm. Poskytuje globální konstanty a proměnné Regulární výrazy U všech údajů, u nichž je vyžadován přesný formát, je uveden regulární výraz a ten je pak při jejich editaci kontrolován. V případě, že formát editovaného údaje neodpovídá požadavkům je zobrazeno upozornění. Tyto kontroly jsou použity u formátu typů kontaktů v metodě OverHodnotu ve třídě TypKontaktu, ověření formátu PSČ v metodě OverFormat- PSC třídy Stat obě uloženy v souboru Osoby.cs a ověření formátu IČ v metodě OverIC třídy Firma, která je v souboru Firmy.cs. Vše v projektu Business. Používá se také při zadávání množství a ceny na formuláři smlouvy v metodě OverMaskuMnozstvi třídy uccpolozkasmlouvymnozstvi a metodě Over- MaskuCeny třídy uccpolozkasmlouvyplatpodmcena ve stejnojmenných souborech v projektu PreWinForm Aplikace Zákaznické požadavky Pro usnadnění vyplňování rozsahu požadovaných služeb odběratelem a pro ověření zadaných údajů byla vytvořena tato pomocná aplikace. Obrázek 19. Okno aplikace Zákaznické požadavky 46