216
1 e-PFRON2 Dokumentacja powykonawcza systemu

e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

1

e-PFRON2 Dokumentacja powykonawcza

systemu

Page 2: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

2

Spis treści

SŁOWNIK POJĘĆ ....................................................................................................................... 7

WSTĘP ................................................................................................................................... 10

1 OPIS ARCHITEKTURY SYSTEMU I UŻYTYCH TECHNOLOGII: .................................................. 11 1.1 OBSZAR FRONT-END...................................................................................................................... 18 1.1.1 TECHNOLOGIE ........................................................................................................................ 18 1.1.2 LOKALIZACJA .......................................................................................................................... 18 1.1.3 WARSTWY ............................................................................................................................. 18 1.1.4 ELEMENTY SKŁADOWE ............................................................................................................. 18 1.1.5 ZASOBY ................................................................................................................................. 18 1.1.6 ZASADY DOSTĘPU DO OBSZARU FRONT-END PRZEZ WYKONAWCĘ ................................................... 18 1.1.7 ARCHITEKTURA FIZYCZNA ......................................................................................................... 19 1.1.8 ZASOBY LOGICZNE MASZYN WIRTUALNYCH .................................................................................. 19 1.1.9 ARCHITEKTURA LOGICZNA POZIOM OS ....................................................................................... 19 1.1.10 ARCHITEKTURA LOGICZNA HA ................................................................................................... 19 1.1.11 FIZYCZNY LOAD BALANCER ....................................................................................................... 19 1.1.12 PRZEPŁYW DANYCH OD STRONY PRACODAWCY ............................................................................ 21 1.1.13 PRZEPŁYW DANYCH OD STRONY OPERATORA ............................................................................... 21 1.2 SCHEMAT FRONT-END ................................................................................................................... 22 1.3 OBSZAR BACK-END (API DLA NEO) .................................................................................................. 22 1.3.1 TECHNOLOGIE ........................................................................................................................ 22 1.3.2 LOKALIZACJA .......................................................................................................................... 22 1.3.3 SPRZĘT .................................................................................................................................. 22 1.3.4 ELEMENTY SKŁADOWE ............................................................................................................. 22 1.4 KOMUNIKACJA FRONT-END <-> BACK-END ....................................................................................... 23 1.4.1 ZASADA KOMUNIKACJI ............................................................................................................. 23

2 PROJEKTY FORMATEK DEKLARACJI .................................................................................... 24

3 WALIDACJE ....................................................................................................................... 25

4 STRUKTURA DOKUMENTÓW XML – FORMULARZE............................................................. 26 4.1 ZAŁOŻENIA OGÓLNE ...................................................................................................................... 26 4.2 STRUKTURA DOKUMENTU GŁÓWNEGO ............................................................................................. 26 4.3 STRUKTURA FORMULARZA - TAG FORM .......................................................................................... 27 4.4 POLA FORMULARZA - TAG FIELDS .................................................................................................. 27 4.5 PODPIS DOKUMENTU ..................................................................................................................... 28

5 FORMATKA PRZELEWU ..................................................................................................... 29 5.1 FORMAT ELIXIR: ........................................................................................................................... 29 5.1.1 STRUKTURA PLIKU ................................................................................................................... 29 5.1.2 OPIS FORMATU PLIKU .............................................................................................................. 29 5.1.3 STRUKTURA PLIKU PRZESYŁKI ..................................................................................................... 29 5.1.4 PRZYKŁAD PLIKU ..................................................................................................................... 30 5.2 FORMAT VIDEOTEL ........................................................................................................................ 30 5.2.1 STRUKTURA PLIKU ................................................................................................................... 31 5.2.2 PRZYKŁAD PLIKU ..................................................................................................................... 32 5.3 FORMULARZE, DLA KTÓRYCH MA BYĆ GENEROWANY PLIK DO PRZELEWU ................................................ 32

6 ROLE I PRZYPADKI UŻYCIA ................................................................................................. 33 6.1 OBSZAR PRACODAWCY: ................................................................................................................. 33

Page 3: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

3

6.1.1 ROLA: UŻYTKOWNIK NIEZAREJESTROWANY (TRYB DOSTĘPU BEZ ZAŁOŻONEGO KONTA): ....................... 33 6.1.2 ROLA: ADMINISTRATOR: .......................................................................................................... 33 6.1.3 ROLA: PRACOWNIK: ................................................................................................................ 35 6.1.4 ROLA: BRAK UPRAWNIEŃ: ........................................................................................................ 36 6.2 OBSZAR OPERATORA: .................................................................................................................... 36 6.2.1 ROLA: OPERATOR: .................................................................................................................. 36 6.2.2 ROLA: OPERATOR – TYLKO DO ODCZYTU ..................................................................................... 36 6.2.3 ROLA: ADMINISTRATOR ........................................................................................................... 36 6.2.4 ROLA: BRAK UPRAWNIEŃ: ........................................................................................................ 37 6.3 OBSZAR CMS (JOOMLA): ............................................................................................................... 37 6.3.1 ROLA: ADMINISTRATOR/REDAKTOR CMS: .................................................................................. 37

7 PROCESY, WG PRZYPADKÓW UŻYCIA ................................................................................ 38 7.1 OBSZAR PRACODAWCY: ................................................................................................................. 38 7.1.1 ZGŁASZANIE PRACODAWCY ORAZ ADMINISTRATORA ..................................................................... 38 7.1.2 SKŁADANIE DOKUMENTÓW / KORYGOWANIE ............................................................................... 39 7.1.3 ZAKŁADANIE NOWEGO PRACOWNIKA ......................................................................................... 41 7.1.4 ZAKŁADANIE NOWEGO ADMINISTRATORA ................................................................................... 41 7.1.5 ZAKŁADANIE NOWEGO UŻYTKOWNIKA ........................................................................................ 42 7.1.6 ODWOŁYWANIE PEŁNOMOCNICTWA I ADMINISTRATORA/UŻYTKOWNIKA ......................................... 43 7.1.7 PIERWSZE LOGOWANIE I GENEROWANIE CERTYFIKATU ................................................................... 43 7.1.8 GENEROWANIE I ODNAWIANIE CERTYFIKATU................................................................................ 44 7.1.9 RAPORT SALDA KONT ............................................................................................................... 44 7.1.10 EDYCJA WIADOMOŚCI .............................................................................................................. 44 7.1.11 PRZEŁĄCZANIE KONTEKSTU PRACY .............................................................................................. 44 7.1.12 ZMIANA ROLI UŻYTKOWNIKA NA ADMINISTRATORA/ADMINISTRATORA NA UŻYTKOWNIKA ................. 45 7.2 OBSZAR OPERATORA ..................................................................................................................... 45 7.2.1 KOMUNIKACJA Z PRACODAWCAMI: ............................................................................................ 45 7.2.2 OBSŁUGA ZGŁOSZONEGO PRACODAWCY I ADMINISTRATORA .......................................................... 46 7.2.3 AKCEPTACJA: ZGŁOSZENIA NOWEGO UŻYTKOWNIKA /ZMIANY ROLI UŻYTKOWNIKA /ODWOŁANIA

UŻYTKOWNIKA ...................................................................................................................................... 46 7.2.4 PODGLĄD DOKUMENTÓW ZŁOŻONYCH PRZEZ PRACODAWCÓW ....................................................... 47 7.2.5 PODGLĄD REJESTRU ZDARZEŃ ................................................................................................... 47 7.2.6 WPROWADZANIE DOKUMENTÓW Z FORMY PAPIEROWEJ ............................................................... 48 7.2.7 FILTRY ................................................................................................................................... 53 7.2.8 INFORMACJE Z CERTYFIKATU PODPISU ELEKTRONICZNEGO .............................................................. 54

8 MATRYCA UPRAWNIEŃ ..................................................................................................... 55

9 FUNKCJE DLA REALIZACJI USŁUG POMOCY DLA PRACODAWCÓW ...................................... 57

10 OPIS ZABEZPIECZEŃ DANYCH I DOSTĘPU DO ZASOBÓW SYSTEMU ..................................... 58 10.1 SYSTEMY I ŚRODOWISKO WYKONANIA PROJEKTU. ............................................................................... 58 10.1.1 SYSTEM OPERACYJNY ............................................................................................................... 58 10.1.2 SIEĆ ...................................................................................................................................... 58 10.1.3 USŁUGI ................................................................................................................................. 59 10.1.4 OPROGRAMOWANIE................................................................................................................ 59 10.1.5 DANE .................................................................................................................................... 60 10.1.6 STREFY BEZPIECZEŃSTWA ......................................................................................................... 61 10.1.7 SYSTEM PRZECHOWYWANIA ZDARZEŃ ........................................................................................ 62 10.1.8 ZAPEWNIENIE DOSTĘPNOŚCI USŁUG ........................................................................................... 62 10.1.9 ŚRODOWISKO JAVA ................................................................................................................ 62

11 SERWERY APLIKACYJNE ..................................................................................................... 63

Page 4: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

4

11.1.1 SYSTEM OPERACYJNY ............................................................................................................... 63 11.1.2 KONFIGURACJA SIECIOWA ........................................................................................................ 63 11.1.3 UŻYTKOWNICY SYSTEMOWI ...................................................................................................... 63 11.1.4 DOSTĘP ADMINISTRACYJNY ....................................................................................................... 63 11.1.5 OPROGRAMOWANIE PFRON ...................................................................................................... 64 11.1.6 USŁUGI I OPROGRAMOWANIE DODATKOWE................................................................................. 64 11.1.7 KONFIGURACJA SYSTEMOWEJ USŁUGI LOGGERA ........................................................................... 67 11.1.8 APLIKACJA PFRON ................................................................................................................... 67 11.1.9 NARZĘDZIA POMOCNICZE ......................................................................................................... 72

12 SERWERY BAZ DANYCH ..................................................................................................... 72 12.1.1 SYSTEM OPERACYJNY ............................................................................................................... 72 12.1.2 USŁUGI I OPROGRAMOWANIE POMOCNICZE: ............................................................................... 73 12.1.3 KONFIGURACJA SIECIOWA ........................................................................................................ 73 12.1.4 UŻYTKOWNICY SYSTEMOWI ...................................................................................................... 73 12.1.5 DOSTĘP ADMINISTRACYJNY ....................................................................................................... 73 12.1.6 USŁUGI I OPROGRAMOWANIE DODATKOWE................................................................................. 73 12.1.7 SERWER POSTGRESQL TRYB MASTER .......................................................................................... 73 12.1.8 SERWER POSTGRESQL TRYB SLAVE .............................................................................................. 73 12.1.9 SERWER BAZ DANYCH PROCEDURA PRZEŁĄCZANIA ........................................................................ 74 12.1.10 SERWER BAZ DANYCH PROCEDURA DOŁĄCZENIA SERWERA SLAVE .................................................... 74 12.1.11 WYKAZ PRODUKTÓW ............................................................................................................... 74

13 PROCEDURY BACKUPU, ODTWARZANIA, MIGRACJI, PIELĘGNACJI BAZY DANYCH ................ 75 13.1 PROCES ....................................................................................................................................... 75 13.2 SERWER APLIKACJI – BACKUP .......................................................................................................... 75 13.3 SERWER APLIKACJI – ODTWARZANIE ................................................................................................. 75 13.4 SERWER BAZ DANYCH – BACKUP ...................................................................................................... 75 13.5 SERWER BAZ DANYCH – ODTWARZANIE ............................................................................................. 75 13.6 MIGRACJA BAZ DANYCH ................................................................................................................. 75 13.7 TYPOWE DZIAŁANIA UTRZYMANIA BAZY DANYCH ................................................................................ 76

14 FUNKCJE SYNCHRONIZACJI DANYCH Z SYSTEMEM BACK-END............................................. 77 14.1 SERWISY INTEGRACYJNE ................................................................................................................. 77

15 MAPOWANIE OBIEKTÓW LOGICZNYCH SYSTEMU NA KOD ŹRÓDŁOWY APLIKACJI ............ 106

16 OPIS NIEFUNKCJONALNY SYSTEMU ................................................................................. 135

17 MIGRACJA DANYCH Z SYSTEMU E-PFRON ........................................................................ 137

18 INTERFEJS GRAFICZNY SYSTEMU ..................................................................................... 138 18.1 OBSZAR PRACODAWCY ................................................................................................................ 138 18.2 OBSZAR OPERATORA ................................................................................................................... 142

19 FORMATKI DOKUMENTÓW ............................................................................................. 145 19.1 OKRES 2003 .............................................................................................................................. 146 19.2 OKRES 2011 .............................................................................................................................. 151 19.3 OKRES 2013 .............................................................................................................................. 156

20 WALIDACJE DOKUMENTÓW ............................................................................................ 161

21 OPIS ZARZĄDCZYCH I SPECJALISTYCZNYCH PRODUKTÓW PROJEKTU ZGODNIE Z METODYKĄ PRINCE 2. ............................................................................................................................. 162 21.1 OPIS PRODUKTU: DOKUMENTACJA PROJEKTOWA ............................................................................. 162 21.2 OPIS PRODUKTU: OBSZAR PRACODAWCY ....................................................................................... 162 21.3 OPIS PRODUKTU: OBSZAR OPERATORA .......................................................................................... 163

Page 5: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

5

21.4 OPIS PRODUKTU: API ................................................................................................................. 165 21.5 SZKOLENIA ................................................................................................................................. 165

22 OPIS TESTÓW ODBIORCZYCH .......................................................................................... 166

23 STRUKTURA BAZY DANYCH – OPIS TABEL ........................................................................ 167

24 PARAMETRYZACJA SYSTEMU .......................................................................................... 178 24.1 PLIKI KONFIGURACYJNE ................................................................................................................. 178 24.1.1 PLIK PARAMETERS.YML .......................................................................................................... 178 24.1.2 PLIK PFRON.YML ................................................................................................................... 179 24.2 FORMATKI ................................................................................................................................. 180 24.2.1 DEFINICJA PÓL FORMATKI ....................................................................................................... 181 24.2.2 SZABLON FORMATKI .............................................................................................................. 182 24.3 REGUŁY WALIDACJI ...................................................................................................................... 182 24.4 KONTROLKI ................................................................................................................................ 189 24.5 ZDARZENIA - TYPY ZDARZEŃ .......................................................................................................... 192 24.6 SZABLONY EMAILI ....................................................................................................................... 204 24.7 SZABLONY WIADOMOŚCI .............................................................................................................. 205 24.8 INNE SZABLONY .......................................................................................................................... 206

25 KONFIGURACJA SYSTEMU ............................................................................................... 207 25.1 KONFIGURACJA I ZARZĄDZANIE PRZESTRZENIĄ DYSKOWĄ ................................................................... 207 25.1.1 TECHNOLOGIE ...................................................................................................................... 207 25.1.2 KOMENDY ........................................................................................................................... 207 25.1.3 PLIKI KONFIGURACYJNE .......................................................................................................... 208 25.1.4 PLIKI LOGÓW ........................................................................................................................ 208 25.2 KONFIGURACJA I ZARZĄDZANIE SIECIĄ ............................................................................................. 208 25.2.1 TECHNOLOGIE ...................................................................................................................... 208 25.2.2 KOMENDY ........................................................................................................................... 208 25.2.3 PLIKI KONFIGURACYJNE: ......................................................................................................... 209 25.2.4 PLIKI LOGÓW:....................................................................................................................... 209 25.3 KONFIGURACJA I ZARZĄDZANIE DOSTĘPEM ADMINISTRACYJNYM ......................................................... 209 25.3.1 TECHNOLOGIE ...................................................................................................................... 209 25.3.2 KOMENDY ........................................................................................................................... 209 25.3.3 PLIKI KONFIGURACYJNE .......................................................................................................... 209 25.3.4 PLIKI LOGÓW ........................................................................................................................ 209 25.4 KONFIGURACJA I ZARZĄDZANIE KLASTREM COROSYNC ....................................................................... 209 25.4.1 TECHNOLOGIE ...................................................................................................................... 210 25.4.2 KOMENDY ........................................................................................................................... 210 25.4.3 PLIKI KONFIGURACYJNE .......................................................................................................... 210 25.4.4 PLIKI LOGÓW ........................................................................................................................ 210 25.5 KONFIGURACJA I ZARZĄDZANIE MASZYNĄ WIRTUALNĄ JAVA ............................................................... 210 25.5.1 TECHNOLOGIE ...................................................................................................................... 210 25.5.2 KOMENDY ........................................................................................................................... 210 25.5.3 PLIKI KONFIGURACYJNE .......................................................................................................... 210 25.6 KONFIGURACJA I ZARZĄDZANIE MODUŁEM PHP DLA SERWERA APACHE ................................................ 210 25.6.1 TECHNOLOGIE ...................................................................................................................... 210 25.6.2 KOMENDY ........................................................................................................................... 211 25.6.3 PLIKI KONFIGURACYJNE .......................................................................................................... 211 25.7 KONFIGURACJA I ZARZĄDZANIE USŁUGĄ PGPOOL .............................................................................. 211 25.7.1 TECHNOLOGIE ...................................................................................................................... 211 25.7.2 KOMENDY ........................................................................................................................... 211

Page 6: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

6

25.7.3 PLIKI KONFIGURACYJNE .......................................................................................................... 211 25.7.4 PLIKI LOGÓW ........................................................................................................................ 211 25.8 KONFIGURACJA I ZARZĄDZANIE USŁUGĄ SERWERA APACHE ................................................................ 211 25.8.1 TECHNOLOGIE ...................................................................................................................... 211 25.8.2 KOMENDY ........................................................................................................................... 211 25.8.3 PLIKI KONFIGURACYJNE .......................................................................................................... 211 25.8.4 PLIKI LOGÓW ........................................................................................................................ 212 25.9 KONFIGURACJA I ZARZĄDZANIE APLIKACJĄ PFRON PRACODAWCA ......................................................... 212 25.9.1 TECHNOLOGIE ...................................................................................................................... 212 25.9.2 KOMENDY ........................................................................................................................... 212 25.9.3 PLIKI KONFIGURACYJNE .......................................................................................................... 212 25.9.4 PLIKI LOGÓW ........................................................................................................................ 212 25.10KONFIGURACJA I ZARZĄDZANIE APLIKACJĄ PFRON KONSOLA OPERATORA .............................................. 212 25.10.1 TECHNOLOGIE ...................................................................................................................... 212 25.10.2 KOMENDY ........................................................................................................................... 213 25.10.3 PLIKI KONFIGURACYJNE .......................................................................................................... 213 25.10.4 PLIKI LOGÓW ........................................................................................................................ 213 25.11KONFIGURACJA I ZARZĄDZANIE APLIKACJĄ CMS ................................................................................ 213 25.11.1 TECHNOLOGIE ...................................................................................................................... 213 25.11.2 KOMENDY ........................................................................................................................... 213 25.11.3 PLIKI KONFIGURACYJNE .......................................................................................................... 213 25.11.4 PLIKI LOGÓW ........................................................................................................................ 213 25.12KONFIGURACJA I ZARZĄDZANIE ZADANIAMI HARMONOGRAMU ........................................................... 213 25.12.1 TECHNOLOGIE ...................................................................................................................... 214 25.12.2 KOMENDY ........................................................................................................................... 214 25.12.3 PLIKI KONFIGURACYJNE .......................................................................................................... 214 25.13KONFIGURACJA I ZARZĄDZANIE USŁUGĄ LOGGERA SYSTEMOWEGO ...................................................... 214 25.13.1 TECHNOLOGIE ...................................................................................................................... 214 25.13.2 KOMENDY ........................................................................................................................... 214 25.13.3 PLIKI KONFIGURACYJNE: ......................................................................................................... 214 25.14KONFIGURACJA I ZARZĄDZANIE USŁUGĄ BAZY DANYCH POSTGRESQL .................................................... 214 25.14.1 TECHNOLOGIE ...................................................................................................................... 214 25.14.2 KOMENDY ........................................................................................................................... 214 25.14.3 PLIKI KONFIGURACYJNE .......................................................................................................... 214 25.14.4 PLIKI LOGÓW ........................................................................................................................ 215

26 USUWANIE BŁĘDÓW I ROZWÓJ SYSTEMU ....................................................................... 215

Załączniki (na dołączonej płycie CD)

Nazwa Opis

1. Walidacje Pliki xls opisujące walidacje zastosowane w formatkach dokumentów

2. Opis webserviceów w języku WSDL

Dokument autorstwa firmy Asseco, w formacie XML, na podstawie którego projektowane i wykonane zostały webservicey do wymiany informacji między systemem e-PFRON2 oraz NEO

3. Instrukcje obsługi Dla Pracodawcy, Operatora, Administratora

4. Dokumentacja PostgreSQL

Oficjalny dokument opisujący sposób pracy z bazą PostgreSQL

5. Schemat bazy danych Plik graficzny obrazujący relacje między tabelami w bazie danych

Page 7: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

7

6. Wykaz błędów frameworku Symfony2

Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na płycie)

7. Diagram klas Diagram i dokumentacja klas systemu (instukcja przeglądania - na płycie)

8. Licencja oprogramowania Szafir

Zasady i warunki korzystania z oprogramowania „SZAFIR SDK Aplet”

9. Licencje opensource Zasady i warunki korzystania z produktów opartych na licencjach otwartych

Słownik pojęć

Niniejszy słownik został zaczerpnięty z OPZ.

Autentykacja – funkcjonalność w Systemie umożliwiająca jednoznaczne identyfikowanie obiektu np.

logującego się użytkownika lub Operatora

Autoryzacja – funkcjonalność w Systemie umożliwiająca określenie zasad dostępu i wymuszenie

dostępu zautentykowanemu obiektowi do Systemu na tych zasadach (np. uprawnienia dla

użytkownika lub Operatora).

Archiwizacja – funkcjonalność umożliwiająca przeniesienie wskazanych danych do innej lokalizacji

logicznej/fizycznej przy zachowaniu pełnej dostępności danych (ze spodziewanym narzutem

czasowym wynikającym z zastosowania technik kompresyjnych czy specyfiki środowiska storage).

Certyfikat - elektroniczne zaświadczenie, za pomocą którego dane służące do weryfikacji podpisu

elektronicznego są przyporządkowane do osoby składającej podpis elektroniczny i które umożliwiają

identyfikację tej osoby.

Certyfikat Kwalifikowany - to taki Certyfikat, który został wystawiony jego właścicielowi z

zastosowaniem odpowiednich procedur weryfikacji tożsamości i klucz prywatny (służący między

innymi do składania Podpisu Elektronicznego ) jest przechowywany w sposób bezpieczny (np. na

karcie elektronicznej).

CMS - platforma zarządzania treścią, stanowiąca podstawę dla aplikacji Front-end interfejsu WEB dla

Pracodawców.

Deklaracja - pod pojęciem Deklaracji rozumiany jest dokument deklaracji oraz informacji.

Formatka – wyświetlona reprezentacja pól i opisów zawierająca minimum te same informacje, które

zawiera Formularz, (jednak nie zachowująca układu graficznego Formularza) służąca do

wprowadzania danych oraz udostępniająca funkcjonalności opisane w OPZ.

Page 8: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

8

Formularz – graficzny układ pól i opisów zgodny z Rozporządzeniem oraz przekazanymi wytycznymi

przez Zamawiającego reprezentujący Deklarację

Godziny Robocze – godziny od 7:00 do 18:00 w dni robocze, czyli od poniedziałku do piątku z

wyłączeniem dni ustawowo wolnych od pracy w Rzeczpospolitej Polskiej

Kopia Zapasowa - wyniesiony obszar danych z bazy danych i/lub środowiska poszczególnych

podsystemów. Techniki kopii zapasowej umożliwiają przywrócenie danych lub ich części do Systemu

produkcyjnego.

Numer w Rejestrze PFRON - numer identyfikujący Pracodawcę w PFRON, inaczej zwany Numerem

Teczki.

Obszar Operatora – zakres funkcjonalny wraz z zestawem obiektów Systemu, do którego posiada

dostęp Operator i za pomocą których realizowane są przypisane dla Operatora czynności w Systemie.

Obszar Użytkownika – inaczej zwany Obszarem Pracodawcy, zakres funkcjonalny Systemu wraz z

zestawem obiektów, do którego posiada dostęp użytkownik i za pomocą których realizowane są

przypisane dla użytkownika czynności w Systemie.

Okres Sprawozdawczy – miesiąc i rok, w którym zaistniały okoliczności powodujące obowiązek

złożenia przez Pracodawcę Deklaracji.

Operator - pracownicy Zamawiającego w rozumieniu Kodeksu Pracy oraz osoby świadczące

na rzecz Zamawiającego usługi na podstawie umowy cywilnoprawnej (w tym umowy

zlecenia lub umowy o dzieło) lub samozatrudnienia oraz pracownicy tymczasowi,

wykonujących pracę lub usługi na rzecz Zamawiającego.

Podpis Elektroniczny - pojęcie normatywne zdefiniowane w ustawie z dnia 18 września 2001 r. o

podpisie elektronicznym (Dz. U. z 2001 r. Nr 130, poz. 1450 z późn. zm). Zgodnie z art. 3 pkt 1 ustawy

podpis elektroniczny stanowią dane w postaci elektronicznej, które wraz z innymi danymi, do których

zostały dołączone lub z którymi są logicznie powiązane, służą do identyfikacji osoby składającej

podpis elektroniczny.

Podpis Kwalifikowany – czyli taki Podpis Zaawansowany, który został złożony przy pomocy

Certyfikatu Kwalifikowanego oraz przy użyciu bezpiecznego urządzenia do składania podpisu (SSCD).

Podpis Zaawansowany - zaawansowany (bezpieczny) podpis elektroniczny, czyli podpis, który za

pomocą odpowiednich środków kryptograficznych jest jednoznacznie i w sposób trudny do

sfałszowania związany z dokumentem oraz podpisującym.

PKI - infrastruktura klucza publicznego (ang. Public Key Infrastructure).

Page 9: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

9

Pracodawca - podmiot zobowiązany do złożenia deklaracji lub informacji do PFRON.

Profil Użytkownika - logiczny obszar, do którego ma dostęp każdy Użytkownik dla danego

Pracodawcy. W ramach profilu dostępne są dane konfiguracyjne oraz dane merytoryczne wraz z

dokumentami.

Repozytorium - logiczny obszar bazodanowy dla przechowywania dokumentów.

Użytkownik – osoba korzystająca z Systemu po stronie Pracodawcy.

Rozporządzenie - wytyczne wydane na podstawie art. 21 ust. 2f oraz art. 49 ust. 2 ustawy o

rehabilitacji przez ministra właściwego ds. zabezpieczenia społecznego, określające wzory deklaracji i

informacji.

Wskaźnik zatrudnienia osób niepełnosprawnych – (WZON) przeciętny miesięczny udział procentowy

osób niepełnosprawnych w zatrudnieniu ogółem w przeliczeniu na pełny wymiar pracy, a w

przypadku pracodawców wymienionych w art. 21 ust 2b ustawy o rehabilitacji suma wskaźnika

zatrudnienia osób niepełnosprawnych i podwójnego wskaźnika wychowanków, uczniów, studentów

lub słuchaczy będących osobami niepełnosprawnymi uczących się lub studiujących w danej

jednostce.

Page 10: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

10

Wstęp

Niniejszy dokument opisuje realizacje założeń projektu wykonawczego. Dokumentacja projektowa wraz z załącznikami jest głównym dokumentem, wg którego został wybudowany System. Opisane w niniejszym dokumencie parametry systemu określają zakres działań Wykonawcy realizującego budowę i implementację Systemu.

Page 11: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

11

1 Opis architektury Systemu i użytych technologii:

Architekturę fizyczną i logiczną Systemu e-PFRON2 przedstawia poniższy schemat:

Page 12: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

12

Strefa wewnętrzna systemu

Strefa zaufana (backend)

Strefa zaufana (frontend)

Strefa niezaufana (użytkownik bez uwierzytelniania)

TCP: 80 (HTTP) TCP: 80 (HTTP) TCP: 80 (HTTP)

LOAD BALANCER(certyfikat komunikacyjny,

sprzętowe szyfrowanie ruchu)

TCP: 433 (HTTPS)

Corosync - UDP: 5405

API: TCP: 80 (HTTP, dedykowane, szyfrowane łącze)

dedykowane, szyfrowane łącze do PFRON

KONSOLA/ADM. CMS - TCP: 443 (HTTPS, dedykowane, szyfrowane łącze)

DBPool – TCP: 5432

TCP: 5432

TCP: 80 (HTTP)

Wirtualna maszyna Wirtualna maszyna

Serwer aplikacyjny 3

Wirtualna maszyna

Serwer aplikacyjny 4

Wirtualna maszyna

Serwer aplikacyjny 2Serwer aplikacyjny 1

Komputer Pracodawcy

Wirtualna maszyna (certyfikaty

użytkowników)

Serwer bazodanowy 1

Wirtualna maszyna (certyfikaty

użytkowników)

Serwer bazodanowy 2

Wirtualna maszyna

Serwer repozytorium

Wirtualna maszyna

Serwer archiwum

Wirtualna maszyna

Serwer NEO

TCP: 443 (HTTPS)

TCP: 5432

TCP: 5432

TCP: 5432

Komputer pracownika

PFRON

TCP: 443 (HTTPS)

Architekturę poszczególnych elementów systemu przedstawiają poniższe schematy:

Page 13: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

13

Środowisko wirtualne - ESXi

System operacyjny - Debian

Serwer Webowy - Apache 2

Środowisko - PHP 5

Framework - Symfony 2

Standard system utils OpenSSH Corosync Pacemaker

Openjdk-7-jreFonts-liberation Pgpool2

Libapache2-mod-php5

PHP5-pgsql PHP5-pgsqlPHP5-xsl PHP5-mcryptPHP-apc

Portal Informacyjny CMS API

Aplet do certyfikatów kwalifikowanych Aplet do certyfikatów PFRON

Aplikacja pracodawcy Konsola operatora

Serwer aplikacyjny

Page 14: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

14

Środowisko wirtualne - ESXi

System operacyjny - Debian

Serwer bazodanowy – PostgreSQL 9.1

Baza danych – ePFRON2 Baza danych – portal web

Standard system utils OpenSSH Postgresql-contrib-9.1

Serwer bazodanowy

Page 15: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

15

Środowisko wirtualne - ESXi

System operacyjny - Debian

Serwer bazodanowy – PostgreSQL 9.1

Baza danych – ePFRON2

Standard system utils OpenSSH Postgresql-contrib-9.1

Serwer repozytorium/archwium

Page 16: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

16

Maszyna fizyczna lub wirtualna

System operacyjny – dowolny

Przeglądarka internetowa – min. IE8, FF 23.01, GC 27.0.1453.116

Wirtualna maszyna JAVY – min. 1.7.45

Komputer Pracodawcy/Pracownika PFRON

Page 17: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

17

Produkty Systemu e-PFRON2 przedstawia poniższy schemat:

Legenda

Produkt własny – wytworzony przez Wykonawcę na potrzeby systemu e-PFRON2 w ramach realizacji Umowy

Produkt obcy – produkt nie wytworzony przez Wykonawcę, posiadający licencję otwartą lub zakupiony na potrzeby realizacji Umowy. Szczegóły dotyczące licencji poszczególnych produktów posiadających licencję otwartą podane przez dostawców znajdują się w załączniku do niniejszego dokumentu. Szczegóły dotyczące licencji zakupionej na potrzeby realizacji Umowy znajdują się w załączniku do niniejszego dokumentu. Aplet SZAFIR nie posiada terminu zakończenia licencji. Wsparcie (w tym aktualizacje) wykupione zostało na rok (zgodnie z Umową). Zostało aktywowane od dnia kiedy aplikacja ePFRON-2 została udostępniona dla Pracodawców. Termin wsparcia wygasa 1.11.2014 roku. Po tym terminie będzie działał dalej ale bez supportu i bez prawa do uaktualnień.

Produkt opensource – produkt wytworzony przez Wykonawcę bazujący na licencji otwartej Poniżej opisane zostały poszczególne elementy, obszary Systemu wraz z technologią, w jakiej zostaną one wykonane.

Obszar Pracodawcy

Konsola Operatora

Sllnik bazy danych

API

CMS

Aplikacja webowa e-pfron2

Aplet do cert.

PFRON

Aplet do cert. kwalifikowanych

Aplikacja webowa e-pfron2

Baza

CMS

Baza e-pfron2

Produkty własne

Produkty obce

Produkty opensource

Page 18: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

18

1.1 Obszar Front-end

1.1.1 Technologie

a) System operacyjny: Linux Debian

b) Języki programowania: PHP, Java, JavaScript

c) Silnik bazy danych: PostgreSQL

1.1.2 Lokalizacja

Środowisko hostingowane dostarczone przez Zamawiającego

1.1.3 Warstwy

a) warstwa sieci,

b) warstwa logiki biznesowej,

c) repozytorium danych.

1.1.4 Elementy składowe

a) WEB-GUI:

a. e-PFRON2 - Obszar Pracodawcy – aplikacja webowa

b. Strona WWW - Obszar CMS – treści statyczne wyświetlane Pracodawcy i system

zarządzania treścią (Joomla)

b) DB – baza danych niezbędna do prawidłowego działania aplikacji zawierająca wszystkie dane,

do których dostęp powinien posiadać Pracodawca (m.in. zawiera deklaracje Pracodawców,

dane ewidencyjne Pracodawców, wiadomości przygotowane w e-PFRON2).

c) Konsola operatora (aplikacja webowa) – system niezależny od NEO (posiadający własnych

użytkowników oraz system uprawnień), za pomocą którego pracownicy PFRON zarządzają

kontami oraz dokumentami Pracodawców. Konsola obsługuje miedzy innymi obszary

funkcjonalne:

a. Wprowadzanie dokumentów w formie papierowej

b. Zarządzanie kontami Operatorów

d) API – mechanizm do wymiany informacji pomiędzy e-PFRON2 a systemem NEO w zakresie

przekazywania dokumentów, aktualizowania statusów, itd.

1.1.5 Zasoby

a) sześć serwerów klasy x86_64

1.1.6 Zasady dostępu do obszaru Front-end przez Wykonawcę

a) dedykowane łącze logiczne dla IPv4 zrealizowane za pomocą bezpiecznego połączenia IPSec

VPN,

b) zasady dostępu:

a. dostęp na poziomie sieci (pula adresów IPv4 do wykorzystania w segmencie

zarządzania serwerami) – pula dostępna przez łącze logiczne z wykorzystaniem

dedykowanej stacji zarządzania,

b. niezbędne dane uwierzytelniania i autoryzacji na poziomie administratora systemu

(root) oraz użytkowników o niższym poziomie dostępu.

Page 19: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

19

1.1.7 Architektura fizyczna

Opisane w OPZ architektura fizyczna została zrealizowana po stronie hostingodawcy przy wykorzystaniu mechanizmów wirtualizacji i dynamicznego przydziału zasobów. Konfiguracja fizyczna serwerów nie przekłada się bezpośrednio na parametry pracy serwerów logicznych. Zainstalowano w infrastrukturze hostingowej rekomendowany w projekcie Load Balancer sprzętowy do zebne są urządzenia typu sprzętowy Loadbalancer:

1.1.8 Zasoby logiczne maszyn wirtualnych

Nazewnictwo:

Lp. Serwer NAZWA Parametry istniejące

1 Serwer

bazodanowy epfron-db1

1 CPU Intel X5675 8 rdzeni 3.0 GHz, 24GB RAM i

200 GB HDD, 4 porty 1 Gb/s

2 Serwer

bazodanowy epfron-db2

1 CPU Intel X5675 8 rdzeni 3.0 GHz, 24GB RAM i

200 GB HDD, 4 porty 1 Gb/s

3 Serwer

web/aplikacyjny epfron-app1

1 CPU Intel E7540 4 rdzenie 2.0 GHz, 6GB RAM i 60

GB HDD, 6 portów 1 Gb/s

4 Serwer

web/aplikacyjny epfron-app2

1 CPU Intel E7540 4 rdzenie 2.0 GHz, 6GB RAM i 60

GB HDD, 6 portów 1 Gb/s

5 Serwer

web/aplikacyjny epfron-app3

1 CPU Intel E7540 4 rdzenie 2.0 GHz, 6GB RAM i 60

GB HDD, 6 portów 1 Gb/s

7 Serwer

web/aplikacyjny epfron-app4

1 CPU Intel E7540 4 rdzenie 2.0 GHz, 6GB RAM i 60

GB HDD, 6 portów 1 Gb/s

1.1.9 Architektura logiczna poziom OS

Na wszystkich serwerach zainstalowano system operacyjny Debian 7 w wersji 64bit.

1.1.10 Architektura logiczna HA

1.1.11 Fizyczny Load Balancer

Zapewnienie ciągłeści pracy i równoważenia zostało osiągnięte poprzez instalacje sprzętowego Load Balancera ruchu http/https od strony segmentu publicznego sieci. Ruch przechodzący przez load balancer jest ruchem generowanym przez pracodawców. Load balancer zapewnia jego szyfrowanie, uczestniczy w rozdystrybuowywaniu zadań pomiędzy serwery aplikacji i odciąża je poprzez

Page 20: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

20

zastosowanie filtracji oraz mechanizmów cache’y wydających elementy które nie ulegają zmianie, a są często żądane.

1.1.11.1 Logiczny Load Balancer

Zaimplementowano logiczny Load Balancer i wykorzystano jego mechanizmy podnoszące bezawaryjność pracy systemu po stronie logiki systemów aplikacji. Mechanizm ten zarządza metodami dostępu do serwerów aplikacji w obszarze realizacji takich zadań jak konsola operatora oraz API dla neo (dwa wirtualne, pływające adresy IP). Mechanizm logicznego load balancera została zintegrowana z innymi funkcjami i jest częścią składową każdego z serwerów aplikacji. Zastosowano i skonfigurowano mechanizmy klastrowania i redundancji oparte o Pacemaker oraz Corosync. Adresami zarządzanymi przez mechanizmy HA są adresy: 10.150.26.100 dla konsoli operatora oraz 10.150.26.110 dla interfejsu API na interfejsie eth3 serwerów aplikacyjnych. W konfiguracji crm są to odpowiednio zasoby console_ip oraz api_ip.

1.1.11.2 Serwery bazodanowe

Serwery bazodanowe epfron-db1 i epfron-db2 zostały połączone na zasadzie master-slave z replikacją danych w metodzie „streaming replication”. Dostęp do danych zapewniony poprzez wykorzystanie dedykowanego wysokowydajnego segmentu sieci pomiędzy serwerami aplikacji i baz danych. Zrezygnowano z implementacji pool’owania połączeń do baz danych, ze względu na zmiany w balansie dostępnych zasobów. Serwery aplikacyjne mające pierwotnie obsłużyć mechanizmy pool’owania zostałyby niby niepotrzebnie przeciążone w sytuacji w której serwery baz danych dysponują nadwyżką mocy. Mechanizmy poolowania zostały skonfigurowane i zaimplementowane. Nie są aktualnie wykorzystywane. Połączenie replikacyjne pomiędzy węzłami bazodanowymi zrealizowano na dedykowanym linku pomiędzy interfejsami tych maszyn. Komunikacja pomiędzy kartami NIC jest realizowana na poziomie warstwy 2, w odniesieniu do modelu ISO/OSI. Zarządzanie i filtrowanie ruchu na warstwach sieci pomiędzy segmentami realizowane jest poprzez mechanizmy routingu i z wykorzystaniem urządzeń aktywnych hostingodawcy. Bazy danych wykorzystano również w celu przechowywania informacji o sesji (tam gdzie to konieczne – front cms) w ramach tzw. persistant storage niezależnie od mechanizmów cache’owania tych informacji lokalnie na serwerach aplikacji. System: Debian 7.0 64bit Silnik bazodanowy: Postgresql 9.1.9

1.1.11.3 Serwery aplikacyjne/web

Serwery epfron-app1/epfron-app2/epfron-app3/ epfron-app4 realizują żądania przychodzące od użytkowników do usług www pracodawcy, cms oraz żądania przychodzące od operatorów i mechanizmów komunikacji API. Sesje użytkowników obsługiwane są przy zachowaniu statystycznie równomiernego obciążenia każdego z serwerów. W przypadku wykrycia awarii serwera LB podejmuje decyzje o wyłączeniu go z realizowania zapytań i przekierowuje ruch na pozostałe sprawne elementy infrastruktury. W instalacji wykorzystano: - System operacyjny: Debian 7.0 64bit - Serwer www: Apache wersja 2.2

Page 21: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

21

- Mechanizmy cacheowania zapytań i kodu aplikacji APC, - Klaster pacemaker, corosync z zarządzaniem pływającymi adresami IP - PHP oraz framework programistyczny Symfony2 - zaimplementowano (ale nie włączono) też opcjonalny element: pgpool2 jako mechanizm cache’owania i pool’owania zapytań bazodanowych Serwer aplikacyjne zawierają następujące komponenty aplikacyjne: - konsola operatora - API - konsola pracodawcy - CMS - CA Wszystkie serwery są identyczne jeśli chodzi o komponenty oprogramowania i konfiguracji – pacemaker dba o przełączanie adresów IP konsoli i API między nimi, fizyczny LB natomiast gwarantuje ich równomierne obciążenie i reagowanie w przypadku awarii.

1.1.12 Przepływ danych od strony Pracodawcy

Dane wchodzą przez łącza zewnętrzne internetowe, trafiają na LB. LB realizuje SSL Offloading (jeżeli zachodzi taka potrzeba) i przerzuca ruch do strefy wewnętrznej na wybrany przez siebie serwer aplikacji. Tą drogą osiągany będzie komponent WEB-GUI.

1.1.13 Przepływ danych od strony Operatora

Dane wchodzą przez dedykowane łącze zestawione między PFRON a Hostingodawcą. W ten sposób dane mogą dotrzeć do: - API - konsoli operatora - CMS (strefa zarządzania CMS’em) Pacemaker dba o przekierowanie ruchu na odpowiedni serwer aplikacyjny.

Page 22: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

22

1.2 Schemat Front-end

1.3 Obszar Back-end (API dla Neo)

1.3.1 Technologie

API wg specyfikacji, określonej w projekcie. Dokumentacja do API znajduje się w dokumencie

WSDL autorstwa firmy Asseco.

1.3.2 Lokalizacja

Środowisko Zamawiającego.

1.3.3 Sprzęt

Łączność realizowana poprzez dedykowane łącze i urządzenia sprzętowe dostarczone przez Zamawiającego i hostingodawcę.

1.3.4 Elementy składowe

a) DB-Kopia - baza danych, będąca kopią bazy DB z Front-endu. Kopia wykonywana jest przy

pomocy mechanizmu cascade streaming replication postgresql. Na tej bazie można

wykonywać różnego rodzaju operacje w trybie tylko do odczytu w tym analityczne oraz

backupowe (przenoszenie do Archiwum).

b) Archiwum - miejsce, gdzie trzymane są historyczne dane w postaci dumpów z bazy DB-Kopia.

Archiwum jest obszarem tylko do odczytu zrealizowanym w postaci archiwum plikowego.

Zakres i tworzenie archiwum definiowane jest w mechanizmach harmonogramu systemu

oraz przy pomocy narzędzi pg_dump postgresql. Mechanizm wyłączony do skonfigurowania

przez zamawiającego wg potrzeb w crontab systemu operacyjnego archiwum.

HOSTING

Internet GUI front

APP01

APP02

APP03

DB01

DB01

usługa konsoli

operatorów

usługa API dla Neo

LB01

łącze do

pfro

n

APP04

Page 23: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

23

1.4 Komunikacja Front-end <-> Back-end

1.4.1 Zasada komunikacji

a) udostępnienie interfejsu komunikacji API, zapewniające dwustronną komunikację Back-end

<-> Front-end. Dedykowane dzierżawione łącze pomiędzy hostingodawcą a siedzibą pfron.

b) szyfrowanie, uwiarygodnienie stron, niepodważalność realizowana za pomocą protokołu SSL

w obrębie usług konsoli oraz komunikacji z API

Page 24: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

24

2 Projekty formatek deklaracji

Poniżej znajduje się lista nazw plików, które są formatkami do poszczególnych formularzy:

Formularz Formatka (nazwa pliku)

Wersja 2013:

DEK-I-0 DEK-I-0 (2013).png

DEK-I-a DEK-I-a (2013).png

DEK-I-b DEK-I-b (2013).png

DEK-II-a DEK-II-a (2013).png

DEK-II-b DEK-II-b (2013).png

DEK-R DEK-R (2013).png

DEK-W DEK-W (2013).png

DEK-Z DEK-Z (2013).png

DEK-I-u DEK-I-u (2013).png

INF-1 INF-1 (2013).png

INF-2 INF-2 (2013).png

INF-Z INF-Z (2013).png

Wersja 2011:

DEK-I-0 DEK-I-0 (2011).png

DEK-I-a DEK-I-a (2011).png

DEK-I-b DEK-I-b (2011).png

DEK-II-a DEK-II-a (2011).png

DEK-II-b DEK-II-b (2011).png

DEK-R DEK-R (2011).png

DEK-W DEK-W (2011).png

INF-1 INF-1 (2011).png

INF-2 INF-2 (2011).png

Wersja 2003:

DEK-I-0 DEK-I-0 (2003).png

DEK-I-a DEK-I-a (2003).png

DEK-I-b DEK-I-b (2003).png

DEK-II DEK-II (2003).png

DEK-II-a DEK-II-a (2003).png

DEK-R DEK-R (2003).png

DEK-W DEK-W (2003).png

INF-1 INF-1 (2003).png

INF-2 INF-2 (2003).png

Page 25: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

25

3 Walidacje

Definicje rodzaju walidacji: Walidacje definicyjne/proste – reguły kontrolujące zasady wpisywania danych do poszczególnych pól na formatkach ze strony użytkownika czy Operatora. Ten typ walidacji kontroluje jedynie dane pole lub bliską zależność pól (maksymalnie do poziomu tej samej sekcji) Walidacje obliczeniowe/złożone – reguły kontrolujące zależności pomiędzy sekcjami lub polami zlokalizowanymi w różnych sekcjach oraz pomiędzy dokumentami. Na ich podstawie System umożliwia użytkownikowi przygotowanie dokumentów, które od siebie zależą (np. DEK-I-0 a DEK-I-u). Są one prezentowane w postaci kolejnych zakładek tego samego dokumentu. System posiada rozbudowany system walidacji związanych z formularzami. Jego główne założenia to:

walidacja sprawdza poprawność danych na poziomie wypełnianego formularza

walidacja może sprawdzać różnego rodzaju zależności zewnętrzne pod warunkiem, że dotyczą one formularzy złożonych za pomocą Systemu e-PFRON2, przykładem takiej zależności jest weryfikacja, czy za dany okres nie został już złożony formularz danego typu.

walidacja odbywa się po stronie przeglądarki oraz po stronie serwera

walidacje definicyjne dla wszystkich pól bez zależności obliczeniowej są zapisane w bazie danych i istnieje możliwość ich parametryzacji przez Zamawiającego.

parametry obliczeniowe wynikające z zależności funkcyjnej są wpisane do kodu aplikacji ze względów technologicznych i istnieje możliwość ich parametryzacji przez Zamawiającego.

System kontroluje ilość Deklaracji - dla jednego Okresu Sprawozdawczego może zostać złożona, w Systemie jedna Deklaracja o danym typie i rodzaju, z wyłączeniem Deklaracji korygujących.

walidacje sprawdzając poprawność danych w momencie opuszczenia pozycji, próby przejścia do następnej sekcji oraz przed podpisaniem dokumentu (kontrola całości).

Szczegółowe walidacje zostały opisane w dołączonym do projektu zestawie plików xls opisujących reguły weryfikacji poprawności poszczególnych pól formularza oraz komunikatów błędów, jakie mają się pojawiać użytkownikowi i Operatorowi przy wypełnianiu danego formularza. Poniżej znajduje się lista nazw plików opisujących te reguły. Pliki zostały dołączone w oryginalnej postaci do Projektu Wykonawczego. Obszar funkcyjny jest odseparowany od obszaru walidacji informacji i komunikacji z kolejną warstwą Systemu. Obszar Operatora stanowi niezależna aplikacja z dodatkową ochroną firewallową w zakresie dostępu do możliwości jej wywołania, a tym samym dostępu z nieautoryzowanych lokalizacji logicznych sieci zewnętrznej. Do wysyłania danych z Systemu e-PFRON2 do użytkowników PFRON użyta została skrzynka e-mail: [email protected]. W momencie zmiany danych ewidencyjnych, w trakcie wypełniania deklaracji lub informacji System będzie informował stosownym komunikatem (użytkownika) o konieczności wysłania (złożenia) aktualizacyjnej deklaracji DEK-Z lub INF-Z z odsyłaczem do stosownej Formatki.

Page 26: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

26

4 Struktura dokumentów XML – formularze

4.1 Założenia ogólne

Elektroniczne dokumenty przesyłane do Systemu e-PFRON2 zapisywane są w plikach w formacie XML. Nazwy plików tworzone są na podstawie rodzaju dokumentu oraz okresu, którego dotyczą. Każdy plik otrzymuje rozszerzenie XML. Dokument (wraz ze wszystkim załącznikami) podpisywany jest za pomocą podpisu w formacie XAdES-BES, który znajduje się w osobnym pliku z rozszerzeniem .xades.

4.2 Struktura dokumentu głównego

Podstawowa struktura dokumentu jest stała i niezależna od rodzaju dokumentu. Kolejność pól w ramach danego poziomu zagłębienia jest dowolna.

Page 27: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

27

<?xml version="1.0" encoding="UTF-8" ?>

<PFOFFDOC ProgVer="EPFRON_1_0">

<DATE>2003-11-06 10:39</DATE>

<APPSPC>SIX0GP9N7Q40TO402C</APPSPC>

<FORM>

</PFOFFDOC>

Możliwe jest wykorzystywanie dowolnej z ogólnie znanych metod kodowania polskich znaków diakrytycznych – preferowany jest UTF-8.

PFOFFDOC – tag główny dokumentu. Parametr ProgVer określa nazwę i wersję oprogramowania przy pomocy którego został utworzony dokument. Parametr ten jest obowiązkowy.

DATE – data wygenerowania dokumentu wg zegara serwera

FORM – formularz będący obrazem dokumentu papierowego, którego odpowiednikiem jest transmitowany plik. Zawiera wszystkie pola dokumentu.

4.3 Struktura formularza - tag FORM

<FORM>

<NAME>INF 1-03</NAME>

<ID>19X0708K723A2XW8S</ID>

<FIELDS No="73">

</FORM>

NAME – określa nazwę formularza transmitowanego dokumentu. Dopuszczalne są następujące nazwy: DEK-I-0, DEK-I-a, DEK-I-b, DEK-II, DEK-II-a, DEK-II-b, DEK-I-u, DEK-R, DEK-W, DEK-Z, INF-1, INF-Z, INF-2. Odpowiadają one nazwom formularzy określonych przez rozporządzenia.

ID – unikalny numer identyfikacyjny dokumentu nadawany w momencie zapisu dokumentu do Systemu. Algorytm tworzenia numeru jest następujący:

znaki 1-9 to numer podmiotu w rejestrze PFRON

10-15 – czas wyrażony w sekundach od 01.01.2000 zapisany jako liczba o podstawie 36 [0-10,A-Z]. Dopełniany z przodu zerami do 6 znaków

16-17 – bieżące wskazanie zegara w zakresie milisekund, zapisane jako liczba o podstawie 36, uzupełniane zerem do 2 znaków.

FIELDS – pola formularza, parametr No – określa ich ilość

4.4 Pola formularza - tag FIELDS Zawartość zależy od rodzaju formularza. Organizacja tej części dokumentu jest zawsze jednopoziomowa. Przy zapisie treści pól przyjęto następujące założenia:

kwoty zapisywane są zawsze z kropką jako separatorem części dziesiętnej, bez separatora tysięcy

wszystkie pola kwotowe podawane są z dokładnością określoną w rozporządzeniach

format wszystkich dat to RRRR-MM-DD

spacje wiodące i kończące treść powinny być usunięte

tagi puste powinny być zapisywane w postaci skróconej np. <C25/>

kolejność tag-ów jest dowolna

Page 28: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

28

Ogólnie nazwy pól zawierają numer sekcji i numer pola formularza papierowego. Szczególną uwagę należy zwrócić na pola wyboru. W zależności do rodzaju formularza sytuacja taka może być zaimplementowana jako jeden tag z kilkoma możliwymi wartościami lub jako kilka tagów z dodatkową numeracją typu <E39_3a>, <E39_3b> itd. Większość tagów jest obowiązkowa, w nielicznych przypadkach w opisie wyraźnie wskazano tagi nieobligatoryjne.

4.5 Podpis dokumentu

Dokument (wraz ze wszystkimi załącznikami) jest podpisywany podpisem elektronicznym w formacie XAdES-BES, który znajduje się w osobnym pliku z rozszerzeniem .xades. Procedura podpisywania dokumentu lub dokumentów zakłada, że można przygotować wersje robocze dokumentów, a sam podpis polega na wybraniu dokumentu lub dokumentów i za pomocą jednego kroku podpisanie ich wszystkich.

Page 29: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

29

5 Formatka przelewu

Poniżej znajduje się szczegółowy opis formatki przelewu, czyli odpowiednio przygotowanego pliku w formacie umożliwiającym generowania pliku (z możliwością wydruku, gdzie wydruk spozycjonowany zgodnie z aktualnymi standardami) wpłaty gotówkowej i pliku przelewów bankowych zgodnych z formatem typu ELIXIR, i Videotel. Proces generowania pliku oparty jest o wywołanie formatki wpłaty lub przelewu w postaci edytowalnej umożliwiającej zmianę danych.

5.1 Format Elixir:

5.1.1 Struktura pliku

Plik może mieć dowolną nazwę;

Plik nie zawiera nagłówka lub stopki;

Każdy wiersz w pliku odpowiada pojedynczemu zleceniu płatności, poszczególne rekordy oddzielone są od siebie znakiem końca linii <CR><LF> (= Hex 13 + Hex 10);

Każdy rekord zawiera zbiór pól oddzielonych od siebie przecinkami (,) (Hex 2C)

Strona kodowa – CP852 albo ISO-8859-2 (w zakresie polskich znaków); Nie zaleca się importu plików ze stroną kodową CP 1250 / Windows 1250 ze względu na możliwość wystąpienia błędów w prezentacji polskich znaków diakrytycznych (dotyczy: Ś, ź i Ą)

Opisy, tytuły i inne dane tekstowe ujęte są w cudzysłowach (””) (Hex 22);

W przypadku, gdy pole tekstowe (jak na przykład szczegóły płatności) składa się z więcej niż jednej części to do ich oddzielenia wykorzystywany jest znak pionowej kreski (pipe) (|) (Hex 7C);

W zawartości poszczególnych pól niedopuszczalne jest stosowanie wyżej wymienionych znaków znaczących dla formatu.

5.1.2 Opis formatu pliku

Zawartość kolumn w opisie formatu: M / O = rodzaj pola M = obowiązkowe O = opcjonalne - = nie występuje Format = długość i typ pola n = pole numeryczne a = pole alfanumeryczne (znakowe) d = data w formacie zdefiniowanym we wzorcu importu/exportu F = pole stałej długości (fixed) V = pole zmiennej długości (variable)

5.1.3 Struktura pliku przesyłki

Num Opis pola M / O Format

Page 30: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

30

er pola

1. Typ komunikatu: 110 = Polecenia przelewu (zwykłe)

M 3 n F

2. Data płatności RRRRMMDD M 8 d F

3. Kwota płatności w groszach. Bez separatorów tysięcznych i separatora części ułamkowej. Uwaga: W przypadku zleceń wysokokwotowych polecenia realizowane będą systemem SORBNET.

M 15 n V

4. Bank zleceniodawcy (numer rozliczeniowy wg NBP) M 8 n V

5. Nie używane, wartość 0 M 1 n F

6. Rachunek zleceniodawcy w nowej postaci (NRB: suma kontrolna, nr rozliczeniowy banku, nr porządkowy rachunku)

M 34 a V

7. Rachunek kontrahenta w nowej postaci NRB (suma kontrolna, nr rozliczeniowy banku, nr porządkowy rachunku w banku)

M 34 a V

8. Nazwa i adres zleceniodawcy Poszczególne wiersze są oddzielone znakiem "|". Wiersze 1 i 2 – nazwa, wiersze 3 i 4 – adres.

M 4*35 a V

9. Nazwa i adres kontrahenta Poszczególne wiersze są oddzielone znakiem "|". Wiersze 1 i 2 – nazwa, wiersze 3 i 4 – adres

M 4*35 a V

10. Nie używane, wartość 0 M 1 n F

11. Bank kontrahenta (numer rozliczeniowy wg NBP) M 8 n F

12. Szczegóły płatności Poszczególne wiersze są oddzielone znakiem "|"

M 4*35 a V

13. Pola puste M 2*2 a F

14. Pola puste M 2*2 a F

15. Dodatkowa identyfikacja:- typ dokumentu "51" polecenia przelewu zwykłe

M 2 a F

16. Informacje Klient – Bank Poszczególne wiersze są oddzielone znakiem "|". Wiersz 1 może zawierać referencję własną polecenia wg zleceniodawcy (maksymalnie 16 znaków). Ostatnie puste wiersze nie są wymagane.

O 6*35 a V

17. Znak końca danych polecenia płatniczego M <CR><LF>

5.1.4 Przykład pliku

110,20080108,120,10205561,0,84102055610000380200040857,18102055610000310200035501, KLIENT-POL|KLIENT-POL SP. Z O.O.|UL.PUŁAWSKA_1144|00-950_WARSZAWA,NOWAK_JAN||UL._MARSZAŁKOWSKA_0001|00- 423_WARSZAWA,0,10205561,OPERACJA TESTOWA|TEST 1,,,51

5.2 Format Videotel

Page 31: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

31

5.2.1 Struktura pliku

Plik może mieć dowolną nazwę;

Plik nie zawiera nagłówka lub stopki;

Plik z danymi do importu jest zapisany w formacie tekstowym.

Pola tekstowe są objęte cudzysłowami

Jeżeli w tekście do zaimportowania znajduje się cudzysłów należy go usunąć.

W treści pola tekstowego niedozwolonymi znakami są: cudzysłów (”), pipe (|), tylda (~)

Jeżeli w tekście do zaimportowania ma się znaleźć znak podziału linii (pola wieloliniowe) należy

zastąpić go trzema znakami zapytania.

Polskie znaki są kodowane w stronie kodowej Windows 1250.

Nie zaleca się zaczynania nazwy firmy od znaku cudzysłowu lub apostrofu.

Zawartość kolumn w opisie formatu: M / O = rodzaj pola M = obowiązkowe O = opcjonalne Format = długość i typ pola n = pole numeryczne a = pole alfanumeryczne (znakowe) Zapis 3*35a oznacza, że pole może zawierać

maksymalnie 3 linie po 35 znaków, nie wliczając znaków podziału linii oraz licząc podwójne cudzysłowy, jako jeden znak.

K = pole zawierające kwotę. Kwota w formacie ZŁ.GR. Separatorem części ułamkowej jest kropka. Nie należy używać żadnych innych separatorów, np. separatora tysięcy.

Numer pola

Nazwa pola

Opis pola M/O Format

1 BBen Nazwa banku beneficjenta M 35a

2 RBen Nazwa rachunku beneficjenta M 3*34a

3 NrBen Numer rachunku beneficjenta M 35a

4 REZ1 Nieużywane M – dowolna liczba, pole ignorowane

Liczba całkowita

5 KW Kwota przelewu M K

6 BNad Nazwa banku nadawcy O 35a

7 RNad Nazwa rachunku nadawcy O 3x34a

8 NrNad Numer rachunku nadawcy M 35a

9 REF Referencja – tytuł przelewu M 3x35a

10 WAL Waluta przelewu – kod ISO M 3a

11 NF Nazwa firmy, do której mają być dopisane nowe rachunki beneficjenta, które zostaną zaimportowane wraz z przelewami

M 35a

12 DNN Domyślna nazwa rachunków powiązanych z daną firmą NF

M 3x34a

13 WL Określenie rodzaju własności firmy NF M ‘T’ jeśli firma własna i ‘N’ jeśli firma obca

14 REZ2 Nazwa systemu finansowego do przelewu O 35a

Page 32: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

32

(pole opcjonalne)

5.2.2 Przykład pliku

W poniższym przykładzie zaprezentowano dane jednego polecenia. "BZ WBK WSCHOWA" "JANPOL SP ZOO???05071 SULEJÓWEK???KOŚCIUSZKI 2/38" "11109015800000000103545802" 0000001 653.18 "" "PKO BP SA???UL. PUŁAWSKA 144" "1810205561000031020003550" "PŁATNOŚĆ ZA USŁUGĘ??? FAKTURA VAT 1234/99" "PLN" "JANPOL SP. ZOO" "JANPOL SP. ZOO??? 05071 SULEJÓWEK??? KOŚCIUSZKI 2/38" "N" ""

5.3 Formularze, dla których ma być generowany plik do przelewu 2003: DEK-I-0 03, DEK-I-a 03, DEK-I-b 03, DEK-II 03, DEK-II-a 03, DEK-W 03, DEK-R 03 2011: DEK-I-0 11, DEK-I-a 11, DEK-I-b 11, DEK-II-a 11, DEK-II-b 11, DEK-W 11, DEK-R 11 2013: DEK-I-0 13, DEK-I-a 13, DEK-I-b 13, DEK-II-a 13, DEK-II-b 13, DEK-W 13, DEK-R 13

Page 33: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

33

6 Role i przypadki użycia

Poniżej zostały opisane przypadki użycia Systemu wg standardowych ról z uwzględnieniem tych funkcjonalności, które zostały wykonane w systemie oraz te, które są przewidziane jako prace dodatkowe w ramach rozwoju i modyfikacji Systemu. Wymienione w kolejnych podrozdziałach role są rozłączne dla dwóch obszarów składających się na cały system, niektóre role mają zbieżne nazwy, np. administratora, natomiast nie są to te same role w systemie. W obszarze pracodawcy mamy zdefiniowane następujące role:

Użytkownik niezarejestrowany

Administrator (administruje w ograniczonym zakresie kontami użytkowników przypisanych do danego podmiotu, dla którego jest administratorem)

Pracownik

Brak uprawnień W obszarze operatora mamy zdefiniowane następujące role:

Operator (administruje kontami Pracodawców)

Operator tylko do odczytu

Administrator (administruje kontami operatorów)

Brak uprawnień

6.1 Obszar Pracodawcy:

6.1.1 Rola: użytkownik niezarejestrowany (tryb dostępu bez założonego konta):

LP Przypadek użycia Część realizacji

1 Zgłoszenie Pracodawcy oraz Administratora (proces) Jeżeli Pracodawca posiada już Numer w rejestrze PFRON bez zarejestrowanego użytkownika czy Administratora, procedura przewiduje wysłanie dokumentów zgłoszeniowych i akceptowanie uprawnień Administratora przez Operatora

I

6.1.2 Rola: Administrator:

LP Przypadek użycia Część realizacji

1 Zarządzanie użytkownikami: II

1.1 tworzenie użytkowników II

1.2 nadawanie/modyfikowanie uprawnień per rola (jeśli zmieniamy rolę na Administratora/Użytkownika to wymaga to akceptacji w Systemie przez Operatora – ZAP/ZUP) (ZUP – prace dodatkowe)

II

1.3 deaktywacja kont innych użytkowników lub deaktywacja swojego konta, która powoduje deaktywowanie również certyfikatu. Oprócz tego zmiana z roli „Użytkownika” na „Pracownika” deaktywuje

II

Page 34: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

34

certyfikat

1.4 zmiana haseł do kont wszystkich użytkowników II

2 Dodawanie Administratora/Użytkownika – wymaga interakcji z PFRON II

3 Zarządzanie certyfikatami: II

3.1 pobieranie i zapisanie certyfikatów dla wszystkich użytkowników (klucz publiczny i certyfikatu)

II

4 Wszystkie przypadki użycia z roli Użytkownik, czyli:

4.1 Logowanie do Systemu I

4.2 Zarządzanie dokumentami:

4.2.1 Składanie dokumentów, w tym podpisywanie dokumentów (proces) I

4.2.2 Usuwanie wersji roboczych wszystkich dokumentów powiązanych z danym Pracodawcą,

I

4.2.3 Podgląd wersji roboczych wszystkich dokumentów powiązanych z danym Pracodawcą

I

4.2.4 Modyfikacja wersji roboczych wszystkich dokumentów powiązanych z danym Pracodawcą

I

4.2.5 Podgląd wszystkich dokumentów przesłanych do PFRON I

4.3 Raportowanie:

4.3.1 Rejestr zdarzeń – użytkownik po poprawnym zalogowaniu i przejściu do zakładki Rejestr zdarzeń może zobaczyć wszystkie operacje związane z danym kontem wykonane od strony Pracodawcy; nie widzi natomiast operacji, które wykonywał na jego koncie Operator. Użytkownik nie ma możliwości edycji podglądanej listy

I

4.3.2 Lista wysłanych dokumentów wraz z statusami przetwarzania dla poszczególnych dokumentów przekazanych do PFRON wraz z możliwością podglądu dokumentu

I

4.3.3 Przeglądanie wiadomości przesłanych pomiędzy Pracodawcą a PFRON. System informuje użytkownika o nowej wiadomości

I

4.3.4 Pisanie wiadomości do PFRON (proces) II

4.3.5 Raport salda kont – aktualizowany dla Pracodawcy raz na rok (proces), z możliwością wydruku

II

4.3.6 Dane ewidencyjne Pracodawcy. (tyko podgląd). Z poziomu raportowania użytkownik ma możliwość przejścia do obszaru składania Dokumentów DEK-Z i INF-Z celem ich wysłania lub ponownego wysłania, jeżeli stwierdzi błąd

II

4.3.7 Raporty z Dokumentów (Deklaracji i Informacji) (tylko podgląd i wydruk) II

4.3.8 Raport z dokonanych wpłat (tylko podgląd i wydruk) II

4.4 Zarządzanie własnym kontem: II

4.4.1 Zmiana własnego hasła I

4.4.2 Generowanie certyfikatu, zablokowanie istniejącego certyfikatu w przypadku wygenerowania nowego

I

4.4.3 Rejestracja podpisu kwalifikowanego – podpisanie własnych danych podpisem kwalifikowanym

II

4.5 Przełączenie kontekstu pracy – zmiana pracodawcy, dla użytkowników, których konta są powiązane z kilkoma Pracodawcami (proces)

II

4.6 Podgląd numeru rachunku bankowego, na który należy uiszczać wpłaty I

4.7 Reset własnego hasła – przycisk na stronie www, którego naciśnięcie i podanie adresu email generuje wysłanie maila na wskazany adres z linkiem do zmiany hasła

Prace dodatkowe

Page 35: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

35

6.1.3 Rola: Pracownik:

LP Przypadek użycia Część realizacji

1 Logowanie do Systemu I

2 Zarządzanie dokumentami:

2.1 Składanie dokumentów, w tym podpisywanie dokumentów (proces) I

2.2 Usuwanie wersji roboczych wszystkich dokumentów powiązanych z danym Pracodawcą,

I

2.3 Podgląd wersji roboczych wszystkich dokumentów powiązanych z danym Pracodawcą

I

2.4 Modyfikacja wersji roboczych wszystkich dokumentów powiązanych z danym Pracodawcą

I

2.5 Podgląd wszystkich dokumentów przesłanych do PFRON I

3 Raportowanie:

3.1 Rejestr zdarzeń – użytkownik po poprawnym zalogowaniu i przejściu do zakładki Rejestr zdarzeń może zobaczyć wszystkie operacje związane z danym kontem wykonane od strony Pracodawcy; nie widzi natomiast operacji, które wykonywał na jego koncie Operator. Użytkownik nie ma możliwości edycji podglądanej listy

I

3.2 Lista wysłanych dokumentów wraz z statusami przetwarzania dla poszczególnych dokumentów przekazanych do PFRON wraz z możliwością podglądu dokumentu. (tylko odczyt)

I

3.3 Przeglądanie wiadomości przesłanych pomiędzy Pracodawcą a PFRON. System informuje użytkownika o nowej wiadomości

I

3.4 Pisanie wiadomości do PFRON (proces) II

3.5 Raport salda kont – aktualizowany dla Pracodawcy raz na rok (proces), z możliwością wydruku.

II

3.6 Dane ewidencyjne Pracodawcy. (tyko podgląd). Z poziomu raportowania użytkownik ma możliwość przejścia do obszaru składania Dokumentów DEK-Z i INF-Z celem ich wysłania lub ponownego wysłania, jeżeli stwierdzi błąd

II

3.7 Raporty z Dokumentów (Deklaracji i Informacji) (tylko podgląd i wydruk) II

3.8 Raport z dokonanych wpłat (tylko podgląd i wydruk) II

4 Zarządzanie własnym kontem: II

4.1 Zmiana własnego hasła I

4.2 Generowanie certyfikatu, zablokowanie istniejącego certyfikatu w przypadku wygenerowania nowego

I

4.3 Rejestracja podpisu kwalifikowanego – podpisanie własnych danych podpisem kwalifikowanym

II

5 Przełączenie kontekstu pracy – zmiana pracodawcy, dla użytkowników, których konta są powiązane z kilkoma Pracodawcami (proces)

II

6 Podgląd numeru rachunku bankowego, na który należy uiszczać wpłaty I

7 Reset własnego hasła – przycisk na stronie www, którego naciśnięcie i podanie adresu email generuje wysłanie maila na wskazany adres z linkiem do zmiany hasła

Prace dodatkowe

Page 36: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

36

6.1.4 Rola: brak uprawnień:

LP Przypadek użycia Część realizacji

1 Brak możliwości wykonania czynności w Systemie (rola dotyczy przede wszystkich użytkowników, którym odebrano posiadane uprawnienia)

I

6.2 Obszar Operatora:

6.2.1 Rola: Operator:

LP Przypadek użycia Część realizacji

1 Zarządzanie kontami Pracodawcy I

1.1 Nadawanie/Odebranie/Modyfikowanie uprawnień każdemu rodzajowi konta pracodawcy – zmiana roli użytkowników

I

1.2 Zmiana statusu: aktywny/nieaktywny (w tym blokowanie certyfikatu) /usunięty (widoczny tylko z poziomu Operatora – możliwość zmiany tego statusu w dowolny sposób)

I

1.3 Ustawienie nowego hasła dla użytkownika ręcznie przez Operatora (Operatora przekazuje ustawione hasło użytkownikowi poza Systemem)

I

2 Komunikacja z Pracodawcami – wysyłanie, odczytywanie (proces) I

3 Obsługa zgłoszonego Pracodawcy i Administratora (proces) I

4 Obsługa zgłoszeń nowych Administratorów dla istniejących profili Pracodawców

I

5 Wprowadzanie i obsługa dokumentów z formy papierowej (proces) – zarządzanie segregatorami prace dodatkowe

II

6 Aktywowanie/Deaktywacja wymiany informacji między Front-endem, a Back-endem na żądanie (w danym momencie)

II

8 Obsługa rejestru zdarzeń I

9 Obsługa raportów II

10 Eksport kompletu danych ze wszystkich list w formacie csv, xlsx, txt, (pdf – prace dodatkowe)

II

11 Wszystkie przypadki użycia z roli Użytkownik Operator – tylko do odczytu

6.2.2 Rola: Operator – tylko do odczytu

LP Przypadek użycia Część realizacji

1 Podgląd dokumentów złożonych przez Pracodawców (proces) I

2 Podgląd rejestru zdarzeń (proces) I

3 Podgląd kont Pracodawców i użytkowników (tylko odczyt) I

4 Komunikacja z pracodawcą – odczytywanie komunikatów w obu kierunkach I

5 Wysyłanie wiadomości nie tylko do wszystkich, ale do wybranych po odpowiednich filtrach (filtry – prace dodatkowe)

II

6.2.3 Rola: Administrator

Page 37: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

37

LP Przypadek użycia Część realizacji

1 Definiowanie nowych ról w Systemie - Obszar operatora. II

2 Zarządzanie kontami Operatorów. II

Dodawanie i modyfikowanie ról zostało ukryte ze względu na zlokalizowanie systemu ePFRON2 w segmencie Front-end oraz ze względu na możliwość obniżenia poziomu bezpieczeństwa ze względu na nieuważne zarządzanie rolami. Dodawanie i modyfikowanie ról może odbywać się w bazie danych przez zaawansowanego administratora systemu.

6.2.4 Rola: brak uprawnień:

LP Przypadek użycia Część realizacji

1 Brak możliwości wykonania czynności w Systemie (rola dotyczy przede wszystkich operatorów, którym odebrano posiadane uprawnienia)

II

Ze względu na utrzymanie właściwego procesu technologicznego zarządzanie kontami operatorów zostanie zamknięte na poziomie kodu aplikacji w części II Fazy II. Ze względu na konieczność spełnienia wymagania dostępu Operatorów do konsoli System został wyposażony w części I Fazy II we właściwe konta Operatorów wraz z ich właściwymi uprawnieniami. Operatorzy nie będą korzystać z certyfikatów do podpisywania dokumentów wprowadzonych ręcznie lub innych informacji wprowadzonych do Systemu ze względu na brak możliwości reprezentacji Pracodawcy bez właściwego upoważnienia, którego nie można żądać od Pracodawców.

6.3 Obszar CMS (Joomla):

6.3.1 Rola: Administrator/Redaktor CMS:

LP Przypadek użycia Część realizacji

1 Zmiana danych statycznych na stronach – informacje dostępne dla użytkownika przed zalogowaniem – strona powitalna, instrukcje obsługi, linki do wersji PDF formularzy, dodawanie redaktorów, itd.

I

Page 38: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

38

7 Procesy, wg przypadków użycia

W tym rozdziale zostały opisane ważniejsze procesy, który wynikają z opisanych w poprzednim rozdziale przypadków użycia. Pozostałe jak np. logowanie do Systemu, zmiana hasła, aktywacja czy deaktywacja użytkownika nie posiadają opisu w rozdziale, gdyż są powszechnie rozumiane. Procesy zostały opisane w podziale na Obszary Systemu: Obszar Pracodawcy i Obszar Operatora

7.1 Obszar Pracodawcy:

7.1.1 Zgłaszanie Pracodawcy oraz Administratora

LP Kroki procesu Część realizacji

1 Pracodawca zgłasza Pracodawcę i Administratora w Systemie on-line. I

1.1 Akceptacja warunków korzystania z Systemu (w przypadku braku akceptacji, System przechodzi do strony głównej, w przypadku akceptacji System przechodzi do kolejnego kroku procesu)

1.2 Wybór opcji: zwolniony (”INF-Z zwolniony z wpłat”, - czyli osiągający WZON) albo zobowiązany (”DEK-Z zobowiązany do wpłat”, - czyli nieosiągający WZON) co powoduje wybór formularza zgłoszeniowego INF-Z albo DEK-Z

I

1.3 Wypełnia dane Pracodawcy na formularzu DEK-Z lub INF-Z I

2 Wprowadza dane Administratora: I

2a NOWE KONTO:

imię,

nazwisko,

adres email,

hasło (Wymuszenie zmiany hasła przy pierwszym logowaniu)

pesel

I

2b WYBÓR ISTNIEJĄCEGO KONTA: Użytkownik musi podać:

imię,

nazwisko,

login, istniejącego konta w celu weryfikacji tożsamości konta (uniknięcia pomyłki)

II

3 System generuje zgłoszenia (DEK-Z/INF-Z i ZAP) i nadaje Pracodawcy numer zgłoszenia, zgłoszenie zostaje mu wyświetlone i wysłane na maila (wydruk zgłoszenia - załącznik w wiadomości e-mail)

I

4 System nadaje Administratorowi login, który zostaje mu wyświetlony i wysłany na maila (wydruk zgłoszenia - załącznik w wiadomości e-mail)

I

5a Pracodawca wysyła formularz zgłoszeniowy (DEK-Z lub INF-Z) pracodawcy oraz Administratora (ZAP) zwykłą pocztą wraz z dokumentami firmy, System - na formularzu zgłoszeniowym i ZAP - wpisuje numer zgłoszenia oraz jego postać zapisu kreskowego (obsługa kodów kreskowych – prace dodatkowe). Wygenerowanie wydruku jest możliwe po kliknięciu „Wyślij bez podpisu”

I

5b Opcja w przypadku posiadania Podpisu Kwalifikowanego – Pracodawca wysyła formularz zgłoszeniowy pracodawcy oraz Administratora do systemu e-PFRON2 i podpisuje go Podpisem Kwalifikowanym po kliknięciu

II

Page 39: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

39

przycisku „Podpisz i Wyślij” – Otwiera się okno apletu do podpisu dokumentów.

6 Operator: I

6a weryfikuje zgłoszone dane i rejestruje Pracodawcę w Back-endzie I

6b korzysta z informacji, jakie trafiły do Back-endu z Systemu e-PFRON2 za pomocą API

II

7 Operator aktywuje Administratora: I

7a wpisując ręcznie numer teczki z Back-endu w e-PFRON2 aktywuje Administratora z poziomu Obszaru Operatora w e-PFRON2

I

7b wykonując odpowiednie operacje po stronie Back-endu, które następnie za pomocą API przekaże do e-PFRON2 numer Pracodawcy w rejestrze PFRON oraz zmianę statusu w zakresie akceptacji danych Pracodawcy– System e-PFRON2 przyjmie taką zmianę i aktywuje konto Administratora Domyślne sortowanie listy - jako pierwsze na górze listy pozycje z numerem teczki. Jeśli jest w kolumnie „numer w rejestrze PFRON” numer teczki oznacza to, że Akceptacja w systemie NEO jest dokonana lub jest to zgłoszenie samego Administratora co oznacza, że dane Pracodawcy istnieją i są zaakceptowane już w Systemie e-PFORN2.) UWAGA! Akceptacja danych Pracodawcy następuje w systemie NEO. System e-PFRON2 dostosowuje się do „decyzji” z NEO. Opcja 7a przestaje działać po wprowadzeniu funkcjonalności 7b.

II

8 Aktywacja powoduje wysyłkę maila na: I

8.1 podany podczas zgłaszania adres email Pracodawcy I

8.2 podane podczas zgłaszania adres email Administratora I

9 Jeśli coś się nie zgadza w dokumentach zgłoszeniowych, które dotarły do PFRON Operator odrzuca zgłoszenie – kasuje konto Pracodawcy i Administratora w e-PFRON2 i poza Systemem odsyła odpowiedź, co należy poprawić -> Pracodawca rozpoczyna procedurę od początku

I

10 Po pierwszym zalogowaniu Administrator potwierdza zasady składania oświadczeń woli za pomocą Systemu. Następnie Administratorowi pokazywana jest informacja o możliwości wygenerowania certyfikatu zaawansowanego, w przypadku jeżeli nie posiada Podpisu Kwalifikowanego. Administrator ma możliwość wygenerowania podpisu lub zamknięcia komunikatu

I

Powyższy proces realizuje również zgłaszanie Administratora, gdy Pracodawca posiada już numer w rejestrze PFRON.

7.1.2 Składanie dokumentów / korygowanie

LP Kroki procesu Część realizacji

1 Użytkownik loguje się do Systemu podając login, hasło i numer w rejestrze PFRON.

I

2 Użytkownik Przechodzi do modułu składania deklaracji (Formularze) I

3 Użytkownik określa okres, za który chce złożyć deklarację – rok lub rok i I

Page 40: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

40

miesiąc

4 Użytkownik wybiera typ formularza, który chce złożyć I

5 Użytkownik wybiera czy deklaracja jest zwykła czy korygująca I

6 Użytkownik określa okres sprawozdawczy, za który chce złożyć deklarację (okres pobierany z punktu 3)

I

NOWA DEKLARACJA KOREKTA

Jeśli istnieje: Jeśli istnieje (System dopuszcza składanie wielu korekt za dany okres sprawozdawczy):

6.1 wersja robocza formularza za ten okres

wersja robocza formularza za ten okres

I

6.2 złożony już po 30.09.2013 do PFRON formularz za ten okres

I

7a System nie pozwala przejść do wypełniania formularza wraz z linkiem do wersji roboczej

I

7b Jeśli żaden z wyżej wymienionych warunków nie zachodzi użytkownik określa czy będzie to pusty formularz czy System ma skopiować dane z innego formularza – jeśli ma skopiować dane to użytkownik wybiera formularz, z którego te dane mają być skopiowane (do wyboru są dokumenty o tym samym typie co nowo składany formularz)

I

8 Użytkownik wypełnia otwarty formularz - System sprawdza poprawność wypełnionych pól w ramach formularza w tym okres, za który formularz jest składany i nie dopuszcza do złożenia Dokumentu niezgodnego z warunkami walidacji.

I

9 Użytkownik może w dowolnym momencie zapisać i wydrukować wersję roboczą i edytować ją w późniejszym czasie. Podczas zapisu wersji roboczej nie jest sprawdzana wymagalność pustych pól. Inne reguły walidacji są brane pod uwagę (np. prawidłowy numer PFRON, NIP, etc.)

I

10 W momencie, kiedy użytkownik przygotował finalną wersję dokumentu może go wysłać (i/lub wydrukować) do PFRON – proces wysyłki zawiera w sobie krok składania podpisu elektronicznego (kwalifikowanego lub certyfikatu zaawansowanego)

I

11 Alternatywnie, aby wysłać formularz do PFRON użytkownik może wypełniony formularz zapisać na dysku lokalnego komputera w formacie XML, złożyć podpis pod dokumentem za pomocą posiadanej przez siebie zewnętrznej aplikacji i wysłać podpisany plik do PFRON poprzez wysyłania tego pliku do Systemu. System realizuje warunki walidacji przy procesie wysyłania Dokumentu oraz kontroluje poziom uprawnień.

Prace dodatkowe

12 Po tej operacji dokument przechodzi w status „Wysłany”, jest w trybie tylko do odczytu

I

13 Użytkownik może wygenerować dane do formatki przelewu I

14 System weryfikuje czy podpis złożony pod dokumentem nie znajduje się na liście CRL.

I

15 System weryfikuje czy w Systemie po 30.09.2013 nie został złożony formularz za ten sam okres przez tego samego Pracodawcę. Jeśli weryfikacja jest negatywna formularz jest odrzucany

I

Szczegóły działania zasad wzajemnych zasad wpływu opisuje punkt Walidacji dokumentacji Proces zakłada możliwość wprowadzania deklaracji do e-PFRON2 z formy papierowej zgodnie z OPZ 3.1.2.3 oraz 3.1.3.3. Umożliwienie wprowadzania Deklaracji przysłanych przez Pracodawców w

Page 41: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

41

formie papierowej przez Operatorów. Wprowadzanie dokumentów papierowych realizowane na zasadach rejestracji dokumentu elektronicznego przez Pracodawcę – walidacja danych, zapisanie dokumentu, etc.

Proces ten został opisany w sekcji Obszar operatora - Wprowadzanie dokumentów z formy papierowej. W momencie zmiany danych ewidencyjnych, w trakcie wypełniania deklaracji lub informacji System będzie informował stosownym komunikatem (użytkownika) o konieczności wysłania (złożenia) aktualizacyjnej deklaracji DEK-Z lub INF-Z. Zmiana danych ewidencyjnych nie skutkuje ich zmianą w bazie, więc wypełnienie kolejnej deklaracji będzie wymagało ponownej korekty danych ewidencyjnych, aż do momentu złożenia i poprawnego przetworzenia deklaracji aktualizacyjnej (Back-end <-> Front-end).

7.1.3 Zakładanie nowego Pracownika

LP Kroki procesu Część realizacji

1 Administrator loguje się do Systemu podając login, hasło i numer w rejestrze PFRON.

II

2 Administrator definiuje konto: II

2a NOWE KONTO Podaje:

imię,

nazwisko,

email,

hasło (Wymuszenie zmiany hasła przy pierwszym logowaniu)

pesel System dodatkowo generuje login

II

2b ISTNIEJĄCE KONTO Podaje:

imię,

nazwisko,

login, System sprawdza czy w Systemie istnieje takie konto – jeśli istnieje przypisuje go do konta danego pracodawcy

II

3 Aktywuje konto II

7.1.4 Zakładanie nowego Administratora

LP Kroki procesu Część realizacji

1 Administrator loguje się do Systemu podając login, hasło i numer w rejestrze PFRON.

II

2 Administrator definiuje konto: II

2a NOWE KONTO Podaje:

imię,

nazwisko,

email,

II

Page 42: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

42

hasło (Wymuszenie zmiany hasła przy pierwszym logowaniu)

pesel System dodatkowo generuje login

2b ISTNIEJĄCE KONTO Podaje:

imię,

nazwisko,

login, System sprawdza czy w Systemie istnieje takie konto – jeśli istnieje przypisuje go do konta danego pracodawcy

II

3 Przekazuje do aktywacji do konsoli operatora. (status konta: przekazane do aktywacji)

II

4 Pracodawca przesyła poza Systemem dokumenty zgłoszenia administratora Pracodawcy (ZAP)

II

5 Operator zmienia status konta z poziomu konsoli Operatora na bez ważnego podpisu.

II

6 System wysyła maila z potwierdzeniem aktywacji konta. II

7.1.5 Zakładanie nowego Użytkownika

LP Kroki procesu Część realizacji

1 Administrator loguje się do Systemu podając login, hasło i numer w rejestrze PFRON.

II

2 Administrator definiuje konto: II

2a NOWE KONTO Podaje:

imię,

nazwisko,

email,

hasło (Wymuszenie zmiany hasła przy pierwszym logowaniu)

pesel System dodatkowo generuje login

II

2b ISTNIEJĄCE KONTO Podaje:

imię,

nazwisko,

login, System sprawdza czy w Systemie istnieje takie konto – jeśli istnieje przypisuje go do konta danego pracodawcy

II

3 Przekazuje do aktywacji do konsoli operatora. (status konta: przekazane do aktywacji)

realizowane jako prace dodatkowe

4 System generuje ZUP. Pracodawca przesyła poza Systemem dokumenty zgłoszenia Użytkownika

realizowane jako prace dodatkowe

5 Operator zmienia status konta z poziomu konsoli Operatora na bez ważnego podpisu.

realizowane jako prace dodatkowe

Page 43: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

43

6 System wysyła maila z potwierdzeniem aktywacji konta. realizowane jako prace dodatkowe

7.1.6 Odwoływanie pełnomocnictwa i Administratora/Użytkownika

LP Kroki procesu Część realizacji

1 Administrator loguje się do Systemu podając login, hasło i numer w rejestrze PFRON.

II – ZUP jako prace dodatkowe

2 Administrator przechodzi do zarządzania użytkownikami II – ZUP realizowane jako prace dodatkowe

3 Administrator wybiera konto Administratora/Użytkownika, które chce odwołać

II – ZUP realizowane jako prace dodatkowe

4 System generuje ZAP/ZUP, który Administrator może wydrukować II – ZUP realizowane jako prace dodatkowe

5 System wysyła zgłoszenie odwołania Administratora/Użytkownika do Obszaru Operatora

II – ZUP realizowane jako prace dodatkowe

7.1.7 Pierwsze logowanie i generowanie certyfikatu

LP Kroki procesu Część realizacji

1 Użytkownik loguje się do Systemu podając login, hasło i numer w rejestrze PFRON.

I

2 Użytkownik akceptuje zasady składania oświadczenia woli za pomocą Systemu I

3 Użytkownik musi zmienić hasło I

4 Użytkownik musi I

4a wygenerować dla siebie certyfikat (klucz prywatny .pvk i certyfikat publiczny .crt)

I

4b zarejestrować swój podpis kwalifikowany - podpisanie własnych danych podpisem kwalifikowanym i wysłanie ich do PFRON. Weryfikacja będzie realizowana na poziomie ważny/nie ważny po sprawdzeniu statusu w odpowiednim serwerze CA.

II

Rejestracja Podpisu Kwalifikowanego: 1. Użytkownik wchodzi do zakładki Certyfikatów 2. Użytkownik wybiera opcje- Zarejestruj Podpis Kwalifikowany 3. Użytkownik na nowej stronie klika przycisk Rejestruj (strona zawiera tekst informacyjny z oświadczeniem)

Page 44: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

44

7.1.8 Generowanie i odnawianie certyfikatu

LP Kroki procesu Część realizacji

1 Użytkownik loguje się do Systemu podając login, hasło i numer w rejestrze PFRON.

I

2 Użytkownik przechodzi do zakładki certyfikatów I

3 Użytkownik wybiera opcję – generuj nowy certyfikat I

4 Użytkownik generuje nowy klucz prywatny PVK i plik CRT I

5 System rejestruje plik CRT (jednocześnie stary certyfikat trafia na listę certyfikatów odwołanych)

I

7.1.9 Raport salda kont

LP Kroki procesu Część realizacji

1 Użytkownik loguje się do Systemu podając login, hasło i numer w rejestrze PFRON.

II

2 Użytkownik otrzymuje dokument – raport salda kont II

3 Użytkownik otwiera dokument II

4 Użytkownik akceptuje lub nie akceptuje dokument. Możliwość dopisania komentarza w polu tekstowym

II

5 Użytkownik wysyła dokument do PFRON (w tym złożenie podpisu) II

6 Dokument weryfikujemy pod kątem standardowej walidacji składania podpisu pod dokumentem. Raport salda jest traktowany tak samo jak każdy inny dokument.

II

7.1.10 Edycja wiadomości

LP Kroki procesu Część realizacji

1 Użytkownik loguje się do Systemu login, hasło i numer w rejestrze PFRON II

2 Użytkownik przechodzi do zakładki Wiadomości II

3 Użytkownik tworzy nową wiadomość (wpisuje temat i treść – opcjonalnie załącznik)

II

4 Użytkownik wysyła wiadomość – podpisując ją Podpisem Kwalifikowanym. II

7.1.11 Przełączanie kontekstu pracy

LP Kroki procesu Część realizacji

1 Użytkownik loguje się do Systemu podając login, hasło oraz numer Pracodawcy w rejestrze PFRON, do którego jest przypisany.

II

2 Użytkownik pracuje w kontekście danego Pracodawcy dokładnie w taki sam sposób, jak każdy użytkownik przypisany jedynie do jednego podmiotu.

II

3 Użytkownik w przypadku chęci przełączenia się na kontekst innego Pracodawcy korzysta z przycisku „Zmień Pracodawcę”.

II

4 Przycisk ten zamyka obecny kontekst pracy użytkownika i prosi o podanie hasła II

Page 45: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

45

oraz numeru pracodawcy w rejestrze PFRON, na kontekst którego użytkownik chce się przełączyć.

5 Po podaniu prawidłowych danych i poprawnej weryfikacji użytkownika przełącza się on na kontekst pracy dla nowego Pracodawcy.

II

7.1.12 Zmiana roli Użytkownika na Administratora/Administratora na Użytkownika

Proces zmiany roli odbywa się zgodnie z obsługą ZAP/ZUP.

7.2 Obszar Operatora

7.2.1 Komunikacja z Pracodawcami:

7.2.1.1 - wysyłanie komunikatów do Pracodawców

LP Kroki procesu Część realizacji

1 Operator loguje się do Systemu podając login i hasło. I

2 Operator przechodzi do zakładki Komunikaty I

3 Operator definiuje nowy komunikat podając jego temat, treść, opcjonalnie załącznik

I

4 Operator określa odbiorców komunikatu – wyboru typu jednokrotnego: I

4a Wszyscy I

4b Wybrani – Operator wpisuje numerów Pracodawców, do których ma trafić wiadomość (po przecinku oraz rozdzielony myślnikiem dla podania zakresu numerów)

I

4c Import listy numerów z pliku realizowane jako prace dodatkowe

5 Wysyła komunikat do wskazanej grupy odbiorców I

7.2.1.2 - odczytywanie komunikatów od Pracodawców

LP Kroki procesu Część realizacji

1 Operator lub operator tylko do odczytu loguje się do Systemu podając login i hasło.

II

2 Operator przechodzi do zakładki Komunikaty II

3 Operator wyszukuje odpowiednie dane korzystając z filtrów i wybiera z listy komunikat, który chce odczytać (komunikat zawiera informacje: nadawca, temat, treść, data i godzina wysłania). Filtry – prace dodatkowe

II

4 Po odczytaniu przez Operatora komunikat zmienia swój wygląd na liście na odczytany. Zmiana statusu zachodzi, jeżeli Operator wybrał taką flagę/opcję przy danym komunikacie.

II

5 Operacja odczytania komunikatu jest odnotowana w rejestrze zdarzeń widocznym jedynie dla Operatorów

II

Page 46: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

46

7.2.1.3 - monitorowanie odczytywania komunikatów przez Pracodawców

LP Kroki procesu Część realizacji

1 Operator loguje się do Systemu podając login i hasło I

2 Operator przechodzi do zakładki Komunikaty I

3 Operator wyszukuje odpowiednie dane korzystając z filtrów i wybiera z listy komunikat, który został wysłany. Filtry – prace dodatkowe

I

4 System wyświetla informacje o podmiotach, które odczytały komunikat wraz z datą i godziną wykonania tej operacji oraz loginem użytkownika, który tą operację wykonał

I

7.2.2 Obsługa zgłoszonego Pracodawcy i Administratora

LP Kroki procesu Część realizacji

1 Operator loguje się do Systemu podając login i hasło. I

2 Operator przechodzi do zakładki Zgłoszenia I

3 Operator wyszukuje odpowiednie dane korzystając z filtrów i wybiera z listy zgłoszenie, którym chce się zająć. Filtry – prace dodatkowe

I

4 System wyświetla informacje związane z danym zgłoszeniem I

Operator

5 Akceptuje zgłoszenie Odrzuca zgłoszenie I

6a Operator wprowadza do Systemu numer teczki, który odczytał z Back-endu

Wybiera opcję odrzuć – System zmienia status zgłoszenia na Odrzucone

I

6b Akceptuje numer przekazany przez Back-end za pomocą API

Odrzucenie (komentarze wysłane na podany adres e-mail jako prace dodatkowe)

II

7 Operator aktywuje (oddzielnie) konto Pracodawcy oraz konto Administratora i zmienia status zgłoszeń na Zaakceptowane

Nd I

8 Po wykonaniu akceptacji zgłoszenie zmienia swój wygląd na liście na obsłużony I

9 Operacja obsłużenia zgłoszenia jest odnotowana w rejestrze zdarzeń I

7.2.3 Akceptacja: zgłoszenia nowego użytkownika /zmiany roli użytkownika /odwołania użytkownika

LP Kroki procesu Część realizacji

1 Operator loguje się do Systemu podając login oraz hasło I

2 Operator przechodzi do zakładki Zgłoszenia I

3 Operator wyszukuje odpowiednie dane korzystając z filtrów i wybiera z listy zgłoszenie, którym chce się zająć. Filtry – prace dodatkowe

I

4 System wyświetla informacje związane z danym zgłoszeniem I

5 Operator

5a Akceptuje dane zgłoszenie - System zmienia status zgłoszenia na Zaakceptowane i odpowiednio:

I

Page 47: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

47

5aa Aktywuje nowego użytkownika I

5ab Zmienia rolę użytkownika I

5ac Odwołanie użytkownika I

5b Odrzuca dane zgłoszenie - System zmienia status zgłoszenia na Odrzucone + Operator ma możliwość dodania komentarza. Założone są dwa pola komentarza – jedno wewnętrzne, niewidoczne dla Pracodawcy a drugie widoczne dla Pracodawcy (Komentarz dla Pracodawcy – prace dodatkowe)

I

8 Po wykonaniu akceptacji zgłoszenie zmienia swój wygląd na liście, na obsłużony I

9 Operacja obsłużenia zgłoszenia jest odnotowana w rejestrze zdarzeń I

7.2.4 Podgląd dokumentów złożonych przez Pracodawców

LP Kroki procesu Część realizacji

1 Operator loguje się do Systemu podając login i hasło. I

2 Operator przechodzi do zakładki Dokumenty I

3 Operator wyszukuje odpowiednie dane korzystając z filtrów. Filtry – prace dodatkowe

I

4 System wyświetla wynik wyszukiwania dokumentów I

5 Operator klikając w wybrany wiersz w tabeli może zobaczyć złożony dokument I

7.2.5 Podgląd rejestru zdarzeń

LP Kroki procesu Część realizacji

1 Operator loguje się do Systemu podając login i hasło. I

2 Operator przechodzi do zakładki Rejestr zdarzeń I

3 Operator wyszukuje odpowiednie dane korzystając z filtrów Filtry – prace dodatkowe

I

4 System wyświetla wynik wyszukiwania zdarzeń I

Zdarzenia, które mają być odnotowywane w rejestrze zdarzeń: Zalogowanie Wylogowanie Zmiana hasła Wysyłanie poczty (komunikatu) przez operatora PFRON Wysłanie poczty (komunikatu) przez użytkownika Przeczytanie wiadomości przez użytkownika Archiwizowanie wiadomości przez użytkownika - jest rejestrowane usunięcie wiadomości Pobranie salda Rejestracja użytkownika Zmiana uprawnień - rejestrowana zmiana uprawnień przez operatora. Zmiana uprawnień od strony pracodawcy logowana jest jako zdarzenie związane ze zgłoszeniami. Usunięcie użytkownika Utworzenie certyfikatu Pobranie bieżącego certyfikatu Rejestracja podpisu kwalifikowanego Utworzenie wersji roboczej dokumentu Usunięcie wersji roboczej dokumentu

Page 48: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

48

Podpisanie dokumentu - to jest równoważne ze złożeniem dokumentu, co jest odnotowywane Wygenerowanie danych do formatki przelewu Przekazanie dokumentu przez operatora PFRON Poniższe zdarzenia rejestrowane są jako zmiana statusu dokumentu. Zdarzenia pochodzą z API: Wysyłanie dokumentu Potwierdzenie poprawności deklaracji Odrzucenie dokumentu Przyjęcie dokumentu Przekazanie dokumentu do weryfikacji

7.2.6 Wprowadzanie dokumentów z formy papierowej

LP Kroki procesu Część realizacji

1 Operator loguje się do Systemu podając login i hasło. II

2 Operator przechodzi do zakładki Dokumenty II

3 Operator Wybiera funkcję wprowadź nowy dokument II

4 Operator określa na rzecz jakiego Pracodawcy wprowadza ten dokument – podaje numer z rejestru PFRON

II

5 Operator wypełnia formularz przepisując dane z formy papierowej II

6 System sprawdza poprawność wprowadzony danych zgłaszając błędy, umożliwiając jednak złożenie formularza mimo ich występowania.

II

7 Operator wysyła wniosek do PFRON II

7.2.6.1 Obsługa segregatorów

Poniżej znajduje się opis koncepcji realizacji obsługi segregatorów mający bezpośredni wpływ na proces wprowadzania dokumentów z wersji papierowej. Poniższy opis koncepcyjny może ulec zmianie podczas analizy przedwdrożeniowej. Zostanie on zrealizowany w ramach prac dodatkowych.

7.2.6.1.1 Pojęcia

Segregator – fizycznie zorganizowany jako skoroszyt z dokumentami danego typu np. DEK-I-0 13 wprowadzonymi przez Operatora. Operator może mieć dowolną liczbę segregatorów zawierających deklaracje danego typu.

Właściciel segregatora – Operator, który założył dany segregator. Tylko właściciel ma prawo do wykonywania jakichkolwiek operacji na i w segregatorze.

7.2.6.1.2 Uprawnienia

Uprawnienia Operatora - zakładanie, zamykanie i ponowne otwarcie segregatora; wprowadzanie, edycja i usuwanie dokumentów wprowadzonych przez siebie (ograniczone do statusu dokumentu Wprowadzony - lista statusów opisana w dalszej części materiału). Operator ma możliwość wykonania operacji tylko na swoich segregatorach i dokumentach.

Uprawnienia Administrator - uprawnienia takie jak Operator oraz zmiana Właściciela segregatora, usuwanie pustych segregatorów, edycja i usuwanie dokumentów (ograniczone statusów dokumentów Wprowadzony i Zamknięty) wprowadzonych przez siebie i innych Operatorów.

Page 49: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

49

Administrator ma możliwość wykonania operacji na swoich segregatorach i dokumentach, jak i innych Operatorów.

Uprawnienia Operatora do odczytu - ma dostęp tylko do podglądu wszystkich segregatorów i dokumentów w nich wprowadzonych, może filtrować i sortować dane o segregatorach i o dokumentach.

7.2.6.1.3 Zakładanie segregatora

System umożliwia założenie segregatora przez Operatora. Segregator jest identyfikowany przez numer, rok założenia i typ dokumentu. Numeracja segregatorów jest ciągła. Format numeru segregatora – liczba (format zgodny z systemem Back-end). Uwaga: Dla segregatorów założonych z 2013 r. numeracja jest kontynuacją z systemu Back-end. Segregator zawiera dokumenty danego typu (np. DEK-I-0 13) za różne okresy sprawozdawcze. Segregator dla typów dokumentów DEK-I-0 13, DEK-I-a 13 oraz DEK-I-b 13 zawiera dodatkowo załączniki (deklaracje DEK-I-u). Operator może mieć dowolną liczbę otwartych segregatorów dla danego typu dokumentu. Ponieważ dopuszczona jest operacja ponownego otwierania zamkniętego wcześniej segregatora, to jednocześnie może być kilka otwartych segregatorów dla danego roku i typu dokumentu.

7.2.6.1.4 Zamykanie segregatora

System umożliwia zamykanie segregatora przez Właściciela oraz Administratora. Nie ma możliwości wprowadzania dokumentów do zamkniętego segregatora. Na zamkniętym segregatorze nie są dostępne żadne operacje poza jego ponownym otwarciem. Zamknięcie segregatora oznacza wystawienie dokumentów w nim zamkniętych do przekazania do systemu Back-end.

7.2.6.1.5 Ponowne otwieranie segregatora

Po zamknięciu segregatora System umożliwia ponowne otwarcia segregatora i wprowadzanie do niego kolejnych dokumentów. System zachowuje ciągłość numeracji dokumentów.

7.2.6.1.6 Zarządzanie segregatorami

System umożliwia założenie, zamknięcie i ponowne otwarcie segregatora. Nie ma możliwości zmiany jego numeru, roku założenia oraz typu dokumentów. Segregatora z dokumentami nie można usunąć. Pusty segregator (niezawierający dokumentów) może usunąć tylko Administrator. Segregator może mieć status: Otwarty, Zamknięty. System umożliwia filtrowanie i sortowanie danych o segregatorach . Filtrowanie danych o segregatorach możliwe jest według: typu dokumentu, roku segregatora, numeru segregatora, status segregatora, symbolu Właściciela segregatora. Lista segregatorów posiada sortowanie wg każdej z kolumn. Lista segregatorów zawiera następujące kolumny: typ segregatora (wg typu dokumentu), rok segregatora, numer segregatora, status segregatora, symbol Właściciela segregatora. Lista segregatorów posiada liczniki informujące o liczbie pozycji przedstawianych na danym ekranie oraz liczbę wszystkich pozycji dla listy (np. 1-20 (435)). Ekran dla list posiada dodatkowy przycisk przejścia na kolejny ekran, gdy lista zawiera więcej pozycji niż mieści się na jednym ekran.

7.2.6.1.7 Zarządzanie dokumentami w segregatorach

System umożliwia filtrowanie i sortowanie danych o dokumentach wprowadzonych do segregatorów. Filtrowanie danych o dokumentach w segregatorach możliwe jest według: numeru w rejestrze PFRON, numeru dokumentu w segregatorze, numeru referencyjnego dokumentu, daty wpływu

Page 50: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

50

dokumentu (od – do), data wypełnienia dokumentu (od-do), okresu sprawozdawczego (od – do), kwoty (od – do), kodu błędu, status dokumentu, lokalizacja dokumentu. Lista dokumentów posiada sortowanie wg każdej z kolumn. Lista dokumentów w segregatorze zawiera następujące kolumny: rok segregatora, numer segregatora, numer dokumentu, numer w rejestrze PFRON, okres sprawozdawczy, status dokumentu, kwota, kod błędu, symbol Operatora, status dokumentu, lokalizacja dokumentu (e-PFRON2, Neo). Lista dokumentów posiada liczniki informujące o liczbie pozycji przedstawianych na danym ekranie oraz liczbę wszystkich pozycji dla listy (np. 1-20 (456)). Ekran dla list posiada dodatkowy przycisk przejścia na kolejny ekran, gdy lista zawiera więcej pozycji niż mieści się na jednym ekran. Wprowadzone do Systemu dokumentu mają następujące statusy: Wprowadzony, Zamknięty, Przekazany, Przyjęty, Odrzucony, Wyjaśniany, Do usunięcia. Zamiana statusu dokumentu zależna jest od etapu pracy z dokumentem. Dokument nowo wprowadzony otrzymuje status Wprowadzony, dokument wystawiony do przekazania do systemu Back-end (API) otrzymuje status Zamknięty, dokument przekazany do systemu Back-end (API) otrzymuje status Przekazany. Statusy Przyjęty, Odrzucony lub Wyjaśniany są nadawanie system Back-end (API). Status Do usunięcia nadawany jest w Systemie przez Operatora. Wprowadzone dokumenty mogą być edytowane, jeśli nie mają statusu Przekazany, Przyjęty, Odrzucony albo Wyjaśniany. Modyfikacja dokumentu o statusie Wprowadzony i Zamknięty powoduje zachowanie takiego samego statusu. Usuwać w Systemie można dokument o statusie Wprowadzony, Zamknięty albo Do usunięcia. Dokument o statusie Do usunięcia musi być również usunięty przez Operatora w systemie Back-end. Dla pracodawców dostępna jest informacją o statusie Przyjęty bądź Odrzucony.

7.2.6.1.8 Proces zakładania segregatora

1. Operator wpisuje rok i wybiera z listy typ dokumentu oraz klika przycisk Utwórz segregator. 2. System zakłada segregator i nadaje mu numer. 3. Segregator ma status Otwarty i można do niego wprowadzać dokumenty.

7.2.6.1.9 Proces zamykania lub ponownego otwierania segregatora

1. Operator wskazuje segregator, wybiera z listy opcję Zamknij albo Otwórz ponownie oraz klika

przycisk Zmień status.

2. System zmienia status segregatora.

W przypadku zamknięcia segregatora wszystkie wprowadzone do niego dokumentów otrzymują

status Zamknięty oznaczający wystawienie dokumentów do przekazanie do systemu Back-end.

Do segregatora zamkniętego nie można wprowadzać dokumentów.

W przypadku ponownego otwarcia segregatora wszystkie wcześniej zamknięte dokumenty nie

zmieniają swojego statusu. Do segregatora otwartego można wprowadzać kolejne dokumenty.

7.2.6.1.10 Obsługa numerowania dokumentów

Każdy segregator posiada licznik dokumentów. Numeracja dokumentów w ramach segregatora jest ciągła. Format numeru – liczba (format zgodny z systemem Back-end: Nr segregatora/Nr dokumentu/Rok założenia segregatora). Numeracja dokumentów w danym segregatorze zaczyna się od 001. System ogranicza liczbę wprowadzonych dokumentów do 999. Edycja i usuwanie dokumentów niezadekretowanych w systemie Back-end jest możliwa w ePFRON2.

7.2.6.1.11 Proces wprowadzania dokumentów

Page 51: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

51

Operator ma dostęp do wszystkich segregatorów, może filtrować i sortować dane o segregatorach i o dokumentach w nich wprowadzonych. Kryteria filtrów opisano w punkcie „Zarządzanie segregatorami” i „Zarządzanie dokumentami w segregatorach”. Formatki dokumentów muszą zawierać: pole o dacie wpływu dokumentu, kod błędu (inne niż kodu błędów dla dokumentów elektronicznych z Neo). W podglądzie dokumentu musi być widoczna informacja numerze dokumentu, segregatora i roku. 1. Operator wybiera segregator, do którego będzie wprowadzał dokumenty. Po wyborze

segregatora, na oknie wyświetlone zostają następujące informacje:

1.1. Metryka segregatora:

1.1.1. Typ segregatora

1.1.2. Rok założenia segregatora

1.1.3. Numer segregatora

1.2. Zawartość segregatora

1.2.1. Sposób formatu wyświetlania

1.2.1.1. Lista kolumnowa

1.2.2. Zawartość listy danych

1.2.2.1. Rekordy dla poszczególnych dokumentów

1.2.2.2. Dane dla poszczególnych kolumn

1.2.2.2.1. [Numer kolejny dokumentu]

1.2.2.2.2. [Nazwa dokumentu]

1.2.2.2.3. [Status dokumentu]

1.2.2.2.4. [Lokalizacja pliku] (e-PFRON2, NEO)

1.3. Funkcjonalności na ekranie widoku segregatora

1.3.1. Obszar główny

1.3.1.1. [Zamknij okno] - przy kliknięciu przycisku pojawia się ostrzeżenie o

konieczności podjęcia decyzji przez Operatora w przypadku stwierdzenia przez

System wprowadzenia zmian w obrębie czy zawartości Segregatora). W

przypadku zarejestrowania zmian, na oknie ostrzeżenia wyświetla się jedynie

przycisk OK. Naciśnięcie przycisku OK następuje zamkniecie okna ostrzeżeń bez

uruchomienia zamknięcia Okna głównego.

1.3.1.2. [Otwórz do wprowadzania] – samo otworzenie wyświetlenia segregatora nie

powoduje jego otwarcia do wprowadzania danych. Dopiero kliknięcie przycisku,

powoduje możliwość wprowadzania danych do segregatora lub danych metryki.

1.3.2. Obszar Metryki segregatora

1.3.2.1. [Edytuj]

1.3.2.2. [Zapisz roboczy]

1.3.2.3. [Zamknij segregator]

1.3.2.4. [Zatwierdź]

1.3.2.5. [Anuluj]

1.3.3. Obszar zawartości listy przy poszczególnych rekordach

1.3.3.1. [Edycja]

1.3.3.1.1. Blokady dla edycji

1.3.3.1.1.1. Brak możliwości wprowadzania zmian zawartości dokumentu po

uzyskaniu statusu „Przekazany”.

1.3.3.1.1.2. Brak możliwości zmiany statusu dokumentu przy uzyskaniu lokalizacji

„NEO”

1.3.3.2. [Podgląd]

1.3.3.3. [Usuń]

Page 52: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

52

1.3.3.4. [Ponownie otwórz]

1.3.3.5. [Lokalizacja]

1.3.3.5.1. Uwagi - wyświetlanie statusu jest automatyczne na podstawie danych

pochodzących z Systemu. Wyświetlanie danych jest jednoczesne tzn.

maksymalna zawartość statusu jest podwójna (e-PFRON2, NEO)

1.4. Uprawnienia

1.4.1. Zawartość segregatora jest wyświetlana w całości bez względu na to kto wprowadzał

dokument do danego segregatora

1.4.2. Operator otwierając segregator powoduje otwarcie tego segregatora do

wprowadzania. Pojawia się numer segregatora, typ dokumentu, rok oraz wszystkie

wcześniej wprowadzone do niego dokumenty niezależenie od tego, kto je wprowadzał.

Nie ma możliwości stworzenia nowego segregatora w tym kroku. Aby stworzyć nowy

segregator konieczne jest wejście do ekranu zarządzania segregatorami.

2. Wybór segregatora powoduje, że można zacząć wprowadzać dokumenty jednego typu. Nie jest

możliwe rozpoczęcie wprowadzania dokumentu bez otwarcia segregatora.

3. System nadaje kolejny numer wprowadzanemu dokumentowi.

4. Po zatwierdzeniu dokumentu Operator na papierowej wersji nanosi numer, który podaje System.

5. System nadaje również numer referencyjny dokumentu.

6. Uzupełnienie formularza – automat na podstawie numeru w rejestrze PFRON uzupełnia dane w

sekcji A danymi z e-PFRON2.

7. Operator uzupełnia pola formularza (takie jak okres sprawozdawczy i rodzaj deklaracji – zwykła

lub korekta), w tym pola wymagalne m.in. przeciętne wynagrodzenie czy kwota do zapłaty. O tym

które pola są wymagalne napisano w walidacjach np.

„Wszystkie pozycje liczbowe i tekstowe są obligatoryjne - z wyjątkiem pozycji, których

wypełnienie zależne jest od wypełnienia innych pozycji.”

„Wszystkie pozycje liczbowe i tekstowe są obligatoryjne - z wyjątkiem pozycji, które określone są

jako pozycje nieobowiązkowe.”

8. Operator wypełnia dokument. Ma możliwość użycia przycisków:

Sprawdź formularz – wylicza pola wyliczeniowe na podstawie innych pól formularza oraz

sprawdza poprawność wprowadzonych do formularz danych – zgodnie z walidacjami.

Operator ma możliwość ręcznej edycji wyliczonych pól formularza;

Zapisz w roboczych – zapisuje i przechodzi do wprowadzania nowego dokumentu;

Anuluj – nie zapisuje dokumentu – wyjście z formatki dodatkowo wyświetla komunikat o

anulowaniu edycji wraz z akcją Tak albo Nie.

7.2.6.1.12 Wykazywanie różnic

Pod postacią istniejącej funkcjonalności „Sprawdź formularz” realizowane jest wykazywanie różnic wprowadzanych danych w stosunku do walidacji.

7.2.6.1.13 Przeniesienie dokumentów do NEO

Dokumenty są przenoszone z Systemu e-PFRON2 za pomocą pompy uruchamianej z systemie Back-end. Uruchomienie może być wywołane automatycznie (wg określonego harmonogramu) albo przez Operatora. Przenoszone są dokumenty wprowadzone od ostatniego uruchomienia „pompy” albo wskazane przez Operatora dokumentu. Parametry do wyboru przy uruchomieniu „pompy” przez Operatora:

Page 53: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

53

- symbol Operatora, - typ dokumentów, - numer segregatora, - rok założenia segregatora, - numer w rejestrze PFRON, - numer dokumentu (od – do).

7.2.6.1.14 Uwagi

Numeracja segregatorów dla kolejnego roku zaczyna się od 001. Nie ma oddzielnych numeracji segregatorów dla Operatora. Podstawowym założeniem tego procesu jest wyłączenie funkcjonalności w NEO.

Administrator posiada uprawnienia m.in. zmiany Właściciela segregatora.

Dla segregatorów założonych z 2013 r. numeracja jest kontynuacją z systemu Back-end. Nie jest wymagana migracja informacji z NEO do ePFRON2 dotycząca numeru segregatora i numeru dokumentu. Dla dokumentów wprowadzonych przed uruchomieniem tej funkcjonalności w ePFRON2 informacja na ten temat dostępna jest w NEO. Do przekazywania dokumentów wprowadzonych przez Operatora do Neo używamy pompy DOC2PFRON. Istotne jest, aby w przekazanych informacjach był umieszczony znacznik EOPER i powinien zawierać symbol operatora wprowadzającego dokument. Do przekazywania statusu dokumentu z Neo do e-PFRON2 używana jest istniejąca pompa DOC2EPFRON. System e-PFRON2 nie przekazuje informacji do Neo o segregatorach. System e-PFRON2 wśród innych statusów o dokumencie przekazanym do Neo będzie otrzymywał status Odrzucony w przypadku niezgodności zapisów formalnych stwierdzonych przez Neo. Dla pracodawców dostępna jest informacją o statusie Przyjęty bądź Odrzucony.

7.2.7 Filtry

Poszczególne listy będą zawierać filtry do wyszukiwania danych. Zostaną one zrealizowane w ramach prac dodatkowych. Filtry dla poszczególnych list zależne będą od pól występujących w formatkach. Na starcie listy będą wyświetlały się jako „puste”, dopiero wynik wyszukania wg poszczególnego kryterium/ów umożliwi przeglądanie danych. Poniższy opis koncepcyjny może ulec zmianie podczas analizy przedwdrożeniowej celem dostosowania do kolekcjonowanych danych w systemie ePFRON2. Obszar Pracodawcy

Lista dokumentów złożonych zawierać będzie następujące kryteria wyboru: typ dokumentu; data złożenia (od-do); okres (od-do); status; data statusu (od-do); liczba załączników.

Lista dokumentów roboczych zawierać będzie następujące kryteria wyboru: typ dokumentu; rodzaj dokumentu; okres (od-do); data sporządzenia (od-do); utworzony przez; data modyfikacji (od-do); modyfikowany przez.

Lista użytkowników zawierać będzie następujące kryteria wyboru: login; imię; nazwisko; poziom uprawnień.

Lista certyfikatów (dla poziomu Administrator) zawierać będzie następujące kryteria wyboru: login; ważny (od-do); status, podpis.

Obszar Operatora

Lista dokumentów złożonych zawierać będzie następujące kryteria wyborów: numer teczki; regon; nip; numer referencyjny; nazwa podmiotu; typ dokumentu; rodzaj dokumentu; data złożenia (od-do); data wypełnienia (od-do); okres (od-do); status realizacji; data statusu realizacji (od-do); status transmisji; data statusu transmisji (od-do); liczba załączników; login (użytkownika/operatora); podpis; kwota.

Page 54: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

54

Lista dokumentów wprowadzanych przez Operatora zawierać będzie następujące kryteria wyboru: numer teczki; regon; nip; nazwa podmiotu; rok segregatora; numer segregatora; numer kolejny dokumentu w segregatorze; typ dokumentu; rodzaj dokumentu; okres (od-do); data wypełnienia dokumentu (od-do); data wpływu (od-do); numer referencyjny; status realizacji; data statusu realizacji (od-do); status transmisji; data statusu transmisji (od-do); login operatora; kwota (od-do); błąd;

Lista wiadomości zawierać będzie następujące kryteria wyborów: numer teczki; regon; nip; id; temat; data wiadomości (od-do); wysłana przez; nowe; data przeczytania (od-do).

Lista użytkowników zawierać będzie następujące kryteria wyborów: numer teczki; regon; nip; nazwa podmiotu; login; imię; nazwisko; pesel; status; rola; data rejestracji; e-mail.

Lista operatorów zawierać będzie następujące kryteria wyborów: login; imię; nazwisko; status; rola;

Lista certyfikaty zawierać będzie następujące kryteria wyborów: numer teczki; regon; nip; login; imię; nazwisko; status; ważny (od-do), podpis.

Lista ról zawierać będzie następujące kryteria wyborów: nazwa roli; opis roli; rodzaj uprawnień.

Lista zdarzeń zawierać będzie następujące kryteria wyboru: numer teczki; regon; nip; data zdarzenia (od-do); adres ip; login; operator; rodzaj zdarzenia.

Lista zgłoszeń zawierać będzie następujące kryteria wyborów: numer zgłoszenia; numer teczki; regon; nip; nazwa podmiotu; data zgłoszenia (od-do); status; login; rodzaj zgłoszenia (wg DEK-Z i ZAP; INF-Z i ZAP; ZAP; ZUP); podpis.

7.2.8 Informacje z certyfikatu podpisu elektronicznego

Wyświetlanie informacji zawartej w certyfikacie podpisu elektronicznego – realizowane w ramach prac dodatkowych

Od strony konsoli operatora na liście złożonych dokumentów dodany zostanie przycisk „podpis”, który będzie wyświetlał następujące informacje:

numer referencyjny dokumentu (informacja z bazy)

wystawca certyfikatu (informacja z certyfikatu)

złożony przez (informacja z bazy)

podpisany przez (informacja z certyfikatu)

data złożenia podpisu (informacja z bazy)

nazwa podmiotu (informacja z bazy)

regon (informacja z bazy)

nr teczki (informacja z bazy)

Page 55: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

55

8 Matryca uprawnień

Uprawnienia definiowanie są w Systemie poprzez tworzenie ról, określanie dla nich uprawnień (akcji jakie może wykonać w danym obszarze) oraz przypisywanie do ról użytkowników. Matryca uprawnień pozwala na tworzenie ról w Systemie zgodnie z potrzebami w zakresie dostępu do poszczególnych obiektów na założonym poziomie granulacji. Założonym poziomem granulacji jest obszar funkcyjny. Obszar Systemu wymieniony poniżej określa poszczególne grupy funkcji, które mogą być wywoływane w Systemie przez użytkownika czy operatora. Obszar funkcyjny zakłada akcję połączoną z danych obszarem Systemu. System przewiduje dedykowane ekrany do zarządzania uprawnieniami. Ze względu na wymaganie separacji Obszarów ekrany do zarządzania uprawnieniami są dedykowane niezależnie do Obszaru Pracodawcy i Operatora. Ekrany te umożliwiają m.in.: • Zakładanie/Modyfikowanie/Usuwanie/Aktywowanie/Dezaktywowanie kont. • Definiowanie/Modyfikowanie/Usuwanie uprawnień dla kont. • Generowanie certyfikatów i haseł dla użytkownika. Generowanie certyfikatów jest możliwe tylko po zalogowaniu na własne konto ze względu na konieczność zapewnienia właściwego poziomu bezpieczeństwa • Dezaktywowanie certyfikatów i haseł • Zarządzanie certyfikatami i hasłami. • Przeglądanie wszystkich kont i uprawnień Systemu. • Eksport danych z list (wszystkich pozycji z danej listy – wyniku dla całej listy) w formatach (csv, xlsx, txt, (pdf – prace dodatkowe)). Opis zakresu czynności dla każdej ze zdefiniowanych ról będzie prezentowany w osobnym punkcie niniejszej dokumentacji (rozdział 13). Rozdział 13 opisuje mapowanie ról, czynności i uprawnień zaimplementowanych w Systemie i jako taki stanowi wizualizację matrycy uprawnień. Matryca definiowania uprawnień wygląda następująco: Rola | Obszar Systemu | Akcja Rola | Użytkownik gdzie: Obszar Systemu to: - zarządzanie użytkownikami Pracodawców - zarządzanie kontami Operatorów - zarządzanie dokumentami - komunikacja - rejestr zdarzeń - obsługa zgłoszeń - obsługa pomp - obsługa CMS Możliwe akcje to: - brak

Page 56: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

56

- tylko odczyt - uruchomienie/wywołanie - modyfikacja Przykładowo: UWAGA – poniższe role są rolami przykładowymi, podanymi jedynie dla ilustracji a niekoniecznie rolami już występującymi w systemie. Uprawnienia:

Rola (na przykład) Obszar Systemu Dostępne akcje

Operator – tylko do odczytu zarządzanie użytkownikami Pracodawców

brak

zarządzanie użytkownikami Operatorów

brak

zarządzanie dokumentami tylko odczyt

Komunikacja tylko odczyt

rejestr zdarzeń tylko odczyt

obsługa zgłoszeń tylko odczyt

obsługa pomp brak

Operator zarządzanie użytkownikami Pracodawców

Modyfikacje

zarządzanie użytkownikami Operatorów

brak

zarządzanie dokumentami Modyfikacje

Komunikacja Modyfikacje

rejestr zdarzeń tylko odczyt

obsługa zgłoszeń Modyfikacje

obsługa pomp Uruchomienie

Administrator (konsoli) zarządzanie użytkownikami Pracodawców

Brak

zarządzanie użytkownikami Operatorów

Modyfikacje

zarządzanie dokumentami Brak

Komunikacja Modyfikacje

rejestr zdarzeń tylko odczyt

obsługa zgłoszeń Modyfikacje

obsługa pomp Uruchomienie

Zgodnie z wymaganiami m.in. punktu 3.1.2.3 OPZ w zakresie autentykacji oraz autoryzacji użytkownika, wprowadzono wymaganie podania numeru w rejestrze PFRON w Obszarze Pracodawcy przy czynności logowania do Systemu

Page 57: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

57

9 Funkcje dla realizacji usług pomocy dla Pracodawców

Pomoc dla Pracodawców w Systemie będzie realizowana na kilka sposobów:

1. W części statycznej stron serwisu informacyjnego zostały opracowane przez Wykonawcę

strony typu „jak zacząć” opisujące m.in. sposób zgłoszenia Pracodawcy i użytkownika w

Systemie e-PFRON2 i inne pierwsze kroki.

Strony te są podzielone na rozdziały (zakładki) ułatwiające użytkownikowi znalezienie

odpowiedniej informacji. Przykładowe rozdziały i ich zawartość:

Jak zacząć – rejestracja, logowanie, konta pracodawcy i użytkownika

Certyfikaty – generowanie i odnawianie certyfikatów

Dokumenty – wypełnianie, wysyłanie dokumentów, dokumenty robocze

Użytkownicy – zarządzanie użytkownikami

Porównanie poprzedniego i obecnego systemu - różnice

Redaktor CMS może modyfikować strony bez konieczności zatrzymania działania Systemu.

2. Została przygotowana przez Wykonawcę instrukcja obsługi dla użytkownika i Operatora.

Instrukcja Pracodawcy jest dostępna dla użytkownika przed przejściem przez procedurę

logowania do Systemu tak, aby każdy mógł z niej skorzystać.

3. Redaktor CMS może modyfikować strony bez konieczności zatrzymania działania Systemu.

4. Formatki formularzy są opatrzone w przypisy do poszczególnych pól – zgodnie z przypisami

wzorów formularzy. Są one zamieszczone poniżej wypełnianego formularza, tak, aby

użytkownik miał do nich dostęp bez konieczności zaglądania do właściwego rozporządzenia.

Formatki formularzy są opatrzone w dodatkowe wyjaśnienia zgodnie z materiałami

przekazanymi przez PFRON – pliki pomocy dołączone do formularzy. Są one dostępne

podczas wypełniania formularzy i otwierane jako osobne strony. Administrator PFRON może

podłączać pliki pomocy.

5. Przy wypełnianiu formularza użytkownik ma dostęp do danych słownikowych powiązanych z

odpowiednimi polami, których dotyczą. Z punktu widzenia użytkownika jest to widoczne,

jako rozwijalna lista, z której będzie mógł wybrać właściwą wartość.

6. Walidacja poprawności wprowadzonych do Systemu danych zawiera komunikaty

ostrzegawcze w formie podpowiedzi dla użytkownika i Operatora, w jaki sposób należy

poprawnie wypełnić pola formularza. Komunikaty będą wyświetlane przez taki czas (ok. 8

sekund), aby użytkownik zdążył przeczytać komunikat. Ponadto pola z błędnie wprowadzoną

wartością są oznaczane wyraźną ramką wskazującą na konieczność jej poprawienia.

Page 58: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

58

10 Opis zabezpieczeń danych i dostępu do zasobów Systemu

Poniżej zostały opisane sposoby zabezpieczenia Systemu.

10.1 Systemy i środowisko wykonania projektu.

10.1.1 System operacyjny

W celu ograniczenia różnorodności systemów, ujednolicenia procedur aktualizacji oraz zarządzania stosuje się w całym projekcie jednolity system operacyjny Debian 7.x w wersji 64 bit. System ten ma certyfikację zarządzania bezpieczeństwem zgodną z CVE, dedykowany Security Team, Bug Tracker oraz wyspecjalizowaną pod kątem bezpieczeństwa gałąź aktualizacji oprogramowania. Zastosowano mechanizm logowania zdarzeń systemowych (rsyslog – katalog /var/log) oraz możliwość przesyłania ich na zewnętrzne urządzenia zabezpieczające/archiwizujące wpisy (możliwość konfiguracji usługi syslog protokoły TCP/UDP). System operacyjny został w zależności od funkcjonalności danego węzła ograniczony pod kątem zainstalowanego oprogramowania do minimum. Instalowane oprogramowanie pochodzi wyłącznie z podpisanych i weryfikowalnych pakietów instalacyjnych dystrybucji systemowej zarządzanej przez repozytoria Debian APT. Żadne dane uwierzytelniania w systemach nie są przechowywane w sposób jawno-tekstowy. Stosowane są funkcje skrótu z mechanizmem salt. Zabezpieczenia kanałów transmisji oparte są o certyfikaty i klucze wg zasad PKI oraz zaufanego CA (protokół SSL). Każda z maszyn oraz każdy z segmentów sieci wewnętrznej podlega ochronie przy pomocy filtracji ruchu sieciowego realizowanego na dedykowanych urządzeniach hostingodawcy, sprzętowych routerach i firewall’ach różnych warstw sieciowych.

10.1.2 Sieć

Bezpieczeństwo wymiany informacji osiągnięto poprzez rozgraniczenie stref zaufania oraz klasyfikację ruchu. W strefach o największym poziomie zagrożenia (dostęp do Systemu od strony sieci rozległej) zastosowano protokoły gwarantujących poufność, niepodważalność i autentyczność transmisji (SSL) – certyfikat gwarantowany przez zewnętrzne CA Unizeto – mechanizmy PKCS #1 SHA-1 z szyfrowaniem RSA. Strefy bezpieczne separowane są od infrastruktury WAN na poziomie fizycznym (osobne segmenty sieci, karty sieciowe wraz z urządzeniami aktywnymi sterującymi przepływem danych) gwarantują bezpieczeństwo i niezawodność wymiany informacji na poziomie warstw zarządzania i wysokiej dostępności. W strefach zaufanych zrezygnowano ze stosowania kosztownych obliczeniowo mechanizmów szyfrowania (ruch http i ruch bazodanowy) rozwiązanie takie podnosi wydajność, ale także umożliwia prowadzenie skutecznego monitorowania dostępności usług również na poziomie sieci, a nie tylko na poziomie serwerów. Adresacja segmentów sieci oraz ich logiczny podział obrazuje poniższa tabela:

Nazwa IP mgmt

APP (eth0) IP do LB (eth1)

IP do DB (eth2)

IP do PFRON (eth3)

IP Internal APP (eth4)

IP Backup (eth 5)

ePFRON-APP1 10.150.27.1 10.100.1.1 10.150.25.1 10.150.26.1 10.150.254.1 10.203.1.1

ePFRON-APP2 10.150.27.2 10.100.1.2 10.150.25.2 10.150.26.2 10.150.254.2 10.203.1.2

ePFRON-APP3 10.150.27.3 10.100.1.3 10.150.25.3 10.150.26.3 10.150.254.3 10.203.1.3

ePFRON-APP4 10.150.27.4 10.100.1.4 10.150.25.4 10.150.26.4 10.150.254.4 10.203.1.4

Page 59: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

59

Nazwa IP mgmt DB

(eth0) IP do APP

(eth1) IP Internal DB

(eth2) IP Backup

(eth3)

ePFRON-DB1 10.150.28.1 10.101.1.1 10.150.255.1 10.203.1.101

ePFRON-DB2 10.150.28.2 10.101.1.2 10.150.255.2 10.203.1.102

10.1.3 Usługi

Wybrane oprogramowanie serwerowe zostało skonfigurowane pod kątem konkretnego rozwiązania tak, aby ograniczyć problem „domyślnej konfiguracji”. Oprogramowanie zainstalowane zostało z uwiarygodnionych, podpisanych paczek instalacyjnych. deb http://ftp.pl.debian.org/debian/ wheezy main deb-src http://ftp.pl.debian.org/debian/ wheezy main deb http://security.debian.org/ wheezy/updates main deb-src http://security.debian.org/ wheezy/updates main Każdy pakiet instalowanego oprogramowania został zweryfikowany jako oryginalny i pochodzący z wiarygodnego źródła wg specyfikacji i kryptograficznie bezpiecznych mechanizmów podpisu cyfrowego oraz funkcji skrótu wg meta danych np.: Package: apache2 Version: 2.2.22-13 Description-md5: d24f049cd70ccfc178dd8974e4b1ed01 MD5sum: 04241cf30710ab7640e4c1b164044f16 SHA1: 5a5ed142817a0925b8ed087b585efbd0fb5a982e SHA256: ee95e97f002e9d988a05f8f2fc10bdb395629962126b841bab0849c3c598f958 Nie instalowano oprogramowania systemowego spoza repozytoriów dystrybucji Debian. System realizuje wielowarstwowość infrastruktury tak pod kątem bezpieczeństwa jak i przechowywania danych. Dostęp do informacji na poziomie baz danych jest możliwy tylko poprzez szereg zabezpieczeń programowych i sprzętowych warstw wyższych. Wprowadzona zostaje zasada zaufania stref wg określonego przepływu informacji. Nie ma możliwości dowolnego czy bezpośredniego sięgania do informacji przechowywanych w Systemie. Wszystkie informacje służące uwierzytelnianiu w systemach/usługach itd. przechowywane są w postaci nieodwracalnej (funkcje skrótu). Przesyłanie haseł i danych uwierzytelniania przez sieć odbywa się w sposób kryptograficznie nieodwracalny (funkcje skrótu). Usługami wystawionymi do strefy o najniższym poziomie zaufania pozostają jedynie, te które spełniają podstawową zakładaną funkcjonalność Systemu na styku z użytkownikiem (tj. load balancer). Dostęp do właściwego serwera aplikacji odbywa się za jego pośrednictwem, dopiero po uwierzytelnieniu transmisji i jej przefiltrowaniu. Dostęp do baz danych następuje z kolei za pośrednictwem serwerów aplikacji i uwierzytelnienia w warstwie aplikacji. Dostęp dla operatorów, administratorów itd., możliwy jest tylko za pomocą dedykowanego segmentu sieci wydzielonego połączenia z siedziby Zamawiającego o podwyższonych zasadach zabezpieczeń.

10.1.4 Oprogramowanie

Metodologia wytworzenia oprogramowania zakłada pełną fazę cyklu developerskiego. Od projektowania poprzez testy, implementacje, testy wydajnościowe, wdrożenie produkcyjne,

Page 60: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

60

utrzymanie. Projekt realizowany jest w oparciu o zasady kontroli wersji, testów zapobiegających regresji itd. Zastosowany framework programowania Symfony narzuca określone zasady wytworzenia bezpiecznego oprogramowania (m.in. wymienialność metod uwierzytelniania, modułowość konstrukcji, abstrakcję, separację warstwy prezentacji od warstw logiki itd.). Symfony daje natywne metody implementacji metod kontroli dostępu (ACL) na poziomie obiektów, ról oraz url’i. Wybrany język programowania (PHP 5.x) zostanie zainstalowany i skonfigurowany pod kątem wykorzystania go wraz z frameworkiem Symfony. Konfiguracja taka dostosowuje rozwiązanie konkretnie pod daną funkcjonalność ograniczając problem domyślnych ustawień. Wersja 5.3 i nowsze zostały specjalnie dostosowane do założeń bezpieczeństwa do tej pory gwarantowanych przez zewnętrzne mechanizmy zapobiegania exploitom (Suhosin Patch etc.). Projekt jest „dojrzały” pod kątem metodologii rozwoju oprogramowania (CVE, bug tracking, patching etc). Obsługa błędów i wyjątków w całym systemie jest zapewniona w sposób automatyczny przez framework - wykaz dołączony jest na CD. Jest kilka wyjątków generowanych i obsługiwanych bezpośrednio przez dostarczone oprogramowanie. Nie zaleca się modyfikacji. W niektórych miejscach świadomie zastosowano tzw. wyciszanie wyjątków, w miejscach gdzie ich generowanie ma bardzo niską ważność a ilość takich zdarzeń może być ogromna. Zastosowano takie rozwiązanie w celu zwiększenia czytelności informacji o wyjątkach istotnych, które dzięki temu nie giną w natłoku wpisów mało ważnych. Aplikacja operuje na bazie transakcjami co zabezpiecza dane przed ich utratą lub zapisem w bliżej nie określonym stanie. Przypadki niezakończonych pozytywnie transakcji odnotowywane są w dziennikach zdarzeń. Mapowanie poszczególnych kolumn bazy danych na kod aplikacji wynika bezpośrednio z kodu aplikacji. Obszar Operatora i Pracodawcy korzysta ze wspólnego pakietu oprogramowania o nazwie PfronBundle – celowo zastosowano takie rozwiązanie gdyż ułatwia to zarządzanie i pielęgnację oraz rozwój kodu obniżając czas a co za tym idzie koszty jakie niesie to ze sobą. System zapewnia izolację obszarów funkcjonalnych od obszarów walidacji informacji i komunikacji między warstwami, np. walidacje określone w formatkach można modyfikować nie wpływając, nie ingerując w funkcjonalność systemu.

10.1.5 Dane

W związku z faktem, że elementy Systemu e-PFRON2 czyli Obszar Pracodawcy oraz Obszar Operatora będą pracowały na współdzielonej bazie danych oraz w związku z tym, że Obszar Operatora będzie umieszczony w środowisku hostingowym (Front-end) dla zapewnienia odpowiedniego poziomu bezpieczeństwa wprowadzono następujące zabezpieczenia:

1. Obszar Pracodawcy i Obszar Operatora to dwie osobne aplikacje z osobnymi bazami

użytkowników i poświadczeniami.

2. Dostęp do Obszaru Pracodawcy będzie możliwy z dowolnego miejsca na świecie.

3. Dostęp do Obszaru Operatora będzie możliwy jedynie ze ściśle zdefiniowanych adresów IP,

np. puli adresów przypisanych do PFRON.

Oznaczać to będzie dokładnie tyle, że nawet jeśli w jakiś niekontrolowany sposób osoba postronna uzyska login i hasło do Obszaru Operatora nie będzie w stanie z nich skorzystać dopóki nie zestawi połączenia z siedziby PFRON. Baza danych, która jest umieszczona w obszarze Front-end (hostingodawca) jest regularnie kopiowana do obszaru Back-end (siedziba PFRON). Dodatkowo dane są odpowiednio archiwizowane, czyli trzymane fizycznie na trzeciej z kolei maszynie, gdzie dostęp do nich jest tylko w przypadkach awaryjnych w trybie tylko do odczytu.

Page 61: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

61

Dostęp do danych/aplikacji został opisany w pkt. 1 niniejszego dokumentu W systemie zastosowano replikację asynchroniczną ze względu na parametry łącza między segementem frontend (środowisko hostingowe) oraz backend (siedziba PFRON) we wdrażanym środowisku. Replikację można wykonywać w sposób synchroniczny – odpowiednia zmiana konfiguracja opisana jest w załączniku nr 4 do dokumentacji powykonawczej. Bezpieczeństwo takiej replikacji jest zapewnione przez dedykowane, szyfrowane łącze między segmentem frontend a segmentem backend. System przetwarza i przechowuje dokumenty podpisane cyfrowo. Ponieważ takie dane nie mogą być fizycznie usuwane z systemu w aplikacji ani po stronie Pracodawcy ani po stronie Operatora nie ma możliwości usunięcia podpisanych cyfrowo dokumentów. Dodatkowo można zabezpieczyć system na poziomie bazy danych operując odpowiednio uprawnieniami użytkowników bazy danych, na którym pracuje aplikacja lub na którym pracują administratorzy bazy, aby zabronić operacji usuwania i aktualizacji w tabeli, która zawiera złożone dokumenty. Zarządzanie uprawnieniami w zastosowanej w systemi bazie PostgreSQL jest opisane w załączniku nr 4. Integralność danych jest zapewniona przez natywne mechanizmy bazodanowe. W miejscach gdzie taki sposób byłby mało wydajny, dla podniesienie komfortu i efektywności pracy użytkowników i operatorów, zastosowano zapewnienie integralności danych na poziomie kodu aplikacji. Nie obniża to integralności danych a w znaczącym stopniu podnosi wydajność całego systemu.

10.1.6 Strefy bezpieczeństwa

Podział stref po kątem przepływu informacji przy realizacji żądania ze strony użytkownika Internetowego Systemu. STREFA DMZ – strefa dostępu do Systemu przez użytkowników od strony sieci WAN STREFA APLIKACJI – strefa pomiędzy serwerami load balance/proxy a serwerami aplikacyjnymi STREFA BAZ DANYCH – strefa pomiędzy serwerami aplikacji, a serwerami bazodanowymi Separacja stref. Żądanie wysłane bezpośrednio przez użytkownika ze strefy DMZ po przejściu przez LB i PROXY aplikacyjne realizowane jest już niebezpośrednio. Użytkownik nie ma dostępu bezpośredniego do strefy aplikacji. Żądania dotyczące danych są budowane przez logikę aplikacji w serwerach aplikacji i za pośrednictwem warstwy cacheującej przekazywane dalej do realizacji na poziomie bazy danych. Logicznie użytkownik jest oddzielony 3 warstwami od warstwy przechowywania danych. Dodatkowo każda z warstw posiada mechanizmy filtracji zarówno na poziomie sieciowym (firewall’e) jak i aplikacyjnym (cache, proxy etc.) każda ze stref wyposażona jest w niezależne mechanizmy śledzące i zapisujące zdarzenia tak aby można było prześledzić dowolne odwołanie do Systemu. Protokoły wymiany informacji: STREFA DMZ <-> STREFA APLIKACJI -> protokół http/https STREFA APLIKACJI <-> STREFA BAZ DANYCH -> protokół Postgres SQL Podział stref pod kątem funkcjonalnym Strefa użytkowa – opisana powyżej Strefa utrzymania – wydzielony segment sieci do komunikacji pomiędzy węzłami w celach HA, logowania zdarzeń, replikacji danych itd. Protokoły HA, PostgresSQL replication, ICMP, SNMP, sysylog. Strefa zarządzania – wydzielony segment sieci do komunikacji administracyjnej/supportowej z zaufanych źródeł tj. m.in. siedziby Wykonawcy. Protokoły zdalna konsola (remote KVM), zdalna linia poleceń (ssh) i lub inne niezbędne do prac zarządzająco konfiguracyjnych.

Page 62: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

62

Strefa operatora/API – wydzielony segment sieci do komunikacji dla operatorów Systemu oraz dla interfejsu API pomiędzy Front-endem i Back-endem. Protokoły https, replikacja PostgresSQL oraz API https. Segment ten pozostaje w niewidocznej komunikacyjnie strefie odseparowanej od ruchu klienckiego. Schemat pokazujący strefy bezpieczeństwa, zabezpieczenie połączeń oraz miejsce prechowywania certyfikatów został umieszczony w rozdziale 1.

10.1.7 System przechowywania zdarzeń

Oprócz przechowywania lokalnego zdarzeń na każdym z węźle uczestniczącym w realizacji usług zakłada się możliwość skonfigurowania zdalnego repozytorium logów przy użyciu protokołu syslog-ng. System Debian oraz wybrane elementy aplikacyjne są kompatybilne z protokołem SNMP i istnieje możliwość monitorowania infrastruktury przy pomocy tej technologii.

10.1.8 Zapewnienie dostępności usług

Bezpieczeństwo Systemu realizowane na poziomie dostępności usług zakłada instalacje dwu redundantnych load balancerów, które reagują aktywnie na awarię jednego z nich i przekazują pozostałemu węzłowi realizację żądań. Nadmiarowość może być przerzucona na środowisko hostingu jako zabezpieczenie nadmiarowości sprzętowo funkcjonalnej. Warstwa aplikacyjna zostaje rozproszona pomiędzy kilka maszyn w celu podniesienia wydajności i wprowadzenia dodatkowej separacji obsługiwanych sesji. Separacja obsługiwanych sesji gwarantuje zmniejszenie ryzyka przeciążenia Systemu w efekcie działań jednego z procesów. Dostępność usług podnoszona jest poprzez zastosowanie szeregu kaskadowego rozwiązań cache’y i proxy tak, aby w infrastrukturze odpowiedź na żądanie znalazła się możliwie jak najszybciej jak najbliżej klienta i aby mogła zostać ponownie wykorzystana. Mechanizmy cache’ujące wprowadza się na poziomie „przed serwerami aplikacji” tak, aby odciążyć je od wydawania statycznej treści, na poziomie aplikacji (cache generowany dynamicznie w obrębie sesji użytkownika, cache obiektów itd…) oraz na poziomie dostępu do bazy danych: pooler połączeń do bazy tak aby zniwelować koszt zestawiania połączenia i rozłożyć optymalnie ruch sieciowy. W przypadku konieczności przetworzenia dużej ilości informacji, transakcji, które z definicji muszą zająć więcej czasu zakłada się zagwarantowanie w aplikacji kanału zwrotnego informującego użytkownika o trwającym/ukończonym procesie – komunikacja asynchroniczna. Dublowanie serwerów w obrębie ról (LB, WEB, DB) pozwala na osiągnięcie pewnego stopnia bezawaryjności i pracy ciągłej nawet w przypadku utraty zasilania czy też awarii sprzętu. Segmentacja strefowa/logiczna sieci i zalecana separacja urządzeń aktywnych obsługujących dane segmenty po stronie hostingodawcy gwarantuje jednocześnie niezawodność połączeń pomiędzy węzłami.

10.1.9 Środowisko JAVA

System jest zaprojektowany dla wersji JRE dostępnej w chwili udostępnienia aplikacji dla Pracodawców (wersja JRE 1.7.45). System wykorzystuje środowiska JAVA w obszarze Pracodawcy do procesu składania podpisu pod dokumentami co wymaga stałej kontroli zgodności i ewentualnego dostosowania Systemu w tym zakresie w kontekście zmian w linii głównej kodu środowiska JRE. Zalecane jest wykonywanie stałych i okresowych, co kwartał, testów kompatybilności. Szacuje się (na podstawie informacji dystrybuowanych przez ORACLE), że zmiany w głównej linii kodu środowiska JAVA są wykonywane co około 6 miesięcy.

Page 63: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

63

11 Serwery aplikacyjne

11.1.1 System operacyjny

System operacyjny Debian 7 64bit dostosowany do pracy w środowisku wielonarodowym UTF8 z technologiami skalowalności pod kątem rozszerzania i powiększania przestrzeni dyskowej (LVM), dostępnego RAM’u, ilości procesorów logicznych Przestrzeń dyskową separuje się logicznie pomiędzykilka partycji tak aby uniknąć sytuacji gdy wypełnienie przestrzeni dzienników zdarzeń (logów) pociąga za sobą unieruchomienie usług krytycznych. Na serwerze zainstalowano minimalny zestaw narzędzi systemowych „standard system utils”. Dodatkowo wyposażono je w pakiety:

a) openssh - zarządzanie poprzez terminal znakowy,

b) corosync - usługa klastra HA,

c) pacemaker - usługa klastra HA,

d) openjdk-7-jre - środowisko Java (obsługa infrastruktury PKI),

e) fonts-liberation - pakiet czcionek wizualizacji do pdf,

f) libapache2-mod-php5 - moduł wykonalny języka php w obrębie serwera web,

g) php5-pgsql - moduł języka PHP do komunikacji z bazą postgresql,

h) php5-xsl - moduł języka PHP parsery składni XML/XSL,

i) php5-mcrypt - moduł języka PHP do realizacji kryptografii,

j) php-apc - moduł języka PHP do realizacji cache’a i prekompilacji,

k) pgpool2 - usługa poolera połączeń DB,

l) apache2 - usługa serwera WEB.

Wraz ze wszystkimi wymaganymi zależnościami i bibliotekami współdzielonymi.

11.1.2 Konfiguracja sieciowa

System wyposażony w 6 interfejsów sieciowych zaadresowany wg schematu (tabeli wymienionej w poprzednich rozdziałach):

a) eth0 – podłączony do segmentu zarządzania,

b) eth1 – podłączony do segmentu load balancingu ruchu klienckiego,

c) eth2 - podłączony do segmentu bazodanowego

d) eth3 - tunelu umożliwiającego dostęp do usługi konsoli operatora pfron oraz API,

e) eth4 – segment wewnętrzny pomiędzy serwerami aplikacji (klaster)

f) eth5 – na potrzeby backup’u,

11.1.3 Użytkownicy systemowi

Poza standardowymi użytkownikami tworzony na potrzeby administracji systemem i uruchamiania usług (zasada realizacji usług w środowisku o obniżonych uprawnieniach) system posiada konto użytkownika pfron dedykowane dla funkcjonowania aplikacji.

11.1.4 Dostęp administracyjny

Zrealizowano dostęp administracyjny poprzez segment zarządzania:

Page 64: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

64

a) uwierzytelnianie użytkownik/hasło poprzez bezpieczny protokół SSH szyfrowany kluczami

klienta i serwera,

b) autoryzacja na podstawie praw dostępu.

Administracja na poziomie systemu poprzez terminal znakowy (konsolę) systemu Linux. Hasła i konta użytkowników wymieniono w dokumencie poufnym nie będącym częścią składową niniejszej dokumentacji.

11.1.5 Oprogramowanie pfron

Serwer realizuje następujące usługi: a) front end dla użytkowników systemu (pracodawców)

a. udostępniany pod adresem https://pracodawca.e-pfron.pl (obsługa delegowanych

nazw domenowych, serwer nazw itp. poza zakresem realizacji projektu, zapewnione

przez Zamawiającego)

b) front end dla operatorów systemu (konsola operator pfron),

a. udostępniany przez dedykowane łącze do siedziby Zamawiającego do wykorzystania

przez pracowników,

c) API – interfejs do komunikacji z wewnętrznymi systemami infrastruktury pfron,

d) CMS – uzupełnienie front end’u o przestrzeń pozwalającą na edycję i publikację treści stron

www

a. serwis www.e-pfron.pl

Dodatkowo serwer posiada kilka elementów niefunkcjonalnych realizujących następujące wymagania:

a) mechanizm zarządzania klastrem serwerów aplikacji (zrealizowano konfigurację złożoną z

czterech węzłów),

b) zarządzanie wirtualnym adresem dostępowym na potrzeby dostępu do usługi od strony

konsoli operatora,

c) zarządzanie wirtualnym adresem dostępowym na potrzeby dostępu do interfejsu

programowego API,

d) mechanizmy optymalizujące dostęp do bazy danych oraz zapewniające komunikację z

segmentem bazodanowym przy uwzględnieniu wymagania wysokiej dostępności (pooler),

11.1.6 Usługi i oprogramowanie dodatkowe

Zainstalowano i skonfigurowano kluczowe oprogramowanie: a) serwer aplikacji – Apache z modułem PHP

b) system wysokiej dostępności złożony z elementów projektu Linux HA – heartbeat, corosync

oraz pacemaker

c) pgpool-II – pooler połączeń do bazy danych Postgresql,

Konfiguracja poszczególnych elementów odbywa się zdalnie poprzez konsolę tekstową ssh i ogranicza się do edycji plików i/lub wydawania określonych komend. Dokumentacja szczegółowa każdej z usług jest dostępna na odpowiednich witrynach twórców danego oprogramowania.

11.1.6.1 Serwer Apache

Skonfiguracja następujące moduły serwera apache:

Page 65: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

65

authz_default.load - moduł autoryzacji

deflate.load - moduł kompresji żądań i odpowiedzi

headers.load - moduł obsługi przepisywania nagłówków

mime.load - moduł obsługi i rozróżniania typów MIME

php5.load - moduł obsługi aplikacji realizowanych w języku PHP5

alias.load - moduł obsługi hostów pod różnymi nazwami

authz_groupfile.load - moduł integracji z systemem uprawnień POSIX

autoindex.load - moduł iteracji plików w obrębie katalogów

setenvif.load - moduł definicji zmiennych środowiskowych

status.load - moduł monitorowania statusu pracy serwera

auth_basic.load - moduł autoryzacji typu basic

authz_host.load - moduł autoryzacji typu host based

cgi.load - moduł obsługi zawartości dynamicznej

dir.load - moduł obsługi podfolderów

info.load - moduł monitorowania informacji o pracy serwera

negotiation.load - moduł bezpieczeństwa i renegocjacji protokołów

reqtimeout.load - moduł obsługi żądań wygasających

authn_file.load - moduł autoryzacji file based

authz_user.load - moduł autentykacji user based

env.load - moduł obłsugi zmiennych środowiskowych

rewrite.load - moduł obsługi przepisywania adresów żądań

ssl.load - moduł kryptografii do realizacji połączeń HTTPS

Podniesienie bezpieczeństwa realizowanych usług osiągnięto poprzez odpowiednie zmiany w polityce pracy serwera wyłączając m.in. rozgłaszanie informacji o wersji systemu, rozgłaszanie informacji o adresach usług, niemożności osadzania stron w serwerach innych dostawców itp. Skonfigurowano następujące wirtualne hosty serwera web: /etc/apache2/sites-avalible/pfron-lb Host diagnostyczny do komunikacji z Load Balancerem, /etc/apache2/sites-available/pfron-api Host realizujący usługę API /etc/apache2/sites-available/pfron-front Host realizujący usługę strefy pracodawcy i składania formularzy. /etc/apache2/sites-available/pfron-console Host realizujący usługę strefy operatora oraz dostępu administracyjnego do strefy cms. /etc/apache2/sites-available/pfron-pdf Host realizujący usługę renderowania stron do postaci plików pdf. /etc/apache2/sites-available/pfron-cms Host realizujący usługę strefy CMS. Skonfigurowano następujące priorytety hostów: 000-lb -> ../sites-available/pfron-lb

005-konsola -> ../sites-available/pfron-konsola

008-pdf -> ../sites-available/pfron-pdf

010-cms -> ../sites-available/pfron-cms

030-front -> ../sites-available/pfron-front

Serwer aplikacji przechowuje logi, dzienniki zdarzeń w /var/log/apache2 z podziałem na wirtualne hosty. Konfiguracja modułu PHP została zdefiniowana i wykonana w sposób pozwalający na uruchomienie aplikacji pfron włączono moduły modyfikując: /etc/php5/apache2/conf.d/ 10-pdo.ini -> ../mods-available/pdo.ini

20-apc.ini -> ../mods-available/apc.ini

Page 66: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

66

20-mcrypt.ini -> ../mods-available/mcrypt.ini

20-pdo_pgsql.ini -> ../mods-available/pdo_pgsql.ini

20-pgsql.ini -> ../mods-available/pgsql.ini

20-xsl.ini -> ../mods-available/xsl.ini

Zmieniono również kilka niestandardowych ustawień w: apc.ini apc.stat = 1

apc.shm_size=756M

oraz /etc/php5/apache2/php.ini memory_limit = 128M

error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT & ~E_NOTICE & ~E_WARNING

upload_max_filesize = 2M

11.1.6.2 Corosync oraz pacemaker

Konfiguracja klastra zakłada istnienie kilku równorzędnych węzłów serwerów aplikacji. Komunikacja pomiędzy węzłami odbywa się w segmancie klastra przy wykorzystaniu rozgłaszania udp unicast. Węzły są zdefiniowane na liście w sekcjach member per każde IP w konfiguracji corosync. Usługa loguje zdarzenia do local6 facility w rsyslog’u, a następnie logi trafiają do odpowiedniego pliku. Uwierzytelnianie węzłów i ich autoryzacja odbywa się na podstawie kluczy kryptograficznych rozdystrybuowanych pomiędzy węzły. Konfiguracja klastra wygląda następująco: crm configure show

node epfron-app1

node epfron-app2

node epfron-app3

node epfron-app4

primitive api_ip ocf:heartbeat:IPaddr \

params ip="10.150.26.110" cidr_netmask="255.255.255.0" nic="eth3"

primitive console_ip ocf:heartbeat:IPaddr \

params ip="10.150.26.100" cidr_netmask="255.255.255.0" nic="eth3"

location api_ip_pref api_ip 100: epfron-app1

location cli-prefer-console_ip console_ip \

rule $id="cli-prefer-rule-console_ip" inf: #uname eq epfron-app1

location console_ip_pref console_ip 100: epfron-app1

property $id="cib-bootstrap-options" \

dc-version="1.1.7-ee0730e13d124c3d58f00016c3376a1de5323cff" \

cluster-infrastructure="openais" \

expected-quorum-votes="4" \

stonith-enabled="false" \

no-quorum-policy="ignore"

Konfiguracja jest synchronizowana pomiędzy węzłami na bieżąco i w pełni zautomatyzowany sposób. Awaria węzła obsługującego dany zasób powoduje migrację zasobu (w tym przypadku adresu/adresów IP) na inny węzeł.

11.1.6.3 PGPool II

UWAGA: Ze względu na niewielką ilość zasobów sprzętowych mechanizm jest wyłączony. Usługa zapewnia dostęp do bazy danych w postaci proxy/cache/pool i pozwala odciążyć serwery bazodanowe poprzez przerzucenie części zadań na serwery aplikacyjne. W obecnej konfiguracji sp®żetowej maszyn jest to działanie nieprzynoszące korzyści wydajnościowych.

Page 67: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

67

Dodatkowo na każdym serwerze aplikacyjny zdefiniowano harmonogram wysyłki poczty elektronicznej z powiadomieniami z aplikacji. W crontab zdefiniowano następujące zadania. Użytkownik pfron (cykliczna wysyłka wiadomości mail): */3 * * * * php /home/pfron/front/app/console swiftmailer:spool:send

*/3 * * * * php /home/pfron/console/app/console swiftmailer:spool:send

11.1.7 Konfiguracja systemowej usługi loggera

Na serwerach aplikacyjnych skonfigurowano usługi dziennika zdarzeń systemowych rsyslog. Monitorowane są statusy działania systemu, metody uwierzytelniania jak i działające usługi. Konfiguracja znajduje się w /etc/rsyslog.conf Pliki zdarzeń znajdują się w /var/log.

11.1.8 Aplikacja pfron

Całość kodu wykonywalnego aplikacji została zainstalowana w katalogu domowym użytkownika pfron: /home/pfron

Katalog bibliotek i kodu współdzielonego to: /home/pfron/pfron

Inne podkatalogi to realizacja konkretnych usług.

11.1.8.1 Aplikacja pracodawca. e-pfron.pl

Miejsce instalacji kodu aplikacji: /home/pfron/front

Pliki konfiguracyjne: /home/pfron/front/app/config

Plik config.yml imports:

- { resource: parameters.yml }

- { resource: security.yml }

framework:

translator: { fallback: %locale% }

trusted_proxies: [10.4.254.35,10.4.254.34,10.4.254.33]

secret: %secret%

router:

resource: "%kernel.root_dir%/config/routing.yml"

strict_requirements: ~

form: ~

csrf_protection: ~

validation: { enable_annotations: false }

templating:

engines: ['twig']

default_locale: "%locale%"

session:

name: "pfron_front"

cookie_httponly: true

cookie_secure: false

fragments: ~

twig:

debug: %kernel.debug%

strict_variables: %kernel.debug%

globals:

date_format: %date_format%

date_format_short: %date_format_short%

date_format_full: %date_format_full%

assetic:

Page 68: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

68

debug: %kernel.debug%

use_controller: false

bundles: [ ]

filters:

cssrewrite: ~

doctrine:

dbal:

driver: %database_driver%

host: %database_host%

port: %database_port%

dbname: %database_name%

user: %database_user%

password: %database_password%

charset: UTF8

orm:

auto_generate_proxy_classes: %kernel.debug%

auto_mapping: true

# Swiftmailer Configuration

swiftmailer:

transport: %mailer_transport%

host: %mailer_host%

username: %mailer_user%

port: %mailer_port%

spool:

type: file

path: /home/pfron/spool

Plik parameters.yml Główny plik parametryzujący aplikację. Dostęp do bazy, dane serwera poczty do wysyłki wiadomości itd. parameters:

database_driver: pdo_pgsql

database_host: 10.101.1.1

database_port: 5432

database_name: pfron

database_user: pfron

database_password: *

mailer_transport: smtp

mailer_host: 192.168.133.10

mailer_port: 25

mailer_user: [email protected]

locale: pl

secret: *

date_format: 'Y-m-d H:i'

date_format_short: Y-m-d

date_format_full: 'Y-m-d H:i:s'

Dane poufne, hasła itp. zostały zastąpione * i nie znajdują się w tym dokumencie. Plik pfron_prod.yml Definicje mechanizmów cache’y: imports:

- { resource: pfron.yml }

pfron:

caches:

default:

type: "array"

apc:

type: "apc"

memcached:

type: "memcached"

host: %memcached_host%

document_def_manager_cache:

name: "default"

lifeTime: 1800

dictionary_cache:

name: "default"

lifeTime: 1800

Plik pfron.yml pfron:

login_max_attempts: 10

document_max_upload_size: 1048576

security:

Page 69: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

69

permissions_manager: pfron.front.security.permissions_manager

Plik security.yml Definicje zasad dostępu I zabezpieczeń do modułów aplikacji, ścieżek itd. Definicje protokołu dostępowego https. security:

encoders:

Passus\Bundle\PfronBundle\Entity\UserEntity:

id: pfron.security.mixed_password_encoder

providers:

pfron_provider:

id: pfron.front.security.user_provider

firewalls:

dev:

pattern: ^/(_(profiler|wdt)|css|images|js)/

security: false

login:

pattern: ^/login$

security: false

error:

pattern: ^/error

security: false

download:

pattern: ^/document/sign/download

security: false

cert_upload:

pattern: ^/cert/key_generate/upload

security: false

register:

pattern: ^/register

security: false

secured_area:

pattern: /.*

pfron_front:

check_path: /login_check

login_path: /login

use_referer: true

logout:

path: /logout

target: /

success_handler: pfron.front.logout_listener

access_control:

- { path: ^/.*, role: [ ROLE_LOGIN_ALLOWED ], requires_channel: https }

W celu poprawnej pracy programu ustawiono odpowiednie prawa zapisu do katalogów. /home/pfron/spool

/home/pfron/front/app/cache

/home/pfron/front/app/logs

/home/pfron/front/src/Passus/Bundle/PfronFrontBundle/Resources/views/PfronForm

Monitorowanie aplikacji zostało zrealizowane na poziomie implementacji. Odbywa się poprzez tworzenie plików dzienników zdarzeń w katalogu: /home/pfron/front/app/logs

11.1.8.1.1 Schemat logiczny – fragment systemu

System Operacyjny

Usługa serwera www

Moduł języka PHP

Framework Symfony 2

Aplikacja e-Pfron 2 – pracodawca.e-pfron.pl

Page 70: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

70

11.1.8.2 Aplikacja konsola operatora

Aplikacje konsoli operatorów zainstalowano w: /home/pfron/console

Pliki konfiguracyjne i ustawienia znajdują się w : /home/pfron/console/app/config

Definicja dostępu do bazy i parametrów pracy aplikacji została ustawiona analogicznie jak w aplikacji pracodawca. Z uwzględnieniem odpowiednio różnej ścieżki do plików konfiguracji. Katalogi i uprawnienia dostępu do zapisu zostały nadane na: /home/pfron/console/app/cache

/home/pfron/console/app/logs

11.1.8.2.1 Schemat logiczny – fragment systemu

11.1.8.3 Aplikacja cms

Miejsce instalacji aplikacji CMS to: /home/pfron/cms

Plik konfiguracyjny danej instalacji: /home/pfron/cms/configuration.php W nim zdefiniowano parametry dostępu do bazy danych, obsługi sesji czy inne definicje. W dużej mierze dostępne również do konfiguracji z poziomu panelu administracji systemu CMS. W celu podniesienia poziomu bezpieczeństwa aplikacji CMS zaimplementowano szereg reguł zawartych w pliku /home/pfron/cms/.htaccess. Zabezpieczenie dostępu do strefy administracyjnej definiuje natomiast plik /home/pfron/cms/administrator/.htaccess

System Operacyjny

Usługa serwera www

Moduł języka PHP

Framework Symfony

Aplikacja e-Pfron 2 – konsola.e-pfron.pl

Page 71: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

71

Liczbę katalogów o szerszych uprawnieniach niż tylko do odczytu ograniczono do niezbędnego minimum czyli /home/pfron/cms/cache

/home/pfron/cms/logs

/home/pfron/cms/tmp

/home/pfron/cms/media

/home/pfron/cms/images

/home/pfron/cms/administrator/cache

11.1.8.3.1 Schemat logiczny – fragment systemu

11.1.8.4 Aktualizacja plików aplikacji pfron

Każdorazowa aktualizacja plików wymaga odświeżenia mechanizmów generujących pliki podręczne cache. Mechanizmy cache zrealizowano na trzech poziomach:

a) Load Balancer – zawartość statyczna, nie wymaga aktualizacji, b) Mechanizm APC serwera Apache – zawartość jest odświeżana po wykryciu wywołania

apache2ctl graceful lub restartu usługi apache. c) Mechanizm cache framework’u Symfony. Do czyszczenia zawartości służą polecenia:

php /home/pfron/front/app/console cache:clear --env=prod --no-debug

php /home/pfron/console/app/console cache:clear --env=prod --no-debug

System Operacyjny

Usługa serwera www

Moduł języka PHP

Strona informacyjna www.e-pfron.pl

Page 72: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

72

11.1.8.5 Wykaz produktów

Serwer aplikacyjny zbudowany jest w oparciu o następujące komponenty programowe będące produktami obcymi:

a) System operacyjny (Debian), b) Oprogramowanie usług (Apache, Corosync, PGPool2, PHP5) c) Framework PHP (Symfony) d) CMS (Joomla)

oraz w oparciu o komponeny programowe własne stworzone na potrzeby projektu: a) Aplikacja pfron front b) Aplikacja pfron konsola c) Aplikacja pfron API d) Szablon pfron Joomla e) Narzędzia pomocnicze (patrz rozdział poniżej)

11.1.9 Narzędzia pomocnicze

Stworzono i zainstalowano szereg dodatkowych narzędzi/skryptów pomocniczych. Ich wykonanie usprawnia bieżące działania administracyjne na poziomie systemów operacyjnych:

11.1.9.1 Ustawianie uprawnień do plików i katalogów:

Skrypt automatyzujący ustawianie prawidłowych uprawnień do plików: /home/pfron/acl.sh

11.1.9.2 Czyszczenie cache’y aplikacyjnych

Skrypt automatyzujący odświeżanie mechanizmów cache’y: /home/pfron/cache_clean.sh

11.1.9.3 Synchronizacja wysłanych plików do cms

Skrypt synchronizacji zawartości cms /home/pfron/joomla_sync.sh Skrypt odpowiada za cykliczne rozsyłanie aktualizowanych i upload’owanych plików do udostępniania przez usługę cms. Dotyczy to między innymi załączników, grafik, dokumentów itp. Obiekty te nie są współdzielone przez 4 instancje serwerów aplikacyjnych.

12 Serwery baz danych

12.1.1 System operacyjny

Zainstalowano system operacyjny Debian 7 64bit. Hosty zaostały nazwane wg schematu: epfron-db1

epfron-db2

Przestrzeń dyskową skonfigurowano tak aby uniknąć problemów ze skalowaniem systemu wraz z rosnącymi potrzebami:

a) partycjonowanie z wykorzystaniem mechanizmu LVM i systemu plików ext4,

b) partycjonowanie dysku zachowuje rozgraniczenie na poszczególne partycje wg schematu

zastosowanego również w serwerach aplikacji.

Page 73: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

73

12.1.2 Usługi i oprogramowanie pomocnicze:

Serwer został wyposażony w podstawowy zestaw narządzi systemowych dostępnych z dystrybucji Debian. Dodatkowo zainstalowano:

a) openssh

b) postgresql-9.1.9

Wraz ze wszystkimi wymaganymi zależnościami.

12.1.3 Konfiguracja sieciowa

System wyposażony w 4 interfejsy sieciowe zadresowane wg schematu (tabela w rozdziale opisującym infrastrukturę ogólną):

g) eth0 – podłączony do segmentu zarządzania,

h) eth1 – podłączony do segmentu aplikacyjnego-bazodanowego,

i) eth2 – segment wewnętrzny pomiędzy serwerami bazodanowymi

j) eth3 – na potrzeby backup’u,

12.1.4 Użytkownicy systemowi

Poza standardowymi użytkownikami tworzony na potrzeby administracji systemem i uruchamiania usług system nie posiad dodatkowych kont. Kluczowa jest jedynie instalacja i konfiguracja użytkownika postgres na potrzeby bazy danych.

12.1.5 Dostęp administracyjny

Dostęp sieciowy zrealizowano poprzez instalacje usługi openssh dostępnej z segmentu zarządzania: a) uwierzytelnianie użytkownik/hasło poprzez bezpieczny protokół SSH szyfrowany kluczami

klienta i serwera,

b) autoryzacja na podstawie praw dostępu.

Administracja na poziomie systemu poprzez terminal znakowy (konsolę) systemu Linux.

12.1.6 Usługi i oprogramowanie dodatkowe

Dodatkowo do serwera bazodanowego postgres zainstalowanie modułów contrib (pakiet postgresql-contrib-9.1) m.in. :

a) plpgsql

b) pgcrypto

12.1.7 Serwer Postgresql tryb master

Zainstalowano i skonfigurowano bazę danych postgresql. Konfiguracja węzła master umożliwia wykonanie tzw. streaming replication pomiędzy maszynami i utrzymanie spójnej lustrzanej wersji na maszynie podrzędnej. Mechanizm działa w oparciu o uwierzytelnianie i wykorzystanie użytkownika bazodanowego o specjalnym modelu uprawnień. Serwer pracuje w trybie hot_standby i realizuje zapytania w trybie do odczytu i do zapisu. Baza danych została zainstalowana w katalogu domowym użytkownika postgres: /home/postgres

12.1.8 Serwer postgresql tryb slave

Podłączenie i replikacja danych pomiędzy węzłem master i slave odbywa się w trybie streaming replication. Serwer pracuje w trybie hot_standby i umożliwia wykonywanie zapytań w trybie read only (replikacja jednokierunkowa)

Page 74: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

74

12.1.9 Serwer baz danych procedura przełączania

W przypadku konieczności przełączenia serwerów aplikacji na serwer zapasowy należy dokonać następujących czynności.

a) Upewnić się że serwer master nie odpowiada i nie funkcjonuje, b) Zrekonfigurować serwer slave do stanu w którym nie będzie przeprowadzał replikacji

(usunięcie pliku recovery.conf), c) Uruchomić serwer slave który po restarcie zgłosi się do pracy w trybie read/write, a nie tylko

read only jak to miało miejsce w przypadku serwera slave. d) Przełączyć serwery aplikacji na komunikację z nowym serwerem, ewentualnie przeadresować

serwery tak, aby slave był dostępny pod starym adresem mastera.

12.1.10 Serwer baz danych procedura dołączenia serwera slave

W przypadku braku serwera slave (na skutek awarii lub przełączenia jego roli) należy skonfigurować kolejny serwer wg instrukcji instalacji. Następnie wykonać pg_basebackup, który stworzy podstawową kopię i strukturę bazy danych slave. Skuteczne ruchomienie usługi w trybie slave streaming replication spowoduje pojawienie się komunikatu o osiągnięciu spójnego stanu synchronizacji z serwerem master. Procedura nie wymaga restartowania serwera master.

12.1.11 Wykaz produktów

Serwer bazodanowy zbudowany jest w oparciu o następujące komponenty programowe będące produktami obcymi:

a) System operacyjny (Debian), b) Oprogramowanie usług (Postgresql)

oraz w oparciu o komponeny programowe własne stworzone na potrzeby projektu: a) Struktura bazy danych.

Page 75: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

75

13 Procedury backupu, odtwarzania, migracji, pielęgnacji bazy danych

13.1 Proces Proces archwizacji i dostępu do danych archiwalnych powinien być opisanych w wewnętrznych dokumentach organizacji użytkującej system. Dostawca zaleca, aby proces ten był opisany, czasowo weryfikowany oraz aby dostęp do archwium był zawężony do jak najmniejszej liczby zaufanych osób, aby zapewnić poufności tych informacji ale wystarczającej dużej grupy aby zapewnić ciągłość działania organizacji.

13.2 Serwer aplikacji – backup W celu zabezpieczenia kopii danych znajdujących się na serwerze aplikacyjnym należy zarchiwizować następujące katalogi systemu plików: /home/pfron oraz wszystkie pliki konfiguracyjne wymienione w instrukcji instalacji i wymagające zmian względem domyślnych ustawień. W szczególności pliki i katalogi: /etc/apache2 /etc/php5

13.3 Serwer aplikacji – odtwarzanie W celu odtworzenia serwera aplikacji należy zainstalować wymagane oprogramowanie (opis w Instrukcji instalacji). Skonfigurować wszystkie usługi świadczone przez system operacyjny i usługi serwerowe. Następnie należy rozpakować archiwum katalogów aplikacji pfron wykonane wg procedury backup’u oraz dokonfigurować ustawienia typowe dla aplikacji front, cms oraz konsola.

13.4 Serwer baz danych – backup W celu zabezpieczenia kopii danych serwera bazodanowego zaleca się wykonanie pewłnego zrzutu bazy komendą pg_dump w postaci tekstowej SQL. Dump bazy w postaci binarnej nie gwarantuje możliwości jego odzyskania przy zmianie wersji silnika oprogramowania bazo-danowego.

13.5 Serwer baz danych – odtwarzanie W celu odtworzenia serwera baz danych należy przeprowadzić jego instalacje i konfiguracje wg instrukcji instalacji wybierając odpowiednią rolę dla serwera. Serwer w trybie slave nie wymaga odzyskiwania danych zapisanych w dump’ie w kroku backup. Odzyskiwanie bazy wymagane jest jedynie w przypadku konieczności odtworzenia funkcjonalności serwera bazodanowego pracującego jako master.

13.6 Migracja baz danych

Page 76: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

76

W przypadku konieczności migracji bazy danych na inną maszynę należy skorzystać z narzędzi do tworzenia i odzyskiwania kopi zapasowej. pg_dump epfron2 –f epfron_db.dump pg_dump cms –f cms.dump

odtwarzanie kopi na drugim serwerze wiąże się z wykonaniem komend: psql -d epfron2 -f epfron2.dump psql -d cms -f cms.dump

W zależności od dostępnego miejsca na dysku należy posłużyć się opcjonalnymi parametrami narzędzi opisanymi w dokumentacji bazy PostgreSQL dającymi możliwość zastosowania kompresji, format binarnego itd. Zaleca się stosowanie braku kompresji i formatu SQL, ze względu na możliwość ręcznej edycji danych w razie konieczności np. zmiany nazw baz danych, opisu uprawnień itd.

13.7 Typowe działania utrzymania bazy danych Baza danych w opisanej podczas instalacji konfiguracji nie wymaga stosowania żadnych okresowych procedur czyszczenia, reindeksacji itp. Włączony mechanizm autovacuum powoduje wykonywanie tych czynności automatycznie gdy baza nie jest obciążona. W przypadku zaobserwowania nieadekwatnego do ilości rekordów wzrostu zużycia miejsca na dysku i/lub powolnego dostępu do danych można wymusić reindeksacje pojedynczych index’ów i/lub czyszczenie, optymalizację przechowywanych danych. Pomocne komendy SQL to: REINDEX table_name; REINDEX index_name; VACUUM FULL;

W przypadku konieczności zastosowania mechanizmów partycjonowania danych, rozproszenia itd. należy wykorzystać procedury zawarte w dokumentacji bazy PostgreSQL. Nie przewiduje się zaistnienia takiej konieczności uwzględniając oczekiwany przyrost danych i wydajność systemu.

Page 77: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

77

14 Funkcje synchronizacji danych z systemem Back-end.

14.1 Serwisy integracyjne System realizuje następujące serwisy integracyjne e-PFRON2 – NEO uzgodnione z PFRON i dostawcą

systemu NEO:

1. Przekazywanie danych Deklaracji (w tym DEK-Z i INF-Z) zapisanych do Systemu w formie

elektronicznej – przekazanie danych z Systemu do systemu Back-end.

2. Przekazywanie danych dotyczących statusów dokumentów - przekazanie danych z systemu

Back-end do Systemu – w wyniku działania serwisu informacje dotyczące statusu dokumentów

w e-PFRON2 zostaną zaktualizowane w oparciu o ich statusy w NEO. W e-PFRON2 nie ma

możliwości ręcznej zmiany statusu.

3. Przekazywanie danych dotyczące sald rocznych – przekazanie danych z systemu Back-end do

Systemu. Zwrotnie podpisane saldo wystawiane jest dla Back-endu, tak samo jako Deklaracja

(patrz pkt.1)

4. Przekazywanie raportów dla Pracodawcy - Raporty z Dokumentów oraz Raport z dokonanych

wpłat przekazanie danych z systemu Back-end do Systemu.

5. Przekazywanie Numerów w Rejestrze PFRON nadanych w systemie Back-end oraz aktualizacji

danych ewidencyjnych Pracodawcy wprowadzanych do systemu Back-end - przekazanie

danych z systemu Back-end do Systemu.

6. Aktualizacja danych o przeciętnym wynagrodzeniu na podstawie NEO - serwis umożliwia

przekazanie danych dotyczących przeciętnego wynagrodzenia wraz z datą, od kiedy

obowiązuje z systemu Back-end do e-PFRON2.

7. Uruchamianie pomp na żądanie – wystawienie flagi żądania uruchomienia pomp w danym

momencie.

Wszystkie parametry uruchamiania pomp, w szczególności ich harmonogramy są wywoływane z

poziomu API systemu Back-end.

Page 78: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

78

System jest wyposażony (w zakresie wymiany danych) w mechanizmy kontroli zapisu danych

reprezentowanych również jako znaczniki umieszczone w bazie danych. Architektura bazy danych w

jest opisana w rozdziale Struktura bazy danych – opis tabel.

Page 79: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

79

Poniżej znajduje się specyfikacja WSDL Webserviceów, na podstawie której został wykonany produkt API:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>

<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"

xmlns:tns="http://www.asseco.pl/ePFRON/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"

xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="ePFRON"

targetNamespace="http://www.asseco.pl/ePFRON/">

<wsdl:types>

<xsd:schema targetNamespace="http://www.asseco.pl/ePFRON/">

<xsd:element name="Doc2PFRON">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="serNo" type="xsd:int" minOccurs="1"

maxOccurs="1">

<xsd:annotation>

<xsd:documentation>unikalny numer seryjny komunikatu - wspolny

dla pytania i odpowiedzi

</xsd:documentation>

</xsd:annotation>

</xsd:element>

<xsd:element name="docRefNo" type="xsd:string"

minOccurs="0" maxOccurs="1">

<xsd:annotation>

<xsd:documentation>unikalny numer referencyjny dokumentu

</xsd:documentation>

</xsd:annotation>

</xsd:element>

<xsd:element name="nrTeczki" minOccurs="0" maxOccurs="1">

<xsd:annotation>

<xsd:documentation>szablon numeru teczki od 2 do 10 znakow w

formacie SQL like (np. 19K%, 19K0018A2%)

</xsd:documentation>

</xsd:annotation>

<xsd:simpleType>

<xsd:restriction base="xsd:string">

<xsd:minLength value="2"></xsd:minLength>

Page 80: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

80

<xsd:maxLength value="10"></xsd:maxLength>

</xsd:restriction>

</xsd:simpleType>

</xsd:element>

<xsd:element name="docRcpDate1" type="xsd:date"

minOccurs="0">

<xsd:annotation>

<xsd:documentation>data zlozenia dokumentu - od

</xsd:documentation>

</xsd:annotation>

</xsd:element>

<xsd:element name="docRcpDate2" type="xsd:date"

minOccurs="0" maxOccurs="1">

<xsd:annotation>

<xsd:documentation>data zlozenia dokumentu do

</xsd:documentation>

</xsd:annotation>

</xsd:element>

<xsd:element name="docAccPrd1" type="xsd:date"

minOccurs="0" maxOccurs="1">

<xsd:annotation>

<xsd:documentation>okres rozliczniowy dokumentu od - format

YYYY-MM-DD przy czym dzien jest pomijany przy analizie

</xsd:documentation>

</xsd:annotation>

</xsd:element>

<xsd:element name="docAccPrd2" type="xsd:date"

minOccurs="0" maxOccurs="1">

<xsd:annotation>

<xsd:documentation>okres rozliczniowy dokumentu do - format

YYYY-MM-DD przy czym dzien jest pomijany przy analizie

</xsd:documentation>

</xsd:annotation>

</xsd:element>

<xsd:element name="docType" minOccurs="0" maxOccurs="1">

<xsd:annotation>

<xsd:documentation>typ dokumentu

</xsd:documentation>

Page 81: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

81

</xsd:annotation>

<xsd:simpleType>

<xsd:restriction base="xsd:string">

<xsd:enumeration value="DEK I-0-03"></xsd:enumeration>

<xsd:enumeration value="DEK I-A-03"></xsd:enumeration>

<xsd:enumeration value="DEK I-B-03"></xsd:enumeration>

<xsd:enumeration value="DEK II-03"></xsd:enumeration>

<xsd:enumeration value="DEK II-A-03"></xsd:enumeration>

<xsd:enumeration value="DEK R-03"></xsd:enumeration>

<xsd:enumeration value="DEK W-03"></xsd:enumeration>

<xsd:enumeration value="DEK Z-03"></xsd:enumeration>

<xsd:enumeration value="INF 1-03"></xsd:enumeration>

<xsd:enumeration value="INF 1-Z-03"></xsd:enumeration>

<xsd:enumeration value="INF 2-03"></xsd:enumeration>

<xsd:enumeration value="SALDO"></xsd:enumeration>

<xsd:enumeration value="DEK-I-0 11"></xsd:enumeration>

<xsd:enumeration value="DEK-I-A 11"></xsd:enumeration>

<xsd:enumeration value="DEK-I-B 11"></xsd:enumeration>

<xsd:enumeration value="DEK-II-A 11"></xsd:enumeration>

<xsd:enumeration value="DEK-II-B 11"></xsd:enumeration>

<xsd:enumeration value="DEK-R 11"></xsd:enumeration>

<xsd:enumeration value="DEK-W 11"></xsd:enumeration>

<xsd:enumeration value="DEK-Z 11"></xsd:enumeration>

<xsd:enumeration value="INF-1 11"></xsd:enumeration>

<xsd:enumeration value="INF-Z 11"></xsd:enumeration>

<xsd:enumeration value="INF-2 11"></xsd:enumeration>

<xsd:enumeration value="DEK-I-0 13"></xsd:enumeration>

<xsd:enumeration value="DEK-I-A 13"></xsd:enumeration>

<xsd:enumeration value="DEK-I-B 13"></xsd:enumeration>

<xsd:enumeration value="DEK-II-A 13"></xsd:enumeration>

<xsd:enumeration value="DEK-II-B 13"></xsd:enumeration>

<xsd:enumeration value="DEK-R 13"></xsd:enumeration>

<xsd:enumeration value="DEK-W 13"></xsd:enumeration>

<xsd:enumeration value="DEK-Z 13"></xsd:enumeration>

<xsd:enumeration value="INF-1 13"></xsd:enumeration>

<xsd:enumeration value="INF-Z 13"></xsd:enumeration>

<xsd:enumeration value="INF-2 13"></xsd:enumeration>

Page 82: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

82

</xsd:restriction>

</xsd:simpleType>

</xsd:element>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="Doc2PFRONResponse">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="serNo" type="xsd:int" minOccurs="1"

maxOccurs="1">

<xsd:annotation>

<xsd:documentation>

numer seryjny komunikatu (identyczny jak

zapytania)

</xsd:documentation>

</xsd:annotation>

</xsd:element>

<xsd:element name="noOfDocs" type="xsd:int" minOccurs="1"

maxOccurs="1">

<xsd:annotation>

<xsd:documentation>

Ilosc dokumentow w paczce

</xsd:documentation>

</xsd:annotation>

</xsd:element>

<xsd:element name="docList" type="tns:DocumentList"

minOccurs="1" maxOccurs="1"></xsd:element>

<xsd:element name="errCode" type="xsd:int" minOccurs="1"

maxOccurs="1">

</xsd:element>

<xsd:element name="errDescr" type="xsd:string"

minOccurs="0" maxOccurs="1">

</xsd:element>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

Page 83: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

83

<xsd:complexType name="PFRONDoc">

<xsd:sequence>

<xsd:element name="docRefNo" type="xsd:string" maxOccurs="1" minOccurs="1">

<xsd:annotation>

<xsd:documentation>Numer referencyjny dokumentu.</xsd:documentation>

</xsd:annotation>

</xsd:element>

<xsd:element name="docBody" type="xsd:string"

minOccurs="1" maxOccurs="1">

<xsd:annotation>

<xsd:documentation>

wlasciwa tresc dokumentu zgodnie z

definicja dokumentu zakodowana base64

</xsd:documentation>

</xsd:annotation>

</xsd:element>

<xsd:element name="docRcpDate" type="xsd:dateTime"

maxOccurs="1" minOccurs="1">

<xsd:annotation>

<xsd:documentation>Data i godzina przyjecia dokumentu przez system e-PFRON</xsd:documentation>

</xsd:annotation>

</xsd:element>

<xsd:element name="docAccPrd" type="xsd:date" maxOccurs="1" minOccurs="1">

<xsd:annotation>

<xsd:documentation>Okres rozliczeniowy ktorego dotyczy dokument : data w formacie YYYY-

MM</xsd:documentation>

</xsd:annotation>

</xsd:element>

<xsd:element name="docMainRefNo" type="xsd:string" maxOccurs="1" minOccurs="0">

<xsd:annotation>

<xsd:documentation>Numer referencyjny dokumentu glownego.</xsd:documentation>

</xsd:annotation>

</xsd:element>

</xsd:sequence>

</xsd:complexType>

<xsd:complexType name="DocumentList">

<xsd:sequence>

Page 84: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

84

<xsd:element name="document" type="tns:PFRONDoc"

minOccurs="0" maxOccurs="100000"></xsd:element>

</xsd:sequence>

</xsd:complexType>

<xsd:element name="Doc2EPFRON">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="serNo" type="xsd:int" minOccurs="1"

maxOccurs="1">

<xsd:annotation>

<xsd:documentation>

numer seryjny komunikatu -

identyczny dla pytania i odpowiedzi

</xsd:documentation>

</xsd:annotation>

</xsd:element>

<xsd:element name="noOfDocs" type="xsd:int" minOccurs="1"

maxOccurs="1">

</xsd:element>

<xsd:element name="docStatList" type="tns:DocStatListType"

minOccurs="1" maxOccurs="1">

</xsd:element>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="Doc2EPFRONResponse">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="serNo" type="xsd:int" minOccurs="1"

maxOccurs="1">

</xsd:element>

<xsd:element name="noOfRes" type="xsd:int" minOccurs="1"

maxOccurs="1">

</xsd:element>

<xsd:element name="resList" type="tns:ResListType"

minOccurs="1" maxOccurs="1">

Page 85: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

85

</xsd:element>

<xsd:element name="errCode" type="xsd:int" minOccurs="1"

maxOccurs="1">

</xsd:element>

<xsd:element name="errDescr" type="xsd:string"

minOccurs="0" maxOccurs="1">

</xsd:element>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:complexType name="DocStatListType">

<xsd:sequence>

<xsd:element name="docStat" type="tns:DocStatType"

minOccurs="1" maxOccurs="100000">

<xsd:annotation>

<xsd:documentation>obiekt statusu</xsd:documentation>

</xsd:annotation>

</xsd:element>

</xsd:sequence>

</xsd:complexType>

<xsd:complexType name="DocStatType">

<xsd:sequence>

<xsd:element name="docRefNo" type="xsd:string"

minOccurs="1" maxOccurs="1">

<xsd:annotation>

<xsd:documentation>

numer referencyjny dokumentu

</xsd:documentation>

</xsd:annotation>

</xsd:element>

<xsd:element name="statValue" minOccurs="1" maxOccurs="1">

<xsd:simpleType>

<xsd:restriction base="xsd:string">

<xsd:enumeration value="AKCEPT"></xsd:enumeration>

Page 86: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

86

<xsd:enumeration value="ODRZUC"></xsd:enumeration>

<xsd:enumeration value="SPR"></xsd:enumeration>

</xsd:restriction>

</xsd:simpleType>

</xsd:element>

<xsd:element name="statTime" type="xsd:dateTime"

minOccurs="1" maxOccurs="1">

<xsd:annotation>

<xsd:documentation>czas zmiany statusu</xsd:documentation>

</xsd:annotation>

</xsd:element>

<xsd:element name="statDescr" minOccurs="1" maxOccurs="1">

<xsd:annotation>

<xsd:documentation>

opis statusu

</xsd:documentation>

</xsd:annotation>

<xsd:simpleType>

<xsd:restriction base="xsd:string">

<xsd:minLength value="2"></xsd:minLength>

<xsd:maxLength value="256"></xsd:maxLength>

</xsd:restriction>

</xsd:simpleType>

</xsd:element>

</xsd:sequence>

</xsd:complexType>

<xsd:complexType name="ResListType">

<xsd:sequence>

<xsd:element name="docRes" type="tns:ResType"

minOccurs="1" maxOccurs="100000">

</xsd:element>

</xsd:sequence>

</xsd:complexType>

<xsd:element name="Rpt2EPFRON">

<xsd:complexType>

<xsd:sequence>

Page 87: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

87

<xsd:element name="serNo" type="xsd:int" minOccurs="1"

maxOccurs="1">

<xsd:annotation>

<xsd:documentation>

numer seryjny komunikatu (identyczny

dla pytania i odpowiedzi)

</xsd:documentation>

</xsd:annotation>

</xsd:element>

<xsd:element name="noOfReps" type="xsd:int" minOccurs="1"

maxOccurs="1">

<xsd:annotation>

<xsd:documentation>

ilosc raportow w liscie

</xsd:documentation>

</xsd:annotation>

</xsd:element>

<xsd:element name="repsList" type="tns:RepsListType"

minOccurs="1" maxOccurs="1">

</xsd:element>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="Rpt2EPFRONResponse">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="serNo" type="xsd:int" minOccurs="1"

maxOccurs="1">

<xsd:annotation>

<xsd:documentation>

numer seryjny komunikatu (identyczny

dla pytania i odpowiedzi)

</xsd:documentation>

</xsd:annotation>

</xsd:element>

<xsd:element name="errCode" type="xsd:int" minOccurs="1"

maxOccurs="1">

Page 88: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

88

</xsd:element>

<xsd:element name="erDescr" type="xsd:string"

minOccurs="0" maxOccurs="1">

</xsd:element>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:complexType name="RepsListType">

<xsd:sequence>

<xsd:element name="report" type="tns:ReportType"

minOccurs="1" maxOccurs="100000"></xsd:element>

</xsd:sequence>

</xsd:complexType>

<xsd:element name="Pdm2EPFRON">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="serNo" type="xsd:int" minOccurs="1"

maxOccurs="1">

<xsd:annotation>

<xsd:documentation>

numer seryjny komunikatu (identyczny

dla pytania i odpowiedzi)

</xsd:documentation>

</xsd:annotation>

</xsd:element>

<xsd:element name="noOfPodm" type="xsd:int" minOccurs="1"

maxOccurs="1">

</xsd:element>

<xsd:element name="podmList" type="tns:PodmListType"

minOccurs="1" maxOccurs="1">

</xsd:element>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="Pdm2EPFRONResponse">

<xsd:complexType>

Page 89: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

89

<xsd:sequence>

<xsd:element name="serNo" type="xsd:int" minOccurs="1"

maxOccurs="1">

<xsd:annotation>

<xsd:documentation>

numer seryjny komunikatu (identyczny

dla pytania i odpowiedzi)

</xsd:documentation>

</xsd:annotation>

</xsd:element>

<xsd:element name="noOfPodmStat" type="xsd:int">

</xsd:element>

<xsd:element name="listOfPodmStats" type="tns:ListOfPodmStatsType">

</xsd:element>

<xsd:element name="errCode" type="xsd:int" minOccurs="1"

maxOccurs="1">

</xsd:element>

<xsd:element name="errDescr" type="xsd:string"

minOccurs="0" maxOccurs="1">

</xsd:element>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:complexType name="PodmListType">

<xsd:sequence>

<xsd:element name="podm" type="tns:PodmType" minOccurs="1"

maxOccurs="100000"></xsd:element>

</xsd:sequence>

</xsd:complexType>

<xsd:complexType name="PodmType">

<xsd:sequence>

<xsd:element name="nrTeczki" minOccurs="1" maxOccurs="1"

type="tns:NrTeczkiType">

</xsd:element>

<xsd:element name="status" minOccurs="1"

Page 90: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

90

maxOccurs="1">

<xsd:simpleType>

<xsd:restriction base="xsd:string">

<xsd:minLength value="1"></xsd:minLength>

<xsd:maxLength value="150"></xsd:maxLength>

</xsd:restriction>

</xsd:simpleType>

</xsd:element>

<xsd:element name="wojewodztwo" minOccurs="1"

maxOccurs="1">

<xsd:simpleType>

<xsd:restriction base="xsd:string">

<xsd:length value="2"></xsd:length>

<xsd:enumeration value="02"></xsd:enumeration>

<xsd:enumeration value="04"></xsd:enumeration>

<xsd:enumeration value="06"></xsd:enumeration>

<xsd:enumeration value="08"></xsd:enumeration>

<xsd:enumeration value="10"></xsd:enumeration>

<xsd:enumeration value="12"></xsd:enumeration>

<xsd:enumeration value="14"></xsd:enumeration>

<xsd:enumeration value="16"></xsd:enumeration>

<xsd:enumeration value="18"></xsd:enumeration>

<xsd:enumeration value="20"></xsd:enumeration>

<xsd:enumeration value="22"></xsd:enumeration>

<xsd:enumeration value="24"></xsd:enumeration>

<xsd:enumeration value="26"></xsd:enumeration>

<xsd:enumeration value="28"></xsd:enumeration>

<xsd:enumeration value="30"></xsd:enumeration>

<xsd:enumeration value="32"></xsd:enumeration>

</xsd:restriction>

</xsd:simpleType>

</xsd:element>

<xsd:element name="nazwa" minOccurs="1"

maxOccurs="1">

<xsd:simpleType>

<xsd:restriction base="xsd:string">

Page 91: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

91

<xsd:minLength value="1"></xsd:minLength>

<xsd:maxLength value="255"></xsd:maxLength>

</xsd:restriction>

</xsd:simpleType>

</xsd:element>

<xsd:element name="typ" minOccurs="1"

maxOccurs="1">

<xsd:simpleType>

<xsd:restriction base="xsd:string">

<xsd:minLength value="1"></xsd:minLength>

<xsd:maxLength value="150"></xsd:maxLength>

</xsd:restriction>

</xsd:simpleType>

</xsd:element>

<xsd:element name="regon" minOccurs="1"

maxOccurs="1">

<xsd:simpleType>

<xsd:restriction base="xsd:string">

<xsd:minLength value="9"></xsd:minLength>

<xsd:maxLength value="15"></xsd:maxLength>

</xsd:restriction>

</xsd:simpleType>

</xsd:element>

<xsd:element name="adres" minOccurs="1"

maxOccurs="1">

<xsd:simpleType>

<xsd:restriction base="xsd:string">

<xsd:minLength value="0"></xsd:minLength>

<xsd:maxLength value="150"></xsd:maxLength>

</xsd:restriction>

</xsd:simpleType>

</xsd:element>

<xsd:element name="miasto" minOccurs="1"

maxOccurs="1">

<xsd:simpleType>

<xsd:restriction base="xsd:string">

<xsd:minLength value="0"></xsd:minLength>

Page 92: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

92

<xsd:maxLength value="150"></xsd:maxLength>

</xsd:restriction>

</xsd:simpleType>

</xsd:element>

<xsd:element name="kod_p" minOccurs="0"

maxOccurs="1">

<xsd:simpleType>

<xsd:restriction base="xsd:string">

<xsd:length value="6"></xsd:length>

</xsd:restriction>

</xsd:simpleType>

</xsd:element>

<xsd:element name="dom" minOccurs="1"

maxOccurs="1">

<xsd:simpleType>

<xsd:restriction base="xsd:string">

<xsd:minLength value="0"></xsd:minLength>

<xsd:maxLength value="50"></xsd:maxLength>

</xsd:restriction>

</xsd:simpleType>

</xsd:element>

<xsd:element name="lokal" minOccurs="1"

maxOccurs="1">

<xsd:simpleType>

<xsd:restriction base="xsd:string">

<xsd:minLength value="0"></xsd:minLength>

<xsd:maxLength value="50"></xsd:maxLength>

</xsd:restriction>

</xsd:simpleType>

</xsd:element>

<xsd:element name="nazwa_k" minOccurs="1"

maxOccurs="1">

<xsd:simpleType>

<xsd:restriction base="xsd:string">

<xsd:minLength value="0"></xsd:minLength>

<xsd:maxLength value="255"></xsd:maxLength>

</xsd:restriction>

Page 93: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

93

</xsd:simpleType>

</xsd:element>

<xsd:element name="miasto_k" minOccurs="1"

maxOccurs="1">

<xsd:simpleType>

<xsd:restriction base="xsd:string">

<xsd:minLength value="0"></xsd:minLength>

<xsd:maxLength value="150"></xsd:maxLength>

</xsd:restriction>

</xsd:simpleType>

</xsd:element>

<xsd:element name="kod_p_k" minOccurs="0"

maxOccurs="1">

<xsd:simpleType>

<xsd:restriction base="xsd:string">

<xsd:length value="6"></xsd:length>

</xsd:restriction>

</xsd:simpleType>

</xsd:element>

<xsd:element name="dom_k" minOccurs="1"

maxOccurs="1">

<xsd:simpleType>

<xsd:restriction base="xsd:string">

<xsd:minLength value="0"></xsd:minLength>

<xsd:maxLength value="50"></xsd:maxLength>

</xsd:restriction>

</xsd:simpleType>

</xsd:element>

<xsd:element name="adres_k" minOccurs="1"

maxOccurs="1">

<xsd:simpleType>

<xsd:restriction base="xsd:string">

<xsd:minLength value="0"></xsd:minLength>

<xsd:maxLength value="150"></xsd:maxLength>

</xsd:restriction>

</xsd:simpleType>

</xsd:element>

Page 94: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

94

<xsd:element name="lokal_k" minOccurs="1"

maxOccurs="1">

<xsd:simpleType>

<xsd:restriction base="xsd:string">

<xsd:minLength value="0"></xsd:minLength>

<xsd:maxLength value="50"></xsd:maxLength>

</xsd:restriction>

</xsd:simpleType>

</xsd:element>

<xsd:element name="nip" minOccurs="0"

maxOccurs="1">

<xsd:simpleType>

<xsd:restriction base="xsd:string">

<xsd:length value="10"></xsd:length>

</xsd:restriction>

</xsd:simpleType>

</xsd:element>

<xsd:element name="kontakt" minOccurs="1"

maxOccurs="1">

<xsd:simpleType>

<xsd:restriction base="xsd:string">

<xsd:minLength value="0"></xsd:minLength>

<xsd:maxLength value="255"></xsd:maxLength>

</xsd:restriction>

</xsd:simpleType>

</xsd:element>

<xsd:element name="osoba" minOccurs="1"

maxOccurs="1">

<xsd:simpleType>

<xsd:restriction base="xsd:string">

<xsd:minLength value="0"></xsd:minLength>

<xsd:maxLength value="150"></xsd:maxLength>

</xsd:restriction>

</xsd:simpleType>

</xsd:element>

<xsd:element name="email" minOccurs="1"

maxOccurs="1">

<xsd:simpleType>

Page 95: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

95

<xsd:restriction base="xsd:string">

<xsd:minLength value="0"></xsd:minLength>

<xsd:maxLength value="255"></xsd:maxLength>

</xsd:restriction>

</xsd:simpleType>

</xsd:element>

<xsd:element name="poczta" minOccurs="1"

maxOccurs="1">

<xsd:simpleType>

<xsd:restriction base="xsd:string">

<xsd:minLength value="0"></xsd:minLength>

<xsd:maxLength value="150"></xsd:maxLength>

</xsd:restriction>

</xsd:simpleType>

</xsd:element>

<xsd:element name="poczta_k" minOccurs="1"

maxOccurs="1">

<xsd:simpleType>

<xsd:restriction base="xsd:string">

<xsd:minLength value="0"></xsd:minLength>

<xsd:maxLength value="150"></xsd:maxLength>

</xsd:restriction>

</xsd:simpleType>

</xsd:element>

</xsd:sequence>

</xsd:complexType>

<xsd:complexType name="ListOfPodmStatsType">

<xsd:sequence>

<xsd:element name="podmStat" type="tns:PodmStatType"

minOccurs="1" maxOccurs="100000"></xsd:element>

</xsd:sequence>

</xsd:complexType>

<xsd:element name="Sk2EPFRON">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="serNo" type="xsd:int" minOccurs="1"

Page 96: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

96

maxOccurs="1">

<xsd:annotation>

<xsd:documentation>

numer seryjny komunikatu (identyczny

dla pytania i odpowiedzi)

</xsd:documentation>

</xsd:annotation>

</xsd:element>

<xsd:element name="noOfSks" type="xsd:int" minOccurs="1"

maxOccurs="1">

</xsd:element>

<xsd:element name="skList" type="tns:SkListType"

minOccurs="1" maxOccurs="1">

</xsd:element>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="Sk2EPFRONResponse">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="serNo" type="xsd:int" minOccurs="1"

maxOccurs="1">

<xsd:annotation>

<xsd:documentation>

numer seryjny komunikatu (identyczny

dla pytania i odpowiedzi)

</xsd:documentation>

</xsd:annotation>

</xsd:element>

<xsd:element name="errCode" type="xsd:int" minOccurs="1"

maxOccurs="1">

</xsd:element>

<xsd:element name="errDescr" type="xsd:string"

minOccurs="0" maxOccurs="1">

</xsd:element>

</xsd:sequence>

</xsd:complexType>

Page 97: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

97

</xsd:element>

<xsd:complexType name="SkListType">

<xsd:sequence>

<xsd:element name="sk" type="tns:skType" minOccurs="1"

maxOccurs="1000"></xsd:element>

</xsd:sequence>

</xsd:complexType>

<xsd:complexType name="skType">

<xsd:sequence>

<xsd:element name="skValue" type="xsd:double"

minOccurs="1" maxOccurs="1">

</xsd:element>

<xsd:element name="skaDate" type="xsd:date" minOccurs="1"

maxOccurs="1"></xsd:element>

</xsd:sequence>

</xsd:complexType>

<xsd:element name="Salda2EPFRON">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="serNo" type="xsd:int" minOccurs="1"

maxOccurs="1">

<xsd:annotation>

<xsd:documentation>

numer seryjny komunikatu (identyczny

dla pytania i odpowiedzi)

</xsd:documentation>

</xsd:annotation>

</xsd:element>

<xsd:element name="noOfSalds" type="xsd:int"

minOccurs="1" maxOccurs="1">

<xsd:annotation>

<xsd:documentation>

ilosc pozycji na liscie sald

</xsd:documentation>

</xsd:annotation>

Page 98: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

98

</xsd:element>

<xsd:element name="saldaList" type="tns:SaldaListType">

</xsd:element>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="Salda2EPFRONResponse">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="serNo" type="xsd:int" minOccurs="1"

maxOccurs="1">

<xsd:annotation>

<xsd:documentation>

numer seryjny komunikatu (identyczny

dla pytania i odpowiedzi)

</xsd:documentation>

</xsd:annotation>

</xsd:element>

<xsd:element name="noOfSalStats" type="xsd:int"

minOccurs="1" maxOccurs="1">

</xsd:element>

<xsd:element name="salStatsList" type="tns:SalStatsListType"

minOccurs="1" maxOccurs="1">

</xsd:element>

<xsd:element name="errCode" type="xsd:int" minOccurs="1"

maxOccurs="1">

</xsd:element>

<xsd:element name="errDescr" type="xsd:string"

minOccurs="0" maxOccurs="1">

</xsd:element>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:complexType name="SaldaListType">

<xsd:sequence>

<xsd:element name="saldo" minOccurs="1" maxOccurs="100000"

Page 99: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

99

type="tns:SaldoType">

</xsd:element>

</xsd:sequence>

</xsd:complexType>

<xsd:complexType name="SaldoType">

<xsd:sequence>

<xsd:element name="nrTeczki" minOccurs="1" maxOccurs="1">

<xsd:simpleType>

<xsd:restriction base="xsd:string">

<xsd:length value="9"></xsd:length>

</xsd:restriction>

</xsd:simpleType>

</xsd:element>

<xsd:element name="saldoDate" type="xsd:date"

minOccurs="1" maxOccurs="1">

</xsd:element>

<xsd:element name="saldoGenDate" type="xsd:dateTime"

minOccurs="1" maxOccurs="1">

</xsd:element>

<xsd:element name="saldoBody" type="xsd:string"

minOccurs="1" maxOccurs="1">

<xsd:annotation>

<xsd:documentation>

CDATA - HTML tresc dokumentu salda

</xsd:documentation>

</xsd:annotation>

</xsd:element>

<xsd:element name="saldoSpec" type="xsd:string"

minOccurs="0" maxOccurs="1">

<xsd:annotation>

<xsd:documentation>CDATA - HTL dokument specyfikacji salda

</xsd:documentation>

</xsd:annotation>

</xsd:element>

<xsd:element name="saldoNrDoc" minOccurs="1" maxOccurs="1">

<xsd:simpleType>

<xsd:restriction base="xsd:string">

Page 100: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

100

<xsd:minLength value="1"></xsd:minLength>

<xsd:maxLength value="50"></xsd:maxLength>

</xsd:restriction>

</xsd:simpleType>

</xsd:element>

</xsd:sequence>

</xsd:complexType>

<xsd:complexType name="SalStatsListType">

<xsd:sequence>

<xsd:element name="salStat" type="tns:SalStatType"

minOccurs="1" maxOccurs="100000"></xsd:element>

</xsd:sequence>

</xsd:complexType>

<xsd:complexType name="SalStatType">

<xsd:sequence>

<xsd:element name="nrTeczki" minOccurs="1" maxOccurs="1"

type="tns:NrTeczkiType">

</xsd:element>

<xsd:element name="salDate" type="xsd:date" minOccurs="1"

maxOccurs="1"></xsd:element>

<xsd:element name="errCode" type="xsd:int" minOccurs="1"

maxOccurs="1"></xsd:element>

<xsd:element name="errDescr" type="xsd:string"

minOccurs="0" maxOccurs="1"></xsd:element>

<xsd:element name="saldoNrDok" type="xsd:int" minOccurs="1"

maxOccurs="1"></xsd:element>

</xsd:sequence>

</xsd:complexType>

<xsd:complexType name="ResType">

<xsd:sequence>

<xsd:element name="docRefNo" type="xsd:string"

minOccurs="1" maxOccurs="1">

</xsd:element>

<xsd:element name="errCode" type="xsd:int" minOccurs="1"

maxOccurs="1">

Page 101: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

101

</xsd:element>

<xsd:element name="errDescr" type="xsd:string"

minOccurs="0" maxOccurs="1"></xsd:element>

</xsd:sequence>

</xsd:complexType>

<xsd:complexType name="ReportType">

<xsd:sequence>

<xsd:element name="nrTeczki" minOccurs="1" maxOccurs="1"

type="tns:NrTeczkiType">

</xsd:element>

<xsd:element name="repType" minOccurs="1" maxOccurs="1">

<xsd:simpleType>

<xsd:restriction base="xsd:string">

<xsd:enumeration value="RWPLAT"></xsd:enumeration>

<xsd:enumeration value="RDEK"></xsd:enumeration>

</xsd:restriction>

</xsd:simpleType>

</xsd:element>

<xsd:element name="repDate" type="xsd:date" minOccurs="1"

maxOccurs="1">

</xsd:element>

<xsd:element name="repBody" type="xsd:string"

minOccurs="1" maxOccurs="1">

<xsd:annotation>

<xsd:documentation>CDATA - HTML tresc dokumentu raportu

</xsd:documentation>

</xsd:annotation>

</xsd:element>

</xsd:sequence>

</xsd:complexType>

<xsd:complexType name="PodmStatType">

<xsd:sequence>

<xsd:element name="nrTeczki" type="tns:NrTeczkiType"

minOccurs="1" maxOccurs="1">

</xsd:element>

Page 102: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

102

<xsd:element name="errCode" type="xsd:int" minOccurs="1"

maxOccurs="1"></xsd:element>

<xsd:element name="errDescr" type="xsd:string"

minOccurs="0" maxOccurs="1"></xsd:element>

</xsd:sequence>

</xsd:complexType>

<xsd:simpleType name="NrTeczkiType">

<xsd:restriction base="xsd:string">

<xsd:length value="9"></xsd:length>

</xsd:restriction>

</xsd:simpleType>

<xsd:complexType name="RepStatListType"></xsd:complexType>

</xsd:schema>

</wsdl:types>

<wsdl:message name="Doc2PFRONRequest">

<wsdl:part element="tns:Doc2PFRON" name="parameters" />

</wsdl:message>

<wsdl:message name="Doc2PFRONResponse">

<wsdl:part element="tns:Doc2PFRONResponse" name="parameters" />

</wsdl:message>

<wsdl:message name="Doc2EPFRONRequest">

<wsdl:part name="parameters" element="tns:Doc2EPFRON"></wsdl:part>

</wsdl:message>

<wsdl:message name="Doc2EPFRONResponse">

<wsdl:part name="parameters" element="tns:Doc2EPFRONResponse"></wsdl:part>

</wsdl:message>

<wsdl:message name="Rpt2EPFRONRequest">

<wsdl:part name="parameters" element="tns:Rpt2EPFRON"></wsdl:part>

</wsdl:message>

<wsdl:message name="Rpt2EPFRONResponse">

<wsdl:part name="parameters" element="tns:Rpt2EPFRONResponse"></wsdl:part>

</wsdl:message>

<wsdl:message name="Pdm2EPFRONRequest">

<wsdl:part name="parameters" element="tns:Pdm2EPFRON"></wsdl:part>

</wsdl:message>

Page 103: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

103

<wsdl:message name="Pdm2EPFRONResponse">

<wsdl:part name="parameters" element="tns:Pdm2EPFRONResponse"></wsdl:part>

</wsdl:message>

<wsdl:message name="Sk2EPFRONRequest">

<wsdl:part name="parameters" element="tns:Sk2EPFRON"></wsdl:part>

</wsdl:message>

<wsdl:message name="Sk2EPFRONResponse">

<wsdl:part name="parameters" element="tns:Sk2EPFRONResponse"></wsdl:part>

</wsdl:message>

<wsdl:message name="Salda2EPFRONRequest">

<wsdl:part name="parameters" element="tns:Salda2EPFRON"></wsdl:part>

</wsdl:message>

<wsdl:message name="Salda2EPFRONResponse">

<wsdl:part name="parameters" element="tns:Salda2EPFRONResponse"></wsdl:part>

</wsdl:message>

<wsdl:portType name="ePFRON">

<wsdl:operation name="Doc2PFRON">

<wsdl:input message="tns:Doc2PFRONRequest" />

<wsdl:output message="tns:Doc2PFRONResponse" />

</wsdl:operation>

<wsdl:operation name="Doc2EPFRON">

<wsdl:input message="tns:Doc2EPFRONRequest"></wsdl:input>

<wsdl:output message="tns:Doc2EPFRONResponse"></wsdl:output>

</wsdl:operation>

<wsdl:operation name="Rpt2EPFRON">

<wsdl:input message="tns:Rpt2EPFRONRequest"></wsdl:input>

<wsdl:output message="tns:Rpt2EPFRONResponse"></wsdl:output>

</wsdl:operation>

<wsdl:operation name="Pdm2EPFRON">

<wsdl:input message="tns:Pdm2EPFRONRequest"></wsdl:input>

<wsdl:output message="tns:Pdm2EPFRONResponse"></wsdl:output>

</wsdl:operation>

<wsdl:operation name="Sk2EPFRON">

<wsdl:input message="tns:Sk2EPFRONRequest"></wsdl:input>

<wsdl:output message="tns:Sk2EPFRONResponse"></wsdl:output>

</wsdl:operation>

<wsdl:operation name="Salda2EPFRON">

<wsdl:input message="tns:Salda2EPFRONRequest"></wsdl:input>

Page 104: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

104

<wsdl:output message="tns:Salda2EPFRONResponse"></wsdl:output>

</wsdl:operation>

</wsdl:portType>

<wsdl:binding name="ePFRONSOAP" type="tns:ePFRON">

<soap:binding style="document"

transport="http://schemas.xmlsoap.org/soap/http" />

<wsdl:operation name="Doc2PFRON">

<soap:operation soapAction="http://www.asseco.pl/ePFRON/Doc2PFRON" />

<wsdl:input>

<soap:body use="literal" />

</wsdl:input>

<wsdl:output>

<soap:body use="literal" />

</wsdl:output>

</wsdl:operation>

<wsdl:operation name="Doc2EPFRON">

<soap:operation soapAction="http://www.asseco.pl/ePFRON/Doc2EPFRON" />

<wsdl:input>

<soap:body use="literal" />

</wsdl:input>

<wsdl:output>

<soap:body use="literal" />

</wsdl:output>

</wsdl:operation>

<wsdl:operation name="Rpt2EPFRON">

<soap:operation soapAction="http://www.asseco.pl/ePFRON/Rpt2EPFRON" />

<wsdl:input>

<soap:body use="literal" />

</wsdl:input>

<wsdl:output>

<soap:body use="literal" />

</wsdl:output>

</wsdl:operation>

<wsdl:operation name="Pdm2EPFRON">

<soap:operation soapAction="http://www.asseco.pl/ePFRON/Pdm2EPFRON" />

<wsdl:input>

<soap:body use="literal" />

Page 105: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

105

</wsdl:input>

<wsdl:output>

<soap:body use="literal" />

</wsdl:output>

</wsdl:operation>

<wsdl:operation name="Sk2EPFRON">

<soap:operation soapAction="http://www.asseco.pl/ePFRON/Sk2EPFRON" />

<wsdl:input>

<soap:body use="literal" />

</wsdl:input>

<wsdl:output>

<soap:body use="literal" />

</wsdl:output>

</wsdl:operation>

<wsdl:operation name="Salda2EPFRON">

<soap:operation soapAction="http://www.asseco.pl/ePFRON/Salda2EPFRON" />

<wsdl:input>

<soap:body use="literal" />

</wsdl:input>

<wsdl:output>

<soap:body use="literal" />

</wsdl:output>

</wsdl:operation>

</wsdl:binding>

<wsdl:service name="ePFRON">

<wsdl:port binding="tns:ePFRONSOAP" name="ePFRONSOAP">

<soap:address location="{{ baseUrl }}" />

</wsdl:port>

</wsdl:service>

</wsdl:definitions>

Page 106: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

106

15 Mapowanie obiektów logicznych Systemu na kod źródłowy aplikacji

Poniżej podano model opisu obiektów logicznych Systemu. Model ten będzie również wykorzystywany do budowy dokumentacji powykonawczej opisującej wszystkie elementy logiczne Systemu i ich relacje i właściwości włącznie z elementami technicznymi i technologicznymi. Grupa Ról

Rola Cel roli Obiekt w Systemie

Obszar funkcyjny

Tryb dostępu

Grupa funkcyjna

Możliwa czynność

Lista czynności

Uwagi do wymagań szczególnych

Uwaga ogólna

Realizacja [Nazwa klasy -> Nazwa tabeli]

Pracodawca

Użytkownik Niezarejestrowany

Uzyskanie dostępu do Systemu i zarejestrowanie danych Pracodawcy i pierwszego Administratora

Administracja

Pracodawcy

Wprowadzanie danych

Zarządzanie danymi Pracodawcy

Rejestracja konta Pracodawcy - ograniczone do celu roli

System dowiązuje rolę Administratora do pierwszego rejestrowanego użytkownika dla Pracodawcy

Klasy: Passus\Bundle\PfronFrontBundle\Controller\Register\RegisterController Szablony: PfronFrontBundle:Register:register_accept.html.twig PfronFrontBundle:Register:register_fillform.html.twig PfronFrontBundle:Register:register_zap.html.twig PfronFrontBundle:Register:register_select.html.twig PfronFrontBundle:Register:register_form_zap.html.twig PfronFrontBundle:Register:register_sign_szafir.html.twig PfronFrontBundle:Register:register_zap_view.html.twig

Użytkownik Niezarejestrowany

Administracja

Pracodawcy

Wprowadzanie danych

Zarządzanie użytkownikami

Tworzenie pierwszego użytkownika - ograniczone do celu roli

Możliwość utworzenia tylko administratora

Klasy: Passus\Bundle\PfronFrontBundle\Controller\Register\RegisterZapController Szablony: PfronFrontBundle:Register:register_accept.html.twig PfronFrontBundle:Register:register_zap_only.html.twig PfronFrontBundle:Register:register_form_zap_only.html.twig PfronFrontBundle:Register:register_sign_szafir.html.twig PfronFrontBundle:Register:register_zap_only_view.html.twig

Page 107: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

107

Grupa Ról

Rola Cel roli Obiekt w Systemie

Obszar funkcyjny

Tryb dostępu

Grupa funkcyjna

Możliwa czynność

Lista czynności

Uwagi do wymagań szczególnych

Uwaga ogólna

Realizacja [Nazwa klasy -> Nazwa tabeli]

Administrator (Administrator)

Uzyskanie dostępu do Systemu, wprowadzanie danych, przeglądanie danych, zarządzanie użytkownikami

Uwierzytelnianie

Pracodawcy

Wprowadzanie danych

Logowanie

Logowanie celem uzyskania dostępu do funkcjonalności Systemu

Zarządzanie kontami w Systemie nie może doprowadzić do tzw domyślnego przepisywania praw. Każdorazowa utworzenie konta lub jego np.. Przypisanie do drugiego Pracodawcy wymusza nadanie oddzielnych praw w profilu danego Pracodawcy

Klasy: 1. Passus\Bundle\PfronFrontBundle\Controller\Security\L

oginController 2. Passus\Bundle\PfronFrontBundle\Security\LoginCheck

er 3. Passus\Bundle\PfronFrontBundle\Security\

Authentication\FormAuthenticationListener 4. Passus\Bundle\PfronFrontBundle\Security\

Authentication\UserCompanyAuthenticationProvider 5. Passus\Bundle\PfronFrontBundle\Security\

Authentication\PfronUserProvider -> uzytkownik, uzytkownik_podmiot, podmiot, rola, rola_uprawnienia

6. Passus\Bundle\PfronFrontBundle\Security\ Authentication\UserCompanyToken

Szablon: PfronFrontBundle:Security:login.html.twig

Page 108: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

108

Grupa Ról

Rola Cel roli Obiekt w Systemie

Obszar funkcyjny

Tryb dostępu

Grupa funkcyjna

Możliwa czynność

Lista czynności

Uwagi do wymagań szczególnych

Uwaga ogólna

Realizacja [Nazwa klasy -> Nazwa tabeli]

Administrator (Administrator)

Administracja

Pracodawcy

Modyfikacja danych

Zarządzanie użytkownikami

Tworzenie użytkowników

Obsługa czynności dodania roli Administratora i Użytkownika w zakresie obsługi interakcji z Operatorem za pomocą dokumentów ZAP/ZUP - będzie wykonane jako prace dodatkowe - po zatwierdzeniu przez Komitet Sterujacy

Administrator (Administrator)

Administracja

Pracodawcy

Wprowadzanie danych

Zarządzanie użytkownikami

Dodanie nowego Użytkownika

Klasy: Passus\Bundle\PfronFrontBundle\Controller\Security\UserAddController -> uzytkownik, uzytkownik_podmiot, podmiot, rola Szablon: PfronFrontBundle:Security:user_add.html.twig

Page 109: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

109

Grupa Ról

Rola Cel roli Obiekt w Systemie

Obszar funkcyjny

Tryb dostępu

Grupa funkcyjna

Możliwa czynność

Lista czynności

Uwagi do wymagań szczególnych

Uwaga ogólna

Realizacja [Nazwa klasy -> Nazwa tabeli]

Administrator (Administrator)

Administracja

Pracodawcy

Modyfikacja danych

Zarządzanie użytkownikami

Zapis danych

Zapis danych dotyczacych kont Administratora i Użytkownika - Pełnomocnika nie jest jednoznaczny z tym, że nowy Użytkownik może już korzystać z Systemu

Klasy: Passus\Bundle\PfronFrontBundle\Controller\Security\UserEditController -> uzytkownik, uzytkownik_podmiot, podmiot, rola, certyfikaty Szablon: PfronFrontBundle:Security:user_edit.html.twig

Administrator (Administrator)

Administracja

Pracodawcy

Cofnięcie modyfikacji danych

Zarządzanie użytkownikami

Anulowanie wprowadzania danych

Anulowanie powoduje powrót do zapisów pierwotnych przed dokonaniem zmian.

Klasy: Passus\Bundle\PfronFrontBundle\Controller\Security\UserEditController -> uzytkownik, uzytkownik_podmiot, podmiot, rola, certyfikaty Szablon: PfronFrontBundle:Security:user_edit.html.twig

Administrator (Administrator)

Administracja

Pracodawcy

Cofnięcie modyfikacji danych

Zarządzanie użytkownikami

Usuwanie danych z pól formatki

Dotyczy tylko wprowadzonych danych przed zatwierdzeniem.

Klasy: Passus\Bundle\PfronFrontBundle\Controller\Security\UserEditController -> uzytkownik, uzytkownik_podmiot, podmiot, rola, rola_uprawnienia Szablon: PfronFrontBundle:Security:user_edit.html.twig

Administrator (Administrator)

Administracja

Pracodawcy

Zarządzanie użytkownikami

Modyfikacja uprawnień użytkowników

Klasy: Passus\Bundle\PfronFrontBundle\Controller\Security\UserEditController -> uzytkownik, uzytkownik_podmiot, podmiot, rola Szablon: PfronFrontBundle:Security:user_edit.html.twig

Administrator (Administrator)

Administracja

Pracodawcy

Zarządzanie użytkownikami

Przegląd Klasy: Passus\Bundle\PfronFrontBundle\Controller\Security\UserListController -> uzytkownik, uzytkownik_podmiot, rola Passus\Bundle\PfronBundle\Security\UserManager Szablon: PfronFrontBundle:Security:user_list.html.twig

Page 110: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

110

Grupa Ról

Rola Cel roli Obiekt w Systemie

Obszar funkcyjny

Tryb dostępu

Grupa funkcyjna

Możliwa czynność

Lista czynności

Uwagi do wymagań szczególnych

Uwaga ogólna

Realizacja [Nazwa klasy -> Nazwa tabeli]

Administrator (Administrator)

Administracja

Pracodawcy

Modyfikacja danych

Zarządzanie użytkownikami

Edycja Klasy: 1. Passus\Bundle\PfronFrontBundle\Controller\Security\

UserEditController -> uzytkownik, uzytkownik_podmiot, podmiot, rola

2. Passus\Bundle\PfronBundle\Security\UserManager -> uzytkownik, uzytkownik_podmiot, podmiot, rola

Szablon: PfronFrontBundle:Security:user_edit.html.twig

Administrator (Administrator)

Administracja

Pracodawcy

Modyfikacja danych

Zarządzanie użytkownikami

Zmiana statusu użytkownika (zablokowany/niezablokowany)

Klasy: Passus\Bundle\PfronFrontBundle\Controller\Security\UserEditController -> uzytkownik, uzytkownik_podmiot, podmiot, rola Szablon: PfronFrontBundle:Security:user_edit.html.twig

Administrator (Administrator)

Administracja

Pracodawcy

Modyfikacja danych

Zarządzanie użytkownikami

Zmiana roli (Administrator/Użytkownikiem

Czynność wymaga interakcji z Operatorem

Obsługa czynności zmiany roli z Administratora na Użytkownika w zakresie obsługi interakcji z Operatorem za pomocą dokumentów ZAP/ZUP - będzie wykonane jako prace dodatko

Page 111: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

111

Grupa Ról

Rola Cel roli Obiekt w Systemie

Obszar funkcyjny

Tryb dostępu

Grupa funkcyjna

Możliwa czynność

Lista czynności

Uwagi do wymagań szczególnych

Uwaga ogólna

Realizacja [Nazwa klasy -> Nazwa tabeli]

we - po zatwierdzeniu przez Komitet Sterujacy

Administrator (Administrator)

Administracja

Pracodawcy

Modyfikacja danych

Zarządzanie użytkownikami

Zapis danych

Klasy: 1. Passus\Bundle\PfronBundle\Security\UserManager ->

uzytkownik, uzytkownik_podmiot, podmiot, rola 2. Passus\Bundle\PfronFrontBundle\Controller\Security\

UserEditController-> uzytkownik, uzytkownik_podmiot, podmiot, rola

Szablon: PfronFrontBundle:Security:user_edit.html.twig

Administrator (Administrator)

Administracja

Pracodawcy

Cofnięcie modyfikacji danych

Zarządzanie użytkownikami

Anulowanie wprowadzania danych

Anulowanie powoduje powrót do zapisów pierwotnych przed dokonaniem zmian.

Klasy: 1. Passus\Bundle\PfronBundle\Security\UserManager ->

uzytkownik, uzytkownik_podmiot, podmiot, rola 2. Passus\Bundle\PfronFrontBundle\Controller\Security\

UserEditController -> uzytkownik, uzytkownik_podmiot, podmiot, rola

Szablon: PfronFrontBundle:Security:user_edit.html.twig

Administrator (Administrator)

Administracja

Pracodawcy

Modyfikacja danych

Zarządzanie użytkownikami

Zmiana haseł

Klasy: 1. Passus\Bundle\PfronFrontBundle\Controller\Security\

UserPasswordChangeController -> uzytkownik 2. Passus\Bundle\PfronBundle\Security\UserManager ->

uzytkownik, uzytkownik_podmiot, podmiot, rola Szablon: PfronFrontBundle:Security:user_password_change.html.twig

Administrator (Administrator)

Administracja

Pracodawcy

Dostęp do obiektów i danych

Zarządzanie użytkownikami

Zarządzanie certyfikatami

Klasy: 1. Passus\Bundle\PfronBundle\Security\

CertificateManager -> certyfikaty 2. Passus\Bundle\PfronFrontBundle\Controller\Security\

Page 112: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

112

Grupa Ról

Rola Cel roli Obiekt w Systemie

Obszar funkcyjny

Tryb dostępu

Grupa funkcyjna

Możliwa czynność

Lista czynności

Uwagi do wymagań szczególnych

Uwaga ogólna

Realizacja [Nazwa klasy -> Nazwa tabeli]

UserEditController -> uzytkownik, uzytkownik_podmiot, podmiot, rola

Szablon: PfronFrontBundle:Security:user_edit.html.twig

Administrator (Administrator)

Administracja

Pracodawcy

Dostęp do obiektów i danych

Zarządzanie użytkownikami

Przegląd Klasy: Passus\Bundle\PfronFrontBundle\Controller\Security\UserListController -> uzytkownik, rola Szablon: PfronFrontBundle:Security:user_list.html.twig

Użytkownik - Pełnomocnik (Użytkownik)

Uzyskanie dostępu do Systemu, wprowadzanie danych, przeglądanie danych

Autentykacja, Autoryzacja

Pracodawcy

Wprowadzanie danych

Logowanie

Logowanie celem uzyskania dostępu do funkcjonalności Systemu

Wprowadzenie Loginu, Hasła, nr w rejestrze PFRON

Klasy: 1. Passus\Bundle\PfronFrontBundle\Controller\Security\L

oginController 2. Passus\Bundle\PfronFrontBundle\Security\LoginCheck

er 3. Passus\Bundle\PfronFrontBundle\Security\

Authentication\FormAuthenticationListener 4. Passus\Bundle\PfronFrontBundle\Security\

Authentication\UserCompanyAuthenticationProvider -> uzytkownik, rola, uzytkownik_podmiot

5. Passus\Bundle\PfronFrontBundle\Security\ Authentication\UserCompanyToken

Szablon: PfronFrontBundle:Security:login.html.twig

Użytkownik - Pełnomocnik (Użytkownik)

Dokumenty

Pracodawcy

Dostęp do obiektów i danych

Zarządzanie Dokumentami

Składanie dokumentów

Wywołanie funkcji/dostęp do obszaru

Klasy: 1. Passus\Bundle\PfronFrontBundle\Controller\Documen

t\DocumentDraftListController 2. Passus\Bundle\PfronFrontBundle\Controller\Documen

t\DocumentPreviewController 3. Passus\Bundle\PfronBundle\Document\DocumentMan

ager Szablony: PfronFrontBundle:Document:document_draft_list.html.twig

Użytkownik - Pełnomocnik (Użytkownik)

Dokumenty

Pracodawcy

Wprowadzanie danych

Zarządzanie Dokume

Składanie dokumentów

Wybór dokumentu

Klasy: 1. Passus\Bundle\PfronFrontBundle\Controller\PfronFor

m\SelectController -> dokument, dokument_typ

Page 113: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

113

Grupa Ról

Rola Cel roli Obiekt w Systemie

Obszar funkcyjny

Tryb dostępu

Grupa funkcyjna

Możliwa czynność

Lista czynności

Uwagi do wymagań szczególnych

Uwaga ogólna

Realizacja [Nazwa klasy -> Nazwa tabeli]

ntami 2. Passus\Bundle\PfronFrontBundle\Controller\PfronForm\SelectSentDocumentController -> dokument, dokument_typ

3. Passus\Bundle\PfronBundle\Document\DocumentManager -> dokument, dokument_typ, dokument_roboczy, dokument_roboczy_zalacznik

4. Passus\Bundle\PfronBundle\Document\DocumentDefManager -> dokument_typ

Szablony: PfronFrontBundle:PfronForm:select_pfron_form.html.twig PfronFrontBundle:PfronForm:select_sent_document.html.twig

Użytkownik - Pełnomocnik (Użytkownik)

Dokumenty

Pracodawcy

Wprowadzanie danych

Zarządzanie Dokumentami

Składanie dokumentów

Wypełnienie dokumentu

Klasy: 1. Passus\Bundle\PfronFrontBundle\Controller\Documen

t\DocumentDraftEditController -> dokument_typ, dokument_roboczy, dokument_roboczy_zalacznik, podmiot, użytkownik

2. Passus\Bundle\PfronBundle\Document\DocumentManager -> dokument, dokument_typ, dokument_roboczy, dokument_roboczy_zalacznik

3. Passus\Bundle\PfronBundle\Document\DocumentDefManager -> dokument_typ

Szablon: PfronFrontBundle:Document:document_edit.html.twig

Użytkownik - Pełnomocnik (Użytkownik)

Dokumenty

Pracodawcy

Modyfikacja danych

Zarządzanie Dokumentami

Składanie dokumentów

Edycja Klasy: 1. Passus\Bundle\PfronFrontBundle\Controller\Documen

t\DocumentDraftEditController -> dokument_typ, dokument_roboczy, dokument_roboczy_zalacznik, podmiot, użytkownik

2. Passus\Bundle\PfronBundle\Document\DocumentManager -> dokument, dokument_typ, dokument_roboczy, dokument_roboczy_zalacznik

3. Passus\Bundle\PfronBundle\Document\DocumentDefManager -> dokument_typ

Szablon: PfronFrontBundle:Document:document_edit.html.twig

Page 114: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

114

Grupa Ról

Rola Cel roli Obiekt w Systemie

Obszar funkcyjny

Tryb dostępu

Grupa funkcyjna

Możliwa czynność

Lista czynności

Uwagi do wymagań szczególnych

Uwaga ogólna

Realizacja [Nazwa klasy -> Nazwa tabeli]

Użytkownik - Pełnomocnik (Użytkownik)

Obsługa danych

Pracodawcy

Modyfikacja danych

Zarządzanie Dokumentami

Składanie dokumentów

Zapis danych

Klasy: 1. Passus\Bundle\PfronFrontBundle\Controller\Documen

t\DocumentDraftEditController -> dokument_typ, dokument_roboczy, dokument_roboczy_zalacznik, podmiot, użytkownik

2. Passus\Bundle\PfronBundle\Document\DocumentManager -> dokument, dokument_typ, dokument_roboczy, dokument_roboczy_zalacznik

3. Passus\Bundle\PfronBundle\Document\DocumentDefManager -> dokument_typ

Szablon: PfronFrontBundle:Document:document_edit.html.twig

Użytkownik - Pełnomocnik (Użytkownik)

Obsługa danych

Pracodawcy

Dostęp do obiektów i danych

Zarządzanie Dokumentami

Składanie dokumentów

Wysłanie dokumentu/dokumentów (w tym podpisanie Dokumentów)

Klasy: 1. Passus\Bundle\PfronFrontBundle\Controller\Documen

t\DocumentSignSzafirController 2. Passus\Bundle\PfronFrontBundle\Controller\Documen

t\DocumentSignController 3. Passus\Bundle\PfronBundle\Document\DocumentMan

ager 4. Passus\Bundle\PfronBundle\Document\DocumentDef

Manager Szablony: PfronFrontBundle:Document:document_sign.html.twig PfronFrontBundle:Document:document_sign_szafir.html.twig PfronFrontBundle:Document:document_sign_finish.html.twig

Użytkownik - Pełnomocnik (Użytkownik)

Obsługa danych

Pracodawcy

Modyfikacja danych

Zarządzanie Dokumentami

Składanie dokumentów

Usuwanie danych

Usunięcie wysłanego dokumentu nie jest możliwe. Usunięcie jedynie wersji roboczej dokumentu jest możliwe.

Klasy: Passus\Bundle\PfronFrontBundle\Controller\Document\DocumentDraftListController -> dokument_roboczy, dokument_typ, uzytkownik

Page 115: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

115

Grupa Ról

Rola Cel roli Obiekt w Systemie

Obszar funkcyjny

Tryb dostępu

Grupa funkcyjna

Możliwa czynność

Lista czynności

Uwagi do wymagań szczególnych

Uwaga ogólna

Realizacja [Nazwa klasy -> Nazwa tabeli]

Użytkownik - Pełnomocnik (Użytkownik)

Obsługa danych

Pracodawcy

Dostęp do obiektów i danych

Raportowanie

Wywoływanie raportu

Podgląd Klasy: Passus\Bundle\PfronFrontBundle\Controller\ReportController -> raport Szablony: PfronFrontBundle:Common:report.html.twig

Użytkownik - Pełnomocnik (Użytkownik)

Obsługa danych

Pracodawcy

Dostęp do obiektów i danych

Raportowanie

Uruchomienie funkcji

Wydruk Doprecyzowanie wymagań dotyczacych wizualizacji wydruków raportów - do 23.08.2013

Klasy: Passus\Bundle\PfronFrontBundle\Controller\ReportController -> raport Szablony: PfronFrontBundle:Common:report.html.twig

Użytkownik - Pełnomocnik (Użytkownik)

Obsługa danych

Pracodawcy

Dostęp do obiektów i danych

Raportowanie

Edycja raportu Podgląd Dotyczy tylko raportu SALD

Klasy: Passus\Bundle\PfronFrontBundle\Controller\ Balance\BalanceListController -> salda Szablony: PfronFrontBundle:Balance:balance_list.html.twig

Użytkownik - Pełnomocnik (Użytkownik)

Obsługa danych

Pracodawcy

Modyfikacja danych

Raportowanie

Edycja raportu Edycja Dotyczy tylko raportu SALD - tylko akceptacja lub odrzucenie wraz z możliwością dodania komentarza.

Klasy: Passus\Bundle\PfronFrontBundle\Controller\ Balance\BalanceConfirmController -> salda Szablony: PfronFrontBundle:Balance:balance_confirm.html.twig

Użytkownik - Pełnomocnik (Użytkownik)

Podpis elektroniczny

Pracodawcy

Dostęp do obiektów i danych

Raportowanie

Edycja raportu Wysłanie raportu/raportów w tym podpis

Dotyczy tylko raportu SALD

Klasy: 1. Passus\Bundle\PfronFrontBundle\Controller\Documen

t\DocumentSignSzafirController -> certyfikaty 2. Passus\Bundle\PfronFrontBundle\Controller\Documen

t\DocumentSignController -> certyfikaty

Page 116: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

116

Grupa Ról

Rola Cel roli Obiekt w Systemie

Obszar funkcyjny

Tryb dostępu

Grupa funkcyjna

Możliwa czynność

Lista czynności

Uwagi do wymagań szczególnych

Uwaga ogólna

Realizacja [Nazwa klasy -> Nazwa tabeli]

3. Passus\Bundle\PfronBundle\Document\DocumentManager -> document

4. Passus\Bundle\PfronBundle\Document\DocumentDefManager -> dokument_typ

Szablony: PfronFrontBundle:Document:document_sign.html.twig PfronFrontBundle:Document:document_sign_szafir.html.twig PfronFrontBundle:Document:document_sign_finish.html.twig

Użytkownik - Pełnomocnik (Użytkownik)

Obsługa danych

Pracodawcy

Dostęp do obiektów i danych

Raportowanie

Wiadomości Podgląd Klasy: 1. Passus\Bundle\PfronFrontBundle\Controller\

Message\MessageListController -> wiadomosc, wiadomosc_podmiot

2. Passus\Bundle\PfronFrontBundle\Controller\ Message\MessageDetailsController -> wiadomosc, wiadomosc_podmiot, wiadomosc_zalacznik

Szablony: PfronFrontBundle:Message:message_list.html.twig PfronFrontBundle:Message:message_details.html.twig

Użytkownik - Pełnomocnik (Użytkownik)

Obsługa danych

Pracodawcy

Wprowadzanie danych

Raportowanie

Wiadomości Tworzenie nowej wiadomości

Tworzyć wiadomość może tylko Administrator i Użytkownik

Klasy: Passus\Bundle\PfronFrontBundle\Controller\ Message\MessageAddController -> wiadomosc, wiadomosc_zalacznik Szablony: PfronFrontBundle:Message:message_add.html.twig PfronFrontBundle:Message:message_add_finish.html.twig

Użytkownik - Pełnomocnik (Użytkownik)

Pracodawcy

Dostęp do obiektów i danych

Raportowanie

Wiadomości Wysłanie wiadomości (w tym opcjonalnie podpisanie)

Klasy: 1. Passus\Bundle\PfronFrontBundle\Controller\Documen

t\DocumentSignSzafirController 2. Passus\Bundle\PfronFrontBundle\Controller\Documen

t\DocumentSignController 3. Passus\Bundle\PfronBundle\Document\DocumentMan

ager 4. Passus\Bundle\PfronBundle\Document\DocumentDef

Manager

Page 117: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

117

Grupa Ról

Rola Cel roli Obiekt w Systemie

Obszar funkcyjny

Tryb dostępu

Grupa funkcyjna

Możliwa czynność

Lista czynności

Uwagi do wymagań szczególnych

Uwaga ogólna

Realizacja [Nazwa klasy -> Nazwa tabeli]

Szablony: PfronFrontBundle:Document:document_sign.html.twig PfronFrontBundle:Document:document_sign_szafir.html.twig PfronFrontBundle:Document:document_sign_finish.html.twig

Użytkownik - Pełnomocnik (Użytkownik)

Pracodawcy

Dostęp do obiektów i danych

Raportowanie

Wiadomości Wydruk Systemowy z przeglądarki

Klasy: 1. Passus\Bundle\PfronFrontBundle\Controller\

Message\MessageListController -> wiadomosc, wiadomosc_podmiot

2. Passus\Bundle\PfronFrontBundle\Controller\ Message\MessageDetailsController -> wiadomosc, wiadomosc_podmiot, wiadomosc_zalacznik

Szablony: PfronFrontBundle:Message:message_list.html.twig PfronFrontBundle:Message:message_details.html.twig

Użytkownik - Pełnomocnik (Użytkownik)

Pracodawcy

Dostęp do obiektów i danych

Raportowanie

Dane ewidencyjne

Podgląd Klasy: Passus\Bundle\PfronFrontBundle\Controller\CompanyDataController -> podmiot Szablony: PfronFrontBundle:Common:company_data.html.twig

Użytkownik - Pełnomocnik (Użytkownik)

Pracodawcy

Przeniesienie/Odwołanie

Raportowanie

Dane ewidencyjne

Funkcja wywołania formatki DEK-Z lub INF-Z

Przycisk w GUI

Użytkownik - Pełnomocnik (Użytkownik)

Pracodawcy

Dostęp do obiektów i danych

Raportowanie

Dane ewidencyjne

Wydruk Systemowy z przeglądarki

Klasy: Passus\Bundle\PfronFrontBundle\Controller\CompanyDataController -> podmiot Szablony: PfronFrontBundle:Common:company_data.html.twig

Użytkownik - Pełnomocnik (Użytkownik)

Pracodawcy

Dostęp do obiektów i danych

Raportowanie

Rejestr zdarzeń Podgląd Klasy: Passus\Bundle\PfronFrontBundle\Controller\ EventListController -> zdarzenie, uzytkownik

Page 118: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

118

Grupa Ról

Rola Cel roli Obiekt w Systemie

Obszar funkcyjny

Tryb dostępu

Grupa funkcyjna

Możliwa czynność

Lista czynności

Uwagi do wymagań szczególnych

Uwaga ogólna

Realizacja [Nazwa klasy -> Nazwa tabeli]

Szablony: PfronFrontBundle:Event:event_list.html.twig

Użytkownik - Pełnomocnik (Użytkownik)

Pracodawcy

Dostęp do obiektów i danych

Raportowanie

Rejestr zdarzeń Wydruk Systemowy z przeglądarki

Klasy: Passus\Bundle\PfronFrontBundle\Controller\ EventListController -> zdarzenie, uzytkownik Szablony: PfronFrontBundle:Event:event_list.html.twig

Użytkownik - Pełnomocnik (Użytkownik)

Pracodawcy

Dostęp do obiektów i danych

Raportowanie

Lista złożonych dokumentów

Podgląd Klasy: 1. Passus\Bundle\PfronFrontBundle\Controller\Documen

t\DocumentListController -> dokument, uzytkownik 2. Passus\Bundle\PfronFrontBundle\Controller\Documen

t\DocumentPreviewController -> dokument, dokument_typ

3. Passus\Bundle\PfronBundle\Document\DocumentManager

Szablony: PfronFrontBundle:Document:document_list.html.twig

Użytkownik - Pełnomocnik (Użytkownik)

Pracodawcy

Dostęp do obiektów i danych

Raportowanie

Lista złożonych dokumentów

Wydruk Zgodnie z przyjętymi Formularzami.

Dodanie do instrukcji obsługi i informacji statycznej informacje o konieczności zmian w przeglądarce w zakresie zasad wydruku.

Klasy: Passus\Bundle\PfronFrontBundle\Controller\Document\DocumentPreviewController -> dokument, dokument_typ

Page 119: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

119

Grupa Ról

Rola Cel roli Obiekt w Systemie

Obszar funkcyjny

Tryb dostępu

Grupa funkcyjna

Możliwa czynność

Lista czynności

Uwagi do wymagań szczególnych

Uwaga ogólna

Realizacja [Nazwa klasy -> Nazwa tabeli]

Użytkownik - Pełnomocnik (Użytkownik)

Administracja

Pracodawcy

Wprowadzanie danych

Zarządzanie kontem

Generowanie certyfikatu

Generowanie certyfikatu

Tylko własny certyfikat

Klasy: Passus\Bundle\PfronFrontBundle\Controller\Security\PrivateKeyGenerateController -> certyfikaty Szablon: PfronFrontBundle:Security:private_key_generate.html.twig

Użytkownik - Pełnomocnik (Użytkownik)

Administracja

Pracodawcy

Dostęp do obiektów i danych

Zarządzanie kontem

Resetowanie hasła

Reset hasła Tylko własne konto

Reset hasła (samodzielnie bez konieczości zalogowania) - realizowane jako prace dodatkowe po zatwierdzeniu prac przez Komitet Sterujący.

Klasy: Passus\Bundle\PfronFrontBundle\Controller\Security\PasswordChangeController -> uzytkownik Szablon: PfronFrontBundle:Security:password_change.html.twig

Użytkownik (Pracownik)

Uzyskanie dostepu do Systemu i jego funkcjonalności bez możliwości podpisywania dokumentów i ich wysyłania

Autentykacja, Autoryzacja

Pracodawcy

Wprowadzanie danych

Logowanie

Logowanie celem uzyskania dostępu do funkcjonalności Systemu

Klasy: 1. Passus\Bundle\PfronFrontBundle\Controller\Security\L

oginController 2. Passus\Bundle\PfronFrontBundle\Security\

LoginChecker 3. Passus\Bundle\PfronFrontBundle\Security\

Authentication\FormAuthenticationListener 4. Passus\Bundle\PfronFrontBundle\Security\

Authentication\UserCompanyAuthenticationProvider 5. Passus\Bundle\PfronFrontBundle\Security\

Authentication\UserCompanyToken Szablon: PfronFrontBundle:Security:login.html.twig

Page 120: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

120

Grupa Ról

Rola Cel roli Obiekt w Systemie

Obszar funkcyjny

Tryb dostępu

Grupa funkcyjna

Możliwa czynność

Lista czynności

Uwagi do wymagań szczególnych

Uwaga ogólna

Realizacja [Nazwa klasy -> Nazwa tabeli]

do PFRON. Celem głównym jest przygotowywanie dokumentów w wersji roboczej

Użytkownik (Pracownik)

Dokumenty

Pracodawcy

Zarządzanie Dokumentami

Składanie dokumentów

Klasy: 1. Passus\Bundle\PfronFrontBundle\Controller\PfronFor

m\SelectController -> dokument_typ, dokument, document_roboczy, dokument_roboczy_zalacznik

2. Passus\Bundle\PfronFrontBundle\Controller\PfronForm\SelectSentDocumentController -> dokument, certyfikaty

3. Passus\Bundle\PfronBundle\Document\DocumentManager -> dokument_roboczy, dokument_typ, document

4. Passus\Bundle\PfronBundle\Document\DocumentDefManager -> dokument_typ

Szablony: PfronFrontBundle:PfronForm:select_pfron_form.html.twig PfronFrontBundle:PfronForm:select_sent_document.html.twig

Użytkownik (Pracownik)

Dokumenty

Pracodawcy

Dostęp do obiektów i danych

Zarządzanie Dokumentami

Składanie dokumentów

Wybór dokumentu

Klasy: 1. Passus\Bundle\PfronFrontBundle\Controller\PfronFor

m\SelectController -> dokument_typ, dokument, document_roboczy, dokument_roboczy_zalacznik

2. Passus\Bundle\PfronFrontBundle\Controller\PfronForm\SelectSentDocumentController -> dokument, certyfikaty

3. Passus\Bundle\PfronBundle\Document\DocumentManager -> dokument_roboczy, dokument_typ, document

4. Passus\Bundle\PfronBundle\Document\DocumentDef

Page 121: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

121

Grupa Ról

Rola Cel roli Obiekt w Systemie

Obszar funkcyjny

Tryb dostępu

Grupa funkcyjna

Możliwa czynność

Lista czynności

Uwagi do wymagań szczególnych

Uwaga ogólna

Realizacja [Nazwa klasy -> Nazwa tabeli]

Manager -> dokument_typ Szablony: PfronFrontBundle:PfronForm:select_pfron_form.html.twig PfronFrontBundle:PfronForm:select_sent_document.html.twig

Użytkownik (Pracownik)

Dokumenty

Pracodawcy

Wprowadzanie danych

Zarządzanie Dokumentami

Składanie dokumentów

Wypełnienie dokumentu

Klasy: 1. Passus\Bundle\PfronFrontBundle\Controller\Documen

t\DocumentDraftEditController -> dokument_szablon, dokument_typ, uzytkownik, podmiot

2. Passus\Bundle\PfronBundle\Document\DocumentManager -> dokument_roboczy, dokument_roboczy_zalacznik, dokument_typ, dokument

3. Passus\Bundle\PfronBundle\Document\DocumentDefManager -> dokument_typ

Szablon: PfronFrontBundle:Document:document_edit.html.twig

Użytkownik (Pracownik)

Dokumenty

Pracodawcy

Modyfikacja danych

Zarządzanie Dokumentami

Składanie dokumentów

Edycja Klasy: 1. Passus\Bundle\PfronFrontBundle\Controller\Documen

t\DocumentDraftEditController -> dokument_szablon, dokument_typ, uzytkownik, podmiot

2. Passus\Bundle\PfronBundle\Document\DocumentManager -> dokument_roboczy, dokument_roboczy_zalacznik, dokument_typ, dokument

3. Passus\Bundle\PfronBundle\Document\DocumentDefManager -> dokument_typ

Szablon: PfronFrontBundle:Document:document_edit.html.twig

Użytkownik (Pracownik)

Dokumenty

Pracodawcy

Modyfikacja danych

Zarządzanie Dokumentami

Składanie dokumentów

Zapis danych

Tylko wersja robocza

Klasy: 1. Passus\Bundle\PfronFrontBundle\Controller\Documen

t\DocumentDraftEditController -> dokument_szablon, dokument_typ, uzytkownik, podmiot

2. Passus\Bundle\PfronBundle\Document\DocumentManager -> dokument_szablon, dokument_typ, dokument

3. Passus\Bundle\PfronBundle\Document\DocumentDef

Page 122: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

122

Grupa Ról

Rola Cel roli Obiekt w Systemie

Obszar funkcyjny

Tryb dostępu

Grupa funkcyjna

Możliwa czynność

Lista czynności

Uwagi do wymagań szczególnych

Uwaga ogólna

Realizacja [Nazwa klasy -> Nazwa tabeli]

Manager -> dokument_typ Szablon: PfronFrontBundle:Document:document_edit.html.twig

Użytkownik (Pracownik)

Dokumenty

Pracodawcy

Dostęp do obiektów i danych

Zarządzanie Dokumentami

Składanie dokumentów

Usuwanie danych

Usunięcie wysłanego dokumentu nie jest możliwe. Usunięcie jedynie zapisanego (roboczego) dokumentu jest możliwe. Usuwanie dokumentów jedynie własnych.

Klasy: Passus\Bundle\PfronFrontBundle\Controller\Document\DocumentDraftListController -> dokument_szablon, dokument_typ, uzytkownik

Użytkownik (Pracownik)

Dokumenty

Pracodawcy

Dostęp do obiektów i danych

Raportowanie

Wywoływanie raportu

Podgląd Klasy: Passus\Bundle\PfronFrontBundle\Controller\ReportController -> raport Szablony: PfronFrontBundle:Common:report.html.twig

Użytkownik (Pracownik)

Dokumenty

Pracodawcy

Dostęp do obiektów i danych

Raportowanie

Wywoływanie raportu

Wydruk W przeglądarce Klasy: Passus\Bundle\PfronFrontBundle\Controller\ReportController -> raport Szablony: PfronFrontBundle:Common:report.html.twig

Użytkownik (Pracownik)

Dokumenty

Pracodawcy

Dostęp do obiektów i danych

Raportowanie

Edycja raportu Podgląd Dotyczy raportu SALD

Klasy: Passus\Bundle\PfronFrontBundle\Controller\ Balance\BalanceListController -> salda Szablony: PfronFrontBundle:Balance:balance_list.html.twig

Użytkownik (Pracownik)

Dokumenty

Pracodawcy

Modyfikacja danych

Raportowanie

Edycja raportu Edycja Dotyczy raportu SALD

Klasy: Passus\Bundle\PfronFrontBundle\Controller\ Balance\BalanceConfirmController -> salda, dokument

Page 123: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

123

Grupa Ról

Rola Cel roli Obiekt w Systemie

Obszar funkcyjny

Tryb dostępu

Grupa funkcyjna

Możliwa czynność

Lista czynności

Uwagi do wymagań szczególnych

Uwaga ogólna

Realizacja [Nazwa klasy -> Nazwa tabeli]

Szablony: PfronFrontBundle:Balance:balance_confirm.html.twig

Użytkownik (Pracownik)

Dokumenty

Pracodawcy

Dostęp do obiektów i danych

Raportowanie

Wiadomości Podgląd Klasy: 1. Passus\Bundle\PfronFrontBundle\Controller\

Message\MessageListController -> wiadomosc, wiadomosc_podmiot

2. Passus\Bundle\PfronFrontBundle\Controller\ Message\MessageDetailsController -> wiadomosc, wiadomosc_podmiot, wiadomosc_zalacznik

Szablony: PfronFrontBundle:Message:message_list.html.twig PfronFrontBundle:Message:message_details.html.twig

Użytkownik (Pracownik)

Dokumenty

Pracodawcy

Dostęp do obiektów i danych

Raportowanie

Wiadomości Wydruk Z przeglądarki Klasy: 1. Passus\Bundle\PfronFrontBundle\Controller\

Message\MessageListController -> wiadomosc, wiadomosc_podmiot

2. Passus\Bundle\PfronFrontBundle\Controller\ Message\MessageDetailsController -> wiadomosc, wiadomosc_podmiot, wiadomosc_zalacznik

Szablony: PfronFrontBundle:Message:message_list.html.twig PfronFrontBundle:Message:message_details.html.twig

Użytkownik (Pracownik)

Dokumenty

Pracodawcy

Wprowadzanie danych

Raportowanie

Dane ewidencyjne

Podgląd Klasy: Passus\Bundle\PfronFrontBundle\Controller\CompanyDataController -> podmiot Szablony: PfronFrontBundle:Common:company_data.html.twig

Użytkownik (Pracownik)

Dokumenty

Pracodawcy

Przeniesienie/Odwołanie

Raportowanie

Dane ewidencyjne

patrz jak dla Użytkownika

Klasy: Passus\Bundle\PfronFrontBundle\Controller\CompanyDataController -> podmiot Szablony: PfronFrontBundle:Common:company_data.html.twig

Page 124: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

124

Grupa Ról

Rola Cel roli Obiekt w Systemie

Obszar funkcyjny

Tryb dostępu

Grupa funkcyjna

Możliwa czynność

Lista czynności

Uwagi do wymagań szczególnych

Uwaga ogólna

Realizacja [Nazwa klasy -> Nazwa tabeli]

Użytkownik (Pracownik)

Dokumenty

Pracodawcy

Dostęp do obiektów i danych

Raportowanie

Dane ewidencyjne

Wydruk Z przeglądarki Klasy: Passus\Bundle\PfronFrontBundle\Controller\CompanyDataController -> podmiot Szablony: PfronFrontBundle:Common:company_data.html.twig

Użytkownik (Pracownik)

Dokumenty

Pracodawcy

Dostęp do obiektów i danych

Raportowanie

Rejestr zdarzeń Podgląd Klasy: Passus\Bundle\PfronFrontBundle\Controller\ EventListController -> zdarzenie, uzytkownik Szablony: PfronFrontBundle:Event:event_list.html.twig

Użytkownik (Pracownik)

Dokumenty

Pracodawcy

Dostęp do obiektów i danych

Raportowanie

Rejestr zdarzeń Wydruk Z przeglądarki Klasy: Passus\Bundle\PfronFrontBundle\Controller\ EventListController -> zdarzenie, uzytkownik Szablony: PfronFrontBundle:Event:event_list.html.twig

Użytkownik (Pracownik)

Dokumenty

Pracodawcy

Dostęp do obiektów i danych

Raportowanie

Lista złożonych dokumentów

Podgląd Klasy: 1. Passus\Bundle\PfronFrontBundle\Controller\Documen

t\DocumentListController -> dokument, dokument_typ, podmiot

2. Passus\Bundle\PfronFrontBundle\Controller\Document\DocumentPreviewController -> dokument, dokument_typ

3. Passus\Bundle\PfronBundle\Document\DocumentManager -> dokument, dokument_typ, dokument_roboczy, document_roboczy_zalacznik

Szablony: PfronFrontBundle:Document:document_list.html.twig

Użytkownik (Pracownik)

Dokumenty

Pracodawcy

Dostęp do obiektów i danych

Raportowanie

Lista złożonych dokumentów

Wydruk Zgodnie z przyjętymi Formularzami. Patrz jak dla Użytkownika

Klasy: 1. Passus\Bundle\PfronFrontBundle\Controller\Documen

t\DocumentListController -> dokument, dokument_typ, podmiot

2. Passus\Bundle\PfronFrontBundle\Controller\Document\DocumentPreviewController -> dokument, dokument_typ

3. Passus\Bundle\PfronBundle\Document\DocumentMan

Page 125: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

125

Grupa Ról

Rola Cel roli Obiekt w Systemie

Obszar funkcyjny

Tryb dostępu

Grupa funkcyjna

Możliwa czynność

Lista czynności

Uwagi do wymagań szczególnych

Uwaga ogólna

Realizacja [Nazwa klasy -> Nazwa tabeli]

ager -> dokument, dokument_typ, dokument_roboczy, document_roboczy_zalacznik

Szablony: PfronFrontBundle:Document:document_list.html.twig

Użytkownik (Pracownik)

Administracja

Pracodawcy

Dostęp do obiektów i danych

Zarządzanie kontem

Resetowanie hasła

Reset hasła Tylko własne konto. Uwaga dotyczaca resetu - patrz jak dla Użytkownika wraz z decyzją Komitetu

Klasy: Passus\Bundle\PfronFrontBundle\Controller\Security\PasswordChangeController -> uzytkownik Szablon: PfronFrontBundle:Security:password_change.html.twig

PFRON Administrator (DBS)

Zarządzanie Systemem

Autentykacja, Autoryzacja

PFRON Wprowadzanie danych

Logowanie

Logowanie celem uzyskania dostępu do funkcjonalności Systemu

Klasy: 1. Passus\Bundle\PfronConsoleBundle\Controller\Securit

y\LoginController 2. Passus\Bundle\PfronConsoleBundle\Security\LoginChe

cker 3. Passus\Bundle\PfronConsoleBundle\Security\

PfronOperatorProvider -> operator, operator_rola, operator_uprawnienia

Szablony: PfronConsoleBundle:Security:login.html.twig

Administrator (DBS)

Administracja

PFRON Wprowadzanie danych

Zarządzanie Kontami Konsoli

Tworzenie użytkowników

Dodanie nowego Użytkownika

Klasy: Passus\Bundle\PfronConsoleBundle\Controller\Security\UserAddController -> uzytkownik, uzytkownik_podmiot, podmiot, rola Szablony: PfronConsoleBundle:Security:user_add.html.twig

Administrator (DBS)

Administracja

PFRON Modyfikacja danych

Zarządzanie Kontami Konsoli

Tworzenie użytkowników

Zapis danych

Klasy: Passus\Bundle\PfronConsoleBundle\Controller\Security\UserAddController -> uzytkownik, uzytkownik_podmiot, podmiot, rola Szablony: PfronConsoleBundle:Security:user_add.html.twig

Page 126: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

126

Grupa Ról

Rola Cel roli Obiekt w Systemie

Obszar funkcyjny

Tryb dostępu

Grupa funkcyjna

Możliwa czynność

Lista czynności

Uwagi do wymagań szczególnych

Uwaga ogólna

Realizacja [Nazwa klasy -> Nazwa tabeli]

Administrator (DBS)

Administracja

PFRON Modyfikacja danych

Zarządzanie Kontami Konsoli

Tworzenie użytkowników

Anulowanie wprowadzania danych

Anulowanie powoduje powrót do zapisów pierwotnych przed dokonaniem zmian.

Klasy: Passus\Bundle\PfronConsoleBundle\Controller\Security\UserAddController -> uzytkownik, uzytkownik_podmiot, podmiot, rola Szablony: PfronConsoleBundle:Security:user_add.html.twig

Administrator (DBS)

Administracja

PFRON Dostęp do obiektów i danych

Zarządzanie Kontami Konsoli

Modyfikacja uprawnień użytkowników

Klasy: Passus\Bundle\PfronConsoleBundle\Controller\Security\UserEditController-> uzytkownik, uzytkownik_podmiot, podmiot, rola Szablony: PfronConsoleBundle:Security:user_edit.html.twig

Administrator (DBS)

Administracja

PFRON Dostęp do obiektów i danych

Zarządzanie Kontami Konsoli

Uprawnienia użytkowników

Przegląd Klasy: Passus\Bundle\PfronConsoleBundle\Controller\Security\UserListController -> uzytkownik, uzytkownik_podmiot, podmiot, rola Szablony: PfronConsoleBundle:Security:user_list.html.twig

Administrator (DBS)

Administracja

PFRON Modyfikacja danych

Zarządzanie Kontami Konsoli

Modyfikacja uprawnień użytkowników

Edycja Klasy: Passus\Bundle\PfronConsoleBundle\Controller\Security\UserEditController -> uzytkownik, uzytkownik_podmiot, podmiot, rola Szablony: PfronConsoleBundle:Security:user_edit.html.twig

Administrator (DBS)

Administracja

PFRON Modyfikacja danych

Zarządzanie Kontami Konsoli

Modyfikacja uprawnień użytkowników

Zmiana statusu użytkownika (zablokowany/niezablokowany)

Klasy: Passus\Bundle\PfronConsoleBundle\Controller\Security\UserEditController -> uzytkownik, uzytkownik_podmiot, podmiot, rola Szablony: PfronConsoleBundle:Security:user_edit.html.twig

Administrator (DBS)

Administracja

PFRON Modyfikacja danych

Zarządzanie Kontami Konsoli

Modyfikacja uprawnień użytkowników

Zapis danych

Klasy: Passus\Bundle\PfronConsoleBundle\Controller\Security\UserEditController -> uzytkownik, uzytkownik_podmiot, podmiot, rola

Page 127: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

127

Grupa Ról

Rola Cel roli Obiekt w Systemie

Obszar funkcyjny

Tryb dostępu

Grupa funkcyjna

Możliwa czynność

Lista czynności

Uwagi do wymagań szczególnych

Uwaga ogólna

Realizacja [Nazwa klasy -> Nazwa tabeli]

Szablony: PfronConsoleBundle:Security:user_edit.html.twig

Administrator (DBS)

Administracja

PFRON Modyfikacja danych

Zarządzanie Kontami Konsoli

Modyfikacja uprawnień użytkowników

Anulowanie wprowadzania danych

Anulowanie powoduje powrót do zapisów pierwotnych przed dokonaniem zmian.

Klasy: Passus\Bundle\PfronConsoleBundle\Controller\Security\UserEditController -> uzytkownik, uzytkownik_podmiot, podmiot, rola Szablony: PfronConsoleBundle:Security:user_edit.html.twig

Administrator (DBS)

Administracja

PFRON Dostęp do obiektów i danych

Zarządzanie Kontami Konsoli

Modyfikacja uprawnień użytkowników

Reset haseł Brak możliwości podglądu istniejącego hasła. Możliwa jedynie zmiana hasła przy zachowaniu weryfikacji hasła poprzez jego podwójne wprowadzenie. Pole hasła nie może zostać puste. wprowadzenie parametru wartość 0 pwooduje brak oghraniczeń w długości ważności haseł - parametr ustawiany przez koncie użytkownika konsoli.

Klasy: Passus\Bundle\PfronConsoleBundle\Controller\Security\UserChangePasswordController -> uzytkownik Szablony: PfronConsoleBundle:Security:user_edit.html.twig

Administrator (DBS)

Administracja

PFRON Dostęp do obiektów i danych

Parametryzacja

Obsługa Walidacji

Wyszukanie Z poziomu systemu silnika bazy

Nie dotyczy

Page 128: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

128

Grupa Ról

Rola Cel roli Obiekt w Systemie

Obszar funkcyjny

Tryb dostępu

Grupa funkcyjna

Możliwa czynność

Lista czynności

Uwagi do wymagań szczególnych

Uwaga ogólna

Realizacja [Nazwa klasy -> Nazwa tabeli]

Administrator (DBS)

Administracja

PFRON Dostęp do obiektów i danych

Parametryzacja

Obsługa Walidacji

Podgląd Z poziomu systemu silnika bazy

Nie dotyczy

Administrator (DBS)

Administracja

PFRON Modyfikacja danych

Parametryzacja

Obsługa Walidacji

Edycja Z poziomu systemu silnika bazy

Nie dotyczy

Administrator (DBS)

Administracja

PFRON Modyfikacja danych

Parametryzacja

Obsługa Walidacji

Zapis Z poziomu systemu silnika bazy

Nie dotyczy

Administrator (DBS)

Administracja

PFRON Modyfikacja danych

Parametryzacja

Obsługa Walidacji

Dodanie Z poziomu systemu silnika bazy

Nie dotyczy

Administrator (DBS)

Administracja

PFRON Modyfikacja danych

Parametryzacja

Obsługa Walidacji

Usuwanie danych

Z poziomu systemu silnika bazy

Nie dotyczy

Operator (Operator)

Dostęp do funkcjonalności konsoli wewnętrznej celem zarządzania użytkownikami, dokumentami i komunikacją

Autentykacja, Autoryzacja

PFRON Wprowadzanie danych

Logowanie

Logowanie Logowanie celem dostepu do funkcji w Systemie

Klasy: 1. Passus\Bundle\PfronConsoleBundle\Controller\Securit

y\LoginController 2. Passus\Bundle\PfronConsoleBundle\Security\LoginChe

cker 3. Passus\Bundle\PfronConsoleBundle\Security\

PfronOperatorProvider -> operator, operator_rola, operator_uprawnienia

Szablony: PfronConsoleBundle:Security:login.html.twig

Operator (Operator)

Administracja

PFRON Wprowadzanie danych

Zarządzanie kontami użytkowników

Modyfikacja Wyszukanie Klasy: Passus\Bundle\PfronConsoleBundle\Controller\Security\UserListController -> -> uzytkownik, uzytkownik_podmiot, podmiot, rola, rola_uprawnienia Szablony: PfronConsoleBundle:Security:user_list.html.twig

Page 129: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

129

Grupa Ról

Rola Cel roli Obiekt w Systemie

Obszar funkcyjny

Tryb dostępu

Grupa funkcyjna

Możliwa czynność

Lista czynności

Uwagi do wymagań szczególnych

Uwaga ogólna

Realizacja [Nazwa klasy -> Nazwa tabeli]

Operator (Operator)

Administracja

PFRON Wprowadzanie danych

Zarządzanie kontami użytkowników

Modyfikacja Podgląd Klasy: Passus\Bundle\PfronConsoleBundle\Controller\Security\UserEditController -> uzytkownik, uzytkownik_podmiot, podmiot, rola, rola_uprawnienia Szablony: PfronConsoleBundle:Security:user_edit.html.twig

Operator (Operator)

Administracja

PFRON Modyfikacja danych

Zarządzanie kontami użytkowników

Modyfikacja Edycja Klasy: Passus\Bundle\PfronConsoleBundle\Controller\Security\UserEditController -> uzytkownik, uzytkownik_podmiot, podmiot, rola, rola_uprawnienia Szablony: PfronConsoleBundle:Security:user_edit.html.twig

Operator (Operator)

Administracja

PFRON Modyfikacja danych

Zarządzanie kontami użytkowników

Modyfikacja Zapis Klasy: Passus\Bundle\PfronConsoleBundle\Controller\Security\UserEditController -> uzytkownik, uzytkownik_podmiot, podmiot, rola, rola_uprawnienia Szablony: PfronConsoleBundle:Security:user_edit.html.twig

Operator (Operator)

Administracja

PFRON Dostęp do obiektów i danych

Zarządzanie kontami użytkowników

Akceptacja Podgląd Realizacja na część II

Klasy: Passus\Bundle\PfronConsoleBundle\Controller\Register\RegisterEditController -> zgloszenie, podmiot Szablony: PfronConsoleBundle:register:register_edit.html.twig

Operator (Operator)

Administracja

PFRON Modyfikacja danych

Zarządzanie kontami użytkowników

Akceptacja Zatwierdzenie/Odrzucenie

Realizacja na część II

Klasy: Passus\Bundle\PfronConsoleBundle\Controller\Register\RegisterEditController -> zgloszenie, podmiot Szablony: PfronConsoleBundle:register:register_edit.html.twig

Operator (Operator)

Dokumenty

PFRON Dostęp do obiektów i danych

Zarządzanie dokumentami

Wprowadzanie dokumentów papierowych

Funkcjonalność zostanie doprecyzowana w terminie

Klasy: 1. Passus\Bundle\PfronConsoleBundle\Controller\Docum

entSelectController -> dokument, dokument_typ, podmiot

2. Passus\Bundle\PfronConsoleBundle\Controller\DocumentAddController -> dokument, dokument_typ,

Page 130: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

130

Grupa Ról

Rola Cel roli Obiekt w Systemie

Obszar funkcyjny

Tryb dostępu

Grupa funkcyjna

Możliwa czynność

Lista czynności

Uwagi do wymagań szczególnych

Uwaga ogólna

Realizacja [Nazwa klasy -> Nazwa tabeli]

wyznaczonym przez Komitet Sterujący.

podmiot 3. Passus\Bundle\PfronConsoleBundle\Controller\Docum

entAjaxController -> dokument, dokument_typ, podmiot

Szablony: PfronConsoleBundle:Event:Document:document_select.html.twig PfronConsoleBundle:Event:Document:document_add.html.twig PfronConsoleBundle:Event:Document:document_edit.html.twig

Operator (Operator)

Obsługa danych

PFRON Wprowadzanie danych

Wiadomości

Komunikacja Wyszukanie Wyszukiwanie po numerze w rejestrze PFRON

Klasy: Passus\Bundle\PfronConsoleBundle\Controller\Message\MessageListController– wiadomosc, wiadomosc_podmiot, operator, podmiot, uzytkownik Szablony: PfronConsoleBundle:Message:message_list.html.twig

Operator (Operator)

Obsługa danych

PFRON Modyfikacja danych

Wiadomości

Komunikacja Tworzenie nowej wiadomości

Klasy: Passus\Bundle\PfronConsoleBundle\Controller\ Message\MessageAddController – wiadomosc, wiadomosc_zalacznik, wiadomosc_podmiot, operator, podmiot Szablony: PfronConsoleBundle:Message:message_add.html.twig PfronConsoleBundle:Message:message_add_finish.html.twig

Operator (Operator)

Obsługa danych

PFRON Dostęp do obiektów i danych

Wiadomości

Komunikacja Wysyłka Klasy: Passus\Bundle\PfronConsoleBundle\Controller\ Message\MessageAddController – wiadomosc, wiadomosc_zalacznik, wiadomosc_podmiot, operator, podmiot Szablony: PfronConsoleBundle:Message:message_add.html.twig

Page 131: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

131

Grupa Ról

Rola Cel roli Obiekt w Systemie

Obszar funkcyjny

Tryb dostępu

Grupa funkcyjna

Możliwa czynność

Lista czynności

Uwagi do wymagań szczególnych

Uwaga ogólna

Realizacja [Nazwa klasy -> Nazwa tabeli]

PfronConsoleBundle:Message:message_add_finish.html.twig

Operator (Operator)

Obsługa danych

PFRON Wprowadzanie danych

Wiadomości

Raportowanie wiadomości

Wyszukanie Po numerze w rejestrze PFRON

Klasy: Passus\Bundle\PfronConsoleBundle\Controller\Event\EventListController-> zdarzenie, podmiot, uzytkownik, operator Szablony: PfronConsoleBundle:Event:event_list.html.twig

Operator (Operator)

Obsługa danych

PFRON Dostęp do obiektów i danych

Wiadomości

Raportowanie wiadomości

Podgląd Klasy: Passus\Bundle\PfronConsoleBundle\Controller\Event\EventListController-> zdarzenie, podmiot, uzytkownik, operator Szablony: PfronConsoleBundle:Event:event_list.html.twig

Operator (Operator)

Obsługa danych

PFRON Dostęp do obiektów i danych

Wiadomości

Raportowanie wiadomości

Wydruk Z przegladarki Klasy: Passus\Bundle\PfronConsoleBundle\Controller\Event\EventListController -> zdarzenie, podmiot, uzytkownik, operator Szablony: PfronConsoleBundle:Event:event_list.html.twig

Operator (Operator)

Obsługa danych

PFRON Wprowadzanie danych

Rejestr zdarzeń

Raportowanie Wyszukanie Po numerze w rejestrze PFRON

Klasy: Passus\Bundle\PfronConsoleBundle\Controller\Event\EventListController -> zdarzenie, podmiot, uzytkownik, operator Szablony: PfronConsoleBundle:Event:event_list.html.twig

Operator (Operator)

Obsługa danych

PFRON Dostęp do obiektów i danych

Rejestr zdarzeń

Raportowanie Podgląd Klasy: Passus\Bundle\PfronConsoleBundle\Controller\Event\EventListController -> zdarzenie, podmiot, uzytkownik, operator Szablony: PfronConsoleBundle:Event:event_list.html.twig

Page 132: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

132

Grupa Ról

Rola Cel roli Obiekt w Systemie

Obszar funkcyjny

Tryb dostępu

Grupa funkcyjna

Możliwa czynność

Lista czynności

Uwagi do wymagań szczególnych

Uwaga ogólna

Realizacja [Nazwa klasy -> Nazwa tabeli]

Operator (Operator)

Obsługa danych

PFRON Dostęp do obiektów i danych

Rejestr zdarzeń

Raportowanie Wydruk Z przeglądarki Klasy: Passus\Bundle\PfronConsoleBundle\Controller\Event\EventListController -> zdarzenie, podmiot, uzytkownik, operator Szablony: PfronConsoleBundle:Event:event_list.html.twig

Operator tylko do odczytu (Operator tylko do odczytu)

Autentykacja, Autoryzacja

PFRON Wprowadzanie danych

Logowanie

Logowanie Logowanie celem dostepu do funkcji w Systemie

Klasy: 1. Passus\Bundle\PfronConsoleBundle\Controller\Securit

y\LoginController 2. Passus\Bundle\PfronConsoleBundle\Security\LoginChe

cker 3. Passus\Bundle\PfronConsoleBundle\Security\PfronOpe

ratorProvider -> operator, operator_rola, operator_uprawnienia

Szablony: PfronConsoleBundle:Security:login.html.twig

Operator tylko do odczytu (Operator tylko do odczytu)

Administracja

PFRON Wprowadzanie danych

Zarządzanie kontami użytkowników

Dostęp do danych

Wyszukanie Klasy: Passus\Bundle\PfronConsoleBundle\Controller\Security\UserListController -> uzytkownik, podmiot, uzytkownik_podmiot, rola Szablony: PfronConsoleBundle:Security:user_list.html.twig

Operator tylko do odczytu (Operator tylko do odczytu)

Administracja

PFRON Wprowadzanie danych

Zarządzanie kontami użytkowników

Dostęp do danych

Podgląd Klasy: Passus\Bundle\PfronConsoleBundle\Controller\Security\UserListController -> uzytkownik, podmiot, uzytkownik_podmiot, rola Szablony: PfronConsoleBundle:Security:user_list.html.twig

Operator tylko do odczytu (Operator tylko do odczytu)

Dokumenty

PFRON Wprowadzanie danych

Zarządzanie dokumentami

Wprowadzanie dokumentów papierowych

patrz jak dla Operatora

Page 133: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

133

Grupa Ról

Rola Cel roli Obiekt w Systemie

Obszar funkcyjny

Tryb dostępu

Grupa funkcyjna

Możliwa czynność

Lista czynności

Uwagi do wymagań szczególnych

Uwaga ogólna

Realizacja [Nazwa klasy -> Nazwa tabeli]

Operator tylko do odczytu (Operator tylko do odczytu)

Obsługa danych

PFRON Wprowadzanie danych

Wiadomości

Komunikacja Wyszukanie Po numerze w rejestrze PFRON

Klasy: Passus\Bundle\PfronConsoleBundle\Controller\Message\MessageListController -> wiadomosc, wiadomosc_podmiot, wiadomosc_zalacznik, uzytkownik, operator Szablony: PfronConsoleBundle:Message:message_list.html.twig

Operator tylko do odczytu (Operator tylko do odczytu)

Obsługa danych

PFRON Wprowadzanie danych

Wiadomości

Komunikacja Podgląd Klasy: Passus\Bundle\PfronConsoleBundle\Controller\Message\MessageDetailsController-> wiadomosc, wiadomosc_podmiot, wiadomosc_zalacznik, uzytkownik, operator Szablony: PfronConsoleBundle:Message:message_details.html.twig

Operator tylko do odczytu (Operator tylko do odczytu)

Obsługa danych

PFRON Wprowadzanie danych

Wiadomości

Raportowanie wiadomości

Wyszukanie Po numerze w rejestrze PFRON

Klasy: Passus\Bundle\PfronConsoleBundle\Controller\Message\MessageDetailsController -> wiadomosc, wiadomosc_podmiot, wiadomosc_zalacznik, uzytkownik, operator Szablony: PfronConsoleBundle:Message:message_details.html.twig

Operator tylko do odczytu (Operator tylko do odczytu)

Obsługa danych

PFRON Dostęp do obiektów i danych

Wiadomości

Raportowanie wiadomości

Podgląd Klasy: Passus\Bundle\PfronConsoleBundle\Controller\Message\MessageDetailsController -> wiadomosc, wiadomosc_podmiot, wiadomosc_zalacznik, uzytkownik, operator Szablony: PfronConsoleBundle:Message:message_details.html.twig

Operator tylko do odczytu (Operator tylko do odczytu)

Obsługa danych

PFRON Wprowadzanie danych

Rejestr zdarzeń

Raportowanie Wyszukanie Po numerze w rejestrze PFRON

Klasy: Passus\Bundle\PfronConsoleBundle\Controller\Event\EventListController -> zdarzenie, podmiot, uzytkownik, rola Szablony: PfronConsoleBundle:Event:event_list.html.twig

Page 134: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

134

Grupa Ról

Rola Cel roli Obiekt w Systemie

Obszar funkcyjny

Tryb dostępu

Grupa funkcyjna

Możliwa czynność

Lista czynności

Uwagi do wymagań szczególnych

Uwaga ogólna

Realizacja [Nazwa klasy -> Nazwa tabeli]

Operator tylko do odczytu (Operator tylko do odczytu)

Obsługa danych

PFRON Dostęp do obiektów i danych

Rejestr zdarzeń

Raportowanie Podgląd Klasy: Passus\Bundle\PfronConsoleBundle\Controller\Event\EventListController -> zdarzenie, podmiot, uzytkownik, rola Szablony: PfronConsoleBundle:Event:event_list.html.twig

Operator tylko do odczytu (Operator tylko do odczytu)

Obsługa danych

PFRON Dostęp do obiektów i danych

Rejestr zdarzeń

Raportowanie Wydruk Z przeglądarki Klasy: Passus\Bundle\PfronConsoleBundle\Controller\Event\EventListController -> zdarzenie, podmiot, uzytkownik, rola Szablony: PfronConsoleBundle:Event:event_list.html.twig

CMS Administrator Nadrzędne zarządzanie systemem CMS i jego treścią wraz z administracją uprawnień i architektury

CMS PFRON Zgodnie z systemem CMS Joomla w wersji nie niższej niż 3.1.5

Redaktor CMS CMS PFRON Zgodnie z systemem CMS Joomla w wersji nie niższej niż 3.1.5

Page 135: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

135

16 Opis niefunkcjonalny Systemu

Poniżej znajdują się parametry niefunkcjonalne:

1. System został wykonany w technologii WEB.

2. System jest kompatybilny z przeglądarkami: Internet Explorer 8, Firefox 23.01, Google

Chrome 27.0.1453.116 i nowszymi oraz wymagać będzie wersji JAVA JRE 1.7.40 a dla apletu

do podpisywania dokumentów Podpisem Kwalifikowanym KIR wersji JRE 1.7.45.

3. Formatki wprowadzania danych różnią się wizualnie od Formularzy składanych do PFRON w

formie papierowej. Formatki nie mogą zawierać mniej informacji i pól niż Formularze.

4. Wszystkie dokumenty końcowe generowane z System są zgodne z Formularzami

określonymi w odpowiednich Rozporządzeniach.

5. System zapewnia dostęp dla użytkowników na podstawie nowych loginów oraz haseł, jak

również na podstawie loginów i haseł już istniejących w systemie e-PFRON.

6. W przypadku skasowania konta Pracodawcy i Administratora System umożliwia ponowne

założenie takich kont.

7. System zapewnia dostęp do złożonych za pośrednictwem systemu e-PFRON Deklaracji w

trybie tylko do odczytu. Deklaracje te zostały przeniesione z systemu e-PFRON do Systemu

bez walidacji poprawności wprowadzonych danych.

8. Interfejsy komunikacyjne dla użytkowników spełniają standard dla osób niepełnosprawnych

w zakresie dysfunkcji wzroku, poprzez zapewnienie ich zgodności ze standardem WCAG 2.0

9. Wydajność rozwiązania została zapewniona na poziomie umożliwiającym jednoczesność

pracy dla minimum 20 000 użytkowników korzystających z Systemu w ciągu jednego dnia

przy założeniu rozkładu normalnego w godzinach od 7:00 do 16:00

(z ustalonym punktem przesilenia w godzinach 12:00 – 13:00). Zakłada się, że rozwiązanie

będzie przygotowane na utrzymanie minimum 1 000 sesji jednocześnie.

10. Czasy odpowiedzi Systemu (załadowania i wyświetlenia na ekranie użytkownika czy Operatora).

a) Obiektów statycznych wynosić nie więcej niż 3 sekundy.

b) Obiektów edycyjnych wynosić nie więcej niż 5 sekund.

Page 136: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

136

c) Zapis Deklaracji wynosić nie więcej niż 15 sekund.

Jeśli powyższe czasy w uzasadnionych przypadkach, np. duży chwilowy skok obciążenia

miałby być dłuższe niż podane powyżej, System wyświetla stosowny komunikat typu:

„Proszę czekać trwa ładowanie/zapisywanie danych”. Czasy odpowiedzi zostały

sprawdzone w środowisku testowym w siedzibie PFRON przy zapewnieniu odpowiedniej

wydajności sieci lokalnej.

11. Całe rozwiązanie zostało zaprojektowane i wykonane w sposób umożliwiający

bezproblemową pracę w środowisku automatycznego balansowania ruchu (z podziałem

sesji), w szczególności w segmencie Front-end środowiska Systemu (dostęp użytkownika

ze strony sieci Internet).

12. System został wykonany w taki sposób, aby Obszar interfejsu użytkownika nie miał

bezpośredniego dostępu do baz dokumentów i informacji merytorycznej przekazywanej

przez Pracodawców do Systemu. Wykonanie tego rozumiane jest w taki sposób, że

Obszary Pracodawcy i Operatora są rozdzielne – są to osobne aplikacje. Obszar Operatora

ma dostęp do Obszaru Pracodawcy. Obszar Pracodawcy nie ma dostępu do Obszaru

Operatora. Obszar Operatora jest dodatkowo chroniony dostępem tylko z konkretnych,

zdefiniowanych adresów IP, np. adresów IP siedziby PFRON.

13. System zakłada, że maksymalny czas bezczynności użytkownika podczas sesji to 15 minut.

Po takim czasie bezczynności System automatycznie wyloguje użytkownika.

Page 137: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

137

17 Migracja danych z systemu e-PFRON

System e-PFRON 2 został przed uruchomieniem produkcyjnym zasilony zmigrowanymi z systemu e-PFRON danymi. Migracji podlegały: - dane pracodawców - dane użytkowników (loginy, hasła, certyfikaty, role, uprawnienia, etc.) - certyfikaty - dokumenty złożone do PFRON - dokumenty wystawione przez PFRON, np. salda - wiadomości

Page 138: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

138

18 Interfejs Graficzny Systemu

Poniżej znajdują się przykładowe ekrany z graficznego interfejsu w podziale na część Pracodawcy oraz Operatora. Poniżej ekrany pokazują ogólną organizację ekranu.

18.1 Obszar Pracodawcy Praca przez Pracodawcę z Systemem rozpoczyna się od ekranu logowania. Będzie on umożliwiał zalogowanie do Systemu i przejście do ekranu głównego. Użytkownik ma również możliwość przejścia (bez zalogowania) do zgłoszenie pracodawcy albo użytkownika (pierwszego Administratora).

Na ekranie umożliwiającym zgłoszenie Pracodawcy użytkownik może przeczytać treść „Warunków korzystania z Systemu e-PFRON2” oraz zdecydować, czy je akceptuje. Akceptacja Warunków umożliwia przejście do wyboru rodzaju składanego zgłoszenia.

Po wyborze rodzaju informacji składanej przy zgłoszeniu użytkownik ma możliwość wypełnienia pól na wybranym przez siebie formularzu składanego zgłoszenia.

Page 139: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

139

Po poprawnym wypełnieniu wszystkich wymaganych pól formularza użytkownik powinien nacisnąć przycisk Wyślij, aby zakończyć proces zgłoszenia Pracodawcy. Proces zgłoszenia użytkownik przebiega analogicznie jak dla zgłoszenia Pracodawcy za wyjątkiem wzoru formularza, który będzie wymagany do wypełnienia – w tym przypadku jest to ZAP (Zgłoszenie Administratora / Pełnomocnictwo). Użytkownicy, którzy poprawnie zalogują się do Systemu przechodzą do ekranu głównego zorganizowanego w formie pulpitu, który z lewej strony będzie miał dostępne przyciski kierujące do głównych funkcjonalności Systemu.

Page 140: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

140

Aby wypełnić Dokument, użytkownik będzie decyduje, jaki typ Dokumentu będzie wypełniał a następnie zostaje mu wyświetlona formatka, którą wypełnia. W celu złożenia poprawnie wypełnionego formularza użytkownik musi go podpisać. Po przejściu przez proces podpisania dokumentu użytkownik zostaje poinformowany o pozytywnym zakończeniu składania dokumentu.

Page 141: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

141

Użytkownik ma możliwość obejrzenia listy złożonych dokumentów oraz ich wydrukowania, przygotowania przelewu oraz obejrzenia informacji o złożonym dokumencie.

Po wybraniu przycisku „info” użytkownik może obejrzeć i wydrukować informację o złożonym dokumencie.

W panelu bocznym ekranu głównego jest możliwość podglądu listy użytkowników przypisanych do pracodawcy.

Page 142: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

142

Podobnie jak w przypadku listy użytkowników, w panelu bocznym jest możliwość wybrania przycisku Zdarzenia, który umożliwi podgląd zdarzeń, które wystąpiły na koncie danego Pracodawcy. Propozycja prezentacji listy przedstawia poniższy ekran.

18.2 Obszar Operatora Obszar Operatora będzie zorganizowany podobnie do Obszaru Pracodawcy – z lewej strony ekranu będzie podczas pracy z Systemem dostępny panel boczny umożliwiający łatwy dostęp do poszczególnych funkcji Systemu. Operator, tak jak Pracodawca musi zalogować się do Systemu, aby z niego skorzystać.

Po wybraniu w panelu bocznym przycisku Dokumenty Operator ma możliwość wyszukania i podglądu złożonych przez Pracodawców dokumentów. Ma możliwość wyszukania odpowiedniego dokumentu według numeru teczki a także posortowania listy wg dowolnej kolumny.

Page 143: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

143

Operator ma możliwość podglądu wiadomości wysłanych lub odebranych od Pracodawcy.

Operator ma też możliwość przygotowania i wysłania wiadomości do Pracodawcy.

Operator może wyszukiwać użytkowników na liście użytkowników (filtry zrealizowane zostaną w ramach prac dodatkowych). Może edytować użytkowników przypisanych do danego pracodawcy jak również dodać nowego użytkownika lub zmienić jego hasło w przypadku zablokowania:

Page 144: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

144

Lista zdarzeń, do której Operator ma dostęp prezentowana będzie analogicznie do ekranu w Obszarze Pracodawcy. Operator ma możliwość zmiany statusu dokumentów zgłoszeniowych.

Page 145: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

145

19 Formatki dokumentów

Poniższe ekrany formatek są przykładami w celu załączenia do dokumentacji listy formularzy i ich zakresu widoków. Wydruk formularzy System będzie dopasowywał do szerokości stron w formacie A4 ich właściwym podziałem.

Page 146: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

146

19.1 Okres 2003

Page 147: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

147

Page 148: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

148

Page 149: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

149

Page 150: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

150

Page 151: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

151

19.2 Okres 2011

Page 152: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

152

Page 153: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

153

Page 154: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

154

Page 155: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

155

Page 156: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

156

19.3 Okres 2013

Page 157: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

157

Page 158: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

158

Page 159: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

159

Page 160: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

160

Page 161: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

161

Poniżej przedstawiono przykład formatki, która zawiera specjalne pola, które nie znajdują się na formularzach określonych w rozporządzeniach, a ułatwiają prawidłowe wypełnienie deklaracji (np. checboxy w bloku D.2 i D.3)

20 Walidacje Dokumentów

Walidacje określają sposób kontroli pól oraz ich zależności podczas kontrolowania wprowadzania danych dla poszczególnych dokumentów. Stanowią one załącznik do niniejszego dokumentu.

Page 162: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

162

21 Opis zarządczych i specjalistycznych produktów projektu zgodnie z metodyką PRINCE 2.

21.1 Opis Produktu: Dokumentacja projektowa Nazwa Dokumentacja projektowa

Kategoria produktu Produkt specjalistyczny

Zawartość 1. Projekt Wykonawczy:

1.1 Opis architektury Systemu i użytych technologii

1.2 Opis zakresu funkcjonalnego i niefunkcjonalnego Systemu:

1.2.1 Projekty Deklaracji zgodnie ze wskazanymi

Formularzami,

1.2.2 Role i opis przypadków użycia,

1.2.3 Projekt obsługi procesów określonych w OPZ,

1.2.4 Funkcje dla realizacji usług pomocy dla Pracodawców,

1.2.5 Opis zabezpieczeń danych i dostępu do zasobów

Systemu,

1.2.6 Funkcje synchronizacji danych z systemem Back-end,

1.2.7 Opis niefunkcjonalny Systemu,

1.2.8 Plan migracji danych z systemu e-PFRON,

2. Opis zarządczych i specjalistycznych produktów projektu zgodnie z

metodyką PRINCE 2.

3. Scenariusze testów - opis testów odbiorczych.

4. Diagram następstw

5. Dokumentacja powykonawcza

Format Wersja edytowalna (DOCX)

Kryteria Jakości Dokumentacja zgodna z Umową

Tryb odbioru Zgodny z Umową

Sposób odbioru

Powiązane produkty z Diagramu Następstw Produktów

Brak

Planowana faza Faza „Projektowanie”

21.2 Opis Produktu: Obszar Pracodawcy Nazwa Obszar Pracodawcy

Kategoria produktu Produkt specjalistyczny

Zawartość 1. Strona WWW ze statycznymi treściami – strona powitalna,

Page 163: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

163

instrukcje obsługi, odnośnik do ekranu logowania do Systemu, etc. (produkt obcy – Joomla CMS)

2. System e-PFRON2 – Obszar Pracodawcy – zgodnie z wyszczególnionymi funkcjonalnościami oraz przypadkami użycia w dokumentacji projektowej (produkt własny)

a) Aplet do generowanie certyfikatu PFRON (produkt własny wykonany na bazie projektu opensource)

b) Aplet do składania podpisu PFRON (produkt własny wykonany na bazie projektu opensource)

c) Aplet do rejestrowania certyfikatu kwalifikowanego oraz podpisywania dokumentów certyfikatem kwalifikowanym (produkt obcy – aplet firmy KIR)

3. Baza danych (produkt obcy - PostgreSQL) 4. Migracja danych z systemu e-PFRON 5. Dokumentacja instalacji i uruchomienia 6. Dokumentacja użytkowa

Format 1. Strona WWW – system CMS oraz kod strony w postaci plików z kodem HTML dostarczony na płycie DVD

2. System e-PFRON2 – oprogramowanie dostarczone na płycie DVD

3. Baza danych – oprogramowanie dostarczone na płycie DVD 4. Dokumentacja instalacji – Wersja edytowalna (DOCX) 5. Dokumentacja użytkowa – Wersja edytowalna (DOCX)

Kryteria Jakości Funkcyjne – istnieje i zwraca po testach prawidłowe wartości i/lub operacje Danych – zwraca po testach prawidłowe wartości i/lub operacje Wizualne – zgodność z kolorystyką i emblematami PFRON Komunikacji – istnieje i przekazuje dane zgodnie z założeniami testów Architektury – zgodność z dokumentacją projektową Dokumentacyjna – ilościowa oraz jakościowa (obejmuje wszystkie obszary opisane w dokumentacji projektowej oraz umowie i OPZ)

Tryb odbioru Zgodny z Umową

Sposób odbioru Przejście przez scenariusze testowe z dokumentacji projektowej oraz przetestowanie przez Zamawiającego produktu wg własnej metody.

Powiązane produkty z Diagramu Następstw Produktów

Dokumentacja projektowa

Planowana faza Faza „Wdrożenie” – Cześć I i Część II

21.3 Opis Produktu: Obszar Operatora Nazwa Obszar Operatora

Kategoria produktu Produkt specjalistyczny

Zawartość 1. Konsola operatora – Obszar Operatora – zgodnie z wyszczególnionymi funkcjonalnościami oraz przypadkami

Page 164: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

164

użycia w dokumentacji projektowej (produkt własny) 2. Baza danych z systemem backupowym - kopia bazy z obszaru

Front-end w obszarze Back-end z mechanizmem do backupu (produkt obcy – PostgreSQL)

3. Migracja danych 4. Dokumentacja instalacji i uruchomienia 5. Dokumentacja użytkowa

Format 1. Konsola operatora – oprogramowanie dostarczone na płycie DVD

2. Baza danych z systemem backupowym – oprogramowanie dostarczone na płycie DVD

3. Archiwum 4. Dokumentacja instalacji – Wersja edytowalna (DOCX) 5. Dokumentacja użytkowa – Wersja edytowalna (DOCX) 6.

Kryteria Jakości Funkcyjne – istnieje i zwraca po testach prawidłowe wartości i/lub operacje Danych – zwraca po testach prawidłowe wartości i/lub operacje Wizualne – zgodność z kolorystyką i emblematami PFRON Komunikacji – istnieje i przekazuje dane zgodnie z założeniami testów Architektury – zgodność z dokumentacją projektową i OPZ Dokumentacyjna – ilościowa oraz jakościowa (obejmuje wszystkie obszary opisane w dokumentacji projektowej oraz umowie i OPZ)

Tryb odbioru Zgodny z Umową

Sposób odbioru Przejście przez scenariusze testowe z dokumentacji projektowej oraz przetestowanie przez Zamawiającego produktu wg własnej metody.

Powiązane produkty z Diagramu Następstw Produktów

Obszar Pracodawcy

Planowana faza Faza „Wdrożenie” – Cześć I i Część II

Page 165: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

165

21.4 Opis Produktu: API Nazwa API

Kategoria produktu Produkt specjalistyczny

Zawartość 1. Webservices 2. Dokumentacja instalacji i uruchomienia 3. Dokumentacja użytkowa

Format 1. Webservices – oprogramowanie dostarczone na płycie DVD 2. Dokumentacja instalacji i uruchomienia – Wersja edytowalna

(DOCX) 3. Dokumentacja użytkowa – Wersja edytowalna (DOCX)

Kryteria Jakości Funkcyjne – istnieje i zwraca po testach prawidłowe wartości i/lub operacje Danych – zwraca po testach prawidłowe wartości i/lub operacje Komunikacji – istnieje i przekazuje dane zgodnie z założeniami testów Architektury – zgodność z dokumentacją projektową i OPZ Dokumentacyjna – ilościowa oraz jakościowa (obejmuje wszystkie obszary opisane w dokumentacji projektowej oraz umowie i OPZ)

Tryb odbioru Zgodny z Umową

Sposób odbioru Przejście przez scenariusze testowe z dokumentacji projektowej oraz przetestowanie przez Zamawiającego produktu wg własnej metody.

Powiązane produkty z Diagramu Następstw Produktów

Obszar Operatora

Planowana faza Faza „Wdrożenie” – Cześć I i Część II

21.5 Szkolenia Nazwa Szkolenie

Kategoria produktu Produkt specjalistyczny

Zawartość 1. Materiały szkoleniowe 2. Przeprowadzona procedura szkoleniowa

Format Materiały szkoleniowe w postaci elektronicznej - PPT

Kryteria Jakości Zakres szkolenia zgodny z Produktami opisanymi w dokumentacji projektowej Fazy I

Tryb odbioru Zgodny z Umową

Sposób odbioru Protokół odbioru potwierdzający przekazanie zawartości Produktu w szczególności poprzez dostarczenie dokumentacji szkoleniowej, podpisanej listy obecności uczestników szkolenia Weryfikacja dokumentacji szkoleniowej – zgodność dokumentacji szkoleniowej z zakresem merytorycznym Systemu opisanym w

Page 166: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

166

dokumentacji projektowej i OPZ. Certyfikaty ukończenia szkolenia dla uczestników

Powiązane produkty z Diagramu Następstw Produktów

Organizacja szkoleń od strony PFRON

Planowana faza Faza „Wdrożenie” – Cześć I i Część II

22 Opis testów odbiorczych

Testy systemu zostały przeprowadzone zgodnie z założeniami Projektu Wykonawczego oraz OPZ i umową.

Page 167: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

167

23 Struktura bazy danych – opis tabel

Poniżej znajduje się specyfikacja struktury bazy danych – opisane table wraz z kolumnami, typami danych i przedstawionym ich przeznaczeniem. Tabele o nazwach: ca, cert, wiadomość_old, z_pfr nie mają przeznaczenia w systemie ePFRON2, znajdują się w bazie ze względów archiwalnych. Jeśli dane, które się tam znajdują nie są użyteczne lub zostały w jakiś inny sposób zarchiwizowane – można usunąć te tabele z bazy danych. certyfikaty Tabela przechowuje certyfikaty użytkowników. Nazwa Typ Opis

id integer Klucz główny.

csr bytea Treść pliku z żądaniem certyfikatu (CSR) w formacie PEM.

cert bytea Treść certyfikatu publicznego w formacie PEM.

uzytkownik_id integer Identyfikator użytkownika, który jest właścicielem certyfikatu.

data_gen timestamp without time zone

Data utworzenia certyfikatu.

wazny_od timestamp without time zone

Data początku ważności certyfikatu.

wazny_do timestamp without time zone

Data końca ważności certyfikatu.

aktywny boolean Wartość określa, czy certyfikat jest aktywny: true - tak, false - nie.

kwalifikowany boolean Wartość określa, czy certyfikat jest kwalifikowany: true - tak, false - nie.

dokument Tabela przechowuje dokumenty złożone. Nazwa Typ Opis

id integer Klucz główny.

nrref character varying(20)

Numer referencyjny dokumentu.

okres date Okres sprawozdawczy za jaki dokument jest składany.

status character varying(10)

Status dokumentu.

data_zloz timestamp without time zone

Data złożenia.

data_stat timestamp without time zone

Data zmiany statusu.

tresc bytea Treść złożonego dokumentu w formie dokumentu XML.

komentarz character varying(700)

Komentarz (opis błędu w przypadku odrzucenia dokumentu).

ca_pk integer

typ_id smallint Identyfikator typu dokumentu.

podmiot_id integer Identyfikator podmiotu, który złożył dokument.

Page 168: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

168

dok_nadrzedny_id integer Identyfikator dokumentu nadrzędnego, jeżeli dokument był złożony jako załącznik. Wartość null oznacza dokument główny.

korekta boolean Wartość określa czy dokument jest korektą lub aktualizacją: true - tak, false - nie.

podpis_data timestamp without time zone

Data podpisania dokumentu.

podpis_uzytkownik_id integer Identyfikator użytkownika, który podpisał dokument.

podpis bytea Treść podpisu w formacie XAdES.

liczba_zalacznikow smallint Liczba załączników w dokumencie.

segregator_id integer Identyfikator segregatora.

segregator_numer integer Numer segregatora.

data_wplywu date Data wpływu dokumentu.

kod_bledu character varying(4)

Kod błędu.

operator_id integer Identyfikator operatora, który wprowadził dokument.

dokument_roboczy Tabela przechowuje dokumenty robocze bez załączników. Nazwa Typ Opis

id integer Klucz główny.

nrref character varying(20) Numer referencyjny dokumentu.

okres date Okres sprawozdawczy dokumentu.

data_zloz timestamp without time zone

Data utworzenia dokumentu.

data_mod timestamp without time zone

Data modyfikacji dokumentu.

tresc bytea Treść (dokument XML) dokumentu.

typ_id smallint Identyfikator typu dokumentu.

podmiot_id integer Identyfikator podmiotu, dla którego dokument roboczy został założony.

korekta boolean Wartość określa czy dokument jest korektą lub aktualizacją: true - tak, false - nie.

mod_uzytkownik_id integer Identyfikator użytkownika, który jako ostatni zmodyfikował dokument.

zloz_uzytkownik_id integer Identyfikator użytkownika, który założył dokument.

dokument_roboczy_zalacznik Tabela przechowuje załączniki dokumentów roboczych. Nazwa Typ Opis

dokument_roboczy_id integer Identyfikator dokumentu głównego, do którego jest przypisany załącznik.

tresc bytea Treść (dokument XML) załącznika.

typ_id smallint Identyfikator typu dokumentu.

id integer Klucz główny.

nrref character varying(20)

Numer referencyjny załącznika.

dokument_typ

Page 169: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

169

Definicje typów dokumentów. Nazwa Typ Opis

id smallint Klucz główny.

nazwa character varying(20)

Krótka nazwa typu bez sufixu roku publikacji np. DEK-I-0.

opis character varying(255)

Opis typu dokumentu.

wazny_od date Data, od której obowiązuje typ dokumentu.

wazny_do date Data, do której obowiązuje typ dokumentu.

kod character varying(20)

Kod dokumentu składający się z jego nazwy oraz sufixu roku np. DEK-I-0 13.

zalacznik boolean Wartość określa, czy dany typ dokumentu jest załącznikiem.

zalaczniki character varying(255)

Rodzielona przecinkami lista kodów typów dokumentów, które mogą być załącznikami dokumentu określonego typu.

roczny boolean Wartość określa, czy typ dotyczy dokumentów rocznych.

formatka Definicje formatek.

Nazwa Typ Opis

id integer Klucz główny.

dokument_typ_id smallint Id typu dokumentu (tabela „dokument_typ”).

pola bytea Definicja pól formatki.

szablon bytea Definicja szablonu formatki.

xsl bytea Dokument XSL służący do wizualizacji formatki.

konta_bankowe Tabela zawiera numery rachunków bankowych (NRB), które są wykorzystywane do generowania formatek przelewów. Są również prezentowane na stronie rachunków bankowych dla pracodawców zobowiązanych do wpłat na PFRON. Nazwa Typ Opis

id smallint Klucz główny.

konto character(26) Numer konta.

dokument_nazwa character varying(100)

Rodzielona przecinkami lista nazw typów dokumentów, do których konto jest przypisane np. DEK-I-0, DEK-R. Nazwy typów dokumentów są podane w tabeli „dokument_typ”.

opis character varying(255)

Opis konta.

kolejnosc smallint Liczba ustalająca pozycję rekordu podczas wyświetlania. Rekordy są sortowane od najmniejszysz wartości.

operator Tabela przechowuje informację o operatorach. Nazwa Typ Opis

id integer Klucz główny.

login character varying(20)

Login.

imie character varying(50)

Imię operatora.

nazwisko character Nazwisko operatora.

Page 170: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

170

varying(100)

haslo character varying(64)

Hasło zakodowane funkcją SHA512 z solą.

sol character varying(32)

Sól hasła.

status smallint Status operatora. Możliwe wartości to liczby z zakresu 0-3 gdzie 0 - nowy, 1 - aktywny, 2 - zablokowany, 3 - usunięty.

rola_id smallint Identyfikator roli operatora.

zmiana_hasla_data timestamp without time zone

Ostatnia data zmiany hasła.

operator_rola Tabela zawiera definicje ról operatorów wykorzystywanych w konsoli. Nazwa Typ Opis

id smallint Klucz główny.

nazwa character varying(50)

Nazwa roli.

opis character varying(255)

Opis roli.

kod character varying(50)

Kod roli. Kod musi mieć prefiks ROLE_. Dozwolone jedynie duże litery, cyfry oraz znak _.

operator_uprawnienia Tabela wiąże role operatorów z uprawnieniami. Nazwa Typ Opis

operator_rola_id smallint Identyfikator roli operatora.

uprawnienia_id smallint Identyfikator uprawnienia.

podmiot Tabela zawiera dane podmiotów. Nazwa Typ Opis

id integer Klucz główny.

nr_teczki character(9) Numer teczki podmiotu.

status character varying(150) Status podmiotu.

wojewodztwo character varying(255) Kod wojewodztwa.

nazwa character varying(255) Pełna nazwa podmiotu.

typ character varying(150) Typ podmiotu.

regon character(15) Regon.

adres character varying(150) Adres podmiotu.

miasto character varying(150) Miasto.

kod_p character(5) Kod pocztowy.

dom character varying(50) Numer domu.

lokal character varying(50) Numer lokalu.

nazwa_k character varying(255) Korespondencyjna pełna nazwa podmiotu.

miasto_k character varying(150) Korespondencyjna nazwa miasta.

kod_p_k character varying(5) Korespondencyjny kod pocztowy.

poczta_k character varying(150) Korespondencyjna poczta.

dom_k character varying(50) Korespondencyjny numer domu.

Page 171: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

171

adres_k character varying(150) Adres korespondencyjny.

lokal_k character varying(50) Korespondencyjny numer lokalu.

nip character(10) Numer Identyfikacji Podatkowej (NIP).

kontakt character varying(255) Dane kontaktowe typu: numer telefonu, fax.

osoba character varying(150) Osoba kontaktowa.

email character varying(255) Kontaktowy adres email.

poczta character varying(150) Poczta.

nrb character(26) Numer Rachunku Bankowego (NRB) pracodawcy.

data_gen timestamp without time zone Data dodania podmiotu.

data_mod timestamp without time zone Data modyfikacji podmiotu.

poczta_k character varying(150) Korespondencyjna poczta.

raport Tabela, w której przechowywane są raporty z operacji dokonanych przez użytkowników. Nazwa Typ Opis

typ character varying(10) Typ raportu.

data timestamp without time zone Data utworzenia raportu.

tresc text Treść raportu.

id integer Klucz główny.

podmiot_id integer Identyfikator podmiotu dla którego raport jest przeznaczony.

tytul character varying(200) Tytuł raportu.

rola Tabela zawiera definicje ról wykorzystywanych w serwisie pracodawcy. Nazwa Typ Opis

id smallint Klucz główny.

nazwa character varying(50)

Nazwa roli.

opis character varying(255)

Opis roli.

kod character varying(50)

Kod roli. Kod musi mieć prefiks ROLE_. Dozwolone jedynie duże litery, cyfry oraz znak _.

rola_uprawnienia Tabela wiąże role użytkowników z uprawnieniami. Nazwa Typ Opis

rola_id smallint Identyfikator roli użytkownika.

uprawnienia_id integer Identyfikator uprawnienia.

salda Tabela przechowuje informacje o saldzie podmiotu. Nazwa Typ Opis

id integer Klucz główny.

podmiot_id integer Identyfikator podmiotu, dla którego saldo zostało utworzone.

saldo_data date Okres, którego dotyczy saldo.

data_gen date Data utworzenia salda.

Page 172: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

172

pobranie_data timestamp without time zone

Data pobrania salda. Data jest uzupełniana po podpisaniu dokumentu przyjęcia salda.

pobranie_uzytkownik_id integer Idetyfikator użytkownika, który pobrał i podpisał saldo.

uwagi character varying(255)

Uwagi do salda zgłoszone przez użytkownika.

tekst bytea Treść prezentowana użytkownikowi.

kwoty bytea Informacje o kwotach salda.

nr_dok character varying(50) Nr dokumentu powiazanego z saldem.

status character(1) Status salda: 0 - niepotwierdzone, 1 - potwierdzone, 2 - odrzucone

segregator Tabela zawiera definicje segregatorów. Nazwa Typ Opis

id integer Klucz główny.

rok smallint Rok segregatora.

operator_id integer Identyfikator operatora, który jest właścicielem segregatora.

dokument_typ_id smallint Identyfikator typu dokumentu.

otwarty boolean Pole określa, czy segregator jest otwarty.

numer smallint Numer segregatora.

dok_num integer Ostatni numer dokumentu w segregatorze.

slownik Tabela zawiera definicje słowników. Nazwa Typ Opis

id smallint Klucz główny.

nazwa character varying(50) Nazwa słownika.

opis character varying(256) Opis słownika.

slownik_wartosc Tabela zawiera wartości przypisane do słowników. Nazwa Typ Opis

id integer Klucz główny.

slownik_id smallint Identyfikator słownika.

wartosc character varying(50)

Wartość.

nazwa character varying(600)

Nazwa wartości.

pozycja smallint Liczba ustalająca pozycję rekordu podczas wyświetlania. Rekordy są sortowane od najmniejszysz wartości.

srednie_wynagrodzenie Tabela przechowuje wartości dla okresowych przeciętnych wynagrodzeń. Nazwa Typ Opis

od date Data od kiedy średnie wynagrodzenie obowiązuje.

wartosc numeric(7,2) Wartość średniego wynagrodzenia.

id integer Klucz główny.

Page 173: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

173

uprawnienia Tabela zawiera definicje uprawnień wykorzystywanych w serwisie pracodawcy oraz konsoli. Nazwa Typ Opis

id smallint Klucz główny.

kod character varying(50)

Kod uprawnienia. Kod zaczyna się od prefiksu PERM_. Dozwolone są jedynie duże litery, cyfry oraz znak „_”.

nazwa character varying(100)

Nazwa uprawnienia.

ustawienia Tabela zawiera definicje edytowalnych ustawień użytych w systemie (teksty użyte na stronach, szablony wysyłanych emaili itd). Nazwa Typ Opis

nazwa character varying(255) Nazwa ustawienia - klucz główny.

wartosc text Wartość ustawienia.

typ character varying(50) Type MIME wartosci.

uzytkownik Tabela zawiera dane użytkowników. Nazwa Typ Opis

id integer Klucz główny.

login character varying(10)

Login.

imie character varying(50)

Imię.

nazwisko character varying(100)

Nazwisko.

haslo character varying(64)

Hasło użytkownika. Hasła mogą być kodowane za pomocą funkcji MD5 (bez soli) oraz SHA512 (z solą).

sol character varying(32)

Sól hasła.

data_rej timestamp without time zone

Data rejestracji.

zalog_prob smallint Liczba nieudanych prób logowania.

zalog_data_ost timestamp without time zone

blok_data timestamp without time zone

Data blokady konta.

blok_powod character varying(255)

Powód blokady konta.

zalog_data_post timestamp without time zone

Ostatnia data poprawnego zalogowania się użytkownika do systemu.

pesel_nip character Numer PESEL lub NIP użytkownika.

Page 174: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

174

varying(11)

zalog_blad_data_ost timestamp without time zone

Ostatnia data błędnego logowania.

status smallint Status użytkownika. Możliwe wartości to liczby z zakresu 0-3 gdzie 0 - nowy, 1 - aktywny, 2 - zablokowany, 3 - usunięty.

zmiana_hasla boolean Wartość określa, czy użytkownik ma zmienić hasło przy następnym logowaniu.

email character varying(255)

Adres email.

oswiadczenie_woli boolean Pole określa, czy użytkownika złożył oświadczenie woli. Możliwe trzy wartości null - oświadczenie woli nigdy nie było składane, true - oświadczenie woli zostało zaakceptowane, false - oświadczenie woli zostało odrzucone.

dane_xml bytea Dokument XML zawierający dane użytkownika generowany w trakcie rejestracji podpisu kwalifikowanego.

dane_xml_podpis bytea Podpis dokument XML (zawiera dane użytkownika) generowany w trakcie rejestracji podpisu kwalifikowanego.

uzytkownik_podmiot Tabela zawiera informację o przypisaniu użytkownika do określonego podmiotu. Nazwa Typ Opis

uzytkownik_id integer Identyfikator użytkownika.

podmiot_id integer Identyfikator podmiotu.

rola_id smallint Identyfikator roli przypisanej do użytkownika dla określonego podmiotu.

zablokowany boolean Pole określa, czy użytkownik jest zablokowany.

wiadomosc Tabela zawiera wiadomości wysyłane przez podmioty i operatorów.

Nazwa Typ Opis

id integer Klucz główny.

temat character varying(256)

Temat wiadomości.

tresc character varying(1024)

Treść wiadomości.

podmiot_nadawca_id integer Identyfikator podmiotu, który utworzył wiadomość. Wartość null oznacza, że wiadomość została utworzona przez operatora.

data_gen timestamp without time zone

Data utworzenia wiadomości.

operator_przeczytana boolean

operator_nadawca_id integer Identyfikator operatora, który utworzył wiadomość. Wartość null oznacza, że wiadomość została utworzona od strony pracodawcy.

operator_odbiorcy character varying(1024)

Lista odbiorców (podmiotów) podanych przez operatora podczas tworzenia widadomości.

dane_xml bytea Reprezentacja XML wiadomości.

dane_xml_podpis bytea Podpis wiadomości.

uzytkownik_nadawca_id integer Identyfikator użytkownika, który utworzył wiadomość.

Page 175: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

175

wiadomosc_zalacznik Tabela zawiera załączniki wiadomości. Nazwa Typ Opis

wiadomosc_id integer Identyfikator wiadomości.

nazwa character varying(255) Nazwa załącznika.

mime character varying(30) Typ MIME załącznika.

dane bytea Zawartość załącznika.

rozmiar integer Rozmiar załącznika w Bajtach.

wiadomosc_podmiot Tabela, w której przechowywane są informacje o podmiotach, do których wysłana została określona wiadomość. Nazwa Typ Opis

wiadomosc_id integer Identyfikator wiadomości.

podmiot_id integer Identyfikator podmiotu.

przeczytana boolean Wartość określa, czy wiadomość została przeczytana: true - trak, false - nie.

przeczytana_data timestamp without time zone

Data pierwszego odczytania wiadomości.

przeczytana_uzytkownik_id integer Identyfikator użytkownika, który jako pierwszy odczytał wiadomość.

usunieta boolean Wartość określa, czy wiadomość została usunięta: true - trak, false - nie.

wykluczenia Tabela zawiera definicje wykluczeń. Obecnie obsługiwane są wyłącznie wykluczenia typu 5 Nazwa Typ Opis

id integer Klucz główny.

typ smallint Typ wykluczenia. Obecnie wykorzystywany jest wyłącznie typ 5.

dok_typ_id smallint Identyfikator typu dokumentu.

wykl_dok_typ_id smallint Identyfikator typu dokumentu wykluczonego.

zdarzenie Tabel zawiera treści zdarzeń. Nazwa Typ Opis

id bigint Klucz główny.

ip inet Adres IP użytkownika lub operatora, dla którego zdarzenie zostało utworzone.

uzytkownik_id integer Identyfikator użytkownika, dla którego zdarzenie zostało wygenerowane. Wartość null oznacza, że wydarzenie zostało utworzone od strony konsoli.

wiadomosc character varying(512)

Treść zdarzenia.

data timestamp without time zone

Data utworzenia zdarzenia.

podmiot_id integer Identyfikator podmiotu, dla którego zdarzenie zostało wygenerowane. Wartość null oznacza, że wydarzenie zostało

Page 176: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

176

utworzone od strony konsoli.

operator_id smallint Identyfikator operatora, dla którego zdarzenie zostało wygenerowane. Wartość null oznacza, że wydarzenie zostało utworzone od strony pracodawcy.

zdarzenie_typ Tabela zawiera definicje typów zdarzeń. Możliwe typy zdarzeń oraz parametry wykorzystywane w szablonach wiadomości są opisane w stosownym rozdziale. Nazwa Typ Opis

id smallint Klucz główny.

aktywne boolean Wartość określ zdarzenie jest aktywne. Nieaktywne zdarzenia nie są zapisywane do tabeli „zdarzenie”.

typ character varying(50)

Typ zdarzenia.

wiadomosc character varying(512)

Szablon wiadomości wysyłanej w przypadku wystąpienia zdarzenia.

zgloszenie Tabela zawiera zapisane zgloszenia rejestracyjne pracodawcy i/lub administratora. Nazwa Typ Opis

id smallint Klucz główny.

data date Data zagłoszenia.

nr_teczki character varying(20) Nr podmiotu w rejestrze PFRON.

formularz_podmiotu bytea Zapisany XML formularza zgłoszenia podmiotu (DEK-Z lub INF-Z).

formularz_zap bytea Zapisane dane z formularza zgłoszeniowego ZAP.

pelna_nazwa character varying(255)

Nazwa podmiotu.

status character varying(10) Status zgłoszenia.

podmiot_pdf bytea Plik PDF formulazra zgłoszenia podmiotu.

zap_pdf bytea Plik PDF formularza ZAP.

podpis bytea Sygnatura podpisu kwalifikowanego dla formularza podmiotu.

nip character(10) Numer NIP podmiotu.

regon character(14) Numer REGON podmiotu.

nrref character varying(20) Numer referencyjny formularza zgłoszenia podmiotu.

Schemat bazy i relacje między tabelami, więzy integralności oraz klucze przedstawia poniższy schemat. Jego czytelniejsza wersja jest dołączona w wersji elektronicznej do dokumentacji powykonawczej systemu – załącznik nr 5. Integralność danych jest zapewniona przez natywne mechanizmy bazodanowe oraz kod aplikacji w miejscach gdzie w ten sposób system jest znacznie wydajniejszy.

Page 177: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

177

Page 178: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

178

24 Parametryzacja systemu

Wszystkie wartości w Systemie e-PFRON2, które może zmieniać Administrator będą parametryzowane z poziomu wprowadzania zmian w bazie danych. System został przygotowany w sposób umożliwiający dostęp do zapisów parametrów w odseparowanym segmencie silnika bazy tak aby po przeszkoleniu administrator Systemu mógł w łatwy sposób zmienić poszczególne parametry. Elementy, które mogą być parametryzowane to: 1. Nazwy i etykiety pól formatek 2. Proste reguły walidacyjne pól formatek 3. Zaawansowane reguły obliczeniowe (w kodzie Systemu) 4. Komunikaty błędów 5. Wartość przeciętnego wynagrodzenia i innych danych słownikowych 6. Numery rachunków bankowych do formatki przelewu 7. Instrukcje obsługi wyjaśnień Opis struktury bazy danych został przedstawiony w rozdziale Struktura bazy danych – opis tabel.

24.1 Pliki konfiguracyjne

Konfiguracja aplikacji znajduje się w plikach zlokalizowanych w katalogu <ścieżka_do_aplikacji>/app/config. Konfiguracja jest umieszczona w kliku plikach, z których najważniejsze to: parameters.yml oraz pfron.yml. Pozostałe pliki są związane z konfiguracją frameworka Symfony2 i nie powinny być edytowane.

Początek formularza

Dół formularza

24.1.1 Plik parameters.yml

parameters:

database_driver: pdo_pgsql

database_host: 192.168.20.190

database_port: 5432

database_name: pfron

database_user: superadmin

database_password: qwerty

mailer_transport: smtp

mailer_host: 127.0.0.1

mailer_user: null

mailer_password: null

locale: pl

secret: kal$123_02KWasd

date_format: Y-m-d H:i

date_format_short: Y-m-d

date_format_full: Y-m-d H:i:s

Page 179: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

179

gdzie: database_driver - zawsze pdo_pgsql database_host - adres ip lub domena serwera postgresql database_port - port database_name - nazwa bazy danych database_user - nazwa użytkownika w bazie danych database_password - hasło użytkownika mailer_transport - sposób transportu wiadomości email, wartość powinna być ustawiona na smtp mailer_host - adres ip lub domena serwera pocztowego mailer_user - nazwa użytkownika na serwerze pocztowym mailer_password - hasło użytkownika na serwrze pocztowym secret - losowy ciąg znaków, wykorzystywana m.in. do generowania tokenów CSRF date_format - domyślny format daty (format zgodny z http://php.net/manual/pl/function.date.php) date_format_short - krótki format daty date_format_full - pełny format daty

Początek formularza

Dół formularza

24.1.2 Plik pfron.yml

Przykładowa konfiguracji:

pfron:

login_max_attempts: 3

document_max_upload_size: 1048576

session_idle_time: 900

message:

attachment_max_size: 1048576

attachment_allowed_mime_types: ["application/pdf", "text/plain"]

security:

permissions_manager: pfron.console.security.permissions_manager

caches:

default:

type: "array"

document_def_manager_cache:

name: "default"

lifeTime: 1800

dictionary_cache:

name: "default"

lifetTime: 1800

gdzie: login_max_attempts - maksymalna liczba prób logowania dla jednego użytkownika. Parametr działa jedynie na stronie pracodawcy. message - nazwa sekcji, związanej z konfiguracją parametrów wiadomości. Parametr działa jedynie w konsoli. attachment_max_size - maksymalny rozmiar załącznika wiadomości w Bajtach.

Page 180: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

180

attachment_allowed_mime_types - dozwolone typy mime załączników wiadomości. session_idle_time - dozwolony czas bezczynności użytkownika w sekundach. security - sekcja związana z dodatkowymi parametrami konfiguracji mechanizmów zabezpieczeń. permissions_manager - nazwa usługi zarządzania uprawnieniami. caches - sekcja definicji mechanizmów cache'y. Sekcja może zawierać jeden lub więcej elementów w formacie:

nazwa:

type: <string>

host: <string>

port: <integer>

gdzie: nazwa - jest dowolną nazwą sekcji np. default, array etc. type - typ cache'a. Możliwe są trzy wartości: array, apc (Alternative PHP Cache) oraz memcached (http://pl.wikipedia.org/wiki/Memcached). host - parametr wymagany gdy jako typ cache jest wybrany memcached. Określa adres ip lub domenę serwer memcached. port - parametr wymagany gdy jako typ cache jest wybrany memcached. Określa port serwer memcached.

document_def_manager_cache - sekcja konfiguracji cache'a dla managera definicji formatek. Parametr name określa nazwę cache'a zdefiniowanego w sekcji „caches”. Parametr „lifeTime” określa czas przechowywania wartości w cache'u w sekundach (wartość 0 oznacza, że wartości nie są nigdy usuwane). dictionary_cache - sekcja konfiguracji cache'a dla słowników. Parametry „name” oraz „lifeTime” mają takie same zaczenie jak w sekcji „document_def_manager_cache”.

Początek formularza

Dół formularza

Zalogowany jako: lukasz (lukasz) mantis/pfron/dev/config_files.txt · ostatnio zmienione: 04-10-2013 08:12 przez mirek

Początek formularza

Dół formularza Początek formularza

Dół formularza Początek formularza

Dół formularza Początek formularza

Dół formularza Początek formularza

Dół formularza Początek formularza

Dół formularza

24.2 Formatki Formatki zapisywane są w bazie danych w tabeli „formatka”. Składają się z trzech części: Definicji pól formatki (zapisywany w kolumnie „pola”). Definicja określa strukturę, definicję pól i reguł walidacji formatki (zobacz Reguły walidacji). Szablonu formatki (zapisywany jest w kolumnie „szablon”). Szablon opisuje wygląd formularza HTML wykorzystywana w serwisie WWW. Dokumentu XSL (zapisywany w kolumnie „xls”), który służy do przekształcenia dokumentu XML. Wykorzystywany jest do generowania podglądu i wersji do druku dokumentu.

Page 181: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

181

24.2.1 Definicja pól formatki

Definicja formatki jest zapisywana w formacie YAML (http://pl.wikipedia.org/wiki/YAML) i posiada następującą strukturę: handler: <string>

controller: <string>

modeField: <string>

periodYearField: <string>

periodMonthField: <string>

completeDateField: <string>

amountField: <string>

copyExcludedFields: <array>

fields: <lista>

gdzie: handler - nazwa klasy lub serwisu, który odpowiada za przetwarzanie pól formatki. Dodatkowo handler zawiera metody obsługujące niestandardowe walidacje, które są powiązane z formatką. Jeżeli wartość zaczyna się od znaku @ wyszukiwany zostanie serwis o podanej nazwie, w innym przypadku będzie poszukiwana klasa. controller - nazwa klasy lub serwisu, który odpowiada za dodatkowe przetwarzanie widoku i danych formatki. Jeżeli wartość zaczyna się od znaku @ będzie wyszukiwany serwis o podanej nazwie, w innym przypadku będzie poszukiwana klasa. Pole to nie jest wymagane. modeField - nazwa pola, które przechowuje typ deklaracji tzn. czy jest zwykła, czy jest korektą. periodYearField - nazwa pola, które przechowuje rok w okresie sprawozdawczym. periodMonthField - nazwa pola, które przechowuje miesiąc w okresie sprawozdawczym. completeDateField – nazwa pola, które przechowuje datę deklaracji. amountField - nazwa pola zawierającego kwotę, wykorzystywaną podczas generowania formatki przelewu. Wskazane pole musi być typu „decimal” lub „currency”. copyExcludedFields - tablica, zawierająca nazwy pól, które nie są kopiowane. fields - określa listę pól, ich sposób wyświetlania oraz reguły walidacji dostępnych w dokumencie i formatce. Każdy element listy ma następujący format: <nazwa_pola>:

alias: <string>

type: <string>

inputType: <string>

initValue: <string>

params:

constraints: <lista>

gdzie: <nazwa_pola> - nazwa pola w dokumencie XML np. a1, b12_1 etc. alias - alias pola wykorzystywany w szablonie formatki i określa nazwę kontrolki w formularzu HTML. type - typ pola. Typ pola jest istotny w trakcie zapisywania i odczytu wartości do dokumentu XML. Odpowiada za poprawną konwersję wartości pola. Dopuszczalne są poniższe wartości: text - typ tekstowy dateTime - data i czas. Wartość pola zapisywana jest do dokumentu XML w formacie RRRR-mm-dd gg:ii:ss (gdzie ii oznacza minutę). date - data. Wartość pola zapisywana jest do dokumentu XML w formacie RRRR-mm-dd. currency - waluta. Wartość zapisywana jest do dokumentu XML z kropką jako separatorem części dziesiętnej, bez separatora tysięcy np. 100.11.

Page 182: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

182

decimal - liczba zapisana w systemie dziesiętnym. Wartość zapisywana jest do dokumentu XML z kropką jako separatorem części dziesiętnej, bez separatora tysięcy np. 100.11. W odróżnieniu od typu „currency”, można zmienić precyzję zapisu części dziesiętnych poprzez zdefiniowanie parametru „precision” w sekcji „params” w definicji pola. Precyzja równa zero powoduje, że wartość zapisana jest bez części dziesiętnej np. 100. Jeżeli parametr „type” nie jest podany, domyślnie przyjmowany jest typ „text”. inputType - typ pola kontrolki np.: text, choice, password, jqRegon, jqNip etc. (zobacz rozdział Kontrolki) initValue - wartość początkowa pola. params - parametry kontrolki oraz reguły walidacji. Parametry są różne w zleżności od typu kontroli. constraints - reguły walidacji (zobacz rozdział Reguły walidacji). Lista, której pojedynczy element definiowany jest w poniższy sposób: <nazwa_reguły_walidacji>:

<parametry>

Jeżeli reguła walidacji nie posiada parametrów, lub chcemy zachować parametry domyślne, zapisujemy ją następująco: <nazwa_reguły_walidacji>: ~

Przykład definicji formatki: handler: '@pfron.doc_handler.dek_i_0_2003'

controller: '@pfron.doc_controller.dek_i_0_2011'

modeField: 'b12'

periodYearField: 'b11_2'

periodMonthField: 'b11_1'

fields:

b1:

alias: "pfron"

inputType: "jqPfron"

initValue: "@company.pfronNumber"

params:

constraints:

NotBlank:

message: 'Poz.1 - Brak wypełnienia pozycji (Numer w rejestrze

PFRON).'

Pfron:

message: 'Poz.1 - Błędny numer w rejestrze PFRON.'

24.2.2 Szablon formatki

Szablon formatki opisuje wygląd formularza HTML formatki. Jest tworzony przy wykorzystaniu biblioteki Twig (http://twig.sensiolabs.org/). Poszczególne kontrolki formatki osadzane są w poniższy sposób: {{ form_widget(form.<alias>) }}

{{ form_errors(form.<alias>) }}

Metoda „form_widget” odpowiada za renderowanie kontrolki, natomiast metoda „form_errors” jest odpowiedzialna za renderowanie komunikatów błędów kontrolki.

24.3 Reguły walidacji

NotBlank

Sprawdzenie, czy podana wartość nie jest pusta.

Page 183: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

183

Parametry:

message (typ:string, wymagane: nie) - komunikat błędu.

NotBlankIf

Sprawdzenie, czy podana wartość nie jest pusta jeśli zachodzi warunek.

Parametry:

message (typ:string, wymagane: nie) - komunikat błędu. value (typ:string, wymagane: tak) - podstawiana wartość, np. innego pola compareTo (typ:string, wymagane: nie, domyślnie: 1) - wartość do której zachodzi

porównanie

Period

Sprawdzenie, czy podana wartość jest okresem sprawozdawczy i mieści się w podanym zakresie.

Parametry:

limit (typ:string, wymagane: tak) - data początku (w formacie RRRR-mm-dd) okresu sprawozdawczego.

limitTo (typ:string, wymagane: nie) - data końcowa (w formacie RRRR-mm-dd) okresu sprawozdawczego. Jeżeli data końcowa nie jest podana, sprawdzany jest tylko data początkowa.

yearValue (typ:string, wymagane: tak) - nazwa pola, które zawiera wartość roku okresu sprawozdawczego.

monthValue (typ:string, wymagane: tak) - nazwa pola, które zawiera wartość miesiąca okresu sprawozdawczego.

invalidMessage (typ:string, wymagane: nie) - komunikat błędu pokazywany w przypadku, gdy okres sprawozdawczy ma niepoprawny format.

message (typ:string, wymagane: nie) - komunikat błędu pokazywany w przypadku, gdy okres nie mieści się w podanym zakresie.

Password

Sprawdzenie, czy podana wartość jest poprawnym hasłem.

Parametry:

message (typ:string, wymagane: nie) - komunikat błędu.

Page 184: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

184

Dictionary

Sprawdzenie, czy podana wartość występuje w słowniku.

Parametry:

dictionaryName (typ:string, wymagane: tak) - nazwa słownika message (typ:string, wymagane: nie) - komunikat błędu.

EqualTo

Sprawdzenie, czy podana wartość (musi być typu numeric) jest równa liczbie podanej w parametrze „value”.

Parametry:

value (typ:numeric, wymagane: nie, domyślnie: 0) - liczba z którą będzie porównana podana wartość

message (typ:string, wymagane: nie) - komunikat błędu

NotEqualTo

Sprawdzenie, czy podana wartość (musi być typu numeric) jest różna od liczby podanej w parametrze „value”.

Parametry:

value (typ:numeric, wymagane: nie, domyślnie: 0) - liczba z którą będzie porównana podana wartość

message (typ:string, wymagane: nie) - komunikat błędu.

GreaterThan

Sprawdzenie, czy podana wartość (musi być typu numeric) jest większa od liczby podanej w parametrze „value”.

Parametry:

value (typ:numeric, wymagane: nie, domyślnie: 0) - liczba z którą będzie porównana podana wartość

message (typ:string, wymagane: nie) - komunikat błędu.

Page 185: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

185

GreaterThanOrEqual

Sprawdzenie, czy podana wartość (musi być typu numeric) jest większa lub równa liczbie podanej w parametrze „value”.

Parametry:

value (typ:numeric, wymagane: nie, domyślnie: 0) - liczba z którą będzie porównana podana wartość

message (typ:string, wymagane: nie) - komunikat błędu.

LessThan

Sprawdzenie, czy podana wartość (musi być typu numeric) jest mniejsza od liczby podanej w parametrze „value”.

Parametry:

value (typ:numeric, wymagane: nie, domyślnie: 0) - liczba z którą będzie porównana podana wartość.

message (typ:string, wymagane: nie) - komunikat błędu.

LessThanOrEqual

Sprawdzenie, czy podana wartość (musi być typu numeric) jest mniejsza lub równa od liczby podanej w parametrze „value”.

Parametry:

value (typ:numeric, wymagane: nie, domyślnie: 0) - liczba z którą będzie porównana podana wartość.

message (typ:string, wymagane: nie) - komunikat błędu.

Range

Sprawdzenie, czy podana wartość (musi być typu numeric) mieści się w podanym zakresie.

Parametry:

min (typ:numeric, wymagane: nie, domyślnie: 0) - zakres dolny. max (typ:numeric, wymagane: nie, domyślnie: 0) - zakres górny. invalidMessage message (typ:string, wymagane: nie) - komunikat pokazywana jeżeli

podana wartość nie jest typu numeric.

Page 186: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

186

message (typ:string, wymagane: nie) - komunikat błędu pokazywana jeżeli podana wartość nie mieści się w zakresie.

Length

Sprawdzenie, czy liczba znaków podanej wartości (musi być typu string) mieści się w podanym zakresie. Jeden z parametrów „min” lub „max” musi być podany.

Parametry:

min (typ:numeric, wymagane: nie, domyślnie: 0) - zakres dolny. max (typ:numeric, wymagane: nie) - zakres górny. message (typ:string, wymagane: nie) - komunikat błędu pokazywana jeżeli podana wartość

nie mieści się w zakresie.

Length50

Sprawdzenie, czy liczba znaków podanej wartości (musi być typu string) nie jest większa od 50.

Parametry:

message (typ:string, wymagane: nie) - komunikat błędu.

Length150

Sprawdzenie, czy liczba znaków podanej wartości (musi być typu string) nie jest większa od 150.

Parametry:

message (typ:string, wymagane: nie) - komunikat błędu.

Length2255

Sprawdzenie, czy liczba znaków podanej wartości (musi być typu string) mieści się w zakresie od 2 do 255.

Parametry:

message (typ:string, wymagane: nie) - komunikat błędu.

MaskedDate

Page 187: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

187

Sprawdzenie, czy podana wartość (musi być typu string) jest datą w formacie: RRRR-mm-dd, mm-RRRR lub RRRR-mm.

Parametry:

message (typ:string, wymagane: nie) - komunikat błędu. allowFuture (typ:boolean, wymagane: nie, domyślnie: false) - dopuszczenie przyszłej daty.

Pkd

Sprawdzenie, czy podana wartość jest prawidłowym numerem PKD.

Parametry:

message (typ:string, wymagane: nie) - komunikat błędu.

NRB

Sprawdzenie, czy podana wartość jest prawidłowym Numerem Rachunku Bankowego (NRB).

Parametry:

message (typ:string, wymagane: nie) - komunikat błędu.

Nip

Sprawdzenie, czy podana wartość jest prawidłowym numerem NIP.

Parametry:

message (typ:string, wymagane: nie) - komunikat błędu.

Pesel

Sprawdzenie, czy podana wartość jest prawidłowym numerem PESEL.

Parametry:

message (typ:string, wymagane: nie) - komunikat błędu

Regon

Page 188: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

188

Sprawdzenie, czy podana wartość jest prawidłowym numerem REGON.

Parametry:

message (typ:string, wymagane: nie) - komunikat błędu.

PostalCode

Sprawdzenie, czy podana wartość jest prawidłowym kodem pocztowym zapisanym w formacie xx-xxx.

Parametry:

message (typ:string, wymagane: nie) - komunikat błędu.

Email

Sprawdzenie, czy podana wartość jest prawidłowym adresem email.

Parametry:

message (typ:string, wymagane: nie) - komunikat błędu.

Pfron

Sprawdzenie, czy podana wartość jest prawidłowym numerem teczki.

Parametry:

message (typ:string, wymagane: nie) - komunikat błędu.

Callback

Walidator, który wykorzystuje metodę zdefiniowanej klasy do weryfikacji podanej wartości.

Parametry:

method (typ:array, wymagane: tak) - tablica zawierające nazwę klasy i metody walidacji zapisana w formacie [<nazwa_klasy>, <nazwa_metody>] np. ['Passus\Bundle\PfronBundle\Document\Handlers\DekI011Handler', 'validateC23'].

message (typ:string, wymagane: nie) - komunikat błędu .

Page 189: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

189

Metoda musi być zdefiniowana w poniższy sposób:

static public function <nazwa_metody>($value, ExecutionContextInterface

$context);

gdzie: <nazwa_metody> - nazwa metody walidacji. $value - sprawdzana wartość. $context - kontekst uruchomienia metody walidacji.

Aby zwrócić informację o błędzie należy wywołać metodę $context→addViolation(<string> $message). Jeżeli metoda addViolation nie zostanie wywołana, uznaje się, że sprawdzana wartość jest poprawna.

Najważniejszą funkcją kontekstu jest dostarczenie informacji o sprawdzanym dokumencie. Dokonuje się tego wywołując metodę $context→getRoot(). Metoda zwraca obiekt typu PfronDocument, który reprezentuje weryfikowany dokument. Najważniejsze metody obiektu typu PfronDocument:

getType() - typ dokumentu w formie krótkiej np. DEK-I-O. getCode() - typ dokumentu w formie długiej np. DEK-I-0 13. getId() - numer referencyjny dokumentu. getAppVersion() - wersja aplikacji, która utworzyła dokument. getFieldsName() - tablica, zawierające nazwy pól zdefiniowanych w dokumencie. getField(<string> $name) - pobiera wartość pola o podanej nazwie. hasField(<boo> $name) - sprawdza, czy pole o podanej nazwie jest zdefiniowane. countAttachments() - podaje liczbę załączników. getAttachment(<integer> $index) - zwraca załącznik dokumentu o podanym indeksie.

Jeżeli załącznik istnieje, zwracany jest obiekt typu PfronDocument w innym przypadku null.

getAttachments() - zwraca wszystkie załączniki w dokumencie w postaci tablicy obiektów typu PfronDocument.

24.4 Kontrolki

text

Kontrolka reprezentująca pole tekstowe. Renderowana jest jako <input type=„text” />.

Parametry:

disabled (typ: bool, domyślnie: false) - określa, czy pole ma być wyłączone, co uniemożliwia edycję wartości przez użytkownika

read_only (typ: bool, domyślnie: false) - jeżeli wartość jest ustawiona na true, ustawiany jest atrybut „readonly”

max_length (typ: integer) - maksymalna liczba znaków trim (typ: bool, domyślnie: false) - maksymalna liczba znaków

Page 190: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

190

choice

Kontrolka umożliwiająca realizację wyboru jednej lub wielu wartości. Może być renderowana jako select (domyślnie), radio lub checkbox.

Parametry:

disabled (typ: bool, domyślnie: false) - określa, czy pole ma być wyłączone, co uniemożliwia edycję wartości przez użytkownika

read_only (typ: bool, domyślnie: false) - jeżeli wartość jest ustawiona na true, ustawiany jest atrybut „readonly”

choices (typ: array, domyślnie: array()) - wybierane wartości. Tablicy asocjacyjna w której klucz tablicy jest wartością a wartość tablicy opisem.

multiple (typ: bool, domyślnie: false) - jeżeli ustawione jest false, realizowany jest wybór jednokrotny w przeciwnym przypadku wielokrotny.

expanded (typ: bool, domyślnie: false) - jeżeli ustawione jest true, kontrolka renderowana jest jako radio lub listę pól typu checkbox jeżeli dodatkowo multiple ustawione jest na true. W innym przypadku renderowany jest select.

dictionary

Działanie kontrolki jest podobne do „choice” z tą różnicą, że wartości pobierane są automatycznie ze słownika, którego nazwa jest podana w parametrach. Dziedziczy parametry po „choice”, ale parmaetr „choices” jest ustawiany automatycznie.

Parametry:

dictionaryName (typ: string, wymagane: tak) - nazwa słownika

checkbox

Kontrolka reprezentująca checkbox. Wartość zwrotna jest typu bool (true jeżeli checkbox jest zaznaczony, w przeciwnym przypadku false).

Parametry:

disabled (typ: bool, domyślnie: false) - określa, czy pole ma być wyłączone, co uniemożliwia edycję wartości przez użytkownika

read_only (typ: bool, domyślnie: false) - jeżeli wartość jest ustawiona na true, ustawiany jest atrybut „readonly”

strcheckbox

Page 191: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

191

Kontrolka podobna do checkbox, w odróżnieniu do niej zwraca zdefiniowaną wartość. Dziedziczy parametry po „checkbox ”.

Parametry:

value (typ: string, wymagane: nie, domyślnie: 1) - wartość zwracana, jeżeli checkbox jest zaznaczony.

jqMaskedInput

Kontrolka reprezentująca pole tekstowe, które dodatkowo posiada maskę, która określa format wprowadzanych danych. Dziedziczy parametry po „text”.

Parametry:

mask (typ: string, wymagane: tak) - maska.

Do definicji maski używane są trzy znaki:

a - reprezentuje literę (małą lub dużą) 9 - reprezentuje cyfrę * - reprezentuje cyfrę lub literę (małą lub dużą)

jqDecimal

Kontrolka reprezentująca liczbę dziesiętną. Dziedziczy parametry po „text”.

Parametry:

precision (typ: integer, domyślnie: 2) - precyzja zapisu części dziesiętnej.

jqMaskedDecimal

Kontrolka reprezentująca pole liczbowe, które dodatkowo posiada maskę, która określa format wprowadzanych danych. Połączenie kontrolki jqDecimal oraz jqMaskedInput.

Parametry:

precision (typ: integer, domyślnie: 2) - precyzja zapisu części dziesiętnej. mask (typ: string, wymagane: tak) - maska.

jqCurrency

Page 192: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

192

Kontrolka podobna do jqDecimal. Różnica polega na tym, że precyzja ustawiona jest zawsze na 2.

jqNip

Kontrolka podobna do jqMaskedInput, reprezentuje numer NIP. Automatycznie ustawiany jest parametr mask na „9999999999”.

jqRegon

Kontrolka podobna do jqMaskedInput, reprezentuje numer REGON. Automatycznie ustawiany jest parametr mask na „999999999?99999”.

jqNrb

Kontrolka podobna do jqMaskedInput, reprezentuje numer NRB (Numer Rachunku Bankowego). Automatycznie ustawiany jest parametr mask na „99 9999 9999 9999 9999 9999 9999”.

jqPesel

Kontrolka podobna do jqMaskedInput, reprezentuje numer PESEL. Automatycznie ustawiany jest parametr mask na „99999999999”.

jqPfron

Kontrolka podobna do jqMaskedInput, reprezentuje numer teczki w systemie PFRON. Automatycznie ustawiany jest parametr mask na „99a9999a9”.

jqMaskedDate

Kontrolka podobna do jqMaskedInput, reprezentuje datę w formacie 9999-99-99.

24.5 Zdarzenia - typy zdarzeń

Typ zdarzeń zapisywane są w bazie danych w tabeli „zdarzenie_typ”. Mechanizm zdarzeń wykorzystuje mechanizm szablonów Twig (http://twig.sensiolabs.org/) do generowania komunikatów zdarzeń.

Początek formularza

Page 193: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

193

Dół formularza

Lista typów zdarzeń z możliwymi parametrami:

user_registered

Użytkownika zarejestrowany.

Parametry:

newUser (typ:user) - użytkownik zarejestrowany

login_fail

Nieudane logowanie użytkownika.

Parametry:

login (typ:string) - login podany podczas autentykacji

logout

Wylogowanie użytkownika.

Parametry:

user (typ:user) - użytkownik, który się wylogował

login_success

Udane logowanie użytkownika.

Parametry:

user (typ:user) - użytkownik, który się zalogował

operator_login_success

Udane logowanie operatora.

Parametry:

Page 194: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

194

user (typ:user) - operator, który się zalogował

operator_login_fail

Nieudane logowanie operatora.

Parametry:

login (typ:string) - login podany podczas autentykacji

operator_logout

Wylogowanie operatora.

Parametry:

user (typ:user) - operator, który się wylogował

operator_user_add

Dodanie użytkownika przez operatora.

Parametry:

newUser (typ:user) - użytkownik, który został dodany user (typ:user) - operator, który wykonał operację

operator_operator_add

Dodanie konta operatora przez operatora.

Parametry:

newUser (typ:user) - operator, który został dodany user (typ:user) - operator, który wykonał operację

operator_operator_modify

Modyfikacja konta operatora przez operatora.

Parametry:

Page 195: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

195

editedUser(typ:user) - operator, którego konto zostało zmodyfikowane user (typ:user) - operator, który wykonał operację

operator_operator_password_change

Modyfikacja hasła operatora przez operatora.

Parametry:

editedUser(typ:user) - operator, którego hasło zostało zmienione user (typ:user) - operator, który wykonał operację

user_delete

Usunięcie użytkownika.

Parametry:

login (typ:string) - login użytkownika usuniętego user (typ:user) - użytkownik wykonujący operację

user_cert_qualified_register

Rejestracja podpisu kwalifikowanego przez operatora.

Parametry:

user (typ:user) - użytkownik wykonujący operację

certificate_generate

Utworzenie certyfikatu publicznego przez użytkownika.

Parametry:

user (typ:user) - użytkownik wykonujący operację

login_attempts_exceeded

Przekroczono liczbę dopuszczalnych prób logowań.

Page 196: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

196

Parametry:

maxAttemptsLimit (typ:string) - liczba podjętych prób logowania login (typ:string) - login podany podczas logowania blockDate (typ:string) - data do której blokada będzie obowiązywać

message_open

Odczytanie wiadomości przez użytkownik.

Parametry:

message.id (typ:integer) - id odczytanej wiadomości user (typ:user) - użytkownik wykonujący operację

message_send

Wysłanie wiadomości przez użytkownik.

Parametry:

message.id (typ:integer) - id odczytanej wiadomości user (typ:user) - użytkownik wykonujący operację

message_delete

Usunięcie wiadomości przez użytkownik.

Parametry:

id (typ:integer) - id usuniętej wiadomości user (typ:user) - użytkownik wykonujący operację

public_certificate_download

Pobranie certyfikatu przez użytkownik.

Parametry:

login (typ:string) - login użytkownika, którego certyfikat pubiczny został pobrany user (typ:user) - użytkownik wykonujący operację

Page 197: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

197

operator_message_open

Parametry:

message.id (typ:integer) - id odczytanej wiadomości user (typ:user) - operator wykonujący operację

operator_message_send

Wysłanie wiadomości przez operatora.

Parametry:

message.id (typ:integer) - id odczytanej wiadomości user (typ:user) - użytkownik wykonujący operację

operator_password_change

Zmiana hasła przez operatora.

Parametry:

user (typ:user) - operator wykonujący operację

operator_user_password_change

Zmiana hasła użytkownika przez operatora.

Parametry:

user (typ:user) - operator wykonujący operację userEdited (typ:user) - dane użytkownika, którego hasło zostało zmienione

operator_user_change_role

Zmiana roli użytkownika przez operatora.

Parametry:

user (typ:user) - operator wykonujący operację userEdited (typ:user) - dane użytkownika, którego dane zostały zmienione

Page 198: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

198

pfronNumber (typ:string) - numer teczki podmiotu oldRole (typ:string) - dotychczasowa rola newRole (typ:string) - nowa rola

operator_user_change_status

Zmiana statusu użytkownika przez operatora.

Parametry:

user (typ:user) - operator wykonujący operację userEdited (typ:user) - dane użytkownika, którego dane zostały zmienione pfronNumber (typ:string) - numer teczki podmiotu oldStatus (typ:string) - dotychczasowy status newStatus (typ:string) - nowy status

operator_user_ change_pesel

Zmiana numeru PESEL użytkownika przez operatora.

Parametry:

user (typ:user) - operator wykonujący operację userEdited (typ:user) - dane użytkownika, którego dane zostały zmienione oldPesel (typ:string) – poprzedni numer PESEL newPesel (typ:string) – nowy numer PESEL

operator_user_ change_email

Zmiana adresu email użytkownika przez operatora.

Parametry:

user (typ:user) - operator wykonujący operację userEdited (typ:user) - dane użytkownika, którego dane zostały zmienione oldEmail (typ:string) – poprzedni adres email newEmaill (typ:string) – nowy adres email

operator_register_accepted

Akceptacja rejestracji pracodawcy przez operatora.

Parametry:

user (typ:user) - operator wykonujący operację

Page 199: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

199

nr(typ:string) - numer zaakceptowanego zgłoszenia

operator_register_rejected

Odrzucenie rejestracji pracodawcy przez operatora.

Parametry:

user (typ:user) - operator wykonujący operację reason(typ:string) - powód odrzucenia pracodawcy nr(typ:string) - numer zaakceptowanego zgłoszenia

document_draft_delete

Usunięcie dokumentu roboczego przez użytkownika.

Parametry:

user (typ:user) - użytkownik wykonujący operację nrref (typ:string) - numer referencyjny usuniętego dokumentu roboczego

document_add

Złożenie dokumentu przez użytkownika.

Parametry:

user (typ:user) - użytkownik wykonujący operację nrref (typ:string) - numer referencyjny złożonego dokumentu

document_add_error

Błąd w trakcie składania dokumentu.

Parametry:

message (typ:string) – treść komunikatu błędu nrref (typ:string) - numer referencyjny składanego dokumentu

document_draft_add

Dodanie dokumentu roboczego przez użytkownika.

Parametry:

Page 200: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

200

user (typ:user) - użytkownik wykonujący operację nrref (typ:string) - numer referencyjny dodanego dokumentu roboczego

document_draft_modify

Modyfikacja dokumentu roboczego przez użytkownika.

Parametry:

user (typ:user) - użytkownik wykonujący operację nrref (typ:string) - numer referencyjny modyfikowanego dokumentu roboczego

document_status_change

Zmiana statusu dokumentu.

Parametry:

status (typ:string) - status dokumentu np. TRANS, AKCEPT etc. Aby pobrać nazwę wyświetlaną statusu należy wywołać funkcję dict('dokument_status', status).

nrref (typ:string) - numer referencyjny dokumentu

document_bank_transfer_download

Wygenerowanie i pobranie formatki przelewu.

Parametry:

user (typ:user) - użytkownik wykonujący operację nrref (typ:string) - numer referencyjny dokumentu

document_html_download

Pobranie wersji HTML dokumentu.

Parametry:

nrref (typ:string) - numer referencyjny dokumentu user (typ:user) - użytkownik wykonujący operację

document_draft_xml_download

Page 201: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

201

Pobranie wersji XML dokumentu roboczego.

Parametry:

nrref (typ:string) - numer referencyjny dokumentu user (typ:user) - użytkownik wykonujący operację

user_add

Dodanie użytkownika.

Parametry:

user (typ:user) - użytkownik wykonujący operację newUser (typ:user) - dane dodanego użytkownika

user_assign

Przypisanie użytkownika.

Parametry:

user (typ:user) - użytkownik wykonujący operację foundUser (typ:user) - dane przypisywanego użytkownika

user_blocked

Zablokowanie konta użytkownika.

Parametry:

login (typ:string) - login użytkownik, którego konto zostało zablokowane user (typ:user) - użytkownik wykonujący operację

user_activated

Aktywacja konta użytkownika.

Parametry:

login (typ:string) - login użytkownik, którego konto zostało aktywowane user (typ:user) - użytkownik wykonujący operację

Page 202: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

202

user_activated

Aktywacja konta użytkownika.

Parametry:

login (typ:string) - login użytkownik, którego konto zostało aktywowane user (typ:user) - użytkownik wykonujący operację

user_modify

Modyfikacja konta użytkownika.

Parametry:

login (typ:string) - login użytkownik, którego konto zostało zmodyfikowane user (typ:user) - użytkownik wykonujący operację

user_ change_mail

Zmiana adresu email użytkownika przez innego użytkownika.

Parametry:

user (typ:user) - operator wykonujący operację userEdited (typ:user) - dane użytkownika, którego dane zostały zmienione oldEmail (typ:string) – poprzedni adres email newEmaill (typ:string) – nowy adres email

password_change

Zmiana hasła przez użytkownika.

Parametry:

login (typ:string) - login użytkownika, którego hasło zostało zmienione user (typ:user) - użytkownik wykonujący operację

balance_generate

Pobranie salda przez użytkownika.

Page 203: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

203

Parametry:

nrdok (typ:string) – nr dokumentu salda user (typ:user) - użytkownik wykonujący operację

Parametry globalne Poniżej znajduje się lista parametrów, które poza specyficznymi dla danego zdarzenia parametrami, można użyć przy tworzeniu treści zdarzenia, jakie zostanie odnotowane w rejestrze zdarzeń w momencie wystąpienia zdarzenia z powyższej listy.

Typ „user” możliwe zmienne:

user.id user.username - login user.firstName user.lastName user.email

Typ „company” możliwe zmienne: company.id company.pfronNumber - nr teczki company.regon company.nip company.contact company.contactPerson - osoba kontaktowa company.email company.name company.address company.postalCode company.postalOffice company.city company.street company.province - id wojewodztwa company.houseNumber company.localNumber company.correspondenceName company.correspondencePostalCode company.correspondenceCity company.correspondenceStreet company.correspondenceHouseNumber company.correspondenceLocalNumber

Przykłady definicji komunikatów:

Page 204: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

204

Przekroczono maksymalny limit prób logowania "{{ maxAttemptsLimit }}" przez użytkownika "{{ login }}". Konto zablokowane do "{{ blockDate }}". Udane logowanie użytkownika "{{ user.username }}". Zmiana roli podmiotu "{{ pfronNumber }}" użytkownika "{{ userEdited.username }}" przez operatora "{{ user.username }}" z "{{ oldRole }}" na "{{ newRole }}".

24.6 Szablony emaili W bazie danych w tabeli ustawienia znajdują się szablony wszystkich emaili wysyłanych przez system, np. potwierdzających wpłynięcie zgłoszenia Pracodawcy, itp. Zapisane są rekordy o następujących wartościach w kolumnie nazwa:

email.pracodawca.zgloszenie.tresc

email.pracodawca.zgloszenie.tytul

email.pracodawca.aktywacja.tresc

email.pracodawca.aktywacja.tytul

email.administrator.zgloszenie.tresc

email.administrator.zgloszenie.tytul

email.administrator.zgloszenie2.tresc

email.administrator.zgloszenie2.tytul

email.administrator.aktywacja.tresc

email.administrator.aktywacja.tytul

email.administrator.odrzucenie.tresc

email.administrator.odrzucenie.tytul

email.administrator.odwolanie.tresc

email.administrator.odwolanie.tytul

email.administrator.odwolanie.aktywacja.tresc

email.administrator.odwolanie.aktywacja.tytul

email.administrator.odwolanie.odrzucenie.tresc

email.administrator.odwolanie.odrzucenie.tytul i definiują one tytuł lub treść odpowiedniej wiadomości w kolumnie wartosc. Emaile wysyłane są w formacie tekstowym i tak powinny wartości powinny być definiowane. W treści i tytule powyższych emaili możliwe jest użycie następujących tagów bazujących w znacznej mierze na nazwach pól składanego podczas zgłoszenia formularza ZAP: {{ nr_zgloszenia }}

{{ f_miejscowosc }} - miejscowość

{{ f_data] - data

{{ dokument_rejestrowy }}

dane ewidencyjne pracodawcy: {{ nip }}

{{ regon }}

{{ pelna_nazwa }}

{{ miejscowosc }}

{{ ulica }}

{{ nr_domu }}

Page 205: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

205

{{ nr_lokalu }}

{{ kod_pocztowy }}

{{ poczta }}

{{ email }}

dane administratora: {{ adm_imie }}

{{ adm_nazwisko }}

{{ adm_pesel }}

{{ adm_email }}

{{ adm_haslo }}

{{ adm_login }}

24.7 Szablony wiadomości

Poniżej opisano możliwość parametryzowania wiadomości wysyłanych z poziomu systemu przez Operatorów do Pracodawców.

W treści i tytule dozwolone jest użycie poniższych zmiennych:

{{ user.id }}

{{ user.username }}

{{ user.firstName }}

{{ user.lastName }}

{{ user.email }}

oraz:

{{ company.id }}

{{ company.pfronNumber }}

{{ company.regon }}

{{ company.nip }}

{{ company.contact }}

{{ company.contactPerson }}

{{ company.email }}

{{ company.name }}

{{ company.address }}

{{ company.postalCode }}

{{ company.postalOffice }}

{{ company.city }}

{{ company.street }}

{{ company.province }}

{{ company.houseNumber }}

{{ company.localNumber }}

{{ company.correspondenceName }}

{{ company.correspondencePostalCode }}

{{ company.correspondenceCity }}

{{ company.correspondenceStreet }}

{{ company.correspondenceHouseNumber }}

{{ company.correspondenceLocalNumber }}

Page 206: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

206

24.8 Inne szablony W bazie danych w tabeli ustawienia znajdują się rozmaite szablony elementów możliwych do parametryzowania, jak np. teksty wyświetlające się w procesie zgłoszeń Pracodawcy, oświadczenia woli, itp. gdzie kolumny:

nazwa - unikalna wartość po której wystem wyszukuje wartość - nie do zmiany

wartość - edytowalna wartość danego ustawienia

typ - pole sugerujące jakiego wartość jest formatu: text/plain - tekst, text/html - zapis zgodny z językiem html

Spis szablonów:

fragment.zgloszenie_wybor_formularza.tresc - tekst umieszczony podczas zgłoszenia w trakcie wyboru formularza DEK-Z/INF-Z

fragment.podsumowanie_zgloszenia_pracodawcy.tresc.1 - podsumowanie zgłoszenia pracodawcy - górna treść

fragment.podsumowanie_zgloszenia_pracodawcy.tresc.2 - podsumowanie zgłoszenia pracodawcy - dolna treść

fragment.podsumowanie_zgloszenia_link_drukuj_pracodawce.tresc - treść umieszczona pod przyciskiem do drukowania zgłoszenia pracodawcy

fragment.podsumowanie_zgloszenia_link_drukuj_zap.tresc - treść umieszczona pod przyciskiem do drukowania formularza ZAP

dokument.oswiadczenie_woli.tresc - treść oświadczenia woli

dokument.warunki_korzystania.tresc - treść warunków korzystania z systemu

Page 207: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

207

25 Konfiguracja systemu

25.1 Konfiguracja i zarządzanie przestrzenią dyskową

25.1.1 Technologie

lvm ext4

25.1.2 Komendy

nazwa opis przykładowy wynik działania

fdisk narzędzie zarządzania partycjami

Disk /dev/sda: 53.7 GB, 53687091200 bytes 255 heads, 63 sectors/track, 6527 cylinders, total 104857600 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x0009f861 Device Boot Start End Blocks Id System /dev/sda1 * 2048 499711 248832 83 Linux /dev/sda2 501758 104855551 52176897 5 Extended /dev/sda5 501760 104855551 52176896 8e Linux LVM

pvscan narzędzie zarządzania wolumenami fizycznymi

pvscan PV /dev/sda5 VG epfron-app1 lvm2 [49.76 GiB / 0 free] Total: 1 [49.76 GiB] / in use: 1 [49.76 GiB] / in no VG: 0 [0 ]

pvdisplay narzędzie wyświetlania wolumenów fizycznych

--- Physical volume --- PV Name /dev/sda5 VG Name epfron-app1 PV Size 49.76 GiB / not usable 2.00 MiB Allocatable yes (but full) PE Size 4.00 MiB Total PE 12738 Free PE 0 Allocated PE 12738 PV UUID Vnv9kL-zglR-k08e-nvmd-Cwze-nRvv-pQpyRK

pvcreate

tworzenie urządzenia fizycznego np. w celu powiększenia przestrzeni

Physical volume "/dev/sdb1" successfully

created

vgextend rozszerzanie grupy woluminów o urządzenie fizyczne

Volume group " epfron-app1" successfully extended

Page 208: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

208

lvextend rozszerzanie logicznego wolumenu

Extending logical volume home to 150 GiB

Logical volume home successfully resized

resize2fs

rozszerzanie system plików na woluminie

The filesystem on /dev/mapper/epfron-app1-

root is now 4033536 blocks long.

mkfs.ext4 tworzenie systemu plików ext4

df status zajętości partycji dysku

rootfs 329233 219422 92813 71%

/

udev 10240 0 10240 0%

/dev

tmpfs 820008 256 819752 1%

/run

/dev/mapper/epfron--app1-root 329233 219422 92813 71%

/

tmpfs 5120 0 5120 0%

/run/lock

tmpfs 1640000 16416 1623584 2%

/run/shm

/dev/sda1 233191 18057 202693 9%

/boot

/dev/mapper/epfron--app1-home 34176760 4590924 27849748 15%

/home

/dev/mapper/epfron--app1-tmp 376807 10273 347078 3%

/tmp

/dev/mapper/epfron--app1-usr 8647944 1431820 6776828 18%

/usr

/dev/mapper/epfron--app1-var 2882592 1521608 1214552 56%

/var

setfacl narzędzie do nadawania rozszerzonych uprawnień do plików

25.1.3 Pliki konfiguracyjne

nazwa opis

/etc/fstab definicje automatycznie montowanych partycji I wolumenów

25.1.4 Pliki logów

nazwa opis

/var/log/messages Zdarzenia systemowe

/var/log/auth.log Zdarzenia autoryzacji

/var/log/daemon.log Zdarzenia usług

/var/log/syslog Zdarzenia systemowe

25.2 Konfiguracja i zarządzanie siecią

25.2.1 Technologie

ipv4

25.2.2 Komendy

Page 209: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

209

nazwa opis przykładowy wynik działania

ip narzędzie do zarządzania siecią, odczytywania statusu, tras, adresów itd.

ip addr

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state

UNKNOWN

link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

inet 127.0.0.1/8 scope host lo

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc

pfifo_fast state UP qlen 1000

link/ether 00:50:56:95:01:59 brd ff:ff:ff:ff:ff:ff

inet 10.150.27.1/24 brd 10.150.27.255 scope global eth0

25.2.3 Pliki konfiguracyjne:

nazwa opis

/etc/network/interfaces definicje interfejsów sieciowych i ich adresów

/etc/hosts definicje nazw hostów

/etc/resolve.conf definicje serwerów nazw

25.2.4 Pliki logów:

nazwa opis

/var/log/daemon.log Zdarzenia usług sieciowych

/var/log/messages Zdarzenia interfejsów sieciowych

25.3 Konfiguracja i zarządzanie dostępem administracyjnym

25.3.1 Technologie

ssh

25.3.2 Komendy

nazwa opis

ssh klient/serwer protokołu ssh, zdalnego terminala itd.

25.3.3 Pliki konfiguracyjne

nazwa opis

/etc/ssh/sshd_config konfiguracja usługi serwera

~/.ssh/* konfiguracje per użytkownik, zaufane klucze itd.

/etc/init.d/ssh zarządzanie usługą serwera ssh

25.3.4 Pliki logów

nazwa opis

/var/log/auth.log Zdarzenia autoryzacji

/var/log/daemon.log Zdarzenia usług

25.4 Konfiguracja i zarządzanie klastrem corosync

Page 210: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

210

25.4.1 Technologie

corosync pacemaker

25.4.2 Komendy

nazwa opis przykładowy wynik działania

crm narzędzie do zarządzania klastrem i jego konfiguracją (linia poleceń)

crm(live)# configure show

node epfron-app1

node epfron-app2

node epfron-app3

node epfron-app4

primitive api_ip ocf:heartbeat:IPaddr \

params ip="10.150.26.110" cidr_netmask="255.255.255.0"

nic="eth3"

primitive console_ip ocf:heartbeat:IPaddr \

params ip="10.150.26.100" cidr_netmask="255.255.255.0"

nic="eth3"

crm_mon narzędzie do obserwacji statusu klastra

Online: [ epfron-app1 epfron-app2 epfron-app3 epfron-app4 ]

25.4.3 Pliki konfiguracyjne

nazwa opis

/etc/corosync/corosync.conf konfiguracja usługi corosync

/etc/init.d/corosync zarządzanie usługą corosync

25.4.4 Pliki logów

nazwa opis

/var/log/corosync/* Zdarzenia usługi corosync

25.5 Konfiguracja i zarządzanie maszyną wirtualną Java

25.5.1 Technologie

openjdk 7.1

25.5.2 Komendy

nazwa opis przykładowy wynik działania

java maszyna wirtualna java

25.5.3 Pliki konfiguracyjne

nazwa opis

brak brak

25.6 Konfiguracja i zarządzanie modułem php dla serwera Apache

25.6.1 Technologie

libapache2-mod-php5

Page 211: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

211

25.6.2 Komendy

nazwa opis

apachectl narzędzie do rekonfiguracji/restartu serwera w celu zaczytania zmian konfiguracyjnych

php php w wersji CLI, korzysta z innej konfiguracji niż moduł apache

25.6.3 Pliki konfiguracyjne

nazwa opis

/etc/php5/apache2/php.ini konfiguracja parametrów php

/etc/php5/apache2/conf.d/ konfiguracja modułów i rozszerzeń dla php

25.7 Konfiguracja i zarządzanie usługą pgpool

25.7.1 Technologie

pgpool2

25.7.2 Komendy

nazwa opis

/etc/init.d/pgpool narzędzie do zarządzania statusem usługi pgpool

25.7.3 Pliki konfiguracyjne

nazwa opis

/etc/pgpool2/pgpool.conf konfiguracja parametrów usługi pgpool

25.7.4 Pliki logów

nazwa opis

/var/log/daemon.log Zdarzenia usług

25.8 Konfiguracja i zarządzanie usługą serwera Apache

25.8.1 Technologie

http/https apache

25.8.2 Komendy

nazwa opis

/etc/init.d/apache narzędzie do zarządzania statusem usługi apache

apachectl narzędzie do zarządzania usługą bez użycia skryptów init

25.8.3 Pliki konfiguracyjne

nazwa opis

/etc/apache2/apache2.conf konfiguracja parametrów usługi apache2

Page 212: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

212

/etc/apache2/mods-enabled/* konfiguracja i włączanie modułów usługi apache

/etc/apache2/sites-available/* konfiguracje dostępnych wirtual hostów

/etc/apache2/sites-enabled/* włączone wirtualne hosty

/etc/apache2/conf.d/security konfiguracja bezpieczeństwa serwera apache

25.8.4 Pliki logów

nazwa opis

/var/log/apache2/*access*.log Pliki logujące dostęp do serwisów access_log

/var/log/apache2/*error*.log Pliki logujące błędy serwera apache

25.9 Konfiguracja i zarządzanie aplikacją pfron pracodawca

25.9.1 Technologie

symfony framework

25.9.2 Komendy

nazwa opis

php /home/pfron/front/app/console cache:clear narzędzie do zarządzania cache’em i parametrami pracy frameworku

/home/pfron/front/app/config/ narzędzie do zarządzania usługą bez użycia skryptów init

25.9.3 Pliki konfiguracyjne

nazwa opis

/home/pfron/front/app/config/config_prod.yml definicje zasad logowania zdarzeń itd

/home/pfron/front/app/config/parameters.yml definicje dostępu aplikacji do bazy danych,

/home/pfron/front/app/config/pfron_prod.yml definicje mechanizmów cache’owania

/home/pfron/front/app/config/security.yml definicje metod bezpieczeństwa

/etc/apache2/sites-enabled/030-front deifnicja hosta wirtualnego dla serwera apache

25.9.4 Pliki logów

nazwa opis

/home/pfron/front/app/logs/* Pliki logujące błędy aplikacji front

25.10 Konfiguracja i zarządzanie aplikacją pfron konsola operatora

25.10.1 Technologie

symfony framework

Page 213: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

213

25.10.2 Komendy

nazwa opis

php /home/pfron/console/app/console cache:clear

narzędzie do zarządzania cache’em i parametrami pracy frameworku

/home/pfron/console/app/config/ narzędzie do zarządzania usługą bez użycia skryptów init

25.10.3 Pliki konfiguracyjne

nazwa opis

/home/pfron/console/app/config/config_prod.yml definicje zasad logowania zdarzeń itd

/home/pfron/console/app/config/parameters.yml definicje dostępu aplikacji do bazy danych,

/home/pfron/console/app/config/pfron_prod.yml definicje mechanizmów cache’owania

/home/pfron/console/app/config/security.yml definicje metod bezpieczeństwa

/etc/apache2/sites-enabled/005-console deifnicja hosta wirtualnego dla serwera apache

25.10.4 Pliki logów

nazwa opis

/home/pfron/console/app/logs/* Pliki logujące błędy aplikacji front

25.11 Konfiguracja i zarządzanie aplikacją cms

25.11.1 Technologie

cms Joomla

25.11.2 Komendy

nazwa opis

brak

25.11.3 Pliki konfiguracyjne

nazwa opis

/home/pfron/cms/configuration.php definicje parametrów pracy systemu cms

/home/pfron/cms/.htaccess definicje dostępu aplikacji, zasad bezpieczeństwa itd

25.11.4 Pliki logów

nazwa opis

/home/pfron/cms/logs/* Pliki logujące błędy aplikacji cms

25.12 Konfiguracja i zarządzanie zadaniami harmonogramu

Page 214: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

214

25.12.1 Technologie

crontab

25.12.2 Komendy

nazwa opis

crontab -e edycja zadań harmonogramu dla danego użytkownika

25.12.3 Pliki konfiguracyjne

nazwa opis

brak

25.13 Konfiguracja i zarządzanie usługą loggera systemowego

25.13.1 Technologie

rsyslog

25.13.2 Komendy

nazwa opis

brak

25.13.3 Pliki konfiguracyjne:

nazwa opis

/etc/rsyslog.conf definicje plików systemowych do przechowywania dzienników zdarzeń

25.14 Konfiguracja i zarządzanie usługą bazy danych postgresql

25.14.1 Technologie

postgresql

25.14.2 Komendy

nazwa opis

/etc/init.d/postgresql narzędzie zarządzania statusem/włączaniem/wyłączaniem usługi

psql narzędzie klienckie dostępu do bazy danych

pg_dump narzędzie wykonywania kopii bazy danych

pg_basebackup narzędzie wykonywania wstępnej synchornizacji slave/master

25.14.3 Pliki konfiguracyjne

nazwa opis

Page 215: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

215

/etc/postgresql/9.1/main/postgresql.conf konfiguracja serwera baz danych

/etc/postgresql/9.1/main/pg_hba.conf konfiguracja zasad uwierzytelniania i autoryzacji

/home/postgresql/recovery.conf konfiguracja pracy bazy w trybie slave

25.14.4 Pliki logów

nazwa opis

/var/log/postgresql/postgresql-9.1-main.log Plik logujący błędy oraz powolne zapytania bazy danych postgresql

26 Usuwanie błędów i rozwój systemu

Usuwanie błędów i rozwój systemu – czasy reakcji i usunięcia błędów, zostały szczegółowo opisane w par. 7 i 8 umowy. W zależności od kategorii Wady Wykonawca gwarantuje następujący czas realizacji Zgłoszeń Zamawiającego:

Czas realizacji zgłoszeń w dniach od 18 do 23 dnia każdego miesiąca

Kategoria Wady Czas Reakcji Czas Naprawy Czas Obejścia

Awaria 4 godziny 36 godzin 12 godzin

Błąd 12 godzin 48 godziny 24 godziny

Usterka 24 godziny 72 godziny

Czas realizacji zgłoszeń w pozostałym okresie

Kategoria Wady Czas Reakcji Czas Naprawy Czas Obejścia

Awaria 12 godzin 64 godziny 32 godziny

Błąd 12 godzin 72 godziny 48 godziny

Usterka 24 godziny 72 godziny

Wykonawca informuje, że każda interwencja serwisowa oraz prace rozwojowe niosą za sobą pewne ryzyko utraty lub uszkodzenia danych. Dlatego Wykonawca zaleca Zamawiającemu wykonywanie kopii zapasowej danych bezpośrednio przed każdym przystąpieniem do prac serwisowych oraz aktualizacji i rozbudowy systemu. Wykonawca będzie relizował zgłoszenia Wad, które zostaną dokonane przez pracowników Zamawiającego znajdujących się na oficjalnej liście osób Upowaznionych. Lista taka powinna zawierać dane kontaktowe osób, które mogą dokonywać zgłoszeń. Upoważnieni mogą dokonać Zgłoszenia do Wykonawcy za pośrednictwem:

Page 216: e-PFRON2 Dokumentacja powykonawcza systemu€¦ · Dokumentacja frameworku Symfony2 dokumentująca błędy i wyjątki obsługiwane przez ten framework (instukcja przeglądania - na

216

Telefonu na numer 22 540 18 00;

Poczty elektronicznej na adres e-mail [email protected];

Portalu Serwisowego Mantis znajdującego się pod adresem: http://pfron.passus.pl w sposób przedstawiony w trakcie realizacji projektu do zgłaszania zauważonych błędów na etapie testów przez Zamawiającego.

Osoba, która zgłasza Wadę określa jej kategorię. Kategoria może być zweryfikowana przez Wykonawcę jeśli ważność zgłoszenia znacząco odbiega od realnego wpływu Wady na działanie systemu.