Opis techniczny - Generator en-GO

Transkrypt

Opis techniczny - Generator en-GO
Opis techniczny
Kalkulator outsourcingu: Generator e-n-GO
Cieszyn, listopad 2013 r.
Projektodawca:
Stowarzyszenie Wspierania Inicjatyw Gospodarczych DELTA PARTNER
Ul. Zamkowa 3A / 1, 43 – 400 Cieszyn
Tel. (33) 851 44 81, fax: (33) 851 44 81
[email protected], [email protected]
www.kalkulatorngo.pl
Partner projektu:
Miasto Ustroń
Ul. Rynek 1, 43-450 Ustroń
Tytuł projektu: „Kalkulator outsourcingu: Generator e-n-GO”
Numer umowy zawartej z instytucją weryfikującą: UDA.POKL.05.04.02-00-E24/11-00
Wykonawca techniczny:
www.ktsoft.pl
Cieszyn – 2013
Projekt „Kalkulator outsourcingu: Generator e-n-GO” jest współfinansowany ze środków Unii Europejskiej w
ramach Europejskiego Funduszu Społecznego.
Opis techniczny
Spis treści
Wprowadzenie............................................................................................................................................. 5
Architektura systemu................................................................................................................................... 5
Wymagania sprzętowe i programowe........................................................................................................ 8
Wykorzystane technologie informatyczne................................................................................................ 10
Opis struktury katalogów projektu............................................................................................................ 11
Katalog główny...................................................................................................................................... 11
Diagram struktury bazy danych................................................................................................................. 12
Opis struktury bazy danych....................................................................................................................... 13
Tabela - Groups..................................................................................................................................... 13
Tabela - Jednostki.................................................................................................................................. 14
Tabela - Migrations............................................................................................................................... 14
Tabela - Oferenci................................................................................................................................... 15
Tabela - Oferenci_reprezentanci.......................................................................................................... 16
Tabela - Zadania_edycje........................................................................................................................ 17
Tabela - Zadania_zakres........................................................................................................................ 18
Tabela - Zadania.................................................................................................................................... 18
Tabela - Users........................................................................................................................................ 19
Tabela - Oferty....................................................................................................................................... 20
Tabela - Oferty_dane............................................................................................................................ 21
Tabela - Oferty_oferenci....................................................................................................................... 22
Tabela - Oferty_zakresy_realizacji........................................................................................................ 24
Tabela - Oferty_harmonogram............................................................................................................. 25
Tabela - Oferty_historia........................................................................................................................ 26
Tabela - Oferty_inne_informacje.......................................................................................................... 27
Tabela - Oferty_inne_zrodla_finansowe............................................................................................... 28
Tabela - Oferty_kosztorysy................................................................................................................... 28
Tabela - Oferty_oferenci_reprezentanci.............................................................................................. 30
Tabela - Oferty_oswiadczenia............................................................................................................... 30
Tabela - Oferty_zrodla_finansowe........................................................................................................ 31
Strona 3
Kalkulator outsourcingu: Generator e-n-GO
Tabela - Pomoc...................................................................................................................................... 32
Tabela - Sprawozdania.......................................................................................................................... 33
Tabela - Sprawozdania_faktury............................................................................................................. 34
Tabela - Sprawozdania_finanse............................................................................................................ 35
Tabela - Sprawozdania_inne................................................................................................................. 36
Tabela - Sprawozdania_koszty.............................................................................................................. 37
Tabela - Sprawozdania_merytoryczne.................................................................................................. 38
Tabela - Sprawozdania_merytoryczne_dzialania................................................................................. 38
Tabela - Throttle.................................................................................................................................... 39
Tabela - Users_groups........................................................................................................................... 40
Tabela - Wskazniki................................................................................................................................. 41
Tabela - Wskazniki_oferty..................................................................................................................... 41
Tabela - Wskazniki_zadania_zakres...................................................................................................... 42
Tabela - Zadania_linki............................................................................................................................ 43
Tabela - Zalaczniki................................................................................................................................. 44
Lista zdefiniowanych klas podstawowych................................................................................................. 46
AuthController....................................................................................................................................... 46
HelpController....................................................................................................................................... 47
EditionsController................................................................................................................................. 47
OffertController..................................................................................................................................... 47
PdfController......................................................................................................................................... 47
ReportController................................................................................................................................... 47
TaskController....................................................................................................................................... 47
PointersController................................................................................................................................. 47
UnitsController...................................................................................................................................... 47
UsersController..................................................................................................................................... 48
Strona 4
Opis techniczny
Wprowadzenie
Dokument zawiera informacje pomocne przy instalacji systemu i jego ewentualnej rozbudowie.
Adresowany jest głównie dla informatyków obsługujących Jednostki Administracji Publicznej (JST).
Rozdziały dotyczące wymagań sprzętowych czy stosowanych technologii informatycznych są
szczególnie istotne dla JST samodzielnie instalujących generator. Dla JST korzystających z serwera
firmy Delta mają mniejsze znaczenie.
W najobszerniejszym rozdziale „Opis struktury bazy danych” przedstawiono schemat tablic z bazy
danych (SQL). Opisano w nim wszystkie tablice systemu – dane te są przydatne dla rozbudowy i
modyfikacji systemu.
Architektura systemu
Aplikacja Generator e-n-GO została zrealizowana w oparciu o architekturę klient-serwer (cienki klient) z
wykorzystaniem technologii webowych (PHP i MySQL) Architektura klient-serwer wydaje się być
najwłaściwszą dla tego typu aplikacji.
Pobieranie, zapisywanie i analiza danych odbywa się na serwerze, po czym wyniki tych operacji są
generowane jako kod HTML, wysyłane do komputera-klienta i wyświetlane. Dzięki zastosowaniu takiej
technologii zredukowane zostały wymagania co do mocy obliczeniowych komputera użytkownika rolę interfejsu pełni dowolna przeglądarka internetowa.
Zalety architektury klient-serwer
•
Wszystkie informacje przechowywane są na serwerze, wobec tego możliwe jest lepsze
zabezpieczenie danych. Serwer może decydować kto ma prawo do odczytywania i zmiany
danych.
•
Wieloplatformowość aplikacji dzięki temu występuje duża dostępność systemu. Brak tutaj
ograniczenia co do systemu operacyjnego lub urządzenia. Wymagane jest tylko urządzenie
posiadające przeglądarkę WWW.
Strona 5
Kalkulator outsourcingu: Generator e-n-GO
•
Całość prac administracyjnych i konserwacyjnych ogranicza się do przestrzeni serwera
aplikacji, nie zaś klienta. Eliminuje to całkowicie konieczność wprowadzania zmian na każdym
komputerze klienta.
•
Globalna dystrybucja najnowszej wersji oprogramowania. Wgrywamy najnowszą wersję na
serwer i automatycznie wszyscy użytkownicy korzystają z najnowszej wersji oprogramowania.
Umożliwia to szybkie poprawianie błędów wykrytych w aplikacji w trakcie użytkowania a
zgłoszonych przez użytkowników.
Wady architektury klient-serwer
Wadą architektury typu klient serwer może być natomiast zbyt duża liczba odbiorców (co jest również
zaletą), co z kolei może prowadzić do trudności z przepustowością oraz do podobnych problemów
natury technicznej. Kiedy serwer nie będzie funkcjonował poprawnie, wówczas dostęp do zasobów
może być niemożliwy dla wszystkich klientów. W przypadku dużej liczby klientów potrzebny jest
wydajny serwer wraz z łączem internetowym o odpowiedniej przepustowości.
Schemat działania w architekturze klient serwer
Strona 6
Opis techniczny
Wymagania sprzętowe i programowe
Serwer - sprzęt
Aplikacja Generator e-n-Go została zainstalowana na serwerze o podanej specyfikacji co zapewnia
optymalne działanie serwera na obecnym etapie realizacji projektu oraz zapewnia poprawne działanie
aplikacji po końcowym wdrożeniu systemu dla Miasta Ustroń.
•
Procesor: Intel Xeon z serii E5-2600
•
Pamięć RAM: 16GB
•
HDD: 1TB (Raid 1)
Serwer – oprogramowanie
•
Serwer działa w oparciu o system Debian Linux w wersji 7.0 (http://www.debian.org/)
•
Serwer WWW Apache w wersji 2.2 wzwyż (http://apache.org/)
•
PHP wersji 5.3.10+, rekomendowana wersja 5.4+ (http://php.net/)
•
Baza danych MySQL w wersji 5.5 wzwyż
•
Na serwerze wymagane jest również zainstalowanie menedżera zależności dla PHP - composer
(http://getcomposer.org/)
Strona 7
Kalkulator outsourcingu: Generator e-n-GO
Klient
Dla klienta końcowego wymagania systemowe nie są zbyt wygórowane, gdyż wymagany jest dowolny
komputer lub tablet z przeglądarką internetową oraz dostępem do sieci internet. Zalecana
rozdzielczość ekranu to 1280x800 lub więcej.
Dzięki tak niewielkim wymaganiom od strony klienta aplikacja jest dostępna dla szerokiego grona
odbiorców którymi są organizacje pozarządowe co nie narzuca dodatkowych kosztów na te
organizacje.
Istnieje również możliwość korzystania z Generatora e-n-GO z telefonu komórkowego (smartphone)
ale z racji ograniczenia wielkości ekranu i rozdzielczości wykonywanie pewnych funkcji może być
utrudnione. Funkcja ta nie była pierwotnym założeniem wymagań stawianych przed systemem ale jest
również dodatkowo wdrażana i w przyszłości zostanie również dopracowana, kiedy projekt zostanie
już uruchomiony w skali globalnej.
Wspierane przeglądarki internetowe:
•
Internet Explorer 9+
•
Firefox 6+
•
Opera 11+
•
Chrome 3+
•
Safari 4+
Strona 8
Opis techniczny
Wykorzystane technologie informatyczne
Realizacja aplikacji opiera się na wykorzystaniu ogólnodostępnych, darmowych technologii
programistycznych związanych ze skryptowym językiem programowania PHP. Repozytorium danych
stanowi relacyjna baza danych MySQL, zaś do budowania ekranów formularzy wykorzystano głównie
framework CSS – Bootstrap.
Rolę serwera aplikacji pełni serwer Apache z uruchomionym modułem PHP w wersji 5.4. Na serwerze
jest również zainstalowane narzędzie composer, które służy do zarządzania zależnościami języka PHP
Generator e-n-GO został stworzony w oparciu o framework Laravel w wersji 4. (http://laravel.com/)
Do autoryzacji i zarządzania kontami użytkowników wykorzystana została biblioteka Sentry2.
Strona 9
Kalkulator outsourcingu: Generator e-n-GO
Opis struktury katalogów projektu
Katalog główny
Katalog główny na serwerze zawiera następujące katalogi:
app
Katalog zawiera pliki powiązane z projektem. Zawiera kod źródłowy aplikacji, wszystkie klasy aplikacji,
modele, widoki
bootstrap
Katalog zawiera pliki potrzebne do uruchomienia framework'a na którym została zbudowana aplikacja
w momencie żądania strony przez przeglądarkę internetową.
vendor
Katalog zawiera wszystkie biblioteki instalowane za pomocą composer, kod źródłowy framework'a.
Tutaj jest zainstalowny framework Laravel, biblioteka Sentry2, biblioteka generowania plików pdf
(tcpdf) oraz inne zależności i biblioteki wymagane do działania aplikacji.
public
Jest to główny katalog serwera www dostępny dla użytkowników z poziomiu przeglądarki, zawiera pliki
css, img, Javascript.
Strona 10
Opis techniczny
Diagram struktury bazy danych
Strona 11
Kalkulator outsourcingu: Generator e-n-GO
Opis struktury bazy danych
Opis zawiera strukturę bazę danych wraz z opisem przeznaczenia poszczególnych tabel używanych w
systemie. W poniższym opisie nie są widoczne wszystkie powiązania pomiędzy poszczególnymi
tabelami. Te są widoczne na diagramie na poprzedniej stronie.
Tabela - Groups
Tabela zawiera role użytkowników w systemie e-n-GO. Na chwilę obecną w systemie są zdefiniowane 2
role.
JST - jednostka samorządu terytorialnego.
NGO-klient – organizacja pozarządowa.
W przyszłości będzie istniała możliwość rozbudowy systemu o kolejne rolę które będą posiadały
dodatkowe funkcjonalności niż dotychczas założone w systemie jak np. obserwator (burmistrz) który
będzie mógł śledzić pracę urzędników odpowiedzialnych za przepływ danych w systemie.
-- ------------------------------------------------------ Table `engo`.`groups`
-- ----------------------------------------------------CREATE TABLE IF NOT EXISTS `engo`.`groups` (
`id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT ,
`name` VARCHAR(255) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci' NOT NULL ,
`permissions` TEXT CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci' NULL DEFAULT NULL ,
`created_at` TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00' ,
`updated_at` TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00' ,
PRIMARY KEY (`id`) ,
UNIQUE INDEX `groups_name_unique` (`name` ASC) )
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_unicode_ci;
Strona 12
Opis techniczny
Tabela - Jednostki
Tabela zawiera zdefiniowane jednostki które są używane do wypełniania pozycji kosztorysowych.
Możliwość edycji jednostek czy zarządzanie dostępnymi jednostkami w systemie jest możliwe z
poziomu JST (Urząd Miasta). Ustawienia → Jednostki.
-- ------------------------------------------------------ Table `engo`.`jednostki`
-- ----------------------------------------------------CREATE TABLE IF NOT EXISTS `engo`.`jednostki` (
`id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT ,
`nazwa` VARCHAR(32) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci' NOT NULL ,
PRIMARY KEY (`id`) )
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_unicode_ci;
Tabela - Migrations
Jest to wewnętrzna tabela systemowa na potrzeby aplikacji generatora zawierająca aktualny stan
migracji bazy danych – odpowiada za aktualizację struktury bazy danych. Nie zawiera żadnych danych
użytkowników.
-- ------------------------------------------------------ Table `engo`.`migrations`
-- ----------------------------------------------------CREATE TABLE IF NOT EXISTS `engo`.`migrations` (
`migration` VARCHAR(255) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci' NOT NULL ,
`batch` INT(11) NOT NULL )
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_unicode_ci;
Strona 13
Kalkulator outsourcingu: Generator e-n-GO
Tabela - Oferenci
Tabela zawiera oferentów którzy zarejestrowali się w systemie e-n-GO wraz z wszystkim danymi
odnośnie oferenta.
-- ------------------------------------------------------ Table `engo`.`oferenci`
-- ----------------------------------------------------CREATE TABLE IF NOT EXISTS `engo`.`oferenci` (
`id` INT(11) NOT NULL AUTO_INCREMENT ,
`id_user` VARCHAR(45) NULL DEFAULT NULL ,
`main` TINYINT(1) NOT NULL DEFAULT '0' ,
`nazwa` VARCHAR(64) NOT NULL ,
`forma_prawna`
ENUM('stowarzyszenie','fundacja','koscielna_osoba','spoldzielnia','koscielna_jednostka','inna')
NULL ,
`forma_prawna_inna` VARCHAR(32) NOT NULL ,
`krs` VARCHAR(10) NOT NULL ,
`data_wpisu` DATE NOT NULL ,
`nip` VARCHAR(13) NOT NULL ,
`regon` VARCHAR(10) NOT NULL ,
`miejscowosc` VARCHAR(48) NOT NULL ,
`ulica` VARCHAR(48) NOT NULL ,
`dzielnica` VARCHAR(32) NULL DEFAULT NULL ,
`gmina` VARCHAR(32) NOT NULL ,
`powiat` VARCHAR(32) NULL DEFAULT NULL ,
`wojewodztwo` VARCHAR(32) NOT NULL ,
`kod_pocztowy` VARCHAR(6) NOT NULL ,
`poczta` VARCHAR(32) NOT NULL ,
`telefon` VARCHAR(10) NULL DEFAULT NULL ,
`fax` VARCHAR(10) NULL DEFAULT NULL ,
`email` VARCHAR(45) NULL DEFAULT NULL ,
`www` VARCHAR(45) NULL DEFAULT NULL ,
Strona 14
NOT
Opis techniczny
`bank_konto` VARCHAR(32) NOT NULL ,
`bank_nazwa` VARCHAR(64) NOT NULL ,
`jednostka_organizacyjna` VARCHAR(90) NOT NULL ,
`osoba_upowazniona` VARCHAR(64) NOT NULL ,
`dzialalnosc_odplatna` TEXT NOT NULL ,
`dzialalnosc_nieodplatna` TEXT NOT NULL ,
`numer_wpisu` VARCHAR(20) NULL DEFAULT NULL ,
`przedmiot_dzialalnosci` TEXT NULL DEFAULT NULL ,
`created_at` DATETIME NULL DEFAULT NULL ,
`updated_at` DATETIME NULL DEFAULT NULL ,
PRIMARY KEY (`id`) )
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8;
Tabela - Oferenci_reprezentanci
Tabela zawiera dane osób reprezentujących danego oferenta zdefiniowanego w systemie, wraz ze
stanowiskiem oraz numerem telefonu. Osoby reprezentujące powinny być zgodne z wpisem KRS
zarejestrowanej instytucji.
-- ------------------------------------------------------ Table `engo`.`oferenci_reprezentanci`
-- ----------------------------------------------------CREATE TABLE IF NOT EXISTS `engo`.`oferenci_reprezentanci` (
`id` INT(11) NOT NULL AUTO_INCREMENT ,
`id_oferenci` INT(11) NOT NULL ,
`nazwa_reprezentanta` VARCHAR(45) NOT NULL ,
`telefon` VARCHAR(20) NULL DEFAULT NULL ,
`stanowisko` VARCHAR(64) NULL DEFAULT NULL ,
PRIMARY KEY (`id`) ,
INDEX `fk_oferenci_reprezentanci_oferenci1_idx` (`id_oferenci` ASC) ,
CONSTRAINT `fk_oferenci_reprezentanci_oferenci1`
Strona 15
Kalkulator outsourcingu: Generator e-n-GO
FOREIGN KEY (`id_oferenci` )
REFERENCES `engo`.`oferenci` (`id` )
ON DELETE CASCADE
ON UPDATE NO ACTION)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8;
Tabela - Zadania_edycje
Tabela zawiera zdefiniowane edycje konkursów ogłoszone przez Urząd Miasta. Są to tzw. kontenery na
ogłaszane zadania. W ramach takiej edycji może być ogłaszanych nieskończenie wiele zadań. Każda
taka edycja posiada termin zakończenia składania wniosków ofertowych w ramach edycji konkursu.
-- ------------------------------------------------------ Table `engo`.`zadania_edycje`
-- ----------------------------------------------------CREATE TABLE IF NOT EXISTS `engo`.`zadania_edycje` (
`id` INT(11) NOT NULL AUTO_INCREMENT ,
`nazwa` VARCHAR(64) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci' NOT NULL ,
`rok` INT(11) NOT NULL ,
`data_zakonczenia` DATETIME NOT NULL ,
`stan` SMALLINT(6) NOT NULL ,
`created_at` TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00' ,
`updated_at` TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00' ,
PRIMARY KEY (`id`) )
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_unicode_ci;
Strona 16
Opis techniczny
Tabela - Zadania_zakres
Tabela zawiera zdefiniowane zakresy zadań zgodne z Dz.U. 2003 nr 96 poz. 873. Ustawa
pochodzi z dnia 24 kwietnia 2003 r. o działalności pożytku publicznego i o
wolontariacie.
-- ------------------------------------------------------ Table `engo`.`zadania_zakres`
-- ----------------------------------------------------CREATE TABLE IF NOT EXISTS `engo`.`zadania_zakres` (
`id` TINYINT(4) NOT NULL AUTO_INCREMENT ,
`nazwa` VARCHAR(255) NOT NULL ,
PRIMARY KEY (`id`) )
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8;
Tabela - Zadania
Tabela zawiera zadania publiczne ogłoszone do realizacji przez Urząd Miasta. Zadania te są tworzone i
zarządzane z poziomu JST.
-- ------------------------------------------------------ Table `engo`.`zadania`
-- ----------------------------------------------------CREATE TABLE IF NOT EXISTS `engo`.`zadania` (
`id` INT(11) NOT NULL AUTO_INCREMENT ,
`id_zakres` TINYINT(4) NOT NULL ,
`id_zadania_edycje` INT(11) NOT NULL ,
`tytul` VARCHAR(128) NOT NULL ,
`uwagi` TEXT NULL DEFAULT NULL ,
`opis` TEXT NULL DEFAULT NULL ,
`kwota` DECIMAL(12,2) NULL DEFAULT NULL ,
`data_start` DATE NOT NULL ,
`data_koniec` DATE NOT NULL ,
Strona 17
Kalkulator outsourcingu: Generator e-n-GO
`stan` TINYINT(1) NOT NULL ,
`created_at` TIMESTAMP NULL DEFAULT NULL ,
`updated_at` TIMESTAMP NULL DEFAULT NULL ,
`typ_zadania` TINYINT(1) UNSIGNED ZEROFILL NULL DEFAULT '1' COMMENT '0 ramowe
1
sprecyzowane' ,
`bip_url` VARCHAR(128) NULL DEFAULT NULL ,
PRIMARY KEY (`id`) ,
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8;
Tabela - Users
Tabela zawiera wszystkie konta użytkowników zdefiniowanych w systemie. Za pomocą tych kont
użytkownicy logują się w systemie. Konta te są tworzone w momencie rejestracji użytkowników w
systemie po wypełnieniu stosownego formularza. Konto musi zostać aktywowane, informacja o tym
czy jest aktywne zawarta jest w polu activated.
-- ------------------------------------------------------ Table `engo`.`users`
-- ----------------------------------------------------CREATE TABLE IF NOT EXISTS `engo`.`users` (
`id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT ,
`email` VARCHAR(255) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci' NOT NULL ,
`password` VARCHAR(255) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci' NOT NULL ,
`permissions` TEXT CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci' NULL DEFAULT NULL ,
`activated` TINYINT(1) NOT NULL DEFAULT '0' ,
`activation_code` VARCHAR(255) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci' NULL DEFAULT
NULL ,
`activated_at` TIMESTAMP NULL DEFAULT NULL ,
`last_login` TIMESTAMP NULL DEFAULT NULL ,
`persist_code` VARCHAR(255) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci' NULL DEFAULT
NULL ,
Strona 18
Opis techniczny
`reset_password_code` VARCHAR(255) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci' NULL
DEFAULT NULL ,
`first_name` VARCHAR(255) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci' NULL DEFAULT NULL ,
`last_name` VARCHAR(255) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci' NULL DEFAULT NULL ,
`created_at` TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00' ,
`updated_at` TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00' ,
`deleted_at` TIMESTAMP NULL DEFAULT NULL ,
`website` VARCHAR(255) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci' NULL DEFAULT NULL ,
`country` VARCHAR(255) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci' NULL DEFAULT NULL ,
`gravatar` VARCHAR(255) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci' NULL DEFAULT NULL ,
PRIMARY KEY (`id`) ,
UNIQUE INDEX `users_email_unique` (`email` ASC) )
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_unicode_ci;
Tabela - Oferty
Tabela zawiera nagłówki wszystkich ofert składanych przez oferentów w odpowiedzi na ogłoszone
zadania. Oferty mogą mieć status wersji roboczej, złożonej, zaakceptowanej
-- ------------------------------------------------------ Table `engo`.`oferty`
-- ----------------------------------------------------CREATE TABLE IF NOT EXISTS `engo`.`oferty` (
`id` INT(11) NOT NULL AUTO_INCREMENT ,
`id_zadania` INT(11) NOT NULL ,
`id_uzytkownika` INT(10) UNSIGNED NOT NULL ,
`wersja` SMALLINT(6) NOT NULL COMMENT 'Wersja złożonej oferty' ,
`numer` VARCHAR(16) NOT NULL ,
`stan` TINYINT(1) NOT NULL COMMENT '0 robocza 1 zlożona 2 zaakceptowana' ,
`miejsce` VARCHAR(45) NULL DEFAULT NULL COMMENT 'Miejsce złożenia oferty' ,
`checksum` VARCHAR(32) NULL DEFAULT NULL COMMENT 'Suma kontrolna wygenerowanej oferty' ,
Strona 19
Kalkulator outsourcingu: Generator e-n-GO
`created_at` DATETIME NOT NULL ,
`updated_at` DATETIME NULL DEFAULT NULL ,
`nazwa_zadania` VARCHAR(128) NULL DEFAULT NULL ,
PRIMARY KEY (`id`) ,
INDEX `fk_oferty_zadania` (`id_zadania` ASC) ,
INDEX `fk_oferty_1_idx` (`id_zadania` ASC) ,
INDEX `FK_oferty_users` (`id_uzytkownika` ASC) ,
CONSTRAINT `fk_oferty_1`
FOREIGN KEY (`id_zadania` )
REFERENCES `engo`.`zadania` (`id` )
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `FK_oferty_users`
FOREIGN KEY (`id_uzytkownika` )
REFERENCES `engo`.`users` (`id` )
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8;
Tabela - Oferty_dane
Tabela jest rozszerzeniem tabeli oferty, zawiera dane wpisywane we wniosku w zakładce „2.
Szczegółowy zakres”
-- ------------------------------------------------------ Table `engo`.`oferty_dane`
-- ----------------------------------------------------CREATE TABLE IF NOT EXISTS `engo`.`oferty_dane` (
`id` INT(11) NOT NULL AUTO_INCREMENT ,
`id_oferty` INT(11) NOT NULL DEFAULT '0' ,
`reprezentacja_oferentow` TEXT NULL DEFAULT NULL ,
Strona 20
Opis techniczny
`krotka_charakterystyka` TEXT NOT NULL ,
`opis_potrzeb` TEXT NOT NULL ,
`opis_grup` TEXT NOT NULL ,
`uzasadnienie_potrzeby` TEXT NULL DEFAULT NULL ,
`informacja` TEXT NULL DEFAULT NULL ,
`zakladane_cele` TEXT NOT NULL ,
`miejsce_realizacji` VARCHAR(128) NOT NULL ,
`opis_dzialan` TEXT NOT NULL ,
`zakladane_rezultaty` TEXT NOT NULL ,
PRIMARY KEY (`id`) ,
INDEX `FK_oferty_dane_oferty` (`id_oferty` ASC) ,
CONSTRAINT `FK_oferty_dane_oferty`
FOREIGN KEY (`id_oferty` )
REFERENCES `engo`.`oferty` (`id` )
ON DELETE CASCADE
ON UPDATE NO ACTION)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8;
Tabela - Oferty_oferenci
Tabela zawiera oferentów przypisanych do tworzonej oferty. W momencie tworzenia nowego wniosku
ofertowego dane są kopiowane do tej tabeli z tabeli oferenci.
-- ------------------------------------------------------ Table `engo`.`oferty_oferenci`
-- ----------------------------------------------------CREATE TABLE IF NOT EXISTS `engo`.`oferty_oferenci` (
`id` INT(11) NOT NULL AUTO_INCREMENT ,
`id_oferty` INT(11) NOT NULL DEFAULT '0' ,
`main` TINYINT(1) NOT NULL DEFAULT '0' ,
`nazwa` VARCHAR(64) NOT NULL ,
Strona 21
Kalkulator outsourcingu: Generator e-n-GO
`forma_prawna`
ENUM('stowarzyszenie','fundacja','koscielna_osoba','koscielna_jednostka','spoldzielnia','inna')
NULL ,
`forma_prawna_inna` VARCHAR(45) NULL DEFAULT NULL ,
`krs` VARCHAR(10) NOT NULL ,
`data_wpisu` DATE NOT NULL ,
`nip` VARCHAR(13) NOT NULL ,
`regon` VARCHAR(10) NOT NULL ,
`miejscowosc` VARCHAR(32) NOT NULL ,
`ulica` VARCHAR(32) NOT NULL ,
`dzielnica` VARCHAR(32) NULL DEFAULT NULL ,
`gmina` VARCHAR(32) NOT NULL ,
`powiat` VARCHAR(32) NULL DEFAULT NULL ,
`wojewodztwo` VARCHAR(32) NOT NULL ,
`kod_pocztowy` VARCHAR(6) NOT NULL ,
`poczta` VARCHAR(32) NOT NULL ,
`telefon` VARCHAR(10) NULL DEFAULT NULL ,
`fax` VARCHAR(10) NULL DEFAULT NULL ,
`email` VARCHAR(45) NULL DEFAULT NULL ,
`www` VARCHAR(45) NULL DEFAULT NULL ,
`bank_konto` VARCHAR(32) NOT NULL ,
`bank_nazwa` VARCHAR(64) NOT NULL ,
`jednostka_organizacyjna` VARCHAR(90) NOT NULL ,
`osoba_upowazniona` VARCHAR(64) NOT NULL ,
`dzialalnosc_nieodplatna` TEXT NOT NULL ,
`dzialalnosc_odplatna` TEXT NOT NULL ,
`numer_wpisu` VARCHAR(20) NULL DEFAULT NULL ,
`przedmiot_dzialalnosci` TEXT NULL DEFAULT NULL ,
`created_at` DATETIME NULL DEFAULT NULL ,
`updated_at` DATETIME NULL DEFAULT NULL ,
PRIMARY KEY (`id`) ,
INDEX `FK_oferty_oferenci_oferty` (`id_oferty` ASC) ,
Strona 22
NOT
Opis techniczny
CONSTRAINT `FK_oferty_oferenci_oferty`
FOREIGN KEY (`id_oferty` )
REFERENCES `engo`.`oferty` (`id` )
ON DELETE CASCADE
ON UPDATE NO ACTION)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8;
Tabela - Oferty_zakresy_realizacji
Tabela zawiera działania definiowane w wniosku ofertowym w punkcie III.8. Działania te są
automatycznie przepisywane do harmonogramu z możliwością edycji jak również wykorzystane w
kosztorysie.
-- ------------------------------------------------------ Table `engo`.`oferty_zakresy_realizacji`
-- ----------------------------------------------------CREATE TABLE IF NOT EXISTS `engo`.`oferty_zakresy_realizacji` (
`id` INT(11) NOT NULL AUTO_INCREMENT ,
`id_oferty` INT(11) NOT NULL DEFAULT '0' ,
`nazwa` VARCHAR(64) NULL DEFAULT NULL ,
`opis` TEXT NULL DEFAULT NULL ,
`typ` TINYINT(1) NOT NULL DEFAULT '0' ,
PRIMARY KEY (`id`) ,
INDEX `FK_oferty_dane_dzialania_oferty` (`id_oferty` ASC) ,
CONSTRAINT `FK_oferty_dane_dzialania_oferty`
FOREIGN KEY (`id_oferty` )
REFERENCES `engo`.`oferty` (`id` )
ON DELETE CASCADE
ON UPDATE NO ACTION)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8;
Strona 23
Kalkulator outsourcingu: Generator e-n-GO
Tabela - Oferty_harmonogram
Tabela zawiera harmonogram wniosku ofertowego odnoszący się to tabeli „oferty_zakresy_realizacji”.
-- ------------------------------------------------------ Table `engo`.`oferty_harmonogram`
-- ----------------------------------------------------CREATE TABLE IF NOT EXISTS `engo`.`oferty_harmonogram` (
`id` INT(11) NOT NULL AUTO_INCREMENT ,
`id_oferty` INT(11) NULL DEFAULT NULL ,
`id_oferty_oferenci` INT(11) NULL DEFAULT NULL ,
`kolejnosc` TINYINT(4) NULL DEFAULT NULL ,
`dzialania` TEXT NOT NULL ,
`data_start` DATE NOT NULL DEFAULT '2013-01-01' ,
`data_stop` DATE NOT NULL DEFAULT '2013-01-02' ,
`id_oferty_zakresy_realizacji` INT(11) NULL DEFAULT NULL ,
`skala_dzialan` VARCHAR(32) NOT NULL ,
PRIMARY KEY (`id`) ,
INDEX `fk_OFERTY_HARMONOGRAM_OFERTY1_idx` (`id_oferty` ASC) ,
INDEX `fk_oferty_harmonogram_oferty_oferenci1_idx` (`id_oferty_oferenci` ASC) ,
INDEX `oferty_harmonogram_id_oferty_zakresy_realizacji_foreign` (`id_oferty_zakresy_realizacji`
ASC) ,
CONSTRAINT `fk_OFERTY_HARMONOGRAM_OFERTY1`
FOREIGN KEY (`id_oferty` )
REFERENCES `engo`.`oferty` (`id` )
ON DELETE CASCADE
ON UPDATE NO ACTION,
CONSTRAINT `fk_oferty_harmonogram_oferty_oferenci1`
FOREIGN KEY (`id_oferty_oferenci` )
REFERENCES `engo`.`oferty_oferenci` (`id` )
ON DELETE CASCADE
ON UPDATE NO ACTION,
CONSTRAINT `oferty_harmonogram_id_oferty_zakresy_realizacji_foreign`
Strona 24
Opis techniczny
FOREIGN KEY (`id_oferty_zakresy_realizacji` )
REFERENCES `engo`.`oferty_zakresy_realizacji` (`id` )
ON DELETE CASCADE)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8;
Tabela - Oferty_historia
Tabela zawiera historię wniosku ofertowego. Rejestrowane są tutaj wszystkie akcje której
podejmowane są odnośnie wniosku ofertowego, począwszy od rozpoczęcia wypełniania wniosku.
Dzięki temu możemy prześledzić co działo się na przestrzeni czasu z danym wnioskiem.
-- ------------------------------------------------------ Table `engo`.`oferty_historia`
-- ----------------------------------------------------CREATE TABLE IF NOT EXISTS `engo`.`oferty_historia` (
`id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT ,
`oferty_id` INT(11) NOT NULL ,
`user_id` INT(10) UNSIGNED NOT NULL ,
`nazwa` VARCHAR(64) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci' NOT NULL ,
`checksum` VARCHAR(32) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci' NULL DEFAULT NULL ,
`type` SMALLINT(6) NULL DEFAULT NULL ,
`created_at` TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00' ,
`updated_at` TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00' ,
PRIMARY KEY (`id`) ,
INDEX `fk_oferty_historia_1` (`oferty_id` ASC) ,
CONSTRAINT `fk_oferty_historia_1`
FOREIGN KEY (`oferty_id` )
REFERENCES `engo`.`oferty` (`id` )
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8
Strona 25
Kalkulator outsourcingu: Generator e-n-GO
COLLATE = utf8_unicode_ci;
Tabela - Oferty_inne_informacje
Tabela zawiera dane zawarte w wniosku ofertowym w zakładce „6. Inne informacje”
-- ------------------------------------------------------ Table `engo`.`oferty_inne_informacje`
-- ----------------------------------------------------CREATE TABLE IF NOT EXISTS `engo`.`oferty_inne_informacje` (
`id` INT(11) NOT NULL AUTO_INCREMENT ,
`id_oferty` INT(11) NOT NULL DEFAULT '0' ,
`zasoby_kadrowe` TEXT NULL DEFAULT NULL ,
`zasoby_rzeczowe` TEXT NULL DEFAULT NULL ,
`doswiadczenie` TEXT NULL DEFAULT NULL ,
`informacja` TEXT NULL DEFAULT NULL ,
`uwagi` TEXT NULL DEFAULT NULL ,
PRIMARY KEY (`id`) ,
INDEX `FK_oferty_inne_informacje_oferty` (`id_oferty` ASC) ,
CONSTRAINT `FK_oferty_inne_informacje_oferty`
FOREIGN KEY (`id_oferty` )
REFERENCES `engo`.`oferty` (`id` )
ON DELETE CASCADE
ON UPDATE NO ACTION)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8;
Strona 26
Opis techniczny
Tabela - Oferty_inne_zrodla_finansowe
Tabela zawiera zdefiniowane inne źródła finansowe zawarte we wniosku ofertowym.
-- ------------------------------------------------------ Table `engo`.`oferty_inne_zrodla_finansowe`
-- ----------------------------------------------------CREATE TABLE IF NOT EXISTS `engo`.`oferty_inne_zrodla_finansowe` (
`id` INT(11) NOT NULL AUTO_INCREMENT ,
`id_oferty` INT(11) NOT NULL DEFAULT '0' ,
`nazwa_organu` VARCHAR(100) NOT NULL ,
`kwota` DECIMAL(8,2) NOT NULL ,
`informacja_rozpatrzenia` ENUM('tak','nie') NOT NULL ,
`termin` DATE NOT NULL DEFAULT '2000-01-01' ,
PRIMARY KEY (`id`) ,
INDEX `FK_oferty_inne_zrodla_finansowe_oferty` (`id_oferty` ASC) ,
CONSTRAINT `FK_oferty_inne_zrodla_finansowe_oferty`
FOREIGN KEY (`id_oferty` )
REFERENCES `engo`.`oferty` (`id` )
ON DELETE CASCADE
ON UPDATE NO ACTION)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8;
Tabela - Oferty_kosztorysy
Tabela zawiera dane zawarte w kosztorysie we wniosku ofertowym.
-- ------------------------------------------------------ Table `engo`.`oferty_kosztorysy`
-- ----------------------------------------------------CREATE TABLE IF NOT EXISTS `engo`.`oferty_kosztorysy` (
`id` INT(11) NOT NULL AUTO_INCREMENT ,
Strona 27
Kalkulator outsourcingu: Generator e-n-GO
`id_oferty` INT(11) NOT NULL ,
`id_oferty_oferenci` INT(11) NOT NULL ,
`id_oferty_zakresy_realizacji` INT(11) NULL DEFAULT NULL ,
`nazwa` VARCHAR(64) NULL DEFAULT NULL ,
`ilosc_jednostek` DECIMAL(8,2) NOT NULL ,
`koszt_jednostkowy` DECIMAL(8,2) NOT NULL ,
`rodzaj_miary` SMALLINT(6) NULL DEFAULT NULL ,
`koszt_calkowity` DECIMAL(8,2) NOT NULL ,
`dotacja_wnioskowa` DECIMAL(8,2) NOT NULL ,
`srodki_wlasne` DECIMAL(8,2) NOT NULL ,
`koszt_pokrycia` DECIMAL(8,2) NOT NULL ,
`rodzaj_kosztow` ENUM('merytoryczne','obslugi','inne') NOT NULL ,
`koszt_osobowy` TINYINT(1) NOT NULL DEFAULT '0' ,
PRIMARY KEY (`id`) ,
INDEX `fk_OFERTS_ESTIMATE_OFERTS1_idx` (`id_oferty` ASC) ,
INDEX `fk_OFERTS_ESTIMATE_BIDDERS1_idx` (`id_oferty_oferenci` ASC) ,
CONSTRAINT `fk_OFERTS_ESTIMATE_BIDDERS1`
FOREIGN KEY (`id_oferty_oferenci` )
REFERENCES `engo`.`oferty_oferenci` (`id` )
ON DELETE CASCADE
ON UPDATE NO ACTION,
CONSTRAINT `fk_OFERTS_ESTIMATE_OFERTS_1`
FOREIGN KEY (`id_oferty` )
REFERENCES `engo`.`oferty` (`id` )
ON DELETE CASCADE
ON UPDATE NO ACTION)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8;
Strona 28
Opis techniczny
Tabela - Oferty_oferenci_reprezentanci
Tabela zawiera zdefiniowanych reprezentantów dla danego oferenta występującego w ofercie wniosku
ofertowego.
-- ------------------------------------------------------ Table `engo`.`oferty_oferenci_reprezentanci`
-- ----------------------------------------------------CREATE TABLE IF NOT EXISTS `engo`.`oferty_oferenci_reprezentanci` (
`id` INT(11) NOT NULL AUTO_INCREMENT ,
`id_oferty_oferenci` INT(11) NOT NULL ,
`nazwa_reprezentanta` VARCHAR(64) NOT NULL ,
`telefon` VARCHAR(20) NULL DEFAULT NULL ,
`stanowisko` VARCHAR(64) NULL DEFAULT NULL ,
PRIMARY KEY (`id`) ,
INDEX `fk_BIDDER_REPRESENTANT_BIDDER_idx` (`id_oferty_oferenci` ASC) ,
CONSTRAINT `fk_BIDDER_REPRESENTANT_BIDDER`
FOREIGN KEY (`id_oferty_oferenci` )
REFERENCES `engo`.`oferty_oferenci` (`id` )
ON DELETE CASCADE
ON UPDATE NO ACTION)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8;
Tabela - Oferty_oswiadczenia
Tabela zawiera oświadczenia zawarte na końcu wniosku ofertowego.
-- ------------------------------------------------------ Table `engo`.`oferty_oswiadczenia`
-- ----------------------------------------------------CREATE TABLE IF NOT EXISTS `engo`.`oferty_oswiadczenia` (
`id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT ,
`id_oferty` INT(11) NOT NULL ,
`zakres_dzialalnosci` TINYINT(1) NOT NULL ,
Strona 29
Kalkulator outsourcingu: Generator e-n-GO
`pobieranie_oplat` TINYINT(1) NOT NULL ,
`data_zwiazania` DATE NOT NULL ,
`przetwarzanie_danych` TINYINT(1) NOT NULL ,
`zalega_oplacenie` TINYINT(1) NOT NULL ,
`zgodny_krs` TINYINT(1) NOT NULL ,
`wszystko_prawda` TINYINT(1) NOT NULL ,
PRIMARY KEY (`id`) ,
INDEX `oferty_oswiadczenia_id_oferty_foreign` (`id_oferty` ASC) ,
CONSTRAINT `oferty_oswiadczenia_id_oferty_foreign`
FOREIGN KEY (`id_oferty` )
REFERENCES `engo`.`oferty` (`id` )
ON DELETE CASCADE)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_unicode_ci;
Tabela - Oferty_zrodla_finansowe
Tabela zawiera dane zawarte w zakładce „5. Źródła finansowe” we wniosku ofertowym.
-- ------------------------------------------------------ Table `engo`.`oferty_zrodla_finansowe`
-- ----------------------------------------------------CREATE TABLE IF NOT EXISTS `engo`.`oferty_zrodla_finansowe` (
`id` INT(11) NOT NULL AUTO_INCREMENT ,
`id_oferty` INT(11) NOT NULL DEFAULT '0' ,
`wnioskowana_kwota` DECIMAL(8,2) NULL DEFAULT '0.00' ,
`srodki_finansowe_wlasne` DECIMAL(8,2) NULL DEFAULT '0.00' ,
`srodki_finansowe_ogolne` DECIMAL(8,2) NULL DEFAULT '0.00' ,
`wplaty_oplaty` DECIMAL(8,2) NULL DEFAULT '0.00' ,
`srodki_finansowe_publiczne` DECIMAL(8,2) NULL DEFAULT '0.00' ,
`pozostale` DECIMAL(8,2) NULL DEFAULT '0.00' ,
`wklad_osobowy` DECIMAL(8,2) NOT NULL DEFAULT '0.00' ,
Strona 30
Opis techniczny
`ogolem` DECIMAL(8,2) NULL DEFAULT '0.00' ,
PRIMARY KEY (`id`) ,
INDEX `FK_oferty_zrodla_finansowe_oferty` (`id_oferty` ASC) ,
CONSTRAINT `FK_oferty_zrodla_finansowe_oferty`
FOREIGN KEY (`id_oferty` )
REFERENCES `engo`.`oferty` (`id` )
ON DELETE CASCADE
ON UPDATE NO ACTION)
ENGINE = InnoDB
AUTO_INCREMENT = 51
DEFAULT CHARACTER SET = utf8;
Tabela - Pomoc
W tabeli pomoc są zdefiniowane teksty pomocy wyskakujące po wybraniu niebieskiego pytajnika przy
danym polu.
-- ------------------------------------------------------ Table `engo`.`pomoc`
-- ----------------------------------------------------CREATE TABLE IF NOT EXISTS `engo`.`pomoc` (
`id` INT(11) NOT NULL AUTO_INCREMENT ,
`typ` INT(11) NULL DEFAULT '2' ,
`nazwa_pola` VARCHAR(32) NULL DEFAULT '0' ,
`tresc` TEXT NULL DEFAULT NULL ,
PRIMARY KEY (`id`) )
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8;
Strona 31
Kalkulator outsourcingu: Generator e-n-GO
Tabela - Sprawozdania
W tabeli są zapisywane nagłówki sprawozdań do realizowanych zadań w przypadku gdy nasz wniosek
zostanie zaakceptowany i przystępujemy do raportowania realizacji zadania.
-- ------------------------------------------------------ Table `engo`.`sprawozdania`
-- ----------------------------------------------------CREATE TABLE IF NOT EXISTS `engo`.`sprawozdania` (
`id` INT(11) NOT NULL AUTO_INCREMENT ,
`oferty_id` INT(11) NOT NULL ,
`data_zlozenia` DATETIME NOT NULL ,
`typ` ENUM('czesciowe','koncowe') NOT NULL ,
`status` TINYINT(1) NOT NULL DEFAULT '0' COMMENT '0 roboczy 1 zlozony' ,
`created_at` DATETIME NOT NULL ,
`updated_at` DATETIME NOT NULL ,
PRIMARY KEY (`id`) ,
INDEX `FK_sprawozdania_oferty` (`oferty_id` ASC) ,
CONSTRAINT `FK_sprawozdania_oferty`
FOREIGN KEY (`oferty_id` )
REFERENCES `engo`.`oferty` (`id` )
ON DELETE CASCADE
ON UPDATE NO ACTION)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8;
Strona 32
Opis techniczny
Tabela - Sprawozdania_faktury
Tabela zawiera dokumenty zawarte w sprawozdaniu realizacji zadania.
-- ------------------------------------------------------ Table `engo`.`sprawozdania_faktury`
-- ----------------------------------------------------CREATE TABLE IF NOT EXISTS `engo`.`sprawozdania_faktury` (
`id` INT(11) NOT NULL AUTO_INCREMENT ,
`sprawozdania_id` INT(11) NOT NULL ,
`numer_dokumentu` VARCHAR(16) NOT NULL ,
`numer_pozycji` VARCHAR(16) NOT NULL ,
`data_wystawienia` DATE NOT NULL DEFAULT '2013-01-01' ,
`nazwa_kosztu` VARCHAR(50) NOT NULL ,
`kwota` DECIMAL(8,2) NOT NULL ,
`dotacja` DECIMAL(8,2) NOT NULL ,
`finanse_wlasne` DECIMAL(8,2) NOT NULL ,
`data_zaplaty` DATE NOT NULL DEFAULT '2013-01-01' ,
PRIMARY KEY (`id`) ,
INDEX `FK_sprawozdania_faktury_sprawozdania` (`sprawozdania_id` ASC) ,
CONSTRAINT `FK_sprawozdania_faktury_sprawozdania`
FOREIGN KEY (`sprawozdania_id` )
REFERENCES `engo`.`sprawozdania` (`id` )
ON DELETE CASCADE
ON UPDATE NO ACTION)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8;
Strona 33
Kalkulator outsourcingu: Generator e-n-GO
Tabela - Sprawozdania_finanse
Tabela zawiera dane finansowe potrzebne do realizacji sprawozdania.
-- ------------------------------------------------------ Table `engo`.`sprawozdania_finanse`
-- ----------------------------------------------------CREATE TABLE IF NOT EXISTS `engo`.`sprawozdania_finanse` (
`id` INT(11) NOT NULL AUTO_INCREMENT ,
`sprawozdania_id` INT(11) NOT NULL DEFAULT '0' ,
`wnioskowana_kwota` DECIMAL(8,2) NULL DEFAULT '0.00' ,
`srodki_finansowe_wlasne` DECIMAL(8,2) NULL DEFAULT '0.00' ,
`srodki_finansowe_ogolne` DECIMAL(8,2) NULL DEFAULT '0.00' ,
`wplaty_oplaty` DECIMAL(8,2) NULL DEFAULT '0.00' ,
`srodki_finansowe_publiczne` DECIMAL(8,2) NULL DEFAULT '0.00' ,
`pozostale` DECIMAL(8,2) NULL DEFAULT '0.00' ,
`wklad_osobowy` DECIMAL(8,2) NOT NULL DEFAULT '0.00' ,
`ogolem` DECIMAL(8,2) NULL DEFAULT '0.00' ,
`wnioskowana_kwota_calosc` DECIMAL(8,2) NOT NULL ,
`srodki_finansowe_wlasne_calosc` DECIMAL(8,2) NOT NULL ,
`srodki_finansowe_ogolne_calosc` DECIMAL(8,2) NOT NULL ,
`wplaty_oplaty_calosc` DECIMAL(8,2) NOT NULL ,
`srodki_finansowe_publiczne_calosc` DECIMAL(8,2) NOT NULL ,
`pozostale_calosc` DECIMAL(8,2) NOT NULL ,
`wklad_osobowy_calosc` DECIMAL(8,2) NOT NULL ,
`ogolem_calosc` DECIMAL(8,2) NOT NULL ,
PRIMARY KEY (`id`) ,
INDEX `FK_sprawozdania_finanse_sprawozdania` (`sprawozdania_id` ASC) ,
CONSTRAINT `FK_sprawozdania_finanse_sprawozdania`
FOREIGN KEY (`sprawozdania_id` )
REFERENCES `engo`.`sprawozdania` (`id` )
ON DELETE CASCADE
Strona 34
Opis techniczny
ON UPDATE NO ACTION)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8;
Tabela - Sprawozdania_inne
Tabela zawiera inne dodatkowe pola występujące w sprawozdaniu realizacji zadania.
-- ------------------------------------------------------ Table `engo`.`sprawozdania_inne`
-- ----------------------------------------------------CREATE TABLE IF NOT EXISTS `engo`.`sprawozdania_inne` (
`id` INT(11) NOT NULL AUTO_INCREMENT ,
`sprawozdania_id` INT(11) NOT NULL ,
`uwagi_finanse` TEXT NOT NULL ,
`informacja_przychody` TEXT NOT NULL ,
`dodatkowe_informacje` TEXT NOT NULL ,
PRIMARY KEY (`id`) ,
INDEX `FK_sprawozdania_inne_sprawozdania` (`sprawozdania_id` ASC) ,
CONSTRAINT `FK_sprawozdania_inne_sprawozdania`
FOREIGN KEY (`sprawozdania_id` )
REFERENCES `engo`.`sprawozdania` (`id` )
ON DELETE CASCADE
ON UPDATE NO ACTION)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8;
Strona 35
Kalkulator outsourcingu: Generator e-n-GO
Tabela - Sprawozdania_koszty
Tabela zawiera koszty występujące w sprawozdaniach.
-- ------------------------------------------------------ Table `engo`.`sprawozdania_koszty`
-- ----------------------------------------------------CREATE TABLE IF NOT EXISTS `engo`.`sprawozdania_koszty` (
`id` INT(11) NOT NULL AUTO_INCREMENT ,
`sprawozdania_id` INT(11) NOT NULL ,
`oferty_kosztorysy_id` INT(11) NOT NULL ,
`koszt_calkowity` DECIMAL(8,2) NOT NULL DEFAULT '0.00' ,
`dotacja` DECIMAL(8,2) NOT NULL DEFAULT '0.00' ,
`srodki_wlasne` DECIMAL(8,2) NOT NULL DEFAULT '0.00' ,
`wklad_osobowy` DECIMAL(8,2) NOT NULL DEFAULT '0.00' ,
`typ` ENUM('merytoryczne','obslugi','inne') NULL DEFAULT NULL ,
PRIMARY KEY (`id`) ,
INDEX `FK_sprawozdania_koszty_sprawozdania` (`sprawozdania_id` ASC) ,
INDEX `FK_sprawozdania_koszty_oferty_kosztorysy` (`oferty_kosztorysy_id` ASC) ,
CONSTRAINT `FK_sprawozdania_koszty_oferty_kosztorysy`
FOREIGN KEY (`oferty_kosztorysy_id` )
REFERENCES `engo`.`oferty_kosztorysy` (`id` )
ON DELETE CASCADE
ON UPDATE NO ACTION,
CONSTRAINT `FK_sprawozdania_koszty_sprawozdania`
FOREIGN KEY (`sprawozdania_id` )
REFERENCES `engo`.`sprawozdania` (`id` )
ON DELETE CASCADE
ON UPDATE NO ACTION)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8;
Strona 36
Opis techniczny
Tabela - Sprawozdania_merytoryczne
Tabela zawiera dodatkowe pola wypełnianie w czasie raportowania realizacji zadania.
-- ------------------------------------------------------ Table `engo`.`sprawozdania_merytoryczne`
-- ----------------------------------------------------CREATE TABLE IF NOT EXISTS `engo`.`sprawozdania_merytoryczne` (
`id` INT(11) NOT NULL AUTO_INCREMENT ,
`sprawozdania_id` INT(11) NOT NULL ,
`informacja` TEXT NOT NULL ,
`wplyw_dofinansowania` TEXT NOT NULL ,
`opis_rezultatow` TEXT NOT NULL ,
`skala_dzialan` TEXT NOT NULL ,
PRIMARY KEY (`id`) ,
INDEX `FK_sprawozdania_merytoryczne_sprawozdania` (`sprawozdania_id` ASC) ,
CONSTRAINT `FK_sprawozdania_merytoryczne_sprawozdania`
FOREIGN KEY (`sprawozdania_id` )
REFERENCES `engo`.`sprawozdania` (`id` )
ON DELETE CASCADE
ON UPDATE NO ACTION)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8;
Tabela - Sprawozdania_merytoryczne_dzialania
Tabela zawiera dodatkowe pola wypełnianie w czasie raportowania realizacji zadania.
-- ------------------------------------------------------ Table `engo`.`sprawozdania_merytoryczne_dzialania`
-- ----------------------------------------------------CREATE TABLE IF NOT EXISTS `engo`.`sprawozdania_merytoryczne_dzialania` (
`id` INT(11) NOT NULL AUTO_INCREMENT ,
`sprawozdania_id` INT(11) NOT NULL ,
`oferty_oferenci_id` INT(11) NOT NULL ,
Strona 37
Kalkulator outsourcingu: Generator e-n-GO
`dzialania` TEXT NOT NULL ,
`termin` DATE NOT NULL DEFAULT '2013-01-01' ,
PRIMARY KEY (`id`) ,
INDEX `FK_sprawozdania_merytoryczne_dzialania_sprawozdania` (`sprawozdania_id` ASC) ,
INDEX `FK_sprawozdania_merytoryczne_dzialania_oferty_oferenci` (`oferty_oferenci_id` ASC) ,
CONSTRAINT `FK_sprawozdania_merytoryczne_dzialania_oferty_oferenci`
FOREIGN KEY (`oferty_oferenci_id` )
REFERENCES `engo`.`oferty_oferenci` (`id` )
ON DELETE CASCADE
ON UPDATE NO ACTION,
CONSTRAINT `FK_sprawozdania_merytoryczne_dzialania_sprawozdania`
FOREIGN KEY (`sprawozdania_id` )
REFERENCES `engo`.`sprawozdania` (`id` )
ON DELETE CASCADE
ON UPDATE NO ACTION)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8;
Tabela - Throttle
Tabela zawiera nieudane próby logowania użytkowników w systemie e-n-GO oraz umożliwia
tymczasowe blokowanie konta użytkowników.
-- ------------------------------------------------------ Table `engo`.`throttle`
-- ----------------------------------------------------CREATE TABLE IF NOT EXISTS `engo`.`throttle` (
`id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT ,
`user_id` INT(10) UNSIGNED NOT NULL ,
`ip_address` VARCHAR(255) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci' NULL DEFAULT NULL ,
`attempts` INT(11) NOT NULL DEFAULT '0' ,
`suspended` TINYINT(1) NOT NULL DEFAULT '0' ,
Strona 38
Opis techniczny
`banned` TINYINT(1) NOT NULL DEFAULT '0' ,
`last_attempt_at` TIMESTAMP NULL DEFAULT NULL ,
`suspended_at` TIMESTAMP NULL DEFAULT NULL ,
`banned_at` TIMESTAMP NULL DEFAULT NULL ,
PRIMARY KEY (`id`) ,
INDEX `fk_throttle_1` (`user_id` ASC) ,
CONSTRAINT `fk_throttle_1`
FOREIGN KEY (`user_id` )
REFERENCES `engo`.`users` (`id` )
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_unicode_ci;
Tabela - Users_groups
Definiuje powiązania użytkowników do grup użytkowników
-- ------------------------------------------------------ Table `engo`.`users_groups`
-- ----------------------------------------------------CREATE TABLE IF NOT EXISTS `engo`.`users_groups` (
`user_id` INT(10) UNSIGNED NOT NULL ,
`group_id` INT(10) UNSIGNED NOT NULL ,
PRIMARY KEY (`user_id`, `group_id`) ,
INDEX `fk_users_groups_1` (`user_id` ASC) ,
INDEX `fk_users_groups_2` (`group_id` ASC) ,
CONSTRAINT `fk_users_groups_1`
FOREIGN KEY (`user_id` )
REFERENCES `engo`.`users` (`id` )
ON DELETE NO ACTION
ON UPDATE NO ACTION,
Strona 39
Kalkulator outsourcingu: Generator e-n-GO
CONSTRAINT `fk_users_groups_2`
FOREIGN KEY (`group_id` )
REFERENCES `engo`.`groups` (`id` )
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_unicode_ci;
Tabela - Wskazniki
Tabela zawiera definicję nazw wskaźników potrzebnych do obliczania społeczno - ekonomicznych
wartości dodanych zadania publicznego.
-- ------------------------------------------------------ Table `engo`.`wskazniki`
-- ----------------------------------------------------CREATE TABLE IF NOT EXISTS `engo`.`wskazniki` (
`id` INT(11) NOT NULL AUTO_INCREMENT ,
`nazwa` VARCHAR(255) NOT NULL DEFAULT '0' ,
`nazwa_klasy` VARCHAR(4) NOT NULL DEFAULT '0' ,
PRIMARY KEY (`id`) )
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8;
Tabela - Wskazniki_oferty
Tabela zawiera obliczone wartości wskaźników dla poszczególnych ofert utworzonych w systemie.
-- ------------------------------------------------------ Table `engo`.`wskazniki_oferty`
-- ----------------------------------------------------CREATE TABLE IF NOT EXISTS `engo`.`wskazniki_oferty` (
`id` INT(11) NOT NULL AUTO_INCREMENT ,
`id_oferty` INT(11) NULL DEFAULT NULL ,
Strona 40
Opis techniczny
`id_wskaznika` INT(11) NULL DEFAULT NULL ,
`wartosc` DECIMAL(10,2) NOT NULL ,
PRIMARY KEY (`id`) ,
INDEX `FK__oferty1` (`id_oferty` ASC) ,
INDEX `FK__wskazniki1` (`id_wskaznika` ASC) ,
CONSTRAINT `FK__oferty1`
FOREIGN KEY (`id_oferty` )
REFERENCES `engo`.`oferty` (`id` )
ON DELETE CASCADE
ON UPDATE NO ACTION,
CONSTRAINT `FK__wskazniki1`
FOREIGN KEY (`id_wskaznika` )
REFERENCES `engo`.`wskazniki` (`id` )
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8;
Tabela - Wskazniki_zadania_zakres
Tabela zawiera przypisania wskaźników do poszczególnych zakresów zadań zdefiniowanych w tabeli
„zadania_zakres”. Każde zakres zadań zdefiniowany w ustawie ma przypisany inny zestaw wskaźników
potrzebnych do obliczania korzyści z realizacji zadania publicznego.
-- ------------------------------------------------------ Table `engo`.`wskazniki_zadania_zakres`
-- ----------------------------------------------------CREATE TABLE IF NOT EXISTS `engo`.`wskazniki_zadania_zakres` (
`id_zakres` INT(11) NOT NULL ,
`id_wskaznik` INT(11) NOT NULL ,
PRIMARY KEY (`id_zakres`, `id_wskaznik`) ,
INDEX `FK__wskazniki` (`id_wskaznik` ASC) ,
Strona 41
Kalkulator outsourcingu: Generator e-n-GO
CONSTRAINT `FK__wskazniki`
FOREIGN KEY (`id_wskaznik` )
REFERENCES `engo`.`wskazniki` (`id` ),
CONSTRAINT `FK__zadania_zakres`
FOREIGN KEY (`id_zakres` )
REFERENCES `engo`.`zadania_zakres` (`id` ))
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8;
Tabela - Zadania_linki
Zawiera listę adresów URL przypisanych do ogłoszonego zadania, które mogą być odnośnikami do
innych ustaw, dokumentów.
-- ------------------------------------------------------ Table `engo`.`zadania_linki`
-- ----------------------------------------------------CREATE TABLE IF NOT EXISTS `engo`.`zadania_linki` (
`id` INT(11) NOT NULL AUTO_INCREMENT ,
`id_zadania` INT(11) NULL DEFAULT NULL ,
`url` VARCHAR(255) NULL DEFAULT NULL ,
`tytul` VARCHAR(128) NULL DEFAULT NULL ,
PRIMARY KEY (`id`) ,
INDEX `fk_zadania_linki_1` (`id_zadania` ASC) ,
CONSTRAINT `fk_zadania_linki_1`
FOREIGN KEY (`id_zadania` )
REFERENCES `engo`.`zadania` (`id` )
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8;
Strona 42
Opis techniczny
Tabela - Zalaczniki
Tabela zawiera listę załączników dołączonych do wniosku ofertowego, jak skany dokumentów,
potwierdzenia itp. Pliki te są fizycznie przetrzymywane w katalogu poza serwerem WWW.
-- ------------------------------------------------------ Table `engo`.`zalaczniki`
-- ----------------------------------------------------CREATE TABLE IF NOT EXISTS `engo`.`zalaczniki` (
`id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT ,
`id_zadania` INT(11) NULL DEFAULT NULL ,
`id_oferty` INT(11) NULL DEFAULT NULL ,
`id_uzytkownika` INT(10) UNSIGNED NOT NULL ,
`nazwa` VARCHAR(64) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci' NOT NULL ,
`typ` SMALLINT(6) NOT NULL ,
PRIMARY KEY (`id`) ,
INDEX `zalaczniki_id_zadania_foreign` (`id_zadania` ASC) ,
INDEX `zalaczniki_id_oferty_foreign` (`id_oferty` ASC) ,
INDEX `zalaczniki_id_uzytkownika_foreign` (`id_uzytkownika` ASC) ,
CONSTRAINT `zalaczniki_id_oferty_foreign`
FOREIGN KEY (`id_oferty` )
REFERENCES `engo`.`oferty` (`id` )
ON DELETE SET NULL,
CONSTRAINT `zalaczniki_id_uzytkownika_foreign`
FOREIGN KEY (`id_uzytkownika` )
REFERENCES `engo`.`users` (`id` )
ON DELETE NO ACTION,
CONSTRAINT `zalaczniki_id_zadania_foreign`
FOREIGN KEY (`id_zadania` )
REFERENCES `engo`.`zadania` (`id` )
ON DELETE SET NULL)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8
Strona 43
Kalkulator outsourcingu: Generator e-n-GO
COLLATE = utf8_unicode_ci;
Strona 44
Opis techniczny
Lista zdefiniowanych klas podstawowych
Poniżej wymieniono podstawowe klasy wykorzystywane w systemie.
AuthController
Klasa odpowiada za rejestrowanie nowych użytkowników w systemie, aktywowanie konta, logowanie,
przypomnienie hasła.
AdminController
Klasa odpowiada za odczytywanie uprawnień w panelu JST. Przygotowane pod rozbudowę o dalsze
funkcjonalności w systemie umożliwiające nadawanie uprawnień. W chwili obecnej wszyscy
użytkownicy roli JST mają jednakowe uprawnienia.
AuthorizedController
Klasa jest rozszerzeniem klasy bazowej, sprawdza dodatkowo czy użytkownik jest zalogowany w
systemie. Klasa bazowa dla wszystkich klas wymagających od użytkownika zalogowania.
BaseController
Klasa bazowa, zawiera filtr CSRF oraz definiuje szablon strony.
CalculatorController
Klasa odpowiedzialna za obliczanie wskaźników dla poszczególnych ofert. Dynamicznie ładuje
wskaźniki dla danego zakresu z którego pochodzi zadanie , sprawdza czy do obliczenia wskaźnika
posiadamy wszystkie potrzebne dane i zwraca wartość wskaźnika.
ClientsController
Klasa odpowiedzialna za tworzenie nowych oferentów w ramach konta użytkownika, edycje tych
oferentów, kasowanie, sprawdza również poprawność danych.
Strona 45
Kalkulator outsourcingu: Generator e-n-GO
HelpController
Klasa odpowiedzialna za zwracanie tzw. pomocy pojawiającej się w wniosku ofertowym po kliknięciu
niebieskiej ikonki „i”.
EditionsController
Klasa odpowiedzialna za definiowanie nowych edycji konkursowych, zarządzanie edycjami
konkursowymi oraz ich kasowanie
OffertController
Klasa odpowiedzialna za wniosek ofertowy. Zwraca poszczególne formularze, obsługuje ich edycje.
PdfController
Klasa odpowiedzialna za generowanie wszelkich wydruków PDF, jak wniosek ofertowy, potwierdzenia
ofert, zestawienia
ReportController
Klasa odpowiedzialna za generowanie formularzy raportu realizacji zadania ofertowego, jak również
jego przetwarzanie oraz walidację.
TaskController
Klasa odpowiedzialna za definiowanie nowych zadań w ramach konkursu ofert, ich edycję, kasowanie.
PointersController
Klasa bazowa służąca do definiowania wskaźników wykorzystywanych przy obliczaniu korzyści za
pomocą kalkulatora e-n-GO
UnitsController
Klasa odpowiedzialna za definiowanie i zarządzanie jednostkami miar w systemie.
Strona 46
Opis techniczny
UsersController
Klasa odpowiedzialna za zarządzanie kontami użytkowników w systemie, dodawanie użytkowników,
kasowanie, edycja.
Strona 47