VYSOKÁ ŠKOLA BÁŇSKÁ TECHNICKÁ UNIVERZITA OSTRAVA INFORMAČNÍ SYSTÉMY A DATOVÉ SKLADY IS Autopůjčovna (semestrální projekt) ZS 2010-2011 Analýza Implementace Číslo týmu: T07 Členové skupiny: Příjmení, jméno, login Garbulinský Marek, GAR070 1. Gerža Jan, GER081 2. Glos Matěj, GLO062 3. Kučera Pavel, KUC437 4. Rudol Pavel, RUD0015
1. Zadání Cílem projektu je vytvoření komplexního informačního systému pro autopůjčovnu. Tento systém se bude používat jak pro vnitřní a administrativní správu informací zaměstnanci a administrátorem, tak pro veřejné prohlížení nabízených automobilů (potenciálními) zákazníky. Neregistrovaný zákazník si bude moct prohlížet jednotlivá auta, číst si o nich základní informace, ale také zkušenosti vložené ostatními uživateli, kteří měli jednotlivá auta již půjčené. Dále se bude moci registrovat, aby mohl provádět objednávky a vkládat hodnocení jednotlivých aut, která měl zapůjčené. Zaměstnanec bude schopen na základně rozdílných oprávnění vkládat do nabídky nová auta, upravovat informace o nich, vkládat fotografie k autům, vystavovat faktury atp. Bude také schopen provádět objednávky, prohlížet si auta, a v případě zapůjčení jednotlivých aut k nim také psát hodnocení a vlastní zkušenosti. Uživatelé, kteří budou moct pracovat se systémem Nepřihlášený uživatel prohlížení jednotlivých aut, informací o nich, komentářů (hodnocení aut jinými uživateli) a poboček Registrovaný uživatel (zákazník) stejná práva jako nepřihlášený uživatel + navíc možnost vytváření objednávek a hodnocení půjčených aut Zaměstnanec stejná práva jako zákazník + navíc možnost editovat automobily, objednávky, vystavovat faktury Majitel, popř. vedoucí pracovník, administrátor stejná práva jako zaměstnanec + navíc možnost editovat zaměstnance, pobočky 1.1. Funkční požadavky PROČ nový IS Firma Autopůjčovna by ráda měla veškerá svá data na jednom místě v unifikovaném, kvalitním a spolehlivém systému. Prozatím vše evidovala ručně do kartoték a situace se stala neúnosnou. Proto nový IS, z důvodu rychlejšího jednání, efektivní správy dat a jednoduchosti. K ČEMU nový IS Tento informační systém bude sloužit k evidenci automobilů v autopůjčovně, zákazníků, uživatelů a veškeré administrativy s tím související, tj. faktur, objednávek, mezd zaměstnanců, technických parametrů, stavu, údajů a názorů uživatelů na jednotlivá auta. KDO bude s IS pracovat o potenciální zákazník člověk procházející internet a nezávazně si prohlížející stránky) o registrovaný zákazník schopen provádět objednávky, vkládat komentáře a hodnocení k jednotlivým vozidlům o zaměstnanec způsobilý vkládání vozidel, jejich editací, vystavování faktur a objednávek o administrátor
VSTUPY o U uživatelů zákazníků bude systém evidovat id zákazníka, jméno, příjmení, mail, telefon, login, heslo, adresu, IČO,DIČ. Aby se mohl někdo stát zákazníkem, musí se nejprve zaregistrovat. Registrovaný uživatel (zákazník) může hodnotit auta, která měl vypůjčena. o U uživatelů zaměstnanců bude systém evidovat id zaměstnance, jméno, příjmení, věk, pohlaví, mail, telefon, login, heslo, adresu, plat, pozici (roli), kterou v rámci firmy zastává, a pobočku, kde pracuje. Aby se mohl někdo stát zaměstnancem, musí jej do IS vložit administrátor. Zaměstnanec může hodnotit auta, která měl vypůjčena. o Role jsou dané a nepředpokládá se změna jejich skladby někdy v budoucnu. Zaměstnanci se role měnit nemůže, je přesně daná pro každého. o U aut bude systém evidovat značku, model, typ karoserie, technický stav, data poslední STK a následující STK, cenu půjčení na 1 den, pobočku, na které bude auto k dispozici, fotografie a také hodnocení vozidla z pohledu jednotlivých uživatelů, kteří měli auto vypůjčeno. o Objednávka bude zahrnovat datum objednávky, které auto má být zapůjčeno, komu a na jak dlouho. Také je třeba evidovat, ve které fázi se objednávka nachází (čeká na schválení, auto je již vypůjčeno, objednávka prodloužena, auto je již vráceno atd.). o Faktura bude obsahovat vazbu na objednávku, ze které bude vycházet, datum vystavení faktury, datum její splatnosti, cenu a také id zaměstnance, který fakturu vystavil. o Chceme také, aby auto šlo pojistit, tudíž bude třeba evidovat pojištění vázané na konkrétní objednávku. o Evidence poboček Autopůjčovny, kde bude systém evidovat id pobočky, její název a počet zaměstnanců na ní pracující. o Adresa bude samostatnou entitou. Bude rozpoznatelná podle id uživatele, kterému bude náležet, tzn. buďto zákazníkovi, zaměstnanci, nebo pobočce. VÝSTUPY o Seznam všech aut Autopůjčovny o Seznam všech aut na dané pobočce o Seznam všech aut vypůjčených daným uživatelem o Seznam vypůjčených aut (kdekoli, na dané pobočce) o Seznam aut, která se mohou vypůjčit k danému dni a na jak dlouho (kdekoli, na dané pobočce) o Seznam objednaných aut k danému dni, týdnu, měsíci a na jak dlouho (zarezervovaných - kdekoli, na dané pobočce) o Seznam aut, která se mají vypůjčit k danému dni o Seznam aut, která se mají vrátit k danému dni o Seznam všech zaměstnanců o Seznam všech zaměstnanců na dané pobočce o Seznam všech poboček o Seznam objednávek vystavených na dané pobočce o Seznam objednávek k danému dni o Seznam faktur vystavených k danému dni o Seznam faktur vystavených daným zaměstnancem o Seznam faktur vystavených za určité období (týden, měsíc, rok)
o Seznam nezaplacených faktur o Seznam zaplacených faktur o Seznam všech zákazníků FUNKCE Neregistrovaný uživatel - Zobrazení seznamu aut - Zobrazení jednotlivých aut - Zobrazení poboček - Registrace zákazníka Zákazník (registrovaný uživatel) - To, co Neregistrovaný uživatel mimo registrace (již byla provedena) - Vytvoření vlastní objednávky - Zrušení vlastní objednávky - Zobrazení seznamu svých objednávek - Zobrazení seznamu svých faktur - Vložení hodnocení vypůjčeného auta Zaměstnanec - To, co Zákazník (registrovaný uživatel) - Vložení nového auta - Editace auta - Zrušení auta - Vložení fotografie auta - Vytvoření objednávky zákazníka - Zrušení objednávky zákazníka - Editace objednávky zákazníka - Zobrazení seznamu objednávek daného zákazníka - Zobrazení seznamu faktur daného zákazníka - Vložení nového zákazníka - Editace zákazníka - Vytvoření faktury - Uzavření faktury (Zaplacení) Administrátor (Admin) - To, co Zaměstnanec - Vložení nového zaměstnance - Editace zaměstnance - Zrušení zaměstnance - Vložení nové pobočky - Editace pobočky - Zrušení pobočky
NEFUNKČNÍ POŽADAVKY jednoduchost ovládání, uživatelská přívětivost, uložení systému v internetu na spolehlivém serveru zajišťující pravidelné zálohování dat a dosažitelnost, bezpečnost přihlašování a práce v IS u jednotlivých rolí. KONTEXTOVÝ DIAGRAM
2. Analýza 2.1. Datová analýza 2.1.1. ER diagram POJISTKA STAV OBJEDNAVKY FOTOGRAFIE KAROSERIE TYP_AUTA POJIST POJIST_OBJE D OBJED STAV_OBJED AUTO FOTOGRAFIE AUTO KAROSERIE AUTO TYP_AUTA POJISTKA OBJEDNAVKY OBJED POJIST_OBJE D OBJEDNAVKA OBJED AUTO AUTO AUTO TECH_STAV TECHNICKY STAV OBJED ZAKAZNIK OBJED FAKTURA AUTO POBOCKA ZAKAZNIK FAKTURA ZAMEST FAKTURA ZAMESTNANEC ZAMEST POBOCKA POBOCKA ZAKAZNIK ADRESA ADRESA ZAMEST ADRESA ZAMEST ROLE ZAMEST HODNOCENI AUTO HODNOCENI TECH_STAV KVALITA ROLE ZAKAZNIK HONOCENI ADRESA PSC ADRESA POBOCKA HODNOCENI AUTA KVALITA VOZU PSC 2.1.2. Lineární zápis typů entit a typů vazeb [primární klíč, cizí_klíč] Zakaznik (id_zakaznika, id_adresy, login, heslo, jmeno, prijmeni, mail, telefon, ICO, DIC, is_active) Zamestnanec (id_zamestnance, id_adresy, id_role, id_pobocky, login, heslo, jmeno, prijmeni, plat, pohlavi, vek, email, telefon, is_active) Role (id_role, nazev_role) Adresa (id_adresy, PSC, ulice, cislo_popisne) Psc_mesto (PSC, mesto) Auto (id_auta, id_typ_karoserie, id_technickeho_stavu, id_pobocky, id_typ_auta, znacka, model, cena_pujceni_na_den)
Technicky_stav (id_technickeho_stavu, id_kvality_vozu, doba_platnosti_tk, doba_platnosti_ek, datum_posledni_prohlidky_stk, datum_dalsi_prohlidky_stk) Kvalita_vozu (id_kvality_vozu, popis_kvality, koeficient_kvality) Typ_karoserie (id_typ_karoserie, typ_karoserie) Typ_auta (id_typ_auta, typ_auta) Fotografie (id_fotografie, id_auta, cesta_k_souboru) Hodnoceni_auta (id_uzivatele, id_auta, znamka, komentar_hodnoceni, is_employee) Objednavka (id_objednavky, id_faktury, id_stav_objednavky, id_auta, id_zakaznika, datum_objednani, datum_vypujceni, datum_vraceni, doba_vypujceni) Stav_objednavky (id_stav_objednavky,popis_stavu_objednavky) Pojistka (id_pojistky, popis_pojistky) Pojistka_objednavky (id_pojistky, id_objednavky) Faktura (id_faktury, id_zamestnance, datum_vystaveni, datum_splatnosti, cena, datum_platby, zaplaceno) Pobocka (id_pobocky, id_adresy, nazev_pobocky, pocet_zamestnancu) OBJED STAV_ OBJED (Objednavka, Stav_objednavky) OBJED POJIST_OBJED (Objednavka, Pojistka_objednavky) OBJED FAKTURA (Objednavka, Faktura) OBJED AUTO (Objednavka, Auto) OBJED ZAKAZNIK (Objednavka, Zakaznik) POJIST POJIST_OBJED (Pojistka, Pojistka_objednavky) ZAKAZNIK ADRESA (Zakaznik, Adresa) ZAKAZNIK HODNOCENI (Zakaznik, Hodnoceni_auta) ADRESA PSC (Adresa, Psc_Mesto) ADRESA POBOCKA (Adresa, Pobocka) ZAMEST ADRESA (Zamestnanec, Adresa) ZAMEST ROLE (Zamestnanec, Role) ZAMEST POBOCKA (Zamestnanec, Pobocka) ZAMEST HODNOCENI (Zamestnanec, Hodnoceni_auta) ZAMEST FAKTURA (Zamestnanec,Faktura) AUTO TECH_STAV (Auto, Technicky_stav) AUTO FOTOGRAFIE (Auto, Fotografie)
AUTO POBOCKA (Auto, Pobocka) AUTO KAROSERIE (Auto, Karoserie) AUTO HODNOCENI (Auto, Hodnoceni_auta) AUTO TYP_AUTA (Auto, Typ_auta) TECH_STAV KVALITA (Technicky_stav, Kvalita_vozu) 2.1.3. Datový slovník Datový slovník pro typ entity Zákazník Název Typ Délka Klíč Not Null Index IO Popis id_zakaznika Int A N A PK login varchar 20 N A Login se bude vytvářet s prvního písmene + podtržítko a příjmení, pokud budou stejná jména, přidá se, náhodné unikátní číslo Příklad loginu p_novak, P_novak1 heslo varchar 10 N jmeno varchar 50 N prijmeni varchar 20 N e-mail varchar 50 telefon varchar 20 ICO varchar 15 Zařídit formát IČO podle předpisů DIC varchar 15 Zařídit formát IČO podle předpisů is_active Bool N Defaultní hodnota true Id_adresy A Cizí klíč Datový slovník pro typ entity Zamestnanec Název Typ Délka Klíč Not Null Index IO Popis id_zamestnance Int A N A PK Id_role int A N Cizí klíč Id_pobocky int A N Cizí klíč login varchar 20 N A Login se bude vytvářet s prvního písmene + podtržítko a příjmení, pokud budou stejná Příklad loginu
jména, přidá se, náhodné unikátní číslo p_novak, P_novak1 heslo varchar 50 N jmeno varchar 20 N prijmeni varchar 20 N e-mail varchar 50 telefon varchar 20 plat int pohlavi char 1 N M/Z M-muz, Z- zena vek int 2 iis_active Bool N Defaultní hodnota true Id_adresy Int A Cizí klíč Datový slovník pro typ entity Role Název Typ Délka Klíč Not Null Index IO Popis id_role Int A N A PK nazev_role varchar 20 N administrátor, technik, sekretářka, ředitel, vedoucí pobočky Datový slovník pro typ entity Adresa Název Typ Délka Klíč Not Null Index IO Popis Id_adresy Int A A PK ulice varchar 20 N cislo_popisne char 5 N PSC char 5 A N Cizí klíč Datový slovník pro typ entity Psc_Mesto Název Typ Délka Klíč Not Null Index IO Popis PSC char 5 A N A PK
mesto varchar 20 N Datový slovník pro typ entity Auto Název Typ Délka Klíč Not Null Index IO Popis Id_auta int A N A PK znacka varchar 10 N model varchar 20 N id_typ_karoserie int A N Cizí klíč id_technickeho_stavu int A N Cizí klíč cena_pujceni_na_den double N id_pobocky int A N Cizí klíč id_fotografie int A N Cizí klíč id_typ_auta Int A N Cizí klíč Datový slovník pro typ entity Technicky_Stav Název Typ Délka Klíč Not Null Index IO Popis id_technickeho_stavu int A N PK doba_platnosti_tk date N doba_platnosti_ek date N datum_posledni_prohlid ky_stk datum_dalsi_prohlidky_ STK date date N N id_kvality_vozu int A N Cizí Klíč Datový slovník pro typ entity Kvalita_Vozu Název Typ Délka Klíč Not Null Index IO Popis id_kvality_vozu int A N PK popis_kvality varchar 1000 N
koeficient_kvality int N 1-5 Koeficient kvality lze chápat jako číslo od 1 do 5- ti, kdy 1 je auto v perfektním technickém stavu a 5 např. v téměř nepojízdném. Datový slovník pro typ entity Typ_Karoserie Název Typ Délka Klíč Not Null Index IO Popis id_typ_karoserie int A N PK typ_karoserie varchar 100 N sedan, kombi, hatchback, koeficient_kvality int N Datový slovník pro typ entity Typ_Auta Název Typ Délka Klíč Not Null Index IO Popis id_typ_auta int A N osobní, nákladní, truck typ_auta varchar 100 N Datový slovník pro typ entity Fotografie Název Typ Délka Klíč Not Null Index IO Popis id_fotografie int A N PK cesta_k_souboru varchar 100 N Datový slovník pro typ entity Hodnoceni_Auta Název Typ Délka Klíč Not Null Index IO Popis id_uzivatele int A N Cizí Klíč Id_auta int A N Cizí Klíč znamka int N Rozsah 1-5
komentar_hodnoceni varchar 1000 Is_employee bool N Určuje, zda je hodnotící zákazník nebo zaměstnanec Datový slovník pro typ entity Objednavka Název Typ Délka Klíč Not Null Index IO Popis id_objednavky int A N PK id_stav_objednavky int A N Cizí Klíč id_auta int A N Cizí Klíč id_zakaznika int A N Cizí Klíč datum_objednani doba_vypujceni Datum_vypujceni Datum_vraceni date date date date Datový slovník pro typ entity Stav_Objednavky Název Typ Délka Klíč Not Null Index IO Popis id_stav_objednavky int A N PK popis_stavu_objednavky varchar 100 N vyřízená, čekající atd. Datový slovník pro typ entity Pojistka Název Typ Délka Klíč Not Null Index IO Popis id_pojistky int A N PK popis_pojistky varchar 100 N Datový slovník pro typ entity Pojistka_Objednavky
Název Typ Délka Klíč Not Null Index IO Popis id_pojistky int A N PK id_objednavky int A N Cizí Klíč Datový slovník pro typ entity Faktura Název Typ Délka Klíč Not Null Index IO Popis id_faktury int A N PK id_objednavky int A N Cizí Klíč id_zamestnance int A N Cizí Klíč datum_vystaveni date N datum_splatnosti date N cena double N zaplaceno Bool Faktura byla zaplacena datum_platby Date Datový slovník pro typ entity Pobocka Název Typ Délka Klíč Not Null Index IO Popis id_pobocky int A N PK nazev_pobocky varchar 100 N pocet_zamestnancu int N Id_adresy Int A Cizí klíč *PK Primární klíč
2.2. Funkční analýza 2.2.1. DFD diagramy + minispecifikace 2.2.1.1. Kontextový diagram 2.2.1.2. DFD diagram 0. úroveň Administrátor Zaměstnanec 0. 1. Evidence aut 3. Evidence uživatelů 4. Evidence poboček 2. Evidence objednávek 5. Evidence faktur Zákazník Nepřihlášený uživatel
2.2.1.3. DFD diagram 1. úroveň Evidence aut + minispecifikace Administrátor Nepřihlášený uživatel 1. Evidence aut 1.2. Editace auta 1.1. Přidání auta Auto Id_auto 1.3. Smazání auta Id_pobocky Id_technicky_stav Id_auto Id_karoserie Pobočka Typ auta Id_kvality_vozu Kvalita vozu Technický stav Hodonocení auta 1.5 Vyhledání auta Fotografie 1.6 Přidání fotografie Id_fotografie 1.7 Smazání fotografie Karoserie 1.4 Hodnocení auta Zákazník Zaměstnanec Přidání auta (proces 1.1) Administrátor nebo zaměstnanec přidá nové auto do systému Hlavní aktéři: Administrátor, zaměstnanec Vedlejší aktéři: Žádní Vstupní podmínky:
Uživatel musí být přihlášen do systému 1. Zobraz formulář pro přidání nového auta. Formulář obsahuje atributy: znacka, model, cena_pujceni_na_den, doba_platnosti_tk, doba_platnosti_ek, datum_posledni_prohlidky_stk, datum_dalsi_prohlidky_stk, id_keroserie, id_pobocky, id_typ_auta, id_kvality_vozu. 2. Načti vše z tabulky Karoserie do roletové nabidky pro vyber id_karoserie. 3. Načti vše z tabulky Pobocka do roletové nabidky pro vyber id_pobocky. 4. Načti vše z tabulky Typ_auta do roletové nabidky pro vyber id_typ auta. 5. Načti vše z tabulky Kvalita_vozu do roletové nabidky pro vyber id_kvality vozu. 6. Uživatel vloží hodnoty do připraveného formuláře. 7. Validuj hodnoty ve formuláři dle IO a poznámek v datovém slovníku. 8. Pokud validace neprojde, zobraz varování a přejdi na krok 1 Výstupní podmínky: Záznam byl uložen do databáze. Alternativní scénáře: Žádné 9. Vygeneruj id_auta, id_technickeho_stavu podle IO v datovém slovníku 10. Ulož větu z formuláře (id_technickeho_stavu, doba_platnosti_tk, doba_platnosti_ek, datum_posledni_prohlidky_stk, datum_dalsi_prohlidky_stk, id_kvality_vozu) do tabulky Technicky stav. 11. Uloží větu z formuláře (id_auta, id_typ_karoserie, id_technickeho_stavu, id_pobocky, id_fotografie, id_typ_auta, znacka, model, cena_pujceni_na_den) do tabulky Auto 12. Zobrazit uživateli informace o stavu akce. Editace auta (proces 1.2)
ID: 2 Uživatel edituje auto Hlavní aktéři: Administrátor, zaměstnanec Vedlejší aktéři: Žádní Vstupní podmínky: Uživatel musí být přihlášen do systému 1. Zobraz seznam aut 2. Uživatel klikne na tlačítko pro editaci vybraného auta. 3. Ulož vybrané id_auto do pom. proměnné. 4. Zobraz formulář pro editaci auta (viz. formulář v procesu 1.1). Do formuláře předvyplň údaje vybraného auta z databáze. 5. Uživatel upraví hodnoty ve formuláři. 6. Uživatel potvrdí data ve formuláři kliknutím na tlačítko. BEGIN TRANS 7. Validuj vložené údaje ve formuláři podle IO a poznámek v datovém slovníku. Pokud validace neprojde, zobraz varování a přejdi na krok 3 8. Na základě id_auta v pomocné proměnné aktualizuj data v databázi END TRANS 9. Zobraz uživateli informace o stavu akce Výstupní podmínky: Záznam byl editován v databázi Alternativní scénáře: Žádné. Smazání auta (proces 1.3) ID: 3 Uživatel maže auta Hlavní aktéři: Administrátor, zaměstnanec
Vedlejší aktéři: Žádní Vstupní podmínky: Uživatel musí být přihlášený do systému 1. Zobraz seznam aut 2. Uživatel klikne na tlačítko pro smazání auta. 3. Ulož id_auto a id_technicky_stav do pom. proměnné. 4. Zobraz dialogové okno, pro potvrzení smazání. 5. Pokud administrátor zvolí možnost návratu, pokračuj krokem 1. BEGIN TRANS 6. Na základě id_auta, projdi tabulky, s kterými je v relaci. Nezahrnuj tabulku Fotografie. Jestliže id_auto je v relaci s jinou tabulkou, pak zobraz varování, že nelze smazat auto, neboť je ještě využíváno. Pokračuj krokem 1. 7. Pokud id_auto není v relaci s jinou tabulkou, je vše v pořádku. 8. Vymaž všechny fotografie s id_auto v tabulce Fotografie. 9. Vymaž technicky stav s id_technicky_stav z tabulky Technicky stav. 10. Smaž celý záznam v tabulce Auto s id_auto. END TRANS 11. Zobrazit uživateli informace o stavu akce Výstupní podmínky: Záznam byl smazán v databázi. Alternativní scénáře: Žádné. Hodnocení auta (1.4) ID: 4 Uživatel přidá hodnocení k autu Hlavní aktéři: Administrátor, Zaměstnanec, Zákazník Vedlejší aktéři: Žádní Vstupní podmínky:
Uživatel musí být přihlášený do systému 1. Zobraz seznam aut. 2. Uživatel klikne na tlačítko pro hodnocení daného auta. 3. Ulož id_auto do pom. proměnné. 4. Zobraz formulář pro hodnocení auta. Formulář obsahuje atributy: znamka a komentar_hodnoceni. 5. Uživatel vyplní zobrazený formulář. 6. Validuj vyplněná data dle IO v datovém slovníku. - pokud validace neprojde, zobraz varování a přejdi na krok 4. 7. Ulož id aktualně přihlášeného uživatele do pom. proměnné id_uzivatele. 8. Pokud je uživatel Zaměstnanec a) Ulož do pomocné proměnné is_employed hodnotu TRUE 9. Jinak ulož FALSE. 10. Ulož novou větu (id_uzivatel, is_employed, id_auta, znamka, komentar_hodnoceni) do tabulky Hodnoceni auta. 11. Zobrazit uživateli informace o stavu akce Výstupní podmínky: Hodnocení uloženo v databázi. Alternativní scénáře: Žádné Vyhledání auta (proces 1.5) ID: 5 Uživateli se zobrazí auto (seznam všech aut) Hlavní aktéři: Administrátor, Zaměstnanec, Zákazník, Nepřihlášený uživatel Vedlejší aktéři: Žádní Vstupní podmínky: Žádné 1. Načti všechny záznamy o autech
2. Zobraz formulář obsahující seznam všech aut 3. Uživatel vybere konkrétní auto Výstupní podmínky: Žádné Alternativní scénáře: Žádné Přidání fotografie (proces 1.6) ID: 6 Uživatel vloží fotografii auta do systému Hlavní aktéři: Administrátor, zaměstnanec Vedlejší aktéři: Žádní Vstupní podmínky: Uživatel musí být přihlášen do systému 1. Zobraz seznam aut. 2. Uživatel zvolí auto, kterému chce přidat fotografii a klikne na tlačítko pro přidání fotografie. 3. Ulož id_auto do pom. proměnné. 4. Zobraz formulář pro přidání fotografie s atributem cesta_k_souboru. 5. Uživatel vloží cestu k souboru do připraveného formuláře a ode3le formulář. 6. Vygeneruj Id_fotografie dle IO v datovém slovníku. 7. Validuj hodnoty podle IO v datovém slovníku. 8. Pokud validace neprojde, zobraz varování a přejdi na krok 4. 9. Vlož novou větu (id_fotografie, id_auto, cesta_k_souboru) do tabulky Fotografie 10. Zobraz uživateli informace o stavu akce. Výstupní podmínky: Záznam byl uložen do databáze Alternativní scénáře: Žádné Smazání fotografie (1.7)
ID: 7 Uživatel maže fotografie k autu. Hlavní aktéři: Administrátor, zaměstnanec Vedlejší aktéři: Žádní Vstupní podmínky: Uživatel musí být přihlášen do systému 1. Zobraz seznam aut. 2. Uživatel zvolí auto a klikne na tlačítko pro zobrazení fotografii. 3. Zobraz všechny fotografie k autu. 4. Uživatel klikne na fotografii, kterou chce smazat. 5. Ulož id_fotografie do pomocné proměnné. 6. Zobraz dialogové okno, pro potvrzení smazání. 7. Pokud uživatel zvolí možnost návratu, pokračuj krokem 2. BEGIN TRANS 8. Smaž fotografii s id_fotografie s pomocné proměnné. END TRANS 9. Zobrazit uživateli informace o stavu akce. Výstupní podmínky: Záznam byl smazán v databázi. Alternativní scénáře: Žádné.
2.2.1.4. DFD diagram 1. úroveň Evidence objednávek + minispecifikace Administrátor Zaměstnanec Zákazník Pojistka Pobočka 2.1 Vytvoření Objednávky Objednávka Stav objednávky 2.3 Zobrazení seznamu objednávek 2.4 Editace objednávky 2.2 Zrušení objednávky Auto Zaměstnanec
Vytvoření objednávky (proces 2.1) ID: 1 Formulář: Vytvoření objednávky Objednávka: Datum: Datum vypůjčení: Datum vrácení: datum_vypujceni doba_vypujceni doba_vraceni Zákazník: Jméno: Přímení: Město: Ulice: PSČ: jmeno primeni mesto ulice psc Č.p.: Cislo_popisne Telefon: Email: IČO: DIČ: telefon email ico dic Vozidlo: Typ auta: Model: SPZ: Typ karosérie: Cena / den: typ_auta model znacka typ_karoserie cena_pujceni_na_den Zrušit Objednat Zákazník, Zaměstnanec, Administrátor Hlavní aktéři: Zákazník, zaměstnanec, administrátor Vedlejší aktéři: Žádní Vstupní podmínky: Zákazník, zaměstnanec nebo administrátor musí být přihlášený do systému. (v tomto scénáři pro zjednodušení nahrazuji atributy PSC, ulice, cislo_popisne a město jedním atributem adresa) 1. Zobrazit formulář pro vyhledávání aut (viz funkce Vyhledání auta) a zobrazit auta způsobilá pro objednání
2. Uživatel vybere auto a klikne na Objednání 3. Vytvoř formulář a vyplň aktuální datum. Podle ID_auta vyplň typ_karoserie, typ_auta, znacka, model, cena_pujceni_na_den, adresa pobočky a nazev_pobocky 4. Pokud bude přihlášený zákazník, vyhledej v databázi záznam v tabulce Zakaznik, vyhledej záznam, kde id_zakaznika bude stejné jako ID přihlášeného zákazníka a vyplň jmeno, prijmeni, adresu, mail, telefon, ICO, DIC. Pokud bude přihlášený zaměstnanec, vyplní údaje o zákazníkovi uživatel 5. Uživatel vyplní datum_vypujceni a datum_vraceni a v závislosti na tom systém vypočte doba_vypujceni podle vztahu doba_vypujceni = datum_vraceni - datum_vypujceni 6. Uživatel klikne na Objednat Proběhne validace, která zkontroluje, jestli zadané hodnoty atributů vyhovují integritním omezení v datovém slovníku BEGIN TRANSACTION 7. Načti údaje z formuláře do paměti a ulož do databáze do tabulky Objednávka atributy id_auta, id_zakaznika, datum_objednani, datum_vypujceni, datum_vraceni a doba_vypujceni. Dále ulož do atributu id_stav_objednavky číslo 1 (vytvořená) END TRANSACTION 8. Systém zobrazí hlášku o úspěšném vytvoření objednávky Výstupní podmínky: Záznam byl uložen do databáze Alternativní scénáře: Žádné Zrušení objednávky (proces 2.2) ID: 2 Zákazník, zaměstnanec nebo administrátor zruší vytvořenou objednávku Hlavní aktéři: Zákazník, Zaměstnanec, Administrátor Vedlejší aktéři: Žádní Vstupní podmínky: Zákazník, Zaměstnanec, nebo Administrátor musí být přihlášený do systému. Zákazník může zrušit pouze své objednávky. 1. Zobraz seznam objednávek (viz 2.3 Zobrazení seznamu objednávek) 2. U vybrané objednávky uživatel klikne na tlačítko Zrušit BEGIN TRANS
3. Vyhledej záznam v tabulce Objednávka, kde ID_objednávky je shodné s ID zvolené objednávky a změň id_stav_objednavky na hodnotu 5 (zrušená) END TRANS 4. Systém zobrazí hlášku o úspěšném zrušení. Výstupní podmínky: Záznam byl editován v databázi. Alternativní scénáře: Žádné. Zobrazení seznamu objednávek (proces 2.3) ID: 3 Formulář: Objednávky Objednávka: ID_objednavky Datum: datum_vypujceni Datum vypůjčení: doba_vypujceni Datum vrácení: doba_vraceni Vozidlo: Typ auta: Model: SPZ: Typ karosérie: Cena / den: typ_auta model znacka typ_karoserie cena_pujceni_na_den Zákazník: Jméno: Přímení: Město: Ulice: PSČ: Telefon: Email: IČO: DIČ: jmeno prijmeni mesto ulice,cislo_popisne psc telefon email ico dic Zrušit Editovat Objednávka: ID_objednavky Datum: datum_vypujceni Datum vypůjčení: doba_vypujceni Datum vrácení: doba_vraceni Vozidlo: Typ auta: Model: SPZ: Typ karosérie: Cena / den: typ_auta model znacka typ_karoserie cena_pujceni_na_den Zákazník: Jméno: Přímení: Město: Ulice: PSČ: Telefon: Email: IČO: DIČ: jmeno prijmeni mesto ulice,cislo_popisne psc telefon email ico dic Zrušit Editovat Zákazník, zaměstnanec nebo Administrátor zobrazí seznam existujících objednávek Hlavní aktéři: Zákazník, Zaměstnanec, Administrátor
Vedlejší aktéři: Žádní Vstupní podmínky: Zákazník, Zaměstnanec nebo Administrátor musí být přihlášený do systému. Zákazník může zobrazit pouze své objednávky. 1. Zobraz formulář pro zobrazení seznamu objednávek 2. Pokud je přihlášený zákazník, najdi v databázi v tabulkách Objednávka, Zákazník a Auto záznamy, kde ID_zákazníka je shodné s ID aktuálně přihlášeného zákazníka a ulož do paměti fodnoty atributy id_objednavky, stav_objednavky, datum_objednani, datum_vypujceni, datum_vraceni, doba_vypujceni, typ_karoserie, typ_auta, znacka, model, cena_pujceni_na_den, adresa pobočky, nazev_pobocky, jmeno, prijmeni, adresu, mail, telefon, ICO, DIC. Pokud je přihlášený zaměstnanec nebo administrátor, ulož do paměti hodnoty atributů všech objednávek. 3. Data z paměti vlož do formuláře. Výstupní podmínky: Žádné Alternativní scénáře: Žádné Editace objednávky (proces 2.4) ID: 4 Zaměstnanec nebo Administrátor edituje objednávku Hlavní aktéři: Zaměstnanec, Administrátor Vedlejší aktéři: Žádní Vstupní podmínky: Zaměstnanec nebo administrátor musí být přihlášený do systému 1. Zobraz formulář pro vyhledávání objednávek (viz 2.3 Zobrazení seznamu objednávek). 2. Uživatel vybere objednávku 3. U vybrané objednávky zvolí Editovat. 4. Zobrazí formulář pro editaci objednávky (shodný s formulářem pro vytvoření objednávky), načti z databáze záznam, kde ID_objednavky je shodny s ID zvolené objednávky, ulož do paměti a vyplň formulář hodnotami atributů id_objednavky,
stav_objednavky, datum_objednani, datum_vypujceni, datum_vraceni, doba_vypujceni, typ_karoserie, typ_auta, znacka, model, cena_pujceni_na_den, adresa pobočky, nazev_pobocky, jmeno, prijmeni, adresu, mail, telefon, ICO, DIC. 5. Uživatel provede editaci a stiskne Editovat. BEGIN TRANS 6. Přečti hodnoty z formuláře a porovnej s původními hodnotami. Ty hodnoty, které byly změněny ve formuláři, edituj v databázi. END TRANS 7. Zobraz hlášku o úspěšné editaci. Výstupní podmínky: Záznam byl editován v databázi. Alternativní scénáře: Žádné.
2.2.1.5. DFD diagram 1. úroveň Evidence uživatelů + minispecifikace Neregistrovaný uživatel Zaměstnanec 3. Editace uživatele 3.1 Editace zákazníka 3.2 Editace zaměstnance Zakaznik Zamestnanec Zákazník Administrátor
Neregistrovaný uživatel 3.1 Editace zákazníka Zaměstnanec 3.1.1 Přidání zákazníka 3.1.2 Editace zákazníka Zakaznik Adresa id_zakaznika 3.1.3 Vypsání seznamu zákazníků id_zakaznika 3.1.4 Zrušení zákazníka Zaměstnanec Administrátor
3.2 Editace Zaměstnance Role id_role 3.2.1 Přidání zaměstnance Zamestnanec id_role Adresa id_pobocky id_zamestnance id_pobocky 3.2.2 Editace zaměstnance Pobocka id_zamestnance 3.2.4 Zrušení zaměstnance 3.2.3 Vypsání seznamu zaměstnance id_zamestnance Administrátor Zaměstnanec Přidání nového zákazníka (3.1.1) ID: 1 Přidání nového zákazníka Hlavní aktéři: Administrátor, Zaměstnanec, Neregistrovaný uživatel (dále jen Uživatel) Vedlejší aktéři: Žádní Vstupní podmínky: Administrátor / Zaměstnanec musí být přihlášený do systému 1. Zobraz formulář pro přidání nového zákazníka do systému 2. Uživatel vloží hodnoty do připraveného formuláře (jméno, příjmení, heslo, e-mail, telefon, IČO, DIČ, ulice, číslo popisné, město, PSČ)
3. Validuj formulář podle IO v datovém slovníku a. Pokud validace neprojde, zobraz varování s chybou (Např. špatný formát emailu) b. Přejdi na krok 1 (s hodnotami vyplněnými uživatelem v kroku 2) 4. Systém doplní login, id_zakaznika a id_adresy na základě IO a poznámek v datovém slovníku 5. Ulož větu (jméno, příjmení, id_zakaznika, id_adresy, login, heslo, e-mail, telefon, IČO, DIČ) do tabulky Zakaznik 6. Ulož větu (id_adresy, ulice, číslo popisné, PSČ) do tabulky Adresa 7. Vyhledej PSČ v tabulce PSC_mesto a. Pokud PSČ existuje v tabulce PSC_mesto, jdi na krok 8 b. Pokud PSČ neexistuje v tabulce PSC_mesto, vlož do tabulky PSC_mesto data (PSČ, město) 8. Zobraz uživateli informace o výsledku akce Výstupní podmínky: Záznamy byly uloženy do databáze Alternativní scénáře: Žádné Editace zákazníka (3.1.2) ID: 2 Administrátor a Zaměstnanec upravuje data u konkrétního zákazníka, Zákazník upravuje svá data Hlavní aktéři: Administrátor, Zaměstnanec, Zákazník Vedlejší aktéři: Žádní Vstupní podmínky: Administrátor musí být přihlášený do systému. 1. Pokud přihlášen Administrátor nebo Zaměstnanec a. Zobraz formulář se seznamem všech zákazníků, skrze formulář lze vyhledat konkrétního zákazníka b. Uživatel vybere konkrétního zákazníka, jdi na krok 2a 2. Pokud přihlášen Zákazník a. Zobraz formulář pro editaci naplněný daty záznamu daného zákazníka 3. Uživatel upraví požadovaná data (měnit lze vše kromě loginu, jména a příjmení) a. Při změně hesla je třeba vyplnit staré heslo a poté 2x vyplnit heslo nové 4. Uživatel potvrdí změny stiskem příslušného tlačítka
5. Validuj data vložená uživatelem a. Pokud validace proběhne v pořádku, jdi na krok 6 b. Pokud neproběhne v pořádku, zobraz varování s danou chybou a jdi na krok 2a s údaji vyplněnými uživatelem BEGIN TRANS 6. Proveď update záznamu v tabulce Zakaznik s id_zakaznika, záznam v tabulce Adresa s id_zakaznika END TRANS 7. Zobraz Uživateli informace o stavu akce Výstupní podmínky: Záznam byl editován v databázi. Alternativní scénáře: Žádné. Vypsání seznamu zákazníků (3.1.3) ID: 3 Zaměstnanec, Administrátor zobrazí seznam všech zákazníků Hlavní aktéři: Administrátor, Zaměstnanec Vedlejší aktéři: Žádní Vstupní podmínky: Administrátor/Zaměstnanec musí být přihlášen do systému 1. Načti všechny záznamy z tabulky Zákazník sjednocené přes id_zakaznika s tabulkou Adresa, seřazené podle Příjmení zákazníka 2. Zobraz formulář obsahující seznam všech zákazníků Výstupní podmínky: Žádné Alternativní scénáře: Žádné Smazání zákazníka (3.1.4) ID: 4 Zákazník, Zaměstnanec, Administrátor smaže konkrétního zákazníka
Hlavní aktéři: Administrátor, Zaměstnanec, Zákazník Vedlejší aktéři: Žádní Vstupní podmínky: Administrátor/Zákazník/Zaměstnanec musí být přihlášen do systému. 1. Pokud přihlášen Administrátor nebo Zaměstnanec a. Zobraz formulář se seznamem všech zákazníků, skrze formulář lze vyhledat konkrétního zákazníka b. Po vybrání konkrétního zákazníka jdi na krok 2a 2. Pokud přihlášen Zákazník a. Zobraz formulář pro smazání účtu daného zákazníka 3. Zobraz dialogové okno pro potvrzení smazání 4. Pokud Uživatel zvolí možnost návratu, pokračuj krokem 1. 5. Uživatel potvrdí změnu 6. Vyhledej na základě id_zakaznika v tabulce Zakaznik záznam s id_zakaznika BEGIN TRANS 7. Změň v daném záznamu položku is_active na false END TRANS 8. Zobraz uživateli informace o stavu akce (výsledek) a. Pokud je přihlášený uživatel Zákazník, proveď odhlášení ze systému Výstupní podmínky: Záznam byl deaktivován v databázi Alternativní scénáře: Žádné Přidání nového zaměstnance (3.2.1) ID: 1 Přidání nového zaměstnance Hlavní aktéři: Administrátor Vedlejší aktéři: Žádní Vstupní podmínky: Administrátor musí být přihlášený do systému
1. Zobraz formulář pro přidání nového zaměstnance do systému, načti do roletkových menu nabídku poboček a nabídku měst s PSČ z databáze 2. Uživatel vloží hodnoty do připraveného formuláře (jméno, příjmení, heslo, e-mail, telefon, ulice, číslo popisné, město, PSČ, pohlaví, věk), vybere roli v systému, zadá výši platu a pobočku, na které bude zaměstnanec pracovat a PSČ 3. Validuj uživatelem zadané vstupy a. Pokud validace neprojde (Např. špatný formát emailu), zobraz varování a přejdi na krok 1 s hodnotami vyplněnými uživatelem v kroku 1 4. Doplň login, id_zakaznika, id_adresy, id_role podle vybrané role podle IO a poznámek v datovém slovníku 5. Ulož větu (jméno, příjmení, id_zamestnance, id_adresy, login, heslo, e-mail, telefon, pohlaví, plat, id_role, id_pobočky) do tabulky Zamestnanec 6. Ulož větu (id_adresy, id_zamestnance, ulice, číslo popisné, PSČ) do tabulky Adresa 7. Vyhledej PSČ v tabulce PSC_mesto a. Pokud PSČ existuje v tabulce PSC_mesto, jdi na krok 8 b. Pokud PSČ neexistuje v tabulce PSC_mesto, vlož do tabulky PSC_mesto větu (PSČ, město) 8. Zobrazit uživateli informace o stavu akce Výstupní podmínky: Záznamy byly uloženy do databáze Alternativní scénáře: Žádné Editace zaměstnance (3.2.2) ID: 2 Administrátor upravuje data u konkrétního zaměstnance, Zaměstnanec upravuje svá základní data Hlavní aktéři: Administrátor, Zaměstnanec Vedlejší aktéři: Žádní Vstupní podmínky: Administrátor/Zaměstnanec musí být přihlášený do systému 1. Pokud přihlášen Administrátor a. Zobraz formulář se seznamem všech zákazníků, skrze formulář lze vyhledat konkrétního zákazníka b. Po vybrání konkrétního zákazníka jdi na krok 2a
2. Pokud přihlášen Zaměstnanec a. Zobraz formulář pro editaci naplněný daty daného zákazníka s id_zakaznika 3. Uživatel Administrátor upraví požadovaná data (měnit lze vše kromě loginu, jména a příjmení), Uživatel Zaměstnanec nemůže měnit plat, pobočku, roli a. Při změně hesla je třeba vyplnit staré heslo a poté 2x vyplnit heslo nové 4. Uživatel potvrdí změny stiskem příslušného tlačítka 5. Validuj uživatelem zadané vstupy a. Pokud validace neprojde (Např. špatný formát emailu), zobraz varování a přejdi na krok 2a s hodnotami vyplněnými uživatelem v kroku 3 BEGIN TRANSACTION 6. Updatuj na základě id_zakaznika záznam v tabulce Zakaznik daty vyplněnými ve formuláři 7. Updatuj na základě id_zakaznika záznam v tabulce Adresa daty vyplněnými ve formuláři (ulice, PSČ) END TRANSACTION 8. Zobraz Uživateli informace o stavu akce (výsledek) Výstupní podmínky: Záznam byl editován v databázi. Alternativní scénáře: Žádné. Vypsání seznamu zaměstnanců (3.2.3) ID: 4 Zaměstnanec, Administrátor zobrazí seznam všech zaměstnanců Hlavní aktéři: Administrátor, Zaměstnanec Vedlejší aktéři: Žádní Vstupní podmínky: Administrátor/Zaměstnanec musí být přihlášen do systému 1. Načti všechny záznamy z tabulky Zaměstnanec sjednocené přes id_zakaznika s tabulkou Adresa, přes id_pobočky s tabulkou Pobočka a přes id_role s tabulkou Role, seřazené abecedně podle atributu Příjmení a Jméno 2. Zobraz formulář obsahující seznam všech zaměstnanců Výstupní podmínky: Žádné
Alternativní scénáře: Žádné Zrušení zaměstnance (3.2.4) ID: 4 Administrátor smaže konkrétního zaměstnance Hlavní aktéři: Administrátor Vedlejší aktéři: Žádní Vstupní podmínky: Administrátor musí být přihlášen do systému. 1. Zobraz seznam všech zaměstnanců 2. Uživatel vybere konkrétního zaměstnance ze seznamu 3. Zobraz formulář pro smazání účtu daného zaměstnance 4. Zobraz dialogové okno pro potvrzení smazání a. Pokud Uživatel zvolí možnost návratu, pokračuj krokem 1 b. Pokud Uživatel potvrdí změnu, vyhledej na základě id_zamestnance v tabulce Zamestnanec záznam s id_zamestnance BEGIN TRANSACTION 5. Uprav v daném záznamu položku is_active na false END TRANSACTION 6. Zobraz uživateli informace o stavu akce (výsledek) Výstupní podmínky: Záznam byl deaktivován v databázi Alternativní scénáře: Žádné
2.2.1.6. diagram 1. úroveň Evidencepoboček + minispecifikace Administrátor 4.4 Smazání pobočky id_pobocka id_pobocka 4.1 Přidání pobočky Adresa Pobočka 4.3 Editace pobočky 4.2 Vyhledaní pobočky Zákazník Zaměstnanec Neregistrovaný uživatel
Přidání nové pobočky (4.1) ID: 1 Administrátor přidá novou pobočku do systému. Hlavní aktéři: Administrátor Vedlejší aktéři: Žádní Vstupní podmínky: Administrátor musí být přihlášený do systému. 1. Zobrazit formulář pro přidání nové pobočky do systému. 2. Administrátor vloží hodnoty ( nazev_pobocky, pocet_zamestnancu) do připraveného formuláře. Id_pobocka je vygenerována databázi. a. id_pobocka bude generováná automaticky daným sřbd, třeba u mysql autoincrement nebo u msssql pomocí identity 3. Data (ulice, číslo popisné, PSČ) se uloží do p_ulice,p_cislopopisne,p_psc! 4. Proběhne validace, může být i na straně klienta, důležité je, ale validovat na serveru. Pokud validace neprojde, zobrazit varování a přejít na krok 1. a. Validovat se budou všechny pomocné proměnné jestli jsou vůbec zadány b. p_cislopopisne a p_psc se bude ještě validovat jestli je to číslo c. p_psc bude mít další kontrolu a to počet číslic tak jak je stanoven formát 5. Vyhledej PSČ v tabulce PSC_mesto 6. Pokud PSČ existuje v tabulce PSC_mesto, jdi na krok 8 BEGIN TRANSACTION
7. Pokud PSČ neexistuje v tabulce PSC_mesto, vlož do tabulky PSC_mesto data (PSČ, město) 8. Systém zavolá proceduru, která vytvoří adresu s pomocných proměnných a vrátí id_adresa do proměnné id_adresa 9. Systém uloží data do tabulky Pobočka (id_adresy, nazev_pobocky), atribut pocet_zamestnancu se bude vypočítávat získáním počtu zaměstnanců s daným id_pobocky 10. Uložit data do tabulky pobočka. 11. Zobrazit administrátorovi informace o stavu akce. Výstupní podmínky: Záznam byl uložen do databáze. Alternativní scénáře: Žádné. Vyhledání pobočky (4.2) ID: 2 Uživatel vyhledá pobočku Hlavní aktéři: Administrátor, Zákazník, Zaměstnanec, Neregistrovaný uživatel Vedlejší aktéři: Žádní
Vstupní podmínky: Žádné 1. Systém zobrazí seznam všech poboček 2. Uživatel vybere konkrétní pobočku, nebo podle zadaných kritérií vyhledá pobočku stiskem tlačítka Hledat 3. Systém zobrazí formulář popisující vybranou pobočku Výstupní podmínky: Žádné Alternativní scénáře: Žádné Editace pobočky (4.3)
ID: 3 Administrátor edituje pobočky Hlavní aktéři: Administrátor Vedlejší aktéři: Žádní Vstupní podmínky: Administrátor musí být přihlášený do systému. 1. Zobrazit seznam poboček. 2. Administrátor zvolí pobočku, kterou chce změnit, id_pobočka se uloží do pom. proměnné 3. Zobrazí formulář pro editaci pobočky v systému. 4. Administrátor vloží hodnoty (nazev_pobocky, pocet_zamestnancu) do připraveného formuláře. 5. Proběhne validace, může být i na straně klienta, důležité je, ale validovat na serveru. Pokud validace neprojde, zobrazit varování a přejít na krok 3. a. Validovat, jestli jsou proměnné ve formuláři vůbec zadány BEGIN TRANS 6. Systém na základě id_pobočky v pomocné proměnné aktualizuje data v databázi END TRANS 7. Zobrazit administrátorovi informace o stavu akce. Výstupní podmínky: Záznam byl editován v databázi. Alternativní scénáře: Žádné.
Smazání pobočky (4.4) ID: 4 Administrátor maže pobočky. Hlavní aktéři: Administrátor Vedlejší aktéři: Žádní Vstupní podmínky: Administrátor musí být přihlášený do systému. 1. Zobrazit seznam poboček. 2. Administrátor zvolí pobočku, kterou chce smazat, id_pobočka se uloži do pom. Proměnné 3. Zobrazí dialogové okno, pro potvrzení smazání. 4. Pokud administrátor zvolí možnost návratu, pokračuj krokem 1. 5. Pokud administrátor potvrdí změnu, systém na základě id_pobočka, projde tabulky, s kterýma je v relaci. 6. Jestliže id_pobočka je v relaci s jinou tabulkou, pak se smazání neprovede. Systém zobrazí varování, že pobočku nelze smazat, neboť ji systém stále využívá. BEGIN TRANS 7. Pokud id_pobočka není v relaci s jinou tabulkou, je vše v pořádku a daná pobočka se smaže. END TRANS 8. Zobrazit administrátorovi informace o stavu akce.
Výstupní podmínky: Záznam byl smazán v databázi. Alternativní scénáře: Žádné.
2.2.1.7. diagram 1. úroveň Evidence faktur+ minispecifikace Registrovaný uživatel Zaměstnanec Objednavka Id_objednavky 5.1.1 Vytvoření faktury id_objednavky Id_zamestnance id_objednavky Id_stav_objednavky Stav objednavky Id_faktury Zamestnanec Id_stav_objednavky 5.1.2 Zobrazení faktur Id_faktury Faktura Id_zakaznika Id_auta Id_faktury Zakaznik id_stav_objednavky Auto 5.1.3 Uzavření faktury Administrátor Vytvoření faktury (5.1.1) ID: 1 Vytvoření faktury Hlavní aktéři: Administrátor, Zaměstnanec Vedlejší aktéři: Žádní Vstupní podmínky:
Administrátor / Zaměstnanec musí být přihlášený do systému 1. Zobraz seznam objednávek (viz funkce Zobrazení seznamu objednávek). 2. Uživatel zaškrtne objednávky, pro které chce vytvořit fakturu. 3. Do paměti ulož id_objednavky vybraných objednávek. 4. Zobraz formulář pro vytvoření faktury. 5. Do formuláře vlož aktuální datum pro datum vystavení, datum splatnosti = aktuální datum + 14 dnů a cenu (sečti Auto.cena_pujceni_na_den, Objednavka.doba_vypujceni pro každé vypůjčené auto). 6. Uživatel dle potřeby upraví hodnoty ve formuláři a zvolí zda byla faktura zaplacena. 7. Do paměti ulož id_zamestnance, který je přihlášený a id_faktury, které bude o 1 větší, než má poslední záznam v tabulce faktura. 8. Uživatel klikne na Vytvořit 9. Zkontroluj, jestli zadané hodnoty atributů vyhovují integritním omezením v datovém slovníku a datum splatnosti následuje za datem vytvoření faktury. BEGIN TRANS 10. Načti údaje z formuláře do paměti a ulož do tabulky faktura atributy id_faktury, id_zamestnance, datum_vytvoření, datum_splatnosti, datum_platby, zaplaceno, cena. Dále ulož do tabulky Objednávka k řádkům, kde id_objednavky = p.id_objednavky atribut id_faktury do sloupce id_faktury. END TRANS 11. Zobraz uživateli informace o stavu akce (výsledek). Výstupní podmínky: Záznamy byly uloženy do databáze Alternativní scénáře: Žádné Zobrazení faktur zákazníka (proces 5.1.2) ID: 2 Administrátor a Zaměstnanec si zobrazí faktury vybraného zákazníka, Zákazník si zobrazí své faktury Hlavní aktéři: Administrátor, Zaměstnanec, Zákazník (dále uživatel) Vedlejší aktéři:
Žádní Vstupní podmínky: Administrátor/Zaměstnanec/Zákazník musí být přihlášený do systému. 1. Pokud přihlášen Administrátor nebo Zaměstnanec. a) Zobraz formulář se seznamem všech zákazníků (viz funkce Vypsání seznamu zákazníků), skrze formulář lze vyhledat konkrétního zákazníka. b) Ulož do paměti id_zakaznika, který byl vybrán v kroku 1a a přejdi na krok 3. 2. Pokud přihlášen zákazník, ulož do paměti id přihlášeného uživatele. 3. Podle p.id_zakaznika vyhledej objednavky (p.id_zakaznika = objednavka.id_zakaznika), podle id_objednavky stav objenavky (objednavka.id_stav_objednavky = stav_objednavky.id_stav_objednavky), půjčená auta (objednavka.id_auta = auto.id_auta) a fakturu (objednavka.id_faktury = faktura.id_faktury). 4. Zobraz seznam faktur vyhledaných v kroku 3. 5. Uživatel si vybere fakturu. 6. Do paměti ulož id_faktury vybrané v kroku 5. 7. Zobraz formulář faktury vybrané v kroku 5 (faktura.datum_vystaveni, faktura.datum_splatnosti, faktura.cena, půjčená auta: auto.znacka, auto.model vyhovující kritériu auto.id_auta = objednavka.id_auta pro řádky, kde id_faktury = p.id_faktury) Výstupní podmínky: Žádné. Alternativní scénáře: Žádné. Uzavření faktury (5.1.3) ID: 3 Zaměstnanec/Administrátor uzavře fakturu Hlavní aktéři: Administrátor, Zaměstnanec Vedlejší aktéři: Žádní Vstupní podmínky:
Administrátor/Zaměstnanec musí být přihlášen do systému. 1. Zobraz seznam všech faktur, uživatel může vyhledat faktury zákazníka (viz funkce Zobrazení faktur zákazníka). 2. Uživatel vybere konkrétní fakturu. 3. Ulož do paměti id_faktury vybrané v kroku 2. 4. Zobraz detaily faktury (viz funkce Zobrazení faktur zákazníka krok 7) a tlačítka Zpět a Uzavři. 5. Pokud uživatel zvolí tlačítko Zpět, vrať se na krok 2. Pokud stiskne tlačítko Uzavři pokračuj krokem 6. BEGIN TRANS 6. V tabulce Faktura změň atribut zaplaceno na 1 a do datum_platby ulož aktuální datum pro řádek, kde faktura.id_faktury = p.id_faktury. END TRANS 7. Zobraz uživateli informace o stavu akce (výsledek). Výstupní podmínky: Změna stavu faktury(objednávky) Alternativní scénáře: Žádné
1.1. Časová analýza 1.1.1. STD Objednávka Vytvořená Zrušená Odsouhlašená Vypůjčeno Uzavřená Životní cyklus objednávky začíná jejím vytvořením. Vytvoření je proces, kdy si uživatel vybere auto k zapůjčení a potvrdí systému zájem o dané auto v daný den na určitý počet dní. Systém danou žádost ihned zpracuje a vytvoří objednávku (Vloží záznam do tabulky Objednavka a atributu záznamu v tabulce Objednavka nastaví id_stav_objednavky na hodnotu 1). Ze stavu vytvoření lze přejít do stavu zrušení, nebo odsouhlasení. Přechod ze stavu Vytvořená do stavu Zrušená nastane tehdy, rozmyslí-li si uživatel hned po odeslání objednávky, že o dané auto zájem nemá a potvrdí zrušení objednávky, čímž se celá objednávka ruší a končí její životní cyklus. Systém vyhledá daný záznam objednávky a nastaví hodnotu atributu id_stav_objednavky na 5. Přechod mezi stavy Vytvořená a odsouhlasená nastává tehdy, potvrdí-li zaměstnanec dané pobočky, že je možno si auto vypůjčit. Systém vyhledá daný záznam v tabulce Objednavka a nastaví u daného záznamu atribut id_stav_objednavky na hodnotu 2. Ze stavu Odsouhlašená lze přejít do stavu Zrušeno nebo Vypůjčeno. Přechod do stavu Odsouhlašená do stavu Zrušeno je obdobný přechodu Vytvořená -> Zrušená, kdy zákazník může celou objednávku stornovat. Systém vyhledá daný záznam objednávky a nastaví hodnotu atributu id_stav_objednavky na 5. Přechod ze stavu Odsouhlašená do stavu Vypůjčená nastává ve chvíli, kdy si zákazník fyzicky auto na dané pobočce vypůjčí. Systém vyhledá daný záznam objednávky a nastaví hodnotu atributu id_stav_objednavky na 3. Jakmile zákazník auto vrátí, je možno přejít ze stavu Vypůjčená do stavu Uzavřená signalizující vrácení auta zákazníkem a jeho přijetí zaměstnancem na pobočce. Systém vyhledá daný záznam objednávky a nastaví hodnotu atributu id_stav_objednavky na 4. Vstupem do stavu Uzavřená končí životní cyklus objednávky.
1.2. Návrh GUI Přihlašovací okno Uživatelské jméno: Heslo: Přihlásit Registrovat
Vytvoření objednávky Objednávka: Datum: 1.1.2010 14:20 Datum vypůjčení: Datum vrácení: Zákazník: Jméno: Přímení: Město: Ulice: PSČ: Telefon: Email: IČO: DIČ: Č.p.: Vozidlo: Typ auta: Honda Model: Civic SPZ: 4A2 3000 Typ karosérie: Osobní Cena / den: 350Kč Zrušit Objednat