Use Case 1: Zarządzanie zamówieniami
=====================
**Aktor podstawowy: Kelner**
Główni odbiorcy i oczekiwania względem systemu:
-----------------------------------------------
- Kelner:
- chce mieć możliwość prostego i szybkiego tworzenia zamówień
- chce móc w prosty sposób dodawać potrawy do zamówień
- chce móc w prosty i intuicyjny sposób modyfikować potrawy istniejące w zamówieniu
- Klient:
- chce móc w szybki i prosty sposób złożyć zamówienie
- chce aby utworzone zamówienie zawierało dokładnie takie potrawy jakie opisywał
Warunki wstępne:
----------------
System połączenia TK ze spiżarnią oraz kuchnią działa poprawnie.
Warunki końcowe:
----------------
Zamówienie jest poprawnie utworzone, a potrawy składające się
na zamówienie muszą zgadzać się z potrawami wymienionymi przez
klienta. Koszty za dania są poprawnie policzone. Informacje na
temat zamówienia są poprawnie przechowywane.
Scenariusz główny (ścieżka podstawowa):
---------------------------------------
1. Kelner tworzy nowe zamówienie dla klienta
2. Klient wymienia potrawę, jaką pragnie nabyć w restauracji
3. Kelner dodaje do zamówienia wymienioną przez klienta potrawę
*Kroki 2-3 są powtarzane do momentu, aż wszystkie dania, jakie klient pragnie zamówić zostaną wprowadzone do zamówienia*
4. Kelner po dodaniu wszystkich wymienionych przez klienta potraw zatwierdza zamówienie
Rozszerzenia (ścieżki alternatywne):
------------------------------------
*a. Zawieszenie się systemu
1. Kelner restartuje przenośny terminal
2. Kelner sprawdza, czy system działa poprawnie po ponownym uruchomieniu
2a. System działa poprawnie
1. Kelner odtwarza stan systemu sprzed zrestartowania terminalu i kontynuuje scenariusz główny
2b. System nie działa poprawnie
1. Kelner wymienia TK na nowy
2. Kelner próbuje odtworzyć zamówienie
3. Kelner kontynuuje tworzenie zamówienia
3a Wprowadzenie złej potrawy
1. Kelner usuwa złą potrawę
2. Kelner dodaje do zamówienia dobrą potrawę
3b. Zmiana składników potrawy
1. Klient mówi, że chce zmienić skład jednej z potraw z jego zamówienia
2. Klient podaje jakiej potrawy składniki chce zmienić
2a. Klient mówi, że chce dodać nowy składnik do potrawy
1. Klient mówi jaki składnik ma być dodany
2. Kelner dodaje składnik do wcześniej wspomnianej przez klienta potrawy
2b. Klient mówi, że chce usunąć istniejący dodatek z potrawy
1. Klient uściśla jaki składnik chce usunąć z potrawy dodatek
2. Kelner usuwa wspomniany dodatek z potrawy
*Krok 1 jest powtarzany do momentu, aż klient nie będzie chciał dalej edytować potrawy.*
3. Kelner zapisuje zedytowaną potrawę
3c. Usuwanie potrawy
1. Klient mówi, że chce usunąć pewną potrawę
2. Klient wskazuje potrawę jaką pragnie usunąć
3. Kelner zaznacza potrawę wskazaną przez klienta
4. Kelner usuwa zaznaczoną potrawę
3d. Dodanie wielu potraw naraz
1. Klient mówi, że chce aby do zamówienia zostało dodanych kilka identycznych potraw
2. Klient informuje kelnera o typie potrawy i o tym ile sztuk tej potrawy pragnie zamówić
3. Kelner wybiera wymienioną potrawę
4. Kelner zmienia liczbę dodawanej potrawy na liczbę podaną przez klienta
5. Kelner dodaje zbiór potraw do zamówienia
3e. Próba dodania potrawy, dla której nie ma niektórych składników w spiżarni
1. Klient prosi o dodanie potrawy do jego zamówienia
2. Klient próbuje dodać potrawę do zamówienia
3. System wyświetla informacje, że nie wszystkie składniki potrzebne do przygotowania potrawy są dostępne w spiżarni
*Dodanie tej potrawy do zamówienia kończy się niepowodzeniem*
4. Kelner przeprasza klienta, informuje o niedostępności potrawy i kontynuuje scenariusz główny
3f. Sprawdzenie kosztu zamówienia
1. Klient prosi o sprawdzenie kosztu zamówienia
2. Kelner wchodzi w podsumowanie zamówienia w TK
3. Kelner sprawdza koszt zamówienia
4. Kelner przekacuje informacje klientowi
4a. Klient anuluje zamówienie
1. Klient mówi, że chce odwołać zamówienia
2. Kelner anuluje zamówienie
3. Klient wychodzi z restauracji
4b. Klient chce skorzystać z promocji
1. Klient mówi, że chce skorzystać z promocji
2. Klient wyszczególnia nazwę promocji
3. Kasjer wybiera w zamówieniu jedną, lub więcej z dostępnych promocji
4. System na nowo oblicza koszta i szczegóły zamówienia
5. Kelner kontynuuje tworzenie zamówienia
Wymagania specjalne:
--------------------
- TK musi posiadać ekran dotykowy, a interfejs musi być dobrze widoczny z odległości 1 metra.
- Wszystkie operacje na TK muszą wykonywać się w co najwyżej 5 sekund.
Wymagania technologiczne oraz ograniczenia na wprowadzane dane:
---------------------------------------------------------------
- 3a. Potrawy dodawane za pomocą wprowadzania identyfikatora potrawy, lub za pomocą dodania z listy potraw (za pomocą ekranu dotykowego)
- 3b. Potrawy dodawane tylko jeśli wszystkie składniki są dostępne w spiżarni (dostępność składników udostępniana przez API spiżarni)
Kwestie otwarte:
----------------
- Na jakie sposoby powinno się móc dodawać potrawy do zamówienia?
- Czy powinno istnieć zaawansowane narzędzie do wyszukiwania potraw?
- Do którego momentu klient powinien być w stanie anulować zamówienie?