Za´padoˇceska´ univerzita v Plzni Fakulta aplikovany´ch vˇed Katedra informatiky a vy´poˇcetn´ı techniky
Bakal´ aˇ rsk´ a pr´ ace Skladov´ y syst´ em pro obalovny ˇ ziviˇ cn´ ych smˇ es´ı
Plzeˇ n, 2014
Martin Hron
Prohl´ aˇ sen´ı Prohlaˇsuji, ˇze jsem bakal´aˇrskou pr´aci vypracoval samostatnˇe a v´ yhradnˇe s pouˇzit´ım citovan´ ych pramen˚ u. V Plzni dne 5. kvˇetna 2014 Martin Hron
Podˇ ekov´ an´ı ˇ r´ıkovi CSc. za odborn´e veden´ı, ochotu pˇri Dˇekuji panu prof. Ing. Jiˇr´ımu Safaˇ konzultac´ıch a pomoc pˇri psan´ı t´eto pr´ace. D´ale dˇekuji ekonomick´emu oddˇelen´ı firmy SWIETELSKY stavebn´ı s.r.o. za poskytnut´e materi´aly a moˇznost absolvovat tuto pr´aci.
Abstrakt Tato pr´ace se zab´ yv´a problematikou skladov´ ych syst´em˚ u jak z ekonomick´eho hlediska, tak z hlediska program´atorsk´eho. C´ılem pr´ace je navrhnout a implementovat skladov´ y syst´em pro potˇreby zadavatele. Syst´em je implementov´an v jazyce C# pod platformou Microsoft .NET a vyuˇz´ıv´a vhodn´ y relaˇcn´ı datab´azov´ y syst´em. Pr´ace se zab´ yv´a problematikou oceˇ nov´an´ı skladov´ ych poloˇzek, n´avrhem vylepˇsen´ı st´avaj´ıc´ıho syst´emu ˇci n´avrhem dalˇs´ıch uˇzivatelsky pˇr´ıvˇetiv´ ych funkc´ı. D´ale pr´ace obsahuje popis struktury navrhovan´eho syst´emu, n´avrh datab´azov´eho a n´avrh objektovˇe orientovan´eho modelu nov´eho syst´emu. V pr´aci jsou tak´e pops´any technologie a knihovny pouˇzit´e v syst´emu a technick´e poˇzadavky pro bˇeh syst´emu. Pr´ace zahrnuje tak´e testov´an´ı a zhodnocen´ı nov´e aplikace oproti st´avaj´ıc´ı vˇcetnˇe moˇzn´ ych vylepˇsen´ı do budoucna.
Kl´ıˇ cov´ a slova sklad, skladov´ y syst´em, z´asoby, oceˇ nov´an´ı z´asob, datab´aze, syst´em ˇr´ızen´ı b´aze dat, PostgreSQL, Microsoft .NET Framework, C#, ADO.NET, Npgsql, iTextSharp
Abstract This thesis deals with issues of store systems both from economic and programming point of view. The main aim of this thesis is to design and implement a store system for needs of the client. The system is implemented in C# language under Microsoft .NET platform and uses the appropriate relational database system. The work describes problems of valuation of inventory items, suggests improvements to the existing system or other user-friendly features. This thesis also contains a description of the structure of the proposed system, a design of the database model, and a design of the object-oriented model of the new system. The work also describes the technology and libraries used in the system and technical requirements for running the system. The thesis also includes testing and evaluation of the new application compared to the existing one, including possible improvements for the future.
Keywords store, store system, inventories, inventory valuation, database, database management system, PostgreSQL, Microsoft. NET Framework, C#, ADO.NET, Npgsql, iTextSharp
Obsah ´ 1 Uvod
1
2 Z´ asoby 2.1 Rozdˇelen´ı z´asob . . . . . . . . . . . . . . . . . . . 2.1.1 Skladovan´ y materi´al . . . . . . . . . . . . 2.1.2 Z´asoby vlastn´ı v´ yroby . . . . . . . . . . . 2.1.3 Skladovan´e zboˇz´ı . . . . . . . . . . . . . . 2.2 Oceˇ nov´an´ı z´asob pˇri poˇr´ızen´ı . . . . . . . . . . . . 2.2.1 Oceˇ nov´an´ı poˇrizovac´ı cenou . . . . . . . . 2.2.2 Oceˇ nov´an´ı vlastn´ımi n´aklady . . . . . . . . 2.2.3 Oceˇ nov´an´ı reprodukˇcn´ı cenou . . . . . . . 2.3 Oceˇ nov´an´ı pˇri u ´bytku z´asob . . . . . . . . . . . . 2.3.1 Ocenˇen´ y v´aˇzen´ ym aritmetick´ ym pr˚ umˇerem 2.3.2 Oceˇ nov´an´ı metodou FIFO . . . . . . . . . 2.3.3 Ocenˇen´ı pevnˇe stanovenou cenou . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
2 2 2 3 3 4 4 4 5 5 5 6 6
3 Anal´ yza skladov´ ych syst´ em˚ u 3.1 Anal´ yza st´avaj´ıc´ıho syst´emu . . . . . . 3.2 Anal´ yza jin´ ych skladov´ ych syst´em˚ u . . 3.2.1 Sklad´ık 5.5.5 Demo . . . . . . . 3.2.2 Pokladn´ı syst´em AWIS – Sklad
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
7 7 8 8 9
4 N´ avrh funkˇ cn´ıch vlastnost´ı 4.1 Specifikace poˇzadavk˚ u zadavatele . . . . . . . . . . . . . . . . 4.2 Specifikace nov´ ych potˇrebn´ ych vlastnost´ı . . . . . . . . . . . . 4.3 Dalˇs´ı moˇzn´a rozˇs´ıˇren´ı . . . . . . . . . . . . . . . . . . . . . . .
10 10 11 11
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
5 N´ avrh nov´ eho skladov´ eho syt´ emu 12 5.1 Tˇr´ıvrstv´a architektura . . . . . . . . . . . . . . . . . . . . . . 12 5.2 Struktura aplikace . . . . . . . . . . . . . . . . . . . . . . . . 13 5.3 Popis UML diagram˚ u tˇr´ıd . . . . . . . . . . . . . . . . . . . . 14
5.3.1 5.3.2 5.3.3 5.3.4
UML . . . . . . . . . . . . . . . . . . Diagram tˇr´ıd . . . . . . . . . . . . . J´adro aplikace – Jadro . . . . . . . . Grafick´e uˇzivatelsk´e rozhran´ı aplikace
. . . .
14 15 18 18
. . . . . . . . . . . . . . . .
20 20 21 21 22 22 23 23 24 24 25 25 25 26 26 27 28
. . . . . . . .
30 30 30 31 31 31 32 33 33
8 Testov´ an´ı aplikace 8.1 Testov´an´ı ekonomick´ y operac´ı . . . . . . . . . . . . . . . . . . 8.2 Testov´an´ı ostatn´ıch funkcionalit syst´emu . . . . . . . . . . . . 8.3 Stav syst´emu a moˇznosti rozˇs´ıˇren´ı . . . . . . . . . . . . . . . .
34 34 35 35
9 Z´ avˇ er
36
Seznam zkratek
37
6 N´ avrh datab´ aze 6.1 Vhodn´e datab´azov´e syst´emy . 6.1.1 MySQL . . . . . . . . 6.1.2 PostgreSQL . . . . . . 6.1.3 Microsoft SQL Server . 6.2 Zvolen´ y datab´azov´ y syst´em . 6.3 N´avrh relaˇcn´ıho datab´azov´eho 6.3.1 Tabulka Sklad . . . . 6.3.2 Tabulka Uzivatel . . 6.3.3 Tabulka Spravuje . . 6.3.4 Tabulka Mesto . . . . 6.3.5 Tabulka Dodavatel . . 6.3.6 Tabulka Doklad . . . . 6.3.7 Tabulka Polozka . . . 6.3.8 Tabulka Material . . 6.3.9 Tabulka Prumer . . . . 6.3.10 Popis vztah˚ u datab´aze
. . . . . . . . . . . . . . . . . . . . . . . . . modelu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7 Implementace 7.1 Pouˇzit´e technologie . . . . . . . . . 7.1.1 Microsoft .NET Framework 7.1.2 Jazyk C# . . . . . . . . . . 7.2 Pouˇzit´e knihovny . . . . . . . . . . 7.2.1 ADO.NET . . . . . . . . . . 7.2.2 Npgsql . . . . . . . . . . . . 7.2.3 iTextSharp . . . . . . . . . 7.3 Technick´e poˇzadavky . . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . .
. . . –
. . . . . . . . . . . . . . . .
. . . . . . . .
. . . . . . . . . GUI . . . . . . . . . . . . . . . .
. . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . .
. . . .
. . . . . . . . . . . . . . . .
. . . . . . . .
. . . .
. . . . . . . . . . . . . . . .
. . . . . . . .
. . . .
. . . . . . . . . . . . . . . .
. . . . . . . .
. . . .
. . . . . . . . . . . . . . . .
. . . . . . . .
. . . .
. . . . . . . . . . . . . . . .
. . . . . . . .
Literatura
40
Seznam pˇ r´ıloh
42
A UML: Diagram tˇ r´ıd – Jadro
44
B UML: Diagram tˇ r´ıd – GUI
45
C Relaˇ cn´ı model datab´ aze
46
D Uk´ azka testovac´ıch dat 47 ´ D.1 Unor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 D.2 Bˇrezen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 E Uˇ zivatelsk´ a dokumentace E.1 Pˇreklad a spuˇstˇen´ı aplikace . . . . . . . . . . . E.2 Instalace datab´azov´eho syst´emu . . . . . . . . E.2.1 Linux – Debian . . . . . . . . . . . . . E.2.2 Windows . . . . . . . . . . . . . . . . . E.2.3 Vytvoˇren´ı datab´aze pomoc´ı psql . . . . E.2.4 Vytvoˇren´ı datab´aze pomoc´ı PgAdmin3 E.3 Popis hlavn´ıho okna programu . . . . . . . . . E.4 Nastaven´ı a kontrola spojen´ı . . . . . . . . . . E.5 Pˇrihl´aˇsen´ı a odhl´aˇsen´ı uˇzivatele . . . . . . . . E.6 V´ ybˇer a odhl´aˇsen´ı od skladu . . . . . . . . . . E.7 Z´alohov´an´ı a obnoven´ı z´alohy skladu . . . . . E.8 Operace na skladˇe . . . . . . . . . . . . . . . . E.8.1 V´ ybˇer obdob´ı . . . . . . . . . . . . . . E.8.2 Pˇr´ıjem a Pˇr´ıjem dopravy . . . . . . . . E.8.3 V´ ydej do spotˇreby a V´ ydej – prodej . . E.8.4 Chybov´e hl´aˇsky . . . . . . . . . . . . . E.9 Kontroln´ı opis z´asob . . . . . . . . . . . . . . ´ E.9.1 Uprava a smaz´an´ı dokladu . . . . . . . E.10 Obratov´a soupiska . . . . . . . . . . . . . . . E.11 Inventurn´ı soupiska . . . . . . . . . . . . . . . E.12 Export, tisk a n´ahled tisku . . . . . . . . . . . E.13 Ztr´ata spojen´ı s datab´az´ı . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . .
49 49 49 49 50 50 52 54 55 56 57 59 60 62 62 64 65 67 68 68 70 71 72
F Obsah CD 73 F.1 Struktura obsahu CD . . . . . . . . . . . . . . . . . . . . . . . 73 F.2 Popis obsahu CD . . . . . . . . . . . . . . . . . . . . . . . . . 73
´ 1 Uvod Ekonomick´e oddˇelen´ı ve firmˇe SWIETELSKY stavebn´ı s.r.o. od poˇca´tku vzniku pouˇz´ıv´a skladov´ y syst´em bˇeˇz´ıc´ı v operaˇcn´ım syst´emu MS-DOS. Tento syst´em je velmi nekomfortn´ı na uˇz´ıv´an´ı, neust´ale zp˚ usobuje p´ady, pˇri kter´ ych doch´az´ı ke ztr´atˇe dat a z´alohov´an´ı datab´aze je moˇzno pouze na disketov´e jednotky. Z d˚ uvodu neust´al´eho v´ yvoje v oblasti informaˇcn´ıch technologi´ı a nespokojenosti se st´avaj´ıc´ım software, zadala firma poˇzadavek na vytvoˇren´ı nov´eho syst´emu pro evidenci skladov´ ych z´asob. C´ılem pr´ace je vytvoˇrit nov´ y skladov´ y syst´em, kter´ y by mˇel nahradit st´avaj´ıc´ı syst´em. Syst´em by mˇel vyuˇz´ıvat vhodn´ y relaˇcn´ı datab´azov´ y syst´em a mˇel by b´ yt pˇrizp˚ usoben potˇreb´am zadavatele. Aplikace by mˇela b´ yt naprogramov´ana v jazyce C# pod platformou Microsoft .NET a mˇela by b´ yt v´ yhradnˇe v ˇcesk´em jazyce. Pr´ace popisuje problematiku skladov´ ych syst´em˚ u jak z ekonomick´eho hlediska, tak z hlediska program´atorsk´eho. Zab´ yv´ame se zde napˇr´ıklad problematikou oceˇ nov´an´ı skladov´ ych poloˇzek podle r˚ uzn´ ych zp˚ usob˚ u, n´avrhem vylepˇsen´ı st´avaj´ıc´ıho syst´emu ˇci n´avrhem dalˇs´ıch uˇzivatelsky pˇr´ıvˇetiv´ ych funkc´ı na z´akladˇe anal´ yzy r˚ uzn´ ych skladov´ ych software. D´ale pr´ace popisuje strukturu navrˇzen´eho syst´emu, n´avrh datab´azov´eho modelu a n´avrh objektovˇe orientovan´eho modelu nov´eho syst´emu, kter´e byly pˇrizp˚ usobeny konkr´etn´ım potˇreb´am zadavatele. V implementaˇcn´ı ˇca´sti jsou pops´any technologie a knihovny pouˇzit´e pˇri implementaci syst´emu a tak´e technick´e poˇzadavky na tento syst´em. V posledn´ı ˇca´sti se pak zab´ yv´ame samotn´ ym testov´an´ım vytvoˇren´e aplikace, pˇr´ıpadnou korekc´ı drobn´ ych nedostatk˚ u zjiˇstˇen´ ych na z´akladˇe testov´an´ı a zhodnocen´ı vylepˇsen´ı nov´e aplikace oproti st´avaj´ıc´ı.
1
2 Z´asoby Tato kapitola popisuje co jsou to z´asoby, na jak´e skupiny se dˇel´ı a co do tˇechto skupin patˇr´ı. N´aslednˇe popisuje jak se tyto z´asoby oceˇ nuj´ı pˇri poˇr´ızen´ı a pˇri u ´bytku. Z´ asoby – Z´asoby patˇr´ı mezi kr´atkodob´ y obˇeˇzn´ y majetek. U tohoto majetku doch´az´ı pˇr´ısluˇsnou ˇcinnost´ı podniku k jednor´azovˇe spotˇrebˇe, nebo pˇr´ısluˇsnou ˇcinnost´ı vznik´a a doch´az´ı k pˇremˇenˇe na jin´e sloˇzky majetku [Z´as(2014)].
2.1
Rozdˇ elen´ı z´ asob
Vˇsechny druhy z´asob dˇel´ıme do 3 skupin: 1. skladovan´ y materi´al 2. z´asoby vlastn´ı v´ yroby 3. skladovan´e zboˇz´ı
2.1.1
Skladovan´ y materi´ al
Materi´alem jsou takov´e poloˇzky, kter´e podnik nakupuje od r˚ uzn´ ych dodavatel˚ u, pˇr´ıpadnˇe je vlastn´ı ˇcinnost´ı vytv´aˇr´ı a do materi´alu je pˇrevede tzv. aktivac´ı1 [Car(2010)]. Mezi materi´al patˇr´ı: • suroviny – z´akladn´ı materi´al, kter´ y pˇri v´ yrobˇe zcela nebo z ˇca´sti pˇrech´az´ı do v´ yrobku a tvoˇr´ı jeho podstatu • pomocn´ e l´ atky – pˇrech´azej´ı pˇr´ımo do v´ yrobku, ale netvoˇr´ı jeho podstatu (napˇr. ochrann´ y lak) • provozovac´ı l´ atky – umoˇzn ˇuj´ı provoz nebo v´ yrobu (napˇr. oleje, palivo, ˇcistic´ı prostˇredky, ...) 1
situace, kdy podnik provede urˇcit´ y v´ ykon s´am sobˇe, napˇr. stavebn´ı firma si postav´ı budovu [Akt(2014)]
2
Z´asoby
Rozdˇelen´ı z´asob
• n´ ahradn´ı d´ıly • obaly a obalov´ e materi´ aly • drobn´ y hmotn´ y majetek – pˇredevˇs´ım hmotn´ y majetek s dobou vyuˇzitelnosti delˇs´ı neˇz jeden rok (napˇr. notebook do 40 000Kˇc) • dalˇ s´ı movit´ e vˇ eci – pˇredevˇs´ım vˇeci s dobou pouˇzitelnosti do jednoho roku, bez ohledu na v´ yˇsi ocenˇen´ı (napˇr. pokusn´a zv´ıˇrata)
2.1.2
Z´ asoby vlastn´ı v´ yroby
Z´asoby vlastn´ı v´ yroby jsou pˇredevˇs´ım produkty at’ uˇz u ´pln´e nebo ˇc´asteˇcn´e, kter´e vznikaj´ı ve v´ yrobn´ım procesu z nakoupen´eho nebo z´ıskan´eho materi´alu. Do z´asob vlastn´ı v´ yroby se zahrnuje: • nedokonˇ cen´ a v´ yroba a polotovary – produkty – proˇsly jedn´ım nebo nˇekolika v´ yrobn´ımi procedurami, ” nejsou jiˇz materi´alem, ale nejsou ani hotov´ ym v´ yrobkem (do t´eto skupiny patˇr´ı i nedokonˇcen´e ˇcinnosti, pˇri nichˇz nevznikaj´ı hmotn´e produkty)“ [Car(2010)] – oddˇelenˇe evidovan´e produkty – polotovary, kter´e dosud neproˇsly ” vˇsemi v´ yrobn´ımi procesy a budou dokonˇceny nebo zkompletov´any do hotov´ ych v´ yrobk˚ u v dalˇs´ım v´ yrobn´ım procesu“ [Car(2010)] • hotov´ e v´ yrobky – vˇeci vlastn´ı v´ yroby urˇcen´e k prodeji nebo ke spotˇrebˇe uvnitˇr firmy • zv´ıˇ rata – veˇsker´a zv´ıˇrata, kter´a nejsou vykazov´ana jako dospˇel´a zv´ıˇrata (napˇr. jateˇcn´ı zv´ıˇrata a jejich skupiny)
2.1.3
Skladovan´ e zboˇ z´ı
Skladovan´e zboˇz´ı se pˇredevˇs´ım popisuje jako z´asoba, kterou podnik nakupuje (pˇr´ıpadnˇe vytv´aˇr´ı), za u ´ˇcelem dalˇs´ıho prodeje. Jako zboˇz´ı je moˇzn´e oznaˇcit: • movit´ e vˇ eci vˇ cetnˇ e zv´ıˇ rat – z´asoby z´ıskan´e za u ´ˇcelem prodeje, po” kud spoleˇcnost s tˇemito vˇecmi obchoduje“ [Car(2010)] 3
Z´asoby
Oceˇ nov´an´ı z´asob pˇri poˇr´ızen´ı
• v´ yrobky – z´asoby vlastn´ı v´ yroby, kter´e byly aktivov´any a pˇred´any ” do vlastn´ıch prodejen“ [Car(2010)] • zv´ıˇ rata vlastn´ıho chovu – pˇredevˇs´ım zv´ıˇrata, kter´a dospˇela, byla ” aktivov´ana a jsou urˇcena k prodeji“ [Car(2010)]
2.2
Oceˇ nov´ an´ı z´ asob pˇ ri poˇ r´ızen´ı
Oceˇ nov´an´ım z´asob se rozum´ı penˇeˇzn´ı ohodnocen´ı stavu z´asob. V n´asleduj´ıc´ıch podkapitol´ach se budeme vˇenovat oceˇ nov´an´ı v okamˇziku jejich poˇr´ızen´ı. Toto oceˇ nov´an´ı se podle zp˚ usobu poˇr´ızen´ı dˇel´ı do 3 skupin: • oceˇ nov´an´ı poˇrizovac´ı cenou • oceˇ nov´an´ı vlastn´ımi n´aklady • oceˇ nov´an´ı reprodukˇcn´ı cenou
2.2.1
Oceˇ nov´ an´ı poˇ rizovac´ı cenou
T´ımto zp˚ usobem se nakupovan´e z´asoby oceˇ nuj´ı poˇrizovac´ımi cenami. Poˇrizovac´ı cenou se rozum´ı nejen n´akupn´ı cena, ale tak´e cena vˇsech n´aklad˚ u souvisej´ıc´ıch s jejich poˇr´ızen´ım, tzv. vedlejˇs´ı poˇrizovac´ı n´aklady. Mezi tyto n´aklady patˇr´ı pˇredevˇs´ım clo, pˇrepravn´e, pojistn´e pˇri pˇrepravˇe nebo DPH (pokud se jedn´a o nepl´atce DPH). Souˇc´ast´ı vedlejˇs´ıch poˇrizovac´ıch n´aklad˚ u nejsou u ´roky z u ´vˇer˚ u nebo pˇr´ıpadn´e slevy sniˇzuj´ıc´ı cenu poˇr´ızen´ı.
2.2.2
Oceˇ nov´ an´ı vlastn´ımi n´ aklady
Tento zp˚ usob se pouˇz´ıv´a pˇredevˇs´ım k oceˇ nov´an´ı v´ yrobk˚ u vlastn´ı v´ yroby. K oceˇ nov´an´ı se pouˇz´ıvaj´ı jak pˇr´ım´e vlastn´ı n´aklady, tak i nepˇr´ım´e vlastn´ı n´aklady. Pˇr´ım´ ymi n´aklady se rozum´ı n´aklady na konkr´etn´ı druh v´ ykonu (napˇr. n´aklady na materi´al) a nepˇr´ım´e n´aklady m˚ uˇzeme ch´apat jako n´aklady, kter´e se vztahuj´ı k urˇcit´emu druhu v´ ykonu (napˇr. mzdy pracovn´ık˚ u nebo odpisy vybaven´ı) [Ryn(2010)].
4
Z´asoby
2.2.3
Oceˇ nov´an´ı pˇri u ´bytku z´asob
Oceˇ nov´ an´ı reprodukˇ cn´ı cenou
Tento zp˚ usob oceˇ nov´an´ı spoˇc´ıv´a v ocenˇen´ı z´asoby cenou, kterou by dan´a z´asoba mˇela v dobˇe u ´ˇctov´an´ı, neboli reprodukˇcn´ı cena, je hodnota dan´e z´asoby v dobˇe u ´ˇctov´an´ı. Stanoven´ı t´eto ceny nen´ı d´ano ˇz´adn´ y pˇredpisem, m˚ uˇze b´ yt stanovena napˇr. znaleck´ ym posudkem nebo odborn´ ym odhadem. V pˇr´ıpadˇe, ˇze pˇri poˇr´ızen´ı byly vynaloˇzeny dalˇs´ı n´aklady (napˇr´ıklad doprava), je nutn´e pˇriˇc´ıst tyto n´aklady k reprodukˇcn´ı cenˇe. Oceˇ nov´an´ı reprodukˇcn´ı cenou se pouˇz´ıv´a napˇr´ıklad pro z´asoby nalezen´e jako pˇrebytek pˇri inventarizaci, pro z´asoby nabyt´e jako odpad nebo zbytkov´ y produkt v´ yroby, apod.
2.3
Oceˇ nov´ an´ı pˇ ri u ´ bytku z´ asob
´ Ubytkem z´asob je myˇsleno pˇredevˇs´ım vyskladnˇen´ı nebo pˇreskladnˇen´ı, vyˇrazen´ı pro nepotˇrebnost nebo v d˚ usledku zniˇcen´ı ˇci ztr´aty, vr´acen´ı dodavateli, darov´an´ı nebo manko. Pˇri u ´bytku z´asob oceˇ nujeme tˇemito zp˚ usoby: • ocenˇen´ı individu´aln´ı poˇrizovac´ı cenou • ocenˇen´ı v´aˇzen´ ym aritmetick´ ym pr˚ umˇerem • ocenˇen´ı metodou FIFO • ocenˇen´ı metodou LIFO • ocenˇen´ı pevnˇe stanovenou cenou D´ale si pop´ıˇseme pouze ocenˇen´ı v´aˇzen´ ym aritmetick´ ym pr˚ umˇerem, metodou FIFO a ocenˇen´ı pevnˇe stanovenou cenou.
2.3.1
Ocenˇ en´ y v´ aˇ zen´ ym aritmetick´ ym pr˚ umˇ erem
Metoda ocenˇen´ı v´aˇzen´ ym aritmetick´ ym pr˚ umˇerem je jednou z nejpouˇz´ıvanˇejˇs´ıch metod na svˇetˇe. Tato metoda spoˇc´ıv´a ve v´ ypoˇctu v´aˇzen´eho aritmetick´eho pr˚ umˇeru z aktu´aln´ıch z´asob na skladˇe. Vzorec pro v´ ypoˇcet v´aˇzen´eho aritmetick´eho pr˚ umˇeru vypad´a takto: 5
Z´asoby
Oceˇ nov´an´ı pˇri u ´bytku z´asob
Pn
x¯ =
w i · xi i=1 wi
i=1
Pn
(2.1)
Kde xi je jednotkov´a cena dan´eho materi´alu a wi je mnoˇzstv´ı dan´eho materi´alu. Tento pr˚ umˇer je nutn´e poˇc´ıtat minim´alnˇe jednou za mˇes´ıc a to bud’ na zaˇca´tku mˇes´ıce nebo na konci mˇes´ıce, pˇr´ıpadnˇe jej lze poˇc´ıtat i pr˚ ubˇeˇznˇe s kaˇzdou novou dod´avkou. Podle toho se pak v´aˇzen´ y aritmetick´ y pr˚ umˇer dˇel´ı na: • periodick´ y – v´aˇzen´ y pr˚ umˇer se vypoˇc´ıt´av´a pouze jednou za mˇes´ıc vˇzdy k urˇcit´emu datu a pˇri vyskladnˇen´ı materi´alu se k ocenˇen´ı pouˇz´ıv´a cena z minul´eho obdob´ı (v nˇekter´ ych spoleˇcnostech se pro vyskladnˇen´ı materi´alu pouˇz´ıv´a pr˚ umˇern´a cena z aktu´aln´ıho obdob´ı) • promˇ enliv´ y – v´aˇzen´ y pr˚ umˇer se poˇc´ıt´a vˇzdy pˇri kaˇzd´em nov´em pˇr´ır˚ ustku urˇcit´eho materi´alu
2.3.2
Oceˇ nov´ an´ı metodou FIFO
Pojmenov´an´ı t´eto metody vzniklo z anglick´ ych slov first in, first out“ neboli ” v pˇrekladu prvn´ı dovnitˇr, prvn´ı ven. Pˇri vyskladnˇen´ı se principi´alnˇe oceˇ nuje hodnotou, kterou mˇely z´asoby, kter´e byly poˇr´ızeny jako prvn´ı. Tedy pˇri prvn´ım vyskladnˇen´ı dan´eho druhu materi´alu se oceˇ nuje cenou, kterou mˇel dan´ y materi´al pˇri prvn´ım naskladnˇen´ı. Pˇri druh´em vyskladnˇen´ı se oceˇ nuje cenou, kterou mˇel dan´ y materi´al pˇri druh´em naskladnˇen´ı atd.
2.3.3
Ocenˇ en´ı pevnˇ e stanovenou cenou
Pro oceˇ nov´an´ı z´asob je moˇzn´e zvolit metodu pevnˇe stanoven´e ceny. Princip t´eto metody spoˇc´ıv´a ve stanoven´ı pevn´e ceny, kter´a se bude pouˇz´ıvat k oceˇ nov´an´ı jak nakupovan´ ych, tak vyd´avan´ ych z´asob. Stanoven´ı pevn´e ceny nen´ı urˇceno ˇz´adn´ ym pˇredpisem a z´avis´ı tedy pouze na firmˇe jak´ ym zp˚ usobem si cenu zvol´ı. V praxi se vˇetˇsinou vol´ı cena, kter´a pokud moˇzno co nejv´ıce odpov´ıd´a oˇcek´avan´e cenˇe, nebo alespoˇ n pˇribliˇzn´ ym cen´am nakoupen´ ych z´asob. Tato metoda se pouˇz´ıv´a pˇredevˇs´ım pˇri ocenˇen´ı zboˇz´ı v maloobchodn´ıch prodejn´ach, kdy je tˇreba zn´at hodnotu zboˇz´ı v prodejn´ıch cen´ach. 6
3 Anal´yza skladov´ych syst´em˚ u V t´eto ˇc´asti pr´ace bude pops´ana anal´ yza pˇredevˇs´ım st´avaj´ıc´ıho syst´emu a tak´e dalˇs´ıch dvou skladov´ ych syt´em˚ u. Abychom se mohli vˇenovat anal´ yze skladov´ ych syst´em˚ u je nejprve nutn´e uv´est, co je to sklad a tak´e co je to skladov´ y syst´ em. Sklad – Sklad je vyhrazen´e m´ısto napˇr. budova nebo m´ıstnost, kter´a slouˇz´ı k uloˇzen´ı (uskladnˇen´ı) z´asob. Skladov´ y syst´ em – Pod t´ımto pojmem si m˚ uˇzeme pˇredstavit syst´em pro evidenci skladu resp. skladovan´ ych z´asob (pˇr´ıjem a v´ ydej materi´alu), syst´em pro u ´ˇctov´an´ı z´asob a jejich objedn´avek nebo syst´em pro inventarizaci. M˚ uˇzeme tedy ˇr´ıci, ˇze skladov´ y syst´em je syst´em pro spr´avu ekonomick´ ych operac´ı nad skladem.
3.1
Anal´ yza st´ avaj´ıc´ıho syst´ emu
Aktu´aln´ı syst´em s n´azvem Z´ asoby, je velmi star´ y software, kter´ y umoˇzn ˇuje zejm´ena skladovou evidenci a inventarizaci. Tento software byl vytvoˇren pˇr´ımo pro potˇreby firmy a je pouˇz´ıv´an dodnes. Funkˇcnost software byla z poˇc´atku bezprobl´emov´a, ovˇsem s v´ yvojem IT technologi´ı, napˇr. v´ yvojem operaˇcn´ıch syst´em˚ u, zaˇc´ınal postupnˇe ztr´acet krok s novˇejˇs´ımi syst´emy a postupnˇe se projevovalo ˇc´ım d´al v´ıce nedostatk˚ u a probl´em˚ u. Aplikace byla prim´arnˇe vytvoˇrena pro syst´em MS-DOS a pro spuˇstˇen´ı na novˇejˇs´ıch operaˇcn´ıch syst´emech (pˇredevˇs´ım na 64 bitov´ ych syst´emech) je bezpodm´ıneˇcnˇe nutn´e nastavit reˇzim kompatibility, pˇr´ıpadnˇe spustit aplikaci v programu DOSBox. Bˇehem uˇz´ıv´an´ı programu se ze zat´ım nezjiˇstˇen´ ych d˚ uvod˚ u n´ahodnˇe objevuje neoˇcek´avan´a chyba programu, program se ukonˇc´ı a doch´az´ı bud’ k ˇca´steˇcn´e, nebo i u ´pln´e ztr´atˇe dat. Tento probl´em by se dal alespoˇ n ˇc´asteˇcnˇe vyˇreˇsit pravideln´ ym z´alohov´an´ım. Zde ovˇsem nast´av´a probl´em, protoˇze software umoˇzn ˇuje z´alohu dat pouze na disketov´e jednotky, kter´e se v dneˇsn´ı dobˇe takˇrka nepouˇz´ıvaj´ı. Dalˇs´ı nedostatek, kter´ y vznikl postupem ˇcasu je ten, ˇze aplikace nedok´aˇze komunikovat s modern´ımi tisk´arnami a je prakticky nemoˇzn´e pˇr´ımo z programu vytisknout potˇrebn´e dokumenty. Tento probl´em se podaˇrilo vyˇreˇsit 7
Anal´yza skladov´ych syst´em˚ u
Anal´yza jin´ych skladov´ych syst´em˚ u
utilitou DOSPrinter, kter´ y dok´aˇze z dan´eho programu vytisknout potˇrebn´ y dokument, ale rozvrˇzen´ı textu obzvl´aˇstˇe pˇri v´ıce str´ankov´em tisku je velice ˇspatn´e. Jedn´ım z nedostatk˚ u, kter´e byly pˇri anal´ yze nalezeny je tak´e duplicita dat obsaˇzen´ ych v dan´e datab´azi. Vˇsechna pouˇz´ıvan´a data jsou uloˇzena ve dvou tabulk´ach. Prvn´ı tabulka obsahuje informace o pˇrijat´ ych nebo vydan´ ych materi´alech. Druh´a tabulka obsahuje informace o mnoˇzstv´ıch a pr˚ umˇern´ ych cen´ach materi´alu na skladˇe. V obou tabulk´ach vznik´a duplicita dat (napˇr. vˇzdy je nutn´e uv´est n´azev materi´alu a jeho k´od), kter´a by se dala v bˇeˇzn´ ych relaˇcnˇe orientovan´ ych datab´azov´ ych syst´emech snadno odstranit. 1 ˇ Je nutn´e podotknout, ˇze aplikace vyuˇz´ıv´a jako datab´azov´ y syst´em SRBD dBase, kter´ y byl prvn´ım ˇsiroce pouˇz´ıvan´ ym datab´azov´ ym syst´em pro mikropoˇc´ıtaˇce a i kdyˇz jej tv˚ urci povaˇzovali za relaˇcn´ı datab´azov´ y syst´em, nespln ˇoval vˇsechna krit´eria pro toto oznaˇcen´ı.
3.2
Anal´ yza jin´ ych skladov´ ych syst´ em˚ u
V t´eto ˇca´sti si struˇcnˇe pop´ıˇseme dalˇs´ı dva skladov´e programy, jejichˇz anal´ yza by mohla pˇrin´est pozitiva pro novˇe vznikaj´ıc´ı software. Prvn´ım je demoverze programu Sklad´ık [B´an(2002)] a druh´ ym pak ne pˇr´ımo skladov´ y software, ale sp´ıˇse pokladn´ı syst´em AWIS [Awi(2013)].
3.2.1
Sklad´ık 5.5.5 Demo
Tento software je pomˇernˇe uˇzivatelsky pˇr´ıvˇetiv´ y a jednoduch´ y na ovl´ad´an´ı. Velk´ ym pozitivem toho programu je jeho pˇrehledn´e uˇzivatelsk´e rozhran´ı a pˇredevˇs´ım moˇznost nastaven´ı zp˚ usobu oceˇ nov´an´ı cen pˇri v´ ydeji. Mezi tyto zp˚ usoby se ˇrad´ı pˇredevˇs´ım metoda v´ aˇ zen´ eho aritmetick´ eho pr˚ umˇ eru (jak periodick´eho, tak promˇenliv´eho), metoda FIFO a tak´e metoda ocenˇ en´ı pevnˇ e stanovenou cenou. Program pouˇz´ıv´a tzv. skladov´e karty materi´alu, coˇz mu umoˇzn ˇuje prov´adˇet hromadnou zmˇenu cen na kart´ach. Dalˇs´ı v´ ybornou funkc´ı softwaru je moˇznost hromadn´e fakturace v´ ydejek, kde je ovˇsem nutn´e evidovat i zak´azky podniku. Aplikace tak´e umoˇzn ˇuje import a export do souboru, kde vyuˇz´ıv´a jak vlastn´ı form´aty soubor˚ u, tak 1
ˇ co je to SRBD se dozv´ıte d´ ale v kapitole 6
8
Anal´yza skladov´ych syst´em˚ u
Anal´yza jin´ych skladov´ych syst´em˚ u
soubory form´atu csv a pro export tak´e PDF. S t´ım souvis´ı moˇznost z´alohov´an´ı a obnovov´an´ı dat. V neposledn´ı ˇradˇe program umoˇzn ˇuje editaci vˇsech pˇr´ıjmov´ ych a v´ ydajov´ ych doklad˚ u a tak´e souhrnn´ y pˇrehled vˇsech dodavatel˚ u a odbˇeratel˚ u, kter´e je moˇzn´e r˚ uznˇe editovat nebo informovat emailem.
3.2.2
Pokladn´ı syst´ em AWIS – Sklad
Jak jiˇz bylo ˇreˇceno, tento software je prim´arnˇe urˇcen jako pokladn´ı syst´em, ale obsahuje pomˇernˇe rozs´ahlou skladovou ˇca´st. D˚ uvodem pro v´ ybˇer tohoto programu k popisu je fakt, ˇze obsahuje pomˇernˇe ˇsirok´e moˇznosti skladov´ ych operac´ı. Tyto moˇznosti jsou zp˚ usobeny pˇredevˇs´ım t´ım, ˇze program umoˇzn ˇuje pouze metodu v´ aˇ zen´ eho promˇ enliv´ eho pr˚ umˇ eru pˇri v´ ydeji z´asob. Hlavn´ımi v´ yhodami t´eto aplikace jsou pomˇernˇe velk´e moˇznosti pro filtraci poloˇzek na skladˇe a tak´e jednoduch´e a rychl´e pˇrid´av´an´ı (pˇr´ıjem) a vyd´av´an´ı (v´ ydej) poloˇzek. Pˇri tˇechto operac´ıch program z´aroveˇ n hl´ıd´a maxim´aln´ı a minim´aln´ı mnoˇzstv´ı poloˇzek na skladˇe a tak´e hl´ıd´a dobu expirace jednotliv´ ych z´asob. S pˇr´ıjmem a v´ ydejem poloˇzek tak´e souvis´ı moˇznost jednoduch´e editace pˇr´ıjmov´ ych i v´ ydajov´ ych poloˇzek. Tato aplikace, stejnˇe jako jiˇz zm´ınˇen´a aplikace Sklad´ık 5.5.5 Demo, umoˇzn ˇuje fakturaci v´ ydajov´ ych doklad˚ u a tak´e vyuˇz´ıv´a soubory vlastn´ıho form´atu pro z´alohov´an´ı dat. Dalˇs´ımi pˇrednostmi tohoto programu jsou export do souboru form´atu xls, tak´e import ze souboru stejn´eho form´atu a jednoduch´a editace poloˇzek na skladˇe. Aplikace tak´e vyuˇz´ıv´a moˇznost spr´avy jednotliv´ ych uˇzivatel˚ u a je zde moˇzno kaˇzd´emu uˇzivateli nastavit r˚ uzn´a pr´ava pro spr´avu r˚ uzn´ ych sklad˚ u. Zaj´ımavost´ı softwaru je moˇznost sp´arov´an´ı s mobiln´ım zaˇr´ızen´ım, coˇz je vyuˇziteln´e sp´ıˇse pro pokladn´ı syst´em jako takov´ y, ale tato funkce umoˇzn ˇuje pˇres mobiln´ı zaˇr´ızen´ı prohl´ıˇzet i stav z´asob na skladˇe.
9
4 N´avrh funkˇcn´ıch vlastnost´ı V t´eto kapitole si nejprve upˇresn´ıme poˇzadavky zadavatele a n´aslednˇe pop´ıˇseme n´avrh nov´ ych funkˇcn´ıch vlastnost´ı, kter´e by bylo ve st´avaj´ıc´ım funkˇcn´ım syst´emu potˇreba vylepˇsit nebo pˇr´ıpadnˇe doplnit. Vˇsechny n´avrhy na vylepˇsen´ı vznikly na z´akladˇe pˇredchoz´ı kapitoly nebo na z´akladˇe potˇreb zadavatele.
4.1
Specifikace poˇ zadavk˚ u zadavatele
Podle poˇzadavk˚ u zadavatele by mˇel nov´ y syst´em obsahovat alespoˇ n stejn´e funkˇcn´ı vlastnosti jako st´avaj´ıc´ı. Mezi nejd˚ uleˇzitˇejˇs´ı poˇzadavky patˇr´ı: • spr´ ava v´ıce sklad˚ u – moˇznost uˇzivatele spravovat v´ıce sklad˚ u, kter´e nejsou vz´ajemnˇe propojeny, ale kaˇzd´ y sklad by mˇel aktu´alnˇe spravovat vˇzdy pouze jeden uˇzivatel • operace na skladˇ e – moˇznost pˇr´ıjm´an´ı a vyd´av´an´ı materi´alu a tak´e rozliˇsen´ı typu pˇr´ıjm˚ u (Pˇr´ıjem, Pˇr´ıjem dopravy) a v´ ydej˚ u (V´ ydej do spotˇreby, V´ ydej – prodej) • oceˇ nov´ an´ı cen pˇ ri v´ ydeji – automatick´ y v´ ypoˇcet pr˚ umˇern´ ych cen podle typu oceˇ nov´an´ı z´asob dan´eho skladu • evidence doklad˚ u – uchov´av´an´ı vˇsech doklad˚ u dan´eho skladu • generov´ an´ı sestav – generov´an´ı obratov´ ych soupisek, inventurn´ıch soupisek a kontroln´ıho opisu z´asob vˇzdy za urˇcit´e obdob´ı • tisk sestav – umoˇznˇen´ı tisku v´ yˇse zm´ınˇen´ ych vygenerovan´ ych sestav • z´ aloha dat – moˇznost z´alohov´an´ı a obnovov´an´ı dat
10
N´avrh funkˇcn´ıch vlastnost´ı
4.2
Specifikace nov´ych potˇrebn´ych vlastnost´ı
Specifikace nov´ ych potˇ rebn´ ych vlastnost´ı
• snaha o minimalizaci duplicity dat • u ´ prava rozvrˇ zen´ı tisku – vylepˇsen´ı rozvrˇzen´ı dat na str´ance pˇredevˇs´ım u v´ıce str´ankov´eho tisku • vylepˇ sen´ı interakce s uˇ zivatelem – napˇr´ıklad po zad´an´ı k´odu materi´alu se programovˇe dopln´ı pˇr´ısluˇsn´e poloˇzky k materi´alu • export dokument˚ u do pdf – pˇredevˇs´ım export sestav a invent´arn´ıch soupisek • umoˇ znˇ en´ı z´ alohy dat – pˇredevˇs´ım z´aloha dat jednotliv´ ych sklad˚ u • zajiˇ stˇ en´ı pˇ ripoˇ c´ıt´ av´ an´ı dopravy – pˇri zad´av´an´ı pˇr´ıjmov´ ych doklad˚ u je nutn´e pˇripoˇc´ıtat cenu dopravy k jednotkov´e cenˇe kaˇzd´e poloˇzky dokladu • moˇ znost zmˇ eny velikosti hlavn´ıho okna programu Tyto vlastnosti je bezpodm´ıneˇcnˇe nutn´e zaˇclenit do nov´eho skladov´eho syst´emu.
4.3
Dalˇ s´ı moˇ zn´ a rozˇ s´ıˇ ren´ı
• zaveden´ı v´ıce moˇ znost´ı filtrov´ an´ı dat v sestav´ ach • moˇ znost generov´ an´ı pˇ r´ıjemek/v´ ydejek – na z´akladˇe zadan´ ych poloˇzek a informac´ı moˇznost vygenerovat a n´aslednˇe vytisknout novou pˇr´ıjemku/v´ ydejku • moˇ znost individu´ aln´ıch uˇ zivatelsk´ ych nastaven´ı – napˇr´ıklad moˇznost nastaven´ı cest ukl´ad´an´ı vyexportovan´ ych dokument˚ u • moˇ znost u ´ pravy pˇ r´ısluˇ sn´ e pˇ r´ıjemky/v´ ydejky vˇ cetnˇ e poloˇ zek Tyto vlastnosti by bylo vhodn´e zaˇclenit do nov´eho software pˇredevˇs´ım kv˚ uli zkvalitnˇen´ı funkˇcnosti.
11
5 N´avrh nov´eho skladov´eho syt´emu V n´asleduj´ıc´ı kapitole bude vysvˇetleno co to je tˇr´ıvrstv´a architektura a proˇc byla pˇri n´avrhu zvolena. N´aslednˇe pop´ıˇseme strukturu syst´emu a n´avrh jednotliv´ ych ˇc´ast´ı syst´emu pomoc´ı UML diagramu.
5.1
Tˇ r´ıvrstv´ a architektura
Tˇr´ıvrstv´a architektura je jedna z nejzn´amˇejˇs´ıch v´ıcevrstv´ ych architektur pouˇz´ıvan´ ych v softwarov´em inˇzen´ yrstv´ı. Tuto architekturu lze povaˇzovat za n´avrhov´ y vzor a je nejˇcastˇeji pouˇz´ıv´ana u webov´ ych aplikac´ı. Tento n´avrhov´ y vzor je tvoˇren, jak jiˇz napov´ıd´a n´azev, tˇremi vrstvami. Tyto vrstvy se naz´ yvaj´ı prezentaˇ cn´ı, aplikaˇ cn´ı a datov´ a a jejich uspoˇr´ad´an´ı je vidˇet na obr´azku 5.1 [Man(2011)].
Obr´azek 5.1: Tˇr´ıvrstv´a architektura Struˇcn´a charakteristika tˇechto vrstev je n´asleduj´ıc´ı: • Prezentaˇ cn´ı vrstva – je nˇekdy tak´e naz´ yv´ana vrstvou uˇzivatelsk´eho rozhran´ı. Jej´ı hlavn´ı funkce je zobrazovat informace v uˇzivatelsky pˇr´ıvˇetiv´e a srozumiteln´e podobˇe. V t´eto vrstvˇe je moˇzn´e napˇr´ıklad kontrolovat zad´avan´e vstupy, nemˇela by ovˇsem prov´adˇet sloˇzit´e operace nad daty. Ve vˇetˇsinˇe pˇr´ıpad˚ u je prezentaˇcn´ı vrstva z´avisl´a na platformˇe a m˚ uˇze b´ yt r˚ uzn´a pro r˚ uzn´a zaˇr´ızen´ı ˇci platformy. 12
N´avrh nov´eho skladov´eho syt´emu
Struktura aplikace
• Aplikaˇ cn´ı vrstva – je prostˇredn´ı vrstvou v tˇr´ıvrstv´em modelu a lze ji tak´e naz´ yvat funkˇcn´ı vrstvou. Ve vˇetˇsinˇe pˇr´ıpad˚ u tvoˇr´ı tuto vrstvu j´adro aplikace. Vrstva je odpovˇedn´a za pˇrenos dat mezi prezentaˇcn´ı a datovou vrstvou a prov´ad´ı r˚ uzn´e transformace tˇechto dat. • Datov´ a vrstva – nˇekdy tak´e naz´ yv´ana datab´azovou vrstvou, je nejˇcastˇeji reprezentov´ana r˚ uzn´ ymi uloˇziˇsti dat. Ve vˇetˇsinˇe pˇr´ıpad˚ u tvoˇr´ı tyto uloˇziˇstˇe syst´emy ˇr´ızen´ı b´aze dat nebo jin´a perzistentn´ı uloˇziˇstˇe. Tato architektura byla zvolena pˇredevˇs´ım z d˚ uvodu pouˇ zit´ı datab´ azov´ eho syst´ emu. N´aslednˇe pak k v´ ybˇeru pˇrispˇely v´ yhody t´eto architektury. Mezi tyto v´ yhody patˇr´ı oddˇ elen´ı aplikaˇ cn´ı logiky od prezentaˇ cn´ı vrstvy a tak´e nez´ avislost na datov´ e vrstvˇ e. Dalˇs´ı v´ yhodou t´eto architektury je moˇ znost v´ ymˇ eny jednotliv´ ych vrstev, pˇredevˇs´ım prezentaˇcn´ı vrstvy, kde se tato v´ ymˇena uplatˇ nuje nejˇcastˇeji. Neposledn´ı v´ yhodou, kter´a vedla k v´ ybˇeru t´eto architektury byla tak´e moˇ znost jednoduch´ eho testov´ an´ı.
5.2
Struktura aplikace
Syst´em je postaven na jiˇz v´ yˇse zm´ınˇen´e tˇr´ıvrstv´e architektuˇre, kter´a ovˇsem nen´ı vyuˇz´ıv´ana v jej´ı striktn´ı podobˇe. Hlavn´ım rozd´ılem oproti striktnˇe dan´e tˇr´ıvrstv´e architektuˇre je ten, ˇze nˇekter´e operace nad daty (napˇr´ıklad pr˚ umˇerov´an´ı materi´alu za obdob´ı) jsou prov´adˇeny na z´akladˇe vol´an´ı uˇzivatelsk´ ych funkc´ı v datab´azov´em syst´emu a prob´ıhaj´ı tedy na datov´e vrstvˇe. D˚ uvodem t´eto odliˇsnosti je pˇr´ıpadn´a jednoduchost v´ ymˇeny aplikaˇcn´ı vrstvy, kde by nˇekter´e funkce musely b´ yt implementov´any znovu. Datovou vrstvu tedy reprezentuj´ı uˇzivatelsk´e funkce datab´azov´eho syst´emu a datab´aze syst´emu, kter´a je bl´ıˇze pops´ana v kapitole 6. Aplikaˇcn´ı vrstvu tvoˇr´ı j´adro aplikace (Jadro). Tato ˇc´ast syst´emu je zodpovˇedn´a za spojen´ı s datab´az´ı a tvoˇr´ı ˇca´st funkcionality syst´emu. To znamen´a, ˇze zajiˇst’uje pˇrenos dat mezi aplikac´ı a datab´az´ı a z´aroveˇ n upravuje tato data do kompatibiln´ıho form´atu pro pˇrenos. J´adro aplikace je detailnˇeji pops´ano v sekci 5.3.3. Prezentaˇcn´ı vrstva je tvoˇrena grafick´ ym uˇzivatelsk´ ym rozhran´ım aplikace (GUI). Pomoc´ı t´eto ˇc´asti syst´emu je pˇredevˇs´ım umoˇznˇeno uˇzivateli komunikovat s aplikac´ı. Tato ˇca´st tak´e pˇrev´ad´ı data do uˇzivatelsky pˇr´ıvˇetiv´eho form´atu a z´aroveˇ n hl´ıd´a spr´avn´ y form´at dat zadan´ ych od uˇzivatele. Prezentaˇcn´ı 13
N´avrh nov´eho skladov´eho syt´emu
Popis UML diagram˚ u tˇr´ıd
vrstva t´eto aplikace tak´e umoˇzn ˇuje export a tisk dat a je bl´ıˇze specifikov´ana v sekci 5.3.4
5.3
Popis UML diagram˚ u tˇ r´ıd
V t´eto podkapitole pˇristoup´ıme k popisu jednotliv´ ych ˇca´st´ı syst´emu (konkr´etnˇe j´adra aplikace a grafick´eho uˇzivatelsk´eho rozhran´ı). Pro spr´avn´e pochopen´ı je nejprve nutn´e uv´est co je to UML, co to je diagram tˇ r´ıd a jak´ y v´ yznam maj´ı jednotliv´e prvky tohoto diagramu.
5.3.1
UML
UML neboli Unified Modeling Language je jednotn´ y modelovac´ı jazyk, kter´ y slouˇz´ı k n´avrhu, specifikaci ˇci vizualizaci softwarov´ ych syst´em˚ u pˇri jejich v´ yvoji. Tento jazyk je standardizov´an a vyuˇz´ıv´a se zejm´ena pˇri n´avrhu objektovˇe orientovan´ ych syst´em˚ u. Historie UML sah´a do 90. let minul´eho stolet´ı, kdy se firmˇe Rational Software podaˇrilo vytvoˇrit standard UML na z´akladˇe spojen´ı nˇekolika metodik. Pozdˇeji vzniklo sdruˇzen´ı OMG (Object Management Group), kter´e tento jazyk rozˇsiˇruje a dohl´ıˇz´ı na jeho specifiˇ ap(2014)]. V souˇcasn´e dobˇe je ofici´aln´ı verz´ı tohoto jazyka verze 2.4.1 kaci [C´ a je vyv´ıjena a testov´ana verze 2.5 [Omg(2014)]. Jazyk UML zahrnuje nˇekolik diagram˚ u zachycuj´ıc´ıch r˚ uzn´e aspekty modelovan´eho syst´emu. Hierarchie tˇechto diagram˚ u je vidˇet na obr´azku 5.2. Tyto diagramy se dˇel´ı do dvou z´akladn´ıch skupin, na strukturn´ı diagramy a diagramy chov´ an´ı. Strukturn´ı diagramy popisuj´ı z jak´ ych ˇca´st´ı je syst´em sloˇzen´ y a diagramy chov´an´ı charakterizuj´ı, jak syst´em funguje. Diagramy chov´an´ı zahrnuj´ı jeˇstˇe jednu podskupinu diagram˚ u a to diagramy interakce, ˇ ap(2014)]. kter´e popisuj´ı interakci jednotliv´ ych ˇc´ast´ı syst´emu [C´
14
N´avrh nov´eho skladov´eho syt´emu
Popis UML diagram˚ u tˇr´ıd
Obr´azek 5.2: Hierarchie diagram˚ u UML
5.3.2
Diagram tˇ r´ıd
Diagram tˇr´ıd pˇredstavuje pohled na statickou strukturu syst´emu a jeho hlavn´ım u ´kolem je zn´azornit objekty syst´emu, jejich typy a vztahy mezi nimi. Tento diagram je tvoˇren dvˇema z´akladn´ımi prvky tˇ r´ıdami a vztahy. Tˇ r´ıda reprezentuje objekty se spoleˇcn´ ymi vlastnostmi a stejn´ ym chov´an´ım. Kaˇzd´a tˇr´ıda obsahuje vˇzdy n´azev a tak´e m˚ uˇze obsahovat v´yˇcet atribut˚ u a operac´ı vˇcetnˇe zn´azornˇen´ı jejich modifik´ator˚ u pˇr´ıstupnosti [Kuˇc(2007)]. Tyto souˇc´asti tˇr´ıd nen´ı d˚ uleˇzit´e bl´ıˇze popisovat, protoˇze nebyly v diagramech tˇr´ıd jednotliv´ ych ˇca´st´ı syst´emu pouˇzity. D´ale pak nˇekter´e tˇr´ıdy mohou zahrnovat tzv. stereotyp (pˇr´ıpadnˇe nˇekolik stereotyp˚ u), kter´e konkr´etnˇeji specifikuj´ı typ tˇr´ıdy. Stereotyp se pozn´a tak, ˇze je uzavˇren do dvojit´ ych ostr´ ych z´avorek (<<stereotyp>>). Pˇr´ıklad tˇr´ıdy diagramu tˇr´ıd, vˇcetnˇe stereotypu m˚ uˇzeme vidˇet na obr´azku 5.3. Ten vyobrazuje tˇr´ıdu s n´azvem ZpusobPrumerovani, typu C# enum, kter´a reprezentuje v´ yˇctov´ y typ (enumeration).
15
N´avrh nov´eho skladov´eho syt´emu
Popis UML diagram˚ u tˇr´ıd
Obr´azek 5.3: Pˇr´ıklad tˇr´ıdy diagramu tˇr´ıd Vazby mezi tˇr´ıdami popisuj´ı vztahy. Tyto prvky popisuj´ı chov´an´ı a komunikaci mezi tˇr´ıdami. Vztahy jsou realizov´any r˚ uzn´ ymi typy ˇcar, kter´e vyjadˇruj´ı konkr´etn´ı typy chov´an´ı a smˇer chov´an´ı je moˇzno vyj´adˇrit ˇsipkou. Nejˇcastˇejˇs´ı typy vztah˚ u jsou tyto: • Z´ avislost – je nejslabˇs´ı vztah, kter´ y ud´av´a z´avislost jedn´e tˇr´ıdy na druh´e. Z´avislost b´ yv´a realizov´ana pouˇzit´ım druh´e tˇr´ıdy jako lok´aln´ı promˇenn´e nebo parametru v metodˇe prvn´ı tˇr´ıdy. Tento typ vztahu zn´azorˇ nuje obr´azek 5.4, kter´ y ˇr´ık´a, ˇze tˇr´ıda Ridic pouˇz´ıv´a tˇr´ıdu Auto.
Obr´azek 5.4: Pˇr´ıklad z´avislosti • Asociace – urˇcuje vztah mezi dvˇema a v´ıce instancemi1 tˇr´ıd. Tento typ vazby typicky charakterizuje schopnost poslat zpr´avu jin´emu objektu pomoc´ı referenˇcn´ı promˇenn´e. Asociaci m˚ uˇzeme vidˇet na obr´azku 5.5. Ta vyjadˇruje, ˇze instance tˇr´ıdy Auto obsahuje instanci tˇr´ıdy Radio.
Obr´azek 5.5: Pˇr´ıklad asociace • Agregace – je volnˇejˇs´ı neˇz kompozice (viz d´ale) a z´aroveˇ n konkr´etnˇejˇs´ı neˇz asociace. Hlavn´ım z rozd´ıl˚ u tohoto typu vztahu oproti kompozici je, ˇze pˇri z´aniku instance hlavn´ı tˇr´ıdy nemus´ı zaniknou instance tˇr´ıdy vedlejˇs´ı. Pˇr´ıklad agregace m˚ uˇzeme vidˇet na obr´azku 5.6. Lze z nˇej vyˇc´ıst, ˇze tˇr´ıda Auto vyuˇz´ıv´a tˇr´ıdu Pasazer resp. nˇekolik jej´ıch instanc´ı a tak´e, ˇze pˇri z´aniku instance tˇr´ıdy Auto budou instance tˇr´ıdy Pasazer existovat d´al. 1
instance – synonymum k objektu tˇr´ıdy
16
N´avrh nov´eho skladov´eho syt´emu
Popis UML diagram˚ u tˇr´ıd
Obr´azek 5.6: Pˇr´ıklad agregace • Kompozice – je nejsilnˇejˇs´ım typem vazby. U kompozice, na rozd´ıl od agregace, doch´az´ı pˇri z´aniku instance hlavn´ı tˇr´ıdy i k z´aniku instance tˇr´ıdy vedlejˇs´ı. Na obr´azku 5.7 je zobrazeno, jak kompozice vypad´a. Tento obr´azek n´am ˇr´ık´a, ˇze tˇr´ıda Auto vyuˇz´ıv´a tˇr´ıdu Motor a pokud dojde k z´aniku instance tˇr´ıdy Auto, instance tˇr´ıdy Motor ztr´ac´ı smysl a zanik´a tak´e.
Obr´azek 5.7: Pˇr´ıklad kompozice • Realizace – sdˇeluje, ˇze jeden pˇredmˇet splˇ nuje urˇcitou podm´ınky toho druh´eho. Z program´atorsk´eho hlediska vˇetˇsinou realizace urˇcuje implementaci rozhran´ı. Pˇr´ıklad realizace zn´azorˇ nuje obr´azek 5.8. Tento pˇr´ıklad vyjadˇruje, ˇze tˇr´ıda Auto implementuje rozhran´ı IRiditelny, tedy obsahuje implementaci metod tohoto rozhran´ı.
Obr´azek 5.8: Pˇr´ıklad realizace • Generalizace (dˇ ediˇ cnost) – vyjadˇruje odvozen´ı jedn´e tˇr´ıdy od druh´e. Z programov´eho hlediska ˇr´ık´ame, ˇze jedna tˇr´ıda dˇed´ı od druh´e. Pˇr´ıklad tohoto typu vztahu je vidˇet na obr´azku 5.9, kde tˇr´ıda NakladniAutomobil je odvozena (dˇed´ı) od tˇr´ıdy Automobil.
Obr´azek 5.9: Pˇr´ıklad generalizace (dˇediˇcnosti)
17
N´avrh nov´eho skladov´eho syt´emu
Popis UML diagram˚ u tˇr´ıd
U vztah˚ u asociace, agregace a kompozice je moˇzn´e uv´adˇet jeˇstˇe n´ asobnosti vztah˚ u. Tento prvek diagramu urˇcuje kolik instanc´ı jedn´e tˇr´ıdy se vztahuje k instanci druh´e tˇr´ıdy. N´asobnost se zapisuje dvˇema zp˚ usoby. Prvn´ım zp˚ usobem je z´apis konkr´etn´ıho poˇctu instanc´ı (napˇr. 1, 2, 5, ...). Z´apis tohoto zp˚ usobu lze vidˇet na obr´azku 5.7, kter´ y vyjadˇruje, ˇze jedna instance tˇr´ıdy Auto vyuˇz´ıv´a pr´ avˇ e jednu instanci tˇr´ıdy Motor a obr´acenˇe. Druhou moˇznost´ı je z´apis intervalem instanc´ı (napˇr. 0..5, 0..*, 1..*, ...), kter´ y urˇcuje rozsah poˇctu instanc´ı. Symbol * urˇcuje neurˇcit´ y poˇcet instanc´ı. Na obr´azku 5.6 je tento zp˚ usob z´apisu zn´azornˇen. Ten vyjadˇruje, ˇze jedna instance tˇr´ıdy Auto vyuˇz´ıv´a aˇz 5 instanc´ı tˇr´ıdy Pasazer, ale nemus´ı vyuˇz´ıvat ˇz´adnou instanci t´eto tˇr´ıdy. Naopak jedna instance tˇr´ıdy Pasazer vyuˇz´ıv´a pr´avˇe jednu instanci tˇr´ıdy Auto.
5.3.3
J´ adro aplikace – Jadro
Jak jiˇz bylo uvedeno v sekci 5.2, tato ˇca´st syst´emu tvoˇr´ı aplikaˇcn´ı vrstvu a zajiˇst’uje pˇredevˇs´ım spojen´ı s datab´az´ı. Strukturu t´eto ˇc´asti syst´emu zn´azorˇ nuje diagram tˇr´ıd j´adra aplikace, kter´ y je pˇriloˇzen v pˇr´ıloze A. Vˇetˇsina tˇr´ıd, kromˇe tˇr´ıd v´ yˇctov´ ych typ˚ u, tˇr´ıdy Spojeni a tˇr´ıdy PrevodEnum se sv´ ymi atributy ztotoˇzn ˇuj´ı s pˇr´ısluˇsn´ ymi tabulkami v datab´azi. V tomto diagramu je nejd˚ uleˇzitˇejˇs´ı tˇr´ıdou tˇr´ıda Spojeni. Tato tˇr´ıda zajiˇst’uje komunikaci s datab´azov´ ym syst´emem a vyuˇz´ıv´a ji proto vˇetˇsina tˇr´ıd. Dalˇs´ı d˚ uleˇzitou tˇr´ıdou je tˇr´ıda Doklad, kter´a zajiˇst’uje veˇsker´e skladov´e operace. Kaˇzd´ y doklad tak´e mus´ı obsahovat poloˇzky, kter´e sami o sobˇe nemaj´ı ˇz´adn´ y v´ yznam, proto je mezi tˇr´ıdou Doklad a tˇr´ıdou Polozka kompozice. Z´aroveˇ n tak´e instance tˇr´ıdy Polozka ned´av´a bez materi´alu ˇza´dn´ y smysl a proto je tento vztah zn´azornˇen rovnˇeˇz kompozic´ı. Tato ˇc´ast syst´emu tak´e pˇrev´ad´ı data do form´atu vhodn´eho pro pˇrenos mezi aplikac´ı a datab´az´ı. K tomuto u ´ˇcelu pˇrisp´ıv´a tˇr´ıda PrevodEnum, kter´a, jak jiˇz napov´ıd´a n´azev, pˇrev´ad´ı instance tˇr´ıd v´ yˇctov´ ych typ˚ u na ˇretˇezce a opaˇcnˇe.
5.3.4
Grafick´ e uˇ zivatelsk´ e rozhran´ı aplikace – GUI
Grafick´e uˇzivatelsk´e rozhran´ı aplikace reprezentuje prezentaˇcn´ı vrstvu syst´emu a jak bylo uvedeno v sekci 5.2, zajiˇst’uje hlavnˇe komunikaci s uˇzivatelem. Struktura t´eto ˇca´sti aplikace je vyobrazena v diagramu tˇr´ıd v pˇr´ıloze B. 18
N´avrh nov´eho skladov´eho syt´emu
Popis UML diagram˚ u tˇr´ıd
V tomto diagramu je nejd˚ uleˇzitˇejˇs´ı tˇr´ıdou tˇr´ıda HlavniOkno. Tato tˇr´ıda zprostˇredkov´av´a nejvˇetˇs´ı ˇca´st komunikace s uˇzivatelem a proto vyuˇz´ıv´a t´emˇeˇr vˇsechny ostatn´ı tˇr´ıdy. Z t´eto tˇr´ıdy je tak´e moˇzn´e ovl´adat celou aplikaci. Dalˇs´ı d˚ uleˇzitou tˇr´ıdou je tˇr´ıda DokladFormular. Ta zajiˇst’uje vˇsechny typy skladov´ ych operac´ı a to i vˇcetnˇe jejich u ´prav. Tato tˇr´ıda vyuˇz´ıv´a tˇr´ıdu DokladKontrolka, kter´a je tvoˇrena tˇr´ıdami MujDateTimePicker a MujDataGridView. Tyto 3 tˇr´ıdy jsou na sobˇe existenˇcnˇe z´avisl´e, jak ukazuje diagram a bez instance tˇr´ıdy DokladFormular nemaj´ı v´ yznam. Proto jsou vztahy mezi nimi vyj´adˇreny kompozic´ı. D´ale je nutn´e zm´ınit tˇr´ıdy PrehledDokladu a InventurniSoupiska. D´ıky tˇemto tˇr´ıd´am je umoˇznˇeno prohl´ıˇzet veˇsker´e sestavy a d´ıky implementaci rozhran´ı IExportovatelny je tak´e moˇzno vytisknout ˇci exportovat tyto sestavy. I tyto tˇr´ıdy, stejnˇe jako tˇr´ıda DokladFormular, jsou tvoˇreny instancemi jin´ ych tˇr´ıd, kter´e jsou v kompozitn´ım vztahu k tˇemto tˇr´ıd´am.
19
6 N´avrh datab´aze V t´eto kapitole si kr´atce pop´ıˇseme nˇekolik datab´azov´ ych syst´em˚ u vhodn´ ych ˇ pro nov´ y skladov´ y syst´em a tak´e zd˚ uvodn´ıme jak´ y SRBD byl vybr´an. N´aslednˇe pop´ıˇseme n´avrh relaˇcn´ıho datab´azov´eho modelu novˇe vznikaj´ıc´ı aplikace. Neˇz ovˇsem zaˇcneme charakterizovat jednotliv´e ˇca´sti t´eto kapitoly, bude ˇ vhodn´e nejprve vysvˇetlit co je to SRBD a relaˇ cn´ı datab´ azov´ y model. ˇ SRBD – Syst´em ˇr´ızen´ı b´aze dat je v podstatˇe poˇc´ıtaˇcov´ y syst´em zabezpeˇcuj´ıc´ı definov´an´ı struktury dat, moˇznost manipulace s daty, ochranu dat a tak´e komunikaci syst´emu s uˇzivatelem. Relaˇ cn´ı datab´ azov´ y model – Tento model vych´az´ı z matematick´eho relaˇcn´ıho modelu a liˇs´ı se pˇredevˇs´ım t´ım, ˇze obsahuje sch´ema relace. Z´akladem relaˇcn´ıho modelu je relace, kterou reprezentuje tabulka. Kaˇzd´a tabulka obsahuje pˇresnˇe definovan´e atributy (sloupce) a tato definice ud´av´a sch´ema relace. Jednotliv´e z´aznamy dat v tˇechto tabulk´ach se pak naz´ yvaj´ı n-tice a vztahy mezi tabulkami se naz´ yvaj´ı vazby.
6.1
Vhodn´ e datab´ azov´ e syst´ emy
Z velk´eho mnoˇzstv´ı dostupn´ ych datab´azov´ ych syst´em˚ u byli z tˇech nejzn´aˇ mˇejˇs´ıch zvoleni 3 z´astupci. Tyto SRBD byly voleny zejm´ena na z´akladnˇe cenov´e dostupnosti (pˇredevˇs´ım zdarma dostupn´e datab´azov´e syst´emy) a tak´e na z´akladˇe moˇznosti pˇr´ım´e komunikace s platformou Microsoft .NET. Mezi 3 z´astupce patˇr´ı MySQL, PostgreSQL a Microsoft SQL Server. U poslednˇe zmiˇ novan´eho syst´emu bylo pohl´ıˇzeno sp´ıˇse na druh´e krit´erium v´ ybˇeru a to zejm´ena zde dvou d˚ uvod˚ u. Prvn´ım je, ˇze komunikace mezi t´ımto syst´emem a platformou Microsoft .NET je oproti ostatn´ım syst´em˚ um na bezkonkurenˇcnˇe nejlepˇs´ı u ´rovni a druh´ ym d˚ uvodem je integrace bˇeho” v´eho prostˇred´ı .NET CLR do datab´azov´eho syst´emu, coˇz umoˇzn ˇuje implementovat datab´azov´e objekty v nˇekter´em z dostupn´ ych jazyk˚ u t´eto platformy“ [Aga(2009), s. 21]. Tyto z´astupce si d´ale struˇcnˇe charakterizujeme.
20
N´avrh datab´aze
6.1.1
Vhodn´e datab´azov´e syst´emy
MySQL
Datab´azov´ y syst´em MySQL je jedn´ım z nejrozˇs´ıˇrenˇejˇs´ıch open source1 datab´azov´ ych syst´em˚ u. Podle [Mya(2014)] bylo v cel´e historii MySQL staˇzeno nebo distribuov´ano v´ıce neˇz 100 mili´on˚ u kopi´ı. Tento syst´em vytvoˇrila firma MySQL AB a v souˇcasn´e dobˇe je vyv´ıjen a vlastnˇen firmou Oracle Corporation. Popularita tohoto syst´emu je pˇredevˇs´ım v tom, ˇze je nab´ızen jako souˇc´ast softwarov´eho bal´ıˇcku LAMP (Linux, Apache, MySQL, PHP), kter´ y je vyuˇz´ıv´am pro tvorbu webov´ ych aplikac´ı. Mezi hlavn´ı v´ yhody toho syst´emu patˇr´ı jeho multiplatformnost, tedy moˇznost instalace a provozov´an´ı pˇredevˇs´ım na operaˇcn´ıch syst´emech Microsoft Windows, Linux a tak´e na nˇekolika dalˇs´ıch unixov´ ych syst´emech. Dalˇs´ı v´ yhodou tohoto syst´emu je jeho vysok´ y v´ ykon, rychlost a relativn´ı jednoduchost. ˇ SRBD MySQL je distribuov´an v nˇekolika edic´ıch. Z´akladn´ı edic´ı je MySQL Community Edition, kter´a je volnˇe dostupn´a. Dalˇs´ı tˇri nab´ızen´e edice MySQL Standard Edition, MySQL Enterprise Edition a MySQL Cluster Carrier Grade Edition jsou komerˇcn´ı a placen´e verze, kter´e se od z´akladn´ı edice liˇs´ı r˚ uzn´ ymi rozˇsiˇruj´ıc´ımi funkcemi a n´astroji.
6.1.2
PostgreSQL
Datab´azov´ y syst´em PostgreSQL je objektovˇe-relaˇcn´ı open-source datab´azov´ y syst´em, kter´ y je jedn´ım z hlavn´ıch konkurent˚ u MySQL. Tento syst´em p˚ uvodnˇe vznikl jako projekt Ingres na Kalifornsk´e univerzitˇe v Berkley. Vedouc´ım tohoto projektu byl prof. Michael Stonebraker. V souˇcasn´e dobˇe syst´em vyv´ıjej´ı v´ yvoj´aˇri z PostgreSQL Global Development Group a podl´eh´a licenci PostgreSQL License, coˇz je svobodn´a open-source licence podobn´a BSD nebo MIT licenc´ım [Poh(2014)]. Hlavn´ı v´ yhodou PostgreSQL je stejnˇe jako u MySQL jeho multiplatformnost. Tento syst´em je moˇzn´e provozovat na vˇetˇsinˇe Unixov´ ych syst´em˚ u vˇcetnˇe Linuxu a tak´e na platformˇe Microsoft Windows. Dalˇs´ı znaˇcnou v´ yhodou oproti jin´ ym datab´azov´ ym syst´em˚ um je spolehlivost a stabilita tohoto ˇ SRBD. Neposledn´ı a tak´e nespornou v´ yhodou je moˇ znost bˇ ehu uˇ zivatelsk´ ych funkc´ı v nˇ ekolika programovac´ıch jazyc´ıch, mezi kter´e patˇr´ı 1
open source – software s volnˇe dostupn´ ymi zdrojov´ ymi k´ody
21
N´avrh datab´aze
Zvolen´y datab´azov´y syst´em
kromˇe SQL tak´e jazyky C, Perl, Python nebo speci´aln´ı PL/pgSQL, kter´ y vych´az´ı z PL/SQL od firmy Oracle. Zaj´ımavou vlastnost´ı toho syst´emu je dˇ ediˇ cnost. Syst´em dovoluje oddˇedit od rodiˇcovsk´e tabulky nˇekter´e vlastnosti, coˇz se v praxi uplatˇ nuje pˇredevˇs´ım na dˇedˇen´ı sloupc˚ u z rodiˇcovsk´e tabulky do tabulky potomka [Poi(2014)].
6.1.3
Microsoft SQL Server
Prvn´ı verze datab´azov´eho syst´em Microsoft SQL Server byla uvedena na trh v roce 1989 a byla urˇcena pouze pro operaˇcn´ı syst´em OS/2 od firmy IBM. Na tehdejˇs´ım v´ yvoji tohoto syst´emu se pod´ılely kromˇe firmy Microsoft tak´e firma Sybase a firma Ashton-Tate. V roce 1992 s n´astupem operaˇcn´ıho syst´emu Windows NT 3.1, vyˇsel i datab´azov´ y syst´em pro tuto platformu. N´aslednˇe zaˇcal Microsoft datab´azov´ y syst´em vyv´ıjet samostatnˇe bez spolupracuj´ıc´ıch firem. Kromˇe SQL serveru tato firma vydala jeˇstˇe dva popul´arn´ı datab´azov´e syst´emy s n´azvy Microsoft Access a Microsoft FoxPro. [You(2012)] ˇ Tento SRBD je nab´ızen v nˇekolika komerˇcn´ıch edic´ıch a tak´e v jedn´e bezplatn´e edici s n´azvem Express. Tato edice je vyv´ıjena pro snadnou a spolehlivou spolupr´aci s platformou Microsoft .NET a obsahuje oproti jin´ ym datab´azov´ ym syst´em˚ um znaˇcn´a omezen´ı. Jedn´ım z omezen´ı je velikost datab´ aze (maxim´aln´ı velikost je 10GB) a druh´ ym omezen´ım je vyuˇ z´ıv´ an´ı pouze 1 GB operaˇ cn´ı pamˇ eti. Do nev´ yhod tohoto syt´emu lze zaˇradit i nemoˇznost provozov´an´ı na jin´ ych syst´emech neˇz je Microsoft Windows. Naopak v´ yhodou toho syst´emu je jazyk Transact-SQL, kter´ y stejnˇe jako nˇekolik jazyk˚ u u PostgreSQL, umoˇzn ˇuje definovat uˇzivatelsk´e funkce pomoc´ı procedur´aln´ıho programov´an´ı. Dalˇs´ı v´ yhodou tohoto syst´emu je, jak jiˇz bylo uvedeno v´ yˇse, v´ yborn´ a kompatibilita s platformou Microsoft .NET. Mezi v´ yhody m˚ uˇzeme podle [Mic(2012)] zaˇradit i vysokou u ´ roveˇ n zabezpeˇ cen´ı a tak´e v´ ykonnost tohoto syst´emu.
6.2
Zvolen´ y datab´ azov´ y syst´ em
Ze tˇr´ı v´ yˇse uveden´ ych vhodn´ ych datab´azov´ ych syst´em˚ u byl i po poradˇe se zadavatelem vybr´an datab´azov´ y syst´em PostgreSQL. Hlavn´ım d˚ uvodem pro
22
N´avrh datab´aze
N´avrh relaˇcn´ıho datab´azov´eho modelu
v´ ybˇer tohoto syst´emu byl fakt, ˇze server zadavatele bˇeˇz´ı na operaˇcn´ım syst´emu Linux a proto Microsoft SQL Server nepˇripadal v u ´vahu. Pˇri rozhodov´an´ı mezi MySQL a PostgreSQL byla br´ana v u ´vahu pˇredevˇs´ım v´ ykonnost pˇri sloˇzitˇejˇs´ıch a n´aroˇcnˇejˇs´ıch operac´ıch. D´ale tak´e skuteˇcnost, ˇze PostgreSQL je v´ıce propracovanˇejˇs´ı z hlediska transakc´ı a integrity dat. Rovnˇeˇz byla br´ana vu ´vahu v´ yˇse zm´ınˇen´a spolehlivost a stabilita. Ve prospˇech vybran´eho datab´azov´eho syt´emu, hr´ala tak´e m´enˇe d˚ uleˇzit´a krit´eria jako v´ ybornˇe propracovan´a dokumentace nebo uˇzivatelsky pˇr´ıvˇetiv´e grafick´e administraˇcn´ı rozhran´ı pro spr´avu datab´aze s n´azvem pgAdmin, kter´e obsahuje i ˇceskou lokalizaci.
6.3
N´ avrh relaˇ cn´ıho datab´ azov´ eho modelu
V t´eto ˇca´sti pr´ace se budeme zab´ yvat n´avrhem samotn´e datab´aze syst´emu. Datab´aze byla vytvoˇrena na z´akladˇe poˇzadavk˚ u zadavatele a obsahuje 9 entit. Tyto entity, jejich atributy a vztahy mezi tˇemito entitami si d´ale struˇcnˇe pop´ıˇseme. Sch´ema kaˇzd´e entity bude pops´ano tabulkou. Kaˇzd´a tabulka obsahuje n´azev atributu, datov´ y typ a struˇcn´ y popis. D´ale pak sloupec s oznaˇcen´ım Kl´ıˇ c“, kter´ y urˇcuje, zda dan´ y atribut figuruje jako prim´arn´ı (PK) nebo ciz´ı ” (FK) kl´ıˇc a tak´e sloupec s oznaˇcen´ım Null“ urˇcuj´ıc´ı, zda-li pˇr´ısluˇsn´ y atribut ” m˚ uˇze b´ yt pr´azdn´ y (Ano) nebo nikoli (Ne). Pro pˇrehlednost je v pˇr´ıloze C uveden relaˇcn´ı model datab´aze, kter´ y mimo jin´e obsahuje tak´e definice prim´arn´ıch a ciz´ıch kl´ıˇc˚ u, povinn´e poloˇzky kaˇzd´e tabulky a v nˇekter´ ych tabulk´ach tak´e unik´atn´ı poloˇzky.
6.3.1
Tabulka Sklad
Tato tabulka obsahuje informace o vˇsech evidovan´ ych a spravovan´ ych skladech. Jednotliv´e atributy jsou uvedeny v tabulce 6.1.
23
N´avrh datab´aze
N´avrh relaˇcn´ıho datab´azov´eho modelu
N´ azev atributu
Datov´ y typ
Popis
ID skladu
integer
identifik´ ator skladu
Nazev skladu
varchar (50)
n´ azev skladu
Mesto ID mesta
integer
identifik´ ator mˇ esta, ve kter´ em sklad
Kl´ıˇ c
Null
PK
Ne
–
Ne
FK
Ne
s´ıdl´ı Ulice
varchar (50)
ulice, ve kter´ e sklad s´ıdl´ı
–
Ne
Zpusob prumerovani
varchar (15)
typ zp˚ usobu pr˚ umˇ erov´ an´ı skladu
–
Ne
Spravovan
boolean
–
Ne
(Periodick´ y, Promˇ enliv´ y) urˇ cuje, zda-li je sklad aktu´ alnˇ e spravov´ an
Tabulka 6.1: Atributy tabulky Sklad
6.3.2
Tabulka Uzivatel
Tato tabulka slouˇz´ı k evidenci uˇzivatel˚ u a tak´e obsahuje informace potˇrebn´e pro pˇrihl´aˇsen´ı uˇzivatele. Atributy t´eto entity jsou zobrazeny v tabulce 6.2. N´ azev atributu
Datov´ y typ
Popis
Kl´ıˇ c
Null
ID uzivatele
integer
identifik´ ator uˇ zivatele
Login
varchar (35)
pˇrihlaˇsovac´ı jm´ eno uˇ zivatele
PK
Ne
–
Heslo
varchar (35)
Ne
heslo uˇ zivatele
–
Ne
Jmeno Prijemni
varchar (50)
jm´ eno uˇ zivatele
–
Ne
varchar (50)
pˇr´ıjmen´ı uˇ zivatele
–
Ne
Tabulka 6.2: Atributy tabulky Uzivatel
6.3.3
Tabulka Spravuje
Tabulka Spravuje slouˇz´ı jako spojovac´ı tabulka, kter´a spojuje tabulky Sklad a Uzivatel. Tato entita n´am definuje, jak´e sklady mohou spravovat pˇr´ısluˇsn´ı uˇzivatel´e. Sch´ema t´eto entity m˚ uˇzeme vidˇet v tabulce 6.3 N´ azev atributu
Datov´ y typ
Popis
Kl´ıˇ c
Null
Sklad ID skladu
integer
identifik´ ator skladu
PK, FK
Ne
Uzivatel ID uzivatele
integer
identifik´ ator uˇ zivatele
PK, FK
Ne
Tabulka 6.3: Atributy tabulky Spravuje
24
N´avrh datab´aze
6.3.4
N´avrh relaˇcn´ıho datab´azov´eho modelu
Tabulka Mesto
Tabulka Mesto obsahuje informace o mˇestech, resp. n´azvy mˇest a slouˇz´ı pˇredevˇs´ım k lokalizaci sklad˚ u a dodavatel˚ u. V tabulce 6.4 jsou pops´any atributy t´eto entity. N´ azev atributu
Datov´ y typ
Popis
ID mesta
integer
identifik´ ator mˇ esta
Nazev
varchar (50)
n´ azev mˇ esta
Kl´ıˇ c
Null
PK
Ne
–
Ne
Tabulka 6.4: Atributy tabulky Mesto
6.3.5
Tabulka Dodavatel
Tato tabulka eviduje dodavatele materi´al˚ u. Zde je nutn´e podotknout, ˇze tato evidence je znaˇcnˇe zjednoduˇsen´a a to zejm´ena z toho d˚ uvodu, ˇze informace o dodavatel´ıch na dokladech jsou pouze informativn´ı a pˇr´ıpadn´e bliˇzˇs´ı informace nejsou pro zadavatele podstatn´e. V n´asleduj´ıc´ı tabulce (tabulka 6.5) jsou pops´any atributy t´eto entity. N´ azev atributu
Datov´ y typ
Popis
ID dodavatele
integer
identifik´ ator dodavatele
ICO
integer
identifikaˇ cn´ı ˇ c´ıslo organizace dodavate-
Kl´ıˇ c
Null
PK
Ne
–
Ne
–
Ne
FK
Ne
le Nazev
varchar (50)
n´ azev dodavatele
Mesto ID mesta
integer
identifik´ ator mˇ esta, kde se nach´ az´ı hlavn´ı s´ıdlo dodavatele
Tabulka 6.5: Atributy tabulky Dodavatel
6.3.6
Tabulka Doklad
Tato tabulka je jednou z nejd˚ uleˇzitˇejˇs´ıch tabulek cel´e datab´aze. Tabulka obsahuje evidenci vˇsech doklad˚ u vztahuj´ıc´ıch se k dan´emu skladu a urˇcuje veˇsker´e pohyby na skladˇe. Atributy t´eto entity jsou charakterizov´any v tabulce 6.6.
25
N´avrh datab´aze
N´avrh relaˇcn´ıho datab´azov´eho modelu
N´ azev atributu
Datov´ y typ
Popis
ID dokladu
integer
identifik´ ator dokladu
Kl´ıˇ c
Null
PK
Cislo dokladu
integer
Ne
ˇ c´ıslo dokladu
–
Ne
Datum Typ dokladu
date
datum dokladu
–
Ne
varchar (20)
typ dokladu (Pˇr´ıjem, Pˇr´ıjem dopravy,
–
Ne
FK
Ne
FK
Ano
FK
Ne
–
Ne
V´ ydej do spotˇreby, V´ ydej – prodej) Uzivatel ID uzivatele
integer
Dodavatel ID dodavatele
integer
identifik´ ator uˇ zivatele, ke zjiˇstˇ en´ı, kdo spravoval dan´ y doklad identifik´ ator dodavatele, pro informaci o dodavateli na dokladu
Sklad ID skladu
integer
Moznost upravy
boolean
identifik´ ator skladu, pro zjiˇstˇ en´ı k jak´ emu skladu doklad patˇr´ı informace o moˇ znosti zmˇ eny poloˇ zek dokladu
Tabulka 6.6: Atributy tabulky Doklad
6.3.7
Tabulka Polozka
Tato entita reprezentuje jednotliv´e poloˇzky dokladu. Sch´ema tabulky definuje atributy potˇrebn´e pro vˇsechny typy doklad˚ u. Pˇrehled tˇechto atribut˚ u je uveden v tabulce 6.7. N´ azev atributu
Datov´ y typ
Popis
Kl´ıˇ c
Null
ID polozky
integer
identifik´ ator poloˇ zky
PK
Ne
Mnozstvi
double
mnoˇ zstv´ı materi´ alu dan´ e poloˇ zky
–
Ano
Celkova cena
double
celkov´ a cena materi´ alu poloˇ zky
–
Ne
Vcetne dopravy
boolean
informuje, zda-li je celkov´ a cena
–
Ano
FK
Ne
FK
Ne
poloˇ zky vˇ cetnˇ e dopravy Material ID materialu
integer
identifik´ ator materi´ alu, kter´ y ud´ av´ a k jak´ emu materi´ alu se poloˇ zka vztahuje
Doklad ID dokladu
integer
identifik´ ator dokladu, urˇ cuje k jak´ emu dokladu se v´ aˇ ze poloˇ zka
Tabulka 6.7: Atributy tabulky Polozka
6.3.8
Tabulka Material
Tato tabulka eviduje jednotliv´e materi´aly v r´amci skladu a informace o tˇechto materi´alech. Jednotliv´e atributy t´eto entity vyobrazuje tabulka 6.8 26
N´avrh datab´aze
N´avrh relaˇcn´ıho datab´azov´eho modelu
N´ azev atributu
Datov´ y typ
Popis
ID materialu
integer
identifik´ ator materi´ alu
Kl´ıˇ c
Null
PK
Kod materialu
integer
k´ od materi´ alu, kter´ y je unik´ atn´ı
Ne
–
Ne
Nazev
varchar (50)
Merna jednotka
varchar (5)
n´ azev materi´ alu
–
Ne
mˇ ern´ a jednotka materi´ alu (kg, t, l, ks)
–
Sklad ID skladu
integer
identifik´ ator skladu, kter´ y ud´ av´ a
Ne
FK
Ne
vzhledem ke skladu
k jak´ emu skladu se materi´ al vztahuje
Tabulka 6.8: Atributy tabulky Material
6.3.9
Tabulka Prumer
Tabulka Prumer je d˚ uleˇzitou tabulkou pro sklady s periodick´ ym pr˚ umˇerov´an´ım. V tabulce jsou uchov´av´any periodick´e v´aˇzen´e pr˚ umˇery vˇsech materi´al˚ u v dan´ ych obdob´ıch, kter´e se vyuˇz´ıvaj´ı pˇri v´ ydej´ıch materi´al˚ u. Tabulka 6.9 popisuje jednotliv´e atributy t´eto entity. N´ azev atributu
Datov´ y typ
Popis
Kl´ıˇ c
Null
ID prumeru
integer
Sklad ID skladu
integer
identifik´ ator pr˚ umˇ eru
PK
Ne
identifik´ ator skladu, kter´ y urˇ cuje,
FK
Ne
FK
Ne
ke kter´ emu skladu se pr˚ umˇ er vztahuje Material ID materialu
integer
identifik´ ator materi´ alu, kter´ y urˇ cuje, ke kter´ emu materi´ alu se pr˚ umˇ er vztahuje
Mnozstvi k datu
double
mnoˇ zstv´ı materi´ alu v dan´ em obdob´ı
–
Ne
Prumerna cena k datu
double
pr˚ umˇ ern´ a cena materi´ alu v dan´ em
–
Ne
Datum
date
–
Ne
obdob´ı datum urˇ cuj´ıc´ı obdob´ı, ke kter´ emu se vztahuje dan´ y pr˚ umˇ er
Tabulka 6.9: Atributy tabulky Prumer Stejnˇe jako tabulka Spravuje slouˇzila tato entita jako spojovac´ı tabulka s n´azvem Skladuje, kde prim´arn´ı kl´ıˇc tvoˇrily atributy Sklad ID skladu, May priterial ID materialu a atribut Datum. Pozdˇeji byl ovˇsem vytvoˇren umˇel´ m´arn´ı kl´ıˇc ID prumeru a to pˇredevˇs´ım z d˚ uvodu jednoduˇsˇs´ıho pˇr´ıstupu k z´aznam˚ um tabulky, protoˇze pˇristupovat k z´aznam˚ um, zejm´ena pomoc´ı data, nen´ı pˇr´ıliˇs vhodn´e. N´aslednˇe pak byla tabulka pˇrejmenov´ana na souˇcasn´ y n´azev, protoˇze l´epe odpov´ıd´a obsahu tabulky.
27
N´avrh datab´aze
6.3.10
N´avrh relaˇcn´ıho datab´azov´eho modelu
Popis vztah˚ u datab´ aze
V t´eto ˇc´asti pr´ace si struˇcnˇe pop´ıˇseme vztahy mezi jednotliv´ ymi entitami datab´aze. U vztah˚ u nebudou uv´adˇeny kardinality, protoˇze jsou uvedeny v datab´azov´em modelu (pˇr´ıloha C) a nen´ı nutn´e je zde uv´adˇet znovu. • vztah Sklad - Mesto – slouˇz´ı k identifikaci polohy skladu. Ze vztahu vypl´ yv´a, ˇze kaˇzd´ y Sklad s´ıdl´ı pr´avˇe v jednom mˇestˇe a tak´e, ˇze v jednom mˇestˇe m˚ uˇze s´ıdlit jeden nebo nˇekolik sklad˚ u. • vztah Sklad - Material – urˇcuje, jak´ y materi´al je skladov´an v pˇr´ısluˇsn´em skladu. Sklad m˚ uˇze skladovat jeden nebo v´ıce materi´al˚ u, materi´al je skladov´an pr´avˇe jedn´ım skladem. • vztah Sklad - Uzivatel – typu M:N, spojuje spojovac´ı tabulka Spravuje a definuje, jak´e sklady m˚ uˇze spravovat pˇr´ısluˇsn´ y uˇzivatel. Kaˇzd´ y uˇzivatel spravuje jeden nebo v´ıce sklad˚ u, nemus´ı ale spravovat ˇz´adn´ y. Oproti tomu kaˇzd´ y sklad m˚ uˇze spravovat jeden nebo v´ıce uˇzivatel˚ u, pˇr´ıpadnˇe ho nemus´ı spravovat nikdo. • vztah Sklad - Prumer – definuje, jak´e pr˚ umˇern´e ceny materi´al˚ u v dan´em obdob´ı obsahuje dan´ y sklad. Kaˇzd´ y sklad m˚ uˇze obsahovat jeden nebo nˇekolik pr˚ umˇer˚ u a kaˇzd´ y pr˚ umˇer materi´alu se mus´ı vztahovat pr´avˇe k jednomu skladu. • vztah Sklad - Doklad – ˇr´ık´a, jak´ y materi´al je moˇzno skladovat v dan´em skladu. Materi´al mus´ı b´ yt skladov´an pr´avˇe v jednom skladu, ale sklad mus´ı skladovat jeden nebo v´ıce materi´al˚ u, pˇr´ıpadnˇe nemus´ı skladovat ˇz´adn´ y materi´al. • vztah Dodavatel - Mesto – slouˇz´ı k identifikaci hlavn´ıho s´ıdla dodavatele. I kdyˇz by bylo vhodn´e, aby tato relace byla typu M:N (kaˇzd´ y dodavatel m˚ uˇze s´ıdlit ve v´ıce mˇestech), je podle poˇzadavk˚ u zadavatele zjednoduˇsena pouze na urˇcen´ı hlavn´ıho s´ıdla dodavatele. V kaˇzd´em mˇestˇe m˚ uˇze tedy s´ıdlit jeden nebo v´ıce dodavatel˚ u, ale kaˇzd´ y dodavatel mus´ı s´ıdlit pr´avˇe v jednom mˇestˇe. • vztah Dodavatel - Doklad – ud´av´a, jak´ y dodavatel dodal materi´al, kter´ y je obsaˇzen na dokladu. Doklad obsahuje jednoho nebo ˇza´dn´eho dodavatele, dodavatel je obsaˇzen na jednom nebo v´ıce dokladech, pˇr´ıpadnˇe nen´ı obsaˇzen na ˇza´dn´em dokladu.
28
N´avrh datab´aze
N´avrh relaˇcn´ıho datab´azov´eho modelu
• vztah Doklad - Uzivatel – ˇr´ık´a, jak´ y uˇzivatel za´ uˇctoval pˇr´ısluˇsn´ y doklad. Doklad mus´ı b´ yt za´ uˇctov´an pr´avˇe jedn´ım uˇzivatelem, ale uˇzivatel m˚ uˇze za´ uˇctovat jeden nebo v´ıce doklad˚ u. • vztah Doklad - Polozka – definuje, kter´e poloˇzky obsahuje dan´ y doklad. Poloˇzka mus´ı patˇrit pr´avˇe jednomu dokladu, doklad m˚ uˇze obsahovat jednu ˇci v´ıce poloˇzek, pˇr´ıpadnˇe m˚ uˇze b´ yt bez poloˇzek. • vztah Polozka - Material – urˇcuje, jak´ y materi´al je uveden v poloˇzce dokladu. Materi´al m˚ uˇze b´ yt uveden na jedn´e nebo nˇekolika poloˇzk´ach, ale kaˇzd´a poloˇzka mus´ı obsahovat pr´avˇe jeden materi´al. • vztah Material - Prumer – urˇcuje, k jak´emu materi´alu se vztahuje dan´ y pr˚ umˇer v obdob´ı. Kaˇzd´ y materi´al m˚ uˇze obsahovat jeden ˇci v´ıce pr˚ umˇer˚ u, pˇr´ıpadnˇe ˇza´dn´ y. Oproti tomu kaˇzd´ y pr˚ umˇer se mus´ı vztahovat pr´avˇe k jednomu materi´alu.
29
7 Implementace V t´eto kapitole si objasn´ıme technologie a knihovny, kter´e byly pouˇzity pˇri v´ yvoji t´eto pr´ace a n´aslednˇe uvedeme technick´e poˇzadavky pro bˇeh aplikace a datab´azov´eho syst´emu.
7.1
Pouˇ zit´ e technologie
Pˇri v´ yvoji t´eto pr´ace byly pouˇzity 3 technologie, mezi kter´e patˇr´ı Microsoft .NET Framework, jazyk C# a syst´em ˇr´ızen´ı b´aze dat PostgreSQL. Tento datab´azov´ y syst´em byl podrobnˇeji pops´an v sekci 6.1.2 a proto ho zde jiˇz nebudeme d´ale popisovat, pouze si uvedeme, ˇze v t´eto pr´aci byl pouˇzit tento datab´azov´ y syst´em ve verzi 9.3. Zbyl´e dvˇe technologie si n´aslednˇe struˇcnˇe charakterizujeme.
7.1.1
Microsoft .NET Framework
Microsoft .NET Framework je nejrozˇs´ıˇrenˇejˇs´ı platforma pro operaˇcn´ı syst´em Microsoft Windows. Tato platforma se skl´ad´a pˇredevˇs´ım z bˇ ehov´ eho syst´ emu (Common Language Runtime) a z´ akladn´ıch knihoven tˇ r´ıd syst´ emu (Basic Class Library). Common Language Runtime, zkr´acenˇe CLR, je spoleˇcn´e bˇehov´e prostˇred´ı zajiˇst’uj´ıc´ı bˇeh program˚ u pˇreloˇzen´ ych z r˚ uzn´ ych 1 programovac´ıch jazyc´ıch do CIL [Vir(2002)]. Basic Class Library, zkr´acenˇe BCL, je rozs´ahl´a knihovna tˇr´ıd, hodnotov´ ych typ˚ u a rozhran´ı. Umoˇzn ˇuje napˇr´ıklad pr´aci se soubory, pr´aci s komunikaˇcn´ımi protokoly nebo podporu r˚ uzn´ ych n´arodn´ıch zvyklost´ı. D´ale pak tato platforma obsahuje knihovny pro tvorbu grafick´ eho uˇ zivatelsk´ eho rozhran´ı a knihovny pro tvorbu webov´ ych sluˇ zeb. Posledn´ı ˇca´st tohoto frameworku reprezentuj´ı pˇ rekladaˇ ce jazyk˚ u kompatibiln´ıch s platformou .NET. Mezi tyto jazyky patˇr´ı napˇr´ıklad C#, Visual Basic .NET, C++/CLI, F# nebo jazyk J#. 1
Common Intermediate Language (CIL) – je n´ızko´ urovˇ nov´ y programovac´ı jazyk, podobn´ y jazyku symbolick´ ych adres, kter´ y je jedn´ım ze souˇc´ast´ı umoˇzn ˇuj´ıc´ıch spolupr´aci jazyk˚ u kompatibiln´ıch s platformou .NET.
30
Implementace
Pouˇzit´e knihovny
Platforma .NET Framework je dostupn´a v nˇekolika verz´ıch. Posledn´ı verz´ı t´eto platformy je verze 4.5.1. V t´eto pr´aci byla pouˇzita verze 4.5, kter´a se od nejnovˇejˇs´ı verze liˇs´ı pouze nˇekolika detaily, kter´e nemaj´ı na v´ ysledek pr´ace vliv.
7.1.2
Jazyk C#
Jazyk C# je vysoko´ urovˇ nov´ y objektovˇe orientovan´ y jazyk, kter´ y vyvinula firma Microsoft na z´akladˇe jazyk˚ u C++ a Java. Tento jazyk je navrˇzen pro pouˇzit´ı s platformou .NET Framework a je povaˇzov´an jako hlavn´ı jazyk t´eto platformy. Podle [Nag(2009), s. 44] je tento jazyk samostatn´ y a nen´ı souˇca´st´ı t´eto platformy. Vˇetˇsina funkc´ı tohoto jazyka je umoˇznˇena pr´avˇe za pouˇzit´ı jiˇz zm´ınˇen´e platformy. Souˇcasnou verz´ı je verze 5.0, kter´a byla pouˇzita i v t´eto pr´aci. Mezi d˚ uleˇzit´e vlastnosti tohoto jazyka pˇri pouˇzit´ı s platformou .NET patˇr´ı siln´ a typov´ a bezpeˇ cnost, ˇ r´ızen´ y k´ od (kontrola pˇreteˇcen´ı, spr´ava pamˇeti pomoc´ı garbage collectoru, ...), citlivost na velk´ a a mal´ a p´ısmena, jednoduch´ a dˇ ediˇ cnost, nullable typy nebo moˇznost pouˇzit´ı tzv. property m´ısto klasick´ ych getr˚ u a setr˚ u.
7.2
Pouˇ zit´ e knihovny
Pˇri implementaci t´eto pr´ace byly pouˇzity knihovny ADO.NET, iTextSharp a knihovna Npgsql. Tyto knihovny pˇrispˇely ned´ılnou mˇerou ke zkvalitnˇen´ı aplikace. V t´eto ˇc´asti pr´ace si tyto knihovny jednotlivˇe pop´ıˇseme.
7.2.1
ADO.NET
Knihovna ADO.NET (ActiveX Data Objects) pˇredstavuje soubor komponent pouˇz´ıvan´ ych pro pˇr´ıstup k dat˚ um ˇci datov´ ym sluˇzb´am v r˚ uzn´ ych datov´ ych zdroj´ıch a je souˇca´st´ı platformy Microsoft .NET Framework. Tato knihovna vznikla na z´akladnˇe nespokojenosti s technologi´ı ADO, kter´a je knihovnou komponent COM (Component Object Model) [Nag(2009), s. 936]. ADO.NET obsahuje pˇredevˇs´ım 4 d˚ uleˇzit´e vlastnosti. Moˇznost pr´ ace s daty z r˚ uzn´ ych datov´ ych zdroj˚ u, podpora v´ıcevrstv´ ych aplikac´ı, moˇznost pouˇ zit´ı jak na online tak na offline aplikac´ıch a tak´e podpora pr´ ace s XML. Pr´avˇe 31
Implementace
Pouˇzit´e knihovny
dvˇe posledn´ı vlastnosti byly vyuˇzity v t´eto pr´aci nejv´ıce. Knihovna obsahuje tˇr´ıdu pro pr´aci s daty pojmenovanou DataSet. Jedn´a se o datovou sadu, kter´a obsahuje nejenom kolekci tabulek vˇcetnˇe jejich omezen´ı, ale tak´e relace mezi tˇemito tabulkami. D´ıky tˇemto datov´ ym sad´am je moˇzn´e uchov´avat data, modifikovat je a zpracov´avat i bez pˇripojen´ı do datab´aze. Pro naplnˇen´ı datov´ ych sad slouˇz´ı tˇr´ıda DataAdapter, kter´a se o pˇripojen´ı k datab´azi a staˇzen´ı dat star´a sama. Tato tˇr´ıda tak´e umoˇzn ˇuje modifikace dat v datov´ ych sad´ach celkem pohodlnˇe pˇren´est do datab´aze. Sch´ema spolupr´ace tˇechto dvou tˇr´ıd a datab´aze lze vidˇet na obr´azku 7.1.
Obr´azek 7.1: Sch´ema spolupr´ace datov´ ych sad, datov´ ych adapt´er˚ u a datab´aze [Aga(2009), s. 248] Datov´e sady byly v pr´aci pouˇzity zejm´ena pro z´ alohov´ an´ı a obnovov´ an´ı dat, kdy bylo vyuˇzito i v´ yˇse zm´ınˇen´e podpory pr´ace s XML. D´ale byly tak´e vyuˇzity pro z´ısk´ av´ an´ı dat z datab´ aze. Pro naplˇ nov´an´ı tˇechto sad ovˇsem nebyla vyuˇz´ıv´ana tˇr´ıda DataAdapter, ale tˇr´ıda NpgsqlDataAdapter z knihovny Npgsql. Tato tˇr´ıda implementuje rozhran´ı IDataAdapter a je uzp˚ usobena pro lepˇs´ı komunikaci se zvolen´ ym datab´azov´ ym syst´emem.
7.2.2
Npgsql
Npgsql neboli .Net Data Provider for Postgresql je knihovna vyvinut´a pro platformu Microsoft .NET Framework z d˚ uvodu zkvalitnˇen´ı komunikace s datab´azov´ ym syst´emem PostgreSQL. Tato knihovna je stejnˇe jako PostgreSQL open source a je realizov´ana v jazyce C#. Npgsql zajiˇst’uje velk´e mnoˇzstv´ı funkc´ı od samotn´eho spojen´ı s datab´az´ı aˇz po realizaci datab´azov´e transakce. V t´eto pr´aci byla pouˇzita verze 2.0.14.3, kter´e dok´aˇze komunikovat s PostgreSQL verze 7 a vyˇsˇs´ı. 32
Implementace
7.2.3
Technick´e poˇzadavky
iTextSharp
iTextSharp je knihovna pro pr´aci s PDF dokumenty, urˇcen´a pro platformu Microsoft .NET Framework, kter´a vznikla z knihovny iText. Tato knihovna je naps´ana v jazyce C# a je ˇs´ıˇrena pod licenc´ı Affero General Public License. iTextSharp obsahuje mnoho funkc´ı pro pr´aci s PDF dokumenty mezi kter´e patˇr´ı napˇr´ıklad generov´an´ı a upravov´an´ı tˇechto dokument˚ u, moˇznost rozdˇelovat a spojovat tyto dokumenty, automatick´e vyplˇ nov´an´ı PDF formul´aˇr˚ u nebo pˇrid´av´an´ı digit´aln´ıho podpisu do tˇechto soubor˚ u. V t´eto pr´aci je pouˇzita tato knihovna ve verzi 5.5.0 a je pouˇz´ıv´ana k exportu vˇsech sestav do PDF souboru a tak´e k jejich tisku.
7.3
Technick´ e poˇ zadavky
Vytvoˇren´a aplikace nen´ı nijak hardwarovˇe n´aroˇcn´a a jej´ı minim´aln´ı poˇzadavky na funkˇcnost ud´avaj´ı sp´ıˇse pouˇzit´e technologie. Tyto poˇzadavky se vztahuj´ı pˇredevˇs´ım k platformˇe .NET Framework verze 4.5. Protoˇze tato platforma je urˇcena pouze pro syst´em Microsoft Windows, je aplikace schopna bˇehu pouze na tomto syst´emu. Aplikace by mˇela splˇ novat bezprobl´emov´ y bˇeh za pˇredpokladu, ˇze na tomto syst´emu bude nainstalov´ana v´ yˇse zm´ınˇen´a verze frameworku, kter´a je kompatibiln´ı pouze se syst´em Microsoft Windows Vista SP2 a novˇejˇs´ım. Mimo to by mˇela b´ yt aplikace schopna bˇehu jak na 32 bitov´e, tak na 64 bitov´e verzi tohoto syst´emu. Datab´azov´ y syst´em tak´e neklade ˇza´dn´e velk´e n´aroky na funkˇcnost. Jak ˇ bylo uvedeno v sekci 6.1.2, SRBD PostgreSQL je schopn´ y bˇehu na vˇetˇsinˇe pˇredn´ıch operaˇcn´ıch syst´em˚ u, mezi kter´e patˇr´ı vˇetˇsina unixov´ ych syst´em˚ u vˇcetnˇe Linuxu a tak´e syst´em Windows. Z´aroveˇ n je schopn´ y bˇehu jak na 32 bitov´ ych, tak na vˇetˇsinˇe 64 bitov´ ych verz´ıch tˇechto syst´em˚ u. M˚ uˇzeme tedy ˇr´ıci, ˇze minim´aln´ı poˇzadavky na funkˇcnost datab´azov´eho syst´emu v podstatˇe odpov´ıdaj´ı minim´aln´ım poˇzadavk˚ um tˇechto operaˇcn´ıch syst´em˚ u. V z´asadˇe je, ale nutn´e pˇredpokl´adat poˇcet uˇzivatel˚ u, kter´ y bude k datab´azov´emu syst´emu pˇristupovat a tak´e moˇznou velikost datab´aze. Pro bezprobl´emov´ y bˇeh je pak vhodn´e tato krit´eria vz´ıt v u ´vahu a podle nich volit jak hardwarov´e, tak softwarov´e parametry serveru, na kter´em datab´azov´ y syst´em pobˇeˇz´ı.
33
8 Testov´an´ı aplikace V t´eto kapitole si pop´ıˇseme jak prob´ıhalo testov´an´ı a jak´ ych bylo dosaˇzeno v´ ysledk˚ u. N´aslednˇe zhodnot´ıme stav aplikace a moˇznosti rozˇs´ıˇren´ı do budoucna. Testov´an´ı prob´ıhalo ve dvou f´az´ıch. V prvn´ı f´azi byla testov´ana spr´avnost v´ ypoˇctu pˇri oceˇ nov´an´ı poloˇzek a ve druh´e f´azi byly ovˇeˇrov´any ostatn´ı funkcionality syst´emu.
8.1
Testov´ an´ı ekonomick´ y operac´ı
C´ılem tohoto testov´an´ı bylo ovˇeˇren´ı spr´avn´eho oceˇ nov´an´ı cen v dan´em obdob´ı a tak´e ovˇeˇren´ı spr´avn´eho pˇr´ıjm´an´ı a vyd´av´an´ı materi´alu. Ovˇeˇrov´an´ı prob´ıhalo na z´akladˇe testovac´ıch dat, kter´e poskytl zadavatel. Protoˇze si zadavatel nepˇreje zveˇrejnˇen´ı tˇechto dat, je v pˇr´ıloze D alespoˇ n jejich uk´azka. Testov´an´ı prob´ıhalo ve tˇrech ˇc´astech a kaˇzd´a ˇca´st byla ovˇeˇrov´ana samostatnˇe. V prvn´ı ˇca´sti byly nejprve napˇr´ıjm´any poˇca´teˇcn´ı stavy tˇr´ı druh˚ u materia´l˚ u v obdob´ı jednoho mˇes´ıce (pˇr´ıl. D.1). N´aslednˇe byly napˇr´ıjm´any doklady k tˇemto tˇrem druh˚ um materi´al˚ u i za dalˇs´ı obdob´ı a to vˇcetnˇe r˚ uzn´ ych kombinac´ı s pˇr´ıjmem dopravy (pˇr´ıl. D.2). V´ ysledn´a kontrola mnoˇzstv´ı a hodnoty materi´alu na skladˇe uk´azala prakticky totoˇzn´e v´ ysledky s testovac´ımi daty. Druh´a ˇc´ast testov´an´ı obn´aˇsela uzavˇren´ı posledn´ıho obdob´ı skladu a porovn´an´ı pr˚ umˇern´ ych cen s testovac´ımi daty. Pr˚ umˇern´e ceny materi´al˚ u t´emˇeˇr odpov´ıdaly pr˚ umˇern´ ym cen´am v testovac´ıch datech. Tyto v´ ysledky se liˇsily v jednotk´ach, maxim´alnˇe des´ıtk´ach hal´eˇr˚ u a odchylka byla zp˚ usobena zaokrouhlovac´ımi chybami. Tˇret´ı ˇc´ast testov´an´ı byla zaloˇzena na v´ ydej´ıch materi´alu. V t´eto ˇca´sti bylo od kaˇzd´eho materi´alu vyd´av´ano r˚ uzn´e mnoˇzstv´ı na nˇekolika dokladech (pˇr´ıl. D.2). Pˇri kontrole v´ ysledk˚ u se uk´azalo, ˇze mnoˇzstv´ı materi´alu je t´emˇeˇr totoˇzn´e, ale hodnota vydan´eho materi´alu se liˇs´ı od testovac´ıch dat v des´ıtk´ach hal´eˇr˚ u. I tato odchylka byla zp˚ usobena zaokrouhlovac´ımi chybami, ovˇsem tyto chyby nebyly zapˇr´ıˇcinˇeny jen zaokrouhlov´an´ım celkov´ ych cen pˇri v´ ydeji, ale vˇetˇs´ı mˇerou se na n´ı pod´ılely zaokrouhlovac´ı chyby pˇri v´ ypoˇctech pr˚ umˇern´ ych cen. Z tohoto d˚ uvodu pak celkov´a chyba line´arnˇe nar˚ ust´a s mnoˇzstv´ım vyd´avan´eho materi´alu.
34
Testov´an´ı aplikace
8.2
Testov´an´ı ostatn´ıch funkcionalit syst´emu
Testov´ an´ı ostatn´ıch funkcionalit syst´ emu
Tato f´aze testov´an´ı byla zaloˇzena na kontrole ostatn´ıch funkcionalit syst´emu, mezi kter´e patˇr´ı reakce na ztr´atu spojen´ı s datab´azov´ ym syst´emem a ovˇeˇren´ı spr´avn´e funkˇcnosti pˇri soubˇeˇzn´em pˇr´ıstupu ke spr´avˇe jednoho skladu. Reakce na ztr´atu spojen´ı s datab´azov´ ym syst´emem byla testov´ana pˇri vˇetˇsinˇe ekonomick´ ych operac´ı, pˇri pˇrihlaˇsov´an´ı, v´ ybˇeru skladu a tak´e u generov´an´ı vˇsech sestav. Aplikace pˇri tˇechto testech byla stabiln´ı a i pˇri ekonomick´ ych operac´ıch byla zachov´ana konzistence dat v datab´azi, ale v grafick´em uˇzivatelsk´em rozhran´ı vyskakovalo pˇr´ıliˇs mnoho chybov´ ych hl´aˇsen´ı. Na z´akladˇe tohoto testov´an´ı byla tato hl´aˇsen´ı nahrazena pouze jednou chybovou hl´aˇskou a ztr´atˇe spojen´ı. Testov´an´ı soubˇeˇzn´eho pˇr´ıstupu k jednomu skladu bylo testov´ano na dvou soubˇeˇznˇe bˇeˇz´ıc´ıch procesech, kter´e ve smyˇcce vkl´adaly a upravovaly data. Kaˇzd´ y proces prov´adˇel vkl´ad´an´ı, u ´pravy a maz´an´ı doklad˚ u. V´ ysledky tohoto testov´an´ı uk´azaly, ˇze i pˇri soubˇeˇzn´em pˇr´ıstupu jsou data v datab´azov´em syst´emu konzistentn´ı. Tento v´ ysledek byl v´ıcem´enˇe pˇredpokl´ad´an z d˚ uvodu pouˇzit´ı datab´azov´ ych transakc´ı u tˇechto operac´ı.
8.3
Stav syst´ emu a moˇ znosti rozˇ s´ıˇ ren´ı
V souˇcasn´e dobˇe byl syst´em pˇred´an zadavateli a byl uveden do testovac´ıho provozu. Od uveden´ı do testovac´ıho provozu zat´ım nebyly zaznamen´any chyby a syst´em funguje bez probl´em˚ u i pˇri zat´ıˇzen´ı v´ıce uˇzivateli. Reakce uˇzivatel˚ u na pˇr´ıvˇetivost aplikace a bˇeh syst´emu jsou ve vˇetˇsinˇe pˇr´ıpad˚ u pozitivn´ı. Nov´ y skladov´ y syst´em je podle n´azor˚ u uˇzivatel˚ u oproti st´avaj´ıc´ımu stabilnˇejˇs´ı a komfortnˇejˇs´ı. Vˇetˇsina uˇzivatel˚ u v´ ymˇenu star´eho syst´emu za nov´ y uv´ıtala. Aplikace obsahuje prozat´ım pouze uˇzivatelskou ˇc´ast a je nutn´e informace o uˇzivatel´ıch a skladech pˇrid´avat pˇr´ımo prostˇrednictv´ım datab´azov´eho syst´emu. Z tohoto d˚ uvodu bude vznikat administr´atorsk´e prostˇred´ı, kde bude moˇzno prov´adˇet nejen tyto operace, ale i moˇznosti u ´prav a maz´an´ı ostatn´ıch informac´ı v datab´azi. Z´aroveˇ n tato ˇca´st bude obsahovat moˇznosti z´alohy cel´e datab´aze a bude umoˇznˇeno alespoˇ n ˇc´asteˇcnˇe prov´adˇet u ´drˇzbu datab´aze. Skladov´ y syst´em by mˇel b´ yt do budoucna rozˇs´ıˇren o moˇznost promˇenliv´eho zp˚ usobu pr˚ umˇerov´an´ı a o moˇznost generov´an´ı pˇr´ıjemek/v´ ydejek, kter´a byla uvedena v sekci 4.3. 35
9 Z´avˇer Tato bakal´aˇrsk´a pr´ace se zab´ yvala skladov´ ymi syst´emy a hlavn´ım c´ılem t´eto pr´ace bylo vytvoˇrit nov´ y skladov´ y syst´em vyuˇz´ıvaj´ıc´ı vhodn´ y relaˇcn´ı datab´azov´ y syst´em, kter´ y je pˇrizp˚ usoben potˇreb´am zadavatele. Pro dosaˇzen´ı tohoto c´ıle bylo stanoveno nˇekolik menˇs´ıch c´ıl˚ u. Prvn´ım z tˇechto c´ıl˚ u bylo analyzovat problematiku skladov´ ych syst´em˚ u. Tento c´ıl spoˇc´ıval pˇredevˇs´ım v anal´ yze samotn´ ych z´asob a jejich oceˇ nov´an´ı. D´ale pak do tohoto bodu spadala anal´ yza st´avaj´ıc´ıho syst´emu a tak´e anal´ yza jin´ ych syst´em˚ u. Tento bod pˇrinesl rozhled v oblasti skladov´e evidence a umoˇzn ˇoval pˇribl´ıˇzit jak st´avaj´ıc´ı skladov´ ym syst´emem, tak r˚ uzn´e dalˇs´ı skladov´e programy. Druh´ ym c´ılem bylo navrhnout moˇzn´a vylepˇsen´ı st´avaj´ıc´ıho skladov´eho syst´emu. Na z´akladˇe anal´ yzy syst´em˚ u bylo stanoveno sedm potˇrebn´ ych vlastnost´ı, kter´e byly zahrnuty do nov´eho syst´emu a ˇctyˇri vlastnosti, kter´e bylo vhodn´e zaˇclenit do nov´eho syst´emu z d˚ uvodu zkvalitnˇen´ı funkˇcnosti. Z tˇechto vhodn´ ych vlastnost´ı byla zahrnuta pouze moˇznost u ´pravy pˇr´ıjemek/v´ ydejek. Moˇznost generov´an´ı pˇr´ıjemek/v´ ydejek bude zahrnuta aˇz do administr´atorsk´e ˇc´asti syst´emu a zbyl´e dvˇe moˇznosti byly na z´akladˇe domluvy se zadavatelem zavrhnuty jako nepotˇrebn´e. Do tˇret´ıho c´ıle spadal samotn´ y n´avrh nov´eho syst´emu vˇcetnˇe n´avrhu datab´aze. Pˇri n´avrhu syst´emu byla stanovena struktura aplikace a syst´em byl rozdˇelen do tˇr´ıvrstv´e architektury. Na z´akladˇe t´eto struktury pak bylo navrˇzeno j´adro aplikace a grafick´e uˇzivatelsk´e rozhran´ı. Pˇri n´avrhu datab´aze byl nejprve vybr´an vhodn´ y datab´azov´ y syst´em a n´aslednˇe byl proveden samotn´ y n´avrh relaˇcn´ıho modelu datab´aze, pˇrizp˚ usoben´eho poˇzadavk˚ um zadavatele. Posledn´ım c´ılem byla samotn´a implementace syst´emu a n´asledn´e otestov´an´ı. Pro implementaci byly pouˇzity r˚ uzn´e technologie a knihovny a n´aslednˇe stanoveny technick´e poˇzadavky vytvoˇren´eho syst´emu. Pˇri testov´an´ı byla ovˇeˇrena spr´avn´a funkˇcnost ekonomick´ ych operac´ı a tak´e ostatn´ıch funkcionalit syst´emu. Na z´akladˇe v´ ysledk˚ u testov´an´ı byly provedeny drobn´e korekce a n´aslednˇe byl stanoven stav syst´emu vˇcetnˇe jeho moˇzn´ ych rozˇs´ıˇren´ı. Na z´akladˇe splnˇen´ı tˇechto jednotliv´ ych c´ıl˚ u byl splnˇen hlavn´ı c´ıl a v´ ystupem pr´ace je nov´ y skladov´ y syst´em vznikl´ y pro u ´ˇcely zadavatele. Tento syst´em bude d´ale rozˇs´ıˇren o administr´atorskou ˇca´st, jak je uvedeno v sekci 8.3. 36
Seznam zkratek .NET – dotnet“ poch´az´ı z anglick´eho slova network a pˇredstavuje soubor ” technologi´ı, kter´e tvoˇr´ı platformu (podrobnˇeji pops´ano v sekci 7.1.1). ADO (ActiveX Data Objects) – je knihovna, kter´a slouˇz´ı pro manipulaci s datab´az´ı pomoc´ı rozhran´ı ODBC a je pˇredch˚ udcem ADO.NET. ADO.NET (ActiveX Data Objects .NET) – je soubor komponent pouˇz´ıvan´ ych pro pˇr´ıstup k dat˚ um ˇci datov´ ym sluˇzb´am v r˚ uzn´ ych datov´ ych zdroj´ıch a je souˇca´st´ı platformy Microsoft .NET Framework (podrobnˇeji pops´ano v sekci 7.2.1). AGPL (Affero General Public License) – je licence svobodn´eho softwaru od spoleˇcnosti Affero, kter´a vznikla na z´akladˇe licence GPL pro ˇreˇsen´ı podm´ınek ohlednˇe uˇzit´ı softwaru pˇres s´ıt’. BCL (Basic Class Library) – je rozs´ahl´a knihovna tˇr´ıd, hodnotov´ ych typ˚ u a rozhran´ı v platformˇe Microsoft .NET Framework. BSD (Berkeley Software Distribution) – je operaˇcn´ı syst´em odvozen´ y od Unixu distribuovan´ y Kalifornskou univerzitou v Berkeley. CIL (Common Intermediate Language) – je n´ızko´ urovˇ nov´ y programovac´ı jazyk, podobn´ y jazyku symbolick´ ych adres, kter´ y je jedn´ım ze souˇc´ast´ı umoˇzn ˇuj´ıc´ıch spolupr´aci jazyk˚ u kompatibiln´ıch s platformou .NET. CLR (Common Language Runtime) – je spoleˇcn´e bˇehov´e prostˇred´ı zajiˇst’uj´ıc´ı bˇeh program˚ u pˇreloˇzen´ ych z r˚ uzn´ ych programovac´ıch jazyc´ıch do CIL. COM (Component Object Model) – je standard, kter´ y definuje zp˚ usob, jak´ ym spolu mohou softwarov´e komponenty komunikovat.
37
Seznam zkratek
CSV (Comma-separated values) – v pˇrekladu hodnoty oddˇelen´e ˇc´arkami, je form´at souboru pro tabulkov´a data, kde kaˇzd´a hodnota na ˇr´adce je oddˇelena ˇc´arkou pˇr´ıpadnˇe stˇredn´ıkem. Demo (Demoverze) – volnˇe dostupn´a verze komerˇcn´ıho software, kter´a obsahuje pouˇze ˇc´ast funkcionality pln´e verze syst´emu. DOS (Disk Operating System) – rodina jednouˇzivatelsk´ ych a jedno´ ulohov´ ych operaˇcn´ıch syst´em˚ u urˇcen´ ych pro procesory Intel 8088. FIFO (First In First Out) – je v u ´ˇcetnictv´ı metoda pro oceˇ nov´an´ı z´asob pˇri vyskladnˇen´ı (podrobnˇeji pops´ano v sekci 2.3.2). FK (Foreign Key) – neboli ciz´ı kl´ıˇc je v podstatˇe prim´arn´ı kl´ıˇc jin´e tabulky, kter´ y slouˇz´ı k definici vztah˚ u mezi tabulkami. GUI (Graphical User Interface) – neboli grafick´e uˇzivatelsk´e rozhran´ı je rozhran´ı umoˇzn ˇuj´ıc´ı ovl´adat poˇc´ıtaˇc pomoc´ı grafick´ ych prvk˚ u. IBM (International Business Machines Corporation) – je jednou z nejvˇetˇs´ıch svˇetov´ ych spoleˇcnost´ı v oboru informaˇcn´ıch technologi´ı. IT (Informaˇcn´ı Technologie) – technick´e odvˇetv´ı, zab´ yvaj´ıc´ı se hardwarovou a softwarovou str´ankou poˇc´ıtaˇce. LAMP (Linux, Apache, MySQL, PHP) – je softwarov´ y bal´ıˇcek vyuˇz´ıvan´ y pro tvorbu webov´ ych aplikac´ı. LIFO (Last IN First Out) – je v u ´ˇcetnictv´ı metoda pro oceˇ nov´an´ı z´asob pˇri vyskladnˇen´ı, kter´a je opaˇcn´a neˇz metoda FIFO. MIT licence (Massachusetts Institute of Technology) – je svobodn´a licence, kter´a vznikla v Massachusettsk´em technologick´em institutu v Cambridge. MS-DOS (Microsoft Disk Operating System) – operaˇcn´ı syst´em od firmy Microsoft, kter´ y byl jako prvn´ı urˇcen pro jednoduchou obsluhu osobn´ıch poˇc´ıtaˇc˚ u. Npgsql (.Net Data Provider for Postgresql) – je knihovna vyvinut´a pro platformu Microsoft .NET Framework z d˚ uvodu zkvalitnˇen´ı komunikaci s datab´azov´ ym syst´emem PostgreSQL (podrobnˇeji pops´ano v sekci 7.2.2).
38
Seznam zkratek
OMG (Object Management Group) – je sdruˇzen´ı, kter´e rozˇsiˇruje a dohl´ıˇz´ı na specifikaci jazyka UML. OS/2 – je operaˇcn´ı syst´em firmy IBM. PDF (Portable Document Format) – je form´at souboru od firmy Adobe, nez´avisl´ y na platformˇe, kter´ y byl vyvinut pro jednoduchou pˇrenositelnost dokument˚ u. PHP (PHP: Hypertext Preprocessor p˚ uvodnˇe Personal Home Page) – je programovac´ı jazyk, urˇcen´ y pˇredevˇs´ım k programov´an´ı dynamick´ ych webov´ ych aplikac´ı. PK (Primary Key) – neboli prim´arn´ı kl´ıˇc, je atribut pˇr´ıpadnˇe nˇekolik atribut˚ u datab´azov´e tabulky, kter´ y jednoznaˇcnˇe identifikuje kaˇzd´ y z´aznam. PL/pgSQL (Procedural Language/PostgreSQL) – je procedur´aln´ı programovac´ı jazyk urˇcen´ y pro datab´azov´ y syst´em PostgreSQL, kter´ y je podobn´ y jazyku PL/SQL. PL/SQL (Procedural Language/Structured Query Language) – je procedur´aln´ı programovac´ı jazyk od firmy Oracle,kter´ y je nadstavbou jazyka SQL a vznikl z programovac´ıho jazyka Ada. SP (Service pack) – je bal´ık obsahuj´ıc´ı opravy, aktualizace nebo vylepˇsen´ı software. SQL (Structured Query Language) – je standardizovan´ y strukturovan´ y dotazovac´ı jazyk pouˇz´ıvan´ y v datab´azov´ ych syst´emech. ˇ SRBD (Syst´em ˇr´ızen´ı b´aze dat) – poˇc´ıtaˇcov´ y syst´em zabezpeˇcuj´ıc´ı definov´an´ı struktury dat, moˇznost manipulace s daty, ochranu dat a tak´e komunikaci syst´emu s uˇzivatelem. UML (Unified Modeling Language) – je jednotn´ y modelovac´ı jazyk, kter´ y slouˇz´ı k n´avrhu, specifikaci ˇci vizualizaci softwarov´ ych syst´em˚ u pˇri jejich v´ yvoji (podrobnˇeji pops´ano v sekci 5.3.1). XLS – je bin´arn´ı form´at od firmy Microsoft vyuˇz´ıvan´ y pro soubory vytvoˇren´e v aplikaci Microsoft Excel. XML (Extensible Markup Language) – je obecn´ y standard znaˇckovac´ıho jazyka. 39
Literatura [Aga(2009)]
AGARWAL, Vidya Vrat a James HUDDLESTON. Datab´aze v C# 2008: pr˚ uvodce program´atora. Vyd. 1. Brno: Computer Press, 2009, 424 s. ISBN 978-80-251-2309-6.
[Akt(2014)]
Slovn´ıˇcek u ´ˇcetn´ıch pojm˚ u: Aktivace. In: Testy z u ´ˇcetnictv´ı [online]. 2014 [cit. 2014-04-14]. Dostupn´e z: http://www. testyzucetnictvi.cz/slovnicek-ucetnich-pojmu.php? pojem=aktivace
[Awi(2013)]
´ ´ A.W.I.S. SPRAVA, SYSTEMY S.R.O. AWIS pokladn´ı syst´em [software]. 2013 [cit. 2014-04-14]. Dostupn´e z: http://www. kasa-pokladna.cz/zkusebni-verze
[B´an(2002)]
´ ´ Milan. Sklad´ık 5.5.5 [software]. 2002 [cit. 2014BANOVSK Y, 04-14]. Dostupn´e z: http://www.mbsw.cz/
[Car(2010)]
´ Zdenka, Ing. Z´asoby: (7. ˇca´st). In: Mzdov´a CARDOVA, praxe [online]. 1.12.2010 [cit. 2014-04-14]. Dostupn´e z: http://www.mzdovapraxe.cz/archiv/dokument/ doc-d28530v35681-zasoby-7-cast/
ˇ ap(2014)] [C´
ˇ APKA, ´ ´ C David. 1. d´ıl - Uvod do UML. In: Devbook.cz: program´atorsk´a soci´aln´ı s´ıt’ [online]. 2014 [cit. 2014-04-19]. Dostupn´e z: http://www.devbook.cz/ uml-uvod-historie-vyznam-a-diagramy
[Kuˇc(2007)]
ˇ ´ Helena. Diagram tˇr´ıd. Vyˇsˇs´ı odborn´a ˇskola inKUCEROV A, formaˇcn´ıch sluˇzeb [online]. 31. 3. 2007 [cit. 2014-04-19]. Dostupn´e z: http://web.sks.cz/users/ku/pri/tridy.htm
[Man(2011)]
Tˇr´ıvrstv´a architektura (Three-tier architecture). ManagementMania.com [online]. 2011 [cit. 2014-04-18]. 40
Literatura
Dostupn´e z: https://managementmania.com/cs/ trivrstva-architektura-three-tier-architecture [Mic(2012)]
Proˇc SQL Server. Microsoft: Microsoft SQL Server [online]. 2012 [cit. 2014-04-16]. Dostupn´e z: http: //www.microsoft.com/sqlserver/cs/cz/product-info/ why-sql-server.aspx
[Mya(2014)]
About. MySQL.com [online]. 2014 [cit. 2014-04-16]. Dostupn´e z: http://www.mysql.com/about/
[Myp(2014)]
Products. MySQL.com [online]. 2014 [cit. 2014-04-16]. Dostupn´e z: http://www.mysql.com/products/
[Nag(2009)]
NAGEL, Christian, Bill EVJEN, Jay GLYNN, Karli WATSON a Morgan SKINNER. C# 2008: programujeme profesion´alnˇe. Vyd. 1. Brno: Computer Press, 2009, 1126 s. ISBN 978-80-251-2401-7.
[Omg(2014)] Unified Modeling Language. OMG.org [online]. 2014 [cit. 2014-04-19]. Dostupn´e z: http://www.omg.org/spec/UML/ [Poh(2014)]
About: History. PostgreSQL.org [online]. 2014 [cit. 201404-16]. Dostupn´e z: http://www.postgresql.org/about/ history/
[Poi(2014)]
Documentation: 5.8. Inheritance. PostgreSQL.org [online]. 2014 [cit. 2014-04-16]. Dostupn´e z: http://www.postgresql. org/docs/9.3/static/ddl-inherit.html
[Ryn(2010)]
ˇ Petr. Podvojn´e u RYNES, ´ˇcetnictv´ı a u ´ˇcetn´ı z´avˇerka 2010 10. vyd. Olomouc: ANAG, 2010, s. 122. ISBN 978-80-7263580-1.
[Vir(2002)]
VIRIUS, Miroslav. C# pro zelen´aˇce. Praha: Neocortex, 2002, s. 27-28. ISBN 80-86330-11-7.
[You(2012)]
The History of SQL Server. In: Youtube [online video]. 2012 [cit. 2014-04-16]. Dostupn´e z: https://www.youtube.com/ watch?v=fSN2ihUkSCk
[Z´as(2014)]
Slovn´ıˇcek u ´ˇcetn´ıch pojm˚ u: Z´asoby. In: Testy z u ´ˇcetnictv´ı [online]. 2014 [cit. 2014-04-14]. Dostupn´e z: http://www. testyzucetnictvi.cz/slovnicek-ucetnich-pojmu.php? pojem=zasoby 41
Seznam pˇ r´ıloh A UML: Diagram tˇ r´ıd – Jadro
44
B
UML: Diagram tˇ r´ıd – GUI
45
C
Relaˇ cn´ı model datab´ aze
46
D Uk´ azka testovac´ıch dat 47 ´ D.1 Unor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 D.2 Bˇrezen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 E
Uˇ zivatelsk´ a dokumentace E.1 Pˇreklad a spuˇstˇen´ı aplikace . . . . . . . . . . E.2 Instalace datab´azov´eho syst´emu . . . . . . . . E.2.1 Linux – Debian . . . . . . . . . . . . . E.2.2 Windows . . . . . . . . . . . . . . . . E.2.3 Vytvoˇren´ı datab´aze pomoc´ı psql . . . E.2.4 Vytvoˇren´ı datab´aze pomoc´ı PgAdmin3 E.3 Popis hlavn´ıho okna programu . . . . . . . . E.4 Nastaven´ı a kontrola spojen´ı . . . . . . . . . E.5 Pˇrihl´aˇsen´ı a odhl´aˇsen´ı uˇzivatele . . . . . . . . E.6 V´ ybˇer a odhl´aˇsen´ı od skladu . . . . . . . . . E.7 Z´alohov´an´ı a obnoven´ı z´alohy skladu . . . . . E.8 Operace na skladˇe . . . . . . . . . . . . . . . E.8.1 V´ ybˇer obdob´ı . . . . . . . . . . . . . . E.8.2 Pˇr´ıjem a Pˇr´ıjem dopravy . . . . . . . E.8.3 V´ ydej do spotˇreby a V´ ydej – prodej . E.8.4 Chybov´e hl´aˇsky . . . . . . . . . . . . E.9 Kontroln´ı opis z´asob . . . . . . . . . . . . . . ´ E.9.1 Uprava a smaz´an´ı dokladu . . . . . . E.10 Obratov´a soupiska . . . . . . . . . . . . . . . E.11 Inventurn´ı soupiska . . . . . . . . . . . . . . 42
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
49 49 49 49 50 50 52 54 55 56 57 59 60 62 62 64 65 67 68 68 70
E.13 Ztr´ata spojen´ı s datab´az´ı . . . . . . . . . . . . . . . . . . . . 72 F
Obsah CD 73 F.1 Struktura obsahu CD . . . . . . . . . . . . . . . . . . . . . . 73 F.2 Popis obsahu CD . . . . . . . . . . . . . . . . . . . . . . . . . 73
43
A UML: Diagram tˇr´ıd – Jadro
44
B UML: Diagram tˇr´ıd – GUI
45
C Relaˇcn´ı model datab´aze
46
D Uk´azka testovac´ıch dat ´ Unor
D.1
ˇ ıslo dokladu: 1220003 C´
Typ: Pˇr´ıjem
Dodavatel: 1 – Silmat, Pˇr´ıbram
K´ od
N´ azev
MJ
Mnoˇ zstv´ı
Jednotkov´ a cena
104
asfalt
t
32,065
11 185,97
Ano
358 678,20
199
p´ısek
t
213,710
140,00
Ano
29 919,42
540
nafta motorov´ a
l
1 026,000
28,77
Ano
Doprava
Celkem
29 514,75 418 112,37 Kˇ c
ˇ ıslo dokladu: 1220004 C´
Typ: Pˇr´ıjem
Dodavatel: –
K´ od
N´ azev
MJ
Mnoˇ zstv´ı
Jednotkov´ a cena
193
kamenivo 2/5
t
815,230
277,20
Doprava
Cena celkem
Ano
Celkem
D.2
Cena celkem
225 982,78 225 982,78 Kˇ c
Bˇ rezen
ˇ ıslo dokladu: 1220034 C´
Typ: Pˇr´ıjem
ˇ Dodavatel: 2 – BGH, Cesk´ e Budˇ ejovice
K´ od
N´ azev
MJ
Mnoˇ zstv´ı
Jednotkov´ a cena
104
asfalt
t
54,010
11 625,00
Doprava
Cena celkem
Ano
Celkem
627 866,25 627 866,25 Kˇ c
ˇ ıslo dokladu: 1220049 C´
Typ: Pˇr´ıjem
Dodavatel: 3 – B¨ ogl a Kr´ ysl, Dobˇrany
K´ od
N´ azev
MJ
Mnoˇ zstv´ı
Jednotkov´ a cena
193
kamenivo 2/5
t
68,270
187,92
Celkem
Doprava Ano
Cena celkem 12 829,12 12 829,12 Kˇ c
47
Uk´azka testovac´ıch dat ˇ ıslo dokladu: 1220052 C´
Typ: Pˇr´ıjem
Dodavatel: 3 – B¨ ogl a Kr´ ysl, Dobˇrany
K´ od
N´ azev
MJ
Mnoˇ zstv´ı
Jednotkov´ a cena
193
kamenivo 2/5
t
34,930
188,00
Doprava Ne
Celkem
Cena celkem 6 566,84 6 566,84 Kˇ c
ˇ ıslo dokladu: 1220060 C´
Typ: Pˇr´ıjem dopravy
Dodavatel: –
K´ od
N´ azev
MJ
Jednotkov´ a cena
193
kamenivo 2/5
t
Mnoˇ zstv´ı –
–
Doprava –
Celkem
Cena celkem 7 737,75 7 737,75 Kˇ c
ˇ ıslo dokladu: 1220006 C´
Typ: Pˇr´ıjem
Dodavatel: 4 – Berdych, Plzeˇ n
K´ od
N´ azev
MJ
Mnoˇ zstv´ı
Jednotkov´ a cena
199
p´ısek
t
271,560
139,00
Doprava Ano
Celkem
Cena celkem 37 746,84 37 746,84 Kˇ c
ˇ ıslo dokladu: 1 C´
Typ: V´ ydej do spotˇreby
K´ od
N´ azev
MJ
104
asfalt
193
kamenivo 2/5
Mnoˇ zstv´ı
Jednotkov´ a cena
Doprava
t
39,940
–
–
457 770,39
t
76,730
–
–
21 147,25
Celkem
Cena celkem
478 917,64 Kˇ c
ˇ ıslo dokladu: 2 C´
Typ: V´ ydej do spotˇreby
K´ od
N´ azev
MJ
199
p´ısek
540
nafta motorov´ a
Mnoˇ zstv´ı
Jednotkov´ a cena
t
114,070
–
–
15 905,92
l
858,000
–
–
24 684,66
Celkem
Doprava
Cena celkem
40 590,58 Kˇ c
48
E Uˇzivatelsk´a dokumentace E.1
Pˇ reklad a spuˇ stˇ en´ı aplikace
Pro spr´avn´e pˇreloˇzen´ı a bezprobl´emov´ y bˇeh aplikace je nutn´ e m´ıt nainstalovan´ y Microsoft .NET Framework 4.5. Pro pˇreklad aplikace slouˇz´ı skript build.csproj v adres´aˇri src a samotn´ y pˇreklad se prov´ad´ı programem MSBuild.exe. Tento program pro pˇreklad je souˇca´st´ı .NET Frameworku a to jak v 32 bitov´e, tak v 64 bitov´e verzi. V´ ychoz´ı cesta k program MSBuild.exe je: • pro 32 bitovou verzi – C:\Windows\Microsoft.NET\Framework\v4.0. 30319 • pro 64 bitovou verzi – C:\Windows\Microsoft.NET\Framework64\v4. 0.30319 Tuto cestu je nutn´ e m´ıt pˇridanou v syst´emov´e promˇenn´e PATH pro jednoduˇsˇs´ı pˇreklad programu a verze tohoto programu se vol´ı podle verze syst´emu (64 bitov´ y syst´em = 64 bitov´a verze apod.). Samotn´ y pˇreklad programu se pak prov´ad´ı pomoc´ı pˇr´ıkazu: msbuild build.csproj Pokud pˇreklad probˇehl u ´spˇeˇsnˇe, v´ ysledn´a spustiteln´a verze aplikace se nach´az´ı v adres´aˇri o u ´roveˇ n v´ yˇse a to konkr´etnˇe v adres´aˇri bin. Samotn´a aplikace se pak spouˇst´ı souborem Sklad.exe.
E.2 E.2.1
Instalace datab´ azov´ eho syst´ emu Linux – Debian
Instalace datab´azov´eho syst´emu pro operaˇcn´ı syst´em Linux v distribuci Debian je moˇzn´a bud’ pomoc´ı bal´ıˇckovac´ıho syst´emu apt nebo pomoc´ı grafick´ eho instal´ atoru pˇriloˇzen´eho ve sloˇzce PostgreSQL\Linux. V pˇr´ıpadˇe pouˇzit´ı bal´ıˇckovac´ıho syst´emu postupujte podle n´avodu na adrese https: 49
Uˇzivatelsk´a dokumentace
Instalace datab´azov´eho syst´emu
//wiki.postgresql.org/wiki/Apt. N´aslednˇe je jeˇstˇe vhodn´e pro snazˇs´ı manipulaci s datab´azov´ ym syst´emem nainstalovat program PgAdmin3. Instalace tohoto programu se prov´ad´ı pˇr´ıkazem: sudo apt-get install pgadmin3 V pˇr´ıpadˇe pouˇzit´ı grafick´eho instal´atoru je nutn´e vybrat instalaˇcn´ı soubor z jiˇz v´ yˇse zm´ınˇen´e sloˇzky vzhledem k 32 bitov´e nebo 64 bitov´e verzi operaˇcn´ıho syst´emu. Instalace se pak zah´aj´ı pˇr´ıkazem sudo ./postgresql-9.3.4-3-linux-
.run kde je typ operaˇcn´ıho syst´emu. Tedy x64 pro 64 bitov´ y operaˇcn´ı syst´em a x86 pro 32 bitov´ y operaˇcn´ı syst´em. D´ale se postupuje podle pokyn˚ u instal´atoru. N´aslednˇe je opˇet vhodn´e doinstalovat program PgAdmin3.
E.2.2
Windows
Datab´azov´ y syst´em PostgreSQL pro operaˇcn´ı syst´em Windows lze nainstalovat pouze pomoc´ı grafick´ eho instal´ atoru pˇriloˇzen´eho ve sloˇzce PostgreSQL\Windows. Pro instalaci staˇc´ı spustit soubor postgresql-9.3.4-3-.exe kde je typ operaˇcn´ıho syst´emu. Tedy x64 pro 64 bitov´ y operaˇcn´ı syst´em a x86 pro 32 bitov´ y operaˇcn´ı syst´em. D´ale se postupuje podle pokyn˚ u instal´atoru. N´aslednˇe je vhodn´e doinstalovat program PgAdmin3 pro snazˇs´ı manipulaci s datab´azov´ ym syst´emem. Tento program je moˇzn´e nainstalovat rovnou jako souˇc´ast instalace datab´azov´eho syst´emu nebo je pˇriloˇzen jeho instal´ator ve sloˇzce PostgreSQL\Windows\PgAdmin3. Kde staˇc´ı spustit soubor pgadmin3.msi
E.2.3
Vytvoˇ ren´ı datab´ aze pomoc´ı psql
Jedn´ım ze zp˚ usob˚ u vytvoˇren´ı datab´aze je pouˇzit´ı programu psql. Ke snadn´emu vytvoˇren´ı datab´aze slouˇz´ı SQL skript databaze.sql pˇriloˇzen´ y ve sloˇzce Databaze. Vytvoˇren´ı datab´aze prostˇrednictv´ım psql se na Linuxu a ve Win50
Uˇzivatelsk´a dokumentace
Instalace datab´azov´eho syst´emu
dows drobnˇe liˇs´ı. V Linuxu staˇc´ı v termin´alu pouˇz´ıt pˇr´ıkaz psql -h -p <port> -U -W -f <skript> kde je hostname resp. IP adresa serveru, v naˇsem pˇr´ıpadˇe localhost, <port> je port, na kter´em datab´azov´ y server bˇeˇz´ı (implicitn´ı port je 5432 ), je uˇzivatelsk´e jm´eno pro pˇr´ıstup k serveru, defaultnˇe postgres a ˇca´st <skript> reprezentuje SQL skript, tedy databaze.sql. Pak uˇz se jen staˇc´ı ˇr´ıdit pˇr´ıpadn´ ymi pokyny. Po vytvoˇren´ı datab´aze je jeˇstˇe nutn´e vytvoˇrit uˇzivatelsk´e funkce. Pro vytvoˇren´ı uˇzivatelsk´ ych funkc´ı je urˇcen skript s n´azvem funkce.sql, kter´ y je pˇriloˇzen ve stejn´e sloˇzce jako databaze.sql. Pro vytvoˇren´ı uˇzivatelsk´ ych funkc´ı slouˇz´ı pˇr´ıkaz psql -h -p <port> -U -W -d -f <skript> kde jedin´ ym rozd´ılem oproti pˇredchoz´ımu pˇr´ıkazu je -d . Tato ˇca´st ud´av´a n´azev datab´aze, v naˇsem pˇr´ıpadˇe sklad. D´ale je pak nutn´e v ˇc´asti <skript> m´ısto databaze.sql pouˇz´ıt skript funkce.sql. V pˇr´ıpadˇe pouˇzit´ı testovac´ıch dat ze souboru testovaci_data.sql, bude pouˇzit stejn´ y pˇr´ıkaz, pouze bude tento skript pouˇzit v ˇc´asti <skript>. Rozd´ıl oproti Linuxu je ten, ˇze ve Windows je nutn´e nejprve naj´ıt sloˇzku s nainstalovan´ ym PostgreSQL (pokud nen´ı nastaven´a syst´emov´a promˇenn´a PATH), kde ve sloˇzce bin je program psql.exe. Pˇr´ıkaz pro vytvoˇren´ı datab´aze je t´emˇeˇr totoˇzn´ y s Linuxov´ ym pˇr´ıkazem pouze m´ısto psql je pouˇzito psql.exe. Pˇr´ıklad vˇsech tˇr´ı v´ yˇse uveden´ ych pˇr´ıklad˚ u pro bˇeˇzn´e pouˇzit´ı vypad´a n´aslednˇe: psql -h localhost -p 5432 -U postgres -W -f databaze.sql psql -h localhost -p 5432 -U postgres -W -d sklad -f funkce.sql psql -h localhost -p 5432 -U postgres -W -d sklad -f testovaci_data.sql
51
Uˇzivatelsk´a dokumentace
E.2.4
Instalace datab´azov´eho syst´emu
Vytvoˇ ren´ı datab´ aze pomoc´ı PgAdmin3
Dalˇs´ım ze zp˚ usobu vytvoˇren´ı datab´aze je pouˇzit´ı programu PgAdmin3. V tomto programu nejprve mus´ıme vytvoˇrit datab´azi. Ve stromu objekt˚ u klikneme prav´ ym tlaˇc´ıtkem myˇsi na poloˇzku Datab´ aze, jak je vidˇet na obr´azku E.1. N´aslednˇe do pole N´ azev datab´ aze nap´ıˇseme Sklad a poloˇzku Vlastn´ık zmˇen´ıme na postgres. V´ ysledek je vidˇet na obr´azku E.2. N´aslednˇe v z´aloˇzce Definice vypln´ıme vˇsechna pole jako na obr´azku E.3 a potvrd´ıme.
Obr´azek E.1: Vytvoˇren´ı datab´aze
Obr´azek E.2: Vyplnˇen´ı z´aloˇzky Vlastnosti
52
Uˇzivatelsk´a dokumentace
Instalace datab´azov´eho syst´emu
Obr´azek E.3: Vyplnˇen´ı z´aloˇzky Definice V pˇr´ıpadˇe, ˇze nechcete prov´adˇet toto nastaven´ı, je moˇzn´e v oknˇe vytv´aˇren´ı datab´aze do z´aloˇzky SQL po odˇskrtnut´ı poloˇzky Jen pro ˇ cten´ı zkop´ırovat n´asleduj´ıc´ı k´od a potvrdit. CREATE DATABASE sklad WITH ENCODING=’UTF8’ OWNER=postgres TEMPLATE=template0 LC_COLLATE=’Czech_Czech Republic.1250’ LC_CTYPE=’Czech_Czech Republic.1250’ CONNECTION LIMIT=-1 TABLESPACE=pg_default; Nyn´ı je jeˇstˇe nutn´e vytvoˇrit samotnou strukturu datab´aze. To provedeme kliknut´ım na tlaˇc´ıtko SQL zobrazen´em na obr´azku E.4.
53
Uˇzivatelsk´a dokumentace
Popis hlavn´ıho okna programu
Obr´azek E.4: Tlaˇc´ıtko SQL Po zobrazen´ı okna konzole klikneme do hlavn´ıho menu na poloˇzku Soubor a zde vybereme Otevˇ r´ıt. Tento postup lze vidˇet na obr´azku E.5. N´aslednˇe vybereme SQL skript databaze_pgadmin.sql, kter´ y je pˇriloˇzen´ y ve sloˇzce Databaze. Pak uˇz jen staˇc´ı kliknout na tlaˇc´ıtko Spustit skript vyobrazen´e na obr´azku E.6.
Obr´azek E.5: Otevˇren´ı skriptu
Obr´azek E.6: Spuˇstˇen´ı skriptu Obdobn´ ym zp˚ usobem je pak jeˇstˇe nutn´e spustit skript funkce.sql a v pˇr´ıpadˇe pouˇzit´ı testovac´ıch dat tak´e testovaci_data.sql.
E.3
Popis hlavn´ıho okna programu
Hlavn´ı okno (obr´azek E.7) se skl´ad´a ze 3 ˇca´st´ı, konkr´etnˇe ze z´ ahlav´ı okna (1), menu (2) a hlavn´ıho panelu (3). Z´ahlav´ı okna obsahuje pˇredevˇs´ım titulek s nadpisem, kter´ y se mˇen´ı podle pˇrihl´aˇsen´eho uˇzivatele a vybran´eho skladu a tak´e tlaˇc´ıtka pro minimalizaci, maximalizaci a zavˇren´ı okna. Menu 54
Uˇzivatelsk´a dokumentace
Nastaven´ı a kontrola spojen´ı
programu reprezentuje hlavn´ı ovl´adac´ı prvek programu. Prostˇrednictv´ım tohoto menu se ovl´ad´a cel´ y program. Hlavn´ı panel programu slouˇz´ı pˇredevˇs´ım pro zobrazov´an´ı sestav a tak´e pro pˇrihl´aˇsen´ı.
Obr´azek E.7: Hlavn´ı okno
E.4
Nastaven´ı a kontrola spojen´ı
Nastaven´ı spojen´ı se provede kliknut´ım na poloˇzku menu Program a n´aslednˇe se vybere poloˇzka Nastaven´ı (obr´azek E.8). Pˇr´ıpadnˇe je moˇzn´e pouˇz´ıt kl´avesovou zkratku Ctrl + N.
Obr´azek E.8: Poloˇzka menu Nastaven´ı V oknˇe Nastaven´ı pak vypln´ıme vˇsechny poloˇzky jako na obr´azku E.9, pouze zmˇen´ıme poloˇzku Host na hostname datab´azov´eho serveru. Pˇred uloˇzen´ım nastaven´ı m˚ uˇzeme zkontrolovat spr´avn´e vyplnˇen´ı kliknut´ım na tlaˇc´ıtko Zkontrolovat spojen´ı. Pˇr´ısluˇsn´e dialogov´e okno ohl´as´ı, zda-li byla kontrola u ´spˇeˇsn´a ˇci ne´ uspˇeˇsn´a. Pro uloˇzen´ı klikneme na tlaˇc´ıtko Uloˇ zit, zobraz´ı se
55
Uˇzivatelsk´a dokumentace
Pˇrihl´aˇsen´ı a odhl´aˇsen´ı uˇzivatele
dialogov´e okno (obr´azek E.10), kter´e potvrd´ıme a zavˇreme okno Nastaven´ı kˇr´ıˇzkem v prav´em horn´ım rohu.
Obr´azek E.9: Vyplnˇen´e okno Nastaven´ı
´ eˇsn´e uloˇzen´ı nastaven´ı Obr´azek E.10: Uspˇ
E.5
Pˇ rihl´ aˇ sen´ı a odhl´ aˇ sen´ı uˇ zivatele
Pˇrihl´aˇsen´ı uˇzivatele se prov´ad´ı kliknut´ım na poloˇzku menu Program a n´aslednˇe se vybere poloˇzka Pˇ rihl´ asit (1). Tato akce je zn´azornˇena na obr´azku E.11. Po t´eto akci se v hlavn´ım panelu programu zobraz´ı formul´aˇr pro pˇrihl´aˇsen´ı, kde je nutn´e vyplnit poloˇzky Login a Heslo a n´aslednˇe kliknout ´ eˇsn´e pˇrihl´aˇsen´ı se projev´ı zmˇenou titulku v z´ahlav´ı na tlaˇc´ıtko Pˇ rihl´ asit. Uspˇ hlavn´ıho okna programu na jm´eno a pˇr´ıjmen´ı pˇrihl´aˇsen´eho uˇzivatele (obr´azek E.12). Pro pˇrihl´aˇsen´ı uˇzivatele pod testovac´ımi daty se do pole Login nap´ıˇse login“ a do pole Heslo nap´ıˇse heslo“ stejnˇe jako na obr´azku E.13. ” ” Odhl´aˇsen´ı uˇzivatele se provede kliknut´ım na poloˇzku menu Program 56
Uˇzivatelsk´a dokumentace
V´ybˇer a odhl´aˇsen´ı od skladu
a n´aslednˇe se vybere poloˇzka Odhl´ asit (2). Tuto ˇcinnost m˚ uˇzeme vidˇet na obr´azku E.11.
Obr´azek E.11: Poloˇzky menu Pˇ rihl´ asit a Odhl´ asit
Obr´azek E.12: Zmˇena z´ahlav´ı po pˇrihl´aˇsen´ı
Obr´azek E.13: Uk´azka pˇrihl´aˇsen´ı
E.6
V´ ybˇ er a odhl´ aˇ sen´ı od skladu
V´ ybˇer skladu se provede kliknut´ım na poloˇzku menu Sklad a n´aslednˇe v´ ybˇerem poloˇzky Vybrat sklad (1). Tato ˇcinnost je zn´azornˇena na obr´azku E.14. Po t´eto akci se zobraz´ı dialogov´e okno pro v´ ybˇer skladu (obr´azek E.15), kde z nab´ıdky sklad˚ u vybereme sklad, kter´ y chceme spravovat a klikneme na tla´ eˇsn´e vybr´an´ı skladu se projev´ı zmˇenou z´ahlav´ı hlavn´ıho ˇc´ıtko Vybrat. Uspˇ okna a to konkr´etnˇe pˇrid´an´ım informac´ı o vybran´em skladu (obr´azek E.16). Odhl´aˇsen´ı od skladu se provede kliknut´ım na poloˇzku menu Sklad a n´aslednˇe v´ ybˇerem poloˇzky Odhl´ asit od skladu (2). Tato ˇcinnost je zn´azornˇena na obr´azku E.14. 57
Uˇzivatelsk´a dokumentace
V´ybˇer a odhl´aˇsen´ı od skladu
Obr´azek E.14: Poloˇzky menu Vybrat sklad a Odhl´ asit od skladu
Obr´azek E.15: Dialogov´e okno pro v´ ybˇer skladu
Obr´azek E.16: Zmˇena z´ahlav´ı po v´ ybˇeru skladu Pokud se pˇri v´ ybˇeru skladu zobraz´ı dialogov´e okno jako na obr´azku E.17 znamen´a to, ˇze vybran´ y sklad aktu´alnˇe nˇekdo spravuje a pokud budete pokraˇcovat, m˚ uˇze doch´azet k neoˇcek´avan´ ym jev˚ um. V tomto pˇr´ıpadˇe je vhodn´ e nepokraˇ covat a poˇckat neˇz bude dan´ y sklad voln´ y, pˇr´ıpadnˇe zjistit kdo dan´ y sklad aktu´alnˇe spravuje. Pozn.: M˚ uˇze se st´at, ˇze pˇri pˇredchoz´ım uˇz´ıv´an´ı programu nastala neoˇcek´avan´a ud´alost napˇr. p´ad datab´azov´eho serveru a v tomto d˚ usledku nedoˇslo k odhl´aˇsen´ı uˇzivatele od skladu. Program pak mylnˇe signalizuje, ˇze sklad je vyuˇz´ıv´an nˇek´ ym jin´ ym. V tomto pˇr´ıpadˇe je vhodn´e kontaktovat administr´atora serveru, aby chybu opravil.
58
Uˇzivatelsk´a dokumentace
Z´alohov´an´ı a obnoven´ı z´alohy skladu
Obr´azek E.17: Upozornˇen´ı spravovan´eho skladu
E.7
Z´ alohov´ an´ı a obnoven´ı z´ alohy skladu
Z´alohov´an´ı skladu se prov´an´ı kliknut´ım na poloˇzku menu Sklad a n´aslednˇe na Z´ alohovat sklad (2). Tato ˇcinnost je vidˇet na obr´azku E.18. Pˇr´ıpadnˇe je moˇzn´e pouˇz´ıt kl´avesovou zkratku Ctrl + Shift + Z. N´aslednˇe se zobraz´ı dialogov´e okno, kde vybereme um´ıstˇen´ı z´alohy, n´azev z´alohy a potvrd´ıme. ´ eˇsn´e ˇci ne´ Uspˇ uspˇeˇsn´e proveden´ı z´alohy ohl´as´ı dialogov´e okno.
Obr´azek E.18: Poloˇzky menu Z´ alohovat sklad a Obnovit z´ alohu skladu Obnoven´ı z´alohy skladu se prov´ad´ı kliknut´ı na poloˇzku menu Sklad a n´aslednˇe na Obnovit z´ alohu skladu (1). Tato ˇcinnost je zn´azornˇena na obr´azku E.18. Pˇr´ıpadnˇe je moˇzn´e pouˇz´ıt kl´avesovou zkratku Ctrl + Shift + O. N´aslednˇe se zobraz´ı dialogov´e okno, kde vybereme z´alohu a potvrd´ıme. V pˇr´ıpadˇe vybr´an´ı z´alohy, kter´a nepatˇr´ı k aktu´alnˇe vybran´emu skladu se zobraz´ı ´ eˇsn´e ˇci ne´ dialogov´e okno jako na obr´azku E.19. Uspˇ uspˇeˇsn´e obnoven´ı z´alohy se ohl´as´ı pˇr´ısluˇsn´ ym dialogov´ ym oknem. V pˇr´ıpadˇe ne´ uspˇ eˇ sn´ eho obnoven´ı z´alohy, z˚ ustanou data skladu stejn´ a jako pˇred zapoˇcet´ım t´eto akce.
59
Uˇzivatelsk´a dokumentace
Operace na skladˇe
ˇ Obr´azek E.19: Spatnˇ e vybran´a z´aloha
E.8
Operace na skladˇ e
Operace na skladˇe se prov´ad´ı kliknut´ım na poloˇzku menu Operace na skladˇ e a n´asledn´ ym v´ ybˇerem jedn´e z poloˇzek podle poˇzadovan´e operace. Tyto poloˇzky jsou vidˇet na obr´azku E.20, kde jsou vidˇet i pˇr´ısluˇsn´e kl´avesov´e zkratky.
Obr´azek E.20: Poloˇzky menu v ˇca´sti Operace na skladˇ e Pˇri v´ ybˇeru poloˇzky (1) nebo (2) se zobraz´ı upozornˇen´ı zn´azornˇen´e na obr´azku E.21, kter´e ˇr´ık´a, ˇze v´ ydajov´e doklady pˇrijat´e v pˇredchoz´ım obdob´ı budou uzavˇreny. Dˇr´ıve neˇz budete pokraˇcovat, je doporuˇ ceno zkontrolovat v´ ydajov´e doklady z minul´eho obdob´ı, pˇr´ıpadnˇe prov´est z´alohu skladu, protoˇze po potvrzen´ı tohoto upozornˇen´ı jiˇz nebude moˇzn´e tyto doklady upravovat ani mazat. Pˇri v´ ybˇeru poloˇzky (3) nebo (4) se zobraz´ı upozornˇen´ı zn´azornˇen´e na obr´azku E.22, kter´e ˇr´ık´a, ˇze pˇr´ıjmov´e doklady pˇrijat´e v aktu´aln´ım obdob´ı budou uzavˇreny a budou vypoˇc´ıt´any periodick´e pr˚ umˇery za aktu´aln´ı obdob´ı. Dˇr´ıve neˇz budete pokraˇcovat, je doporuˇ ceno zkontrolovat pˇr´ıjmov´e doklady z aktu´aln´ıho obdob´ı, pˇr´ıpadnˇe prov´est z´alohu skladu, protoˇze po potvrzen´ı tohoto upozornˇen´ı jiˇz nebude moˇzn´e tyto doklady upravovat, mazat ani pˇrid´a60
Uˇzivatelsk´a dokumentace
Operace na skladˇe
vat dalˇs´ı v aktu´aln´ı obdob´ı. Pˇri v´ ybˇeru tˇechto poloˇzek se tak´e m˚ uˇze zobrazit informaˇcn´ı dialog (obr´azek E.23), kter´ y informuje o tom, ˇze na skladˇe nen´ı pˇrijat´ y ˇza´dn´ y materi´al a je nutn´e nejprve nˇejak´ y materi´al pˇrijmout.
Obr´azek E.21: Upozornˇen´ı uzavˇren´ı obdob´ı pˇri pˇr´ıjmu
Obr´azek E.22: Upozornˇen´ı uzavˇren´ı obdob´ı pˇri v´ ydeji
Obr´azek E.23: Upozornˇen´ı na pr´azdn´ y sklad Po tˇechto akc´ıch vˇzdy n´asleduje v´ ybˇer obdob´ı a po nˇem uˇz samotn´ y formul´aˇr pro danou skladovou operaci. Zde je nutn´e jeˇstˇe podotknout, ˇze formul´aˇre pro operace na skladˇe je moˇzno posouvat na dalˇs´ı poloˇzku kl´avesou Enter, pro urychlen´ı pr´ace.
61
Uˇzivatelsk´a dokumentace
E.8.1
Operace na skladˇe
V´ ybˇ er obdob´ı
Dialogov´e okno pro v´ ybˇer obdob´ı je vidˇet na obr´azku E.24. Samotn´ y v´ ybˇer obdob´ı se prov´ad´ı kliknut´ım do pole pro v´ ybˇer data (1), po kter´em se zobraz´ı kalend´aˇr (2). V tomto kalend´aˇri je vidˇet n´azev mˇes´ıce spoleˇcnˇe s rokem (3) a jednotliv´e dny v tomto mˇes´ıci. Pro v´ ybˇer aktu´alnˇe zvolen´eho mˇes´ıce staˇc´ı kliknout na jak´ ykoliv den v tomto mˇes´ıci. Pro zmˇenu mˇes´ıce je nutn´e kliknout na prvek (3), n´aslednˇe se m´ısto dn˚ u zobraz´ı mˇes´ıce, kde pro poˇzadovan´ y mˇes´ıc vybereme pˇr´ısluˇsnou poloˇzku a na ni klikneme. Pot´e opˇet zvol´ıme jak´ ykoliv den v tomto mˇes´ıci. Pro v´ ybˇer roku postupujeme obdobnˇe, pouze pˇri ˇca´sti v´ ybˇeru mˇes´ıce, klikneme na prvek (2) jeˇstˇe jednou. Vybran´e obdob´ı je pak vidˇet v prvku (1). Po v´ ybˇeru obdob´ı uˇz pouze staˇc´ı kliknout na tlaˇc´ıtko Ok.
Obr´azek E.24: Formul´aˇr V´ ybˇ er obdob´ı
E.8.2
Pˇ r´ıjem a Pˇ r´ıjem dopravy
Formul´aˇr pro pˇr´ıjem je vidˇet na obr´azku E.25. Pˇri pˇr´ıjmu je vˇzdy nejprve ˇ ıslo dokladu d˚ uleˇzit´e vyplnit hlaviˇcku dokladu (1) a to zejm´ena poloˇzku C´ a n´aslednˇe poloˇzku Datum. Datum je moˇzn´e bud’ napsat nebo vybrat obdobn´ ym zp˚ usobem jako pˇri v´ ybˇeru obdob´ı, ale je moˇzn´e nastavit pouze datum z aktu´alnˇe vybran´eho obdob´ı. ˇ ast Dodavatel (2) se ˇr´ıd´ı podle poloˇzky ICO. Pokud je tato poloˇzka C´ pr´azdn´a, povaˇzuje se dan´ y doklad jako doklad bez dodavatele. Pokud je zad´ano identifikaˇcn´ı ˇc´ıslo dodavatele, kter´ y jiˇz je v datab´azi, je doplnˇen auto62
Uˇzivatelsk´a dokumentace
Operace na skladˇe
maticky (obr´azek E.26). V opaˇcn´em pˇr´ıpadˇe je nutn´e vyplnit kromˇe poloˇzky ICO i poloˇzky N´ azev a Mˇ esto. Oba formul´aˇre jak Pˇ r´ıjem, tak Pˇ r´ıjem dopravy maj´ı prvek (1) a (2) stejn´ y a liˇs´ı se aˇz v prvku (3).
Obr´azek E.25: Formul´aˇr pro pˇr´ıjmy
Obr´azek E.26: Uk´azka doplnˇen´ı dodavatele Prvek (3) reprezentuje poloˇzky samotn´eho dokladu. Pro spr´avn´e vyplnˇen´ı dokladu je nutn´e u kaˇzd´e poloˇzky vˇzdy vyplnit vˇsechny buˇ nky. Pˇri zad´av´an´ı k´odu materi´alu se v pˇr´ıpadˇe jeho existence automaticky dopln´ı buˇ nky N´ azev materi´ alu a Mˇ ern´ a jednotka a tato dvˇe pole n´aslednˇe nejdou editovat. V opaˇcn´em pˇr´ıpadˇe je nutn´e tato dvˇe pole vyplnit. Oba dva typy doklad˚ u maj´ı tuto ˇca´st prvku (3) stejnou. U formul´aˇre Pˇ r´ıjem jsou d´ale buˇ nky Mnoˇ zstv´ı, Jednotkov´ a cena, Cena vˇ cetnˇ e dopravy a Celkov´ a cena. Po zad´an´ı mnoˇzstv´ı a celkov´e ceny se jednotkov´a cena vypoˇc´ıt´av´a automaticky a pro u ´pln´e vyplnˇen´ı poloˇzky dokladu uˇz pouze staˇc´ı zatrhnout, zda-li je dan´a cena vˇcetnˇe dopravy nebo ne (buˇ nka Cena vˇ cetnˇ e dopravy). U formul´aˇre Pˇ r´ıjem dopravy je d´ale pouze buˇ nka Celkov´ a cena a jak vypad´a prvek (3) pro tento formul´aˇr lze vidˇet na obr´azku E.27. Pro moˇznost vyplnˇen´ı t´eto buˇ nky je nutn´e nejprve vyplnit buˇ nku K´ od materi´ alu existuj´ıc´ım materi´alem.
63
Uˇzivatelsk´a dokumentace
Operace na skladˇe
Obr´azek E.27: Prvek (3) pro formul´aˇr Pˇ r´ıjem dopravy Po vyplnˇen´ı vˇsech potˇrebn´ ych poloˇzek uˇz pouze staˇc´ı kliknout na tlaˇc´ıtko Vloˇ zit. Pˇr´ıpadn´e chybov´e hl´aˇsky jsou vysvˇetleny v sekci E.8.4.
E.8.3
V´ ydej do spotˇ reby a V´ ydej – prodej
Obˇe dvˇe skladov´e operace maj´ı podobn´ y formul´aˇr a tento formul´aˇr je zn´azornˇen na obr´azku E.28. Stejnˇe jako u pˇr´ıjm˚ u, je vˇzdy nejprve d˚ uleˇzit´e vyplnit hlaviˇcku dokladu (1). U tˇechto skladov´ ych operac´ı nen´ı ˇca´st dodavatele ˇ a proto staˇc´ı vyplnit poloˇzku C´ıslo dokladu a tak´e Datum. Pro poloˇzku Datum plat´ı stejn´a pravidla jako u pˇr´ıjm˚ u. V ˇca´sti (2), kter´a reprezentuje poloˇzky dokladu, je nejprve nutn´e zadat k´od existuj´ıc´ıho materi´alu, n´aslednˇe se automaticky dopln´ı buˇ nky N´ azev materi´ alu, Mˇ ern´ a jednotka a zpˇr´ıstupn´ı se buˇ nka Mnoˇ zstv´ı. Do t´eto buˇ nky staˇc´ı zadat mnoˇzstv´ı materi´alu a celkov´a cena se dopln´ı programovˇe na z´akladˇe v´ ypoˇctu v´aˇzen´eho aritmetick´eho pr˚ umˇeru. Po vyplnˇen´ı vˇsech poloˇzek dokladu uˇz staˇc´ı pouze kliknout na tlaˇc´ıtko Vloˇ zit doklad. Pˇr´ıpadn´e chybov´e hl´aˇsky jsou vysvˇetleny v sekci E.8.4.
Obr´azek E.28: Formul´aˇr pro v´ ydeje
64
Uˇzivatelsk´a dokumentace
E.8.4
Operace na skladˇe
Chybov´ e hl´ aˇ sky
• Chyba v hlaviˇcce dokladu – Tato chyba se projevuje vˇzdy v hlaviˇck´ach doklad˚ u a je signalizov´ana vykˇriˇcn´ıkem vedle poloˇzky, kde chyba vznikla. Po najet´ı myˇs´ı na tento vykˇriˇcn´ık bude dan´a chyba upˇresnˇena. Pˇr´ıklad t´eto chyby je vidˇet na obr´azku E.29.
Obr´azek E.29: Chyba v hlaviˇcce dokladu • Nevyplnˇen´e poloˇzky – Tato chyba vznik´a v pˇr´ıpadˇe vkl´ad´an´ı dokladu, u kter´eho nebyla vyplnˇena ani jedna poloˇzka. Chybov´a hl´aˇska je zn´azornˇena na obr´azku E.30.
Obr´azek E.30: Nevyplnˇen´e poloˇzky • Pr´azdn´a buˇ nka – Tato chyba m˚ uˇze vzniknout t´emˇeˇr ve vˇsech buˇ nk´ach vˇsech formul´aˇr˚ u a vznik´a v pˇr´ıpadˇe nevyplnˇen´ı nˇekter´e z bunˇek poloˇzky dokladu. Jak vypad´a chybov´a hl´aˇska t´eto chyby je vidˇet na obr´azku E.31.
Obr´azek E.31: Pr´azdn´a buˇ nka
65
Uˇzivatelsk´a dokumentace
Operace na skladˇe
• Chyba ˇc´ısla – Tato chyba vznik´a pˇredevˇs´ım v buˇ nk´ach Celkov´ a cena nebo Mnoˇ zstv´ı a je zp˚ usobena zad´an´ım ˇc´ısla ve ˇspatn´em form´atu. Chybov´a hl´aˇska vypad´a jako na obr´azku E.32.
Obr´azek E.32: Chyba ˇc´ısla • Chyba nula – Tato chyba vznik´a pˇredevˇs´ım v buˇ nk´ach Celkov´ a cena nebo Mnoˇ zstv´ı a je zp˚ usobena zad´an´ım ˇc´ısla nula. Chybov´a hl´aˇska vypad´a jako na obr´azku E.33.
Obr´azek E.33: Chyba nula • Neexistuj´ıc´ı materi´al – Tato chyba vznik´a ve formul´aˇr´ıch Pˇ r´ıjem dopravy, V´ ydej do spotˇ reby a V´ ydej – prodej. Je zp˚ usobena zad´an´ım k´odu materi´alu, kter´ y nen´ı evidov´an. Chybov´a hl´aˇska vypad´a jako na obr´azku E.34.
Obr´azek E.34: Neexistuj´ıc´ı materi´al
66
Uˇzivatelsk´a dokumentace
Kontroln´ı opis z´asob
U chyb Pr´azdn´a buˇ nka, Chyba nula a Chyba ˇc´ısla je moˇzn´e identifikovat buˇ nku chyby podle chybov´e hl´aˇsky, kde je vˇzdy uvedeno ˇc´ıslo ˇra´dku a n´azev sloupce.
E.9
Kontroln´ı opis z´ asob
Kontroln´ı opis z´asob je moˇzn´e zobrazit kliknut´ım na poloˇzku menu Sestavy a n´aslednˇe na poloˇzku Kontroln´ı opis z´ asob, jak je zn´azornˇeno na obr´azku E.35. Pˇr´ıpadnˇe je moˇzn´e pouˇz´ıt kl´avesovou zkratku Ctrl + K. Po proveden´ı t´eto ˇcinnosti je nutn´e prov´est v´ ybˇer obdob´ı obdobnˇe, jak je pops´ano v sekci E.8.1. V pˇr´ıpadˇe, ˇze ve vybran´em obdob´ı nejsou ˇz´adn´e doklady, zobraz´ı se dialogov´e okno s pˇr´ısluˇsnou hl´aˇskou. V opaˇcn´em pˇr´ıpadˇe se zobraz´ı v hlavn´ım panelu hlavn´ıho okna kontroln´ı opis z´asob, podobnˇe jako na obr´azku E.36.
Obr´azek E.35: Poloˇzka menu Kontroln´ı opis z´ asob
Obr´azek E.36: Formul´aˇr Kontroln´ı opis z´ asob 67
Uˇzivatelsk´a dokumentace
Obratov´a soupiska
Poloˇzky formul´aˇre kontroln´ıho opisu z´asob: 1. informace o dokladu 2. informace o dodavateli 3. jednotliv´e poloˇzky dokladu 4. celkov´ y souˇcet dokladu 5. celkov´ y souˇcet vˇsech doklad˚ u v kontroln´ım opise z´asob za obdob´ı 6. tlaˇc´ıtka pro moˇznost u ´pravy nebo smaz´an´ı dokladu Tlaˇc´ıtka pro moˇznost u ´pravy nebo smaz´an´ı je moˇzn´e pouˇz´ıt pouze v pˇr´ıpadˇe, ˇze dan´e obdob´ı jeˇstˇe nebylo uzavˇreno.
E.9.1
´ Uprava a smaz´ an´ı dokladu
Z kontroln´ıho opisu z´asob je moˇzno pomoc´ı tlaˇc´ıtek Upravit a Smazat editovat ˇci smazat dan´ y doklad. V pˇr´ıpadˇe smaz´an´ı staˇc´ı kliknout na tlaˇc´ıtko Smazat, zobraz´ı se dialogov´e okno o smaz´an´ı dokladu a po potvrzen´ı bude vybran´ y doklad smaz´an. ´ Upravu je moˇzn´e zah´ajit kliknut´ım na tlaˇc´ıtko Upravit. N´aslednˇe se zobraz´ı okno podle typu dokladu stejn´e jako pro dan´ y typ skladov´e operace. Toto okno je ovˇsem oproti formul´aˇri pro skladovou operaci nastaveno tak, aby bylo moˇzno editovat pouze sloupce Mnoˇ zstv´ı, Celkov´ a cena nebo Cena vˇ cetnˇ e dopravy. V pˇr´ıpadˇe proveden´ı u ´pravy nˇekter´e poloˇzky dokladu v tˇechto sloupc´ıch staˇc´ı pro potvrzen´ı kliknout na tlaˇc´ıtko Upravit v tomto formul´aˇri. N´asledn´a zmˇena se projev´ı i v kontroln´ım opise z´asob.
E.10
Obratov´ a soupiska
Obratovou soupisku je moˇzn´e zobrazit kliknut´ım na poloˇzku menu Sestavy a n´aslednˇe na poloˇzku Obratov´ a soupiska, jak je moˇzno vidˇet na obr´azku E.37. Pˇr´ıpadnˇe je moˇzn´e pouˇz´ıt kl´avesovou zkratku Ctrl + O. N´aslednˇe je nutn´e prov´est v´ ybˇer obdob´ı obdobnˇe, jak je pops´ano v sekci E.8.1. 68
Uˇzivatelsk´a dokumentace
Obratov´a soupiska
V pˇr´ıpadˇe, ˇze ve vybran´em obdob´ı nejsou ˇza´dn´e pohyby materi´alu, zobraz´ı se dialogov´e okno s pˇr´ısluˇsnou hl´aˇskou. V opaˇcn´em pˇr´ıpadˇe se zobraz´ı v hlavn´ım panelu hlavn´ıho okna formul´aˇr obratov´e soupisky, podobnˇe jak je zn´azornˇeno na obr´azku E.38.
Obr´azek E.37: Poloˇzka menu Obratov´ a soupiska
Obr´azek E.38: Formul´aˇr Obratov´ a soupiska Poloˇzky formul´aˇre opisu z´asob: 1. informace o materi´alu 2. pohyby materi´alu v dan´em obdob´ı 3. souˇcty cen a mnoˇzstv´ı pohyb˚ u materi´alu v dan´em obdob´ı 4. celkov´ y souˇcet vˇsech pohyb˚ u materi´al˚ u v dan´em obdob´ı
69
Uˇzivatelsk´a dokumentace
E.11
Inventurn´ı soupiska
Inventurn´ı soupiska
Inventurn´ı soupisku je moˇzn´e zobrazit kliknut´ım na poloˇzku menu Sestavy a n´aslednˇe na poloˇzku Inventurn´ı soupiska, jak je vyobrazeno na obr´azku E.39. Pˇr´ıpadnˇe je moˇzn´e pouˇz´ıt kl´avesovou zkratku Ctrl + I. D´ale je nutn´e prov´est v´ ybˇer obdob´ı obdobnˇe, jak je pops´ano v sekci E.8.1. V pˇr´ıpadˇe, ˇze jeˇstˇe nebyl naskladnˇen ˇza´dn´ y materi´al, zobraz´ı se dialogov´e okno s pˇr´ısluˇsnou hl´aˇskou. V opaˇcn´em pˇr´ıpadˇe se zobraz´ı v hlavn´ım panelu hlavn´ıho okna formul´aˇr inventurn´ı soupisky, jak je moˇzno vidˇet na obr´azku E.40.
Obr´azek E.39: Poloˇzka menu Inventurn´ı soupiska
Obr´azek E.40: Formul´aˇr Inventurn´ı soupiska Poloˇzky formul´aˇre opisu z´asob: 1. informace o souˇcasn´em stavu materi´al˚ u na skladˇe v dan´em obdob´ı 2. celkov´a hodnota materi´al˚ u na skladˇe v dan´em obdob´ı
70
Uˇzivatelsk´a dokumentace
E.12
Export, tisk a n´ahled tisku
Export, tisk a n´ ahled tisku
Aby bylo moˇzn´e prov´est nˇekterou z tˇechto operac´ı je nejprve nutn´ e zobrazit Inventurn´ı soupisku, Obratovou soupisku nebo Kontroln´ı opis z´ asob. N´aslednˇe je moˇzn´e prov´est jednu z tˇechto operac´ı, jak je zn´azornˇeno na obr´azku E.41, vˇcetnˇe jejich kl´avesov´ ych zkratek. V pˇr´ıpadˇe poloˇzky Export do PDF (3) se zobraz´ı dialogov´e okno, kde staˇc´ı vybrat um´ıstˇen´ı, napsat n´azev v´ ysledn´eho souboru a potvrdit. V´ ysledn´ y soubor se n´aslednˇe ihned zobraz´ı. V pˇr´ıpadˇe poloˇzky Tisk (2) se zobraz´ı dialogov´e okno tisku, kde se provedou pˇr´ısluˇsn´a nastaven´ı a potvrzen´ım se v´ ysledn´a sestava odeˇsle k tisku na vybranou tisk´arnu. Tiskov´ y n´ahled je moˇzn´e zobrazit kliknut´ım na poloˇzku N´ ahled (1). Po t´eto akci se zobraz´ı okno s tiskov´ ym n´ahledem. Z tohoto okna je moˇzno dan´ y dokument tak´e vytisknout a to kliknut´ım na poloˇzku menu Tisk, jak je zn´azornˇeno na obr´azku E.42.
Obr´azek E.41: Poloˇzky menu N´ ahled, Tisk a Export do PDF
Obr´azek E.42: Okno N´ ahled 71
Uˇzivatelsk´a dokumentace
Ztr´ata spojen´ı s datab´az´ı
Pozn.: U tiskov´eho n´ahledu mohou nˇekter´e ˇca´ry tabulek b´ yt opticky zkresleny. Toto zkreslen´ı je zp˚ usobeno r˚ uzn´ ym pˇribliˇzov´an´ı a oddalov´an´ım n´ahledu a pˇrepoˇc´ıt´av´an´ım jednotliv´ ych ˇcar v˚ uˇci rozliˇsen´ı monitoru.
E.13
Ztr´ ata spojen´ı s datab´ az´ı
Pokud se zobraz´ı dialogov´e okno jako na obr´azku E.43, znamen´a to, ˇze doˇslo ke ztr´atˇe spojen´ı s datab´azov´ ym syst´emem. V tomto pˇr´ıpadˇe je moˇ zn´ e nˇ ejakou dobu poˇ ckat a pot´ e zkusit danou operaci znovu. Jestliˇze ani pot´e nedoˇslo k opˇetovn´emu spojen´ı s datab´azov´ ym syst´emem, je vhodn´e kontaktovat administr´atora serveru a ozn´amit tuto skuteˇcnost.
Obr´azek E.43: Ztr´ata spojen´ı s datab´az´ı
72
F Obsah CD F.1
Struktura obsahu CD
F.2
Popis obsahu CD
Aplikace • bin – sloˇzka obsahuj´ıc´ı spustitelnou verzi aplikace (Sklad.exe – hlavn´ı soubor pro spuˇstˇen´ı aplikace) • src – sloˇzka obsahuj´ıc´ı zdrojov´e k´ody aplikace (build.csproj – hlavn´ı soubor pro pˇreklad aplikace) • uml – sloˇzka obsahuj´ıc´ı UML modely diagram˚ u tˇr´ıd obou ˇc´ast´ı programu • xml dokumentace – sloˇzka obsahuj´ıc´ı xml soubory s dokumentaˇcn´ımi koment´aˇri zdrojov´ ych k´od˚ u
73
Obsah CD
Popis obsahu CD
Databaze • databaze.sql – skript pro vytvoˇren´ı datab´aze pomoc´ı programu psql • databaze_pgadmin.sql – skript pro vytvoˇren´ı datab´aze pomoc´ı programu PgAdmin3 • funkce.sql – skript obsahuj´ıc´ı uˇzivatelsk´e funkce datab´aze vˇcetnˇe koment´aˇr˚ u • testovaci_data.sql – skript s uk´azkou testovac´ıch dat • relacni_model.png – obr´azek relaˇcn´ıho modelu datab´aze Dokumenty • Kopie zadani – sloˇzka obsahuj´ıc´ı kopii zad´an´ı bakal´aˇrsk´e pr´ace – zadani.pdf – pdf dokument s kopi´ı zad´an´ı bakal´aˇrsk´e pr´ace – zadani_strana_1.jpg – obr´azek prvn´ı strany kopie bakal´aˇrsk´e pr´ace – zadani_strana_2.jpg – obr´azek druh´e strany kopie bakal´aˇrsk´e pr´ace • Zdrojovy text BP – obrazky – sloˇzka s obr´azky bakal´aˇrsk´e pr´ace – modely – sloˇzka s modely bakal´aˇrsk´e pr´ace – uzivatelska dokumentace – sloˇzka s obr´azky uˇzivatelsk´e dokumentace – bakalarka.tex – hlavn´ı zdrojov´ y soubor bakal´aˇrsk´e pr´ace • BP_Martin_Hron.pdf – pdf dokument s v´ yslednou bakal´aˇrskou prac´ı vˇcetnˇe pˇr´ıloh
74
Obsah CD
Popis obsahu CD
PostgreSQL • Linux – sloˇzka s instalaˇcn´ımi soubory PostgreSQL pro Linux – postgresql-9.3.4-3-linux-x64.run – instalaˇcn´ı soubor PostgreSQL pro 64 bitov´ y syst´em – postgresql-9.3.4-3-linux-x86.run – instalaˇcn´ı soubor PostgreSQL pro 32 bitov´ y syst´em • Windows – sloˇzka s instalaˇcn´ımi soubory PostgreSQL pro Windows – postgresql-9.3.4-3-windows-x64.exe – instalaˇcn´ı soubor PostgreSQL pro 64 bitov´ y syst´em – postgresql-9.3.4-3-windows-x64.exe – instalaˇcn´ı soubor PostgreSQL pro 32 bitov´ y syst´em – PgAdmin3 – sloˇzka s instalaˇcn´ım souborem programu PgAdmin3
75