Na końcu posta zamieszczam przykładowy plik w excelu (osoby odpowiedzialne za układanie grafików przygotowywały je w excelu a następnie przenosiły do systemu stworzonego przez jedną ze znanych firm programistycznych). Aplikacja ta niestety nie wystarcza, nie sprawdza wszystkich warunków a ta firma chce choooore pieniądze że dorobienie modułu/poprawek - podejrzewam, że czują jakie to bagno i dlatego dali taką cenę - nikt o zdrowych zmysłach nie zgodziły się na to. Do rzeczy.
Opis czynności
-----------------
1. Po wejściu w moduł, dany użytkownik wybiera z listy rozwijanej dział, dla którego chce układać grafik (niektórzy będą mieli dostęp do więcej niż jednego/swojego działu), wybiera miesiąc i rok na który chce układać grafik a następnie klika pobierz/wygeneruj nowy grafik.
2. Domyślnie zostaje wyświetlona lista wszystkich pracowników danego działu (będzie istniała możliwość filtrowania po stanowisku i/lub konkretnym pracowniku).
Pracownicy są wyświetlani jeden pod drugim po lewej stronie natomiast na samej górze jest zakres dni danego miesiąca (np. jeśli tworzymy grafik na grudzień jest to od 1 grudzień do 1 styczeń)
3. Przy danym pracowniku i konkretnym dniu będzie można wpisywać godziny od kiedy do kiedy dany pracownik pracuje. Muszą istnieć dwa sposoby wpisywania:
a) za pomocą kodów, np C2 (to zdefiniowany wcześniej zakres godzinowy np od 8.00 do 15.00)
b_) za pomocą godzin
4. Maksymalnie po prawej stronie podczas wpisywania kodów albo zakresów godzin, na bieżąco obliczana jest suma wpisanych godzin (konieczne zastosowania JS)
5. Powinna istnieć także możliwość zmiany zakresów godzin dla wybranego kodu tylko dla jednej wybranej daty. Tzn, jeśli kod C2 jest zdefiniowany globalnie i oznacza zakres godzin od 8.00 do 15.00, to użytkownik powinien mieć możliwość zmiany tego zakresu lokalnie dla danego dnia i danego pracownika bez wpływy na wartość globalną.. Mam nadzieje że nie zakręciłem za bardzo.
6. Po wypełnieniu klika zapisz, następuje sprawdzanie różnych warunków i jeśli wszystko jest ok to dane zostają zapisane a jeśli nie, to pojawia się komunikat o błędzie i zaznaczane są pola kolorem gdzie jest błąd.
7. Powinna też istnieć możliwość akceptacji grafika (nie wiem tylko czy każdy dzień będzie akceptowany oddzielnie czy akceptacje będą wykonywane tygodniowo - jest to konieczne ze względu na częste zmiany, zamiany, etc). Po zatwierdzeniu danego dnia/tygodnia nie będzie można edytować tego fragmentu grafika.
Problemy:
------------
1. Przejrzysty interfejs i warunki, których jest naprawdę dużo (jakoś sobie z tym poradzę)
2. JS, którego w ogóle nie znam i tu mam pytanie. Jak to rozwiązać? Wiem, że jest na pewno taka możliwość, ale jak to zrobić? Jak na bieżąco sumować godziny w danym miesiącu dla edytowanego pracownika, uwzględniając że czas pracy może być podany godzinowo albo kodami?
3. Czy jest możliwość zaznaczania konkretnych dni, konkretnemu pracownikowi kolorowymi kwadracikami? Np Sprzątaczka Janina 10 grudnia pracuje od 8-60 - zapisane kodowo, a pole dodatkowo oznaczone kolorem czerwonym co znaczy, że sprząta tylko wc

4. W najgorszym wypadku zrobię to bez JS, czyli wszystko sprawdzane po naciśnięciu przycisku weryfikuj/przeładowaniu strony.
Dużo roboty w JS z tym?
Wogóle to jak widzicie taką aplikację? To były moje wstępne przemyślenia, może zaproponujecie coś lepszego. Za wszystkie opinie/dyskusje z góry dziękuje.
Pozdrawiam
Przykładowy grafik