sharpgienek/Leave-Manager
Folders and files
| Name | Name | Last commit date | ||
|---|---|---|---|---|
Repository files navigation
ver. 0.1
- Utworzono większość formatek
ver. 0.11
- Zmieniono nazwy części klas, dodano plik .gitignore który powoduje ignorowanie
plików generownych przy kompilacji podczas aktualizacji repozytorium.
ver. 0.12
- Dodano do projektu bazę danych w formie pliku.
- Dodano plik Readme.txt
- Stworzono formatkę wyboru rodzaju połączenia do bazy (plik lub serwer).
- Poprawiono nazwy elementów w formatkach.
- Dodano diagramy.
ver. 0.13
- Zaktualizowano diagram ERD
- Dodano FormAdmin
- Stworzono prowizoryczne logowanie
ver. 0.14
- Zmodyfikowano ERD
- Dodano formularz dodawania pracownika
- Dodano możliwość informowania nowego pracownika o loginie i haśle przez administratora
- Dodano klasę StringSha posiadającą statyczną metodę do wyznaczenia skrótu sha256managed
- Hasła są zapisywane w bazie poprzezz skrót sha256managed
- Dodano formularz zmiany hasła i loginu
- Dodano klasę Dictionary pozwalającą pobrać z bazy zawartości tabel słownikowych
- Dodano klasę LeaveType
- Dodano klasę TimeTools rozszerzającą strukturę DateTime o dodatkowe funkcje:
=> Trim pozwalającą 'obciąć' datę do okrągłej liczby dni, minut itp. poprzez podanie np. TimeSpan.TicksPerDay
=> GetNumberOfWorkDays
=> IsDateFromPeriodUsed informującą, czy jakaś data z przedziału czasu jest już zarezerwowana w jakimś zgłoszeniu urlopowym.
- Dodano możliwość zgłoszenia chęci odbycia urlopu
ver. 0.15
- Naprawiono zgłaszanie chęci urlopu
- Dodano możliwość zatwierdzania/odrzucania urlopu przez asystentke
- Dodano możliwość zatwierdzania/odrzucania urlopu przez kierownika
- Dodano możliwość dodawania/usuwania nowych wpisów do słowników pozycji i typów urlopów przez administratora
- Dodano możliwość edycji wpisów urlopowych przez asystentke
- Dodano możliwość dodawania chorobowego
ver 0.16
- przeniesiono większość zapytań do jednej klasy DatabaseOperator. Obiekt tej klasy jest przekazywany do formularzy.
ver. 0.17
- Poprawiono kilka błędów.
- Skomentowano większość kodu (klasa DatabaseOperator wymaga dokomentowania).
- Program wymaga gruntownego testowania po przebudowie.
ver. 0.18
- Poprawiono kilka błędów.
- Skończono komentować klasę DatabaseOperator.
- Program wymaga gruntownego testowania po przebudowie.
ver. 0.19
- Uzupełniono listę todo w pliku Readme.txt.
- Przeprowadzono powierzchowne testy wszystkich funkcji.
- Naprawiono dodawanie zgłoszenia urlopowego przez pracownika.
- Skomentowano LeaveManagerForm.
ver. 0.2
- Dodano pole Leave_ID w tabeli urlopów.
- Zmieniono nazwy metod na z dużej litery.
- Naprawiono kilka błędów.
- Dodano pole Used_days w tabeli urlopów. Przechowuje ono liczbę dni zużytych przez urlop.
- Skomentowano rodzaje wyjątków rzucanych przez metody zdefiniowane w klasie DataOperator.
ver. 0.21
- Dodano stały typ urlopu na żądanie.
- Naprawiono bład związany z dodawaniem urlopów w miejsce urlopów odrzuconych/anulowanych.
- Zabroniono zastępować usuwany typ urlopu typem, który ma inną wartość parametru określającego
czy dany typ konsumuje dni, czy nie.
- Dodano możliwość usuwania typu urlopu bez zastępowania go innym. W takim wypadku wszystkie
wpisy urlopowe danego typu zostają usunięte, a dni za nie zostają zwrócone.
- Zabrano rejestratorce możliwość edycji wpisu urlopowego za wyjątkiem uwag.
- Naprawiono kilka błędów.
ver. 0.22
- Edycja danych pracowników.
- Wyszukiwanie pracowników.
- Stworzono prototyp formatki ustalania godzin pracy pracownika.
ver. 0.225
- FormLeaveApplication > po zmianie typu urlopu na extraordinary blokuje się możliwość wyboru stanu urlopu.
- Dodano kierownikowi dostęp do formularza danych urlopowych pracownika.
- Dodano obsługę guzika Reject without consideration w formularzach rejestratorki i kierownika.
- Zmieniono argument przyjmowany przez metodę deleteLeave z obiektu urlopu na numer id urlopu.
- Dodano możliwość usuwania urlopów z poziomu formularza danych urlopowych pracownika.
- Coroczna aktualizacja liczby dostępnych dni urlopowych.
ver. 0.23
- Dodano możliwość edycji godzin pracy przez kierownika.
ver. 0.24
- Usprawniono możliwość edycji godzin pracy.
- Sprawdzanie ilości dni urlopu na podstawie rozpiski godzin pracy.
ver. 0.25
- Dodano wypisywanie liczby dostępnych pracowników w formularzu LeaveConsideretion
- Podczas dodawania pracownika dodawany jest również odpowiedni wiersz do tabeli Work_hours
ver. 0.26
- Dodano obsługę wyjątków (w wszystkich znalezionych miejscach, może wymagać poprawy)
- Poprawiono kilka błędów.
- Dodano dni wolne od pracy.
INFO
StringSha.GetSha256Managed("admin") == 8C6976E5B5410415BDE908BD4DEE15DFB167A9C873FC4BB8A81F6F2AB448A918
manager == 6EE4A469CD4E91053847F5D3FCB61DBCC91E8F0EF10BE7748DA4C4A1BA382D17
assistant == A39A7FFAD4A3013F29DA97B84F264337F234C1CF9B3C40C7C30C677A8A18609A
employee == 2FDC0177057D3A5C6C2C0821E01F4FA8D90F9A3BB7AFD82B0DB526AF98D68DE8
Pytania:
Wymagania do danych:
W tabeli Permission id musi być od 0 do max bez wartości pustych (nie może być np. takiej sytuacji {0,1,3})
W tabeli Status_type typ Pending validation musi mieć index 0, żeby był domyślnym statusem wpisywanym przy braniu urlopu przez pracownika.
Do zrobienia na końcu:
Obsługa błędów przy wszystkich transakcjach, lub wykonaniach zapytań.
Przemyślenie wszystich transakcji.
todo list:
- Zamienić wszystkie DateTime.Now na pobieranie czasu z bazy danych.
- Obsługa błędów przy wszystkich odowłaniach do metod z DatabaseOperator.
- w metodzie private static void addLeave(LeaveManagerForm form, Leave leave)
nie zawsze jest konieczna transakcja. Możnaby nie zawsze jej wymagać.
- w metodzie private static void DeleteLeave(LeaveManagerForm form, Leave leave)
nie zawsze jest konieczna transakcja. Możnaby nie zawsze jej wymagać
- Przetestować gruntownie edycję urlopu przez managera (np. zmiana typu na nie konsumujący dni itp. itd.)
Nie zaiplementowane:
- Zastępstwa
- Manager>Raportowanie
- Liczby wymaganych pracowników na danej pozycji
Opcjonalnie:
- Usuwanie pracownika.
- Dodanie stanu urlop w trakcie i urlop zakończony.
- Auto logout
- Usunąć konstruktory bezargumentowe > nie używać .GetType do porównania typów a słowa kluczowego "is"