![]() |
![]() ![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 1 190 Pomógł: 27 Dołączył: 23.04.2005 Ostrzeżenie: (0%) ![]() ![]() |
Stanąłem przed nie lada wyzwaniem - do aplikacji, którą rozwijam w firmie dorobić moduł pozwalający układać grafiki. Postaram się w skrócie opisać jakie są wymagania i problemy, które po wstępnym przemyśleniach nasuwają mi się do głowy. Cały czas zastanawiam się czy się tego podjąć - naprawdę dużo warunków, praca zmianowa, dużo działów, rozliczanie ilości godzin w trybie 3-miesięcznym z czego są 4 grupy pracowników (tzn nie wszyscy pracownicy zerują się w tych samych miesiącach), nadgodziny, połączone z modułem RCP, który pisałem wcześniej...
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 Ten post edytował Jarod 3.12.2007, 21:06:55 -------------------- ”Godzina nauki w życiu nowoczesnego apostoła jest godziną modlitwy.”
(św. Josemaría Escrivá, Droga, 335) |
|
|
![]()
Post
#2
|
|
Grupa: Zablokowani Postów: 120 Pomógł: 2 Dołączył: 4.11.2004 Ostrzeżenie: (10%) ![]() ![]() |
Wbrew pozorom, nie wydaje mi się to jakoś szczególnie skomplikowane (chyba, że pominąłeś jakieś kosmiczne warunki, o których co prawda wspominasz, a które w rzeczywistości mogą utrudnić sprawę).
Co do JS, w necie można znaleźć "gotowce", które np. sumują określone pola - można je dość szybko dostosować do swoich wymagań. Właściwie starałbym się jak najwięcej warunków wrzucić właśnie do JS. Szczerze mówiąc, ciekawe wyzwanie... Ja bym brał ![]() |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 1 190 Pomógł: 27 Dołączył: 23.04.2005 Ostrzeżenie: (0%) ![]() ![]() |
Wbrew pozorom, nie wydaje mi się to jakoś szczególnie skomplikowane (chyba, że pominąłeś jakieś kosmiczne warunki, o których co prawda wspominasz, a które w rzeczywistości mogą utrudnić sprawę). Uwierz mi, że tylko wbrew pozorom ![]() Co do JS, w necie można znaleźć "gotowce", które np. sumują określone pola - można je dość szybko dostosować do swoich wymagań. Właściwie starałbym się jak najwięcej warunków wrzucić właśnie do JS. Jakbym znał dobrze JS to też wszystkie warunki upchałbym w JS ale nie znam :/ Co do sumowania pól to własnie czułem, że się to da zrobić. Mam nadzieję, że z inputów. Bardziej martwi mnie problem kolorowania poszczególnych pól i możliwość zmiany zakresu kodów dla pojedynczego pola a nie dla wartości globalnej. A warunków jest b.dużo. Mam zapisane na 8 stronach A4 (czcionka 9pkt) Szczerze mówiąc, ciekawe wyzwanie... Ja bym brał ![]() Będę się męczył z JS (nie trawie go) ale raczej podejmę się pisania tego modułu. Pierwszy raz będę coś takiego pisał. Ten post edytował Jarod 4.12.2007, 07:47:47 -------------------- ”Godzina nauki w życiu nowoczesnego apostoła jest godziną modlitwy.”
(św. Josemaría Escrivá, Droga, 335) |
|
|
![]()
Post
#4
|
|
Grupa: Zablokowani Postów: 120 Pomógł: 2 Dołączył: 4.11.2004 Ostrzeżenie: (10%) ![]() ![]() |
![]() No i słusznie. Gdyby była taka możliwość, zaprezentuj, co stworzyłeś - chętnie zobaczę. 3mam kciuki! |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 1 190 Pomógł: 27 Dołączył: 23.04.2005 Ostrzeżenie: (0%) ![]() ![]() |
Znalazłem nawet na tym forum pisany na szybko skrypcik sumujący inputy ale wywoływany jest przez button. Niestety nie o to mi chodzi.
Załóżmy, że mamy 4 inputy. Do pierwszego wpisujesz kod albo zakres godzin, skrypt sprawdza: - czy wprowadzony tekst jest kodem znakowym, jeśli tak to pobiera przypisany mu zakres godzin i oblicza ilość godzin dla tego dnia/inputa i wyświetla po prawej stronie - jeśli to nie jest zdefiniowany kod to sprawdza czy zakres jest w poprawnym formacie godzinowym, oblicza ilość godzin i wyświetla sumę po prawę stronie - sumowanie/aktualizacja odbywa się podczas wprowadzania danych Da się taki skrypt napisać? Możesz jakoś mi pomóc? -------------------- ”Godzina nauki w życiu nowoczesnego apostoła jest godziną modlitwy.”
(św. Josemaría Escrivá, Droga, 335) |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 27.11.2009 Ostrzeżenie: (0%) ![]() ![]() |
Nie jest to proste ale da się: www.planujprace.pl
-------------------- www.PlanujPrace.pl - grafik pracy online, harmonogram dyżurów, zarządzanie pracą zmianową
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 25.04.2025 - 08:11 |