Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Dzielenie zakresów
rad11
post
Post #1





Grupa: Zarejestrowani
Postów: 1 270
Pomógł: 184
Dołączył: 7.10.2012
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Aplikacja generalnie polega na tym, że raportujemy sobie czas pracy możemy wprowadzać korekty itd.

Mam takich kilka scenariuszy:

  1. Scenariusz 1
  2. Użytkownik chce podzielić okres pracy 10:00 - 14:00 na pół, bo zapomniał przełączyć zadania
  3. Wprowadza korektę z nowym zadaniem, w godzinach 12:00 - 14:00. Korekta macierzystego czasu pracy wprowadza się automatycznie
  4.  
  5. Scenariusz 2:
  6. Użytkownik pracował w godzinach 9:00 - 17:00 na jednym zadaniu, ale przypomniał sobie, że w godzinach 11:00 - 12:00 powinien raportować na co innego.
  7. Wprowadza korektę na inne zadanie w godzinach 11:00 - 12:00
  8. Macierzysty okres pracy automatycznie dzieli się na dwa okresy 9:00 - 11:00 i 12:00 - 17:00.
  9.  
  10. Scenariusz 3
  11. Użytkownik pracował
  12. w godzinach 9:00-11:00 na zadaniu A
  13. w godzinach 11:00-17:00 na zadaniu B
  14. Użytkownik chce wprowadzić korektę w czasie 10-12 wprowadzając zadanie C
  15. Macierzyste czasy pracy zadania A i B zostają skorygowane o zadanie C
  16.  
  17. Scenariusz 4
  18. Użytkownik pracował na zadaniu A w godzinach 10:00-12:00
  19. Użytkownik pomylił zadania i logował czas nie na ten task
  20. Użytkownik podmienia nazwę zadania A na B
  21. pozostawiając czas macierzysty 10:00-12:00


Moje pytanie brzmi jak najlepiej będzie te scenariusze obsłużyć używając DateTime ? Macie jakieś pomysły ? Miał może ktoś z was kiedyś podobny problem i jest w stanie podzielić się wiedzą jak w łatwy sposób to można osiągnać? Chodzi mi najbardziej o problem w scenariuszach 2 i 3 wydają mi się najbardziej skomplikowane.

Ten post edytował rad11 5.06.2018, 06:56:54
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
athabus
post
Post #2





Grupa: Zarejestrowani
Postów: 898
Pomógł: 48
Dołączył: 2.11.2005
Skąd: Poznań

Ostrzeżenie: (0%)
-----


SmokAnalog, ale walidacja to jedno, a scenariusze wyżej to co innego. Mi tutaj chodzi o to, że połowa tych problemów nie musi być rozwiązywana, a już na pewno nie powinna być rozwiązywana automatycznie. Np. to że masz prace nad taksiem A dzisiaj od 9 do 17 i dodajesz drugi task nad którym pracowałeś 11-12. Teraz wg scenariusza dzieli się bazowy task na 2 i po środku wstawia task b. Ale co jak użytkownik po zapisaniu zauważy, że taks B miał być z datą wczorajszą? Zmieni na wczorajszą, ale task A zostanie już z dziurą. Itd itp. Takie rzeczy będą zdarzały się nagminnie, bo ludzie się mylą.

MZ w backendzie tak jak pisałem wystarczy dać walidację czy taski na siebie nie nachodzą i jak nachodzą to zwracać wyjątek, a całą "logikę" żeby było dobrze zostawić użytkownikowi, bo to on wie co dokładnie chce zapisać - z dobrym interfejsem po prostu zrobi to co chce. Tj. w interfejsie sam musi ustalić podział tasku, czy tak go "przeciągać" aby nie nachodził na siebie itp. W backendzie wystarczy jedynie sprawdzać czy finalnie nic na siebie nie nachodzi i tyle.

Ogólnie uważam, że oparcie tego na formularzach jest słabe i niewygodne z punktu widzenia użyteczności + powoduje sporo problemów pobocznych i osobiście uważam, że są błędne założenia wstępne np. z tym, że system automatycznie dzieli taski.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 4.10.2025 - 03:42