VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY
FAKULTA STROJNÍHO INŽENÝRSTVÍ ÚSTAV AUTOMATIZACE A INFORMATIKY FACULTY OF MECHANICAL ENGINEERING INSTITUTE OF AUTOMATION AND COMPUTER SCIENCE
IMPLEMENTACE MODULÁRNÍHO INFORMAČNÍHO SYSTÉMU V PROSTŘEDÍ DELPHI IMPLEMENTATION OF MODULAR INFORMATION SYSTEM IN DELPHI ENVIRONMENT
DIPLOMOVÁ PRÁCE DIPLOMA THESIS
AUTOR PRÁCE
PAVEL ŠULA
AUTHOR
VEDOUCÍ PRÁCE SUPERVISOR
BRNO 2007
DOC. RNDR. ING. MILOŠ ŠEDA, PH.D.
Strana 3
1 ZADÁNÍ ZÁVĚREČENÉ PRÁCE
Strana 5
LICENČNÍ SMLOUVA
Strana 7
ABSTRAKT Diplomová práce se zabývá návrhem a realizací informačního systému pro řešení stravování v domovech důchodců. Řešení je realizováno pomocí vývojového prostředí Delphi s použitím relačního databázového systému Firebird.
ABSTRACT The diploma thesis deals with desing and realization of the information system for solving board at rest homes. The application is realized by means of Integrated Development Environment Delphi using the relational database system Firebird.
Strana 8
Abstrakt
PODĚKOVÁNÍ Děkuji touto cestou vedoucímu své diplomové práce Doc. RNDr. Ing. Miloši Šedovi, Ph.D., za jeho pomoc při tvorbě diplomové práce. Dále děkuji pracovníkům Domu sv. Antonína za jejich rady a nápady při vývoji programu.
PROHLÁŠENÍ Prohlašuji, že jsem tuto práci vypracoval sám podle rad a pokynů vedoucího diplomové práce pana doc. RNDr. Ing. Miloše Šedy, Ph.D.
V Brně dne 30. 9. 2007
Strana 9
Obsah: Zadání závěrečené práce.................................................................................................5 Licenční smlouva.............................................................................................................7 Abstrakt............................................................................................................................9 1 Úvod................................................................................................................................13 1.1 PRODOM .....................................................................................................................13 2 Realizační prostředky....................................................................................................15 2.1 Vývojové prostředí Delphi ...........................................................................................15 2.1.1 2.1.2
2.2
Historie....................................................................................................................................15 Komponenty IBX....................................................................................................................15
InterBase/Firebird..........................................................................................................16
2.2.1 2.2.2 2.2.3 2.2.4
3 3.1 3.2 3.3 3.4 3.5
Historie....................................................................................................................................16 Přehled základních vlastností..................................................................................................16 Použitý databázový systém.....................................................................................................17 Administrace databáze............................................................................................................17
Návrh datových struktur..............................................................................................19 Kroky při návrhu databáze............................................................................................19 Podmínky správně navržené databáze...........................................................................19 Normalizace databáze...................................................................................................19 Návrh struktury databáze.............................................................................................20 Domény.........................................................................................................................21
3.5.1 3.5.2
3.6
Popis systému domén..............................................................................................................21 Použité domény.......................................................................................................................21
Použité tabulky PRODOM............................................................................................22
3.6.1 3.6.2
3.7
Tabulka Uzivatel.....................................................................................................................22 Tabulka Stavy.........................................................................................................................22
Použité tabulky Sklady..................................................................................................22
3.7.1 3.7.2 3.7.3 3.7.4 3.7.5 3.7.6 3.7.7 3.7.8 3.7.9 3.7.10 3.7.11 3.7.12 3.7.13
3.8 3.8.1 3.8.2 3.8.3 3.8.4 3.8.5 3.8.6 3.8.7 3.8.8
3.9
Tabulka Rejstřík......................................................................................................................22 Tabulka Karta.........................................................................................................................25 Tabulka PocstavM..................................................................................................................26 Tabulka PocstavC...................................................................................................................26 Tabulka Uzaverka...................................................................................................................27 Tabulka Zamek.......................................................................................................................28 Tabulka Dodavatel..................................................................................................................28 Tabulka Prijemka....................................................................................................................29 Tabulka RejstrikPr..................................................................................................................29 Tabulka Vydejka.....................................................................................................................31 Tabulka RejstrikVy.................................................................................................................31 Tabulka VydejkaKuch............................................................................................................32 Tabulka RejstrikVyKuch........................................................................................................32
Použité tabulky Kuchař.................................................................................................33 Tabulka Seznam......................................................................................................................33 Tabulka Recept.......................................................................................................................34 Tabulka KritickyBod..............................................................................................................34 Tabulka Norm1.......................................................................................................................35 Tabulka Norm2.......................................................................................................................35 Tabulka Norm3.......................................................................................................................35 Tabulka Pocty.........................................................................................................................36 Tabulka Jidelnicek..................................................................................................................38
Generátory a Triggery...................................................................................................41
Strana 10
4 4.1 4.2
Použití aplikace..............................................................................................................45 Instalace ........................................................................................................................45 Uživatelské účty............................................................................................................46
4.2.1 4.2.2
4.3 4.4 4.5
Přihlašovací dialog..................................................................................................................46 Správa identit..........................................................................................................................46
Nastavení.......................................................................................................................46 Zálohování.....................................................................................................................47 Sklady ...........................................................................................................................47
4.5.1 4.5.2 4.5.3 4.5.4 4.5.5 4.5.6
4.6
Rejstřík ...................................................................................................................................48 Karta .......................................................................................................................................48 Uzávěrka ................................................................................................................................49 Příjemka .................................................................................................................................50 Výdejka ..................................................................................................................................51 Výdejka od kuchaře ...............................................................................................................51
Kuchař...........................................................................................................................52
4.6.1 4.6.2 4.6.3 4.6.4
5 6
Abstrakt
Recepty...................................................................................................................................52 Strávníci..................................................................................................................................52 Jídelníček................................................................................................................................53 Výstupy...................................................................................................................................55
Závěr...............................................................................................................................57 Seznam použité literatury.............................................................................................59
Strana 11
1
ÚVOD
Mnoho aktivit si dnes již nedokážeme představit bez počítačové podpory, a to ani v domově důchodců. Dříve se vše okolo stravování zpracovávalo ručně, protože žádný z dostupných softwarových produktů na trhu neodpovídal specifickým požadavkům domovů důchodců. Proto bylo zapotřebí vyvinout informační systém, který by plně vyhovoval daným požadavkům. Diplomová práce navrhuje řešení informačního systému pro domovy důchodců, které mají svoji kuchyň, vaří celodenní stravu pro klienty zařízení a obědy pro zaměstnance a cizí strávníky. Hlavním cílem práce je zjednodušit a zefektivnit práci pracovníkům ve stravovacím provozu domovů důchodců. Tento systém by měl být schopen tvořit jídelníček, normovat stravu, evidovat počet strávníků, vést skladové hospodářství a umožnit napojení na stávající informační systém PRODOM.
1.1
PRODOM
PRODOM je informační systém vyvinutý speciálně pro evidenci obyvatel v domovech důchodců. Obsahuje na sobě nezavislé moduly, které jsou napojeny na centrální databázi (viz. obr.1). Databáze obyvatel slouží k evidenci klientů, jejich peněžních depozit, nákladů na pobyt a eviduje také jejich přítomnost v domově. Dále umožňuje vést seznam žadatelů o pobyt, tisk různých formulářů a tiskopisů. Sestra umožňuje vést zdravotní a ošetřovatelskou dokumentaci, vykazovat výkony na zdravotní pojišťovny a plánovat služby pro zdravotní sestry a pečovatelky. Tento systém využívá více jak 20 domovů důchodců po celé České republice. Základ tvoří modul Databáze obyvatel a Sestra. Díky ostatním modulům tvoří systém PRODOM ucelený informační systém pro domovy důchodců, a vytváří tak konkurence schopnou alternativu podstatně dražším produktům jiných firem.
Skladní (Sklady 2.0)
Sociální pracovnice (Databáze obyvatel 6.0)
Kuchařka (Kuchař 2.0)
Ředitel (Databáze obyvatel 6.0 - verze pouze pro čtení)
Vrchní sestra (Sestra 4.0) Centrální databáze
Pečovatelka (Sestra 4.0)
Staniční sestra (Výkony 1.5)
Staniční sestra (Služby 1.0)
Obr. 1 Zjednodušené schéma informačního systému PRODOM
Strana 13
2
REALIZAČNÍ PROSTŘEDKY
2.1
Vývojové prostředí Delphi
Delphi je jeden z nejkomplexnějších nástrojů pro programování pod Windows, jejímž základem je programovací jazyk Object Pascal. Tento jazyk je vhodný pro pokročilé programátory i pro úplné začátečníky. Toto vývojové grafické prostředí bylo vyvinuto firmou Borland jako takzvaný nástroj RAD, který zaručuje programátorovi vývoj kvalitních aplikací v co nejkratším čase. Pro vývoj této aplikace byla použita verze Delphi 7 professional. Vhodné knihy, jež byly použity při sestavování této kapitoly, jsou publikace [3-13]. 2.1.1
Historie
První verze Delphi byla představena v roce 1995. Tento produkt za svého života prošel velmi rychlým vývojem několika generací, které po sobě následovaly zhruba v ročních (někdy i kratších) intervalech. Po verzích 1–8 následoval zlom, jenž přinesl integraci několika překladačů do společného IDE. V současné verzi Delphi 2006 najdeme Delphi pro Win32, Delphi pro .NET, C#Builder pro .NET a C++Builder pro Win32 .
2.1.2
Komponenty IBX
Jsou komponenty odvozené od základní třídy TDataSet. Mohou tedy používat všechny databázové prvky, které Delphi nabízí. Podporují editor datových položek a všechny funkce využívané v době návrhu aplikace. Lze je také používat v nástroji pro návrh datových modulů (Data Module Desinger). Pro přístup k databázi si můžeme vybrat ze čtyř typů komponent, které jsou podobné jejich protějškům v BDE. IBTable – podobná komponentě Table. Umožňuje přistupovat k jedné tabulce nebo pohledu. IBQuery – odpovídá komponentě Query. Umožňuje provádět dotazy SQL vracející množiny výsledků. Komponenta IBQuery se může používat společně s komponentou IBUpdaeSQL, jejímž výsledkem je živá datová sada - do které můžeme upravovat a vkládat nové záznamy. IBStoredProc – odpovídá komponentě StoredProc. Pomocí této komponety lze spouštět uložené procedury na serveru. IBDataSet – je komponenta, která sjednocuje komponentu IBQuery a IBUpdateSQL. Vytváří živou datovou sadu, s níž je schopna pracovat. Novinkou od Delphi 6 je možnost nastavit u této komponenty automatické chování generátoru, aby fungoval jako tzv. auto-inkrementační datová položka. Postačí nastavit vlastnost GeneratorField v editoru vlastností. Řada dalších komponent z IBX nepatří do kategorie databázových komponent, ale i tak se používají ke zjednodušení práce s databázemi. IBDatabase – napodobuje komponetntu z BDE Databse. Používá se k nastavení databázového spojení. Umožňuje vytvářet databáze, testovat spojení a obecně přistupovat k systémovým datům. IBTransaction – umožňuje kompletní řízení transakcí. V InterBase je důležtá pro explicitní použití transakcí a jejich řádné oddělení, přičemž se používá úroveň oddělení Snapshot pro reporty a úroveň Read Committed pro interaktivní formuláře. Každá databázová komponenta se explicitně odkazuje na danou transakci, tudíž může existovat několik souběžných transakcí nad stejnou databází
Strana 14
2 Realizační prostředky
a vybírá se, které databázové komponenty se účastní které transakce. IBSQL – umožňuje provádět příkazy SQL nevracející datové sady, bez režie dané databázové komponenty. IBDatabaseInfo – se používá ke zjišťování struktury a stavu databáze. IBSQLMonitor – slouží k ladění systému, neboť ladící program SQL monitor z instalace Delphi je určen pro BDE. Výše uvedená skupina komponent nabízí lepší kontnrolu nad databázovým serverem než při použití BDE. Například speciální komponenta pro transakce umožňuje řídit několik souběžných transakcí nad jednou nebo několika databázemi.
2.2
InterBase/Firebird
Je komplexní relační databázový systém na bázi klient/server, provozovatelný na celé škále operačních systémů včetně MS Windows, Linx a řadě dalších UNIXových systémů, a nabízející vyšší úroveň podpory standartů jazyka SQL než většina dostupných databázových systémů. Vhodná kniha pro studium je [14], ze které bylo čerpáno při tvorbě této kapitoly. 2.2.1
Historie
Vlastníkem InterBase je firma Borland, která se však v roce 2000 rozhodla uvolnit zdrojové texty beta-verze InterBase 6.0 pod Open Source licencí, což přispělo k výraznému zvýšení zájmu vývojových pracovníků o tento produkt. Postupem času však Borland ukončil další vývoj volně šiřitelné verze InterBase Open Edition a s uvedením verze 6.5 se definitivně vrátil zpět k původnímu modelu placených licencí. Uvolnění zdrojových textů umožnilo vznik nezávislých projektů jako je Firebird, který sdružuje několik desítek vývojářů z celého světa, a stal se následníkem IterBase 6.0 Open Edition. V současné době jsou tedy k dispozici dvě hlavní odnože InterBase, které vychází z verze 6.0.: InterBase od firmy Borland a Firebird. Protože obě odnože v současné době sdílejí více než 95% funkčnosti, lze jeden produkt snadno nahradit druhým. 2.2.2
Přehled základních vlastností
InterBase je relačním databázovým systémem na bázi klient/server, který je určen především pro práci v síti. Skládá se z databázového serveru provozovaného na síťovém uzlu a z klientské knihovny, která je provozována na klientských stanicích. Základním koumunikačním protokolem je TCP/IP, ale pro malé sítě na bázi Ms Windows lze alternativně použít i protokol NetBEUI. Jak server, tak klienta lze provozovat na jediném počítači. Minimální instalační požadavky jsou 9 až 12 MB na jednom počítači v závislosti na platformě. Klientskou část tvoří jediná knihovna o velikosti přibližně 350 kB. Podpora SQL – InterBase vyhovuje základní úrovni standardu SQL92, která je podmínkou pro získání standardu SQL. Podporuje omezující pravidla pro formální kaskádní referenčí integritu, aktualizovatelné pohledy a plný levý i pravý outer join. Navíc nabízí několik rozšíření, jako jsou uložené procedury, spouště, uživatelské role, datový typ BLOB a další. Řada těchto rozšíření je převzata ze standardu SQL99. Efektivní práce s velkým množstvím dat – teoretické limity současných databázových systémů jsou velmi vysoké, ale praktické hodnoty bývají podstatně nižší. Umožňuje teoreticky pracovat s databází o velikosti desítek terabajtů a uchovávat více jak dvě miliardy řádků v každé tabulce. Víceuživatelský přístup k databázím – je navržen pro práci s více klientskými aplikacemi s jedinou databází. Klientské aplikace mohou současně pracovat s více databázemi. InterBase automaticky zajišťuje transakce prováděné nad více jak jednou databází pomocí dvoufázového potvrzovacího protokolu. V běžné konfiguraci je schopen obsloužit 150 současných připojení,
2 Realizační prostředky
Strana 15
ale vhodnou konfigurací hardwaru a softwaru lze dosáhnout i řádově vyššího počtu uživatelů. Uživatelsky definované funkce – umožňuje rozšiřovat základní sadu vestavěných funkcí o nové, uživatelsky definované funkce, které jsou uloženy v samostatných sdílených knihovnách. Transakční zpracování – poskytuje klientským aplikacím úplnou explicitní kontrolu nad zahájením, potvrzením a odvoláním transakcí. Každá transakce pracuje ve svém vlastním kontextu, který zahrnuje úroveň izolace od ostatních transakcí a způsob řešení konfliktů mezi transakcemi. Aktivní databáze – umožňuje realizovat zpracování dat přímo na serveru. Jako např. definice omezujích podmínek na úrovni sloupců i tabulek, definice vztahů mezi tabulkami, uložené procedury a spouště. 2.2.3
Použitý databázový systém
Pro naši aplikaci byl použit Firebird 1.0, který je plně kompatibilní s InterBase 6.0. Pokud tedy zákazníci nemají žádný z těchto dvou SQL serverů, je jim nainstalován Firebird. V případě že používají InterBase díky programům od jiných výrobců, lze použít InterBase 6.0 až do verze 7.5. Na všech těchto verzích byl systém PRODOM úspěšně odzkoušen. 2.2.4
Administrace databáze
Protože při instalaci Firebirdu není obsažen žádný grafický administrační nástroj, je pro jednoduchost použit program IBExpert Personal Editition. Tento program je schopen pracovat se všemi verzemi InterBase a Firebird. Dokáže tvořit databáze, zálohovat a spravovat uživatelské účty serveru.
Obr. 2 IBExpert.
Strana 16
2 Realizační prostředky
Strana 17
3
NÁVRH DATOVÝCH STRUKTUR
Návrh relační databáze je jednou z nejdůležitějších částí při vývoji databázových aplikací. Účelem každé báze dat je uchovávat a poskytovat informace požadované uživatelem. Každá databáze musí být navržena tak, aby byla schopna uchovávat a zpracovávat data i jejich vztahy. Fáze analýzy a návrhu logického datového modelu je nejdůležitějším a zároveň nejobtížnějším krokem celého návrhu aplikace. Pro studium návrhu datových struktur byly použity knihy [14], [15] a [16].
3.1
Kroky při návrhu databáze
Při návrhu databáze vzniká několik datových modelů, které se vyvíjejí postupným zpřesňováním a transformací předchozích stavů. a) Konceptuální model představuje první popis v podobě základních objektů, vlastností a vztahů. b) Logický model je úplný popis všech entit, atributů, omezení, vztahů a procesů v systému pomocí entit. Logický model je užitečný nejen při návrhu databázové struktury, ale i při návrhu samotné aplikace. c) Fyzický model je transformací logického modelu na konkrétní strukturu databáze.
3.2
Podmínky správně navržené databáze
I když je relační databázový systém velice flexibilní, jediným způsobem, jak zajistit správnou funkci a dobrý výkon, je správně navržená databáze. a) Splňuje uživatelské požadavky na informační obsah. Před návrhem databáze je třeba zjistit všechny požadavky uživatelů na informace a způsob jejich uchovávání. b) Zajišťuje integritu dat. Při tvorbě tabulek je nutné definovat atributy a omezení, které musí data splňovat. c) Poskytuje přirozenou, snadno pochopitelnou strukturu dat. Pokud databázi správně navrhneme, můžeme jednoduše formulovat srozumitelné operace s daty, které snižují pravděpodobnost uživatelských chyb. d) Vyhovuje uživatelským nárokům na výkon. Pokud s databází pracuje více uživatelů nebo je v ní obsaženo velké množství dat, každý nedostatek v návrhu databáze vystoupí velice rychle na povrch v podobě snížení výkonu.
3.3
Normalizace databáze
Databázi můžeme začít normalizovat až v okamžiku, kdy jsou definovány tabulky, sloupce a klíče. Tento postup lze použít na fyzický i logický datový model. Normalizace je založena na principu rozdělení tabulek na menší, za účelem rozdělení dat do souvisejících logických skupin. Proces normalizace je rozdělen do tří základních kroků, které jsou označovány jako první, druhá a třetí normální forma. 1. Eliminace opakujících se skupin atributů. 2. Eliminace sloupců částečně závislých na primárním klíči. 3. Eliminace sloupců tranzitivně závislých na primárním klíči.
Strana 18
3.4
3 Návrh datových struktur
Návrh struktury databáze
Podle výše uvedených pravidel byly navrženy struktury databáze. Hlavní důraz byl kladen na normalizaci tabulek tak, aby neobsahovaly redudantní informace. Následující tabulky definují jednotlivé entity systému. Pole atribut udává název atributu v tabulce, pole datový typ označuje název datového typu použitý v databázi Firebird.
PRODOM
Uzivatel
Stavy
Kuchař Počty Seznam
Norm1 Recept
Norm3
Kriticky bod Norm2 Jidelnicek
Sklady RejstrikVyKuch
VydejkaKuch
PocstavM
RejstrikVy
Vydejka
PocstavC
RejstrikPr
Prijemka
Rejstrik
Dodavatel
Karta
Zamek
Uzaverka
Obr. 3 Zjednodušené relační schéma databáze PRODOM (Sklady, Kuchař).
3 Návrh datových struktur
3.5
Domény
3.5.1
Popis systému domén
Strana 19
InterBase neumožňuje vytvářet nové datové typy, ale umožňuje vytvářet pojmenované skupiny vlastností spojených s existujícím datovým typem, který označujeme jako domény. Doménu lze pak použít při definici tabulek místo datového typu. Výhody použití domén: a) V případě, že má několik sloupců stejné charakteristiky, je použití domén podstatně přehlednější. b) Pokud změníme definici domény, automaticky se promítne do všech sloupců tabulky, které jsou z domény odvozené. c) Ve skutečnosti jsou u InterBase všechny sloupce tabulky interně popsány pomocí domén. Pokud není sloupec definován pomocí domén, vytvoří InterBase automaticky systémovou doménu, která je spojena s konkrétním sloupcem. To může mít za následek zpomalení celého systému. 3.5.2
Použité domény Název domény
Datový typ, omezení
POPIS
BLOB SUB_TYPE 0 SEGMENT SIZE 512
MENA
NUMERIC(7, 2)
MENA13
NUMERIC(13, 2)
CISLO
NUMERIC(7, 0)
CISLO52
NUMERIC(5, 2)
CISLO10
NUMERIC(10, 0)
CISLO104
NUMERIC(10, 0)
BOOLEAN
CHAR(1) CHARACTER SET WIN1250 DEFAULT 'F' CHECK(VALUE IN('T','F')) NULL
NOT
TEXT12
VARCHAR(12) CHARACTER SET WIN1250 COLLATE PXW_CSY
TEXT40
VARCHAR(40) CHARACTER SET WIN1250 COLLATE PXW_CSY
TEXT1
VARCHAR(1) CHARACTER SET WIN1250 COLLATE PXW_CSY
POPIS
BLOB SUB_TYPE TEXT SEGMENT SIZE 512 CHARACTER SET WIN1250;
MNOZSTVI
mnozstvi AS NUMERIC(6,3)
TEXT20
VARCHAR(20) CHARACTER SET WIN1250 COLLATE PXW_CSY Tab. 1: Tabulka domény.
Strana 20
3 Návrh datových struktur
3.6
Použité tabulky PRODOM
3.6.1
Tabulka Uzivatel
Tabulka Uzivatel, je společná pro všechny moduly systému PRODOM. Pokud má uživatel patřičná oprávnění, je schopen se přihlásit ke všem částem PRODOMU. Tato entita je tříděna podle primárního klíče IDUZIVATEL. Dále je omezena cizími klíči, jež jsou napojeny na tabulky, ve kterých se uchovává záznam o identifikaci uživatele.
Sloupec
Typ
Popis
IDUZIVATEL
CISLO
Unikátní identifikátor.
JMENO
TEXT20
Přihlašovací jméno uživatele.
HESLO
TEXT12
Heslo uložené v šifrované podobě.
TYPPOPIS
TEXT40
Popis uživatelského oprávnění.
TYPCISLO
CISLO
Typ uživatelského oprávnění.
MENIT
CISLO
Právo měnit heslo (popřípadě hesla).
UJMENO
TEXT40
Křestní jméno uživatele.
UPRIJMENI
TEXT40
Příjmení uživatele. Tab. 2: Tabulka Uzivatel. .
3.6.2
Tabulka Stavy
Tabulka Stavy obsahuje informace o stavu klienta nebo zaměstnance v domově (přítomen, nepřítomen, dovolená, nemocnice, náhlý odchod, apod.). Tato tabulka je napojena na další tabulky v PRODOMU, který tento stav upřesňuje. Zde tuto tabulku využívá modul Kuchař, ke zjištění počtu strávníků na jednotlivá jídla během dne. Primární klíč je IDSTAVU, OS A DATUM. Sloupec
Typ
Popis
IDSTAVU
CISLO
Unikátní identifikátor.
OS
CISLO
Unikátní identifikátor klienta nebo zaměstnance.
DATUM
DATE
Udává datum záznamu.
STAV
CISLO
Číslo udává stav přítomnosti v domově.
STRAVA
CISLO
Udává odebrání stravy. Tab. 3: Tabulka Stavy.
3.7
Použité tabulky Sklady
3.7.1
Tabulka Rejstrik
Tabulka Rejstrik je základní tabulkou modulu Sklady. Obsahuje seznam karet pro jednotlivé druhy skladu. Uchovává aktuální stav o zásobě a průměrné ceně. Pomocí této tabulky také hlídá maximální, minimální, povolenou minimální a maximální zásobu. Jsou zde použity cizí klíče dle obr. 4 a obr. 5. Primární klíč tvoří IDREJSTRIKU a CK.
3 Návrh datových struktur
Strana 21
Karta
PocstavM
IDKARTY TYP CK DATUM DOD DOKLAD PRIJEMM VYDEJM PRIJEMCB VYDEJCB PRIJEMCD VYDEJCD PRUMERNACB PRUMERNAD PRIJMOVACB PRIJMOVACD JEDNOTKA MMIN MMAX POVMIN POVMAX PRUMERCD PRUMERCB ZALOZENO ZASOBA DANTYDEN DEN CD
N N
Rejstrik 1
IDREJSTRIKU CK TYP NAZEV JEDNOTKA MMIN MMAX POVMIN POVMAX PRUMERCD PRUMERCB ZALOZENO ZASOBA DAN
1
PocstavC N
Uzaverka IDUZAVERKY TYP CK MESIC ROK ODD DOD
IDSTAVU CK TYP ROK M1 M2 M3 M4 M5 M6 M7 M8 M9 M10 M11 M12
N
Obr. 4 Detailní schéma datových struktur evidence karet.
IDSTAVU CK TYP ROK M1 M2 M3 M4 M5 M6 M7 M8 M9 M10 M11 M12
Strana 22
3 Návrh datových struktur
Norm1
Recept IDRECEPTU CR CK MNOZ VYDATNOST
N N
Rejstrik
Norm2 IDNORM CK VYDEJM VYDANO
1 N
Prijemka IDPRIJEMKY IDCP TYP CK PRIJEMCB PRIJEMCD PRIJMOVACB PRIJMOVACD PRIJEMM
N
IDREJSTRIKU CK TYP NAZEV JEDNOTKA MMIN MMAX POVMIN POVMAX PRUMERCD PRUMERCB ZALOZENO ZASOBA DAN
Norm3
1
Vydejka IDVYDEJKY IDVY TYP CK VYDAJOVACB VYDAJOVACD JEDNOTKACD JEDNOTKACB VYDEJM
IDNORM CK VYDEJM CR TYDEN DEN CD
N
Obr. 5 Detailní schéma datových struktur.
N
IDNORM CK VYDEJM
VydejkaKuch N
IDVYDEJKY IDVY TYP CK VYDAJOVACB VYDAJOVACD JEDNOTKACD JEDNOTKACB VYDEJM UPRAVA
3 Návrh datových struktur Sloupec
Strana 23 Typ
Popis
IDREJSTRIKU
CISLO
Unikátní identifikátor.
CK
CISLO
Unikátní identifikátor klienta nebo zaměstnance.
TYP
TEXTTYP
Určuje typ skladu.
NAZEV
CISLO
Číslo udává stav přítomnosti v domově.
JEDNOTKA
CISLO
Udává odebrání stravy.
MMIN
MNOZSTVI
Minimální obrat na kartě.
MMAX
MNOZSTVI
Maximální obrat na kartě.
POVMIN
MNOZSTVI
Povolená minimální zásoba na kartě.
POVMAX
MNOZSTVI
Povolená maximální zásoba na kartě.
PRUMERCD
MENA
Průměrná cena s daní.
PRUMERCB
MENA
Průměrná cena bez daně.
ZALOZENO
DATE
Datum založení karty.
ZASOBA
MNOZSTVI
Aktuální zásoba na kartě.
DAN
CISLO
Sazba DPH. Tab. 4: Tabulka Rejstrik.
3.7.2
Tabulka Karta
Obsahuje pohyby zásob na jednotlivých kartách. Je relačně propojená s tabulkou Rejstrik pomocí cizího klíče sloupce CK. Využívá vztahu 1:N, kde nadřazená je Rejstřík a podřízená je tabulce Karta. Dále je pomocí sloupce DOD spojena s tabulkou Dodavatel, kde v případě příjmu na kartu uchovává, odkud bylo zboží přijato. Toto spojení je opět zabezpečeno pomocí cizího klíče. Díky sloupci TYP je tato tabulka společná pro všechny sklady. Primární klíč je zde sloupec IDKARTY. Sloupec
Typ
Popis
IDKARTY
CISLO
Unikátní identifikátor.
TYP
CISLO
Typ skladu (nabývá hodnot 1–8).
CK
CISLO
Číslo karty, indentifikace karty v REJSTRIKU.
DATUM
DATE
Datum pořízení záznamu.
DOD
CISLO
Identifikátor dodavatele.
DOKLAD
VARCHAR(8) CHARACTER WIN1250
Číslo dokladu. SET
PRIJEMM
MNOZSTVI
Příjem množství.
VYDEJM
MNOZSTVI
Výdej množství.
PRIJEMCB
MENA
Celkový příjem v Kč bez DPH.
VYDEJCB
MENA
Celkový výdej v Kč bez DPH.
PRIJEMCD
MENA
Celkový příjem v Kč s DPH.
VYDEJCD
MENA
Celkový výdej v Kč s DPH.
Strana 24
3 Návrh datových struktur
Sloupec
Typ
Popis
PRUMERNACB MENA
Průměrná cena bez DPH.
PRUMERNAD
MENA
Průměrná cena s DPH.
PRIJMOVACB
MENA
Příjmová cena bez DPH.
PRIJMOVACD
MENA
Příjmová cena s DPH. Tab. 5: Tabulka Karta.
3.7.3
Tabulka PocstavM
Obsahuje počáteční stavy zásob pro jednotlivé karty za časové období. Je relačně spojena s tabulkou Rejstrik pomocí cizího klíče sloupce CK. Opět využívá vztahu 1:N. Primární klíč je IDSTAVU, CK, TYP a ROK. Jeden řádek tabulky představuje jeden rok, ve kterém jsou uloženy počáteční stavy pro každý měsíc. Sloupec
Typ
Popis
IDSTAVU
CISLO
Unikátní identifikátor.
CK
CISLO
Číslo karty v rejstříku.
TYP
TEXTTYP
Typ skladu.
ROK
NUMERIC(4, NULL
M1
MNOZSTVI
Počáteční zásoba za měsíc leden.
M2
MNOZSTVI
Počáteční zásoba za měsíc únor.
M3
MNOZSTVI
Počáteční zásoba za měsíc březen.
M4
MNOZSTVI
Počáteční zásoba za měsíc duben.
M5
MNOZSTVI
Počáteční zásoba za měsíc květen.
M6
MNOZSTVI
Počáteční zásoba za měsíc červen.
M7
MNOZSTVI
Počáteční zásoba za měsíc červenec.
M8
MNOZSTVI
Počáteční zásoba za měsíc srpen.
M9
MNOZSTVI
Počáteční zásoba za měsíc září.
M10
MNOZSTVI
Počáteční zásoba za měsíc říjen.
M11
MNOZSTVI
Počáteční zásoba za měsíc listopad.
M12
MNOZSTVI
Počáteční zásoba za měsíc prosinec.
0)
NOT Rok, ve kterém byl záznam pořízen.
Tab. 6: Tabulka PocstavM.
3.7.4
Tabulka PocstavC
Obsahuje počáteční peněžní hodnotu jednotlivé karty za jednotlivé měsíce. Má stejné vlastnosti jako předchozí tabulka, ale místo množství eviduje peněžní částku.
3 Návrh datových struktur Sloupec
Strana 25 Typ
Popis
IDSTAVU
CISLO
Unikátní identifikátor tabulky.
CK
CISLO
Číslo karty v rejstříku.
TYP
TEXTTYP
Typ skladu.
ROK
NUMERIC(4, NULL
M1
MNOZSTVI
Počáteční částka za měsíc leden.
M2
MNOZSTVI
Počáteční částka za měsíc únor.
M3
MNOZSTVI
Počáteční částka za měsíc březen.
M4
MNOZSTVI
Počáteční částka za měsíc duben.
M5
MNOZSTVI
Počáteční částka za měsíc květen.
M6
MNOZSTVI
Počáteční částka za měsíc červen.
M7
MNOZSTVI
Počáteční částka za měsíc červenec.
M8
MNOZSTVI
Počáteční částka za měsíc srpen.
M9
MNOZSTVI
Počáteční částka za měsíc září.
M10
MNOZSTVI
Počáteční částka za měsíc říjen.
M11
MNOZSTVI
Počáteční částka za měsíc listopad.
M12
MNOZSTVI
Počáteční částka za měsíc prosinec.
0)
NOT Rok, ve kterém byl záznam pořízen.
Tab. 7: Tabulka PocstavC. 3.7.5
Tabulka Uzaverka
Na konci každého měsíce se v ní uloží součty příjmů a výdajů na kartách. Je spojena pomocí cizího klíče, přes pole CK s tabulkou Rejstrik. Umožňuje v programu tisknout měsíční inventury. Je opět společná pro všechny sklady. Primární klíč je zde sloupec TYP, MESIC, ROK a CK. Sloupec
Typ
Popis
IDUZAVERKY CISLO
Unikátní identifikátor.
TYP
CISLO
Typ skladu.
CK
CISLO
Číslo karty v rejstříku.
MESIC
CISLO
Měsíc provedení uzávěrky.
ROK
CISLO
Rok provedení uzávěrky.
ODD
DATE
Rezervní pole pro budoucnost. Mělo by obsahovat datum, odkdy se počítá karta.
DOD
DATE
Rezervní pole pro budoucnost. Mělo by obsahovat datum, dokdy se počítá karta.
POCCB
MENA
Počáteční stav na kartě bez DPH.
POCCD
MENA
Počáteční stav na kartě s DPH.
POCMD
MENA
Počáteční stav na kartě množství.
PRIJEMM
MNOZSTVI
Příjem množství.
Strana 26
3 Návrh datových struktur
Sloupec
Typ
Popis
VYDEJM
MNOZSTVI
Výdej množství.
ZUSTATKM
MNOZSTVI
Zůstatek množství.
PRIJEMCB
MENA
Příjem cena bez DPH.
VYDEJCB
MENA
Výdej cena bez DPH.
ZUSTATEKCB
MENA
Zůstatek cena bez DPH.
PRIJEMCD
MENA
Příjem cena s DPH.
VYDEJCD
MENA
Výdej cena s DPH.
ZUSTATEKCD MENA
Zůtatek cena s DPH. Tab. 8: Tabulka Uzaverka.
3.7.6
Tabulka Zamek
Tato tabulka slouží k uzamykání zápisu do karet. Po uzamčení období nelze vytvářet příjemky nebo výdejky. Primární klíč je zde ROK, MESIC, TYP. Sloupec
Typ
Popis
ROK
CISLO
Rok, ve kterém je zámek aplikován.
MESIC
CISLO
Měsíc, ve kterém je zámek aplikován.
TYP
DATE
Typ skladu.
ZAMCENO
BOOLEAN
Stav zámku (zamčeno/odemčeno). Tab. 9: Tabulka Zamek.
3.7.7
Tabulka Dodavatel
Obsahuje seznam všech dodavatelů, u kterých se evidují všechny základní informace. Primární klíč je zde IDDOD, prostřednictvím kterého je spojen s tabulkou RejstrikPr. Sloupec
Typ
Popis
IDDOD
CISLO
Unikátní identifikátor.
NAZEV
TEXT40
Název dodavatele.
ULICE
TEXT40
Ulice dodavatele.
MESTO
TEXT40
Město dodavatele.
PSC
VARCHAR(6) CHARACTER WIN1250
Směrovací číslo dodavatele. SET
TEL
TEXT12
Telefon dodavatele.
TEL2
TEXT12
Telefon dodavatele.
MOBIL
TEXT12
Mobilní telefon dodavatele.
FAX
TEXT12
Fax dodavatele.
3 Návrh datových struktur Sloupec
Strana 27 Typ
Popis
EMAIL
TEXT20
Email dodavatele.
WEB
TEXT20
Internetové stránky dodavatele.
DIC
VARCHAR(10) CHARACTER WIN1250
SET
VARCHAR(8) CHARACTER WIN1250
SET
ICO
UCET
TEXT20
Daňové identifikační číslo dodavatele.
Identifikační číslo dodavatele.
Bankovní účet dodavatele. Tab. 10: Tabulka Dodavatel.
3.7.8
Tabulka Prijemka
Příjemka je sekundární tabulka vůči tabulce RejstrikPr, se kterou je svázaná typem 1:N pomocí sloupce IDCP. Dále je spojena pomocí cizího klíče s tabulkou Rejstřík pomocí sloupce CK. Obsahuje příjmovou cenu s DPH i příjmovou cenu bez DPH. Dalo by se namítnout, že je zbytečné evidovat příjmovou cenu s DPH i bez DPH, ale praxe ukázala, že je takto použitá evidence cen nezbytná. V případě zadání totiž ceny např. bez DPH a následným výpočtem ceny s DPH nemusí souhlasit s fakturou od dodavatele. Primární klíč je zde použit sloupec IDPRIJEMKY.
Sloupec
Typ
Popis
IDPRIJEMKY
CISLO
Unikátní identifikátor v tabulce příjemka.
IDCP
CISLO
Unikátní identfikátor příjemky.
TYP
TYP
Typ skladu.
CK
CISLO
Číslo karty.
PRIJEMCB
MENA
Příjem celkem bez DPH.
PRIJEMCD
MENA
Příjem celkem s DPH.
PRIJMOVACB
MENA
Příjmová cena bez DPH.
PRIJMOVACD
MENA
Příjmová cena s DPH.
PRIJEMM
MNOZSTVI
Příjem množství. Tab. 11: Tabulka Prijemka.
Strana 28 3.7.9
3 Návrh datových struktur
Tabulka RejstrikPr
Tabulka RejstrikPr eviduje příjemky do skladu. Je primární tabulkou vůči předchozí tabulce. Eviduje dodavatele, datum vytvoření příjemky, číslo dokladu, který je použitý při zápisu na karty. Dále pak celkovou cenu příjemky bez DPH i s DPH a zda byla již příjemka připsána na karty. Primární klíč je zde IDCP. Použití cízích klíčů popisuje obr. 6.
Sloupec
Typ
Popis
IDCP
CISLO
Unikátní identifikátor.
TYP
TYP
Typ skladu.
DATUM
DATE
Datum vytvoření příjemky.
CENAD
MENA
Celková cena s DPH.
CENAB
MENA
Celková cena bez DPH.
VYDANO
BOOLEAN
Určuje zda byla příjemka připsána.
DOD
CISLO
Kód dodavatele.
PORCISLO
CISLO
Číslo příjemky pro daný rok. Tab. 12: Tabulka Prijemka.
Prijemka IDPRIJEMKY IDCP TYP CK PRIJEMCB PRIJEMCD PRIJMOVACB PRIJMOVACD PRIJEMM
RejstrikPr
N 1
IDCP TYP DATUM CENAD CENAB VYDANO DOD PORCISLO
Dodavatel 1
N
Obr. 6 Detailní schéma tabulky RejstrikPr.
IDDOD NAZEV ULICE MESTO PSC TEL TEL2 MOBIL FAX EMAIL WEB DIC ICO UCET
3 Návrh datových struktur
Strana 29
3.7.10 Tabulka Vydejka Tabulka Vydejka je navržena na stejném principu jako tabulka Prijemka, avšak eviduje výdaje. Je tedy svázána pomocí cizího klíče s tabulkou RejstrikVy a Rejstrik. Primární klíč je zde IDVYDEJKY.
Sloupec
Typ
Popis
IDVYDEJKY
CISLO
Unikátní identifikátor.
IDVY
CISLO
Unikátní identfikátor příjemky.
TYP
TYP
Typ skladu.
CK
CISLO
Číslo karty.
VYDAJOVACB MENA
Výdej celkem bez DPH.
VYDAJOVACD MENA
Výdej celkem s DPH.
JEDNOTKACD MENA
Výdajová cena s DPH.
JEDNOTKACB MENA
Výdajová cena bez DPH.
VYDEJM
Výdej množství.
MNOZSTVI
Tab. 13: Tabulka Vydejka.
3.7.11 Tabulka RejstrikVy Tabulka RejstrikVy eviduje výdejky ze všech skladů. Můžeme zde také tvořit výdejku ze skladu potravin, přestože většina výdejek ze skladu potravin bude tvořena v tabulce RejstrikVyKuch. Je opět navržena na stejném principu jako RestrikPr, ale neobsahuje pole pro evidenci dodavatelů. Primární klíč má sloupce IDCV. Použití cízích klíčů popisuje obr. 7.
Sloupec
Typ
Popis
IDCV
CISLO
Unikátní identifikátor.
TYP
TYP
Typ skladu.
DATUM
DATE
Datum vytvoření příjemky.
CENAD
MENA
Celková cena s DPH.
CENAB
MENA
Celková cena bez DPH.
VYDANO
BOOLEAN
Určuje, zda byla příjemka vydána.
PORCISLO
CISLO
Číslo příjemky pro daný rok. Tab. 14: Tabulka RejstrikVy.
Strana 30
3 Návrh datových struktur
Vydejka
RejstrikVy
IDVYDEJKY IDVY TYP CK VYDAJOVACB VYDAJOVACD JEDNOTKACD JEDNOTKACB VYDEJM
1 N
IDCV TYP DATUM CENAD CENAB VYDANO PORCISLO
Obr. 7 Detailní schéma tabulky RejstrikVy.
3.7.12 Tabulka VydejkaKuch Tabulka VydejkaKuch je shodná s tabulkou Vydejka, navíc obsahuje sloupec Uprava. Je opět svázána pomocí cizího klíče s tabulkou RejstrikVyKuch a Rejstrik. Primární klíčem je zde sloupec IDVYDEJKY.
Sloupec
Typ
Popis
IDVYDEJKY
CISLO
Unikátní identifikátor.
IDVY
CISLO
Unikátní identifikátor výdejky.
TYP
TYP
Typ skladu.
CK
CISLO
Číslo karty.
VYDAJOVACB MENA
Výdej celkem bez DPH.
VYDAJOVACD MENA
Výdej celkem s DPH.
JEDNOTKACD MENA
Výdajová cena s DPH.
JEDNOTKACB MENA
Výdajová cena bez DPH.
VYDEJM
MNOZSTVI
Výdej množství od kuchaře.
UPRAVA
MNOZSTVI
Upravený výdej množství, který upraví skladní. Tab. 15: Tabulka VydejkaKuch.
3.7.13 Tabulka RejstrikVyKuch Tabulka RejstrikVyKuch eviduje výdejky ze skladu, které pocházejí od kuchaře. Zde se výdejka nevytváří, pouze se upravuje. Použití cízích klíčů popisuje obr. 8. Primární klíč je sloupec IdCV.
3 Návrh datových struktur
Strana 31
Sloupec
Typ
Popis
IDCV
CISLO
Unikátní identifikátor.
TYP
TYP
Typ skladu.
DATUM
DATE
Datum vytvoření příjemky.
CENAD
MENA
Celková cena s DPH.
CENAB
MENA
Celková cena bez DPH.
VYDANO
BOOLEAN
Určuje, zda byla příjemka vydána.
PORCISLO
CISLO
Číslo příjemky pro daný rok. Tab. 16: Tabulka RejstrikVyKuch.
VydejkaKuch IDVYDEJKY IDVY TYP CK VYDAJOVACB VYDAJOVACD JEDNOTKACD JEDNOTKACB VYDEJM UPRAVA
RejstrikVyKuch 1 N
IDCV TYP DATUM CENAD CENAB VYDANO PORCISLO
Obr. 8 Detailní schéma tabulky RejstrikVyKuch.
3.8
Použité tabulky Kuchař
3.8.1
Tabulka Seznam
Tabulka Seznam eviduje seznam receptů. Tato tabulka je svázána s tabulkou Recept, kde tabulka Seznam je primární tabulka a tabulka Recept je sekundární tabulka. Použití cízích klíčů popisuje obr. 9. Primární klíč je CR.
Sloupec
Typ
Popis
CR
CISLO
Unikátní identifikátor.
NAZEV
TEXT40
Název receptu.
POCET
MNOZSTVI
Udává, na kolik jídel je recept normován.
DIETA
CISLO
Rezervní pole. Tab. 17: Tabulka Seznam.
Strana 32
3 Návrh datových struktur
KritickyBod
Seznam 1
IDKRITICKYB OD CR KRITBOD
1
CR NAZEV POCET DIETA
Recept 1
N
IDRECEPTU CR CK MNOZ VYDATNOST
Obr. 9 Detailní schéma tabulky Seznam. 3.8.2
Tabulka Recept
Tabulka Recept eviduje suroviny v receptu. Tyto suroviny bere z rejstříku karet skladu potravin. Primární klíč je CR.
Sloupec
Typ
Popis
IDRECEPTU
CISLO
Unikátní identifikátor.
CR
CISLO
Číslo receptu.
CK
CISLO
Číslo karty.
MNOZ
MNOZSTVI
Množství suroviny.
VYDATNOST
MNOZSTVI
Nutriční hodnota suroviny. Tab. 18: Tabulka Recept.
3.8.3
Tabulka KritickyBod
Tabulka KritickyBod eviduje kritické body při přípravě stravy. Je spojena pomocí cizího klíče s tabulkou Seznam. Primární klíč je zde IDKRITICKYBOD.
Sloupec
Typ
Popis
IDKRITICKYBOD CISLO
Unikátní identifikátor.
CR
TEXT40
Číslo receptu.
KRITBOD
POPIS
Textové pole, kde lze popsat kritický bod. Tab. 19: Tabulka KritickyBod.
3 Návrh datových struktur 3.8.4
Strana 33
Tabulka Norm1
Používá se k normování stravy. Obsahuje rozpis surovin a jejich množství na jednotlivé recepty. Mohou se v ní opakovat suroviny pro jednotlivé dny. Primární klíč je zde IDNORM. Je spojena pomocí cizího klíče s tabulkou Rejstrik.
Sloupec
Typ
Popis
IDNORM
CISLO
Unikátní identifikátor.
CK
CISLO
Číslo karty.
VYDEJM
MNOZSTVI
Výdej množství dle receptu.
CR
CISLO
Číslo receptu, ze kterého byla položka vytvořena.
TYDEN
CISLO
Týden, ve kterém byla norma vytvořena.
DEN
CHAR(2) CHARACTER Den, ve kterém byla norma vytvořena. SET WIN1250
CD
CHAR(2) CHARACTER Část dne, ve kterém SET WIN1250 (SN,PR,OB,SV,VE).
byla
norma
vytvořena
Tab. 20: Tabulka Norma1. 3.8.5
Tabulka Norm2
Používá se k normování stravy. Obsahuje rozpis surovin a jejich množství na jednotlivé recepty v souhrnu na celý den. Suroviny budou vygenerovány tak, aby se neopakovaly pro jeden den. Uživatel však může ručně přidat surovinu, která je již v normě na daný den obsažena. Primární klíč je zde IDNORM. Je spojena pomocí cizího klíče s tabulkou Rejstrik.
Sloupec
Typ
Popis
IDNORM
CISLO
Unikátní identifikátor.
CK
CISLO
Číslo karty.
VYDEJM
MNOZSTVI
Výdej množství dle receptu.
VYDANO
BOOLEAN
Odeslání normy do skladu. Tab. 21: Tabulka Norma2.
3.8.6
Tabulka Norm3
Používá se k normování stravy. Obsahuje rozpis surovin a jejich množství na jednotlivé recepty podle druhu jídla (snídaně, přesnídávka, oběd, svačina a večeře). Suroviny budou vygenerovány tak, aby se neopakovaly v jednotlivých částech dne. Primární klíč je zde IDNORM. Tabulka je spojena pomocí cizího klíče s tabulkou Rejstrik.
Strana 34
3 Návrh datových struktur
Sloupec
Typ
Popis
IDNORM
CISLO
Unikátní identifikátor.
CK
CISLO
Číslo karty.
VYDEJM
MNOZSTVI
Výdej množtství dle receptu. Tab. 22: Tabulka Norma3.
3.8.7
Tabulka Pocty
Slouží k evidenci počtů strávníků pro jednotlivé dny a typy jídel. Je rozdělena na obyvatele, zaměstnance a cizí strávníky. Také eviduje, zda obyvatelé odeberou stravu nebo balíček. Aktuální stav obyvatel získává z ostatních částí systému PRODOM. Slouží také pro výstup údajů o počtu odebrané stravy. Primární klíč je zde IDPOCTY.
Sloupec
Typ
Popis
IDPOCTY
CISLO
Unikátní identifikátor.
A1
MNOZSTVI
Obyvatelé strava dieta 3.
A2
MNOZSTVI
Obyvatelé strava dieta 4.
A3
MNOZSTVI
Obyvatelé strava dieta 9.
A4
MNOZSTVI
Obyvatelé strava dieta 9/4.
BALA1
MNOZSTVI
Obyvatelé balíček dieta 3.
BALA2
MNOZSTVI
Obyvatelé balíček dieta 4.
BALA3
MNOZSTVI
Obyvatelé balíček dieta 9.
BALA4
MNOZSTVI
Obyvatelé balíček dieta 9/4.
BC1
MNOZSTVI
Zaměstnanci celodenní strava dieta 3.
BC2
MNOZSTVI
Zaměstnanci celodenní strava dieta 4.
BC3
MNOZSTVI
Zaměstnanci celodenní strava dieta 9.
BC4
MNOZSTVI
Zaměstnanci celodenní strava dieta 9/4.
BF1
MNOZSTVI
Civilní služba celodenní strava dieta 3.
BF2
MNOZSTVI
Civilní služba celodenní strava dieta 4.
BF3
MNOZSTVI
Civilní služba celodenní strava dieta 9.
BF4
MNOZSTVI
Civilní služba celodenní strava dieta 9/4.
BO1
MNOZSTVI
Zaměstnanci oběd dieta 3.
BO2
MNOZSTVI
Zaměstnanci oběd dieta 4.
BO3
MNOZSTVI
Zaměstnanci oběd dieta 9.
BO4
MNOZSTVI
Zaměstnanci oběd dieta 9/4.
BV1
MNOZSTVI
Zaměstnanci večeře dieta 3.
BV2
MNOZSTVI
Zaměstnanci večeře dieta 4.
BV3
MNOZSTVI
Zaměstnanci večeře dieta 9.
3 Návrh datových struktur Sloupec
Strana 35 Typ
Popis
BV4
MNOZSTVI
Zaměstnanci večeře dieta 9/4.
C1
MNOZSTVI
Ostatní strávníci oběd dieta 3.
C2
MNOZSTVI
Ostatní strávníci oběd dieta 4.
C3
MNOZSTVI
Ostatní strávníci oběd dieta 9.
C4
MNOZSTVI
Ostatní strávníci oběd dieta 9/4.
PAC
MENA
Cena pro obyvatele žlučníková strava.
PAD
MENA
Cena pro obyvatele diabetická strava.
PAN
MENA
Cena pro obyvatele dieta 3.
PBCD
MENA
Cena pro zaměstnance diabetická strava.
PBCN
MENA
Cena pro zaměstnance normální strava.
PBFD
MENA
Cena pro civilní službu diabetická strava.
PBFN
MENA
Cena pro civilní službu normální strava.
PBOD
MENA
Cena pro zaměstnance oběd diabetická strava.
PBON
MENA
Cena pro zaměstnance oběd normální strava.
PBVD
MENA
Cena pro zaměstnance večeře diabetická strava.
PBVN
MENA
Cena pro zaměstnance večeře normální strava.
P2AC
MENA
Cena celkem pro obyvatele žlučníková strava.
P2AD
MENA
Cena celkem pro obyvatele diabetická strava.
P2AN
MENA
Cena celkem pro obyvatele dieta 3.
P2BCD
MENA
Cena celkem pro zaměstnance diabetická strava.
P2BCN
MENA
Cena celkem pro zaměstnance normální strava.
P2BFD
MENA
Cena celkem pro civilní službu diabetická strava.
P2BFN
MENA
Cena celkem pro civilní službu normální strava.
P2BOD
MENA
Cena celkem pro zaměstnance oběd diabetická strava.
P2BON
MENA
Cena celkem pro zaměstnance oběd normální strava.
P2BVD
MENA
Cena celkem pro zaměstnance večeře diabetická strava.
P2BVN
MENA
Cena celkem pro zaměstnance večeře normální strava.
P2CD
MENA
Cena celkem cizí strávníci diabetická strava.
P2CELKEM
MENA
Celkem cena za všechny.
P2CN
MENA
Cena celkem cizí strávníci normální.
PCD
MENA
Cena cizí strávníci diabetická.
PCELKEM
MENA
Celkem cena za všechny jednotlivě.
PCN
MENA
Cena cizí strávníci normální.
BVD
MNOZSTVI
Celkem zaměstnanci večeře strava dietní.
BVN
MNOZSTVI
Celkem zaměstnanci večeře strava normální.
Strana 36
3 Návrh datových struktur
Sloupec
Typ
Popis
CD
MNOZSTVI
Celkem dietní strava.
CN
MNOZSTVI
Celkem normální strava.
AC
MNOZSTVI
Počet jídel obyvatel dieta 4 strava.
AD
MNOZSTVI
Počet jídel obyvatel dietní strava.
AN
MNOZSTVI
Počet jídel obyvatel dieta 3 strava.
BCD
MNOZSTVI
Celkem zaměstnanci celodenní strava dietní.
BCN
MNOZSTVI
Celkem zaměstnanci celodenní strava normální.
BOD
MNOZSTVI
Celkem zaměstnanci oběd strava dietní.
BON
MNOZSTVI
Celkem zaměstnanci oběd strava normální.
BFD
MNOZSTVI
Celkem civilní služba strava dietní.
BFN
MNOZSTVI
Celkem civilní služba strava normální. Tab. 23: Tabulka Pocty.
3.8.8
Tabulka Jidelnicek
Používá se k normování stravy. Obsahuje rozpis surovin a jejich množství na jednotlivé recepty podle druhu jídla (snídaně, přesnídávka, oběd, svačina a večeře). Suroviny budou vygenerovány tak, aby se neopakovaly pro jednotlivé části dne. Primární klíč je zde IDNORM. Tabulka Jidelnicek nebyla rozdělena na více navzájem provázaných tabulek s ohledem na použité komponenty při tvorbě klienta, který bude s databází spolupracovat. Sloupec
Typ
Popis
IDJIDELNICEK CISLO
Unikátní identifikátor.
TYDEN
CISLO
Týden pro jídelníček.
DATUM
DATE
Datum jídelníčku.
DEN
CHAR(2) CHARACTER Den v jídelníčku (po, ut, st, ct, pa, so, ne). SET WIN1250
NOR
BOOLEAN
Nanormovaný jídelníček.
PROROK
CISLO
Rok, ve kterém byl jídelníček vytvořen.
SN1A
MNOZSTVI
Recept snídaně dieta 3.
SN1B
MNOZSTVI
Recept snídaně dieta 3.
SN1
MNOZSTVI
Počet snídaně dieta 3.
SN2A
MNOZSTVI
Recept snídaně dieta 4.
SN2B
MNOZSTVI
Recept snídaně dieta 4.
SN2
MNOZSTVI
Počet snídaně dieta 4.
SN3A
MNOZSTVI
Recept snídaně dieta 9.
SN3B
MNOZSTVI
Recept snídaně dieta 9.
SN3
MNOZSTVI
Počet snídaně dieta 9.
3 Návrh datových struktur Sloupec
Strana 37 Typ
Popis
SN4A
MNOZSTVI
Recept snídaně dieta 9/4.
SN4B
MNOZSTVI
Recept snídaně dieta 9/4.
SN4
MNOZSTVI
Počet snídaně dieta 9/4.
SN5A
MNOZSTVI
Rezevní pole.
SN5B
MNOZSTVI
Rezevní pole.
SN5
MNOZSTVI
Rezevní pole.
PR1A
MNOZSTVI
Recept přesnídávka dieta 3.
PR1B
MNOZSTVI
Recept přesnídávka dieta 3.
PR1
MNOZSTVI
Počet přesnídávka dieta 3.
PR2A
MNOZSTVI
Recept přesnídávka dieta 4.
PR2B
MNOZSTVI
Recept přesnídávka dieta 4.
PR2
MNOZSTVI
Počet přesnídávka dieta 4.
PR3A
MNOZSTVI
Recept přesnídávka dieta 9.
PR3B
MNOZSTVI
Recept přesnídávka dieta 9.
PR3
MNOZSTVI
Počet přesnídávka dieta 9.
PR4A
MNOZSTVI
Recept přesnídávka dieta 9/4.
PR4B
MNOZSTVI
Recept přesnídávka dieta 9/4.
PR4
MNOZSTVI
Počet přesnídávka dieta 9/4.
PR5A
MNOZSTVI
Rezevní pole.
PR5B
MNOZSTVI
Rezevní pole.
PR5
MNOZSTVI
Rezevní pole.
OB1A
MNOZSTVI
Recept oběd dieta 3.
OB1B
MNOZSTVI
Recept oběd dieta 3.
OB1C
MNOZSTVI
Recept oběd dieta 3.
OB1D
MNOZSTVI
Recept oběd dieta 3.
OB1
MNOZSTVI
Počet oběd dieta 3.
OB2A
MNOZSTVI
Recept oběd dieta 4.
OB2B
MNOZSTVI
Recept oběd dieta 4.
OB2C
MNOZSTVI
Recept oběd dieta 4.
OB2D
MNOZSTVI
Recept oběd dieta 4.
OB2
MNOZSTVI
Počet oběd dieta 4.
OB3A
MNOZSTVI
Recept oběd dieta 9.
OB3B
MNOZSTVI
Recept oběd dieta 9.
OB3C
MNOZSTVI
Recept oběd dieta 9.
OB3D
MNOZSTVI
Recept oběd dieta 9.
OB3
MNOZSTVI
Počet oběd dieta 9.
Strana 38 Sloupec
3 Návrh datových struktur Typ
Popis
OB4A
MNOZSTVI
Recept oběd dieta 9/4.
OB4B
MNOZSTVI
Recept oběd dieta 9/4.
OB4C
MNOZSTVI
Recept oběd dieta 9/4.
OB4D
MNOZSTVI
Recept oběd dieta 9/4.
OB4
MNOZSTVI
Počet oběd dieta 9/4.
OB5A
MNOZSTVI
Rezervní pole.
OB5B
MNOZSTVI
Rezervní pole.
OB5C
MNOZSTVI
Rezervní pole.
OB5D
MNOZSTVI
Rezervní pole.
OB5
MNOZSTVI
Rezervní pole.
SV1A
MNOZSTVI
Recept svačina dieta 3.
SV1B
MNOZSTVI
Recept svačina dieta 3.
SV1
MNOZSTVI
Počet svačina dieta 3.
SV2A
MNOZSTVI
Recept svačina dieta 4.
SV2B
MNOZSTVI
Recept svačina dieta 4.
SV2
MNOZSTVI
Počet svačina dieta 4.
SV3A
MNOZSTVI
Recept svačina dieta 9.
SV3B
MNOZSTVI
Recept svačina dieta 9.
SV3
MNOZSTVI
Počet svačina dieta 9.
SV4A
MNOZSTVI
Recept svačina dieta 9/4.
SV4B
MNOZSTVI
Recept svačina dieta 9/4.
SV4
MNOZSTVI
Počet svačina dieta 9/4.
SV5A
MNOZSTVI
Rezervní pole.
SV5B
MNOZSTVI
Rezervní pole.
SV5
MNOZSTVI
Rezervní pole.
VC1A
MNOZSTVI
Recept večeře dieta 3.
VC1B
MNOZSTVI
Recept večeře dieta 3.
VC1C
MNOZSTVI
Recept večeře dieta 3.
VC1D
MNOZSTVI
Recept večeře dieta 3.
VC1
MNOZSTVI
Počet večeře dieta 3.
VC2A
MNOZSTVI
Recept večeře dieta 4.
VC2B
MNOZSTVI
Recept večeře dieta 4.
VC2C
MNOZSTVI
Recept večeře dieta 4.
VC2D
MNOZSTVI
Recept večeře dieta 4.
VC2
MNOZSTVI
Počet večeře dieta 4.
VC3A
MNOZSTVI
Recept večeře dieta 9.
3 Návrh datových struktur Sloupec
Strana 39 Typ
Popis
VC3B
MNOZSTVI
Recept večeře dieta 9.
VC3C
MNOZSTVI
Recept večeře dieta 9.
VC3D
MNOZSTVI
Recept večeře dieta 9.
VC3
MNOZSTVI
Počet večeře dieta 9.
VC4A
MNOZSTVI
Recept večeře dieta 9/4.
VC4B
MNOZSTVI
Recept večeře dieta 9/4.
VC4C
MNOZSTVI
Recept večeře dieta 9/4.
VC4D
MNOZSTVI
Recept večeře dieta 9/4.
VC4
MNOZSTVI
Počet večeře dieta 9/4.
VC5A
MNOZSTVI
Rezervní pole.
VC5B
MNOZSTVI
Rezervní pole.
VC5C
MNOZSTVI
Rezervní pole.
VC5D
MNOZSTVI
Rezervní pole.
VC5
MNOZSTVI
Rezervní pole.
DV1A
MNOZSTVI
Recept druhá večeře dieta 3.
DV1B
MNOZSTVI
Recept druhá večeře dieta 3.
DV1
MNOZSTVI
Počet druhá večeře dieta 3.
DV2A
MNOZSTVI
Recept druhá večeře dieta 4.
DV2B
MNOZSTVI
Recept druhá večeře dieta 4.
DV2
MNOZSTVI
Počet druhá večeře dieta 4.
DV3A
MNOZSTVI
Recept druhá večeře dieta 9.
DV3B
MNOZSTVI
Recept druhá večeře dieta 9.
DV3
MNOZSTVI
Počet druhá večeře dieta 9.
DV4A
MNOZSTVI
Recept druhá večeře dieta 9/4.
DV4B
MNOZSTVI
Recept druhá večeře dieta 9/4.
DV4
MNOZSTVI
Počet druhá večeře dieta 9/4.
DV5A
MNOZSTVI
Rezervní pole.
DV5B
MNOZSTVI
Rezervní pole.
DV5
MNOZSTVI
Rezervní pole. Tab. 24: Tabulka Jidelnicek.
3.9
Generátory a Triggery
Generátor je pojmenovaný objekt uložený v databázi, který uchovává nejvyšší doposud použitou číselnou hodnotu Generátoru. Generátor nemá žádnou přímou vazbu na sloupec tabulky nejsou tedy do nových řádků vkládány automaticky. Ke zvyšování hodnoty Generátoru slouží InterBase Trigger, který představuje událost, jež nastane na serveru. Zde nás zajímá událost před vložením nového záznamu. Použití Triggeru je zde nevhodné, protože pokud ho použijeme na sloupec, který má vlastnost not null, tak klient nedokáže
Strana 40
3 Návrh datových struktur
zjistit, že už je tato hodnota automaticky vyplněna a nenechá tento záznam vytvořit. Dala by se vypnout kontrola u klienta na vyplnění pole, ale tento postup není vhodný, poněvadž by mohl vést k nepředvídatelným problémům. Delphi umožňují napojit se na Generátor přímo, takže Triggery na serveru nahradíme v klientské aplikaci. Tento postup je bez problémů, protože klient zná ID záznamu před jeho zasláním a může jej snadno vložit do datové mřížky a korektně provádět operaci refresch.
Obr. 10 Použití Generátoru v Delphi.
Pro každou tabulku byl vytvořen jeden Generátor, který zajišťuje jedinečnost záznamu v tabulce. Pomocí tohoto jedinečného identifikátoru je možnost později pomocí SQL tento záznam smazat nebo upravit.
Název generátoru
Tabulka
GENUZIVATEL
Uzivatel
GENSTAVY
Stavy
GENSEZNAM
Seznam
GENPOCTY
Pocty
GENRECEPT
GenRecept
GENNORMA1
Norma1
GENNORMA2
Norma2
GENNORMA3
Norma3
GENJIDELNICEK
Jidelnicek
GENREJSTRIKVYKUCH
RejstrikVyKuch
GENREJSTRIKVY
ResjstrikVy
GENREJSTRIKPR
RejstrikPr
GENVYDEJKAKUCH
VydejkaKuch
GENVYDEJKA
Vydejka
GENPRIJEMKA
Prijemka
GENPOCSTAVM
PocStavM
3 Návrh datových struktur
Strana 41
Název generátoru
Tabulka
GENPOCSTAVC
PocstavC
GENREJSTRIK
Rejstrik
GENDODAVATEL
Dodavatel
GENKARTA
Karta
GENUZAVERKA
Uzaverka Tab. 25: Generátory.
Strana 43
4
POUŽITÍ APLIKACE
Při vývoji aplikace byl především kladen důraz na jednoduchost ovládání, aby se i uživatel, který je počítačový začátečník, naučil s programem pracovat a využívat všech jeho předností. Sklady i Kuchař vzhledem navazují na ostatní částí systému PRODOM, aby ovládání celého systému bylo jednotné.
4.1
Instalace
Systém PRODOM je plně síťový produkt. Data mohou být uložena na serveru v místní síti nebo na lokálním počítači. Aplikace pro svoji činnost vyžaduje databázový SQL server Firebird, který může pracovat pod operačním systémem Windows nebo Linux. Na serveru nainstalujeme databázový SQL server Firebird v serverové verzi. Následně program IBExpert, jenž se stará o administraci serveru. S jeho pomocí obnovíme ze souboru Sklady.fdb samotnou databázi, která je následně uložena do souboru Sklady.fdb. Při tomto kroku použijeme uživatelské jméno SYSDBA a heslo bude masterkey. V žádném případě nelze systém přenášet pouhým překopírováním souboru Sklady.fdb. Vždy se musí nejprve vytvořit záloha a následně spustit server ze zálohy. Pokud chceme dosáhnout větší bezpečnosti, změníme heslo u uživatelského účtu SYSDBA. Uživatel bohužel ve verzi Firebird 1.5 nelze odstranit. Jelikož Firebird vychází z InterBase a verze InterBase 6.0 a Firebird 1.0 jde v podstatě o totožné systémy, pouze s jiným názvem, může být použit jak SQL server InterBase 6.0, tak Firebird 1.0.
Obr. 11 Program IBExpert. Instalace klientských aplikací není nijak složitou záležitostí. Stačí pouze nainstalovat klientskou část databázového systému Firebid a spustit instalaci klientských aplikací. Následně v adresáři data upravit nastavení souboru nastaveni.ini, kde je zapotřebí zadat IP adresu serveru a cestu k souboru Sklady.fdb z pohledu serveru, a zadat přihlašovaci jméno a heslo k serveru. V případě, že zdroj dat je umístěn na lokálním počítači, jako IP adresu serveru zadáme 127.0.0.1. Klientskou aplikaci Kuchař nebo Sklady můžeme pustit z plochy, kde se nám při instalaci vytvořil zástupce. Pro správnou funkci programu je také nutné mít zajištěna uživatelská oprávnění k přístupu do složky data, v níž je program nainstalován.
Strana 44
4.2
4 Použití aplikace
Uživatelské účty
Systém uživatelských účtů je společný pro všechny moduly systému PRODOM. To znamená, že pokud má uživatel dostatečná oprávnění, může se přihlásit do všech aplikací v systému PRODOM. Stačí mu k tomu jedno uživatelské jméno a heslo. Vytvářet, mazat a upravovat uživatelské účty mohou pouze vybraní uživatelé. Každý uživatel si může u svého účtu změnit pouze heslo. Heslo je ukládané do databáze v zašifrované podobě tak, že ani administrátor nemůže heslo zjistit. 4.2.1
Přihlašovací dialog
Před spuštěním každého modulu systému PRODOM se nejprve spustí přihlašovací dialog, kde si uživatel vybere ze seznamu své uživatelské jméno a do připraveného políčka vypíše uživatelské heslo. Toto heslo se kvůli bezpečnosti zobrazuje jako hvězdičky. Následně se mu po kladném ověření spustí požadovaný modul.
Obr. 12 Přilašovací dialog. 4.2.2
Správa identit
Okno Správa identit spustíme z hlavního menu Program-Správa identit. V tomto okně můžeme měnit, vytvářet a odstraňovat uživatelské účty. Toto okno se nám zobrazí podle našeho uživatelského oprávnění. Pokud je uživatelovo oprávnění jako administrátor, tak může provádět všechny úkoly. Je-li uživatel přihlášen jako user, má oprávnění měnit pouze svoje heslo. Odstranění uživatelského účtu může být limitováno použitím podpisu uživatele v některé části systému PRODOM.
4.3
Nastavení
Dříve než začne uživatel pracovat s jakoukoli částí systému PRODOM, je nutné provést jejich nastavení. Můžeme nastavit různé hodnoty pro výpočty a společné údaje pro tiskopisy. V každém modulu se k němu dostaneme v menu vpravo nahoře přes Program-Nastavení.
4 Použití aplikace
4.4
Strana 45
Zálohování
Důležitou součástí každého databázového systému je jeho zálohování. Je nezbytně nutné, aby zálohu mohl provést i laik, a mohl tak často zálohovat. V každém modulu PRODOMU lze zálohovat přes horní menu Program-Zálohování databáze, kde se nám následně spustí okno pro vytvoření zálohy. Zde lze nastavit místo, kam se bude záloha ukládat. Pokud se klient nevyskytuje na stejném počítači jako server s daty, je nutné tuto cestu nastavit ručně v souboru nastaveni.ini. Tento soubor najdeme v adresáři Data, ve složce, do které byl nainstalován klient. Zde se nastaví místo kam chceme zálohu uložit z pohledu serveru. Pokud máme toto nastavené, stačí pouze stisknout tlačítko Zálohovat. Zálohovat lze kdykoliv, i když jsou k serveru připojeni jiní uživatelé.
Obr. 13 Zálohování databáze.
4.5
Sklady
Program Sklady slouží k evidenci zásob potravin, prádla, obalů, všeobecného materiálu, paliv, pohonných látek a drobného investičního majetku. Eviduje příjemky od dodavatelů, výdejky ze skladu. Umožňuje zjišťovat aktuální stav zásob a provádět měsíční uzávěrky a inventurní soupisy. Je primárně určen vedoucímu skladu, aby mu zjednodušil a ulehčil práci. Speciální částí je sklad potravin, který je prostřednictvím výdejek od kuchaře spojen s modulem Kuchař.
Strana 46 4.5.1
4 Použití aplikace
Rejstřík
Po spuštění skladů se zobrazí rejstřík potravin, kde vidíme seznam karet ve skladu potravin. Jiný sklad si můžeme vybrat pomocí ikon, které najdeme v horní části okna. V rejstříku můžeme vytvářet nové karty, upravovat karty, nastavovat maximální a minimální zásobu na kartě, maximální a minimální povolený obrat na kartě. U jednotlivých karet vidíme aktuální zásobu, měrnou jednotku, cenu za jednotku. Rejstřík lze vytisknout. U čísla a názvu karty vidíme aktuální zásobu a cenu za jednotku. V rejstříku třídíme a vyhledáváme podle čísla nebo názvu karty. Při hledání podle názvu karty program rozlišuje malá a velká písmena.
Obr. 14 Rejstřík potravin.
4.5.2
Karta
Tato záložka obsahuje pohyby zásob na kartě. V jednotlivých řádcích vidíme datum pohybu, číslo dokladu, u příjemek název dodavatele, příjem, výdej a zásobu surovin, příjmovou cenu, celkový příjem v Kč, výdej v Kč, zůstatek v Kč a průměrnou cenu za jednotku. Na karty lze zapisovat pouze prostřednictvím příjemek a výdejek. Tuto záložku můžeme rozdělit na čtyři části: Ovládání – v této části si můžeme pomocí rozevíracího seznamu vybrat požadovaný měsíc a rok. Dále se můžeme pohybovat po rejstříku karet pomocí tlačítek předchozí a další. Je zde také velice důležité tlačítko Počáteční stav, pomocí něhož se nastavuje počáteční stav na kartě pro daný měsíc. Tento údaj však zadáme pouze jednou a to při založení karty. Počáteční stavy jsou pro každý měsíc zapisovány automaticky při vytváření uzávěrky. Tlačítko Tisk slouží k vytištění karty. Výstupy – zde se nám přehledně zobrazují počáteční stav, příjem, výdej a zůstatek v korunách i v množství. Nastavení karty – v další části vidíme nastavení hodnot karty z rejstříku jako minimální i maximální zásobu a obrat na kartě. Samotný název karty a jedinečné identifikační číslo karty, měrnou jednotku a cenu za jednotku. Tabulka – zde vidíme vlastní pohyby na kartě. Jednotlivé sloupce jsou pro přehlednost barevně odlišeny a tyto barvy jsou pro stejné položky použity v celém programu Sklady.
4 Použití aplikace
Strana 47
Obr. 15 Karta potravin. 4.5.3
Uzávěrka
Záložka Uzávěrka slouží pro provedení měsíční nebo roční uzávěrky ve skladu. Pokud se nepřevedou zůstatky na kartách do dalšího měsíce, můžeme uzávěrku smazat a vytvořit znovu. Pokud však konečné zůstatky převedeme, tak se měsíc, ve kterém jsme si udělali uzávěrky, zamkne. V takovém měsíci již nelze vytvářet a zapisovat žádné příjemky ani výdejky. Tuto záložku můžeme rozdělit na čtyři části: Nastavení časového období – vybereme si požadovaný měsíc a rok uzávěrky. Ovládání – není-li vytvořena žádná uzávěrka, vytvoříme novou uzávěrku tlačítkem Proveď uz. Tlačítkem Vymazat uzávěrku smažeme, pokud již nejsou převedeny konečné zůstatky. Lze zde tisknout tiskopis pro uzávěrku i pro inventuru. Výsledky – zde máme přehledně zobrazeny celkové příjmy a výdaje zásob i peněz. Tabulka – zde si můžeme prohlížet provedenou uzávěrku. Vidíme zde, za jaké období byla uzávěrka vytvořena, počáteční stav, příjem, výdej a zůstatek v množství a Kč.
Obr. 16 Uzávěrka potravin.
Strana 48 4.5.4
4 Použití aplikace
Příjemka
Tato záložka slouží k evidenci a vytváření příjemek do skladu. Zde spravujeme příjemky pro všechny sklady. Vždy nám svítí příjemky z právě aktuálního skladu. Přepnutí skladu provedeme výběrem skladu a následným kliknutím na ikonu s písmenem P. Okno s příjemkou je rozděleno do dvou záložek: Rejstřík příjemek - tato záložka slouží ke zjišťování souhrnných informací o příjemkách. Lze zobrazit seznam příjemek pro vybraný měsíc nebo příjemky za celý rok. Dále lze požadovaný výběr zúžit podle dodavatelů. Pokud zaškrtneme políčko Filtrovat dle DATA a DODAVATELE, zobrazí se nám rejstřík dodavatelů, kde klepnutím myši vybereme požadovaného dodavatele. Tento seznam lze také vytisknout pomocí tlačítka Tiskni.
Obr. 17 Příjemka.
Příjemka - slouží k vytváření, editaci a odesílání příjemek na kartu. Novou příjemku lze vytvořit pouze v měsíci, který není zamčený pro úpravy. Editovat a vymazat již vytvořenou příjemku lze jen do doby, než ji připíšeme na karty. Při vytvoření nové příjemky se zobrazí okno, v němž si lze vybrat datum vytvoření příjemky, dodavatele, číslo dokladu a způsob zadávání příjemky do tabulky. Způsob zadávání příjemky do tabulky si vybereme dle dokladu, který dostaneme od dodavatele.
Obr. 18 Nová příjemka.
4 Použití aplikace
Strana 49
Tisknout lze seznam příjemek i samotnou příjemku. Po stisknutí tlačítka Tisknout se nám zobrazí okno, kde si lze tiskopis nejprve prohlédnout, nastavit parametry tisku, popřípadě tiskopis uložit.
Obr. 19 Tiskopis Příjemka. 4.5.5
Výdejka
Funguje na stejném principu jako Příjemka (viz. kapitola 4.3.4). Slouží k vytváření a evidenci výdejek pro všechny sklady. Vždy se nám zobrazují výdejky z právě aktuálního skladu a období. Přepnutí skladu provedeme výběrem skladu a následným kliknutím na ikonu s písmenem V. Okno s výdejkou je možné rozdělit do dvou částí: Rejstřík výdejek - eviduje seznam výdejek pro dané časové období. Sledujeme, zda je výdejka odepsaná z karet a celkovou cenu za výdejku. Tento souhrn můžeme za dané časové období vytisknout. Výdejka - stejně jako u příjemky vytváříme, editujeme a zapisujeme výdejku na sklad. Opět můžeme vytisknout jednotlivé suroviny. 4.5.6
Výdejka od kuchaře
Jedná se o speciální typ výdejky pouze pro sklad potravin. Přes tuto výdejku je program Sklady svázán s modulem Kuchař. Výdejku zde skladní nevytváří, ale vytváří ji pracovník, který pracuje s programem Kuchař. Většinou jde o vedoucího kuchaře, jenž má na starosti tvorbu jídelníčku a normování surovin. Kuchař vytvoří výdejku, kterou následně odešle na sklad. Tuto výdejku si ještě upraví skladní dle svých aktuálních požadavků. Tato výdejka od kuchaře funguje na stejném principu jako výdejka (viz. kapitola 4.3.5). Navíc je zde tlačítko Aktualizace výdejek, které slouží k potvrzení transakce a načtení aktuálních dat ze serveru. Následně skladník stiskne tlačítko Načti ceny, pomocí kterého načte aktuální ceny ze skladu potravin. Dále můžeme množstí upravit pomocí tlačítka Upravit množství, případně přidat vlastní položky.
Strana 50
4 Použití aplikace
Obr. 20 Výdejka od kuchaře.
4.6
Kuchař
Je program určený primárně pro vedoucího kuchyně, kterému by měl zjednodušit a ulehčit každodenní práci. Při jeho vývoji byl kladen důraz na jednoduchost obsluhy a efektivnost vynaložené práce. Je napojen na modul Sklady a Databázi obyvatel, z níž získává aktuální počet strávníků. Lze v něm evidovat počty strávníků, vytvářet jídelníčky a recepty, normovat suroviny, zjišťovat souhrnné údaje a tisknout všechny požadované tiskopisy. 4.6.1
Recepty
Slouží k evidenci receptů v modulu Kuchař. Lze je normovat na x porcí, přičemž základní nastavení je na jednoho člověka. Okno s recepty je možné rozdělit na tři části: Seznam jídel – obsahuje názvy receptů a počet porcí, na který je recept normován. Lze zde řadit a vyhledávat pomocí čísla receptu nebo jeho názvu. Recept – zapisují se zde karty, jež jsou obsaženy v receptu. Tyto karty bere z rejstříku karet potravin. Proto pokud je karta použita v nějakém receptu, nelze ji v programu Sklady odstranit. Kritický bod – slouží k vyplnění kritických bodů při tvorbě pokrmu. 4.6.2
Strávníci
Slouží k evidenci strávníků na jednotlivé dny. Je přímo napojen na Databázi obyvatel, ze které získává aktuální počet strávníků. Strávníci jsou rozděleni do tří základních katergorií: Obyvatelé, Zaměstnanci a Cizí strávníci. U zaměstnanců lze navíc evidovat, zda odeberou celodenní stravu, večeři nebo oběd. U civilní služby se předpokládá, že odebere celodenní stravu. Pro všechny strávníky se
4 Použití aplikace
Strana 51
evidují čtyři diety. Není vždy nutné, aby program Kuchař byl napojen na jinou část systému PRODOM, protože se tyto údaje dají zapisovat i ručně. Aby uživateli odpadlo zdlouhavé vypisování, lze také nastavit běžný stav, který se aktualizuje tlačítkem Načti běžný stav. Evidence strávníků je důležitá pro normování stravy a výpočet dodržování normy.
Obr. 21 Strávníci. 4.6.3
Jídelníček
Toto okno je jednou z nejdůležitějších částí programu Kuchař. Slouží k tvorbě a tisku jídelníčku. Byl navržen tak, aby byla zajištěna jeho maximální přehlednost a jednoduchost. Tvorbu jídelníčku by měl zvládnout i úplný začátečník. Stránku s jídelníčkem můžeme rozdělit do tří hlavních částí. Výběr týdne – zde se nastavuje týden, pro který je jídelníček zobrazen. Jednotlivý týden můžeme nastavit tlačítkem Vyber týden, kde se nám spustí editační okno, nebo se lze pohybovat po jednotlivých týdnech tlačítkem Před, případně Další.
Obr. 22 Okno pro výběr požadovaného týdne.
Strana 52
4 Použití aplikace
Výběr dne – zde pomocí záložek vybíráme jednotlivé dny v týdnu. Po výběru dne se nám u aktivního dne zobrazí v pravém horním rohu datum pro aktivní den. Výběr části dne – opět pomocí záložek lze vybrat snídani, přesnídávku, oběd, svačinu, večeři a druhou večeři. Výběr receptu provedeme stisknutím tlačítka Vytvoř jídelníček, pomocí něhož se aktivují editační pole. Do pole počet se z evidence strávníků zapíše počet porcí. Toto pole nemá žádný vliv na následný výpočet normy, zda se provařilo či nikoliv. Na normu má vliv pouze počet strávníků v evidenci strávníků. Slouží pouze pro normování surovin. Následně zadáme buď kód receptu nebo jej vybereme z menu. Při výběru z menu urychlíme výběr stisknutím prvního písmene z názvu receptu. Po vyplnění jídelníčku stiskneme tlačítko Uložit jídelníček a následně pomocí tlačítka Odeslat jídelníček stravu nanormujeme na jednotlivé suroviny.
Obr. 23 Okno jídelníčku.
Po vytvoření jídelníčku na celý týden jej můžeme vytisknout. Jídelníček lze tisknout na jednotlivé dny nebo na celý týden. Tiskopis na celý týden je rozdělen na dvě části, do kterých ještě doplníme, kdo jídelníček schválil a sestavil. Ve všech tiskopisech je přehledně jídelníček rozdělen na jednotlivé diety a části dne.
4 Použití aplikace
Strana 53 Obr. 24 Tisk jídelníčku.
4.6.4
Výstupy
Slouží ke zjišťování statistických informací z programu Kuchař. Můžeme sledovat celkové počty a ceny odebrané stravy. Tyto informace sledujeme dle druhu strávníků a jejich diet. Pomocí celkových výdajů ze skladu potravin a počtu strávníků zjistíme, zda byla dodržena norma. Následně si tento výsledek můžeme přehledně vytisknout.
Obr. 25 Měsíční přehled o stravování.
Strana 55
5
ZÁVĚR
Cílem práce bylo vytvořit informační systém pro stravovací provoz domova důchodců, který by nahradil ruční zpracovávání a spolupracoval s ostatními moduly informačního systému PRODOM. S ohledem na zadané požadavky byl proveden podrobný rozbor problému se zaměstnanci, kteří mají požadovanou administrativu na starosti. Díky efektivnosti vývojového prostředí Delphi se v krátkém čase podařilo vytvořit zkušební verzi, jež mohli pracovníci otestovat ve skutečném provozu. Následně byl systém upraven podle požadavků obsluhy a nasazen do měsíčního zkušebního provozu, kdy se souběžně vedla ruční i elektronická forma. Tento způsob se ukázal jako správný, neboť uživatelé si tak mohli ověřit spolehlivost systému a získat k němu důvěru. V konečném důsledku se podařilo vytvořit jednoduchý a přehledný informační systém, jenž zefektivnil celou činnost ve stravovacím provozu. Pracovníci, kteří značnou část své pracovní doby věnovali zdlouhavé administrativě, nyní mohou vykonávat jinou činnost.
Strana 57
6
SEZNAM POUŽITÉ LITERATURY
[1] POLIŠČUK, R.: Titulní strana závěrečné práce. [2] POLIŠČUK, R.: Instrukce pro autory závěrečných prací, 2006. http://autnt.fme.vutbr.cz/doc/SZZ2006_Instrukce.pdf [3] CANTÚ, Marco. Myslíme v jazyku Delphi 6: knihovna zkušeného programátora. Praha : Grada, 2002. 512 s. ISBN 80-247-0335-1. [4] CANTÚ, Marco. Myslíme v jazyku Delphi 7: knihovna zkušeného programátora. 1. vyd. Praha : GRADA, 2003. 580 s. ISBN 80-247-0694-6. [5] PIRKL, Josef. Komponenty v Delphi. Praha : Computer Press, 2002. 438 s. ISBN 80-7226-746-9. [6] TEIXEIRA, Steve; PACHECO, Xavier. Borlan Delphi, průvodce vývojáře: Kniha V-VI. Brno : Mobil Media, 2002. 512 s. ISBN 80-86593-10-X. [7] ELLER, Frank. Delphi 6 : Příručka programátora. 1. vyd. Praha : Grada, 2002. 272 s. ISBN 80-247-0303-3. [8] SEDLÁČEK, Jiří; SLABA, Jiří. Delphi v kostce : pro verze 1 - 5. 1. vyd. Praha : BEN, 2000. 513 s. ISBN 80-86056-97-X. [9] KADLEC, Václav. Delphi: Hotová řešení. Brno : Computer Press, 2003. 312 s. ISBN 80-251-0017-0. [10]BRÁZDA, Jiří. Delphi 4 : kompletní kapesní průvodce. Praha : GRADA, 1999. 600 s. ISBN 80-7169-684-6. [11]TEIXEIRA, Steve; PACHECO, Xavier. Mistrovtsví v Delphi 6. Praha : Computer Press, 2002. 820 s. ISBN 80-7226-627-6. [12]SVOBODA, Luděk; VONEŠ, Petr; KONŠAL, Tomáš. 1001 tipů a triků pro Delphi. 2. aktualiz. vyd. Praha: Computer Press, 2002. 390 s. ISBN 80-72266-529-6. [13]LISCHNER, Ray. Delphi v kostce: Pohotová referenční příručka. 1. vyd. Praha : Computer Press, 2000. 550 s. ISBN 80-7226-361-7. [14]CÍSAŘ, Pavel. InterBase/Firebird: Tvorba, administrace a programování databází. 1. vyd. Praha : Computer Press, 2003. 453 s. ISBN 80-7226-946-1. [15]LACKO, Luboslav. SQL Hotová řešení. 1. vyd. Praha: Computer Press, 2003. 298 s. ISBN 80-7226-975-5. [16]ŠIMŮNEK , Milan. SQL Kompletní kapesní průvodce. 1. vyd. Praha: GRADA, 1999. 248 s. ISBN 80-7169-692-7.