![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 30.04.2006 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Użytkownik wprowadza umowę i po akceptacji administratora muszę sprawdzić czy w ciągu dowolnych 21 dni NIE OSTATNICH wprowadził np: 6 umów. Może macie jakiś pomysł? Jedyne co przychodzi mi do głowy to: - Pobrać pierwszą umowę i dodać do niej 21 dni. - Sprawdzić czy końcowa data nie jest większa od dzisiaj - Zliczyć ile jest umów w przedziale [umowa pierwsza, umowa pierwsza+21 dni] - Potem pobrać drugą itd. Może macie jakiś mniej łopatologiczny pomysł ? ![]() |
|
|
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
A nie prościej pójść "od końca"? Pobierz sobie umowy z datą. Wybierz pierwszą umowę. Sprawdź czy wymagana ilość umów jest większa niż wszystkich umów klienta. Jeśli tak - nie spełnia warunku. z mostu. Jeśli umów jest więcej to weź pierwszy element i sprawdź czy element będący tyle umów od niego ile trzeba, by był ostatnią umową, czyli X-1 istnieje, a jeśli tak - porównaj daty. Jeśli różnica większa niż wymagane 21 dni - odrzuć i zapętlij się. Jeśli element do którego porównujemy nie istnieje - zakończ algorytm.
Czemu tak? Zauważ, że nigdy w pętli nie ma sensu iść do ostatniego elementu ale tyle od końca ile masz mieć umów. W teorii można by pokombinować, by puścić na poziomie bazy jako zapytanie, gdzie obliczymy różnicę daty między aktualnym elementem a przesuniętym względem niego o jakiś offset. Nie jestem jednak pewien czy napisanie takiego będzie proste bez uciekania się do funkcji. -------------------- Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 07:24 |