kosynier8
8.09.2017, 16:49:33
Witam
Tworzę pewien prosty system zamawiania posiłków. Posiłki na kolejny tydzień można zamawiać do czwartku włączenie. I teraz mam problem posiłki dodane do koszyka przed czwartkiem (zapisują się w bazie mysql) po wejściu do koszyka np w piątek można nadal zamówić. Kombinowałem ale coś mi nie idzie.
Proszę o pomoc - jaki warunek dodać aby takie danie już koszyku była zablokowane. Dzięki z góry za pomoc.
viking
8.09.2017, 17:01:36
sabat24
8.09.2017, 17:40:43
Dodaj sobie kolumnę w bazie do kiedy można edytować dany posiłek w koszyku i ustaw datę na najbliższy czwartek od teraz. Następnie po wejściu w koszyk sprawdzasz, czy teraz <= do_kiedy_edytowac i jesli tak, to mozna, a jeśli nie, to nie.
Pyton_000
8.09.2017, 17:58:50
Raczej datę dodania. Potem wchodząc do koszyka sprawdzasz czy posiłki dodane do koszyka spełniają warunek: różnica dni najbliższy czwartek - data dodania. Jeśli ilość dni > 7 to wywalasz to zamówienie i dajesz komunikat userowi że zamówienie się przeterminowało.
W sumie to co @sabat24 zaproponował też ma sens i chyba jest prostsze
sabat24
8.09.2017, 18:07:38
Tak właściwie to nie zaszkodziłyby te dwie daty, bo w razie potrzeby na podstawie daty dodania można od razu zmienić datę końca edycji, gdyby się nagle okazało, że z czwartku trzeba zrobić piątek.
Data końca edycji pozwala z kolei prostym porównaniem stwierdzić, czy użytkownik ma taką możliwość albo prostym zapytaniem usunąć wszystkie takie pozycje z koszyka.
trueblue
8.09.2017, 18:13:41
A nie możesz po wejściu do koszyka informować klienta na jaki tydzień (dzień) będzie złożone zamówienie?
Jeśli będzie to piątek, to zamówienie będzie dotyczyć tygodnia następnego po najbliższym, jeśli czwartek, to tego najbliższego.
Pyton_000
8.09.2017, 18:14:43
A może na każdy tydzień ma inne dania
trueblue
8.09.2017, 18:18:52
To wtedy na najbliższy możliwy wynikający z kolejności rotacji.
Osobiście nie widzę od strony formalnej problemu, aby klient zamówił z takim wyprzedzeniem - to jego decyzja. Oczywiście pod takim warunkiem jak napisałem - informacji jakiego tygodnia będzie dotyczyć zamówienie.
kosynier8
8.09.2017, 23:34:41
Cytat(sabat24 @ 8.09.2017, 18:40:43 )

Dodaj sobie kolumnę w bazie do kiedy można edytować dany posiłek w koszyku i ustaw datę na najbliższy czwartek od teraz. Następnie po wejściu w koszyk sprawdzasz, czy teraz <= do_kiedy_edytowac i jesli tak, to mozna, a jeśli nie, to nie.
Co tydzień jest inne menu. Można zamawiać na najbliższe 3 tygodnie. Dopisanie daty w bazie to jest jakaś myśl ale jak ktoś doda posiłek do koszyka nie z najbliższego tygodnia tylko 3 tyg w przód do data możliwości zamówienia na najbliższy czwartek obowiązuje tylko w przypadku pierwszego posiłku - drugi może zostać w koszyku i może być zamówiony w ciągu kolejnych 2 tygodni. Albo najprościej ustawić w cronie czyszczenie koszyków w piątek po północy
sabat24
9.09.2017, 09:00:03
Skoro masz datę każdego posiłku i datę do kiedy może go edytować, to nie ma problemu, by nie wyświetlać tych pozycji, których nie można po określonym czasie. W trakcie wyświetlania koszyka, możesz usuwać wpisy, które są już nieważne i/lub użyć crona jak mówisz, do czyszczenia śmieci.
kosynier8
12.09.2017, 09:08:29
Cytat(sabat24 @ 9.09.2017, 10:00:03 )

Skoro masz datę każdego posiłku i datę do kiedy może go edytować, to nie ma problemu, by nie wyświetlać tych pozycji, których nie można po określonym czasie. W trakcie wyświetlania koszyka, możesz usuwać wpisy, które są już nieważne i/lub użyć crona jak mówisz, do czyszczenia śmieci.
Zgadza się. Tylko teraz tu już bym poprosił o pomoc jak to zrobić aby do każdego posiłku dodawanego do koszyka z datą w danym tygodniu dopisać datę powiedzmy 00:00:01 piątek w tym samym tygodniu.
Nikt nie pomoże ?
Pyton_000
12.09.2017, 09:14:32
Kod
php > $da = new DateTime('friday');
php > var_dump($da);
php shell code:1:
class DateTime#2 (3) {
public $date =>
string(26) "2017-09-15 00:00:00.000000"
public $timezone_type =>
int(3)
public $timezone =>
string(13) "Europe/Berlin"
}
kosynier8
12.09.2017, 21:46:07
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.