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