Program pro evidenci nákladů a výnosů Jan Lisal
Požadavky Požadavky zadání: Možnost evidence nákladů a výnosů v rámci firmy Možnost evidence práv a uživatelů Uchovávání historie editace a mazání nákladů, výnosů a mezd Správa číselníků Toto jsou jen některé požadavky Požadavky zpracování Datový návrh EDR a DFD diagram Ukázka SQL scriptů (uložená procedura, spoušť…) Zhodnocení, závěr
Integritní omezení Uživatel musí být členem nějaké skupiny uživatelů Každý uživatel musí mít zadáno heslo a uživatelské jméno K uživatelské skupině lze zadat pouze „jeden záznam“ do tabulky práv Z tabulky mezd nejde zmazat záznam pro dané oddělení v případě, že není záznamem s nejvyšším datem A spousta dalších…
Tabulky – ERD diagram
Tabulky II Model tabulek zachycuje kompletní strukturu potřebnou pro funkcionalitu software Šedé tabulky jsou stěžejní pro ukládané data a jsou tyto jsou zálohovány při změně jejich dat
DFD diagram Tento diagram je pouze částí kompletního návrhu Diagram zjednodušeně popisuje vytvoření či změnu záznamu v tabulce nákladů
SQL – uložená procedura CREATE PROCEDURE AS uniqueidentifier AS BEGIN /* Procedure body */ AS INT = ' ‚ IS NULL = NEWID() = > 0 BEGIN -- Jde o UPDATE UPDATE PayOff SET Date Price Note DepartmentId OperationId PayOffTypeId UserId WHERE Id END ELSE BEGIN -- Jde o INSERT INSERT INTO @operationId, END RETURN 1 END
Trigger – Záloha záznamů nákladů CREATE TRIGGER [TriggerExpenseChange] ON [Expense] FOR UPDATE NOT FOR REPLICATION AS BEGIN /* Trigger body */ -- promenne ktere se zachovavaji - moznost zjisteni co bylo pred updatem AS uniqueidentifier AS SMALLDATETIME AS money AS varchar(max) AS varchar(100) AS varchar(100) AS varchar(100) AS varchar(100) AS varchar(80) -- promenna pro sestaveni vysledneho stringu, ve kterem se zachovavaji data AS varchar(max) -- promenna aktualniho uzivatele, ktery provadi zmenu AS uniqueidentifier = = = = = = = = = u.Surname + ' ' + u.Name FROM inserted AS i LEFT OUTER JOIN Department AS d on d.Id = DepartmentId LEFT OUTER JOIN Operation AS o on o.Id = OperationId LEFT OUTER JOIN ExpensesType AS et on et.Id = ExpensesTypeId LEFT OUTER JOIN ExpenseAllowance AS ea ON ea.Id = ExpenseAllowanceId LEFT OUTER JOIN "User" AS u ON u.Id = UserId = + '||' + + ' Ke ||' + '||' + '||' + '||' + '||' + '||' = UserId FROM Expense WHERE Id INSERT INTO Change(Id, ItemId, Date, TableName, Change, UserId, UpdateDelete) 'U') END
Závěr Tento systém je odzkoušený a plně funkční. V době tvorby této prezentace mě nenapadli žádné možné vylepšení a zjednodušení Děkuji za pozornost